pi-fabric 0.92.11 → 0.92.12

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 (47) hide show
  1. package/dist/agents/constants.d.ts +4 -0
  2. package/dist/agents/constants.d.ts.map +1 -1
  3. package/dist/agents/manager.d.ts.map +1 -1
  4. package/dist/agents/types.d.ts +12 -0
  5. package/dist/agents/types.d.ts.map +1 -1
  6. package/dist/agents.js +2 -2
  7. package/dist/chunks/{chunk-YDM3MYCO.js → chunk-AYBIR4YV.js} +3 -1
  8. package/dist/chunks/chunk-AYBIR4YV.js.map +7 -0
  9. package/dist/chunks/{chunk-6IFKG3XW.js → chunk-DLYYHK6Z.js} +147 -6
  10. package/dist/chunks/chunk-DLYYHK6Z.js.map +7 -0
  11. package/dist/chunks/{chunk-RBJCUU6I.js → chunk-EZ7YLET5.js} +2 -2
  12. package/dist/chunks/{chunk-RBJCUU6I.js.map → chunk-EZ7YLET5.js.map} +2 -2
  13. package/dist/chunks/{chunk-6JXOWBFU.js → chunk-FN6Q4R4M.js} +3 -1
  14. package/dist/chunks/chunk-FN6Q4R4M.js.map +7 -0
  15. package/dist/chunks/{chunk-XXIGW2NG.js → chunk-HUCNOAKK.js} +2 -2
  16. package/dist/chunks/{chunk-AAXQR7SZ.js → chunk-OAXSWVOB.js} +2 -2
  17. package/dist/chunks/{chunk-TNPFEDWD.js → chunk-R4AZTYXC.js} +4 -4
  18. package/dist/config.d.ts.map +1 -1
  19. package/dist/fabric-runtime-state.js +4 -4
  20. package/dist/index.js +2 -2
  21. package/dist/lifecycle/types.d.ts +1 -1
  22. package/dist/lifecycle/types.d.ts.map +1 -1
  23. package/dist/residency/host.js +4 -4
  24. package/dist/residency/pi-entry.js +4 -4
  25. package/dist/runtime/core-override-guest-types.js +2 -2
  26. package/dist/runtime/guest-types.d.ts +1 -1
  27. package/dist/runtime/guest-types.d.ts.map +1 -1
  28. package/dist/runtime/guest-types.js +1 -1
  29. package/dist/runtime/monty-runtime.js +1 -1
  30. package/dist/runtime/typescript-kernel.js +2 -2
  31. package/dist/ui/settings.js +1 -1
  32. package/dist/worker/options.d.ts.map +1 -1
  33. package/dist/worker/options.js +32 -0
  34. package/dist/worker/options.js.map +2 -2
  35. package/dist/worker/run-record.js +3 -3
  36. package/dist/worker/run-record.js.map +2 -2
  37. package/docs/agents.md +2 -2
  38. package/docs/configuration.md +2 -2
  39. package/package.json +1 -1
  40. package/skillsets/typescript/fabric-exec/SKILL.md +1 -1
  41. package/skillsets/typescript/fabric-exec/references/agents.md +1 -1
  42. package/dist/chunks/chunk-6IFKG3XW.js.map +0 -7
  43. package/dist/chunks/chunk-6JXOWBFU.js.map +0 -7
  44. package/dist/chunks/chunk-YDM3MYCO.js.map +0 -7
  45. /package/dist/chunks/{chunk-XXIGW2NG.js.map → chunk-HUCNOAKK.js.map} +0 -0
  46. /package/dist/chunks/{chunk-AAXQR7SZ.js.map → chunk-OAXSWVOB.js.map} +0 -0
  47. /package/dist/chunks/{chunk-TNPFEDWD.js.map → chunk-R4AZTYXC.js.map} +0 -0
@@ -2,4 +2,8 @@ export declare const AGENT_STATUS_POLL_INTERVAL_MS = 250;
2
2
  export declare const EXTERNAL_TRANSPORT_LIVENESS_POLL_INTERVAL_MS = 2000;
3
3
  export declare const AGENT_STARTUP_MAX_ATTEMPTS = 3;
4
4
  export declare const AGENT_STARTUP_RETRY_BASE_DELAY_MS = 500;
5
+ /** Relaunch attempts after an unexpected mid-run stop. An explicit stop (tool,
6
+ * dashboard, or session shutdown) is terminal and never resumed. */
7
+ export declare const AGENT_RESUME_MAX_ATTEMPTS = 3;
8
+ export declare const AGENT_RESUME_RETRY_BASE_DELAY_MS = 1000;
5
9
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/agents/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD,eAAO,MAAM,4CAA4C,OAAQ,CAAC;AAClE,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,iCAAiC,MAAM,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/agents/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD,eAAO,MAAM,4CAA4C,OAAQ,CAAC;AAClE,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,iCAAiC,MAAM,CAAC;AACrD;qEACqE;AACrE,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,gCAAgC,OAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"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"}
@@ -214,6 +214,18 @@ export interface AgentWorkerOptions {
214
214
  branch?: string;
215
215
  worktree?: string;
216
216
  inheritedSessionPins?: InheritedSessionPin[];
217
+ carryOver?: AgentRunCarryOver;
218
+ }
219
+ /**
220
+ * Cumulative totals a relaunched worker seeds its fresh run record with. The
221
+ * worker owns the run record, so passing the prefix here (instead of adding it
222
+ * host-side) keeps every reader — status file, live UI rows, settled result,
223
+ * and the budget ledger's settle residual — on one cumulative number.
224
+ */
225
+ export interface AgentRunCarryOver {
226
+ turns: number;
227
+ toolCalls: number;
228
+ usage: AgentUsage;
217
229
  }
218
230
  export interface AgentTransportLaunch {
219
231
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"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"}
package/dist/agents.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  AGENTS_ACTION_DESCRIPTORS,
6
6
  normalizeAgentRunRequest
7
- } from "./chunks/chunk-AAXQR7SZ.js";
7
+ } from "./chunks/chunk-OAXSWVOB.js";
8
8
  import {
9
9
  actionArgNormalizer
10
10
  } from "./chunks/chunk-NQOEHX62.js";
@@ -16,7 +16,7 @@ import {
16
16
  finishAgentSettlement,
17
17
  terminalAgentStatuses,
18
18
  waitForAgent
19
- } from "./chunks/chunk-YDM3MYCO.js";
19
+ } from "./chunks/chunk-AYBIR4YV.js";
20
20
  import "./chunks/chunk-OTCASLY2.js";
21
21
  import "./chunks/chunk-MGWQOKBV.js";
22
22
  import "./chunks/chunk-3H7SDWZI.js";
@@ -13,6 +13,8 @@ var FABRIC_LIFECYCLE_EVENTS = [
13
13
  "run.failed",
14
14
  "run.stopped",
15
15
  "run.timed_out",
16
+ "run.resumed",
17
+ "run.detached",
16
18
  "tokens.usage",
17
19
  "component.state"
18
20
  ];
@@ -205,4 +207,4 @@ export {
205
207
  finishAgentSettlement,
206
208
  waitForAgent
207
209
  };
208
- //# sourceMappingURL=chunk-YDM3MYCO.js.map
210
+ //# sourceMappingURL=chunk-AYBIR4YV.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/lifecycle/types.ts", "../../src/agents/semaphore.ts", "../../src/agents/lifecycle.ts"],
4
+ "sourcesContent": ["import type { FabricAgentRunner } from \"../config.js\";\nimport type { MeshEvent, MeshIdentity } from \"../mesh/store.js\";\nimport type { FabricParticipantKind } from \"../topology/types.js\";\n\nexport const FABRIC_PARTICIPANT_LIFECYCLE_TOPIC = \"fabric.participant.lifecycle\";\nexport const FABRIC_LIFECYCLE_SUBSCRIPTION_PREFIX = \"topology/subscriptions/\";\n\nexport const FABRIC_LIFECYCLE_EVENTS = [\n \"pi.input\",\n \"pi.agent_start\",\n \"pi.agent_end\",\n \"pi.turn_end\",\n \"pi.agent_settled\",\n \"pi.tool_error\",\n \"pi.session_compact\",\n \"run.completed\",\n \"run.failed\",\n \"run.stopped\",\n \"run.timed_out\",\n \"run.resumed\",\n \"run.detached\",\n \"tokens.usage\",\n \"component.state\",\n] as const;\n\nexport type FabricLifecycleEventType = (typeof FABRIC_LIFECYCLE_EVENTS)[number];\ntype FabricLifecycleDelivery = \"steer\" | \"followUp\";\n\nexport interface FabricLifecycleSource {\n id: string;\n name: string;\n kind: FabricParticipantKind;\n rootId: string;\n runner: FabricAgentRunner;\n ownerHostId?: string;\n ownerIdentityId?: string;\n}\n\nexport interface FabricLifecyclePublishRequest {\n source: FabricLifecycleSource;\n event: FabricLifecycleEventType;\n occurredAt?: number;\n runId?: string;\n status?: string;\n data?: unknown;\n}\n\nexport interface FabricLifecycleEvent {\n version: 1;\n id: string;\n sequence: number;\n event: FabricLifecycleEventType;\n source: FabricLifecycleSource;\n occurredAt: number;\n publishedAt: number;\n runId?: string;\n status?: string;\n data?: unknown;\n}\n\n/**\n * Attributed token usage for one token-bearing child event.\n *\n * The worker emits one of these per assistant message (Pi) or per usage-bearing\n * assistant/result frame (Claude), tagged with the run/runner/depth identity the\n * manager passes in. Cumulative tokens mirror in + cacheRead + cacheWrite at\n * the moment the event fired; cost is micro-USD from the runner's own report.\n */\nexport interface FabricTokenUsagePayload {\n runId: string;\n name: string;\n runner: FabricAgentRunner;\n depth: number;\n actorId?: string;\n actorName?: string;\n cumulativeTokens: number;\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n cost: number;\n}\n\nexport const tokenUsagePayloadFromValue = (\n value: unknown,\n): FabricTokenUsagePayload | undefined => {\n if (!isObject(value)) return undefined;\n const runner =\n value.runner === \"pi\" || value.runner === \"claude\" || value.runner === \"veda\"\n ? value.runner\n : undefined;\n if (\n typeof value.runId !== \"string\" ||\n typeof value.name !== \"string\" ||\n runner === undefined ||\n typeof value.depth !== \"number\" ||\n typeof value.cumulativeTokens !== \"number\" ||\n typeof value.input !== \"number\" ||\n typeof value.output !== \"number\" ||\n typeof value.cacheRead !== \"number\" ||\n typeof value.cacheWrite !== \"number\" ||\n typeof value.cost !== \"number\"\n ) {\n return undefined;\n }\n return value as unknown as FabricTokenUsagePayload;\n};\n\nexport interface FabricLifecycleSubscriptionRequest {\n from: string;\n events: FabricLifecycleEventType[];\n to: string;\n delivery: FabricLifecycleDelivery;\n triggerTurn: boolean;\n once?: boolean;\n}\n\nexport interface FabricLifecycleSubscription {\n format: 1;\n id: string;\n from: string;\n events: FabricLifecycleEventType[];\n to: string;\n delivery: FabricLifecycleDelivery;\n triggerTurn: boolean;\n once: boolean;\n afterSequence: number;\n createdAt: number;\n updatedAt: number;\n createdBy: MeshIdentity;\n lastDeliveredAt?: number;\n lastEventId?: string;\n lastError?: string;\n}\n\nconst lifecycleEvents = new Set<string>(FABRIC_LIFECYCLE_EVENTS);\n\nexport const isFabricLifecycleEventType = (\n value: unknown,\n): value is FabricLifecycleEventType =>\n typeof value === \"string\" && lifecycleEvents.has(value);\n\nconst isObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst participantKind = (value: unknown): FabricParticipantKind | undefined =>\n value === \"root\" || value === \"agent\" || value === \"actor\" ? value : undefined;\n\nexport const lifecycleSourceIdentity = (source: FabricLifecycleSource): MeshIdentity => ({\n id: source.id,\n name: source.name,\n kind: source.kind === \"root\" ? \"main\" : source.kind,\n});\n\nexport const lifecycleEventFromMesh = (\n event: MeshEvent,\n): FabricLifecycleEvent | undefined => {\n if (\n event.topic !== FABRIC_PARTICIPANT_LIFECYCLE_TOPIC ||\n !isObject(event.data) ||\n event.data.version !== 1 ||\n !isFabricLifecycleEventType(event.data.event) ||\n event.kind !== event.data.event ||\n !isObject(event.data.source)\n ) {\n return undefined;\n }\n const source = event.data.source;\n const kind = participantKind(source.kind);\n const runner =\n source.runner === \"pi\" || source.runner === \"claude\" || source.runner === \"veda\"\n ? source.runner\n : undefined;\n if (\n !kind ||\n !runner ||\n typeof source.id !== \"string\" ||\n typeof source.name !== \"string\" ||\n typeof source.rootId !== \"string\" ||\n event.from.id !== source.id ||\n (kind === \"root\" ? event.from.kind !== \"main\" : event.from.kind !== kind) ||\n typeof event.data.occurredAt !== \"number\"\n ) {\n return undefined;\n }\n const parsedSource: FabricLifecycleSource = {\n id: source.id,\n name: source.name,\n kind,\n rootId: source.rootId,\n runner,\n ...(typeof source.ownerHostId === \"string\" ? { ownerHostId: source.ownerHostId } : {}),\n ...(typeof source.ownerIdentityId === \"string\"\n ? { ownerIdentityId: source.ownerIdentityId }\n : {}),\n };\n return {\n version: 1,\n id: event.id,\n sequence: event.sequence,\n event: event.data.event,\n source: parsedSource,\n occurredAt: event.data.occurredAt,\n publishedAt: event.createdAt,\n ...(typeof event.data.runId === \"string\" ? { runId: event.data.runId } : {}),\n ...(typeof event.data.status === \"string\" ? { status: event.data.status } : {}),\n ...(Object.prototype.hasOwnProperty.call(event.data, \"payload\")\n ? { data: event.data.payload }\n : {}),\n };\n};\n\nexport const lifecycleSubscriptionFromValue = (\n value: unknown,\n): FabricLifecycleSubscription | undefined => {\n if (!isObject(value) || value.format !== 1 || !isObject(value.createdBy)) return undefined;\n if (\n typeof value.id !== \"string\" ||\n typeof value.from !== \"string\" ||\n typeof value.to !== \"string\" ||\n !Array.isArray(value.events) ||\n value.events.length === 0 ||\n !value.events.every(isFabricLifecycleEventType) ||\n (value.delivery !== \"steer\" && value.delivery !== \"followUp\") ||\n typeof value.triggerTurn !== \"boolean\" ||\n typeof value.once !== \"boolean\" ||\n typeof value.afterSequence !== \"number\" ||\n typeof value.createdAt !== \"number\" ||\n typeof value.updatedAt !== \"number\" ||\n typeof value.createdBy.id !== \"string\" ||\n typeof value.createdBy.name !== \"string\" ||\n (value.createdBy.kind !== \"main\" &&\n value.createdBy.kind !== \"agent\" &&\n value.createdBy.kind !== \"actor\")\n ) {\n return undefined;\n }\n return value as unknown as FabricLifecycleSubscription;\n};\n", "interface SemaphoreWaiter {\n resolve(release: () => void): void;\n reject(error: Error): void;\n signal: AbortSignal | undefined;\n abortHandler: (() => void) | undefined;\n}\n\nexport class Semaphore {\n #active = 0;\n readonly #waiters: SemaphoreWaiter[] = [];\n\n constructor(readonly limit: number) {\n if (!Number.isInteger(limit) || limit < 1) throw new Error(\"Semaphore limit must be positive\");\n }\n\n acquire(signal?: AbortSignal): Promise<() => void> {\n if (signal?.aborted) return Promise.reject(new Error(\"Operation aborted\"));\n if (this.#active < this.limit) {\n this.#active++;\n return Promise.resolve(this.#releaseFunction());\n }\n return new Promise((resolve, reject) => {\n const waiter: SemaphoreWaiter = {\n resolve,\n reject,\n signal,\n abortHandler: undefined,\n };\n if (signal) {\n waiter.abortHandler = () => {\n const index = this.#waiters.indexOf(waiter);\n if (index >= 0) this.#waiters.splice(index, 1);\n reject(new Error(\"Operation aborted\"));\n };\n signal.addEventListener(\"abort\", waiter.abortHandler, { once: true });\n }\n this.#waiters.push(waiter);\n });\n }\n\n #releaseFunction(): () => void {\n let released = false;\n return () => {\n if (released) return;\n released = true;\n const waiter = this.#waiters.shift();\n if (waiter) {\n if (waiter.signal && waiter.abortHandler) {\n waiter.signal.removeEventListener(\"abort\", waiter.abortHandler);\n }\n waiter.resolve(this.#releaseFunction());\n return;\n }\n this.#active--;\n };\n }\n}\n", "import { Semaphore } from \"./semaphore.js\";\n\nexport const terminalAgentStatuses = new Set([\"completed\", \"failed\", \"stopped\", \"timed_out\"]);\n\nexport function assertAgentTask(request: {task: string; recursive?: boolean; extensions?: boolean}): void {\n if (typeof request.task !== \"string\" || !request.task.trim()) throw new Error(\"Agent task must not be empty\");\n if (request.recursive === true && request.extensions === false) {\n throw new Error(\"Recursive Fabric requires extensions enabled; omit recursive or extensions: false\");\n }\n}\n\n/** One semaphore per direct parent: recursive parents never hold their children's permits. */\nexport class AgentAdmission {\n readonly #parents = new Map<string, Semaphore>();\n starts: number;\n constructor(readonly concurrency: number, readonly maxStarts = Infinity, readonly maxDepth = Infinity, starts = 0) {\n if (!Number.isInteger(concurrency) || concurrency < 1) throw new Error(\"Agent concurrency must be positive\");\n this.starts = starts;\n }\n acquire(parentId: string, signal?: AbortSignal): Promise<() => void> {\n let semaphore = this.#parents.get(parentId);\n if (!semaphore) this.#parents.set(parentId, semaphore = new Semaphore(this.concurrency));\n return semaphore.acquire(signal);\n }\n admit(depth: number): void {\n if (depth > this.maxDepth) throw new Error(`Fabric agent depth limit reached (${this.maxDepth})`);\n if (this.starts >= this.maxStarts) throw new Error(`Fabric agent start limit reached (${this.maxStarts})`);\n this.starts++;\n }\n}\n\nexport interface AgentLifecycleState<T> {\n settled: boolean;\n result: Promise<T> | undefined;\n resolve: ((result: T) => void) | undefined;\n release(): void;\n abortSignal: AbortSignal | undefined;\n abortHandler: (() => void) | undefined;\n}\n\nexport function createAgentLifecycle<T>(release: () => void): AgentLifecycleState<T> {\n let resolve: ((result: T) => void) | undefined;\n const result = new Promise<T>((done) => { resolve = done; });\n return { settled: false, result, resolve, release, abortSignal: undefined, abortHandler: undefined };\n}\n\n/** Claim settlement once, detach owner cancellation, and release admission exactly once. */\nexport function beginAgentSettlement<T>(state: AgentLifecycleState<T>): boolean {\n if (state.settled) return false;\n state.settled = true;\n if (state.abortSignal && state.abortHandler) state.abortSignal.removeEventListener(\"abort\", state.abortHandler);\n state.abortSignal = undefined;\n state.abortHandler = undefined;\n state.release();\n state.release = () => {};\n return true;\n}\n\nexport function finishAgentSettlement<T>(state: AgentLifecycleState<T>, result: T): void {\n state.resolve?.(result);\n state.resolve = undefined;\n state.result = undefined;\n}\n\n/** Cancellation belongs to this observer, not to the participant being observed. */\nexport function waitForAgent<T>(result: Promise<T>, signal?: AbortSignal): Promise<T> {\n if (!signal) return result;\n if (signal.aborted) return Promise.reject(new Error(\"Operation aborted\"));\n return new Promise<T>((resolve, reject) => {\n const abort = () => { signal.removeEventListener(\"abort\", abort); reject(new Error(\"Operation aborted\")); };\n signal.addEventListener(\"abort\", abort, { once: true });\n void result.then(resolve, reject).finally(() => signal.removeEventListener(\"abort\", abort));\n });\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -30,7 +30,7 @@ import {
30
30
  MAX_AGENT_TIMEOUT_MS,
31
31
  MIN_AGENT_TIMEOUT_MS,
32
32
  quarantineDamagedFile
33
- } from "./chunk-RBJCUU6I.js";
33
+ } from "./chunk-EZ7YLET5.js";
34
34
  import {
35
35
  writeFileAtomic,
36
36
  writeJsonAtomic
@@ -49,7 +49,7 @@ import {
49
49
  lifecycleSubscriptionFromValue,
50
50
  terminalAgentStatuses,
51
51
  tokenUsagePayloadFromValue
52
- } from "./chunk-YDM3MYCO.js";
52
+ } from "./chunk-AYBIR4YV.js";
53
53
  import {
54
54
  FABRIC_ACTOR_HOST_EVENTS
55
55
  } from "./chunk-OTCASLY2.js";
@@ -989,6 +989,8 @@ var AGENT_STATUS_POLL_INTERVAL_MS = 250;
989
989
  var EXTERNAL_TRANSPORT_LIVENESS_POLL_INTERVAL_MS = 2e3;
990
990
  var AGENT_STARTUP_MAX_ATTEMPTS = 3;
991
991
  var AGENT_STARTUP_RETRY_BASE_DELAY_MS = 500;
992
+ var AGENT_RESUME_MAX_ATTEMPTS = 3;
993
+ var AGENT_RESUME_RETRY_BASE_DELAY_MS = 1e3;
992
994
 
993
995
  // src/agents/transports/herdr-transport.ts
994
996
  var REQUEST_TIMEOUT_MS = 3e3;
@@ -1692,6 +1694,27 @@ var terminalStatuses = terminalAgentStatuses;
1692
1694
  var delay2 = (milliseconds) => new Promise((resolve) => setTimeout(resolve, milliseconds));
1693
1695
  var TRANSPORT_EXITED_WITHOUT_RESULT_PREFIX = "Agent transport exited without a result";
1694
1696
  var transportExitedWithoutResult = (error) => typeof error === "string" && error.startsWith(TRANSPORT_EXITED_WITHOUT_RESULT_PREFIX);
1697
+ var recoverableStop = (record) => record.status === "stopped" || record.status === "failed" && transportExitedWithoutResult(record.error);
1698
+ var MAX_RESUME_NOTE_CHARS = 2e3;
1699
+ var setWorkerArgument = (args, name, value) => {
1700
+ const index = args.indexOf(`--${name}`);
1701
+ if (index >= 0) args[index + 1] = value;
1702
+ else args.push(`--${name}`, value);
1703
+ };
1704
+ var resumeTask = (task, record, progress, runDirectory) => {
1705
+ const summary = summarizeRunLog(runDirectory, 6);
1706
+ const turns = Math.max(record.turns, progress.turns);
1707
+ const toolCalls = Math.max(record.toolCalls, progress.toolCalls);
1708
+ const note = [
1709
+ "[Fabric continuation] A previous attempt at this exact task was interrupted before it finished.",
1710
+ `It ended with status "${record.status}"${record.error ? ` (${record.error})` : ""} after ${turns} turns and ${toolCalls} tool calls, so the working tree already contains what that attempt completed.`,
1711
+ "Inspect the current state first, do not redo work that is already done, and carry the task through to completion.",
1712
+ ...summary ? [`Last observed run activity: ${summary}`] : []
1713
+ ].join(" ");
1714
+ return `${note.slice(0, MAX_RESUME_NOTE_CHARS)}
1715
+
1716
+ ${task}`;
1717
+ };
1695
1718
  var retryablePiStartupError = (error) => typeof error === "string" && /\b(?:no|missing)\s+(?:api key|credentials?)\b|\b(?:api key|credentials?)\s+(?:was\s+)?not found\b/i.test(
1696
1719
  error
1697
1720
  );
@@ -2204,10 +2227,17 @@ var AgentManager = class {
2204
2227
  settled: false,
2205
2228
  background: false,
2206
2229
  lastLivenessCheckAt: 0,
2230
+ resumeAttempts: 0,
2231
+ stopRequested: false,
2232
+ observedProgress: {
2233
+ turns: 0,
2234
+ toolCalls: 0,
2235
+ usage: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, cost: 0 }
2236
+ },
2207
2237
  usageEmitted: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, cost: 0 }
2208
2238
  };
2209
2239
  if (signal) {
2210
- managed.abortHandler = () => void this.stop(id);
2240
+ managed.abortHandler = () => this.#handleCallerAbort(id);
2211
2241
  signal.addEventListener("abort", managed.abortHandler, { once: true });
2212
2242
  }
2213
2243
  this.#runs.set(id, managed);
@@ -2241,13 +2271,55 @@ var AgentManager = class {
2241
2271
  this.#requireRun(id).background = false;
2242
2272
  }
2243
2273
  detachSignal(id) {
2244
- const managed = this.#requireRun(id);
2274
+ this.#detach(this.#requireRun(id), "caller detached; the run continues");
2275
+ }
2276
+ /**
2277
+ * An abort belongs to the caller, not to the run it started: a returned guest
2278
+ * program, a cancelled tool call, or a spent sandbox deadline must not discard
2279
+ * hours of participant work. A run that already produced progress is detached
2280
+ * and keeps going to a real terminal state; a run that never started working is
2281
+ * still stopped, because releasing it loses nothing.
2282
+ */
2283
+ #handleCallerAbort(id) {
2284
+ const managed = this.#runs.get(id);
2285
+ if (!managed || managed.settled || this.#closing) return;
2286
+ if (!this.#observedWork(managed)) {
2287
+ void this.stop(id);
2288
+ return;
2289
+ }
2290
+ this.#detach(managed, "caller aborted; the run continues");
2291
+ }
2292
+ #detach(managed, reason) {
2293
+ const attached = managed.abortSignal !== void 0 || managed.abortHandler !== void 0;
2245
2294
  if (managed.abortSignal && managed.abortHandler) {
2246
2295
  managed.abortSignal.removeEventListener("abort", managed.abortHandler);
2247
2296
  }
2248
2297
  managed.abortSignal = void 0;
2249
2298
  managed.abortHandler = void 0;
2299
+ if (managed.background) return;
2250
2300
  managed.background = true;
2301
+ if (attached) {
2302
+ this.#emitLifecycle(managed, "run.detached", Date.now(), { data: { reason } });
2303
+ }
2304
+ }
2305
+ #observedWork(managed) {
2306
+ const { turns, toolCalls } = managed.observedProgress;
2307
+ if (turns > 0 || toolCalls > 0) return true;
2308
+ const record = managed.latestRecord ?? readRecord(managed.statusFile);
2309
+ return record !== void 0 && (record.turns > 0 || record.toolCalls > 0);
2310
+ }
2311
+ /**
2312
+ * Track element-wise maxima of the run's counters. Usage components only grow
2313
+ * within a run, so a per-field maximum stays the cumulative total even when a
2314
+ * host-synthesized stop or transport-death record resets the counters to zero.
2315
+ */
2316
+ #observeProgress(managed, record) {
2317
+ const seen = managed.observedProgress;
2318
+ if (record.turns > seen.turns) seen.turns = record.turns;
2319
+ if (record.toolCalls > seen.toolCalls) seen.toolCalls = record.toolCalls;
2320
+ for (const key of ["input", "output", "cacheRead", "cacheWrite", "cost"]) {
2321
+ if (record.usage[key] > seen.usage[key]) seen.usage[key] = record.usage[key];
2322
+ }
2251
2323
  }
2252
2324
  status(id) {
2253
2325
  const managed = this.#requireRun(id);
@@ -2308,6 +2380,7 @@ var AgentManager = class {
2308
2380
  }
2309
2381
  async stop(id) {
2310
2382
  const managed = this.#requireRun(id);
2383
+ managed.stopRequested = true;
2311
2384
  if (managed.settled) return this.wait(id);
2312
2385
  managed.background = false;
2313
2386
  const existing = readRecord(managed.statusFile);
@@ -2477,6 +2550,39 @@ var AgentManager = class {
2477
2550
  await delay2(retryDelayMs);
2478
2551
  if (managed.settled || this.#closing || managed.abortSignal?.aborted) return false;
2479
2552
  managed.startupAttempts++;
2553
+ return this.#relaunch(managed, record);
2554
+ }
2555
+ /**
2556
+ * An unexpected mid-run stop — the worker caught a signal, or its transport
2557
+ * died with work already done — is recoverable. Relaunch the same run in the
2558
+ * same directory, seeded with the cumulative prefix of the attempt it lost, so
2559
+ * a long participant finishes instead of reporting a terminal stop that throws
2560
+ * away hours of work. Explicit stops, timeouts, and spent deadlines stay
2561
+ * terminal; AGENT_RESUME_MAX_ATTEMPTS bounds the retries.
2562
+ */
2563
+ async #resumeStopped(managed, record, deadline) {
2564
+ if (managed.settled || this.#closing || managed.stopRequested || managed.resumeAttempts >= AGENT_RESUME_MAX_ATTEMPTS || !this.#observedWork(managed) || !recoverableStop(record)) {
2565
+ return false;
2566
+ }
2567
+ const retryDelayMs = AGENT_RESUME_RETRY_BASE_DELAY_MS * 2 ** managed.resumeAttempts;
2568
+ if (Date.now() + retryDelayMs >= deadline) return false;
2569
+ await this.#waitForTransportExit(managed);
2570
+ await delay2(retryDelayMs);
2571
+ if (managed.settled || this.#closing || managed.stopRequested) return false;
2572
+ managed.resumeAttempts += 1;
2573
+ const { turns, toolCalls, usage } = managed.observedProgress;
2574
+ return this.#relaunch(managed, record, {
2575
+ task: resumeTask(managed.task, record, { turns, toolCalls }, managed.runDirectory),
2576
+ carryOver: { turns, toolCalls, usage: { ...usage } }
2577
+ });
2578
+ }
2579
+ /**
2580
+ * Relaunch the same worker run in place. Shared by the startup retry (a child
2581
+ * that died before producing a result) and the mid-run resume, which differ
2582
+ * only in the task the child is handed and the cumulative prefix its fresh
2583
+ * record starts from.
2584
+ */
2585
+ async #relaunch(managed, record, resume) {
2480
2586
  try {
2481
2587
  if (managed.runner === "pi") {
2482
2588
  const model = await this.#prepareModel(managed.model);
@@ -2490,21 +2596,53 @@ var AgentManager = class {
2490
2596
  delete managed.model;
2491
2597
  }
2492
2598
  }
2599
+ if (resume) {
2600
+ fs9.writeFileSync(path11.join(managed.runDirectory, "task.txt"), resume.task, {
2601
+ encoding: "utf8",
2602
+ mode: 384
2603
+ });
2604
+ setWorkerArgument(
2605
+ managed.launch.workerArguments,
2606
+ "carry-over",
2607
+ JSON.stringify(resume.carryOver)
2608
+ );
2609
+ }
2610
+ this.#drainLifecycle(managed);
2493
2611
  fs9.rmSync(managed.statusFile, { force: true });
2612
+ if (managed.settled || this.#closing || managed.stopRequested) return false;
2494
2613
  managed.transport = await managed.adapter.launch(managed.launch);
2614
+ if (managed.settled || this.#closing || managed.stopRequested) {
2615
+ await managed.transport.stop().catch(() => void 0);
2616
+ return false;
2617
+ }
2495
2618
  delete managed.latestRecord;
2496
2619
  delete managed.latestUiRecord;
2497
2620
  managed.lastLivenessCheckAt = 0;
2498
2621
  managed.lifecycleOffset = 0;
2499
2622
  managed.lifecycleRemainder = Buffer.alloc(0);
2500
2623
  fs9.rmSync(managed.lifecycleFile, { force: true });
2624
+ if (resume) {
2625
+ this.#emitLifecycle(managed, "run.resumed", Date.now(), {
2626
+ data: {
2627
+ attempt: managed.resumeAttempts,
2628
+ attemptsAllowed: AGENT_RESUME_MAX_ATTEMPTS,
2629
+ previousStatus: record.status,
2630
+ ...record.error ? { previousError: record.error } : {},
2631
+ carriedTurns: resume.carryOver.turns,
2632
+ carriedToolCalls: resume.carryOver.toolCalls
2633
+ }
2634
+ });
2635
+ }
2501
2636
  this.#invalidateUiList();
2502
2637
  return true;
2503
2638
  } catch (error) {
2504
2639
  const retryError = error instanceof Error ? error.message : String(error);
2505
2640
  const failed = {
2506
2641
  ...record,
2507
- error: `${record.error ?? "Agent startup failed"} \xB7 retry launch failed: ${retryError}`
2642
+ // Keep the run's real progress: the relaunch failed, not the attempt.
2643
+ turns: Math.max(record.turns, managed.observedProgress.turns),
2644
+ toolCalls: Math.max(record.toolCalls, managed.observedProgress.toolCalls),
2645
+ error: `${record.error ?? "Agent run failed"} \xB7 relaunch failed: ${retryError}`
2508
2646
  };
2509
2647
  writeRecord(managed.statusFile, failed);
2510
2648
  managed.latestRecord = failed;
@@ -2518,6 +2656,7 @@ var AgentManager = class {
2518
2656
  this.#drainLifecycle(managed);
2519
2657
  const record = readRecord(managed.statusFile);
2520
2658
  if (record) {
2659
+ this.#observeProgress(managed, record);
2521
2660
  const previous = managed.latestRecord;
2522
2661
  managed.latestRecord = record;
2523
2662
  if (!previous || previous.updatedAt !== record.updatedAt || previous.status !== record.status || previous.currentTool !== record.currentTool) {
@@ -2530,6 +2669,7 @@ var AgentManager = class {
2530
2669
  managed.runnerSessionId = record.runnerSessionId;
2531
2670
  }
2532
2671
  if (record && terminalStatuses.has(record.status)) {
2672
+ if (await this.#resumeStopped(managed, record, deadline)) continue;
2533
2673
  if (await this.#retryStartup(managed, record, deadline)) continue;
2534
2674
  this.#settle(managed, this.#withTransportMetadata(record, managed));
2535
2675
  return;
@@ -2578,6 +2718,7 @@ var AgentManager = class {
2578
2718
  "failed",
2579
2719
  logSummary ? `Agent transport exited without a result; last run log: ${logSummary}` : "Agent transport exited without a result"
2580
2720
  );
2721
+ if (await this.#resumeStopped(managed, failed, deadline)) continue;
2581
2722
  if (await this.#retryStartup(managed, failed, deadline)) {
2582
2723
  managed.lastRetriedTransportFailure = failed;
2583
2724
  continue;
@@ -6729,4 +6870,4 @@ export {
6729
6870
  agentParticipantRecords,
6730
6871
  actorParticipantRecord
6731
6872
  };
6732
- //# sourceMappingURL=chunk-6IFKG3XW.js.map
6873
+ //# sourceMappingURL=chunk-DLYYHK6Z.js.map