depa-actor 0.1.0 → 0.1.2

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.
Files changed (65) hide show
  1. package/dist/core/ActorSystem.d.ts +34 -0
  2. package/dist/core/ActorSystem.d.ts.map +1 -0
  3. package/dist/core/ActorSystem.js +169 -0
  4. package/dist/core/ActorSystem.js.map +1 -0
  5. package/dist/core/types.d.ts +66 -0
  6. package/dist/core/types.d.ts.map +1 -0
  7. package/dist/core/types.js +10 -0
  8. package/dist/core/types.js.map +1 -0
  9. package/dist/dispatch/ActorDispatchAdapter.d.ts +28 -0
  10. package/dist/dispatch/ActorDispatchAdapter.d.ts.map +1 -0
  11. package/dist/dispatch/ActorDispatchAdapter.js +38 -0
  12. package/dist/dispatch/ActorDispatchAdapter.js.map +1 -0
  13. package/dist/index.d.ts +16 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +9 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/orchestration/index.d.ts +9 -0
  18. package/dist/orchestration/index.d.ts.map +1 -0
  19. package/dist/orchestration/index.js +8 -0
  20. package/dist/orchestration/index.js.map +1 -0
  21. package/dist/orchestration/presets/aiAgent.d.ts +4 -0
  22. package/dist/orchestration/presets/aiAgent.d.ts.map +1 -0
  23. package/dist/orchestration/presets/aiAgent.js +38 -0
  24. package/dist/orchestration/presets/aiAgent.js.map +1 -0
  25. package/dist/orchestration/recovery.d.ts +4 -0
  26. package/dist/orchestration/recovery.d.ts.map +1 -0
  27. package/dist/orchestration/recovery.js +110 -0
  28. package/dist/orchestration/recovery.js.map +1 -0
  29. package/dist/orchestration/reducer.d.ts +5 -0
  30. package/dist/orchestration/reducer.d.ts.map +1 -0
  31. package/dist/orchestration/reducer.js +273 -0
  32. package/dist/orchestration/reducer.js.map +1 -0
  33. package/dist/orchestration/runtimeAdapter.d.ts +5 -0
  34. package/dist/orchestration/runtimeAdapter.d.ts.map +1 -0
  35. package/dist/orchestration/runtimeAdapter.js +12 -0
  36. package/dist/orchestration/runtimeAdapter.js.map +1 -0
  37. package/dist/orchestration/scheduler.d.ts +11 -0
  38. package/dist/orchestration/scheduler.d.ts.map +1 -0
  39. package/dist/orchestration/scheduler.js +82 -0
  40. package/dist/orchestration/scheduler.js.map +1 -0
  41. package/dist/orchestration/types.d.ts +145 -0
  42. package/dist/orchestration/types.d.ts.map +1 -0
  43. package/dist/orchestration/types.js +12 -0
  44. package/dist/orchestration/types.js.map +1 -0
  45. package/dist/pipeline/ActorPipeline.d.ts +29 -0
  46. package/dist/pipeline/ActorPipeline.d.ts.map +1 -0
  47. package/dist/pipeline/ActorPipeline.js +32 -0
  48. package/dist/pipeline/ActorPipeline.js.map +1 -0
  49. package/dist/runtime/ActorRuntime.d.ts +35 -0
  50. package/dist/runtime/ActorRuntime.d.ts.map +1 -0
  51. package/dist/runtime/ActorRuntime.js +74 -0
  52. package/dist/runtime/ActorRuntime.js.map +1 -0
  53. package/dist/runtime/completion.d.ts +21 -0
  54. package/dist/runtime/completion.d.ts.map +1 -0
  55. package/dist/runtime/completion.js +69 -0
  56. package/dist/runtime/completion.js.map +1 -0
  57. package/dist/runtime/indexing.d.ts +12 -0
  58. package/dist/runtime/indexing.d.ts.map +1 -0
  59. package/dist/runtime/indexing.js +30 -0
  60. package/dist/runtime/indexing.js.map +1 -0
  61. package/dist/runtime/snapshot.d.ts +76 -0
  62. package/dist/runtime/snapshot.d.ts.map +1 -0
  63. package/dist/runtime/snapshot.js +10 -0
  64. package/dist/runtime/snapshot.js.map +1 -0
  65. package/package.json +9 -1
@@ -0,0 +1,32 @@
1
+ /**
2
+ * depa-actor — ActorPipeline
3
+ *
4
+ * Adapts the DOP 6-step pipeline (from depa-processor) to actor context.
5
+ *
6
+ * Mapping:
7
+ * OuterRuntime = ActorSelf
8
+ * OuterInput = envelope payload
9
+ * OuterConfig = actor state
10
+ *
11
+ * createPipelineHandler() wraps a pipeline definition into an ActorHandler.
12
+ */
13
+ // ─── createPipelineHandler ───────────────────────────────────────────
14
+ export function createPipelineHandler(pipeline) {
15
+ return async (self, envelope) => {
16
+ const payload = envelope.payload;
17
+ const state = self.state;
18
+ // Step 1: Compute derived
19
+ const derived = pipeline.computeDerived(self, payload, state);
20
+ // Step 2: Transform runtime
21
+ const innerRuntime = pipeline.innerRuntime(self, payload, state, derived);
22
+ // Step 3: Transform input
23
+ const innerInput = pipeline.innerInput(self, payload, state, derived);
24
+ // Step 4: Transform config
25
+ const innerConfig = pipeline.innerConfig(self, payload, state, derived);
26
+ // Step 5: Core logic
27
+ const innerOutput = await pipeline.coreLogic(innerRuntime, innerInput, innerConfig);
28
+ // Step 6: Output (side effects on actor state / send messages)
29
+ await pipeline.output(self, payload, state, derived, innerOutput);
30
+ };
31
+ }
32
+ //# sourceMappingURL=ActorPipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActorPipeline.js","sourceRoot":"","sources":["../../src/pipeline/ActorPipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAiFH,wEAAwE;AAExE,MAAM,UAAU,qBAAqB,CAUnC,QAGC;IAED,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,0BAA0B;QAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAE9D,4BAA4B;QAC5B,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAE1E,0BAA0B;QAC1B,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAEtE,2BAA2B;QAC3B,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAExE,qBAAqB;QACrB,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAEpF,+DAA+D;QAC/D,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * depa-actor — ActorRuntime
3
+ *
4
+ * Lifecycle and plugin layer over ActorSystem.
5
+ * ActorSystem = engine, ActorRuntime = managed environment.
6
+ *
7
+ * Future AiAgentVm will hold an ActorRuntime instance.
8
+ */
9
+ import type { MailboxSchema, ActorDef, ActorRef, ActorLogEntry } from '../core/types';
10
+ import { ActorSystem } from '../core/ActorSystem';
11
+ export interface ActorPlugin<TRuntime, TSchema extends MailboxSchema> {
12
+ name: string;
13
+ onRegister?: (id: string, def: ActorDef<TRuntime, TSchema, unknown>) => void;
14
+ onUnregister?: (id: string) => void;
15
+ onLog?: (entry: ActorLogEntry<TSchema>) => void;
16
+ }
17
+ export declare class ActorRuntime<TRuntime, TSchema extends MailboxSchema> {
18
+ readonly system: ActorSystem<TRuntime, TSchema>;
19
+ private plugins;
20
+ private facets;
21
+ constructor(getRuntime: () => TRuntime, plugins?: ActorPlugin<TRuntime, TSchema>[]);
22
+ addPlugin(plugin: ActorPlugin<TRuntime, TSchema>): void;
23
+ hasFacet(name: string): boolean;
24
+ getFacet<TFacet>(name: string): TFacet | undefined;
25
+ setFacet<TFacet>(name: string, facet: TFacet): TFacet;
26
+ ensureFacet<TFacet>(name: string, create: () => TFacet): TFacet;
27
+ register<TState = void>(id: string, def: ActorDef<TRuntime, TSchema, TState>): void;
28
+ unregister(id: string): void;
29
+ sendFrom<TTag extends keyof TSchema & string>(from: string, to: string, tag: TTag, payload: TSchema[TTag]): void;
30
+ refFrom(from: string, to: string): ActorRef<TSchema> | undefined;
31
+ ids(): string[];
32
+ has(id: string): boolean;
33
+ private handleLog;
34
+ }
35
+ //# sourceMappingURL=ActorRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActorRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/ActorRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD,MAAM,WAAW,WAAW,CAAC,QAAQ,EAAE,OAAO,SAAS,aAAa;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7E,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;CACjD;AAID,qBAAa,YAAY,CAAC,QAAQ,EAAE,OAAO,SAAS,aAAa;IAC/D,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,MAAM,CAA8B;gBAG1C,UAAU,EAAE,MAAM,QAAQ,EAC1B,OAAO,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;IAY5C,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,IAAI;IAIvD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIlD,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAKrD,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,MAAM,GAAG,MAAM;IAY/D,QAAQ,CAAC,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI;IAOnF,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAO5B,QAAQ,CAAC,IAAI,SAAS,MAAM,OAAO,GAAG,MAAM,EAC1C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,IAAI,EACT,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GACrB,IAAI;IAIP,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;IAIhE,GAAG,IAAI,MAAM,EAAE;IAIf,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAMxB,OAAO,CAAC,SAAS;CAKlB"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * depa-actor — ActorRuntime
3
+ *
4
+ * Lifecycle and plugin layer over ActorSystem.
5
+ * ActorSystem = engine, ActorRuntime = managed environment.
6
+ *
7
+ * Future AiAgentVm will hold an ActorRuntime instance.
8
+ */
9
+ import { ActorSystem } from '../core/ActorSystem';
10
+ // ─── ActorRuntime ────────────────────────────────────────────────────
11
+ export class ActorRuntime {
12
+ system;
13
+ plugins = [];
14
+ facets = new Map();
15
+ constructor(getRuntime, plugins) {
16
+ this.plugins = plugins ?? [];
17
+ this.system = new ActorSystem(getRuntime, (entry) => this.handleLog(entry));
18
+ }
19
+ // ── Plugin management ──
20
+ addPlugin(plugin) {
21
+ this.plugins.push(plugin);
22
+ }
23
+ hasFacet(name) {
24
+ return this.facets.has(name);
25
+ }
26
+ getFacet(name) {
27
+ return this.facets.get(name);
28
+ }
29
+ setFacet(name, facet) {
30
+ this.facets.set(name, facet);
31
+ return facet;
32
+ }
33
+ ensureFacet(name, create) {
34
+ const existing = this.facets.get(name);
35
+ if (existing !== undefined) {
36
+ return existing;
37
+ }
38
+ const created = create();
39
+ this.facets.set(name, created);
40
+ return created;
41
+ }
42
+ // ── Delegated API (convenience) ──
43
+ register(id, def) {
44
+ this.system.register(id, def);
45
+ for (const p of this.plugins) {
46
+ p.onRegister?.(id, def);
47
+ }
48
+ }
49
+ unregister(id) {
50
+ this.system.unregister(id);
51
+ for (const p of this.plugins) {
52
+ p.onUnregister?.(id);
53
+ }
54
+ }
55
+ sendFrom(from, to, tag, payload) {
56
+ this.system.sendFrom(from, to, tag, payload);
57
+ }
58
+ refFrom(from, to) {
59
+ return this.system.refFrom(from, to);
60
+ }
61
+ ids() {
62
+ return this.system.ids();
63
+ }
64
+ has(id) {
65
+ return this.system.has(id);
66
+ }
67
+ // ── Internal ──
68
+ handleLog(entry) {
69
+ for (const p of this.plugins) {
70
+ p.onLog?.(entry);
71
+ }
72
+ }
73
+ }
74
+ //# sourceMappingURL=ActorRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActorRuntime.js","sourceRoot":"","sources":["../../src/runtime/ActorRuntime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export type CompletionWaiter<TResult> = (result: TResult) => void;
2
+ export declare class CompletionSignalRegistry<TKey extends string, TResult> {
3
+ private readonly waiters;
4
+ subscribe(key: TKey, waiter: CompletionWaiter<TResult>): () => void;
5
+ resolve(key: TKey, result: TResult): void;
6
+ has(key: TKey): boolean;
7
+ count(key: TKey): number;
8
+ clear(key?: TKey): void;
9
+ }
10
+ export declare function createCompletionSignalRegistry<TKey extends string, TResult>(): CompletionSignalRegistry<TKey, TResult>;
11
+ export declare class CompletionBindingRegistry<TKey extends string, TBinding> {
12
+ private readonly bindings;
13
+ constructor(initial?: Record<TKey, TBinding>);
14
+ get(key: TKey): TBinding | undefined;
15
+ set(key: TKey, binding: TBinding): void;
16
+ delete(key: TKey): void;
17
+ has(key: TKey): boolean;
18
+ snapshot(): Record<TKey, TBinding>;
19
+ }
20
+ export declare function createCompletionBindingRegistry<TKey extends string, TBinding>(initial?: Record<TKey, TBinding>): CompletionBindingRegistry<TKey, TBinding>;
21
+ //# sourceMappingURL=completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/runtime/completion.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAElE,qBAAa,wBAAwB,CAAC,IAAI,SAAS,MAAM,EAAE,OAAO;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmD;IAE3E,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI;IAgBnE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAWzC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO;IAIvB,KAAK,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM;IAIxB,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI;CAOxB;AAED,wBAAgB,8BAA8B,CAAC,IAAI,SAAS,MAAM,EAAE,OAAO,KAAK,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAEtH;AAED,qBAAa,yBAAyB,CAAC,IAAI,SAAS,MAAM,EAAE,QAAQ;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;gBAEtC,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC;IAI5C,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS;IAIpC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;IAIvC,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI;IAIvB,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO;IAIvB,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC;CAGnC;AAED,wBAAgB,+BAA+B,CAAC,IAAI,SAAS,MAAM,EAAE,QAAQ,EAC3E,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAC/B,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAE3C"}
@@ -0,0 +1,69 @@
1
+ export class CompletionSignalRegistry {
2
+ waiters = new Map();
3
+ subscribe(key, waiter) {
4
+ const current = this.waiters.get(key) ?? new Set();
5
+ current.add(waiter);
6
+ this.waiters.set(key, current);
7
+ return () => {
8
+ const next = this.waiters.get(key);
9
+ if (!next) {
10
+ return;
11
+ }
12
+ next.delete(waiter);
13
+ if (next.size === 0) {
14
+ this.waiters.delete(key);
15
+ }
16
+ };
17
+ }
18
+ resolve(key, result) {
19
+ const waiters = this.waiters.get(key);
20
+ if (!waiters || waiters.size === 0) {
21
+ return;
22
+ }
23
+ this.waiters.delete(key);
24
+ for (const waiter of Array.from(waiters)) {
25
+ waiter(result);
26
+ }
27
+ }
28
+ has(key) {
29
+ return (this.waiters.get(key)?.size ?? 0) > 0;
30
+ }
31
+ count(key) {
32
+ return this.waiters.get(key)?.size ?? 0;
33
+ }
34
+ clear(key) {
35
+ if (key !== undefined) {
36
+ this.waiters.delete(key);
37
+ return;
38
+ }
39
+ this.waiters.clear();
40
+ }
41
+ }
42
+ export function createCompletionSignalRegistry() {
43
+ return new CompletionSignalRegistry();
44
+ }
45
+ export class CompletionBindingRegistry {
46
+ bindings;
47
+ constructor(initial) {
48
+ this.bindings = Object.assign(Object.create(null), initial ?? {});
49
+ }
50
+ get(key) {
51
+ return this.bindings[key];
52
+ }
53
+ set(key, binding) {
54
+ this.bindings[key] = binding;
55
+ }
56
+ delete(key) {
57
+ delete this.bindings[key];
58
+ }
59
+ has(key) {
60
+ return key in this.bindings;
61
+ }
62
+ snapshot() {
63
+ return { ...this.bindings };
64
+ }
65
+ }
66
+ export function createCompletionBindingRegistry(initial) {
67
+ return new CompletionBindingRegistry(initial);
68
+ }
69
+ //# sourceMappingURL=completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/runtime/completion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare class RuntimeIndexHook<TKey extends string, TValue> {
2
+ private readonly entries;
3
+ constructor(initial?: Record<TKey, TValue>);
4
+ get(key: TKey): TValue | undefined;
5
+ set(key: TKey, value: TValue): void;
6
+ delete(key: TKey): void;
7
+ has(key: TKey): boolean;
8
+ values(): TValue[];
9
+ snapshot(): Record<TKey, TValue>;
10
+ }
11
+ export declare function createRuntimeIndexHook<TKey extends string, TValue>(initial?: Record<TKey, TValue>): RuntimeIndexHook<TKey, TValue>;
12
+ //# sourceMappingURL=indexing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexing.d.ts","sourceRoot":"","sources":["../../src/runtime/indexing.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;gBAEvC,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;IAM1C,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS;IAIlC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI;IAIvB,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO;IAIvB,MAAM,IAAI,MAAM,EAAE;IAIlB,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;CAGjC;AAED,wBAAgB,sBAAsB,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,EAChE,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAC7B,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAEhC"}
@@ -0,0 +1,30 @@
1
+ export class RuntimeIndexHook {
2
+ entries = new Map();
3
+ constructor(initial) {
4
+ for (const [key, value] of Object.entries(initial ?? {})) {
5
+ this.entries.set(key, value);
6
+ }
7
+ }
8
+ get(key) {
9
+ return this.entries.get(key);
10
+ }
11
+ set(key, value) {
12
+ this.entries.set(key, value);
13
+ }
14
+ delete(key) {
15
+ this.entries.delete(key);
16
+ }
17
+ has(key) {
18
+ return this.entries.has(key);
19
+ }
20
+ values() {
21
+ return Array.from(this.entries.values());
22
+ }
23
+ snapshot() {
24
+ return Object.fromEntries(this.entries.entries());
25
+ }
26
+ }
27
+ export function createRuntimeIndexHook(initial) {
28
+ return new RuntimeIndexHook(initial);
29
+ }
30
+ //# sourceMappingURL=indexing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexing.js","sourceRoot":"","sources":["../../src/runtime/indexing.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAgB;IACV,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;IAEnD,YAAY,OAA8B;QACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAA0B,EAAE,CAAC;YAClF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,GAAS,EAAE,KAAa;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,GAAS;QACd,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,GAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACN,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAyB,CAAC;IAC5E,CAAC;CACF;AAED,MAAM,UAAU,sBAAsB,CACpC,OAA8B;IAE9B,OAAO,IAAI,gBAAgB,CAAe,OAAO,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,76 @@
1
+ export type SnapshotRecoveryState = {
2
+ restoredFromSnapshot: boolean;
3
+ snapshotVersion?: number;
4
+ restoredAt?: number;
5
+ };
6
+ export type RuntimeSnapshotManifestBase = {
7
+ version: number;
8
+ createdAt: string;
9
+ updatedAt: string;
10
+ actorKeys: string[];
11
+ fiberIds: string[];
12
+ indexFiles: string[];
13
+ derivedIndexFiles?: string[];
14
+ savedAt?: number;
15
+ vmFile: string;
16
+ actorFiles: Record<string, string>;
17
+ fiberFiles: Record<string, string>;
18
+ };
19
+ export type RuntimeRootSnapshotBase = {
20
+ version: number;
21
+ controlActorKey: string;
22
+ actorKeys: string[];
23
+ updatedAt: string;
24
+ recovery?: SnapshotRecoveryState;
25
+ };
26
+ export type ActorSnapshotBase<TActorType extends string = string> = {
27
+ version: number;
28
+ key: string;
29
+ id: string;
30
+ type: TActorType;
31
+ parentKey?: string;
32
+ updatedAt?: string;
33
+ recovery?: SnapshotRecoveryState;
34
+ };
35
+ export type FiberSnapshotBase = {
36
+ version: number;
37
+ fiberId: string;
38
+ actorKey?: string;
39
+ actorId?: string;
40
+ parentFiberId?: string;
41
+ status?: string;
42
+ lane?: string;
43
+ workloadKind?: string;
44
+ kind?: string;
45
+ waitingReason?: string | null;
46
+ createdAt?: number;
47
+ lastRunAt?: number | null;
48
+ lastYieldAt?: number | null;
49
+ resumeMetadata?: Record<string, unknown> | null;
50
+ updatedAt?: string;
51
+ workload?: string;
52
+ metadata?: Record<string, unknown>;
53
+ };
54
+ export interface SnapshotCodec<TState, TSnapshot> {
55
+ serialize: (state: TState) => TSnapshot;
56
+ hydrate: (snapshot: TSnapshot) => TState;
57
+ }
58
+ export interface RecoveryHooks<TState, TSnapshot> {
59
+ beforeSerialize?: (state: TState) => TState;
60
+ beforeHydrate?: (snapshot: TSnapshot) => TSnapshot;
61
+ afterHydrate?: (state: TState) => TState;
62
+ }
63
+ export interface PersistenceEffectPort<TManifest, TSnapshotState> {
64
+ save: (params: {
65
+ manifest: TManifest;
66
+ state: TSnapshotState;
67
+ }) => Promise<void>;
68
+ load: () => Promise<{
69
+ manifest: TManifest;
70
+ state: TSnapshotState;
71
+ } | null>;
72
+ }
73
+ export declare function createSnapshotCodec<TState, TSnapshot>(codec: SnapshotCodec<TState, TSnapshot>): SnapshotCodec<TState, TSnapshot>;
74
+ export declare function createRecoveryHooks<TState, TSnapshot>(hooks: RecoveryHooks<TState, TSnapshot>): RecoveryHooks<TState, TSnapshot>;
75
+ export declare function createPersistenceEffectPort<TManifest, TSnapshotState>(port: PersistenceEffectPort<TManifest, TSnapshotState>): PersistenceEffectPort<TManifest, TSnapshotState>;
76
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/runtime/snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export function createSnapshotCodec(codec) {
2
+ return codec;
3
+ }
4
+ export function createRecoveryHooks(hooks) {
5
+ return hooks;
6
+ }
7
+ export function createPersistenceEffectPort(port) {
8
+ return port;
9
+ }
10
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/runtime/snapshot.ts"],"names":[],"mappings":"AA0EA,MAAM,UAAU,mBAAmB,CACjC,KAAuC;IAEvC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAuC;IAEvC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,IAAsD;IAEtD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "depa-actor",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -24,5 +24,13 @@
24
24
  "devDependencies": {
25
25
  "typescript": "^5.8.3"
26
26
  },
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "https://github.com/seerkong/depa-actor.git"
30
+ },
31
+ "bugs": {
32
+ "url": "https://github.com/seerkong/depa-actor/issues"
33
+ },
34
+ "homepage": "https://github.com/seerkong/depa-actor#readme",
27
35
  "license": "MIT"
28
36
  }