@rkat/mobkit-sdk 0.5.2 → 0.6.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 (50) hide show
  1. package/dist/agent-builder.d.ts +13 -1
  2. package/dist/agent-builder.d.ts.map +1 -1
  3. package/dist/agent-builder.js +166 -1
  4. package/dist/agent-builder.js.map +1 -1
  5. package/dist/builder.d.ts +28 -0
  6. package/dist/builder.d.ts.map +1 -1
  7. package/dist/builder.js +57 -0
  8. package/dist/builder.js.map +1 -1
  9. package/dist/cjs/agent-builder.cjs +165 -0
  10. package/dist/cjs/builder.cjs +57 -0
  11. package/dist/cjs/errors.cjs +72 -2
  12. package/dist/cjs/events.cjs +15 -5
  13. package/dist/cjs/index.cjs +37 -2
  14. package/dist/cjs/models.cjs +2 -2
  15. package/dist/cjs/runtime.cjs +306 -16
  16. package/dist/cjs/sse.cjs +12 -8
  17. package/dist/cjs/transport.cjs +47 -17
  18. package/dist/cjs/types.cjs +483 -5
  19. package/dist/errors.d.ts +38 -1
  20. package/dist/errors.d.ts.map +1 -1
  21. package/dist/errors.js +68 -1
  22. package/dist/errors.js.map +1 -1
  23. package/dist/events.d.ts +7 -0
  24. package/dist/events.d.ts.map +1 -1
  25. package/dist/events.js +15 -5
  26. package/dist/events.js.map +1 -1
  27. package/dist/index.d.ts +3 -3
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +4 -2
  30. package/dist/index.js.map +1 -1
  31. package/dist/models.d.ts +2 -2
  32. package/dist/models.d.ts.map +1 -1
  33. package/dist/models.js +2 -2
  34. package/dist/models.js.map +1 -1
  35. package/dist/runtime.d.ts +93 -3
  36. package/dist/runtime.d.ts.map +1 -1
  37. package/dist/runtime.js +308 -18
  38. package/dist/runtime.js.map +1 -1
  39. package/dist/sse.d.ts.map +1 -1
  40. package/dist/sse.js +12 -8
  41. package/dist/sse.js.map +1 -1
  42. package/dist/transport.d.ts +13 -0
  43. package/dist/transport.d.ts.map +1 -1
  44. package/dist/transport.js +46 -16
  45. package/dist/transport.js.map +1 -1
  46. package/dist/types.d.ts +265 -4
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/types.js +454 -5
  49. package/dist/types.js.map +1 -1
  50. package/package.json +1 -1
@@ -5,7 +5,7 @@
5
5
  * mutable SessionBuildOptions and modifies it in place.
6
6
  */
7
7
  import { SessionBuildOptions } from "./models.js";
8
- import { type ErrorEvent } from "./types.js";
8
+ import { type ErrorEvent, type SessionCreatedContext, type ContinuityStore, type LeaseProvider, type RosterProvider, type AgentCustomizer, type TopologyProvider } from "./types.js";
9
9
  /**
10
10
  * Protocol for building agents during session creation.
11
11
  *
@@ -21,6 +21,8 @@ import { type ErrorEvent } from "./types.js";
21
21
  */
22
22
  export interface SessionAgentBuilder {
23
23
  buildAgent(options: SessionBuildOptions): Promise<void>;
24
+ /** Called after session creation succeeds. Best-effort — errors logged, not propagated. */
25
+ afterCreate?(sessionId: string, context: SessionCreatedContext): Promise<void>;
24
26
  }
25
27
  export type ErrorCallback = (event: ErrorEvent) => void | Promise<void>;
26
28
  /**
@@ -35,8 +37,18 @@ export declare class CallbackDispatcher {
35
37
  private _errorCallback;
36
38
  private readonly _toolHandlers;
37
39
  private readonly _scopeTools;
40
+ private _continuityStore;
41
+ private _leaseProvider;
42
+ private _rosterProvider;
43
+ private _agentCustomizer;
44
+ private _topologyProvider;
38
45
  registerBuilder(builder: SessionAgentBuilder): void;
39
46
  registerErrorCallback(callback: ErrorCallback): void;
47
+ registerContinuityStore(store: ContinuityStore): void;
48
+ registerLeaseProvider(provider: LeaseProvider): void;
49
+ registerRosterProvider(provider: RosterProvider): void;
50
+ registerAgentCustomizer(customizer: AgentCustomizer): void;
51
+ registerTopologyProvider(provider: TopologyProvider): void;
40
52
  /** Remove all tool handlers for a scope. Call when a session ends. */
41
53
  releaseScope(scopeId: string): void;
42
54
  handleCallback(method: string, params: Record<string, unknown>): Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-builder.d.ts","sourceRoot":"","sources":["../src/agent-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAoB,MAAM,aAAa,CAAC;AACpE,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAI9D;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAID,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAIxE;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAChE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAE3D,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAInD,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIpD,sEAAsE;IACtE,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAU7B,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC;CAwFpB"}
1
+ {"version":3,"file":"agent-builder.d.ts","sourceRoot":"","sources":["../src/agent-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAoB,MAAM,aAAa,CAAC;AACpE,OAAO,EAaL,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAEtB,MAAM,YAAY,CAAC;AAIpB;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,2FAA2F;IAC3F,WAAW,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChF;AAID,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAIxE;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAChE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,iBAAiB,CAAiC;IAE1D,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAInD,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIpD,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAIrD,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIpD,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAItD,uBAAuB,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI;IAI1D,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAI1D,sEAAsE;IACtE,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAU7B,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC;CAoQpB"}
@@ -5,7 +5,7 @@
5
5
  * mutable SessionBuildOptions and modifies it in place.
6
6
  */
7
7
  import { SessionBuildOptions } from "./models.js";
8
- import { parseErrorEvent } from "./types.js";
8
+ import { parseErrorEvent, parseContinuityRecord, parseSessionSnapshot, parseLeaseGrant, parseAgentBuildContext, parseDurableAgentSpec, parseAgentBuildDraft, agentBuildDraftToDict, durableAgentSpecToDict, sessionSnapshotToDict, managedPeerEdgeToDict, } from "./types.js";
9
9
  // -- CallbackDispatcher ---------------------------------------------------
10
10
  /**
11
11
  * Routes incoming JSON-RPC callbacks from the Rust runtime to the
@@ -19,12 +19,32 @@ export class CallbackDispatcher {
19
19
  _errorCallback = null;
20
20
  _toolHandlers = new Map();
21
21
  _scopeTools = new Map();
22
+ _continuityStore = null;
23
+ _leaseProvider = null;
24
+ _rosterProvider = null;
25
+ _agentCustomizer = null;
26
+ _topologyProvider = null;
22
27
  registerBuilder(builder) {
23
28
  this._builder = builder;
24
29
  }
25
30
  registerErrorCallback(callback) {
26
31
  this._errorCallback = callback;
27
32
  }
33
+ registerContinuityStore(store) {
34
+ this._continuityStore = store;
35
+ }
36
+ registerLeaseProvider(provider) {
37
+ this._leaseProvider = provider;
38
+ }
39
+ registerRosterProvider(provider) {
40
+ this._rosterProvider = provider;
41
+ }
42
+ registerAgentCustomizer(customizer) {
43
+ this._agentCustomizer = customizer;
44
+ }
45
+ registerTopologyProvider(provider) {
46
+ this._topologyProvider = provider;
47
+ }
28
48
  /** Remove all tool handlers for a scope. Call when a session ends. */
29
49
  releaseScope(scopeId) {
30
50
  const tools = this._scopeTools.get(scopeId);
@@ -48,6 +68,27 @@ export class CallbackDispatcher {
48
68
  }
49
69
  return null;
50
70
  }
71
+ if (method === "callback/after_create") {
72
+ if (this._builder !== null && typeof this._builder.afterCreate === "function") {
73
+ const sessionId = String(params.session_id ?? "");
74
+ const context = {
75
+ model: String(params.model ?? ""),
76
+ labels: typeof params.labels === "object" && params.labels !== null
77
+ ? params.labels
78
+ : {},
79
+ systemPrompt: typeof params.system_prompt === "string"
80
+ ? params.system_prompt
81
+ : null,
82
+ };
83
+ try {
84
+ await this._builder.afterCreate(sessionId, context);
85
+ }
86
+ catch {
87
+ // Best-effort — swallow afterCreate failures.
88
+ }
89
+ }
90
+ return null;
91
+ }
51
92
  if (method === "callback/build_agent") {
52
93
  if (this._builder === null) {
53
94
  throw new Error("no SessionAgentBuilder registered");
@@ -105,6 +146,130 @@ export class CallbackDispatcher {
105
146
  const result = await handler(args);
106
147
  return { content: result };
107
148
  }
149
+ // -- Continuity callbacks -----------------------------------------------
150
+ if (method === "callback/continuity/resolve_many") {
151
+ if (this._continuityStore === null) {
152
+ throw new Error("no ContinuityStore registered");
153
+ }
154
+ const identities = Array.isArray(params.identities)
155
+ ? params.identities.map(String)
156
+ : [];
157
+ return this._continuityStore.resolveMany(identities);
158
+ }
159
+ if (method === "callback/continuity/load_session_snapshot") {
160
+ if (this._continuityStore === null) {
161
+ throw new Error("no ContinuityStore registered");
162
+ }
163
+ const sessionId = String(params.session_id ?? "");
164
+ const snap = await this._continuityStore.loadSessionSnapshot(sessionId);
165
+ if (snap === null)
166
+ return null;
167
+ return sessionSnapshotToDict(snap);
168
+ }
169
+ if (method === "callback/continuity/save_session_snapshot") {
170
+ if (this._continuityStore === null) {
171
+ throw new Error("no ContinuityStore registered");
172
+ }
173
+ const identity = String(params.identity ?? "");
174
+ const sessionId = String(params.session_id ?? "");
175
+ const generation = Number(params.generation ?? 0);
176
+ const version = Number(params.checkpoint_version ?? 0);
177
+ const fencingToken = Number(params.fencing_token ?? 0);
178
+ const snapshot = parseSessionSnapshot({ data: params.snapshot ?? "" });
179
+ await this._continuityStore.saveSessionSnapshot(identity, sessionId, generation, version, fencingToken, snapshot);
180
+ return null;
181
+ }
182
+ if (method === "callback/continuity/upsert_continuity_record") {
183
+ if (this._continuityStore === null) {
184
+ throw new Error("no ContinuityStore registered");
185
+ }
186
+ const record = parseContinuityRecord(params.record);
187
+ const fencingToken = Number(params.fencing_token ?? 0);
188
+ await this._continuityStore.upsertContinuityRecord(record, fencingToken);
189
+ return null;
190
+ }
191
+ // -- Lease callbacks ----------------------------------------------------
192
+ if (method === "callback/lease/acquire_leases") {
193
+ if (this._leaseProvider === null) {
194
+ throw new Error("no LeaseProvider registered");
195
+ }
196
+ const identities = Array.isArray(params.identities)
197
+ ? params.identities.map(String)
198
+ : [];
199
+ const runtimeInstance = String(params.runtime_instance ?? "");
200
+ return this._leaseProvider.acquireLeases(identities, runtimeInstance);
201
+ }
202
+ if (method === "callback/lease/renew_leases") {
203
+ if (this._leaseProvider === null) {
204
+ throw new Error("no LeaseProvider registered");
205
+ }
206
+ const rawGrants = Array.isArray(params.grants) ? params.grants : [];
207
+ const grants = rawGrants.map(parseLeaseGrant);
208
+ return this._leaseProvider.renewLeases(grants);
209
+ }
210
+ if (method === "callback/lease/release_leases") {
211
+ if (this._leaseProvider === null) {
212
+ throw new Error("no LeaseProvider registered");
213
+ }
214
+ const rawGrants = Array.isArray(params.grants) ? params.grants : [];
215
+ const grants = rawGrants.map(parseLeaseGrant);
216
+ await this._leaseProvider.releaseLeases(grants);
217
+ return null;
218
+ }
219
+ // -- Roster callback ----------------------------------------------------
220
+ if (method === "callback/roster") {
221
+ if (this._rosterProvider === null) {
222
+ throw new Error("no RosterProvider registered");
223
+ }
224
+ const context = params.context ?? {};
225
+ const specs = await this._rosterProvider.roster(context);
226
+ return specs.map(durableAgentSpecToDict);
227
+ }
228
+ // -- Topology callback --------------------------------------------------
229
+ if (method === "callback/topology/compute_edges") {
230
+ if (this._topologyProvider === null) {
231
+ throw new Error("no TopologyProvider registered");
232
+ }
233
+ const targetIdentities = Array.isArray(params.target_identities)
234
+ ? params.target_identities.map(String)
235
+ : [];
236
+ const context = params.context ?? {};
237
+ const edges = await this._topologyProvider.computeEdges(targetIdentities, context);
238
+ return edges.map(managedPeerEdgeToDict);
239
+ }
240
+ // -- Customizer callbacks -----------------------------------------------
241
+ if (method === "callback/customizer/customize_build") {
242
+ if (this._agentCustomizer === null) {
243
+ throw new Error("no AgentCustomizer registered");
244
+ }
245
+ const context = parseAgentBuildContext(params.context);
246
+ const spec = parseDurableAgentSpec(params.spec);
247
+ const draft = parseAgentBuildDraft(params.draft);
248
+ await this._agentCustomizer.customizeBuild(context, spec, draft);
249
+ return agentBuildDraftToDict(draft);
250
+ }
251
+ if (method === "callback/customizer/after_create") {
252
+ if (this._agentCustomizer !== null &&
253
+ typeof this._agentCustomizer.afterCreate === "function") {
254
+ const identity = String(params.identity ?? "");
255
+ const sessionId = String(params.session_id ?? "");
256
+ const rawLabels = (params.labels != null && typeof params.labels === "object")
257
+ ? Object.fromEntries(Object.entries(params.labels).map(([k, v]) => [k, String(v)]))
258
+ : {};
259
+ const context = {
260
+ model: String(params.model ?? ""),
261
+ labels: rawLabels,
262
+ systemPrompt: typeof params.system_prompt === "string" ? params.system_prompt : null,
263
+ };
264
+ try {
265
+ await this._agentCustomizer.afterCreate(identity, sessionId, context);
266
+ }
267
+ catch {
268
+ // Best-effort — swallow afterCreate failures.
269
+ }
270
+ }
271
+ return null;
272
+ }
108
273
  throw new Error(`unknown callback method: ${method}`);
109
274
  }
110
275
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../src/agent-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../src/agent-builder.ts"],"names":[],"mappings":"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"}
package/dist/builder.d.ts CHANGED
@@ -17,6 +17,7 @@
17
17
  */
18
18
  import type { SessionAgentBuilder, ErrorCallback } from "./agent-builder.js";
19
19
  import type { MobKitRuntime } from "./runtime.js";
20
+ import type { ContinuityStore, LeaseProvider, RosterProvider, AgentCustomizer, TopologyProvider } from "./types.js";
20
21
  export interface MobKitBuilderConfig {
21
22
  mobConfigPath: string | null;
22
23
  sessionBuilder: SessionAgentBuilder | null;
@@ -32,6 +33,13 @@ export interface MobKitBuilderConfig {
32
33
  authConfig: unknown;
33
34
  gatewayBin: string | null;
34
35
  modules: unknown[];
36
+ persistentState: string | null;
37
+ continuityStore: ContinuityStore | null;
38
+ leaseProvider: LeaseProvider | null;
39
+ scratchDir: string | null;
40
+ rosterProvider: RosterProvider | null;
41
+ agentCustomizer: AgentCustomizer | null;
42
+ topologyProvider: TopologyProvider | null;
35
43
  }
36
44
  /**
37
45
  * Chainable builder for MobKit runtime configuration.
@@ -65,7 +73,27 @@ export declare class MobKitBuilder {
65
73
  auth(config: unknown): this;
66
74
  gateway(binPath: string): this;
67
75
  modules(moduleSpecs: unknown[]): this;
76
+ /**
77
+ * Enable persistent state at the given path.
78
+ *
79
+ * When set, the gateway creates SQLite session store, FsBlobStore,
80
+ * and redb mob storage under this directory.
81
+ */
82
+ persistentState(path: string): this;
83
+ /** Set an external ContinuityStore provider. Mutually exclusive with persistentState. */
84
+ continuityStore(store: ContinuityStore): this;
85
+ /** Set an external LeaseProvider. Mutually exclusive with persistentState. */
86
+ leaseProvider(provider: LeaseProvider): this;
87
+ /** Set scratch directory for external provider path. */
88
+ scratchDir(path: string): this;
89
+ /** Set a RosterProvider. */
90
+ rosterProvider(provider: RosterProvider): this;
91
+ /** Set an AgentCustomizer. */
92
+ agentCustomizer(customizer: AgentCustomizer): this;
93
+ /** Set a TopologyProvider. */
94
+ topologyProvider(provider: TopologyProvider): this;
68
95
  build(): Promise<MobKitRuntime>;
96
+ private _validateConfig;
69
97
  private _applyConventionDefaults;
70
98
  }
71
99
  export declare class MobKit {
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC3C,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,EAAE,CAAC;CACpB;AAuBD;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IACxB,gBAAgB;IAChB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAmB;IAExD,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAK7B,cAAc,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAMnE,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAKlC,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAKjC,QAAQ,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAAG,IAAI;IAKpE,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAKtC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKhC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKjC,UAAU,CAAC,GAAG,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;IAK5C,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI;IAM/D,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAK3B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK9B,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI;IAK/B,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC;IAOrC,OAAO,CAAC,wBAAwB;CA0BjC;AAID,qBAAa,MAAM;IACjB,MAAM,CAAC,OAAO,IAAI,aAAa;CAGhC"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
package/dist/builder.js CHANGED
@@ -32,6 +32,13 @@ function defaultConfig() {
32
32
  authConfig: null,
33
33
  gatewayBin: null,
34
34
  modules: [],
35
+ persistentState: null,
36
+ continuityStore: null,
37
+ leaseProvider: null,
38
+ scratchDir: null,
39
+ rosterProvider: null,
40
+ agentCustomizer: null,
41
+ topologyProvider: null,
35
42
  };
36
43
  }
37
44
  // -- MobKitBuilder --------------------------------------------------------
@@ -103,12 +110,62 @@ export class MobKitBuilder {
103
110
  this._config.modules = moduleSpecs;
104
111
  return this;
105
112
  }
113
+ /**
114
+ * Enable persistent state at the given path.
115
+ *
116
+ * When set, the gateway creates SQLite session store, FsBlobStore,
117
+ * and redb mob storage under this directory.
118
+ */
119
+ persistentState(path) {
120
+ this._config.persistentState = path;
121
+ return this;
122
+ }
123
+ /** Set an external ContinuityStore provider. Mutually exclusive with persistentState. */
124
+ continuityStore(store) {
125
+ this._config.continuityStore = store;
126
+ return this;
127
+ }
128
+ /** Set an external LeaseProvider. Mutually exclusive with persistentState. */
129
+ leaseProvider(provider) {
130
+ this._config.leaseProvider = provider;
131
+ return this;
132
+ }
133
+ /** Set scratch directory for external provider path. */
134
+ scratchDir(path) {
135
+ this._config.scratchDir = path;
136
+ return this;
137
+ }
138
+ /** Set a RosterProvider. */
139
+ rosterProvider(provider) {
140
+ this._config.rosterProvider = provider;
141
+ return this;
142
+ }
143
+ /** Set an AgentCustomizer. */
144
+ agentCustomizer(customizer) {
145
+ this._config.agentCustomizer = customizer;
146
+ return this;
147
+ }
148
+ /** Set a TopologyProvider. */
149
+ topologyProvider(provider) {
150
+ this._config.topologyProvider = provider;
151
+ return this;
152
+ }
106
153
  async build() {
154
+ this._validateConfig();
107
155
  this._applyConventionDefaults();
108
156
  // Dynamic import to break circular dep (runtime imports from builder config type)
109
157
  const { MobKitRuntime } = await import("./runtime.js");
110
158
  return MobKitRuntime._create(this._config);
111
159
  }
160
+ _validateConfig() {
161
+ const hasPersistent = this._config.persistentState !== null;
162
+ const hasExternal = this._config.continuityStore !== null ||
163
+ this._config.leaseProvider !== null;
164
+ if (hasPersistent && hasExternal) {
165
+ throw new Error("persistentState and continuityStore/leaseProvider are mutually exclusive — " +
166
+ "use one path or the other, not both");
167
+ }
168
+ }
112
169
  _applyConventionDefaults() {
113
170
  if (this._config.gatingConfigPath === null) {
114
171
  const candidate = "config/gating.toml";
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAqCrC,SAAS,aAAa;IACpB,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,IAAI;QACpB,YAAY,EAAE,IAAI;QAClB,iBAAiB,EAAE,IAAI;QACvB,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,IAAI;QACd,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,eAAe,EAAE,EAAE;QACnB,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,IAAI;QACrB,eAAe,EAAE,IAAI;QACrB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;KACvB,CAAC;AACJ,CAAC;AAED,4EAA4E;AAE5E;;;;;;;;;;GAUG;AACH,MAAM,OAAO,aAAa;IACxB,gBAAgB;IACP,OAAO,GAAwB,aAAa,EAAE,CAAC;IAExD,GAAG,CAAC,UAAkB;QACpB,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,OAA4B,EAAE,KAAe;QAC1D,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,KAAK,IAAI,IAAI,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,QAAiB;QACzB,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,QAAQ,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,QAAiB;QACxB,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,OAAoD;QAC3D,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,QAAuB;QAC7B,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,UAAkB;QACvB,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,UAAkB;QACxB,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,GAAG,aAAuB;QACnC,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,aAAa,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAgB,EAAE,OAA+B;QACtD,IAAI,CAAC,OAAO,CAAC,YAAY;YACvB,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAe;QAClB,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,WAAsB;QAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,IAAY;QAC1B,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yFAAyF;IACzF,eAAe,CAAC,KAAsB;QACpC,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,aAAa,CAAC,QAAuB;QACnC,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wDAAwD;IACxD,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4BAA4B;IAC5B,cAAc,CAAC,QAAwB;QACrC,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,QAAQ,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8BAA8B;IAC9B,eAAe,CAAC,UAA2B;QACzC,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,UAAU,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8BAA8B;IAC9B,gBAAgB,CAAC,QAA0B;QACzC,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,kFAAkF;QAClF,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACvD,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAEO,eAAe;QACrB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,IAAI,CAAC;QAC5D,MAAM,WAAW,GACf,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,IAAI;YACrC,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC;QACtC,IAAI,aAAa,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,6EAA6E;gBAC3E,qCAAqC,CACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,wBAAwB;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,oBAAoB,CAAC;YACvC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,yBAAyB,CAAC;YAC5C,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,gCAAgC,CAAC;YACrD,IAAI,UAAU,CAAC,WAAW,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,2BAA2B,CAAC;YACjD,IAAI,UAAU,CAAC,YAAY,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,4EAA4E;AAE5E,MAAM,OAAO,MAAM;IACjB,MAAM,CAAC,OAAO;QACZ,OAAO,IAAI,aAAa,EAAE,CAAC;IAC7B,CAAC;CACF"}
@@ -22,12 +22,32 @@ class CallbackDispatcher {
22
22
  _errorCallback = null;
23
23
  _toolHandlers = new Map();
24
24
  _scopeTools = new Map();
25
+ _continuityStore = null;
26
+ _leaseProvider = null;
27
+ _rosterProvider = null;
28
+ _agentCustomizer = null;
29
+ _topologyProvider = null;
25
30
  registerBuilder(builder) {
26
31
  this._builder = builder;
27
32
  }
28
33
  registerErrorCallback(callback) {
29
34
  this._errorCallback = callback;
30
35
  }
36
+ registerContinuityStore(store) {
37
+ this._continuityStore = store;
38
+ }
39
+ registerLeaseProvider(provider) {
40
+ this._leaseProvider = provider;
41
+ }
42
+ registerRosterProvider(provider) {
43
+ this._rosterProvider = provider;
44
+ }
45
+ registerAgentCustomizer(customizer) {
46
+ this._agentCustomizer = customizer;
47
+ }
48
+ registerTopologyProvider(provider) {
49
+ this._topologyProvider = provider;
50
+ }
31
51
  /** Remove all tool handlers for a scope. Call when a session ends. */
32
52
  releaseScope(scopeId) {
33
53
  const tools = this._scopeTools.get(scopeId);
@@ -51,6 +71,27 @@ class CallbackDispatcher {
51
71
  }
52
72
  return null;
53
73
  }
74
+ if (method === "callback/after_create") {
75
+ if (this._builder !== null && typeof this._builder.afterCreate === "function") {
76
+ const sessionId = String(params.session_id ?? "");
77
+ const context = {
78
+ model: String(params.model ?? ""),
79
+ labels: typeof params.labels === "object" && params.labels !== null
80
+ ? params.labels
81
+ : {},
82
+ systemPrompt: typeof params.system_prompt === "string"
83
+ ? params.system_prompt
84
+ : null,
85
+ };
86
+ try {
87
+ await this._builder.afterCreate(sessionId, context);
88
+ }
89
+ catch {
90
+ // Best-effort — swallow afterCreate failures.
91
+ }
92
+ }
93
+ return null;
94
+ }
54
95
  if (method === "callback/build_agent") {
55
96
  if (this._builder === null) {
56
97
  throw new Error("no SessionAgentBuilder registered");
@@ -108,6 +149,130 @@ class CallbackDispatcher {
108
149
  const result = await handler(args);
109
150
  return { content: result };
110
151
  }
152
+ // -- Continuity callbacks -----------------------------------------------
153
+ if (method === "callback/continuity/resolve_many") {
154
+ if (this._continuityStore === null) {
155
+ throw new Error("no ContinuityStore registered");
156
+ }
157
+ const identities = Array.isArray(params.identities)
158
+ ? params.identities.map(String)
159
+ : [];
160
+ return this._continuityStore.resolveMany(identities);
161
+ }
162
+ if (method === "callback/continuity/load_session_snapshot") {
163
+ if (this._continuityStore === null) {
164
+ throw new Error("no ContinuityStore registered");
165
+ }
166
+ const sessionId = String(params.session_id ?? "");
167
+ const snap = await this._continuityStore.loadSessionSnapshot(sessionId);
168
+ if (snap === null)
169
+ return null;
170
+ return (0, types_js_1.sessionSnapshotToDict)(snap);
171
+ }
172
+ if (method === "callback/continuity/save_session_snapshot") {
173
+ if (this._continuityStore === null) {
174
+ throw new Error("no ContinuityStore registered");
175
+ }
176
+ const identity = String(params.identity ?? "");
177
+ const sessionId = String(params.session_id ?? "");
178
+ const generation = Number(params.generation ?? 0);
179
+ const version = Number(params.checkpoint_version ?? 0);
180
+ const fencingToken = Number(params.fencing_token ?? 0);
181
+ const snapshot = (0, types_js_1.parseSessionSnapshot)({ data: params.snapshot ?? "" });
182
+ await this._continuityStore.saveSessionSnapshot(identity, sessionId, generation, version, fencingToken, snapshot);
183
+ return null;
184
+ }
185
+ if (method === "callback/continuity/upsert_continuity_record") {
186
+ if (this._continuityStore === null) {
187
+ throw new Error("no ContinuityStore registered");
188
+ }
189
+ const record = (0, types_js_1.parseContinuityRecord)(params.record);
190
+ const fencingToken = Number(params.fencing_token ?? 0);
191
+ await this._continuityStore.upsertContinuityRecord(record, fencingToken);
192
+ return null;
193
+ }
194
+ // -- Lease callbacks ----------------------------------------------------
195
+ if (method === "callback/lease/acquire_leases") {
196
+ if (this._leaseProvider === null) {
197
+ throw new Error("no LeaseProvider registered");
198
+ }
199
+ const identities = Array.isArray(params.identities)
200
+ ? params.identities.map(String)
201
+ : [];
202
+ const runtimeInstance = String(params.runtime_instance ?? "");
203
+ return this._leaseProvider.acquireLeases(identities, runtimeInstance);
204
+ }
205
+ if (method === "callback/lease/renew_leases") {
206
+ if (this._leaseProvider === null) {
207
+ throw new Error("no LeaseProvider registered");
208
+ }
209
+ const rawGrants = Array.isArray(params.grants) ? params.grants : [];
210
+ const grants = rawGrants.map(types_js_1.parseLeaseGrant);
211
+ return this._leaseProvider.renewLeases(grants);
212
+ }
213
+ if (method === "callback/lease/release_leases") {
214
+ if (this._leaseProvider === null) {
215
+ throw new Error("no LeaseProvider registered");
216
+ }
217
+ const rawGrants = Array.isArray(params.grants) ? params.grants : [];
218
+ const grants = rawGrants.map(types_js_1.parseLeaseGrant);
219
+ await this._leaseProvider.releaseLeases(grants);
220
+ return null;
221
+ }
222
+ // -- Roster callback ----------------------------------------------------
223
+ if (method === "callback/roster") {
224
+ if (this._rosterProvider === null) {
225
+ throw new Error("no RosterProvider registered");
226
+ }
227
+ const context = params.context ?? {};
228
+ const specs = await this._rosterProvider.roster(context);
229
+ return specs.map(types_js_1.durableAgentSpecToDict);
230
+ }
231
+ // -- Topology callback --------------------------------------------------
232
+ if (method === "callback/topology/compute_edges") {
233
+ if (this._topologyProvider === null) {
234
+ throw new Error("no TopologyProvider registered");
235
+ }
236
+ const targetIdentities = Array.isArray(params.target_identities)
237
+ ? params.target_identities.map(String)
238
+ : [];
239
+ const context = params.context ?? {};
240
+ const edges = await this._topologyProvider.computeEdges(targetIdentities, context);
241
+ return edges.map(types_js_1.managedPeerEdgeToDict);
242
+ }
243
+ // -- Customizer callbacks -----------------------------------------------
244
+ if (method === "callback/customizer/customize_build") {
245
+ if (this._agentCustomizer === null) {
246
+ throw new Error("no AgentCustomizer registered");
247
+ }
248
+ const context = (0, types_js_1.parseAgentBuildContext)(params.context);
249
+ const spec = (0, types_js_1.parseDurableAgentSpec)(params.spec);
250
+ const draft = (0, types_js_1.parseAgentBuildDraft)(params.draft);
251
+ await this._agentCustomizer.customizeBuild(context, spec, draft);
252
+ return (0, types_js_1.agentBuildDraftToDict)(draft);
253
+ }
254
+ if (method === "callback/customizer/after_create") {
255
+ if (this._agentCustomizer !== null &&
256
+ typeof this._agentCustomizer.afterCreate === "function") {
257
+ const identity = String(params.identity ?? "");
258
+ const sessionId = String(params.session_id ?? "");
259
+ const rawLabels = (params.labels != null && typeof params.labels === "object")
260
+ ? Object.fromEntries(Object.entries(params.labels).map(([k, v]) => [k, String(v)]))
261
+ : {};
262
+ const context = {
263
+ model: String(params.model ?? ""),
264
+ labels: rawLabels,
265
+ systemPrompt: typeof params.system_prompt === "string" ? params.system_prompt : null,
266
+ };
267
+ try {
268
+ await this._agentCustomizer.afterCreate(identity, sessionId, context);
269
+ }
270
+ catch {
271
+ // Best-effort — swallow afterCreate failures.
272
+ }
273
+ }
274
+ return null;
275
+ }
111
276
  throw new Error(`unknown callback method: ${method}`);
112
277
  }
113
278
  }