@open-multi-agent/core 1.7.0 → 1.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.
@@ -0,0 +1,95 @@
1
+ /**
2
+ * @fileoverview Durable checkpoint persistence over the public MemoryStore API.
3
+ *
4
+ * Checkpoints are stored as JSON under a reserved key namespace. The module
5
+ * intentionally depends only on {@link MemoryStore}, so in-memory, Redis,
6
+ * SQLite, or any custom backend work without extra hooks.
7
+ */
8
+ // ---------------------------------------------------------------------------
9
+ // Constants
10
+ // ---------------------------------------------------------------------------
11
+ export const CHECKPOINT_KEY_PREFIX = '__oma_checkpoint__/';
12
+ export const DEFAULT_CHECKPOINT_KEY = `${CHECKPOINT_KEY_PREFIX}latest`;
13
+ // ---------------------------------------------------------------------------
14
+ // Helpers
15
+ // ---------------------------------------------------------------------------
16
+ export function checkpointKey(runId) {
17
+ if (!runId)
18
+ return DEFAULT_CHECKPOINT_KEY;
19
+ return `${CHECKPOINT_KEY_PREFIX}${runId}/latest`;
20
+ }
21
+ export function isCheckpointKey(key) {
22
+ return key.startsWith(CHECKPOINT_KEY_PREFIX);
23
+ }
24
+ // ---------------------------------------------------------------------------
25
+ // Checkpoint
26
+ // ---------------------------------------------------------------------------
27
+ export class Checkpoint {
28
+ store;
29
+ key;
30
+ runId;
31
+ constructor(store, options = {}) {
32
+ this.store = store;
33
+ this.key = options.key ?? checkpointKey(options.runId);
34
+ this.runId = options.runId;
35
+ }
36
+ /** Persist `snapshot` as the latest checkpoint. */
37
+ async save(snapshot) {
38
+ const stored = {
39
+ ...snapshot,
40
+ ...(snapshot.runId !== undefined || this.runId === undefined
41
+ ? {}
42
+ : { runId: this.runId }),
43
+ };
44
+ await this.store.set(this.key, JSON.stringify(stored), {
45
+ namespace: 'checkpoint',
46
+ version: stored.version,
47
+ ...(stored.runId !== undefined ? { runId: stored.runId } : {}),
48
+ createdAt: stored.createdAt,
49
+ });
50
+ }
51
+ /** Load the latest checkpoint, or `null` when no checkpoint exists. */
52
+ async loadLatest() {
53
+ const entry = await this.store.get(this.key);
54
+ if (entry === null)
55
+ return null;
56
+ let parsed;
57
+ try {
58
+ parsed = JSON.parse(entry.value);
59
+ }
60
+ catch {
61
+ throw new Error(`Checkpoint: stored value at "${this.key}" is not valid JSON.`);
62
+ }
63
+ if (!Checkpoint.isSnapshot(parsed)) {
64
+ throw new Error(`Checkpoint: stored value at "${this.key}" is not a checkpoint snapshot.`);
65
+ }
66
+ return parsed;
67
+ }
68
+ /** Alias for {@link loadLatest}. */
69
+ async load() {
70
+ return this.loadLatest();
71
+ }
72
+ /** Delete the persisted checkpoint key. */
73
+ async delete() {
74
+ await this.store.delete(this.key);
75
+ }
76
+ static isSnapshot(value) {
77
+ if (value === null || typeof value !== 'object')
78
+ return false;
79
+ const snapshot = value;
80
+ if (snapshot['version'] !== 1)
81
+ return false;
82
+ if (snapshot['mode'] !== 'runTeam' && snapshot['mode'] !== 'runTasks')
83
+ return false;
84
+ if (typeof snapshot['createdAt'] !== 'string')
85
+ return false;
86
+ if (!Array.isArray(snapshot['completedTaskResults']))
87
+ return false;
88
+ const queue = snapshot['queue'];
89
+ if (queue === null || typeof queue !== 'object')
90
+ return false;
91
+ const queueRecord = queue;
92
+ return queueRecord['version'] === 1 && Array.isArray(queueRecord['tasks']);
93
+ }
94
+ }
95
+ //# sourceMappingURL=checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../src/memory/checkpoint.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * {@link SharedMemory.getSummary} method produces a human-readable digest
7
7
  * suitable for injecting into an agent's context window.
8
8
  */
9
- import type { MemoryStore, SharedMemoryEntry, SharedMemoryValue, SharedMemoryWriteOptions } from '../types.js';
9
+ import type { MemoryStore, SharedMemorySnapshot, SharedMemoryEntry, SharedMemoryValue, SharedMemoryWriteOptions } from '../types.js';
10
10
  /**
11
11
  * Namespaced shared memory for a team of agents.
12
12
  *
@@ -60,6 +60,28 @@ export declare class SharedMemory {
60
60
  advanceTurn(): void;
61
61
  /** Current turn count. Useful for tests and observability. */
62
62
  getTurnCount(): number;
63
+ /**
64
+ * Restore the turn counter without rehydrating entries. Used on checkpoint
65
+ * resume when the shared-memory store is reused: the entries are already
66
+ * durable in the store, so only the counter needs restoring to keep TTL
67
+ * expiry correct.
68
+ */
69
+ setTurnCount(turnCount: number): void;
70
+ /** Returns a serializable snapshot of all non-expired shared-memory entries. */
71
+ snapshot(): Promise<SharedMemorySnapshot>;
72
+ /**
73
+ * Rebuilds a {@link SharedMemory} instance from a snapshot.
74
+ *
75
+ * Snapshot entry values remain string-only at the {@link MemoryStore}
76
+ * boundary; structured values are recovered through their metadata when read.
77
+ */
78
+ static fromSnapshot(snapshot: SharedMemorySnapshot, store?: MemoryStore): Promise<SharedMemory>;
79
+ /**
80
+ * Restores this instance from a snapshot. Existing non-checkpoint entries in
81
+ * the backing store are replaced; reserved checkpoint records are preserved
82
+ * so the same store can hold both agent memory and checkpoints.
83
+ */
84
+ restore(snapshot: SharedMemorySnapshot): Promise<void>;
63
85
  /**
64
86
  * Write `value` under the namespaced key `<agentName>/<key>`.
65
87
  *
@@ -147,6 +169,8 @@ export declare class SharedMemory {
147
169
  */
148
170
  getStore(): MemoryStore;
149
171
  private static namespaceKey;
172
+ private static isReservedStoreKey;
173
+ private static entryToSnapshot;
150
174
  private static serializeValue;
151
175
  private static cleanMetadata;
152
176
  private static parseEntry;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/memory/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAEV,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,aAAa,CAAA;AA6BpB;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC;;;;;OAKG;IACH,OAAO,CAAC,SAAS,CAAI;IAErB;;;;;;;;;;;OAWG;gBACS,KAAK,CAAC,EAAE,WAAW;IAc/B;;;;;;;;OAQG;IACH,WAAW,IAAI,IAAI;IAInB,8DAA8D;IAC9D,YAAY,IAAI,MAAM;IAQtB;;;;;;;;;;;OAWG;IACG,KAAK,CAAC,MAAM,SAAS,iBAAiB,EAC1C,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,IAAI,CAAC;IAUhB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;;;;;;;OASG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAW1D,gFAAgF;IAC1E,OAAO,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI7C;;;OAGG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAWlE;;;;;;;;;;;;;;;;;;;OAmBG;IACG,UAAU,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAkDlE;;;;OAIG;IACH,QAAQ,IAAI,WAAW;IAQvB,OAAO,CAAC,MAAM,CAAC,YAAY;IAI3B,OAAO,CAAC,MAAM,CAAC,cAAc;IAuB7B,OAAO,CAAC,MAAM,CAAC,aAAa;IAW5B,OAAO,CAAC,MAAM,CAAC,UAAU;IAazB,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAIpC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAIrC,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAwC1C,mEAAmE;IACnE,OAAO,CAAC,SAAS;IAIjB;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;CAGtB"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/memory/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAGV,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,aAAa,CAAA;AA8BpB;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC;;;;;OAKG;IACH,OAAO,CAAC,SAAS,CAAI;IAErB;;;;;;;;;;;OAWG;gBACS,KAAK,CAAC,EAAE,WAAW;IAc/B;;;;;;;;OAQG;IACH,WAAW,IAAI,IAAI;IAInB,8DAA8D;IAC9D,YAAY,IAAI,MAAM;IAItB;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQrC,gFAAgF;IAC1E,QAAQ,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAQ/C;;;;;OAKG;WACU,YAAY,CACvB,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,YAAY,CAAC;IAMxB;;;;OAIG;IACG,OAAO,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B5D;;;;;;;;;;;OAWG;IACG,KAAK,CAAC,MAAM,SAAS,iBAAiB,EAC1C,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,IAAI,CAAC;IAUhB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;;;;;;;OASG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAY1D,gFAAgF;IAC1E,OAAO,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI7C;;;OAGG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAWlE;;;;;;;;;;;;;;;;;;;OAmBG;IACG,UAAU,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAkDlE;;;;OAIG;IACH,QAAQ,IAAI,WAAW;IAQvB,OAAO,CAAC,MAAM,CAAC,YAAY;IAI3B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC,OAAO,CAAC,MAAM,CAAC,eAAe;IAU9B,OAAO,CAAC,MAAM,CAAC,cAAc;IAuB7B,OAAO,CAAC,MAAM,CAAC,aAAa;IAW5B,OAAO,CAAC,MAAM,CAAC,UAAU;IAazB,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAIpC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAIrC,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAwC1C,mEAAmE;IACnE,OAAO,CAAC,SAAS;IAIjB;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;CAGtB"}
@@ -13,6 +13,7 @@ import { InMemoryStore } from './store.js';
13
13
  const STORE_METHODS = ['get', 'set', 'list', 'delete', 'clear'];
14
14
  const STRUCTURED_VALUE_ENCODING = 'json';
15
15
  const STRUCTURED_VALUE_METADATA_KEY = 'sharedMemoryValueEncoding';
16
+ const RESERVED_STORE_PREFIXES = ['__oma_checkpoint__/'];
16
17
  /**
17
18
  * Returns true when `v` structurally implements {@link MemoryStore}.
18
19
  *
@@ -95,6 +96,64 @@ export class SharedMemory {
95
96
  getTurnCount() {
96
97
  return this.turnCount;
97
98
  }
99
+ /**
100
+ * Restore the turn counter without rehydrating entries. Used on checkpoint
101
+ * resume when the shared-memory store is reused: the entries are already
102
+ * durable in the store, so only the counter needs restoring to keep TTL
103
+ * expiry correct.
104
+ */
105
+ setTurnCount(turnCount) {
106
+ this.turnCount = turnCount;
107
+ }
108
+ // ---------------------------------------------------------------------------
109
+ // Snapshot / restore
110
+ // ---------------------------------------------------------------------------
111
+ /** Returns a serializable snapshot of all non-expired shared-memory entries. */
112
+ async snapshot() {
113
+ return {
114
+ version: 1,
115
+ turnCount: this.turnCount,
116
+ entries: this.filterExpired(await this.store.list()).map(SharedMemory.entryToSnapshot),
117
+ };
118
+ }
119
+ /**
120
+ * Rebuilds a {@link SharedMemory} instance from a snapshot.
121
+ *
122
+ * Snapshot entry values remain string-only at the {@link MemoryStore}
123
+ * boundary; structured values are recovered through their metadata when read.
124
+ */
125
+ static async fromSnapshot(snapshot, store) {
126
+ const memory = new SharedMemory(store);
127
+ await memory.restore(snapshot);
128
+ return memory;
129
+ }
130
+ /**
131
+ * Restores this instance from a snapshot. Existing non-checkpoint entries in
132
+ * the backing store are replaced; reserved checkpoint records are preserved
133
+ * so the same store can hold both agent memory and checkpoints.
134
+ */
135
+ async restore(snapshot) {
136
+ if (snapshot.version !== 1) {
137
+ throw new Error(`SharedMemory.restore: unsupported snapshot version ${String(snapshot.version)}.`);
138
+ }
139
+ const existing = await this.store.list();
140
+ for (const entry of existing) {
141
+ if (!SharedMemory.isReservedStoreKey(entry.key)) {
142
+ await this.store.delete(entry.key);
143
+ }
144
+ }
145
+ for (const entry of snapshot.entries) {
146
+ if (SharedMemory.isReservedStoreKey(entry.key))
147
+ continue;
148
+ if (entry.expiresAtTurn !== undefined && typeof this.store.setWithExpiry === 'function') {
149
+ await this.store.setWithExpiry(entry.key, entry.value, entry.expiresAtTurn, entry.metadata);
150
+ }
151
+ else {
152
+ await this.store.set(entry.key, entry.value, entry.metadata);
153
+ }
154
+ }
155
+ this.turnCount = snapshot.turnCount;
156
+ }
98
157
  // ---------------------------------------------------------------------------
99
158
  // Write
100
159
  // ---------------------------------------------------------------------------
@@ -175,6 +234,8 @@ export class SharedMemory {
175
234
  * without the risk of stomping on a fresh write to the same key.
176
235
  */
177
236
  async read(key) {
237
+ if (SharedMemory.isReservedStoreKey(key))
238
+ return null;
178
239
  const entry = await this.store.get(key);
179
240
  if (entry === null)
180
241
  return null;
@@ -281,6 +342,18 @@ export class SharedMemory {
281
342
  static namespaceKey(agentName, key) {
282
343
  return `${agentName}/${key}`;
283
344
  }
345
+ static isReservedStoreKey(key) {
346
+ return RESERVED_STORE_PREFIXES.some((prefix) => key.startsWith(prefix));
347
+ }
348
+ static entryToSnapshot(entry) {
349
+ return {
350
+ key: entry.key,
351
+ value: entry.value,
352
+ ...(entry.metadata !== undefined ? { metadata: { ...entry.metadata } } : {}),
353
+ createdAt: entry.createdAt.toISOString(),
354
+ ...(entry.expiresAtTurn !== undefined ? { expiresAtTurn: entry.expiresAtTurn } : {}),
355
+ };
356
+ }
284
357
  static serializeValue(value, options) {
285
358
  if (options?.schema) {
286
359
  const result = options.schema.safeParse(value);
@@ -371,7 +444,7 @@ export class SharedMemory {
371
444
  * `expiresAtTurn` are always kept.
372
445
  */
373
446
  filterExpired(entries) {
374
- return entries.filter((entry) => !this.isExpired(entry));
447
+ return entries.filter((entry) => !SharedMemory.isReservedStoreKey(entry.key) && !this.isExpired(entry));
375
448
  }
376
449
  }
377
450
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/memory/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAA;AACxE,MAAM,yBAAyB,GAAG,MAAM,CAAA;AACxC,MAAM,6BAA6B,GAAG,2BAA2B,CAAA;AAGjE;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,CAAU;IAC/B,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACrD,MAAM,GAAG,GAAG,CAA4B,CAAA;IACxC,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAA;AACjE,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,YAAY;IACN,KAAK,CAAa;IACnC;;;;;OAKG;IACK,SAAS,GAAG,CAAC,CAAA;IAErB;;;;;;;;;;;OAWG;IACH,YAAY,KAAmB;QAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,SAAS,CACjB,iEAAiE;gBAC/D,aAAa,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC5C,CAAA;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,aAAa,EAAE,CAAA;IAC3C,CAAC;IAED,8EAA8E;IAC9E,eAAe;IACf,8EAA8E;IAE9E;;;;;;;;OAQG;IACH,WAAW;QACT,IAAI,CAAC,SAAS,EAAE,CAAA;IAClB,CAAC;IAED,8DAA8D;IAC9D,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,8EAA8E;IAC9E,QAAQ;IACR,8EAA8E;IAE9E;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,KAAK,CACT,SAAiB,EACjB,GAAW,EACX,KAAa,EACb,QAAkC,EAClC,OAAkC;QAElC,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC9D,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAC/D,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,EAAE;YACpD,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC;YACvC,GAAG,UAAU,CAAC,QAAQ;YACtB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,GAAW,EACX,KAAwB,EACxB,QAAgB,EAChB,QAAkC,EAClC,OAAkC;QAElC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,UAAU,CAClB,oEAAoE,QAAQ,KAAK;gBAC/E,mDAAmD,CACtD,CAAA;QACH,CAAC;QACD,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC9D,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAC/D,MAAM,YAAY,GAAG,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;QAC1G,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YACnD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;YAC/C,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;QAC9F,CAAC;aAAM,CAAC;YACN,2DAA2D;YAC3D,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,OAAO;IACP,8EAA8E;IAE9E;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,CAAC,GAAW;QACpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACtC,OAAO,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,8EAA8E;IAC9E,OAAO;IACP,8EAA8E;IAE9E,gFAAgF;IAChF,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;IACjF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QACvD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;IAC1F,CAAC;IAED,8EAA8E;IAC9E,UAAU;IACV,8EAA8E;IAE9E;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,UAAU,CAAC,MAA+B;QAC9C,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QACjC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACvC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBACvC,MAAM,QAAQ,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;gBAC5E,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAAE,OAAO,KAAK,CAAA;gBAChF,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;gBACjF,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC5B,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QAE/B,+BAA+B;QAC/B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiE,CAAA;QACxF,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACvC,MAAM,KAAK,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YACzE,MAAM,QAAQ,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;YAE5E,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,EAAE,CAAA;gBACV,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAC3B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QACvE,CAAC;QAED,MAAM,KAAK,GAAa,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAA;QACrD,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAA;YAC1B,KAAK,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC;gBAC1C,0EAA0E;gBAC1E,MAAM,YAAY,GAAG,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;gBAC9D,MAAM,SAAS,GACb,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAA;gBAC7E,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,KAAK,SAAS,EAAE,CAAC,CAAA;YAC3C,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAA;IACnC,CAAC;IAED,8EAA8E;IAC9E,eAAe;IACf,8EAA8E;IAE9E;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,8EAA8E;IAC9E,kBAAkB;IAClB,8EAA8E;IAEtE,MAAM,CAAC,YAAY,CAAC,SAAiB,EAAE,GAAW;QACxD,OAAO,GAAG,SAAS,IAAI,GAAG,EAAE,CAAA;IAC9B,CAAC;IAEO,MAAM,CAAC,cAAc,CAC3B,KAAa,EACb,OAAkC;QAElC,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;qBAC/B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;qBAC3E,IAAI,CAAC,IAAI,CAAC,CAAA;gBACb,MAAM,IAAI,SAAS,CAAC,wDAAwD,MAAM,EAAE,CAAC,CAAA;YACvF,CAAC;YACD,KAAK,GAAG,MAAM,CAAC,IAAc,CAAA;QAC/B,CAAC;QAED,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,EAAE,KAAK,EAAE,CAAA;QAC/C,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC5B,QAAQ,EAAE,EAAE,CAAC,6BAA6B,CAAC,EAAE,yBAAyB,EAAE;SACzE,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,aAAa,CAC1B,QAA6C;QAE7C,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,6BAA6B,IAAI,QAAQ,CAAC,EAAE,CAAC;YAC3E,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,MAAM,EAAE,CAAC,6BAA6B,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAA;QAC3E,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,KAAkB;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;QAC/B,IAAI,QAAQ,EAAE,CAAC,6BAA6B,CAAC,KAAK,yBAAyB,EAAE,CAAC;YAC5E,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAsB,EAAE,CAAA;QAC1E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,KAAwB;QAC3D,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAClE,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,KAAwB;QAC5D,YAAY,CAAC,2BAA2B,CAAC,KAAK,EAAE,IAAI,OAAO,EAAU,EAAE,QAAQ,CAAC,CAAA;IAClF,CAAC;IAEO,MAAM,CAAC,2BAA2B,CACxC,KAAwB,EACxB,IAAqB,EACrB,IAAY;QAEZ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAM;QAE1B,MAAM,IAAI,GAAG,OAAO,KAAK,CAAA;QACzB,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;YAAE,OAAM;QACnD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,SAAS,CAAC,gCAAgC,IAAI,2BAA2B,CAAC,CAAA;YACtF,CAAC;YACD,OAAM;QACR,CAAC;QAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,SAAS,CAAC,gCAAgC,IAAI,4BAA4B,CAAC,CAAA;QACvF,CAAC;QAED,MAAM,WAAW,GAAG,KAAe,CAAA;QACnC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,SAAS,CAAC,gCAAgC,IAAI,iCAAiC,CAAC,CAAA;QAC5F,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAErB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,YAAY,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;YAC3E,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YACxB,OAAM;QACR,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,YAAY,CAAC,2BAA2B,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAA;QACzE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAC1B,CAAC;IAED,mEAAmE;IAC3D,SAAS,CAAC,KAAkB;QAClC,OAAO,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,aAAa,CAAA;IACnF,CAAC;IAED;;;;;;;;OAQG;IACK,aAAa,CAAC,OAAsB;QAC1C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC;CACF"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/memory/shared.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@
40
40
  * - **Progress callbacks** — Callers can pass `onProgress` in the config to receive
41
41
  * structured {@link OrchestratorEvent}s without polling.
42
42
  */
43
- import type { AgentConfig, AgentRunResult, ConsensusOptions, ConsensusResult, ConsensusVerifyOptions, PlanArtifact, OrchestratorConfig, RunTasksOptions, RunTeamOptions, Task, TeamConfig, TeamRunResult } from '../types.js';
43
+ import type { AgentConfig, AgentRunResult, ConsensusOptions, ConsensusResult, PlanArtifact, OrchestratorConfig, RestoreOptions, RunTaskSpec, RunTasksOptions, RunTeamOptions, Task, TeamConfig, TeamRunResult } from '../types.js';
44
44
  import { Team } from '../team/team.js';
45
45
  /**
46
46
  * Determine whether a goal is simple enough to skip coordinator decomposition.
@@ -106,6 +106,7 @@ export declare function executeWithRetry(run: () => Promise<AgentRunResult>, tas
106
106
  export declare class OpenMultiAgent {
107
107
  private readonly config;
108
108
  private readonly teams;
109
+ private readonly fallbackCheckpointStore;
109
110
  private completedTaskCount;
110
111
  /**
111
112
  * @param config - Optional top-level configuration.
@@ -176,12 +177,30 @@ export declare class OpenMultiAgent {
176
177
  *
177
178
  * Task IDs, dependencies, assignees, titles, and descriptions are used exactly
178
179
  * as stored in the artifact. This is intentionally execution-only; it does not
179
- * synthesize a coordinator final answer and it does not implement durable
180
- * checkpoints.
180
+ * synthesize a coordinator final answer. Durable checkpoints are available
181
+ * through the same opt-in `checkpoint` option used by `runTasks`.
181
182
  */
182
- runFromPlan(team: Team, plan: PlanArtifact, options?: {
183
- abortSignal?: AbortSignal;
184
- }): Promise<TeamRunResult>;
183
+ runFromPlan(team: Team, plan: PlanArtifact, options?: RunTasksOptions): Promise<TeamRunResult>;
184
+ /**
185
+ * Resume a checkpointed run, or start a fresh one when no checkpoint exists.
186
+ *
187
+ * Loads the latest checkpoint from the configured {@link MemoryStore}, rebuilds
188
+ * the task queue and shared memory, skips already-completed tasks, and runs the
189
+ * remainder. When no checkpoint is found the call falls back to a normal run of
190
+ * the provided tasks/plan (or a no-op when neither is given).
191
+ *
192
+ * A resumed `runTeam` run re-runs the coordinator synthesis so the result
193
+ * matches a fresh `runTeam` (a synthesized final answer under the
194
+ * `'coordinator'` key in `agentResults`, not just raw per-task outputs).
195
+ * Re-supply the coordinator via `options.coordinator` — the checkpoint cannot
196
+ * persist a live adapter. If no usable coordinator config is available or the
197
+ * synthesis call fails, restore falls back to raw outputs and emits an
198
+ * `onProgress` `synthesis_failed` event. A restored `runTasks`/`runFromPlan`
199
+ * run never synthesizes; pass the original tasks/plan to resume it unchanged.
200
+ */
201
+ restore(team: Team, tasks: ReadonlyArray<RunTaskSpec>, options?: RestoreOptions): Promise<TeamRunResult>;
202
+ restore(team: Team, plan: PlanArtifact, options?: RestoreOptions): Promise<TeamRunResult>;
203
+ restore(team: Team, options?: RestoreOptions): Promise<TeamRunResult>;
185
204
  /**
186
205
  * Run a team with an explicitly provided task list.
187
206
  *
@@ -192,19 +211,7 @@ export declare class OpenMultiAgent {
192
211
  * @param team - A team created via {@link createTeam}.
193
212
  * @param tasks - Array of task descriptors.
194
213
  */
195
- runTasks(team: Team, tasks: ReadonlyArray<{
196
- title: string;
197
- description: string;
198
- assignee?: string;
199
- dependsOn?: string[];
200
- memoryScope?: 'dependencies' | 'all';
201
- maxRetries?: number;
202
- retryDelayMs?: number;
203
- retryBackoff?: number;
204
- role?: string;
205
- priority?: 'low' | 'normal' | 'high' | 'critical';
206
- verify?: ConsensusVerifyOptions;
207
- }>, options?: RunTasksOptions): Promise<TeamRunResult>;
214
+ runTasks(team: Team, tasks: ReadonlyArray<RunTaskSpec>, options?: RunTasksOptions): Promise<TeamRunResult>;
208
215
  /**
209
216
  * Run a proposer→judge consensus over a single prompt.
210
217
  *
@@ -249,10 +256,28 @@ export declare class OpenMultiAgent {
249
256
  private buildCoordinatorSynthesisSection;
250
257
  /** Build the decomposition prompt for the coordinator. */
251
258
  private buildDecompositionPrompt;
259
+ /**
260
+ * Build the base coordinator {@link AgentConfig} shared by the decomposition
261
+ * and synthesis passes. Falls back to orchestrator defaults for any field the
262
+ * caller's {@link CoordinatorConfig} leaves unset.
263
+ */
264
+ private buildCoordinatorBaseConfig;
265
+ /**
266
+ * Run the coordinator synthesis pass over completed task results. Returns the
267
+ * synthesis result plus updated cumulative usage, or `null` when synthesis is
268
+ * skipped (run aborted, or the token budget was already exhausted before the
269
+ * pass). Emits `budget_exceeded` (when synthesis tips over budget) and
270
+ * `agent_complete`, mirroring the inline `runTeam` path. Does not mutate
271
+ * `agentResults` — the caller records the `'coordinator'` entry.
272
+ */
273
+ private runCoordinatorSynthesis;
252
274
  /** Build the synthesis prompt shown to the coordinator after all tasks complete. */
253
275
  private buildSynthesisPrompt;
254
276
  private tasksFromPlan;
255
277
  private executeExplicitTaskQueue;
278
+ private createActiveCheckpoint;
279
+ private agentResultsFromCheckpoint;
280
+ private isPlanArtifact;
256
281
  /**
257
282
  * Load a list of task specs into a queue.
258
283
  *
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}