@gjczone/pi-swarm 0.1.6 → 0.2.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.
Files changed (46) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +57 -2
  3. package/dist/index.js.map +1 -1
  4. package/dist/shared/controller.d.ts +5 -2
  5. package/dist/shared/controller.d.ts.map +1 -1
  6. package/dist/shared/controller.js +99 -28
  7. package/dist/shared/controller.js.map +1 -1
  8. package/dist/shared/render.d.ts +2 -2
  9. package/dist/shared/render.js +3 -3
  10. package/dist/shared/spawner.d.ts +1 -1
  11. package/dist/shared/spawner.d.ts.map +1 -1
  12. package/dist/shared/spawner.js +237 -132
  13. package/dist/shared/spawner.js.map +1 -1
  14. package/dist/shared/types.d.ts +21 -0
  15. package/dist/shared/types.d.ts.map +1 -1
  16. package/dist/state/persistence.d.ts +7 -0
  17. package/dist/state/persistence.d.ts.map +1 -1
  18. package/dist/state/persistence.js +53 -3
  19. package/dist/state/persistence.js.map +1 -1
  20. package/dist/state/recovery.d.ts.map +1 -1
  21. package/dist/state/recovery.js +21 -7
  22. package/dist/state/recovery.js.map +1 -1
  23. package/dist/swarm/tool.d.ts.map +1 -1
  24. package/dist/swarm/tool.js +69 -2
  25. package/dist/swarm/tool.js.map +1 -1
  26. package/dist/team/command.d.ts +3 -2
  27. package/dist/team/command.d.ts.map +1 -1
  28. package/dist/team/command.js +24 -7
  29. package/dist/team/command.js.map +1 -1
  30. package/dist/team/mailbox.d.ts +1 -1
  31. package/dist/team/mailbox.d.ts.map +1 -1
  32. package/dist/team/mailbox.js +31 -10
  33. package/dist/team/mailbox.js.map +1 -1
  34. package/dist/team/supervisor.d.ts +17 -2
  35. package/dist/team/supervisor.d.ts.map +1 -1
  36. package/dist/team/supervisor.js +123 -13
  37. package/dist/team/supervisor.js.map +1 -1
  38. package/dist/team/tool.d.ts +2 -2
  39. package/dist/team/tool.d.ts.map +1 -1
  40. package/dist/team/tool.js +26 -18
  41. package/dist/team/tool.js.map +1 -1
  42. package/dist/tui/progress.d.ts +10 -0
  43. package/dist/tui/progress.d.ts.map +1 -1
  44. package/dist/tui/progress.js +47 -0
  45. package/dist/tui/progress.js.map +1 -1
  46. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * spawner launch and manage pi subagent child processes.
2
+ * spawner - launch and manage pi subagent child processes.
3
3
  *
4
4
  * Each subagent runs as an independent `pi --print` child process.
5
5
  * The parent parses JSON Lines events from stdout to track progress,
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { spawn } from "node:child_process";
9
9
  import { getPiInvocation, buildSubagentArgs } from "./pi-invoke.js";
10
+ const MAX_LINE_BUFFER_SIZE = 10 * 1024 * 1024;
10
11
  // ---------------------------------------------------------------------------
11
12
  // Spawner implementation
12
13
  // ---------------------------------------------------------------------------
@@ -63,159 +64,263 @@ async function runSubagentProcess(agentId, opts) {
63
64
  });
64
65
  const invocation = getPiInvocation(args);
65
66
  const cwd = opts.cwd ?? process.cwd();
66
- const result = await new Promise((resolve, reject) => {
67
- const proc = spawn(invocation.command, invocation.args, {
68
- cwd,
69
- shell: false,
70
- stdio: ["ignore", "pipe", "pipe"],
71
- env: { ...process.env },
72
- });
73
- const parsed = parseEventStream(proc, agentId);
74
- // Handle abort signal
67
+ const proc = spawn(invocation.command, invocation.args, {
68
+ cwd,
69
+ shell: false,
70
+ stdio: ["ignore", "pipe", "pipe"],
71
+ env: { ...process.env },
72
+ });
73
+ let sigkillTimer;
74
+ let timeoutHandle;
75
+ let streamReject;
76
+ let settled = false;
77
+ const cleanup = () => {
78
+ settled = true;
79
+ if (sigkillTimer) {
80
+ clearTimeout(sigkillTimer);
81
+ sigkillTimer = undefined;
82
+ }
83
+ if (timeoutHandle) {
84
+ clearTimeout(timeoutHandle);
85
+ timeoutHandle = undefined;
86
+ }
75
87
  if (opts.signal) {
76
- const killProc = (reason) => {
77
- if (!proc.killed) {
78
- proc.kill("SIGTERM");
79
- setTimeout(() => {
80
- if (!proc.killed)
81
- proc.kill("SIGKILL");
82
- }, 5000);
83
- }
84
- reject(reason instanceof Error
85
- ? reason
86
- : new Error("Subagent aborted"));
87
- };
88
- if (opts.signal.aborted) {
89
- killProc(opts.signal.reason);
90
- return;
91
- }
92
- opts.signal.addEventListener("abort", () => killProc(opts.signal.reason), {
93
- once: true,
94
- });
88
+ opts.signal.removeEventListener("abort", onAbort);
95
89
  }
96
- // Handle timeout
97
- let timeoutHandle;
98
- if (opts.timeout && opts.timeout > 0) {
99
- timeoutHandle = setTimeout(() => {
100
- if (!proc.killed) {
101
- proc.kill("SIGTERM");
102
- setTimeout(() => {
103
- if (!proc.killed)
104
- proc.kill("SIGKILL");
105
- }, 5000);
106
- }
107
- reject(new Error("Subagent timed out"));
108
- }, opts.timeout);
90
+ };
91
+ const scheduleSigkill = () => {
92
+ if (sigkillTimer)
93
+ clearTimeout(sigkillTimer);
94
+ sigkillTimer = setTimeout(() => {
95
+ if (!proc.killed)
96
+ proc.kill("SIGKILL");
97
+ }, 5000);
98
+ };
99
+ const killProc = (reason) => {
100
+ if (settled)
101
+ return;
102
+ settled = true;
103
+ if (!proc.killed) {
104
+ proc.kill("SIGTERM");
105
+ scheduleSigkill();
109
106
  }
110
- proc.on("close", (code) => {
111
- if (timeoutHandle)
112
- clearTimeout(timeoutHandle);
113
- if (code === 0 || code === null) {
114
- resolve(parsed);
107
+ const err = reason instanceof Error
108
+ ? reason
109
+ : new Error("Subagent aborted");
110
+ if (streamReject) {
111
+ cleanup();
112
+ streamReject(err);
113
+ }
114
+ };
115
+ const onAbort = () => killProc(opts.signal?.reason);
116
+ if (opts.signal) {
117
+ if (opts.signal.aborted) {
118
+ killProc(opts.signal.reason);
119
+ }
120
+ else {
121
+ opts.signal.addEventListener("abort", onAbort, { once: true });
122
+ }
123
+ }
124
+ if (opts.timeout && opts.timeout > 0) {
125
+ timeoutHandle = setTimeout(() => {
126
+ if (settled)
127
+ return;
128
+ settled = true;
129
+ if (!proc.killed) {
130
+ proc.kill("SIGTERM");
131
+ scheduleSigkill();
115
132
  }
116
- else {
117
- reject(new Error(`Subagent exited with code ${code}: ${parsed.errorMessage || parsed.text || "unknown error"}`));
133
+ if (streamReject) {
134
+ cleanup();
135
+ streamReject(new Error("Subagent timed out"));
118
136
  }
137
+ }, opts.timeout);
138
+ }
139
+ try {
140
+ const result = await new Promise((resolve, reject) => {
141
+ streamReject = reject;
142
+ parseEventStream(proc, agentId).then((parsed) => {
143
+ if (settled)
144
+ return;
145
+ cleanup();
146
+ resolve(parsed);
147
+ }, (err) => {
148
+ if (settled)
149
+ return;
150
+ cleanup();
151
+ reject(err);
152
+ });
119
153
  });
120
- proc.on("error", (err) => {
121
- if (timeoutHandle)
122
- clearTimeout(timeoutHandle);
123
- reject(err);
124
- });
125
- });
126
- return {
127
- result: result.text || "(no output)",
128
- usage: result.usage,
129
- };
154
+ return {
155
+ result: result.text || "(no output)",
156
+ usage: result.usage,
157
+ };
158
+ }
159
+ catch (err) {
160
+ cleanup();
161
+ throw err;
162
+ }
130
163
  }
131
164
  /**
132
165
  * Parse the JSON Lines event stream from a pi --print child process.
133
- * Accumulates usage stats and extracts the final text result.
166
+ * Returns a Promise that resolves after process close with accumulated results.
134
167
  */
135
- function parseEventStream(proc, _agentId) {
136
- // Mutable accumulator (interface fields are readonly)
137
- const usageAcc = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, totalTokens: 0 };
138
- let finalText = "";
139
- let stopReason;
140
- let errorMessage;
141
- let buffer = "";
142
- const processLine = (line) => {
143
- if (!line.trim())
144
- return;
145
- let event;
146
- try {
147
- event = JSON.parse(line);
148
- }
149
- catch {
150
- return; // Ignore non-JSON lines
151
- }
152
- // Accumulate usage from message_end events (assistant messages)
153
- if (event.type === "message_end" &&
154
- event.message?.role === "assistant") {
155
- const msg = event.message;
156
- if (msg.usage) {
157
- usageAcc.input += msg.usage.input || 0;
158
- usageAcc.output += msg.usage.output || 0;
159
- usageAcc.cacheRead += msg.usage.cacheRead || 0;
160
- usageAcc.cacheWrite += msg.usage.cacheWrite || 0;
161
- usageAcc.totalTokens = msg.usage.totalTokens || usageAcc.totalTokens;
168
+ function parseEventStream(proc, agentId) {
169
+ return new Promise((resolve, reject) => {
170
+ const usageAcc = {
171
+ input: 0,
172
+ output: 0,
173
+ cacheRead: 0,
174
+ cacheWrite: 0,
175
+ totalTokens: 0,
176
+ };
177
+ let finalText = "";
178
+ let stopReason;
179
+ let errorMessage = "";
180
+ let buffer = "";
181
+ let unparseableCount = 0;
182
+ let settled = false;
183
+ const settle = (result, err) => {
184
+ if (settled)
185
+ return;
186
+ settled = true;
187
+ proc.stdout?.removeAllListeners();
188
+ proc.stderr?.removeAllListeners();
189
+ proc.removeAllListeners();
190
+ if (err) {
191
+ reject(err);
162
192
  }
163
- if (msg.stopReason)
164
- stopReason = msg.stopReason;
165
- if (msg.errorMessage)
166
- errorMessage = msg.errorMessage;
167
- // Collect text content from the final message
168
- const content = msg.content;
169
- if (content && Array.isArray(content)) {
170
- for (const block of content) {
171
- if (block.type === "text" && block.text) {
172
- finalText += block.text;
193
+ else if (result) {
194
+ resolve(result);
195
+ }
196
+ };
197
+ const buildResult = () => ({
198
+ text: finalText,
199
+ usage: {
200
+ input: usageAcc.input,
201
+ output: usageAcc.output,
202
+ cacheRead: usageAcc.cacheRead,
203
+ cacheWrite: usageAcc.cacheWrite,
204
+ totalTokens: usageAcc.totalTokens,
205
+ },
206
+ stopReason,
207
+ errorMessage: errorMessage || undefined,
208
+ });
209
+ const processLine = (line) => {
210
+ if (!line.trim())
211
+ return;
212
+ let event;
213
+ try {
214
+ event = JSON.parse(line);
215
+ }
216
+ catch {
217
+ unparseableCount++;
218
+ if (unparseableCount === 1 || unparseableCount % 100 === 0) {
219
+ console.error(`[pi-swarm] Agent ${agentId}: ${unparseableCount} unparseable output line(s)`);
220
+ }
221
+ return;
222
+ }
223
+ if (event.type === "message_end" &&
224
+ event.message?.role === "assistant") {
225
+ const msg = event.message;
226
+ if (msg.usage) {
227
+ usageAcc.input += msg.usage.input || 0;
228
+ usageAcc.output += msg.usage.output || 0;
229
+ usageAcc.cacheRead += msg.usage.cacheRead || 0;
230
+ usageAcc.cacheWrite += msg.usage.cacheWrite || 0;
231
+ usageAcc.totalTokens += msg.usage.totalTokens || 0;
232
+ }
233
+ if (msg.stopReason)
234
+ stopReason = msg.stopReason;
235
+ if (msg.errorMessage) {
236
+ if (errorMessage)
237
+ errorMessage += "\n";
238
+ errorMessage += msg.errorMessage;
239
+ }
240
+ const content = msg.content;
241
+ if (content && Array.isArray(content)) {
242
+ for (const block of content) {
243
+ if (block.type === "text" && block.text) {
244
+ finalText += block.text;
245
+ }
173
246
  }
174
247
  }
175
248
  }
176
- }
177
- // Tool result events collect output for display
178
- if (event.type === "tool_result_end") {
179
- // Tool results are captured for event logging
180
- }
181
- };
182
- if (proc.stdout) {
183
- proc.stdout.on("data", (data) => {
184
- buffer += data.toString();
249
+ };
250
+ const processBuffer = () => {
251
+ if (!buffer.trim())
252
+ return;
185
253
  const lines = buffer.split("\n");
186
254
  buffer = lines.pop() || "";
187
255
  for (const line of lines) {
188
256
  processLine(line);
189
257
  }
190
- });
191
- // Must subscribe to consume the stream
192
- proc.stdout.resume();
193
- }
194
- if (proc.stderr) {
195
- proc.stderr.on("data", (data) => {
196
- // Stderr may contain error details
197
- const text = data.toString().trim();
198
- if (text && !errorMessage) {
199
- errorMessage = text;
258
+ };
259
+ if (proc.stdout) {
260
+ proc.stdout.on("data", (data) => {
261
+ if (settled)
262
+ return;
263
+ buffer += data.toString();
264
+ if (buffer.length > MAX_LINE_BUFFER_SIZE) {
265
+ settle(null, new Error(`Subagent output exceeded buffer limit (${MAX_LINE_BUFFER_SIZE / 1024 / 1024}MB)`));
266
+ if (!proc.killed) {
267
+ proc.kill("SIGTERM");
268
+ setTimeout(() => {
269
+ if (!proc.killed)
270
+ proc.kill("SIGKILL");
271
+ }, 5000);
272
+ }
273
+ return;
274
+ }
275
+ processBuffer();
276
+ });
277
+ proc.stdout.on("error", (err) => {
278
+ console.error(`[pi-swarm] stdout error for agent ${agentId}:`, err.message);
279
+ if (!settled) {
280
+ settle(null, new Error(`Subagent stdout error: ${err.message}`));
281
+ }
282
+ });
283
+ proc.stdout.resume();
284
+ }
285
+ if (proc.stderr) {
286
+ proc.stderr.on("data", (data) => {
287
+ if (settled)
288
+ return;
289
+ const text = data.toString();
290
+ if (text.trim()) {
291
+ if (errorMessage)
292
+ errorMessage += "\n";
293
+ errorMessage += text.trim();
294
+ }
295
+ });
296
+ proc.stderr.on("error", (err) => {
297
+ console.error(`[pi-swarm] stderr error for agent ${agentId}:`, err.message);
298
+ });
299
+ proc.stderr.resume();
300
+ }
301
+ proc.on("close", (code, signal) => {
302
+ if (settled)
303
+ return;
304
+ processBuffer();
305
+ if (code === 0 && signal === null) {
306
+ settle(buildResult());
307
+ }
308
+ else {
309
+ const errMsg = signal
310
+ ? `Subagent killed by signal ${signal}`
311
+ : `Subagent exited with code ${code}`;
312
+ const fullMsg = errorMessage
313
+ ? `${errMsg}: ${errorMessage}`
314
+ : errMsg;
315
+ settle(null, new Error(fullMsg));
200
316
  }
201
317
  });
202
- proc.stderr.resume();
203
- }
204
- // Process any remaining buffer on close
205
- const originalOn = proc.on.bind(proc);
206
- proc.on("close", () => {
207
- if (buffer.trim()) {
208
- processLine(buffer);
209
- }
318
+ proc.on("error", (err) => {
319
+ if (settled)
320
+ return;
321
+ settle(null, err);
322
+ });
210
323
  });
211
- const usage = {
212
- input: usageAcc.input,
213
- output: usageAcc.output,
214
- cacheRead: usageAcc.cacheRead,
215
- cacheWrite: usageAcc.cacheWrite,
216
- totalTokens: usageAcc.totalTokens,
217
- };
218
- return { text: finalText, usage, stopReason, errorMessage };
219
324
  }
220
325
  // ---------------------------------------------------------------------------
221
326
  // Helpers
@@ -1 +1 @@
1
- {"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../src/shared/spawner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../src/shared/spawner.ts"],"names":[],"mappings":"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"}
@@ -164,6 +164,27 @@ export interface SubagentBatchOptions {
164
164
  * `undefined` means no cap (legacy ramp behavior).
165
165
  */
166
166
  readonly maxConcurrency?: number;
167
+ /**
168
+ * Optional progress callback invoked when task states change.
169
+ * Receives a snapshot of the current batch progress.
170
+ */
171
+ readonly onProgress?: (snapshot: BatchProgressSnapshot) => void;
172
+ }
173
+ /** Snapshot of batch progress for TUI display. */
174
+ export interface BatchProgressSnapshot {
175
+ readonly total: number;
176
+ readonly completed: number;
177
+ readonly failed: number;
178
+ readonly active: number;
179
+ readonly queued: number;
180
+ readonly members: ReadonlyArray<BatchMemberStatus>;
181
+ }
182
+ /** Per-member status in a progress snapshot. */
183
+ export interface BatchMemberStatus {
184
+ readonly index: number;
185
+ readonly phase: "queued" | "working" | "completed" | "failed" | "suspended";
186
+ readonly item?: string;
187
+ readonly error?: string;
167
188
  }
168
189
  /** Emitted when a subagent is suspended due to rate limiting. */
169
190
  export interface SubagentSuspendedEvent {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@
14
14
  * status.json -- per-agent status
15
15
  * output.log -- agent stdout capture
16
16
  */
17
+ export declare function validateId(id: string, kind: string): void;
17
18
  /**
18
19
  * Resolve the crew root directory.
19
20
  *
@@ -32,6 +33,7 @@ export interface RunManifest {
32
33
  goal?: string;
33
34
  startedAt: number;
34
35
  completedAt?: number;
36
+ lastHeartbeatAt?: number;
35
37
  agentIds: string[];
36
38
  }
37
39
  /**
@@ -47,6 +49,10 @@ export declare function readManifest(crewRoot: string, runId: string): RunManife
47
49
  * Update a run manifest (overwrites the file atomically).
48
50
  */
49
51
  export declare function updateManifest(crewRoot: string, manifest: RunManifest): void;
52
+ /**
53
+ * Update the heartbeat timestamp for a running manifest.
54
+ */
55
+ export declare function updateHeartbeat(crewRoot: string, runId: string): void;
50
56
  /**
51
57
  * Persist task state (task graph) to disk.
52
58
  */
@@ -74,6 +80,7 @@ export declare function saveAgentStatus(crewRoot: string, runId: string, agentId
74
80
  export declare function loadAgentStatus(crewRoot: string, runId: string, agentId: string): Record<string, unknown> | null;
75
81
  /**
76
82
  * List all active run IDs in the state directory.
83
+ * Only returns IDs that match the safe ID pattern.
77
84
  */
78
85
  export declare function listActiveRuns(crewRoot: string): string[];
79
86
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/state/persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUnD;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAER;AAED,yCAAyC;AACzC,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,MAAM,CASR;AAMD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,WAAW,GACpB,IAAI,CAON;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,WAAW,GAAG,IAAI,CAWpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,WAAW,GACpB,IAAI,CAON;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CAON;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWhC;AAMD;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAsB3B;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAON;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWhC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAQzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,IAAI,CAKN"}
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/state/persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAOzD;AAcD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUnD;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAMR;AAED,yCAAyC;AACzC,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,MAAM,CAOR;AAMD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,WAAW,GACpB,IAAI,CAON;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,WAAW,GAAG,IAAI,CAWpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,WAAW,GACpB,IAAI,CAON;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,IAAI,CAMN;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CAON;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWhC;AAMD;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAsB3B;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAON;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWhC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,IAAI,CAKN"}