durable-actors 0.7.16 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/bin/durable-actors.js +2 -0
- package/dist/actor/actor.d.ts +2 -2
- package/dist/actor/actor.d.ts.map +1 -1
- package/dist/actor/actor.js +5 -3
- package/dist/actor/actor.js.map +1 -1
- package/dist/actor/database.d.ts +3 -2
- package/dist/actor/database.d.ts.map +1 -1
- package/dist/actor/database.js +21 -3
- package/dist/actor/database.js.map +1 -1
- package/dist/cli/dev.d.ts.map +1 -1
- package/dist/cli/dev.js +13 -42
- package/dist/cli/dev.js.map +1 -1
- package/dist/cli/python.d.ts.map +1 -1
- package/dist/cli/python.js +0 -1
- package/dist/cli/python.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +9 -18
- package/dist/cli.js.map +1 -1
- package/dist/compiler/declarations.js +2648 -183
- package/dist/compiler/declarations.js.map +7 -1
- package/dist/host/actor-runtime.d.ts.map +1 -1
- package/dist/host/actor-runtime.js +2 -3
- package/dist/host/actor-runtime.js.map +1 -1
- package/dist/host/sqlite.d.ts.map +1 -1
- package/dist/host/sqlite.js +2 -0
- package/dist/host/sqlite.js.map +1 -1
- package/dist/projectSdk.js +1 -1
- package/dist/projectSdk.js.map +1 -1
- package/dist/templates/actor/README.md +7 -9
- package/dist/templates/actor/bunfig +2 -0
- package/dist/templates/actor/package.json +6 -3
- package/dist/templates/ai-chat/README.md +8 -8
- package/dist/templates/ai-chat/bunfig +2 -0
- package/dist/templates/ai-chat/package.json +7 -5
- package/dist/templates/chat/README.md +8 -8
- package/dist/templates/chat/bunfig +2 -0
- package/dist/templates/chat/package.json +7 -5
- package/dist/templates/documents/README.md +8 -8
- package/dist/templates/documents/bunfig +2 -0
- package/dist/templates/documents/package.json +7 -5
- package/package.json +110 -108
- package/dist/cli/actor-source-watcher.d.ts +0 -25
- package/dist/cli/actor-source-watcher.d.ts.map +0 -1
- package/dist/cli/actor-source-watcher.js +0 -129
- package/dist/cli/actor-source-watcher.js.map +0 -1
- package/dist/templates/actor/pnpm-workspace.yaml +0 -2
- package/dist/templates/ai-chat/pnpm-workspace.yaml +0 -2
- package/dist/templates/chat/pnpm-workspace.yaml +0 -2
- package/dist/templates/documents/pnpm-workspace.yaml +0 -2
- package/dist/templates/python/README.md +0 -7
- package/dist/templates/python/gitignore +0 -6
- package/dist/templates/python/package.json +0 -11
- package/dist/templates/python/pnpm-workspace.yaml +0 -2
- package/dist/templates/python/pyproject.toml +0 -8
- package/dist/templates/python/src/actors.py +0 -9
package/README.md
CHANGED
|
@@ -6,12 +6,12 @@ Durable actors and typed clients, backed by the Rust runtime.
|
|
|
6
6
|
|
|
7
7
|
## Quickstart
|
|
8
8
|
|
|
9
|
-
Requires
|
|
9
|
+
Requires Bun 1.4.2+.
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
|
|
12
|
+
bunx durable-actors init my-actors
|
|
13
13
|
cd my-actors
|
|
14
|
-
|
|
14
|
+
bun install
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
Define `src/actors.ts`. Fields marked `@Persisted` survive restarts. They share one SQLite database and transaction with `this.db` SQL. Litestream is installed and managed automatically with the runtime; local development persists to the filesystem.
|
|
@@ -29,7 +29,7 @@ export class Counter extends Actor {
|
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
```sh
|
|
32
|
-
|
|
32
|
+
bunx durable-actors dev
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
## Call an actor
|
|
@@ -37,7 +37,7 @@ pnpm exec durable-actors dev
|
|
|
37
37
|
In another terminal in the same directory, generate the client:
|
|
38
38
|
|
|
39
39
|
```sh
|
|
40
|
-
|
|
40
|
+
bunx durable-actors generate
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
Save as `client.ts` and run `bun client.ts`:
|
package/dist/actor/actor.d.ts
CHANGED
|
@@ -29,8 +29,8 @@ declare abstract class Actor<Metadata = JsonValue, Incoming = JsonValue, Outgoin
|
|
|
29
29
|
tag: Tag;
|
|
30
30
|
};
|
|
31
31
|
protected constructor();
|
|
32
|
-
/** Actor-local SQLite. Changes commit
|
|
33
|
-
|
|
32
|
+
/** Actor-local SQLite, available from construction. Changes commit after a successful invocation. */
|
|
33
|
+
get db(): ActorDatabase;
|
|
34
34
|
/**
|
|
35
35
|
* Returns a backend reference. The first call starts the actor if needed.
|
|
36
36
|
* @param actorId - 1–128 ASCII letters, digits, dots, underscores, or hyphens.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/actor/actor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAGvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,WAAW,EAAsB,MAAM,aAAa,CAAA;AAE1G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,CAAC,MAAM,UAAU,EAAE,OAAO,MAAM,CAAA;AAOvC,UAAU,KAAK,CAAC,QAAQ,GAAG,SAAS,EAAE,QAAQ,GAAG,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAAE,GAAG,SAAS,MAAM,GAAG,MAAM;IACxG,8FAA8F;IAC9F,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvE,qCAAqC;IACrC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1F,kEAAkE;IAClE,YAAY,CAAC,CACT,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,EAC5C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,GAClB,OAAO,CAAC,IAAI,CAAC,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,uBAAe,KAAK,CAAC,QAAQ,GAAG,SAAS,EAAE,QAAQ,GAAG,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAAE,GAAG,SAAS,MAAM,GAAG,MAAM;IAC7G,gBAAgB;IAChB,SAAiB,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,GAAG,CAAA;KAAE,CAAA;IAEvG,SAAS;
|
|
1
|
+
{"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/actor/actor.ts"],"names":[],"mappings":"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"}
|
package/dist/actor/actor.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { actorClient } from "../client/client.js";
|
|
2
2
|
import { ActorDefinitionError } from "../errors.js";
|
|
3
|
-
import { actorDatabase } from "./database.js";
|
|
3
|
+
import { actorDatabase, bindConstructingActorDatabase } from "./database.js";
|
|
4
4
|
import { validateActorComponent } from "./identity.js";
|
|
5
5
|
import { actorConnectionCount, actorConnections, broadcastActor, setActorAutoResponse } from "./socket.js";
|
|
6
6
|
import { outgoingMessage, socketMetadata } from "./socketValidation.js";
|
|
@@ -17,8 +17,10 @@ const referenceClasses = new WeakMap();
|
|
|
17
17
|
* @typeParam Tag - Allowed connection tags.
|
|
18
18
|
*/
|
|
19
19
|
class Actor {
|
|
20
|
-
constructor() {
|
|
21
|
-
|
|
20
|
+
constructor() {
|
|
21
|
+
bindConstructingActorDatabase(this);
|
|
22
|
+
}
|
|
23
|
+
/** Actor-local SQLite, available from construction. Changes commit after a successful invocation. */
|
|
22
24
|
get db() {
|
|
23
25
|
return actorDatabase(this);
|
|
24
26
|
}
|
package/dist/actor/actor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor.js","sourceRoot":"","sources":["../../src/actor/actor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"actor.js","sourceRoot":"","sources":["../../src/actor/actor.ts"],"names":[],"mappings":"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"}
|
package/dist/actor/database.d.ts
CHANGED
|
@@ -4,8 +4,9 @@ interface ActorDatabase {
|
|
|
4
4
|
exec<Row extends object = Record<string, SqliteValue>>(sql: string, ...bindings: SqliteValue[]): Row[];
|
|
5
5
|
}
|
|
6
6
|
declare function actorDatabase(actor: object): ActorDatabase;
|
|
7
|
-
declare function
|
|
7
|
+
declare function constructWithActorDatabase<T>(database: ActorDatabase, construct: () => T): T;
|
|
8
|
+
declare function bindConstructingActorDatabase(actor: object): void;
|
|
8
9
|
declare function runWithActorDatabase<T>(actor: object, operation: () => Promise<T>): Promise<T>;
|
|
9
|
-
export { actorDatabase,
|
|
10
|
+
export { actorDatabase, bindConstructingActorDatabase, constructWithActorDatabase, runWithActorDatabase };
|
|
10
11
|
export type { ActorDatabase, SqliteValue };
|
|
11
12
|
//# sourceMappingURL=database.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/actor/database.ts"],"names":[],"mappings":"AAIA,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAAA;AAE/D,UAAU,aAAa;IACnB,gFAAgF;IAChF,IAAI,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,GAAG,GAAG,EAAE,CAAA;CACzG;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/actor/database.ts"],"names":[],"mappings":"AAIA,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAAA;AAE/D,UAAU,aAAa;IACnB,gFAAgF;IAChF,IAAI,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,GAAG,GAAG,EAAE,CAAA;CACzG;AAMD,iBAAS,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAKnD;AAED,iBAAS,0BAA0B,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAOrF;AAED,iBAAS,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAK1D;AAcD,iBAAe,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAO7F;AAED,OAAO,EAAE,aAAa,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,CAAA;AACzG,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,CAAA"}
|
package/dist/actor/database.js
CHANGED
|
@@ -2,17 +2,35 @@ import { AsyncLocalStorage } from "node:async_hooks";
|
|
|
2
2
|
import { ActorDefinitionError } from "../errors.js";
|
|
3
3
|
const databases = new WeakMap();
|
|
4
4
|
const invocation = new AsyncLocalStorage();
|
|
5
|
+
const construction = new AsyncLocalStorage();
|
|
5
6
|
function actorDatabase(actor) {
|
|
6
7
|
const database = databases.get(actor);
|
|
7
8
|
if (database === undefined)
|
|
8
|
-
throw new ActorDefinitionError("actor database is unavailable
|
|
9
|
+
throw new ActorDefinitionError("actor database is unavailable outside the actor runtime");
|
|
9
10
|
return database;
|
|
10
11
|
}
|
|
12
|
+
function constructWithActorDatabase(database, construct) {
|
|
13
|
+
const context = { database, active: true };
|
|
14
|
+
try {
|
|
15
|
+
return construction.run(context, construct);
|
|
16
|
+
}
|
|
17
|
+
finally {
|
|
18
|
+
context.active = false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function bindConstructingActorDatabase(actor) {
|
|
22
|
+
const context = construction.getStore();
|
|
23
|
+
if (!context?.active || context.actor !== undefined)
|
|
24
|
+
return;
|
|
25
|
+
context.actor = actor;
|
|
26
|
+
bindActorDatabase(actor, context.database);
|
|
27
|
+
}
|
|
11
28
|
function bindActorDatabase(actor, database) {
|
|
12
29
|
databases.set(actor, {
|
|
13
30
|
exec(sql, ...bindings) {
|
|
14
31
|
const context = invocation.getStore();
|
|
15
|
-
|
|
32
|
+
const creating = construction.getStore();
|
|
33
|
+
if (!(context?.actor === actor && context.active) && !(creating?.actor === actor && creating.active))
|
|
16
34
|
throw new ActorDefinitionError("actor database is unavailable outside its invocation");
|
|
17
35
|
return database.exec(sql, ...bindings);
|
|
18
36
|
}
|
|
@@ -27,5 +45,5 @@ async function runWithActorDatabase(actor, operation) {
|
|
|
27
45
|
context.active = false;
|
|
28
46
|
}
|
|
29
47
|
}
|
|
30
|
-
export { actorDatabase,
|
|
48
|
+
export { actorDatabase, bindConstructingActorDatabase, constructWithActorDatabase, runWithActorDatabase };
|
|
31
49
|
//# sourceMappingURL=database.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/actor/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AASnD,MAAM,SAAS,GAAG,IAAI,OAAO,EAAyB,CAAA;AACtD,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/actor/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AASnD,MAAM,SAAS,GAAG,IAAI,OAAO,EAAyB,CAAA;AACtD,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAsC,CAAA;AAC9E,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAgE,CAAA;AAE1G,SAAS,aAAa,CAAC,KAAa;IAChC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACrC,IAAI,QAAQ,KAAK,SAAS;QACtB,MAAM,IAAI,oBAAoB,CAAC,yDAAyD,CAAC,CAAA;IAC7F,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,SAAS,0BAA0B,CAAI,QAAuB,EAAE,SAAkB;IAC9E,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAC1C,IAAI,CAAC;QACD,OAAO,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAC/C,CAAC;YAAS,CAAC;QACP,OAAO,CAAC,MAAM,GAAG,KAAK,CAAA;IAC1B,CAAC;AACL,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAa;IAChD,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAA;IACvC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,OAAM;IAC3D,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;IACrB,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC9C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa,EAAE,QAAuB;IAC7D,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;QACjB,IAAI,CAAqB,GAAW,EAAE,GAAG,QAAuB;YAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;YACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAA;YACxC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC;gBAChG,MAAM,IAAI,oBAAoB,CAAC,sDAAsD,CAAC,CAAA;YAC1F,OAAO,QAAQ,CAAC,IAAI,CAAM,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAA;QAC/C,CAAC;KACJ,CAAC,CAAA;AACN,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAI,KAAa,EAAE,SAA2B;IAC7E,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACvC,IAAI,CAAC;QACD,OAAO,MAAM,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACnD,CAAC;YAAS,CAAC;QACP,OAAO,CAAC,MAAM,GAAG,KAAK,CAAA;IAC1B,CAAC;AACL,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,CAAA"}
|
package/dist/cli/dev.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgC,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgC,MAAM,WAAW,CAAA;AAajE,UAAU,UAAU;IAChB,sFAAsF;IACtF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,GAAG,KAAK,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2BzD;AA+CD,iBAAe,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAM1D;AAsED,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,EAAE,CAAA"}
|
package/dist/cli/dev.js
CHANGED
|
@@ -4,12 +4,9 @@ import path from "node:path";
|
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { projectIdSchema } from "../actor/identity.js";
|
|
7
|
-
import { configuredSettings } from "../client/clientSettings.js";
|
|
8
7
|
import { projectSdkModule } from "../projectSdk.js";
|
|
9
8
|
import { fetchRuntimeExecutablePath } from "../runtimeInstaller.js";
|
|
10
|
-
import {
|
|
11
|
-
import { ControlPlaneClient } from "./control-plane.js";
|
|
12
|
-
import { checkPython, pythonExecutable } from "./python.js";
|
|
9
|
+
import { pythonExecutable } from "./python.js";
|
|
13
10
|
import { runtimeConnection, runtimeEnvironment, startRustRuntime } from "./rust-runtime.js";
|
|
14
11
|
export function registerDevCommand(program) {
|
|
15
12
|
program
|
|
@@ -21,12 +18,12 @@ export function registerDevCommand(program) {
|
|
|
21
18
|
.argParser(portNumber)
|
|
22
19
|
.default(7100))
|
|
23
20
|
.addHelpText("after", `
|
|
24
|
-
Run from your actor project directory; dev
|
|
21
|
+
Run from your actor project directory; dev finds src/actors.ts, src/actors.py, actors.ts, or actors.py.
|
|
25
22
|
No configuration is required. Optional overrides in .env:
|
|
26
23
|
DURABLE_ACTORS_PROJECT project directory (default: current directory)
|
|
27
|
-
DURABLE_ACTORS_ENTRYPOINT actor source file, relative to the project (default:
|
|
24
|
+
DURABLE_ACTORS_ENTRYPOINT actor source file, relative to the project (default: discover actors.ts or actors.py in src/ or the project root)
|
|
28
25
|
|
|
29
|
-
Python projects: durable-actors init my-project
|
|
26
|
+
Python projects: uvx --from 'durable-actors[cli]' durable-actors init my-project
|
|
30
27
|
DURABLE_ACTORS_PYTHON selects an interpreter; otherwise dev uses the project .venv.
|
|
31
28
|
|
|
32
29
|
Create a project with: durable-actors init my-project`)
|
|
@@ -47,12 +44,15 @@ async function developmentOptions(options, environment) {
|
|
|
47
44
|
};
|
|
48
45
|
}
|
|
49
46
|
async function defaultEntrypoint(project) {
|
|
47
|
+
const found = [];
|
|
50
48
|
for (const entrypoint of DEFAULT_ENTRYPOINTS)
|
|
51
49
|
if ((await developmentPathStats(path.resolve(project, entrypoint)))?.isFile())
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
found.push(entrypoint);
|
|
51
|
+
if (found.length > 1)
|
|
52
|
+
throw new Error(`Multiple actor sources found in ${path.resolve(project)}: ${found.join(", ")}. Set DURABLE_ACTORS_ENTRYPOINT to choose one.`);
|
|
53
|
+
return found[0] ?? DEFAULT_ENTRYPOINTS[0];
|
|
54
54
|
}
|
|
55
|
-
const DEFAULT_ENTRYPOINTS = ["src/actors.ts", "src/actors.py"];
|
|
55
|
+
const DEFAULT_ENTRYPOINTS = ["src/actors.ts", "src/actors.py", "actors.ts", "actors.py"];
|
|
56
56
|
function portNumber(value) {
|
|
57
57
|
const port = Number(value);
|
|
58
58
|
if (!/^\d+$/u.test(value) || !Number.isSafeInteger(port) || port < 0 || port > 65535)
|
|
@@ -99,29 +99,10 @@ async function developmentPathStats(candidate) {
|
|
|
99
99
|
}
|
|
100
100
|
async function runDevRuntime(options, project) {
|
|
101
101
|
const python = options.entrypoint.endsWith(".py") ? await pythonExecutable(project) : undefined;
|
|
102
|
-
if (python)
|
|
103
|
-
await checkPython(project, [options.entrypoint], python);
|
|
104
102
|
const executable = await fetchRuntimeExecutablePath();
|
|
105
103
|
const runtime = startRustRuntime(executable, [...devArguments(options), "--ready-fd", "3"], { ...runtimeEnvironment(executable), ...(python ? { DURABLE_ACTORS_PYTHON: python } : {}) }, true, true);
|
|
106
|
-
const connection = runtimeConnection(runtime.readiness, runtime.exited);
|
|
107
|
-
const settings = connection.then(value => configuredSettings(z
|
|
108
|
-
.object({
|
|
109
|
-
projectId: z.string(),
|
|
110
|
-
controlPlaneUrl: z.string(),
|
|
111
|
-
apiKey: z
|
|
112
|
-
.string()
|
|
113
|
-
.nullish()
|
|
114
|
-
.transform(value => value ?? undefined)
|
|
115
|
-
})
|
|
116
|
-
.parse(value)));
|
|
117
|
-
const client = settings.then(settings => new ControlPlaneClient(settings, fetch));
|
|
118
|
-
void client.catch(() => { });
|
|
119
|
-
let watcher;
|
|
120
104
|
try {
|
|
121
|
-
|
|
122
|
-
watcher = await watchActorSources({ projectDirectory: project, dataDirectory: options.dataDir }, async () => publishLocalCode(options, project, await client));
|
|
123
|
-
}
|
|
124
|
-
await client;
|
|
105
|
+
await runtimeConnection(runtime.readiness, runtime.exited);
|
|
125
106
|
return await runtime.exited;
|
|
126
107
|
}
|
|
127
108
|
catch (error) {
|
|
@@ -129,18 +110,6 @@ async function runDevRuntime(options, project) {
|
|
|
129
110
|
await runtime.exited.catch(() => { });
|
|
130
111
|
throw error;
|
|
131
112
|
}
|
|
132
|
-
finally {
|
|
133
|
-
await watcher?.close();
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
async function publishLocalCode(options, project, client) {
|
|
137
|
-
if (options.entrypoint.endsWith(".py"))
|
|
138
|
-
await checkPython(project, [options.entrypoint]);
|
|
139
|
-
await client.registerDeployment({
|
|
140
|
-
localSource: { workingDirectory: project, actorEntrypoint: options.entrypoint },
|
|
141
|
-
secretRefs: []
|
|
142
|
-
});
|
|
143
|
-
console.log("Updated local actors.");
|
|
144
113
|
}
|
|
145
114
|
function devArguments(options) {
|
|
146
115
|
const args = [
|
|
@@ -158,6 +127,8 @@ function devArguments(options) {
|
|
|
158
127
|
"--sdk-host",
|
|
159
128
|
fileURLToPath(new URL("../host.js", import.meta.url))
|
|
160
129
|
];
|
|
130
|
+
if (options.watch)
|
|
131
|
+
args.push("--watch");
|
|
161
132
|
if (options.apiKey)
|
|
162
133
|
args.push("--api-key", options.apiKey);
|
|
163
134
|
if (options.dataDir)
|
package/dist/cli/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,oBAAoB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/python.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/cli/python.ts"],"names":[],"mappings":"AAKA,iBAAe,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUhE;AAED,iBAAe,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,iBAAe,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/cli/python.ts"],"names":[],"mappings":"AAKA,iBAAe,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUhE;AAED,iBAAe,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,iBAAe,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWzE;AAED,iBAAe,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKvF;AA4BD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,CAAA"}
|
package/dist/cli/python.js
CHANGED
|
@@ -17,7 +17,6 @@ async function checkPython(project, targets, executable) {
|
|
|
17
17
|
async function compilePythonContract(entrypoint) {
|
|
18
18
|
const project = process.cwd();
|
|
19
19
|
const executable = await pythonExecutable(project);
|
|
20
|
-
await checkPython(project, [entrypoint], executable);
|
|
21
20
|
const directory = await mkdtemp(path.join(tmpdir(), "durable-actors-build-"));
|
|
22
21
|
try {
|
|
23
22
|
return JSON.parse(await runPython(executable, project, "durable_actors.build", [project, entrypoint, directory, "local"]));
|
package/dist/cli/python.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/cli/python.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,KAAK,UAAU,gBAAgB,CAAC,OAAe;IAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA;IAC/E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACxE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IAC3G,OAAO,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CACjC,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACd,CAAC;QACE,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,SAAS,CAAA;AACnB,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAe,EAAE,OAAiB,EAAE,UAAmB;IAC9E,MAAM,SAAS,CAAC,UAAU,IAAI,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC,CAAA;AAC/G,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,UAAkB;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAC7B,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,
|
|
1
|
+
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/cli/python.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
2
|
import { Command, Option } from "commander";
|
|
3
|
-
import { config } from "dotenv";
|
|
4
3
|
import { cp, mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
|
|
5
4
|
import path from "node:path";
|
|
6
5
|
import { styleText } from "node:util";
|
|
@@ -11,7 +10,6 @@ import { registerObserveCommand } from "./cli/observe.js";
|
|
|
11
10
|
import { registerStartCommand } from "./cli/start.js";
|
|
12
11
|
import { actorEnvironment } from "./environment.js";
|
|
13
12
|
try {
|
|
14
|
-
config({ path: [".env.local", ".env"], quiet: true });
|
|
15
13
|
Object.assign(process.env, actorEnvironment(process.env));
|
|
16
14
|
const program = new Command()
|
|
17
15
|
.name("durable-actors")
|
|
@@ -40,6 +38,8 @@ catch (error) {
|
|
|
40
38
|
process.exitCode = 1;
|
|
41
39
|
}
|
|
42
40
|
async function initializeProject(directory, options) {
|
|
41
|
+
if (options.template === "python")
|
|
42
|
+
throw new Error("Create Python projects with: uvx --from 'durable-actors[cli]' durable-actors init " + directory);
|
|
43
43
|
const destination = path.resolve(directory);
|
|
44
44
|
await mkdir(destination).catch((error) => {
|
|
45
45
|
if (error.code === "EEXIST")
|
|
@@ -52,6 +52,7 @@ async function initializeProject(directory, options) {
|
|
|
52
52
|
force: false
|
|
53
53
|
});
|
|
54
54
|
await rename(path.join(destination, "gitignore"), path.join(destination, ".gitignore"));
|
|
55
|
+
await rename(path.join(destination, "bunfig"), path.join(destination, "bunfig.toml"));
|
|
55
56
|
await nameProject(destination);
|
|
56
57
|
}
|
|
57
58
|
catch (error) {
|
|
@@ -74,27 +75,17 @@ async function nameProject(destination) {
|
|
|
74
75
|
await writeFile(manifest, JSON.stringify(metadata, null, 4) + "\n");
|
|
75
76
|
}
|
|
76
77
|
function projectInstructions(destination, template) {
|
|
77
|
-
if (template === "python")
|
|
78
|
-
return `Created Python actors in ${destination}.
|
|
79
|
-
|
|
80
|
-
From that directory, run:
|
|
81
|
-
pnpm install
|
|
82
|
-
uv sync
|
|
83
|
-
pnpm exec durable-actors dev
|
|
84
|
-
|
|
85
|
-
Edit src/actors.py. The CLI checks types before starting and reloading.
|
|
86
|
-
Generate typed Python clients with: pnpm exec durable-actors generate`;
|
|
87
78
|
if (template === "actor")
|
|
88
79
|
return actorProjectInstructions(destination);
|
|
89
80
|
return `Created ${template} app in ${destination}.
|
|
90
81
|
|
|
91
82
|
From that directory, run:
|
|
92
|
-
|
|
83
|
+
bun install
|
|
93
84
|
cp .env.example .env${template === "ai-chat" ? "\n # Add your OpenAI API key to .env" : ""}
|
|
94
|
-
|
|
85
|
+
bun run dev:actors
|
|
95
86
|
|
|
96
87
|
Add the connection settings printed by durable-actors dev to .env, then in another terminal:
|
|
97
|
-
|
|
88
|
+
bun run dev
|
|
98
89
|
|
|
99
90
|
Open http://127.0.0.1:3000. The README walks through the app.`;
|
|
100
91
|
}
|
|
@@ -109,10 +100,10 @@ ${styleText(["bold", "cyan"], "durable actors")} ${styleText("dim", "/ new proje
|
|
|
109
100
|
|
|
110
101
|
${styleText("bold", "Start here")}
|
|
111
102
|
${styleText("cyan", `cd -- ${quoted}`)}
|
|
112
|
-
${styleText("cyan", "
|
|
103
|
+
${styleText("cyan", "bun install")}
|
|
113
104
|
|
|
114
105
|
${styleText("bold", "Start the actor server")}
|
|
115
|
-
${styleText("cyan", "
|
|
106
|
+
${styleText("cyan", "bunx durable-actors dev")}
|
|
116
107
|
|
|
117
108
|
${styleText("bold", "Make it yours")}
|
|
118
109
|
Your first actor is a counter that remembers.
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|