@zhixuan92/multi-model-agent-core 4.6.0 → 4.7.1

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 (320) hide show
  1. package/README.md +6 -8
  2. package/dist/bounded-execution/activity-tracker.d.ts +1 -0
  3. package/dist/bounded-execution/activity-tracker.d.ts.map +1 -1
  4. package/dist/bounded-execution/activity-tracker.js +5 -0
  5. package/dist/bounded-execution/activity-tracker.js.map +1 -1
  6. package/dist/bounded-execution/file-artifact-check.d.ts +4 -11
  7. package/dist/bounded-execution/file-artifact-check.d.ts.map +1 -1
  8. package/dist/bounded-execution/file-artifact-check.js +7 -22
  9. package/dist/bounded-execution/file-artifact-check.js.map +1 -1
  10. package/dist/bounded-execution/progress-events-subscriber.d.ts +41 -0
  11. package/dist/bounded-execution/progress-events-subscriber.d.ts.map +1 -0
  12. package/dist/bounded-execution/progress-events-subscriber.js +53 -0
  13. package/dist/bounded-execution/progress-events-subscriber.js.map +1 -0
  14. package/dist/bounded-execution/progress-watchdog.d.ts.map +1 -1
  15. package/dist/bounded-execution/progress-watchdog.js +60 -27
  16. package/dist/bounded-execution/progress-watchdog.js.map +1 -1
  17. package/dist/bounded-execution/stall-watchdog.d.ts.map +1 -1
  18. package/dist/bounded-execution/stall-watchdog.js +29 -12
  19. package/dist/bounded-execution/stall-watchdog.js.map +1 -1
  20. package/dist/bounded-execution/wall-clock-guard.d.ts +4 -0
  21. package/dist/bounded-execution/wall-clock-guard.d.ts.map +1 -1
  22. package/dist/bounded-execution/wall-clock-guard.js +1 -1
  23. package/dist/bounded-execution/wall-clock-guard.js.map +1 -1
  24. package/dist/config/canonical-model-identity.d.ts.map +1 -1
  25. package/dist/config/canonical-model-identity.js.map +1 -1
  26. package/dist/config/config-resolver.d.ts +1 -41
  27. package/dist/config/config-resolver.d.ts.map +1 -1
  28. package/dist/config/config-resolver.js +1 -43
  29. package/dist/config/config-resolver.js.map +1 -1
  30. package/dist/config/load.d.ts +0 -2
  31. package/dist/config/load.d.ts.map +1 -1
  32. package/dist/config/load.js +0 -4
  33. package/dist/config/load.js.map +1 -1
  34. package/dist/config/model-profile-registry.d.ts.map +1 -1
  35. package/dist/config/model-profile-registry.js +13 -7
  36. package/dist/config/model-profile-registry.js.map +1 -1
  37. package/dist/config/schema.d.ts +1 -19
  38. package/dist/config/schema.d.ts.map +1 -1
  39. package/dist/config/schema.js +12 -38
  40. package/dist/config/schema.js.map +1 -1
  41. package/dist/error-codes.d.ts +0 -1
  42. package/dist/error-codes.d.ts.map +1 -1
  43. package/dist/error-codes.js +0 -1
  44. package/dist/error-codes.js.map +1 -1
  45. package/dist/events/cloud-events.d.ts +0 -1
  46. package/dist/events/cloud-events.d.ts.map +1 -1
  47. package/dist/events/cloud-events.js +1 -1
  48. package/dist/events/cloud-events.js.map +1 -1
  49. package/dist/events/event-builder.js +1 -2
  50. package/dist/events/event-builder.js.map +1 -1
  51. package/dist/events/event-emitter.d.ts +2 -1
  52. package/dist/events/event-emitter.d.ts.map +1 -1
  53. package/dist/events/event-emitter.js +6 -1
  54. package/dist/events/event-emitter.js.map +1 -1
  55. package/dist/events/observability-events.d.ts +0 -26
  56. package/dist/events/observability-events.d.ts.map +1 -1
  57. package/dist/events/observability-events.js +1 -11
  58. package/dist/events/observability-events.js.map +1 -1
  59. package/dist/events/telemetry-types.d.ts +0 -7
  60. package/dist/events/telemetry-types.d.ts.map +1 -1
  61. package/dist/events/telemetry-types.js +1 -1
  62. package/dist/events/telemetry-types.js.map +1 -1
  63. package/dist/index.d.ts +4 -5
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +3 -3
  66. package/dist/index.js.map +1 -1
  67. package/dist/intake/resolve.d.ts.map +1 -1
  68. package/dist/intake/resolve.js +0 -1
  69. package/dist/intake/resolve.js.map +1 -1
  70. package/dist/lifecycle/handlers/{annotator.d.ts → annotate-stage.d.ts} +1 -1
  71. package/dist/lifecycle/handlers/annotate-stage.d.ts.map +1 -0
  72. package/dist/lifecycle/handlers/{annotator.js → annotate-stage.js} +1 -1
  73. package/dist/lifecycle/handlers/annotate-stage.js.map +1 -0
  74. package/dist/lifecycle/handlers/{task-executor.d.ts → implement-stage.d.ts} +1 -1
  75. package/dist/lifecycle/handlers/implement-stage.d.ts.map +1 -0
  76. package/dist/lifecycle/handlers/{task-executor.js → implement-stage.js} +31 -2
  77. package/dist/lifecycle/handlers/implement-stage.js.map +1 -0
  78. package/dist/lifecycle/handlers/{review-handler.d.ts → review-stage.d.ts} +1 -1
  79. package/dist/lifecycle/handlers/review-stage.d.ts.map +1 -0
  80. package/dist/lifecycle/handlers/{review-handler.js → review-stage.js} +1 -1
  81. package/dist/lifecycle/handlers/review-stage.js.map +1 -0
  82. package/dist/lifecycle/handlers/{rework-handler.d.ts → rework-stage.d.ts} +1 -1
  83. package/dist/lifecycle/handlers/rework-stage.d.ts.map +1 -0
  84. package/dist/lifecycle/handlers/{rework-handler.js → rework-stage.js} +1 -1
  85. package/dist/lifecycle/handlers/rework-stage.js.map +1 -0
  86. package/dist/lifecycle/lifecycle-context.d.ts +10 -4
  87. package/dist/lifecycle/lifecycle-context.d.ts.map +1 -1
  88. package/dist/lifecycle/lifecycle-dispatcher.d.ts +1 -1
  89. package/dist/lifecycle/lifecycle-dispatcher.d.ts.map +1 -1
  90. package/dist/lifecycle/lifecycle-dispatcher.js +1 -1
  91. package/dist/lifecycle/lifecycle-dispatcher.js.map +1 -1
  92. package/dist/lifecycle/lifecycle-driver.d.ts.map +1 -1
  93. package/dist/lifecycle/lifecycle-driver.js +77 -2
  94. package/dist/lifecycle/lifecycle-driver.js.map +1 -1
  95. package/dist/lifecycle/normalize-output-targets.d.ts +2 -0
  96. package/dist/lifecycle/normalize-output-targets.d.ts.map +1 -0
  97. package/dist/lifecycle/normalize-output-targets.js +14 -0
  98. package/dist/lifecycle/normalize-output-targets.js.map +1 -0
  99. package/dist/lifecycle/perform-implementation.d.ts.map +1 -1
  100. package/dist/lifecycle/perform-implementation.js +62 -26
  101. package/dist/lifecycle/perform-implementation.js.map +1 -1
  102. package/dist/lifecycle/rework-budget.d.ts +3 -0
  103. package/dist/lifecycle/rework-budget.d.ts.map +1 -0
  104. package/dist/lifecycle/rework-budget.js +9 -0
  105. package/dist/lifecycle/rework-budget.js.map +1 -0
  106. package/dist/lifecycle/stage-io.d.ts +3 -2
  107. package/dist/lifecycle/stage-io.d.ts.map +1 -1
  108. package/dist/lifecycle/stage-io.js.map +1 -1
  109. package/dist/lifecycle/stage-plan-builder.js +4 -4
  110. package/dist/lifecycle/stage-plan-builder.js.map +1 -1
  111. package/dist/lifecycle/stage-plan-types.d.ts +1 -4
  112. package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
  113. package/dist/lifecycle/task-completion-summary.d.ts.map +1 -1
  114. package/dist/lifecycle/task-completion-summary.js +0 -1
  115. package/dist/lifecycle/task-completion-summary.js.map +1 -1
  116. package/dist/lifecycle/task-executor.d.ts.map +1 -1
  117. package/dist/lifecycle/task-executor.js +2 -1
  118. package/dist/lifecycle/task-executor.js.map +1 -1
  119. package/dist/lifecycle/task-runner.d.ts +5 -1
  120. package/dist/lifecycle/task-runner.d.ts.map +1 -1
  121. package/dist/lifecycle/task-runner.js +102 -46
  122. package/dist/lifecycle/task-runner.js.map +1 -1
  123. package/dist/providers/agent-resolver.d.ts.map +1 -0
  124. package/dist/{escalation → providers}/agent-resolver.js +1 -1
  125. package/dist/providers/agent-resolver.js.map +1 -0
  126. package/dist/providers/assemble-run-result.js +0 -2
  127. package/dist/providers/assemble-run-result.js.map +1 -1
  128. package/dist/providers/claude-session.d.ts +12 -0
  129. package/dist/providers/claude-session.d.ts.map +1 -1
  130. package/dist/providers/claude-session.js +38 -1
  131. package/dist/providers/claude-session.js.map +1 -1
  132. package/dist/providers/codex-cli-session.d.ts +16 -1
  133. package/dist/providers/codex-cli-session.d.ts.map +1 -1
  134. package/dist/providers/codex-cli-session.js +75 -6
  135. package/dist/providers/codex-cli-session.js.map +1 -1
  136. package/dist/providers/normalize-claude.js +1 -1
  137. package/dist/providers/normalize-claude.js.map +1 -1
  138. package/dist/providers/provider-factory.d.ts +8 -0
  139. package/dist/providers/provider-factory.d.ts.map +1 -1
  140. package/dist/providers/provider-factory.js +64 -3
  141. package/dist/providers/provider-factory.js.map +1 -1
  142. package/dist/providers/run-annotator-turn.d.ts.map +1 -1
  143. package/dist/providers/run-annotator-turn.js +2 -1
  144. package/dist/providers/run-annotator-turn.js.map +1 -1
  145. package/dist/providers/run-worker-turn.d.ts +1 -1
  146. package/dist/providers/run-worker-turn.d.ts.map +1 -1
  147. package/dist/providers/run-worker-turn.js +0 -1
  148. package/dist/providers/run-worker-turn.js.map +1 -1
  149. package/dist/providers/runner-types.d.ts +5 -6
  150. package/dist/providers/runner-types.d.ts.map +1 -1
  151. package/dist/providers/stall-detector.d.ts +1 -1
  152. package/dist/providers/stall-detector.d.ts.map +1 -1
  153. package/dist/providers/stall-detector.js +1 -1
  154. package/dist/providers/stall-detector.js.map +1 -1
  155. package/dist/reporting/derive-investigate-status.d.ts +1 -1
  156. package/dist/reporting/derive-investigate-status.d.ts.map +1 -1
  157. package/dist/reporting/headline-templates/investigate.d.ts +1 -1
  158. package/dist/reporting/headline-templates/investigate.d.ts.map +1 -1
  159. package/dist/reporting/headline-templates/research.d.ts.map +1 -1
  160. package/dist/reporting/headline-templates/research.js +0 -1
  161. package/dist/reporting/headline-templates/research.js.map +1 -1
  162. package/dist/reporting/terminal-status-deriver.d.ts +1 -1
  163. package/dist/reporting/terminal-status-deriver.d.ts.map +1 -1
  164. package/dist/reporting/terminal-status-deriver.js +1 -4
  165. package/dist/reporting/terminal-status-deriver.js.map +1 -1
  166. package/dist/review/run-reviewer.d.ts.map +1 -1
  167. package/dist/review/run-reviewer.js +4 -3
  168. package/dist/review/run-reviewer.js.map +1 -1
  169. package/dist/stores/batch-registry.d.ts +15 -1
  170. package/dist/stores/batch-registry.d.ts.map +1 -1
  171. package/dist/stores/batch-registry.js +27 -0
  172. package/dist/stores/batch-registry.js.map +1 -1
  173. package/dist/tool-surface/tool-surface-registry.d.ts +1 -1
  174. package/dist/tool-surface/tool-surface-registry.d.ts.map +1 -1
  175. package/dist/tools/audit/tool-config.d.ts.map +1 -1
  176. package/dist/tools/audit/tool-config.js +0 -1
  177. package/dist/tools/audit/tool-config.js.map +1 -1
  178. package/dist/tools/debug/tool-config.d.ts.map +1 -1
  179. package/dist/tools/debug/tool-config.js +0 -1
  180. package/dist/tools/debug/tool-config.js.map +1 -1
  181. package/dist/tools/delegate/schema.d.ts +1 -1
  182. package/dist/tools/delegate/schema.d.ts.map +1 -1
  183. package/dist/tools/delegate/schema.js +2 -1
  184. package/dist/tools/delegate/schema.js.map +1 -1
  185. package/dist/tools/delegate/tool-config.d.ts +0 -1
  186. package/dist/tools/delegate/tool-config.d.ts.map +1 -1
  187. package/dist/tools/delegate/tool-config.js +0 -2
  188. package/dist/tools/delegate/tool-config.js.map +1 -1
  189. package/dist/tools/execute-plan/schema.d.ts +1 -1
  190. package/dist/tools/execute-plan/schema.d.ts.map +1 -1
  191. package/dist/tools/execute-plan/schema.js +2 -2
  192. package/dist/tools/execute-plan/schema.js.map +1 -1
  193. package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
  194. package/dist/tools/execute-plan/tool-config.js +0 -1
  195. package/dist/tools/execute-plan/tool-config.js.map +1 -1
  196. package/dist/tools/investigate/tool-config.d.ts.map +1 -1
  197. package/dist/tools/investigate/tool-config.js +0 -1
  198. package/dist/tools/investigate/tool-config.js.map +1 -1
  199. package/dist/tools/register-context-block/tool-config.d.ts.map +1 -1
  200. package/dist/tools/register-context-block/tool-config.js +0 -1
  201. package/dist/tools/register-context-block/tool-config.js.map +1 -1
  202. package/dist/tools/research/tool-config.d.ts.map +1 -1
  203. package/dist/tools/research/tool-config.js +0 -1
  204. package/dist/tools/research/tool-config.js.map +1 -1
  205. package/dist/tools/retry/tool-config.d.ts.map +1 -1
  206. package/dist/tools/retry/tool-config.js +0 -1
  207. package/dist/tools/retry/tool-config.js.map +1 -1
  208. package/dist/tools/review/tool-config.d.ts.map +1 -1
  209. package/dist/tools/review/tool-config.js +0 -1
  210. package/dist/tools/review/tool-config.js.map +1 -1
  211. package/dist/types/config.d.ts +0 -1
  212. package/dist/types/config.d.ts.map +1 -1
  213. package/dist/types/enums.d.ts +0 -3
  214. package/dist/types/enums.d.ts.map +1 -1
  215. package/dist/types/enums.js +3 -3
  216. package/dist/types/enums.js.map +1 -1
  217. package/dist/types/run-result.d.ts +14 -1
  218. package/dist/types/run-result.d.ts.map +1 -1
  219. package/dist/types/task-spec.d.ts +1 -1
  220. package/dist/types/task-spec.d.ts.map +1 -1
  221. package/package.json +1 -1
  222. package/dist/bounded-execution/cost-meter.d.ts +0 -20
  223. package/dist/bounded-execution/cost-meter.d.ts.map +0 -1
  224. package/dist/bounded-execution/cost-meter.js +0 -21
  225. package/dist/bounded-execution/cost-meter.js.map +0 -1
  226. package/dist/bounded-execution/error-classifier.d.ts +0 -11
  227. package/dist/bounded-execution/error-classifier.d.ts.map +0 -1
  228. package/dist/bounded-execution/error-classifier.js +0 -23
  229. package/dist/bounded-execution/error-classifier.js.map +0 -1
  230. package/dist/bounded-execution/idle-guard.d.ts +0 -8
  231. package/dist/bounded-execution/idle-guard.d.ts.map +0 -1
  232. package/dist/bounded-execution/idle-guard.js +0 -18
  233. package/dist/bounded-execution/idle-guard.js.map +0 -1
  234. package/dist/bounded-execution/index.d.ts +0 -10
  235. package/dist/bounded-execution/index.d.ts.map +0 -1
  236. package/dist/bounded-execution/index.js +0 -11
  237. package/dist/bounded-execution/index.js.map +0 -1
  238. package/dist/bounded-execution/safety-max-turns.d.ts +0 -17
  239. package/dist/bounded-execution/safety-max-turns.d.ts.map +0 -1
  240. package/dist/bounded-execution/safety-max-turns.js +0 -17
  241. package/dist/bounded-execution/safety-max-turns.js.map +0 -1
  242. package/dist/cleanup/batch-retention-sweeper.d.ts +0 -7
  243. package/dist/cleanup/batch-retention-sweeper.d.ts.map +0 -1
  244. package/dist/cleanup/batch-retention-sweeper.js +0 -10
  245. package/dist/cleanup/batch-retention-sweeper.js.map +0 -1
  246. package/dist/cleanup/context-block-gc-sweeper.d.ts +0 -8
  247. package/dist/cleanup/context-block-gc-sweeper.d.ts.map +0 -1
  248. package/dist/cleanup/context-block-gc-sweeper.js +0 -12
  249. package/dist/cleanup/context-block-gc-sweeper.js.map +0 -1
  250. package/dist/cleanup/index.d.ts +0 -5
  251. package/dist/cleanup/index.d.ts.map +0 -1
  252. package/dist/cleanup/index.js +0 -6
  253. package/dist/cleanup/index.js.map +0 -1
  254. package/dist/cleanup/project-idle-cleanup.d.ts +0 -7
  255. package/dist/cleanup/project-idle-cleanup.d.ts.map +0 -1
  256. package/dist/cleanup/project-idle-cleanup.js +0 -15
  257. package/dist/cleanup/project-idle-cleanup.js.map +0 -1
  258. package/dist/cleanup/shutdown-coordinator.d.ts +0 -7
  259. package/dist/cleanup/shutdown-coordinator.d.ts.map +0 -1
  260. package/dist/cleanup/shutdown-coordinator.js +0 -13
  261. package/dist/cleanup/shutdown-coordinator.js.map +0 -1
  262. package/dist/config/index.d.ts +0 -8
  263. package/dist/config/index.d.ts.map +0 -1
  264. package/dist/config/index.js +0 -9
  265. package/dist/config/index.js.map +0 -1
  266. package/dist/config/pricing-table.d.ts +0 -16
  267. package/dist/config/pricing-table.d.ts.map +0 -1
  268. package/dist/config/pricing-table.js +0 -51
  269. package/dist/config/pricing-table.js.map +0 -1
  270. package/dist/escalation/agent-resolver.d.ts.map +0 -1
  271. package/dist/escalation/agent-resolver.js.map +0 -1
  272. package/dist/escalation/delegate-with-escalation.d.ts +0 -52
  273. package/dist/escalation/delegate-with-escalation.d.ts.map +0 -1
  274. package/dist/escalation/delegate-with-escalation.js +0 -201
  275. package/dist/escalation/delegate-with-escalation.js.map +0 -1
  276. package/dist/escalation/escalation-policy.d.ts +0 -18
  277. package/dist/escalation/escalation-policy.d.ts.map +0 -1
  278. package/dist/escalation/escalation-policy.js +0 -33
  279. package/dist/escalation/escalation-policy.js.map +0 -1
  280. package/dist/escalation/fallback-helpers.d.ts +0 -22
  281. package/dist/escalation/fallback-helpers.d.ts.map +0 -1
  282. package/dist/escalation/fallback-helpers.js +0 -47
  283. package/dist/escalation/fallback-helpers.js.map +0 -1
  284. package/dist/escalation/fallback-types.d.ts +0 -60
  285. package/dist/escalation/fallback-types.d.ts.map +0 -1
  286. package/dist/escalation/fallback-types.js +0 -11
  287. package/dist/escalation/fallback-types.js.map +0 -1
  288. package/dist/escalation/fallback.d.ts +0 -5
  289. package/dist/escalation/fallback.d.ts.map +0 -1
  290. package/dist/escalation/fallback.js +0 -387
  291. package/dist/escalation/fallback.js.map +0 -1
  292. package/dist/escalation/index.d.ts +0 -3
  293. package/dist/escalation/index.d.ts.map +0 -1
  294. package/dist/escalation/index.js +0 -4
  295. package/dist/escalation/index.js.map +0 -1
  296. package/dist/escalation/policy.d.ts +0 -37
  297. package/dist/escalation/policy.d.ts.map +0 -1
  298. package/dist/escalation/policy.js +0 -67
  299. package/dist/escalation/policy.js.map +0 -1
  300. package/dist/escalation/types.d.ts +0 -15
  301. package/dist/escalation/types.d.ts.map +0 -1
  302. package/dist/escalation/types.js +0 -2
  303. package/dist/escalation/types.js.map +0 -1
  304. package/dist/events/running-headline-sink.d.ts +0 -27
  305. package/dist/events/running-headline-sink.d.ts.map +0 -1
  306. package/dist/events/running-headline-sink.js +0 -156
  307. package/dist/events/running-headline-sink.js.map +0 -1
  308. package/dist/lifecycle/handlers/annotator.d.ts.map +0 -1
  309. package/dist/lifecycle/handlers/annotator.js.map +0 -1
  310. package/dist/lifecycle/handlers/review-handler.d.ts.map +0 -1
  311. package/dist/lifecycle/handlers/review-handler.js.map +0 -1
  312. package/dist/lifecycle/handlers/rework-handler.d.ts.map +0 -1
  313. package/dist/lifecycle/handlers/rework-handler.js.map +0 -1
  314. package/dist/lifecycle/handlers/task-executor.d.ts.map +0 -1
  315. package/dist/lifecycle/handlers/task-executor.js.map +0 -1
  316. package/dist/lifecycle/metadata-repair.d.ts +0 -15
  317. package/dist/lifecycle/metadata-repair.d.ts.map +0 -1
  318. package/dist/lifecycle/metadata-repair.js +0 -33
  319. package/dist/lifecycle/metadata-repair.js.map +0 -1
  320. /package/dist/{escalation → providers}/agent-resolver.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"batch-retention-sweeper.js","sourceRoot":"","sources":["../../src/cleanup/batch-retention-sweeper.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,qBAAqB;IACZ;IAApB,YAAoB,QAAuB;QAAvB,aAAQ,GAAR,QAAQ,CAAe;IAAG,CAAC;IAE/C,IAAI;QACF,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IACjC,CAAC;CACF"}
@@ -1,8 +0,0 @@
1
- import type { ContextBlockStore } from '../stores/context-block-tool.js';
2
- export declare class ContextBlockGCSweeper {
3
- private store;
4
- private idleTtlMs;
5
- constructor(store: ContextBlockStore, idleTtlMs: number);
6
- tick(): number;
7
- }
8
- //# sourceMappingURL=context-block-gc-sweeper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-block-gc-sweeper.d.ts","sourceRoot":"","sources":["../../src/cleanup/context-block-gc-sweeper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;gBADT,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,MAAM;IAG3B,IAAI,IAAI,MAAM;CAGf"}
@@ -1,12 +0,0 @@
1
- export class ContextBlockGCSweeper {
2
- store;
3
- idleTtlMs;
4
- constructor(store, idleTtlMs) {
5
- this.store = store;
6
- this.idleTtlMs = idleTtlMs;
7
- }
8
- tick() {
9
- return this.store.runIdleSweep(Date.now(), this.idleTtlMs);
10
- }
11
- }
12
- //# sourceMappingURL=context-block-gc-sweeper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-block-gc-sweeper.js","sourceRoot":"","sources":["../../src/cleanup/context-block-gc-sweeper.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,qBAAqB;IAEtB;IACA;IAFV,YACU,KAAwB,EACxB,SAAiB;QADjB,UAAK,GAAL,KAAK,CAAmB;QACxB,cAAS,GAAT,SAAS,CAAQ;IACxB,CAAC;IAEJ,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -1,5 +0,0 @@
1
- export * from './batch-retention-sweeper.js';
2
- export * from './project-idle-cleanup.js';
3
- export * from './context-block-gc-sweeper.js';
4
- export * from './shutdown-coordinator.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cleanup/index.ts"],"names":[],"mappings":"AAEA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC"}
@@ -1,6 +0,0 @@
1
- // cleanup/index.ts — public surface barrel; per architecture.md:262-275.
2
- export * from './batch-retention-sweeper.js';
3
- export * from './project-idle-cleanup.js';
4
- export * from './context-block-gc-sweeper.js';
5
- export * from './shutdown-coordinator.js';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cleanup/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { ProjectContext } from '../stores/project-context-registry.js';
2
- export declare class ProjectIdleCleanup {
3
- private projects;
4
- constructor(projects: Map<string, ProjectContext>);
5
- tick(idleThresholdMs: number): void;
6
- }
7
- //# sourceMappingURL=project-idle-cleanup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-idle-cleanup.d.ts","sourceRoot":"","sources":["../../src/cleanup/project-idle-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAE5E,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAEzD,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;CAQpC"}
@@ -1,15 +0,0 @@
1
- export class ProjectIdleCleanup {
2
- projects;
3
- constructor(projects) {
4
- this.projects = projects;
5
- }
6
- tick(idleThresholdMs) {
7
- const now = Date.now();
8
- for (const [cwd, ctx] of this.projects) {
9
- if (now - ctx.lastActivityAt > idleThresholdMs) {
10
- this.projects.delete(cwd);
11
- }
12
- }
13
- }
14
- }
15
- //# sourceMappingURL=project-idle-cleanup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-idle-cleanup.js","sourceRoot":"","sources":["../../src/cleanup/project-idle-cleanup.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,kBAAkB;IACT;IAApB,YAAoB,QAAqC;QAArC,aAAQ,GAAR,QAAQ,CAA6B;IAAG,CAAC;IAE7D,IAAI,CAAC,eAAuB;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,GAAG,GAAG,GAAG,CAAC,cAAc,GAAG,eAAe,EAAE,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1,7 +0,0 @@
1
- export declare class ShutdownCoordinator {
2
- private inProgress;
3
- signal(): void;
4
- isShutdownInProgress(): boolean;
5
- drain(action: () => Promise<void>): Promise<void>;
6
- }
7
- //# sourceMappingURL=shutdown-coordinator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shutdown-coordinator.d.ts","sourceRoot":"","sources":["../../src/cleanup/shutdown-coordinator.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAE3B,MAAM,IAAI,IAAI;IAId,oBAAoB,IAAI,OAAO;IAIzB,KAAK,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxD"}
@@ -1,13 +0,0 @@
1
- export class ShutdownCoordinator {
2
- inProgress = false;
3
- signal() {
4
- this.inProgress = true;
5
- }
6
- isShutdownInProgress() {
7
- return this.inProgress;
8
- }
9
- async drain(action) {
10
- await action();
11
- }
12
- }
13
- //# sourceMappingURL=shutdown-coordinator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shutdown-coordinator.js","sourceRoot":"","sources":["../../src/cleanup/shutdown-coordinator.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,mBAAmB;IACtB,UAAU,GAAG,KAAK,CAAC;IAE3B,MAAM;QACJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAA2B;QACrC,MAAM,MAAM,EAAE,CAAC;IACjB,CAAC;CACF"}
@@ -1,8 +0,0 @@
1
- export * from './config-resolver.js';
2
- export * from './model-profile-registry.js';
3
- export * from './canonical-model-identity.js';
4
- export * from './tier-policy-registry.js';
5
- export * from './pricing-table.js';
6
- export * from './load.js';
7
- export * from './schema.js';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAEA,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
@@ -1,9 +0,0 @@
1
- // config/index.ts — public surface barrel; per architecture.md:262-275.
2
- export * from './config-resolver.js';
3
- export * from './model-profile-registry.js';
4
- export * from './canonical-model-identity.js';
5
- export * from './tier-policy-registry.js';
6
- export * from './pricing-table.js';
7
- export * from './load.js';
8
- export * from './schema.js';
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
@@ -1,16 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const modelPricingSchema: z.ZodObject<{
3
- inputCostPerMTok: z.ZodOptional<z.ZodNumber>;
4
- outputCostPerMTok: z.ZodOptional<z.ZodNumber>;
5
- cachedReadCostPerMTok: z.ZodOptional<z.ZodNumber>;
6
- cachedNonReadCostPerMTok: z.ZodOptional<z.ZodNumber>;
7
- reasoningCostPerMTok: z.ZodOptional<z.ZodNumber>;
8
- rateSource: z.ZodOptional<z.ZodString>;
9
- rateLookupDate: z.ZodOptional<z.ZodString>;
10
- }, z.core.$strip>;
11
- export type ModelPricing = z.infer<typeof modelPricingSchema>;
12
- /** Look up per-model pricing. Returns the pricing fields from the matching
13
- * ModelProfile, or undefined when the model id matches no profile or the
14
- * matched profile lacks pricing data. */
15
- export declare function priceFor(modelId: string): ModelPricing | undefined;
16
- //# sourceMappingURL=pricing-table.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pricing-table.d.ts","sourceRoot":"","sources":["../../src/config/pricing-table.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,kBAAkB;;;;;;;;iBAQ7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;0CAE0C;AAC1C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAqBlE"}
@@ -1,51 +0,0 @@
1
- // packages/core/src/config/pricing-table.ts
2
- // Per-model pricing schema + lookup helpers per architecture.md:62.
3
- //
4
- // Pricing data is embedded in ModelProfile entries (model-profiles.json).
5
- // This module exposes:
6
- // - the Zod sub-schema for the pricing fields, composed by modelProfileSchema
7
- // - ModelPricing type
8
- // - priceFor(modelId) lookup that returns the pricing fields for a given
9
- // model, or undefined if the model is unknown
10
- //
11
- // `load.ts` carries a separate `Pricing` shape (`inputUSDPerMillion` etc.)
12
- // used by the main-agent pricing resolution path. The two shapes are
13
- // distinct: model-profile pricing is per-million-tokens (`*PerMTok`),
14
- // the main-agent shape uses `*USDPerMillion`. Both record the same
15
- // economic fact at different granularities.
16
- import { z } from 'zod';
17
- import { findModelProfile } from './model-profile-registry.js';
18
- export const modelPricingSchema = z.object({
19
- inputCostPerMTok: z.number().finite().nonnegative().optional(),
20
- outputCostPerMTok: z.number().finite().nonnegative().optional(),
21
- cachedReadCostPerMTok: z.number().finite().nonnegative().optional(),
22
- cachedNonReadCostPerMTok: z.number().finite().nonnegative().optional(),
23
- reasoningCostPerMTok: z.number().finite().nonnegative().optional(),
24
- rateSource: z.string().min(1).optional(),
25
- rateLookupDate: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),
26
- });
27
- /** Look up per-model pricing. Returns the pricing fields from the matching
28
- * ModelProfile, or undefined when the model id matches no profile or the
29
- * matched profile lacks pricing data. */
30
- export function priceFor(modelId) {
31
- const profile = findModelProfile(modelId);
32
- const pricing = {
33
- inputCostPerMTok: profile.inputCostPerMTok,
34
- outputCostPerMTok: profile.outputCostPerMTok,
35
- cachedReadCostPerMTok: profile.cachedReadCostPerMTok,
36
- cachedNonReadCostPerMTok: profile.cachedNonReadCostPerMTok,
37
- reasoningCostPerMTok: profile.reasoningCostPerMTok,
38
- rateSource: profile.rateSource,
39
- rateLookupDate: profile.rateLookupDate,
40
- };
41
- // Only return pricing when at least one rate field is set; otherwise the
42
- // profile carries no rate-card information and the caller should treat
43
- // the model as unpriced.
44
- const hasAnyRate = pricing.inputCostPerMTok !== undefined ||
45
- pricing.outputCostPerMTok !== undefined ||
46
- pricing.cachedReadCostPerMTok !== undefined ||
47
- pricing.cachedNonReadCostPerMTok !== undefined ||
48
- pricing.reasoningCostPerMTok !== undefined;
49
- return hasAnyRate ? pricing : undefined;
50
- }
51
- //# sourceMappingURL=pricing-table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pricing-table.js","sourceRoot":"","sources":["../../src/config/pricing-table.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,oEAAoE;AACpE,EAAE;AACF,0EAA0E;AAC1E,uBAAuB;AACvB,gFAAgF;AAChF,wBAAwB;AACxB,2EAA2E;AAC3E,kDAAkD;AAClD,EAAE;AACF,2EAA2E;AAC3E,qEAAqE;AACrE,sEAAsE;AACtE,mEAAmE;AACnE,4CAA4C;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAqB,MAAM,6BAA6B,CAAC;AAElF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,gBAAgB,EAAW,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACvE,iBAAiB,EAAU,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACvE,qBAAqB,EAAM,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACvE,wBAAwB,EAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACvE,oBAAoB,EAAO,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACvE,UAAU,EAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvD,cAAc,EAAa,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;CAC9E,CAAC,CAAC;AAIH;;0CAE0C;AAC1C,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,MAAM,OAAO,GAAiB,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,OAAO,GAAiB;QAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;QACpD,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;QAC1D,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;QAClD,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC;IACF,yEAAyE;IACzE,uEAAuE;IACvE,yBAAyB;IACzB,MAAM,UAAU,GACd,OAAO,CAAC,gBAAgB,KAAK,SAAS;QACtC,OAAO,CAAC,iBAAiB,KAAK,SAAS;QACvC,OAAO,CAAC,qBAAqB,KAAK,SAAS;QAC3C,OAAO,CAAC,wBAAwB,KAAK,SAAS;QAC9C,OAAO,CAAC,oBAAoB,KAAK,SAAS,CAAC;IAC7C,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-resolver.d.ts","sourceRoot":"","sources":["../../src/escalation/agent-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGzE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,GACvB,aAAa,CAaf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-resolver.js","sourceRoot":"","sources":["../../src/escalation/agent-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAOlE,MAAM,UAAU,YAAY,CAC1B,SAAoB,EACpB,MAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,uBAAuB,CAAC,CAAC;IACpF,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5C,CAAC;AACJ,CAAC"}
@@ -1,52 +0,0 @@
1
- import type { TaskSpec, RuntimeRunResult, Provider, AgentType } from '../types.js';
2
- import type { InternalRunnerEvent } from '../providers/runner-types.js';
3
- import type { EventEmitter } from '../events/event-emitter.js';
4
- export interface DelegateOptions {
5
- explicitlyPinned?: boolean;
6
- onProgress?: (event: InternalRunnerEvent) => void;
7
- /**
8
- * Absolute Date.now() deadline for the entire task — across retries AND
9
- * tier fallbacks. Each provider.run gets at most `deadline - Date.now()`
10
- * as its per-call timeout. When the deadline is hit between calls, the
11
- * loop breaks and returns the best salvage so far.
12
- */
13
- taskDeadlineMs?: number;
14
- /**
15
- * External abort signal — when fired (e.g. by the orchestrator's stall
16
- * watchdog when nothing has progressed for `defaults.stallTimeoutMs`),
17
- * the in-flight provider.run force-salvages and returns; the retry/
18
- * fallback loops short-circuit so the user gets *something* back.
19
- */
20
- abortSignal?: AbortSignal;
21
- /**
22
- * Tier the caller is invoking this delegate for. Forwarded onto the
23
- * per-attempt `worker_start` runner event so observability can attribute
24
- * each provider attempt to its assigned tier.
25
- */
26
- assignedTier?: AgentType;
27
- /**
28
- * Bus for runner-shell and adapter events (`runner_turn_started`,
29
- * `runner_response_received`, `runner_turn_completed`). When set, the
30
- * server's VerboseLogChannel + LocalLogSink + TelemetrySink consume them.
31
- * Forwarded into provider.run as `RunOptions.bus`.
32
- */
33
- bus?: EventEmitter;
34
- /**
35
- * Batch identifier propagated onto runner events so verbose stderr lines
36
- * carry the same `batch=...` field as the HTTP-handler breadcrumbs.
37
- */
38
- batchId?: string;
39
- /**
40
- * Identifies which task within the batch is running. Threaded through to
41
- * runner events so per-task progress can be tracked separately when a
42
- * batch has multiple parallel tasks.
43
- */
44
- taskIndex?: number;
45
- /**
46
- * Lifecycle stage label forwarded to RunInput.stageLabel so the running-
47
- * headline polling response shows the current stage (e.g. 'Implementing').
48
- */
49
- stageLabel?: string;
50
- }
51
- export declare function delegateWithEscalation(task: TaskSpec, chain: Provider[], options?: DelegateOptions): Promise<RuntimeRunResult>;
52
- //# sourceMappingURL=delegate-with-escalation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delegate-with-escalation.d.ts","sourceRoot":"","sources":["../../src/escalation/delegate-with-escalation.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAEV,mBAAmB,EAGpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAe/D,MAAM,WAAW,eAAe;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAClD;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiBD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAmL3B"}
@@ -1,201 +0,0 @@
1
- // NOTE: Despite the name "delegateWithEscalation", this function does NOT
2
- // perform status-level tier escalation. Escalation policy lives in
3
- // escalation/policy.ts and is invoked via runWithFallback by the
4
- // lifecycle review-chain handlers. This function only handles transient
5
- // retries (api_error / network_error).
6
- import { retryableFor } from '../error-codes.js';
7
- import { extractToolName } from '../providers/stall-detector.js';
8
- import { assembleRunResult } from '../providers/assemble-run-result.js';
9
- import { HUMAN_LABEL } from '../lifecycle/stage-labels.js';
10
- function deriveCause(status, errorCode) {
11
- if (errorCode === 'degenerate_exhausted')
12
- return 'degenerate_exhausted';
13
- if (status === 'ok')
14
- return 'finished';
15
- if (status === 'incomplete')
16
- return 'incomplete';
17
- if (status === 'unavailable')
18
- return 'error';
19
- return status;
20
- }
21
- const TRANSIENT_STATUSES = new Set(['api_error', 'provider_transport_failure']);
22
- const TIMEOUT_STATUS = 'timeout';
23
- const MAX_RETRIES = 2;
24
- const BASE_DELAY_MS = 1000;
25
- function sleep(ms) {
26
- return new Promise(resolve => setTimeout(resolve, ms));
27
- }
28
- function maxRetriesForStatus(status) {
29
- if (TRANSIENT_STATUSES.has(status))
30
- return MAX_RETRIES;
31
- if (status === TIMEOUT_STATUS)
32
- return 1;
33
- return 0;
34
- }
35
- export async function delegateWithEscalation(task, chain, options = {}) {
36
- if (chain.length === 0) {
37
- throw new Error('delegateWithEscalation called with empty chain');
38
- }
39
- const safeSink = options.onProgress
40
- ? (event) => {
41
- try {
42
- options.onProgress(event);
43
- }
44
- catch {
45
- }
46
- }
47
- : undefined;
48
- const attempts = [];
49
- for (let i = 0; i < chain.length; i++) {
50
- const provider = chain[i];
51
- if (i > 0 && safeSink) {
52
- const prev = attempts[attempts.length - 1].record;
53
- safeSink({
54
- kind: 'escalation_start',
55
- previousProvider: prev.provider,
56
- previousReason: prev.reason ?? `status=${prev.status}`,
57
- nextProvider: provider.name,
58
- });
59
- }
60
- const initialPromptLengthChars = 0;
61
- const initialPromptHash = '';
62
- let result;
63
- let cumulativeCostUSD = 0;
64
- for (let attempt = 0;; attempt++) {
65
- // Cap per-call timeout at the remaining task-level budget.
66
- let effectiveTimeoutMs = task.timeoutMs;
67
- if (options.taskDeadlineMs !== undefined) {
68
- const remaining = options.taskDeadlineMs - Date.now();
69
- const remainingClamped = remaining > 0 ? remaining : 1;
70
- effectiveTimeoutMs =
71
- effectiveTimeoutMs !== undefined
72
- ? Math.min(effectiveTimeoutMs, remainingClamped)
73
- : remainingClamped;
74
- }
75
- // v4.4: ProviderConfig.type is one of: 'claude' | 'codex'.
76
- const cfg = provider.config;
77
- const cfgType = cfg.type ?? 'codex';
78
- const providerTypeName = cfgType === 'claude' ? 'claude' : 'codex';
79
- safeSink?.({
80
- kind: 'worker_start',
81
- model: cfg.model ?? 'unknown',
82
- providerType: providerTypeName,
83
- tier: options.assignedTier ?? 'standard',
84
- });
85
- const cwd = task.cwd ?? process.cwd();
86
- const wallClockDeadline = options.taskDeadlineMs ?? (Date.now() + (effectiveTimeoutMs ?? 60 * 60 * 1000));
87
- const idleStallTimeoutMs = 20 * 60 * 1000;
88
- const abortCtrl = new AbortController();
89
- if (options.abortSignal) {
90
- if (options.abortSignal.aborted)
91
- abortCtrl.abort();
92
- else
93
- options.abortSignal.addEventListener('abort', () => abortCtrl.abort(), { once: true });
94
- }
95
- const session = provider.openSession({
96
- cwd,
97
- wallClockDeadline,
98
- idleStallTimeoutMs,
99
- abortSignal: abortCtrl.signal,
100
- ...(options.bus && { bus: options.bus }),
101
- });
102
- try {
103
- const turn = await session.send(task.prompt, {
104
- stageLabel: options.stageLabel ?? HUMAN_LABEL.implementing,
105
- });
106
- result = assembleRunResult(turn);
107
- }
108
- finally {
109
- try {
110
- await session.close();
111
- }
112
- catch { /* idempotent */ }
113
- }
114
- const maxRetries = maxRetriesForStatus(result.status);
115
- if (result.status === 'ok' || maxRetries === 0 || attempt >= maxRetries)
116
- break;
117
- const attemptCost = result.cost?.costUSD ?? result.actualCostUSD ?? 0;
118
- cumulativeCostUSD += attemptCost;
119
- if (task.maxCostUSD !== undefined && cumulativeCostUSD >= task.maxCostUSD)
120
- break;
121
- if (options.taskDeadlineMs !== undefined && Date.now() >= options.taskDeadlineMs)
122
- break;
123
- if (options.abortSignal?.aborted)
124
- break;
125
- const delayMs = BASE_DELAY_MS * Math.pow(2, attempt);
126
- safeSink?.({ kind: 'retry', attempt: attempt + 1, previousStatus: result.status, delayMs });
127
- await sleep(delayMs);
128
- }
129
- const record = {
130
- provider: provider.name,
131
- status: result.status,
132
- turns: result.turns,
133
- inputTokens: result.usage.inputTokens,
134
- outputTokens: result.usage.outputTokens,
135
- costUSD: result.cost?.costUSD ?? null,
136
- initialPromptLengthChars,
137
- initialPromptHash,
138
- reason: result.status === 'ok'
139
- ? undefined
140
- : (result.error || `status=${result.status}`),
141
- };
142
- attempts.push({ result, record });
143
- if (result.status === 'ok') {
144
- const terminationReason = {
145
- cause: 'finished',
146
- turnsUsed: result.turns,
147
- hasFileArtifacts: result.filesWritten.length > 0,
148
- usedShell: result.toolCalls.some(tc => extractToolName(tc) === 'runShell'),
149
- workerSelfAssessment: result.workerStatus ?? null,
150
- wasPromoted: false,
151
- };
152
- return { ...result, terminationReason, escalationLog: attempts.map((a) => a.record) };
153
- }
154
- // Skip the next provider in the fallback chain if the task-level
155
- // deadline has been hit or the stall watchdog aborted.
156
- if (options.taskDeadlineMs !== undefined && Date.now() >= options.taskDeadlineMs) {
157
- break;
158
- }
159
- if (options.abortSignal?.aborted) {
160
- break;
161
- }
162
- if (options.explicitlyPinned) {
163
- return {
164
- ...result,
165
- errorCode: result.errorCode ?? result.status,
166
- retryable: result.retryable ?? retryableFor(result.status),
167
- escalationLog: attempts.map((a) => a.record),
168
- };
169
- }
170
- }
171
- const realContentAttempts = attempts.filter((a) => !a.result.outputIsDiagnostic);
172
- const pool = realContentAttempts.length > 0 ? realContentAttempts : attempts;
173
- let best = pool[0].result;
174
- for (const a of pool) {
175
- if (a.result.output.length > best.output.length) {
176
- best = a.result;
177
- }
178
- }
179
- // v5: escalation no longer gates on workerSelfAssessment. Annotate is the
180
- // single point of truth for `completed` (spec §5.7 + §9 M1/M3 fixes).
181
- // Escalation only records attempts and selects the best one; status flows
182
- // through unchanged to annotate which makes the final verdict.
183
- const finalStatus = best.status === 'ok' ? 'incomplete' : best.status;
184
- const terminationReason = {
185
- cause: deriveCause(finalStatus, best.errorCode),
186
- turnsUsed: best.turns,
187
- hasFileArtifacts: best.filesWritten.length > 0,
188
- usedShell: best.toolCalls.some(tc => extractToolName(tc) === 'runShell'),
189
- workerSelfAssessment: best.workerStatus ?? null, // truthful read; NOT stamped (M3 fix)
190
- wasPromoted: false,
191
- };
192
- return {
193
- ...best,
194
- status: finalStatus,
195
- terminationReason,
196
- errorCode: best.errorCode ?? finalStatus,
197
- retryable: best.retryable ?? retryableFor(finalStatus),
198
- escalationLog: attempts.map((a) => a.record),
199
- };
200
- }
201
- //# sourceMappingURL=delegate-with-escalation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delegate-with-escalation.js","sourceRoot":"","sources":["../../src/escalation/delegate-with-escalation.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import type { AgentType } from '../types.js';
2
- export type ToolCategory = 'artifact_producing' | 'read_only' | 'assist';
3
- export declare const ATTEMPT_BUDGETS: Record<ToolCategory, number>;
4
- export declare class EscalationPolicy {
5
- /**
6
- * Returns the tier to use for the implementer at the given chain attempt.
7
- * Per spec § C9 (overall.md lines 1247-1252): attempts 0 and 1 hold the caller's tier;
8
- * attempt 2 (the 3rd try) rotates to otherTier. attempt >= 3 means budget exhausted.
9
- */
10
- rotateImpl(currentTier: AgentType, attempt: number): AgentType;
11
- /**
12
- * Reviewer always sits on otherTier of the current implementer tier.
13
- * On attempt 2 when implementer rotated, reviewer auto-flips back to the caller's original tier.
14
- */
15
- rotateReviewer(currentImplTier: AgentType): AgentType;
16
- attemptBudget(category: ToolCategory): number;
17
- }
18
- //# sourceMappingURL=escalation-policy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"escalation-policy.d.ts","sourceRoot":"","sources":["../../src/escalation/escalation-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,MAAM,YAAY,GAAG,oBAAoB,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEzE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAIxD,CAAC;AAEF,qBAAa,gBAAgB;IAC3B;;;;OAIG;IACH,UAAU,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS;IAO9D;;;OAGG;IACH,cAAc,CAAC,eAAe,EAAE,SAAS,GAAG,SAAS;IAIrD,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;CAG9C"}
@@ -1,33 +0,0 @@
1
- import { otherTier } from '../config/tier-policy-registry.js';
2
- export const ATTEMPT_BUDGETS = {
3
- artifact_producing: 7, // 3 spec + 3 quality + 1 diff
4
- read_only: 2, // 1 implementer + 1 annotator (no rework)
5
- assist: 1, // register_context_block, retry_tasks — sync state ops, no rework
6
- };
7
- export class EscalationPolicy {
8
- /**
9
- * Returns the tier to use for the implementer at the given chain attempt.
10
- * Per spec § C9 (overall.md lines 1247-1252): attempts 0 and 1 hold the caller's tier;
11
- * attempt 2 (the 3rd try) rotates to otherTier. attempt >= 3 means budget exhausted.
12
- */
13
- rotateImpl(currentTier, attempt) {
14
- if (attempt < 0)
15
- throw new Error(`attempt must be >= 0, got ${attempt}`);
16
- if (attempt >= 3)
17
- throw new Error(`per-chain attempt budget exhausted (attempt=${attempt}); chain should have terminated`);
18
- if (attempt === 2)
19
- return otherTier(currentTier); // 3rd attempt rotates
20
- return currentTier; // attempts 0 + 1 hold caller tier
21
- }
22
- /**
23
- * Reviewer always sits on otherTier of the current implementer tier.
24
- * On attempt 2 when implementer rotated, reviewer auto-flips back to the caller's original tier.
25
- */
26
- rotateReviewer(currentImplTier) {
27
- return otherTier(currentImplTier);
28
- }
29
- attemptBudget(category) {
30
- return ATTEMPT_BUDGETS[category];
31
- }
32
- }
33
- //# sourceMappingURL=escalation-policy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"escalation-policy.js","sourceRoot":"","sources":["../../src/escalation/escalation-policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAI9D,MAAM,CAAC,MAAM,eAAe,GAAiC;IAC3D,kBAAkB,EAAE,CAAC,EAAK,8BAA8B;IACxD,SAAS,EAAE,CAAC,EAAe,0CAA0C;IACrE,MAAM,EAAE,CAAC,EAAkB,kEAAkE;CAC9F,CAAC;AAEF,MAAM,OAAO,gBAAgB;IAC3B;;;;OAIG;IACH,UAAU,CAAC,WAAsB,EAAE,OAAe;QAChD,IAAI,OAAO,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;QACzE,IAAI,OAAO,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,iCAAiC,CAAC,CAAC;QAC3H,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC,CAAG,sBAAsB;QAC1E,OAAO,WAAW,CAAC,CAAkC,kCAAkC;IACzF,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,eAA0B;QACvC,OAAO,SAAS,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IAED,aAAa,CAAC,QAAsB;QAClC,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;CACF"}
@@ -1,22 +0,0 @@
1
- import type { Provider, AgentType, RuntimeRunResult } from '../types.js';
2
- /** Two providers are "identical" iff they resolve to the same effective backend
3
- * (type + model + baseUrl + apiKey wiring). When an operator points both tiers
4
- * at the same backend (one-provider deployment), cross-tier fallback is
5
- * structurally pointless — alt would just hit the same place. Comparing the
6
- * serialized config catches this without a new operator-facing flag. */
7
- export declare function providersIdentical(a: Provider, b: Provider): boolean;
8
- /** Lifecycle helper: builds the synthetic RuntimeRunResult expected when both tiers are
9
- * unavailable. Status is the new 'unavailable' value (NOT 'api_error') so
10
- * re-passing the synthetic into runWithFallback's isTransportFailure cannot
11
- * retrigger fallback.
12
- *
13
- * IMPORTANT: This shape MUST satisfy `RuntimeRunResult` (see types.ts). Confirmed
14
- * required fields: output, status, usage, turns, filesRead, filesWritten,
15
- * toolCalls, outputIsDiagnostic, escalationLog. All other RuntimeRunResult fields
16
- * are optional. */
17
- export declare function makeSyntheticRunResult(assigned: AgentType, errorCode: string): RuntimeRunResult;
18
- export declare function isReviewTransportFailure(r: {
19
- status?: string;
20
- }): boolean;
21
- export declare function scoreWork<T>(r: T | undefined): number;
22
- //# sourceMappingURL=fallback-helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fallback-helpers.d.ts","sourceRoot":"","sources":["../../src/escalation/fallback-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEzE;;;;yEAIyE;AACzE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAEpE;AAED;;;;;;;;oBAQoB;AACpB,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAiB/F;AAED,wBAAgB,wBAAwB,CACtC,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACrB,OAAO,CAET;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAMrD"}