@tangle-network/agent-runtime 7.0.0 → 8.0.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 (116) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +0 -3
  3. package/dist/{activation-Ba9IAgQ3.js → activation-Ce4zUcu8.js} +4 -4
  4. package/dist/{activation-Ba9IAgQ3.js.map → activation-Ce4zUcu8.js.map} +1 -1
  5. package/dist/{activation-DIkTEBWF.d.ts → activation-xxvLF1-1.d.ts} +2 -2
  6. package/dist/agent.d.ts +1 -1
  7. package/dist/agent.js +3 -3
  8. package/dist/{bundle-Cy5igJdv.js → bundle-CcpL2lfr.js} +2 -2
  9. package/dist/{bundle-Cy5igJdv.js.map → bundle-CcpL2lfr.js.map} +1 -1
  10. package/dist/candidate-execution/index.js +4 -4
  11. package/dist/continuation-CIyKnS1Q.js +451 -0
  12. package/dist/continuation-CIyKnS1Q.js.map +1 -0
  13. package/dist/{coordination-manager-DQZ2u6L-.js → coordination-manager-sa_PkISw.js} +194 -148
  14. package/dist/coordination-manager-sa_PkISw.js.map +1 -0
  15. package/dist/{coordination-map-routing-CKRNZSaV.js → coordination-map-routing-XZXTlCmn.js} +2 -4
  16. package/dist/coordination-map-routing-XZXTlCmn.js.map +1 -0
  17. package/dist/{delegate-DFLSVjFG.js → delegate-DhTkJIta.js} +3 -3
  18. package/dist/{delegate-DFLSVjFG.js.map → delegate-DhTkJIta.js.map} +1 -1
  19. package/dist/durable.d.ts +1 -1
  20. package/dist/durable.js +13 -12
  21. package/dist/durable.js.map +1 -1
  22. package/dist/{errors-AzSuGI23.js → errors-DG8yufqX.js} +8 -1
  23. package/dist/errors-DG8yufqX.js.map +1 -0
  24. package/dist/{failure-cause-rJTm_Tx8.js → failure-cause-CVB-YE88.js} +12 -8
  25. package/dist/{failure-cause-rJTm_Tx8.js.map → failure-cause-CVB-YE88.js.map} +1 -1
  26. package/dist/{graph-registry-7X2nrreR.js → graph-registry-czAwYwNj.js} +133 -9
  27. package/dist/graph-registry-czAwYwNj.js.map +1 -0
  28. package/dist/{graph-registry-gYbq4L5Z.js → graph-registry-uTIyyy7A.js} +1 -1
  29. package/dist/graph-tSIT_eWK.js +1793 -0
  30. package/dist/graph-tSIT_eWK.js.map +1 -0
  31. package/dist/{improve-BolbYegO.js → improve-H08hiIw9.js} +19 -48
  32. package/dist/improve-H08hiIw9.js.map +1 -0
  33. package/dist/index.d.ts +3 -3
  34. package/dist/index.js +16 -16
  35. package/dist/intelligence.d.ts +2 -2
  36. package/dist/intelligence.js +8 -8
  37. package/dist/intelligence.js.map +1 -1
  38. package/dist/kernel.d.ts +2 -2
  39. package/dist/kernel.js +16 -15
  40. package/dist/{loop-runner-Cs9IJ6Nk.d.ts → loop-runner-BGwhcn1p.d.ts} +2 -2
  41. package/dist/{loop-runner-C9W3T_3T.js → loop-runner-ChqK8kSz.js} +3 -3
  42. package/dist/{loop-runner-C9W3T_3T.js.map → loop-runner-ChqK8kSz.js.map} +1 -1
  43. package/dist/loop-runner-bin.d.ts +1 -1
  44. package/dist/loop-runner-bin.js +1 -1
  45. package/dist/mcp/bin.js +7 -5
  46. package/dist/mcp/bin.js.map +1 -1
  47. package/dist/mcp/index.d.ts +1 -1
  48. package/dist/mcp/index.js +9 -9
  49. package/dist/mcp/memory-bin.js +2 -2
  50. package/dist/{model-policy-JOcg3NRs.js → model-policy-yxOrDTTj.js} +9 -9
  51. package/dist/model-policy-yxOrDTTj.js.map +1 -0
  52. package/dist/{prepare-Dtfk_Wi_.js → prepare-BnF8nGIg.js} +4 -4
  53. package/dist/{prepare-Dtfk_Wi_.js.map → prepare-BnF8nGIg.js.map} +1 -1
  54. package/dist/{profile-CNSQjOes.js → profile-CD25rTJF.js} +4 -4
  55. package/dist/{profile-CNSQjOes.js.map → profile-CD25rTJF.js.map} +1 -1
  56. package/dist/profiles.d.ts +1 -1
  57. package/dist/profiles.js +2 -2
  58. package/dist/{provision-supervisor-BQFHjCtN.js → provision-supervisor-Dx4TXTMM.js} +8 -8
  59. package/dist/{provision-supervisor-BQFHjCtN.js.map → provision-supervisor-Dx4TXTMM.js.map} +1 -1
  60. package/dist/{run-cancellation-B84X8ZAP.js → run-cancellation-DYszFJtQ.js} +4 -4
  61. package/dist/{run-cancellation-B84X8ZAP.js.map → run-cancellation-DYszFJtQ.js.map} +1 -1
  62. package/dist/{run-state-Dh1bGERI.js → run-state-DHBoJjaF.js} +5 -5
  63. package/dist/{run-state-Dh1bGERI.js.map → run-state-DHBoJjaF.js.map} +1 -1
  64. package/dist/{runtime-C9F1PG2A.js → runtime-CaM5Gbbv.js} +76 -987
  65. package/dist/runtime-CaM5Gbbv.js.map +1 -0
  66. package/dist/{sandbox-profile-compat-oFGWESLn.js → sandbox-profile-compat-l-SLQnGb.js} +2 -2
  67. package/dist/{sandbox-profile-compat-oFGWESLn.js.map → sandbox-profile-compat-l-SLQnGb.js.map} +1 -1
  68. package/dist/{search-executor-CKR9_6NR.js → search-executor-B9L8W_1O.js} +17 -46
  69. package/dist/search-executor-B9L8W_1O.js.map +1 -0
  70. package/dist/{server-Dh3SQGQT.js → server-BlDV8sj_.js} +32 -8
  71. package/dist/{server-Dh3SQGQT.js.map → server-BlDV8sj_.js.map} +1 -1
  72. package/dist/{settle-record-C6LdVvok.js → settle-record-WWQasnDq.js} +2 -2
  73. package/dist/{settle-record-C6LdVvok.js.map → settle-record-WWQasnDq.js.map} +1 -1
  74. package/dist/{snapshot-Cgj2Wzi6.js → snapshot-BKI_w3JD.js} +19 -5
  75. package/dist/snapshot-BKI_w3JD.js.map +1 -0
  76. package/dist/{structural-rollout-Dapf2aZY.js → structural-rollout-C1xxoWcN.js} +18 -54
  77. package/dist/structural-rollout-C1xxoWcN.js.map +1 -0
  78. package/dist/{supervise-xwl2D6q3.js → supervise-DWiSgPLB.js} +101 -111
  79. package/dist/supervise-DWiSgPLB.js.map +1 -0
  80. package/dist/{supervision-discovery-B47U8TH5.js → supervision-discovery-C9kfBLKy.js} +4 -4
  81. package/dist/{supervision-discovery-B47U8TH5.js.map → supervision-discovery-C9kfBLKy.js.map} +1 -1
  82. package/dist/{supervisor-gC-u_PRk.js → supervisor-Dpeu7rnZ.js} +206 -693
  83. package/dist/supervisor-Dpeu7rnZ.js.map +1 -0
  84. package/dist/{supervisor-accounting-DxLQ_TQe.js → supervisor-accounting-Bw4MJk-b.js} +434 -423
  85. package/dist/supervisor-accounting-Bw4MJk-b.js.map +1 -0
  86. package/dist/testing.d.ts +1 -1
  87. package/dist/testing.js +13 -13
  88. package/dist/{tool-server-Dg350Bgz.js → tool-server-DYwRbi0I.js} +3 -3
  89. package/dist/{tool-server-Dg350Bgz.js.map → tool-server-DYwRbi0I.js.map} +1 -1
  90. package/dist/{top-web-BJLnFQdr.js → top-web-B3HOAtrZ.js} +9 -7
  91. package/dist/{top-web-BJLnFQdr.js.map → top-web-B3HOAtrZ.js.map} +1 -1
  92. package/dist/tui/bin.js +3 -3
  93. package/dist/tui/index.d.ts +1 -1
  94. package/dist/tui/index.js +2 -2
  95. package/dist/{types-Jg274chm.d.ts → types-C_qbnw9N.d.ts} +1335 -1413
  96. package/dist/{util-C_cdPNC4.js → util-fcckrkKp.js} +39 -113
  97. package/dist/util-fcckrkKp.js.map +1 -0
  98. package/dist/{workspace-streams-B7yNMahl.js → workspace-streams-DA9R3j-p.js} +2 -2
  99. package/dist/{workspace-streams-B7yNMahl.js.map → workspace-streams-DA9R3j-p.js.map} +1 -1
  100. package/package.json +1 -1
  101. package/dist/coordination-manager-DQZ2u6L-.js.map +0 -1
  102. package/dist/coordination-map-routing-CKRNZSaV.js.map +0 -1
  103. package/dist/errors-AzSuGI23.js.map +0 -1
  104. package/dist/graph-BjQF2syl.js +0 -579
  105. package/dist/graph-BjQF2syl.js.map +0 -1
  106. package/dist/graph-registry-7X2nrreR.js.map +0 -1
  107. package/dist/improve-BolbYegO.js.map +0 -1
  108. package/dist/model-policy-JOcg3NRs.js.map +0 -1
  109. package/dist/runtime-C9F1PG2A.js.map +0 -1
  110. package/dist/search-executor-CKR9_6NR.js.map +0 -1
  111. package/dist/snapshot-Cgj2Wzi6.js.map +0 -1
  112. package/dist/structural-rollout-Dapf2aZY.js.map +0 -1
  113. package/dist/supervise-xwl2D6q3.js.map +0 -1
  114. package/dist/supervisor-accounting-DxLQ_TQe.js.map +0 -1
  115. package/dist/supervisor-gC-u_PRk.js.map +0 -1
  116. package/dist/util-C_cdPNC4.js.map +0 -1
@@ -60,6 +60,12 @@ var BackendTransportError = class extends AgentEvalError {
60
60
  */
61
61
  providerDispatch;
62
62
  /**
63
+ * Bridge-owned proof that the refusal came from a full executor semaphore, not a
64
+ * provider: the request waited on the host's concurrency gate and was refused as
65
+ * capacity (`executor_saturated`, HTTP 429). Retryable after `Retry-After`.
66
+ */
67
+ capacity;
68
+ /**
63
69
  * The upstream's own error class when it names one (the bridge's `parse_error`,
64
70
  * `not_configured`, a provider's `invalid_request_error`). A class the upstream never
65
71
  * retries is a decision about the request, so a retry policy may read it where no
@@ -83,6 +89,7 @@ var BackendTransportError = class extends AgentEvalError {
83
89
  this.remediation = options?.remediation;
84
90
  this.body = options?.body;
85
91
  this.providerDispatch = options?.providerDispatch;
92
+ this.capacity = options?.capacity;
86
93
  }
87
94
  };
88
95
  /**
@@ -194,4 +201,4 @@ var RetainedRunDispatchBindingError = class extends AgentEvalError {
194
201
  };
195
202
  export { JudgeError as a, RetainedInteractiveAdmissionError as c, RetainedRunDispatchBindingError as d, RuntimeRunStateError as f, ConfigError as i, RetainedInteractiveBindingError as l, ValidationError as m, AnalystError as n, NotFoundError as o, SessionMismatchError as p, BackendTransportError as r, PlannerError as s, AgentEvalError$1 as t, RetainedRunAdmissionError as u };
196
203
 
197
- //# sourceMappingURL=errors-AzSuGI23.js.map
204
+ //# sourceMappingURL=errors-DG8yufqX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors-DG8yufqX.js","names":[],"sources":["../src/errors.ts"],"sourcesContent":["/**\n *\n * Error taxonomy for `@tangle-network/agent-runtime`.\n *\n * Public contract: every error this package throws as part of its consumer-\n * facing API either extends `AgentEvalError` (re-exported here for ergonomic\n * `instanceof` checks at the runtime boundary) or extends one of the\n * runtime-specific subclasses below.\n *\n * Internal invariant guards (`throw new Error('this should never happen')`)\n * remain plain `Error` — they are programmer-mistake assertions, not\n * consumer-catchable contract failures.\n *\n * Subclassing strategy: where a runtime-specific failure maps cleanly to an\n * agent-eval code (validation, config, not_found), we re-use the agent-eval\n * subclass. Runtime-only failure modes (session resume against the wrong\n * backend, backend transport errors) get fresh subclasses that still carry an\n * `AgentEvalErrorCode` so cross-package handlers can pattern-match without\n * importing the runtime.\n *\n * @stable\n */\n\nimport { AgentEvalError } from '@tangle-network/agent-eval'\nimport type {\n AgentInteractiveSessionRef,\n AgentInteractiveSessionStart,\n AgentInteractiveSessionStatus,\n} from '@tangle-network/agent-interface'\nimport type { RuntimeFailureCause } from './runtime/failure-cause'\nimport type {\n RetainedInteractiveAdmission,\n RetainedRunAdmission,\n} from './runtime/retained-run-types'\n\nexport {\n AgentEvalError,\n type AgentEvalErrorCode,\n ConfigError,\n JudgeError,\n NotFoundError,\n ValidationError,\n} from '@tangle-network/agent-eval'\n\n/**\n *\n * Caller asked to resume a session against a backend whose `kind` does not\n * match the session's recorded backend. This is a routing bug — the same\n * session id was reused across two different backend implementations — and\n * is not retryable without picking the right backend.\n *\n * @stable\n */\nexport class SessionMismatchError extends AgentEvalError {\n readonly sessionBackend: string\n readonly requestedBackend: string\n\n constructor(sessionBackend: string, requestedBackend: string, options?: { cause?: unknown }) {\n super(\n 'validation',\n `Cannot resume ${sessionBackend} session with ${requestedBackend} backend`,\n options,\n )\n this.sessionBackend = sessionBackend\n this.requestedBackend = requestedBackend\n }\n}\n\n/**\n *\n * A backend transport call (HTTP, gRPC, sidecar IPC) failed with a non-success\n * status. Distinct from `JudgeError` (which is structural / unrecoverable)\n * because backend failures are sometimes retryable and consumers may want to\n * branch on the upstream status code.\n *\n * @stable\n */\nexport class BackendTransportError extends AgentEvalError {\n readonly backend: string\n readonly status?: number\n /**\n * Router-owned proof that a rejected request never reached a provider.\n *\n * This is intentionally one-sided. An absent value, or any value this\n * package does not understand, remains unknown to Runtime.\n */\n readonly providerDispatch?: 'not_started'\n /**\n * Bridge-owned proof that the refusal came from a full executor semaphore, not a\n * provider: the request waited on the host's concurrency gate and was refused as\n * capacity (`executor_saturated`, HTTP 429). Retryable after `Retry-After`.\n */\n readonly capacity?: true\n /**\n * The upstream's own error class when it names one (the bridge's `parse_error`,\n * `not_configured`, a provider's `invalid_request_error`). A class the upstream never\n * retries is a decision about the request, so a retry policy may read it where no\n * status arrived.\n */\n readonly upstreamCode?: string\n /** Validated producer remedy; absent when the upstream supplied no trusted structured remedy. */\n readonly remediation?: RuntimeFailureCause['remediation']\n /**\n * Truncated upstream response body (≤2 KiB) when available. Diagnostic\n * only — surfaces in `backend_error.error.body` and `final.error.body`\n * so operators can see \"free_tier_limit\", \"invalid_api_key\", etc. without\n * cracking the log line open.\n */\n readonly body?: string\n\n constructor(\n backend: string,\n message: string,\n options?: {\n cause?: unknown\n status?: number\n upstreamCode?: string\n remediation?: RuntimeFailureCause['remediation']\n body?: string\n providerDispatch?: 'not_started'\n capacity?: true\n },\n ) {\n super('config', message, options)\n this.backend = backend\n this.status = options?.status\n this.upstreamCode = options?.upstreamCode\n this.remediation = options?.remediation\n this.body = options?.body\n this.providerDispatch = options?.providerDispatch\n this.capacity = options?.capacity\n }\n}\n\n/**\n *\n * A runtime-run lifecycle method was called in an order the state machine does\n * not allow: `persist()` before `complete()`, `complete()` twice, etc.\n *\n * @stable\n */\nexport class RuntimeRunStateError extends AgentEvalError {\n constructor(message: string, options?: { cause?: unknown }) {\n super('validation', message, options)\n }\n}\n\n/**\n *\n * The dynamic-loop planner returned an unusable topology move — the LLM emitted\n * no parseable envelope, an unknown `kind`, or a structurally-invalid move\n * (e.g. a fanout with zero tasks). This is a structural failure of the\n * agent-authored topology, not a config mistake: the planner ran but its output\n * cannot drive the kernel. Carries `validation` so cross-package handlers can\n * pattern-match without importing the runtime. Fail loud — never substitute a\n * default move, or the loop silently runs a topology nobody chose.\n *\n * @stable\n */\nexport class PlannerError extends AgentEvalError {\n constructor(message: string, options?: { cause?: unknown }) {\n super('validation', message, options)\n }\n}\n\n/**\n * The analyst loop could not read or run over a round's trace — e.g. an empty round\n * (no iterations to analyze) or a malformed trace projection. Fail loud: a silent empty\n * store would mask a broken capture path and the driver would steer on nothing.\n */\nexport class AnalystError extends AgentEvalError {\n constructor(message: string, options?: { cause?: unknown }) {\n super('validation', message, options)\n }\n}\n\n/**\n *\n * The caller's `onAdmission` durability hook rejected, so a retained run's\n * admission record is not durable. For a pre-create intent, no provider work\n * has started. For a later record, provider state may already be live and the\n * environment remains available for recovery. Carries `capture_integrity`\n * because the required recovery record was not written.\n *\n * @stable\n */\nabstract class RetainedAdmissionError<\n TAdmission extends RetainedRunAdmission | RetainedInteractiveAdmission,\n> extends AgentEvalError {\n readonly phase: TAdmission['phase']\n /** The exact record the hook failed to persist, for direct recovery. */\n readonly admission: TAdmission\n\n constructor(admission: TAdmission, options?: { cause?: unknown }) {\n const recovery =\n admission.phase === 'intent' || admission.phase === 'interactive_intent'\n ? 'no provider work has started'\n : 'the environment is kept for recovery'\n super(\n 'capture_integrity',\n `retained run admission (${admission.phase}) was not persisted; ${recovery}`,\n options,\n )\n this.phase = admission.phase\n this.admission = admission\n }\n}\n\n/** The caller could not persist one detached-run recovery record. @stable */\nexport class RetainedRunAdmissionError extends RetainedAdmissionError<RetainedRunAdmission> {}\n\n/** The caller could not persist one exact interactive-process recovery record. @stable */\nexport class RetainedInteractiveAdmissionError extends RetainedAdmissionError<RetainedInteractiveAdmission> {}\n\n/**\n * A provider returned a valid interactive reference that does not bind to the\n * exact start request, or returned data that could not be parsed as one.\n *\n * The requested start and any valid provider reference are detached snapshots.\n * Malformed provider data is never copied into the error, so the error remains\n * safe to persist while the environment remains available for orphan cleanup.\n *\n * @stable\n */\nexport class RetainedInteractiveBindingError extends AgentEvalError {\n /** The exact native-process start request sent to the provider. */\n readonly requested: AgentInteractiveSessionStart\n /** The valid provider data, when the provider returned a parseable value. */\n readonly returned: {\n readonly ref?: AgentInteractiveSessionRef\n readonly status?: AgentInteractiveSessionStatus\n }\n\n constructor(\n requested: AgentInteractiveSessionStart,\n returned: RetainedInteractiveBindingError['returned'],\n options?: { cause?: unknown },\n ) {\n super(\n 'backend_integrity',\n 'provider returned interactive data that does not bind to the requested start; the environment is kept for diagnosis and cleanup',\n options,\n )\n this.requested = Object.freeze(requested)\n this.returned = Object.freeze(returned)\n }\n}\n\n/**\n *\n * A retained dispatch answered with coordinates that do not bind to the\n * identity the runtime requested, or failed exact verification. The\n * environment-phase admission is already durable at this point, so its\n * coordinates plus the provider reference carried here are the manual\n * recovery path. The environment is intentionally kept. Carries\n * `backend_integrity` because the provider violated its dispatch contract.\n *\n * @stable\n */\nexport class RetainedRunDispatchBindingError extends AgentEvalError {\n /** The coordinates the runtime sent with the dispatch. */\n readonly requested: {\n readonly provider: string\n readonly environmentId: string\n readonly sessionId: string\n readonly executionId: string\n }\n /** The loose reference the provider actually returned, for triage. */\n readonly returned: {\n readonly id?: string\n readonly provider?: string\n readonly controlRef?: unknown\n }\n\n constructor(\n requested: RetainedRunDispatchBindingError['requested'],\n returned: RetainedRunDispatchBindingError['returned'],\n options?: { cause?: unknown },\n ) {\n super(\n 'backend_integrity',\n 'retained dispatch did not bind to the requested identity; the durable environment admission and the returned reference on this error are the recovery path',\n options,\n )\n this.requested = requested\n this.returned = returned\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA,IAAa,uBAAb,cAA0C,eAAe;CACvD;CACA;CAEA,YAAY,gBAAwB,kBAA0B,SAA+B;EAC3F,MACE,cACA,iBAAiB,eAAe,gBAAgB,iBAAiB,WACjE,OACF;EACA,KAAK,iBAAiB;EACtB,KAAK,mBAAmB;CAC1B;AACF;;;;;;;;;;AAWA,IAAa,wBAAb,cAA2C,eAAe;CACxD;CACA;;;;;;;CAOA;;;;;;CAMA;;;;;;;CAOA;;CAEA;;;;;;;CAOA;CAEA,YACE,SACA,SACA,SASA;EACA,MAAM,UAAU,SAAS,OAAO;EAChC,KAAK,UAAU;EACf,KAAK,SAAS,SAAS;EACvB,KAAK,eAAe,SAAS;EAC7B,KAAK,cAAc,SAAS;EAC5B,KAAK,OAAO,SAAS;EACrB,KAAK,mBAAmB,SAAS;EACjC,KAAK,WAAW,SAAS;CAC3B;AACF;;;;;;;;AASA,IAAa,uBAAb,cAA0C,eAAe;CACvD,YAAY,SAAiB,SAA+B;EAC1D,MAAM,cAAc,SAAS,OAAO;CACtC;AACF;;;;;;;;;;;;;AAcA,IAAa,eAAb,cAAkC,eAAe;CAC/C,YAAY,SAAiB,SAA+B;EAC1D,MAAM,cAAc,SAAS,OAAO;CACtC;AACF;;;;;;AAOA,IAAa,eAAb,cAAkC,eAAe;CAC/C,YAAY,SAAiB,SAA+B;EAC1D,MAAM,cAAc,SAAS,OAAO;CACtC;AACF;;;;;;;;;;;AAYA,IAAe,yBAAf,cAEU,eAAe;CACvB;;CAEA;CAEA,YAAY,WAAuB,SAA+B;EAChE,MAAM,WACJ,UAAU,UAAU,YAAY,UAAU,UAAU,uBAChD,iCACA;EACN,MACE,qBACA,2BAA2B,UAAU,MAAM,uBAAuB,YAClE,OACF;EACA,KAAK,QAAQ,UAAU;EACvB,KAAK,YAAY;CACnB;AACF;;AAGA,IAAa,4BAAb,cAA+C,uBAA6C,CAAC;;AAG7F,IAAa,oCAAb,cAAuD,uBAAqD,CAAC;;;;;;;;;;;AAY7G,IAAa,kCAAb,cAAqD,eAAe;;CAElE;;CAEA;CAKA,YACE,WACA,UACA,SACA;EACA,MACE,qBACA,mIACA,OACF;EACA,KAAK,YAAY,OAAO,OAAO,SAAS;EACxC,KAAK,WAAW,OAAO,OAAO,QAAQ;CACxC;AACF;;;;;;;;;;;;AAaA,IAAa,kCAAb,cAAqD,eAAe;;CAElE;;CAOA;CAMA,YACE,WACA,UACA,SACA;EACA,MACE,qBACA,8JACA,OACF;EACA,KAAK,YAAY;EACjB,KAAK,WAAW;CAClB;AACF"}
@@ -1,6 +1,6 @@
1
- import { m as ValidationError, r as BackendTransportError, t as AgentEvalError } from "./errors-AzSuGI23.js";
2
- import { A as withBudgetResources, C as unreportedSpend, D as addResourceSpend, E as zeroTokenUsage, O as assertResources, T as zeroSpend, i as chargedTokens, l as fnv1a32Hex, m as promptCacheTokenClasses, n as addSpend, o as cloneTokenUsage, r as addTokenUsage, u as hasCompleteCacheBreakdown } from "./util-C_cdPNC4.js";
3
- import { a as errMessage, i as causeChain, n as detachedSnapshot, s as errorProperty } from "./snapshot-Cgj2Wzi6.js";
1
+ import { m as ValidationError, r as BackendTransportError, t as AgentEvalError } from "./errors-DG8yufqX.js";
2
+ import { A as withBudgetResources, C as unreportedSpend, D as addResourceSpend, E as zeroTokenUsage, O as assertResources, T as zeroSpend, i as chargedTokens, l as fnv1a32Hex, m as promptCacheTokenClasses, n as addSpend, o as cloneTokenUsage, r as addTokenUsage, u as hasCompleteCacheBreakdown } from "./util-fcckrkKp.js";
3
+ import { a as errMessage, i as causeChain, n as detachedSnapshot, s as errorProperty } from "./snapshot-BKI_w3JD.js";
4
4
  import { AgentTurnResultSchema, CanonicalStreamEventSchema, RuntimeEventEnvelopeSchema } from "@tangle-network/agent-interface";
5
5
  import { isRecord } from "@tangle-network/agent-core";
6
6
  import { collectAgentFinalMessageText, collectAgentResponseText } from "@tangle-network/sandbox";
@@ -2386,6 +2386,11 @@ const PLATFORM_FAILURE_CODES = new Set([
2386
2386
  "EPIPE",
2387
2387
  "EADDRINUSE"
2388
2388
  ].map((code) => code.toLowerCase()));
2389
+ /** A harness process died mid-step. The sandbox can still name that execution as the session owner. */
2390
+ const HARNESS_PROCESS_DEATH = /killed by SIGKILL|OpenCode exited while a model step was still in progress/u;
2391
+ function harnessProcessDied(text) {
2392
+ return HARNESS_PROCESS_DEATH.test(text);
2393
+ }
2389
2394
  const PLATFORM_FAILURE_MESSAGES = [
2390
2395
  /^terminated$/u,
2391
2396
  /Execution exceeded its time limit/u,
@@ -2403,7 +2408,7 @@ const PLATFORM_FAILURE_MESSAGES = [
2403
2408
  /provider_quota_exceeded|provider_quota_exhausted|QUOTA_EXCEEDED|rate limit/iu,
2404
2409
  /is at its box cap/u,
2405
2410
  /could not materialize the seat credential/u,
2406
- /OpenCode exited while a model step was still in progress/u
2411
+ HARNESS_PROCESS_DEATH
2407
2412
  ];
2408
2413
  /** Producer-owned classification first; legacy platform codes/messages otherwise leave attribution unknown. */
2409
2414
  function executorFailureInfra(failure) {
@@ -2412,8 +2417,7 @@ function executorFailureInfra(failure) {
2412
2417
  if (code !== void 0 && PLATFORM_FAILURE_CODES.has(code)) return true;
2413
2418
  return PLATFORM_FAILURE_MESSAGES.some((pattern) => pattern.test(failure.error)) ? true : void 0;
2414
2419
  }
2415
- /** Preserve deterministic result pointers across built-in executors and replay.
2416
- * FNV-1a is an identity convention here, not a cryptographic integrity check. */
2420
+ /** Deterministic result pointer. FNV-1a identifies the value. It is not an integrity check. */
2417
2421
  function contentRef(prefix, value) {
2418
2422
  const str = jsonContentText(value);
2419
2423
  return `${prefix}:${fnv1a32Hex(str)}`;
@@ -3200,6 +3204,6 @@ function settlementFailureCause(down) {
3200
3204
  ...down.failure?.providerCode === void 0 ? {} : { providerCode: down.failure.providerCode }
3201
3205
  };
3202
3206
  }
3203
- export { assertValidBudget as $, TRACE_SUMMARY_SCHEMA as A, credentialCommandExit as B, jitteredMs as C, parseCodexUsageRecord as Ct, unavailableResumeAt as D, unavailablePauseMs as E, executorFailureInfra as F, budgetRecoverySeeds as G, BudgetReconcileFault as H, executorFailureReason as I, refreshBudgetLease as J, completedLeafBacking as K, turnFailureOf as L, contentAddress as M, contentRef as N, unavailableSignalOfFailure as O, executorFailure as P, spendFromUsageTotals as Q, turnFailurePolicy as R, cappedDoublingMs as S, decodeHarnessUsage as St, reportedResetAt as T, budgetLeaseUpdates as U, isCredentialRefusal as V, budgetLeases as W, newUsageTotals as X, meterUsageEvent as Y, spendFromUsageEvents as Z, registerRetainedExecutorPreparation as _, notifySandboxEventObserver as _t, runtimeProviderCode as a, sandboxOutputMarker as at, UNAVAILABLE_CODES as b, sandboxTerminalUsageField as bt, DISPATCH_EXECUTION_CHANGED_CODE as c, canonicalStreamEventFromSandboxEvent as ct, TRANSPORT_ERROR_CODES as d, assertSandboxServedModel as dt, assertValidSpend as et, executorEvidenceWriter as f, canonicalSandboxUsageMode as ft, prepareRetainedExecutor as g, isSandboxTerminalEvent as gt, leafContinuationExecutionId as h, extractLlmCallEvent as ht, runtimeFailureRemediationSchema as i, sandboxLeafOutputFromEvents as it, traceRootWriter as j, TRACE_ROOT_SCHEMA as k, DISPATCH_NOT_ADMITTED_CODE as l, extractTransportEventIdentity as lt, isSchemaRejection as m, createSandboxUsageLedger as mt, runtimeFailureCause as n, mapSandboxEvent as nt, settlementFailureCause as o, sandboxProgressEvents as ot, isProvisioningRefusal as p, createSandboxTurnEventCollector as pt, createBudgetPool as q, runtimeFailureCauseSchema as r, mapSandboxToolEvent as rt, BUDGET_CONTINUATION_TASK as s, terminalTextFromSandboxEvent as st, reportedFailureCause as t, createSandboxToolPartState as tt, RetainedExecutionPendingError as u, parseCanonicalTransportEvent as ut, retainedExecutorContext as v, sameModelId as vt, printedStatus as w, recordValue as wt, UNAVAILABLE_STATUSES as x, sumSandboxUsage as xt, retainedExecutorSeamKey as y, sandboxEventServedBackend as yt, hashJson as z };
3207
+ export { spendFromUsageTotals as $, TRACE_SUMMARY_SCHEMA as A, hashJson as B, jitteredMs as C, decodeHarnessUsage as Ct, unavailableResumeAt as D, unavailablePauseMs as E, executorFailureInfra as F, budgetLeases as G, isCredentialRefusal as H, executorFailureReason as I, createBudgetPool as J, budgetRecoverySeeds as K, harnessProcessDied as L, contentAddress as M, contentRef as N, unavailableSignalOfFailure as O, executorFailure as P, spendFromUsageEvents as Q, turnFailureOf as R, cappedDoublingMs as S, sumSandboxUsage as St, reportedResetAt as T, recordValue as Tt, BudgetReconcileFault as U, credentialCommandExit as V, budgetLeaseUpdates as W, meterUsageEvent as X, refreshBudgetLease as Y, newUsageTotals as Z, registerRetainedExecutorPreparation as _, isSandboxTerminalEvent as _t, runtimeProviderCode as a, sandboxLeafOutputFromEvents as at, UNAVAILABLE_CODES as b, sandboxEventServedBackend as bt, DISPATCH_EXECUTION_CHANGED_CODE as c, terminalTextFromSandboxEvent as ct, TRANSPORT_ERROR_CODES as d, parseCanonicalTransportEvent as dt, assertValidBudget as et, executorEvidenceWriter as f, assertSandboxServedModel as ft, prepareRetainedExecutor as g, extractLlmCallEvent as gt, leafContinuationExecutionId as h, createSandboxUsageLedger as ht, runtimeFailureRemediationSchema as i, mapSandboxToolEvent as it, traceRootWriter as j, TRACE_ROOT_SCHEMA as k, DISPATCH_NOT_ADMITTED_CODE as l, canonicalStreamEventFromSandboxEvent as lt, isSchemaRejection as m, createSandboxTurnEventCollector as mt, runtimeFailureCause as n, createSandboxToolPartState as nt, settlementFailureCause as o, sandboxOutputMarker as ot, isProvisioningRefusal as p, canonicalSandboxUsageMode as pt, completedLeafBacking as q, runtimeFailureCauseSchema as r, mapSandboxEvent as rt, BUDGET_CONTINUATION_TASK as s, sandboxProgressEvents as st, reportedFailureCause as t, assertValidSpend as tt, RetainedExecutionPendingError as u, extractTransportEventIdentity as ut, retainedExecutorContext as v, notifySandboxEventObserver as vt, printedStatus as w, parseCodexUsageRecord as wt, UNAVAILABLE_STATUSES as x, sandboxTerminalUsageField as xt, retainedExecutorSeamKey as y, sameModelId as yt, turnFailurePolicy as z };
3204
3208
 
3205
- //# sourceMappingURL=failure-cause-rJTm_Tx8.js.map
3209
+ //# sourceMappingURL=failure-cause-CVB-YE88.js.map