diff --git a/packages/rivetkit/src/drivers/engine/actor-driver.ts b/packages/rivetkit/src/drivers/engine/actor-driver.ts index 10e7fd514..2ea53317e 100644 --- a/packages/rivetkit/src/drivers/engine/actor-driver.ts +++ b/packages/rivetkit/src/drivers/engine/actor-driver.ts @@ -1,6 +1,6 @@ import type { + ActorConfig as EngineActorConfig, RunnerConfig as EngineRunnerConfig, - ActorConfig as RunnerActorConfig, } from "@rivetkit/engine-runner"; import { Runner } from "@rivetkit/engine-runner"; import * as cbor from "cbor-x"; @@ -232,20 +232,20 @@ export class EngineActorDriver implements ActorDriver { async #runnerOnActorStart( actorId: string, generation: number, - runConfig: RunnerActorConfig, + actorConfig: EngineActorConfig, ): Promise { logger().debug({ msg: "runner actor starting", actorId, - name: runConfig.name, - key: runConfig.key, + name: actorConfig.name, + key: actorConfig.key, generation, }); // Deserialize input let input: any; - if (runConfig.input) { - input = cbor.decode(runConfig.input); + if (actorConfig.input) { + input = cbor.decode(actorConfig.input); } // Get or create handler @@ -258,12 +258,12 @@ export class EngineActorDriver implements ActorDriver { this.#actors.set(actorId, handler); } - const name = runConfig.name as string; - invariant(runConfig.key, "actor should have a key"); - const key = deserializeActorKey(runConfig.key); + const name = actorConfig.name as string; + invariant(actorConfig.key, "actor should have a key"); + const key = deserializeActorKey(actorConfig.key); // Create actor instance - const definition = lookupInRegistry(this.#registryConfig, runConfig.name); + const definition = lookupInRegistry(this.#registryConfig, actorConfig.name); handler.actor = definition.instantiate(); // Start actor diff --git a/packages/rivetkit/src/manager-api/actors.ts b/packages/rivetkit/src/manager-api/actors.ts index 7c145171e..8bdbdce33 100644 --- a/packages/rivetkit/src/manager-api/actors.ts +++ b/packages/rivetkit/src/manager-api/actors.ts @@ -23,6 +23,7 @@ export type ActorsListResponse = z.infer; // MARK: POST /actors export const ActorsCreateRequestSchema = z.object({ + datacenter: z.string().optional(), name: z.string(), runner_name_selector: z.string(), crash_policy: z.string(), @@ -38,6 +39,7 @@ export type ActorsCreateResponse = z.infer; // MARK: PUT /actors export const ActorsGetOrCreateRequestSchema = z.object({ + datacenter: z.string().optional(), name: z.string(), key: z.string(), runner_name_selector: z.string(), diff --git a/packages/rivetkit/src/remote-manager-driver/mod.ts b/packages/rivetkit/src/remote-manager-driver/mod.ts index 2821ac325..651bbf5d6 100644 --- a/packages/rivetkit/src/remote-manager-driver/mod.ts +++ b/packages/rivetkit/src/remote-manager-driver/mod.ts @@ -137,6 +137,7 @@ export class RemoteManagerDriver implements ManagerDriver { }); const { actor, created } = await getOrCreateActor(this.#config, { + datacenter: region, name, key: serializeActorKey(key), runner_name_selector: this.#config.runnerName, @@ -168,11 +169,13 @@ export class RemoteManagerDriver implements ManagerDriver { name, key, input, + region, }: CreateInput): Promise { logger().info({ msg: "creating actor via engine api", name, key }); // Create actor via engine API const result = await createActor(this.#config, { + datacenter: region, name, runner_name_selector: this.#config.runnerName, key: serializeActorKey(key),