@shapeshift-labs/frontier-swarm-codex 0.5.117 → 0.5.119

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 (387) hide show
  1. package/README.md +59 -3
  2. package/dist/apply.js +1 -1
  3. package/dist/apply.js.map +1 -1
  4. package/dist/calibration-feedback.d.ts.map +1 -1
  5. package/dist/calibration-feedback.js +57 -2
  6. package/dist/calibration-feedback.js.map +1 -1
  7. package/dist/cleanup.js +1 -0
  8. package/dist/cleanup.js.map +1 -1
  9. package/dist/cli-args.d.ts +72 -0
  10. package/dist/cli-args.d.ts.map +1 -0
  11. package/dist/cli-args.js +296 -0
  12. package/dist/cli-args.js.map +1 -0
  13. package/dist/cli-help.d.ts.map +1 -1
  14. package/dist/cli-help.js +14 -0
  15. package/dist/cli-help.js.map +1 -1
  16. package/dist/cli.js +58 -183
  17. package/dist/cli.js.map +1 -1
  18. package/dist/codex-adaptive-feedback.d.ts.map +1 -1
  19. package/dist/codex-adaptive-feedback.js +98 -3
  20. package/dist/codex-adaptive-feedback.js.map +1 -1
  21. package/dist/codex-executor.d.ts.map +1 -1
  22. package/dist/codex-executor.js +30 -3
  23. package/dist/codex-executor.js.map +1 -1
  24. package/dist/codex-prompt.d.ts.map +1 -1
  25. package/dist/codex-prompt.js +58 -0
  26. package/dist/codex-prompt.js.map +1 -1
  27. package/dist/codex-run-metadata.d.ts +34 -0
  28. package/dist/codex-run-metadata.d.ts.map +1 -0
  29. package/dist/codex-run-metadata.js +29 -0
  30. package/dist/codex-run-metadata.js.map +1 -0
  31. package/dist/codex-run-swarm.d.ts +4 -0
  32. package/dist/codex-run-swarm.d.ts.map +1 -0
  33. package/dist/codex-run-swarm.js +69 -0
  34. package/dist/codex-run-swarm.js.map +1 -0
  35. package/dist/codex-run.d.ts +3 -3
  36. package/dist/codex-run.d.ts.map +1 -1
  37. package/dist/codex-run.js +146 -133
  38. package/dist/codex-run.js.map +1 -1
  39. package/dist/codex-tournament-strategy.d.ts +10 -0
  40. package/dist/codex-tournament-strategy.d.ts.map +1 -1
  41. package/dist/codex-tournament-strategy.js +39 -0
  42. package/dist/codex-tournament-strategy.js.map +1 -1
  43. package/dist/codex-workspace-change-paths.d.ts +20 -0
  44. package/dist/codex-workspace-change-paths.d.ts.map +1 -0
  45. package/dist/codex-workspace-change-paths.js +215 -0
  46. package/dist/codex-workspace-change-paths.js.map +1 -0
  47. package/dist/codex-workspace-changes.d.ts +12 -12
  48. package/dist/codex-workspace-changes.d.ts.map +1 -1
  49. package/dist/codex-workspace-changes.js +19 -122
  50. package/dist/codex-workspace-changes.js.map +1 -1
  51. package/dist/codex-workspace-restore.d.ts +15 -0
  52. package/dist/codex-workspace-restore.d.ts.map +1 -0
  53. package/dist/codex-workspace-restore.js +66 -0
  54. package/dist/codex-workspace-restore.js.map +1 -0
  55. package/dist/codex-workspace-write-fence.d.ts +21 -0
  56. package/dist/codex-workspace-write-fence.d.ts.map +1 -0
  57. package/dist/codex-workspace-write-fence.js +155 -0
  58. package/dist/codex-workspace-write-fence.js.map +1 -0
  59. package/dist/codex-workspace.d.ts +5 -1
  60. package/dist/codex-workspace.d.ts.map +1 -1
  61. package/dist/codex-workspace.js +46 -2
  62. package/dist/codex-workspace.js.map +1 -1
  63. package/dist/collect-artifact-store.d.ts +14 -0
  64. package/dist/collect-artifact-store.d.ts.map +1 -0
  65. package/dist/collect-artifact-store.js +207 -0
  66. package/dist/collect-artifact-store.js.map +1 -0
  67. package/dist/collect-bundle-reasons.d.ts +18 -0
  68. package/dist/collect-bundle-reasons.d.ts.map +1 -0
  69. package/dist/collect-bundle-reasons.js +222 -0
  70. package/dist/collect-bundle-reasons.js.map +1 -0
  71. package/dist/collect-bundle-staleness.d.ts +10 -0
  72. package/dist/collect-bundle-staleness.d.ts.map +1 -0
  73. package/dist/collect-bundle-staleness.js +98 -0
  74. package/dist/collect-bundle-staleness.js.map +1 -0
  75. package/dist/collect-bundles.d.ts +8 -10
  76. package/dist/collect-bundles.d.ts.map +1 -1
  77. package/dist/collect-bundles.js +28 -115
  78. package/dist/collect-bundles.js.map +1 -1
  79. package/dist/collect-dashboard-quality.d.ts +5 -0
  80. package/dist/collect-dashboard-quality.d.ts.map +1 -0
  81. package/dist/collect-dashboard-quality.js +256 -0
  82. package/dist/collect-dashboard-quality.js.map +1 -0
  83. package/dist/collect-dashboard.d.ts +4 -3
  84. package/dist/collect-dashboard.d.ts.map +1 -1
  85. package/dist/collect-dashboard.js +37 -3
  86. package/dist/collect-dashboard.js.map +1 -1
  87. package/dist/collect-evidence.d.ts.map +1 -1
  88. package/dist/collect-evidence.js +13 -2
  89. package/dist/collect-evidence.js.map +1 -1
  90. package/dist/collect-finalize.d.ts +15 -0
  91. package/dist/collect-finalize.d.ts.map +1 -0
  92. package/dist/collect-finalize.js +75 -0
  93. package/dist/collect-finalize.js.map +1 -0
  94. package/dist/collect-landed.d.ts +7 -0
  95. package/dist/collect-landed.d.ts.map +1 -0
  96. package/dist/collect-landed.js +171 -0
  97. package/dist/collect-landed.js.map +1 -0
  98. package/dist/collect-noise.d.ts +6 -0
  99. package/dist/collect-noise.d.ts.map +1 -0
  100. package/dist/collect-noise.js +131 -0
  101. package/dist/collect-noise.js.map +1 -0
  102. package/dist/collect-overlaps.d.ts +3 -0
  103. package/dist/collect-overlaps.d.ts.map +1 -0
  104. package/dist/collect-overlaps.js +8 -0
  105. package/dist/collect-overlaps.js.map +1 -0
  106. package/dist/collect-pids.d.ts +4 -0
  107. package/dist/collect-pids.d.ts.map +1 -0
  108. package/dist/collect-pids.js +33 -0
  109. package/dist/collect-pids.js.map +1 -0
  110. package/dist/collect-setup.d.ts +4 -0
  111. package/dist/collect-setup.d.ts.map +1 -0
  112. package/dist/collect-setup.js +20 -0
  113. package/dist/collect-setup.js.map +1 -0
  114. package/dist/collect-terminal-state.d.ts +14 -0
  115. package/dist/collect-terminal-state.d.ts.map +1 -0
  116. package/dist/collect-terminal-state.js +113 -0
  117. package/dist/collect-terminal-state.js.map +1 -0
  118. package/dist/collect-workspace-only.d.ts +10 -0
  119. package/dist/collect-workspace-only.d.ts.map +1 -0
  120. package/dist/collect-workspace-only.js +289 -0
  121. package/dist/collect-workspace-only.js.map +1 -0
  122. package/dist/collect-workspace-proof.d.ts +3 -0
  123. package/dist/collect-workspace-proof.d.ts.map +1 -0
  124. package/dist/collect-workspace-proof.js +24 -0
  125. package/dist/collect-workspace-proof.js.map +1 -0
  126. package/dist/collect-workspace-recovery.d.ts +22 -0
  127. package/dist/collect-workspace-recovery.d.ts.map +1 -0
  128. package/dist/collect-workspace-recovery.js +94 -0
  129. package/dist/collect-workspace-recovery.js.map +1 -0
  130. package/dist/collect.d.ts +1 -2
  131. package/dist/collect.d.ts.map +1 -1
  132. package/dist/collect.js +125 -116
  133. package/dist/collect.js.map +1 -1
  134. package/dist/common.d.ts +5 -0
  135. package/dist/common.d.ts.map +1 -1
  136. package/dist/common.js +54 -1
  137. package/dist/common.js.map +1 -1
  138. package/dist/constants.d.ts +6 -0
  139. package/dist/constants.d.ts.map +1 -1
  140. package/dist/constants.js +6 -0
  141. package/dist/constants.js.map +1 -1
  142. package/dist/context-budget.d.ts.map +1 -1
  143. package/dist/context-budget.js +49 -6
  144. package/dist/context-budget.js.map +1 -1
  145. package/dist/continuation-adaptive-routing.d.ts +7 -0
  146. package/dist/continuation-adaptive-routing.d.ts.map +1 -0
  147. package/dist/continuation-adaptive-routing.js +129 -0
  148. package/dist/continuation-adaptive-routing.js.map +1 -0
  149. package/dist/continuation-child-backlogs.d.ts +11 -0
  150. package/dist/continuation-child-backlogs.d.ts.map +1 -0
  151. package/dist/continuation-child-backlogs.js +48 -0
  152. package/dist/continuation-child-backlogs.js.map +1 -0
  153. package/dist/continuation-feedback.d.ts +41 -0
  154. package/dist/continuation-feedback.d.ts.map +1 -0
  155. package/dist/continuation-feedback.js +294 -0
  156. package/dist/continuation-feedback.js.map +1 -0
  157. package/dist/continuation-human-actions.d.ts +15 -0
  158. package/dist/continuation-human-actions.d.ts.map +1 -0
  159. package/dist/continuation-human-actions.js +23 -0
  160. package/dist/continuation-human-actions.js.map +1 -0
  161. package/dist/continuation-job-routing-summary.d.ts +4 -0
  162. package/dist/continuation-job-routing-summary.d.ts.map +1 -0
  163. package/dist/continuation-job-routing-summary.js +47 -0
  164. package/dist/continuation-job-routing-summary.js.map +1 -0
  165. package/dist/continuation-task-source.d.ts +10 -0
  166. package/dist/continuation-task-source.d.ts.map +1 -0
  167. package/dist/continuation-task-source.js +11 -0
  168. package/dist/continuation-task-source.js.map +1 -0
  169. package/dist/continuation-terminal-outcomes.d.ts +27 -0
  170. package/dist/continuation-terminal-outcomes.d.ts.map +1 -0
  171. package/dist/continuation-terminal-outcomes.js +215 -0
  172. package/dist/continuation-terminal-outcomes.js.map +1 -0
  173. package/dist/continuation.d.ts +3 -0
  174. package/dist/continuation.d.ts.map +1 -0
  175. package/dist/continuation.js +266 -0
  176. package/dist/continuation.js.map +1 -0
  177. package/dist/dashboard-ui-constants.d.ts +6 -0
  178. package/dist/dashboard-ui-constants.d.ts.map +1 -0
  179. package/dist/dashboard-ui-constants.js +6 -0
  180. package/dist/dashboard-ui-constants.js.map +1 -0
  181. package/dist/dashboard-ui-health.d.ts +24 -0
  182. package/dist/dashboard-ui-health.d.ts.map +1 -0
  183. package/dist/dashboard-ui-health.js +175 -0
  184. package/dist/dashboard-ui-health.js.map +1 -0
  185. package/dist/dashboard-ui-human-actions.d.ts +3 -0
  186. package/dist/dashboard-ui-human-actions.d.ts.map +1 -0
  187. package/dist/dashboard-ui-human-actions.js +218 -0
  188. package/dist/dashboard-ui-human-actions.js.map +1 -0
  189. package/dist/dashboard-ui-jobs.d.ts +7 -0
  190. package/dist/dashboard-ui-jobs.d.ts.map +1 -0
  191. package/dist/dashboard-ui-jobs.js +232 -0
  192. package/dist/dashboard-ui-jobs.js.map +1 -0
  193. package/dist/dashboard-ui-lanes.d.ts +3 -0
  194. package/dist/dashboard-ui-lanes.d.ts.map +1 -0
  195. package/dist/dashboard-ui-lanes.js +17 -0
  196. package/dist/dashboard-ui-lanes.js.map +1 -0
  197. package/dist/dashboard-ui-metric-utils.d.ts +13 -0
  198. package/dist/dashboard-ui-metric-utils.d.ts.map +1 -0
  199. package/dist/dashboard-ui-metric-utils.js +52 -0
  200. package/dist/dashboard-ui-metric-utils.js.map +1 -0
  201. package/dist/dashboard-ui-quality.d.ts +4 -0
  202. package/dist/dashboard-ui-quality.d.ts.map +1 -0
  203. package/dist/dashboard-ui-quality.js +106 -0
  204. package/dist/dashboard-ui-quality.js.map +1 -0
  205. package/dist/dashboard-ui-semantic.d.ts +6 -0
  206. package/dist/dashboard-ui-semantic.d.ts.map +1 -0
  207. package/dist/dashboard-ui-semantic.js +84 -0
  208. package/dist/dashboard-ui-semantic.js.map +1 -0
  209. package/dist/dashboard-ui-sources.d.ts +9 -0
  210. package/dist/dashboard-ui-sources.d.ts.map +1 -0
  211. package/dist/dashboard-ui-sources.js +39 -0
  212. package/dist/dashboard-ui-sources.js.map +1 -0
  213. package/dist/dashboard-ui-steering.d.ts +4 -0
  214. package/dist/dashboard-ui-steering.d.ts.map +1 -0
  215. package/dist/dashboard-ui-steering.js +41 -0
  216. package/dist/dashboard-ui-steering.js.map +1 -0
  217. package/dist/dashboard-ui-summary.d.ts +6 -0
  218. package/dist/dashboard-ui-summary.d.ts.map +1 -0
  219. package/dist/dashboard-ui-summary.js +64 -0
  220. package/dist/dashboard-ui-summary.js.map +1 -0
  221. package/dist/dashboard-ui-time-series.d.ts +6 -0
  222. package/dist/dashboard-ui-time-series.d.ts.map +1 -0
  223. package/dist/dashboard-ui-time-series.js +191 -0
  224. package/dist/dashboard-ui-time-series.js.map +1 -0
  225. package/dist/dashboard-ui-types.d.ts +21 -0
  226. package/dist/dashboard-ui-types.d.ts.map +1 -0
  227. package/dist/dashboard-ui-types.js +2 -0
  228. package/dist/dashboard-ui-types.js.map +1 -0
  229. package/dist/dashboard-ui-values.d.ts +13 -0
  230. package/dist/dashboard-ui-values.d.ts.map +1 -0
  231. package/dist/dashboard-ui-values.js +57 -0
  232. package/dist/dashboard-ui-values.js.map +1 -0
  233. package/dist/dashboard-ui-workspace.d.ts +7 -0
  234. package/dist/dashboard-ui-workspace.d.ts.map +1 -0
  235. package/dist/dashboard-ui-workspace.js +131 -0
  236. package/dist/dashboard-ui-workspace.js.map +1 -0
  237. package/dist/dashboard-ui.d.ts +4 -0
  238. package/dist/dashboard-ui.d.ts.map +1 -0
  239. package/dist/dashboard-ui.js +139 -0
  240. package/dist/dashboard-ui.js.map +1 -0
  241. package/dist/dashboard.js +59 -3
  242. package/dist/dashboard.js.map +1 -1
  243. package/dist/human-actions.d.ts +46 -0
  244. package/dist/human-actions.d.ts.map +1 -0
  245. package/dist/human-actions.js +251 -0
  246. package/dist/human-actions.js.map +1 -0
  247. package/dist/index.d.ts +6 -6
  248. package/dist/index.d.ts.map +1 -1
  249. package/dist/index.js +5 -92
  250. package/dist/index.js.map +1 -1
  251. package/dist/model-pricing.d.ts +49 -0
  252. package/dist/model-pricing.d.ts.map +1 -0
  253. package/dist/model-pricing.js +159 -0
  254. package/dist/model-pricing.js.map +1 -0
  255. package/dist/patch-score-semantic.d.ts.map +1 -1
  256. package/dist/patch-score-semantic.js +34 -30
  257. package/dist/patch-score-semantic.js.map +1 -1
  258. package/dist/plan.d.ts +6 -0
  259. package/dist/plan.d.ts.map +1 -0
  260. package/dist/plan.js +191 -0
  261. package/dist/plan.js.map +1 -0
  262. package/dist/query-io.d.ts +8 -0
  263. package/dist/query-io.d.ts.map +1 -0
  264. package/dist/query-io.js +46 -0
  265. package/dist/query-io.js.map +1 -0
  266. package/dist/query-landed.d.ts +20 -0
  267. package/dist/query-landed.d.ts.map +1 -0
  268. package/dist/query-landed.js +64 -0
  269. package/dist/query-landed.js.map +1 -0
  270. package/dist/query-matchers.d.ts +6 -0
  271. package/dist/query-matchers.d.ts.map +1 -0
  272. package/dist/query-matchers.js +160 -0
  273. package/dist/query-matchers.js.map +1 -0
  274. package/dist/query-signal-types.d.ts +32 -0
  275. package/dist/query-signal-types.d.ts.map +1 -0
  276. package/dist/query-signal-types.js +2 -0
  277. package/dist/query-signal-types.js.map +1 -0
  278. package/dist/query-signals.d.ts +12 -0
  279. package/dist/query-signals.d.ts.map +1 -0
  280. package/dist/query-signals.js +207 -0
  281. package/dist/query-signals.js.map +1 -0
  282. package/dist/query-status.d.ts +10 -0
  283. package/dist/query-status.d.ts.map +1 -0
  284. package/dist/query-status.js +115 -0
  285. package/dist/query-status.js.map +1 -0
  286. package/dist/query-summaries.d.ts +283 -0
  287. package/dist/query-summaries.d.ts.map +1 -0
  288. package/dist/query-summaries.js +195 -0
  289. package/dist/query-summaries.js.map +1 -0
  290. package/dist/query-types.d.ts +45 -0
  291. package/dist/query-types.d.ts.map +1 -0
  292. package/dist/query-types.js +2 -0
  293. package/dist/query-types.js.map +1 -0
  294. package/dist/query-values.d.ts +15 -0
  295. package/dist/query-values.d.ts.map +1 -0
  296. package/dist/query-values.js +73 -0
  297. package/dist/query-values.js.map +1 -0
  298. package/dist/query.d.ts +344 -41
  299. package/dist/query.d.ts.map +1 -1
  300. package/dist/query.js +38 -157
  301. package/dist/query.js.map +1 -1
  302. package/dist/score-calibration.d.ts.map +1 -1
  303. package/dist/score-calibration.js +52 -3
  304. package/dist/score-calibration.js.map +1 -1
  305. package/dist/score.js +1 -1
  306. package/dist/score.js.map +1 -1
  307. package/dist/semantic-edit-admission.d.ts +3 -0
  308. package/dist/semantic-edit-admission.d.ts.map +1 -1
  309. package/dist/semantic-edit-admission.js +90 -11
  310. package/dist/semantic-edit-admission.js.map +1 -1
  311. package/dist/semantic-edit-clean-eligibility.d.ts.map +1 -1
  312. package/dist/semantic-edit-clean-eligibility.js +22 -4
  313. package/dist/semantic-edit-clean-eligibility.js.map +1 -1
  314. package/dist/semantic-edit-script.d.ts.map +1 -1
  315. package/dist/semantic-edit-script.js +26 -5
  316. package/dist/semantic-edit-script.js.map +1 -1
  317. package/dist/semantic-import-layers.d.ts +1 -1
  318. package/dist/semantic-import-layers.d.ts.map +1 -1
  319. package/dist/semantic-import-layers.js +22 -6
  320. package/dist/semantic-import-layers.js.map +1 -1
  321. package/dist/semantic-import-lineage-signals.d.ts +12 -0
  322. package/dist/semantic-import-lineage-signals.d.ts.map +1 -0
  323. package/dist/semantic-import-lineage-signals.js +126 -0
  324. package/dist/semantic-import-lineage-signals.js.map +1 -0
  325. package/dist/semantic-import-lineage.d.ts.map +1 -1
  326. package/dist/semantic-import-lineage.js +120 -18
  327. package/dist/semantic-import-lineage.js.map +1 -1
  328. package/dist/semantic-import-proof.d.ts.map +1 -1
  329. package/dist/semantic-import-proof.js +16 -0
  330. package/dist/semantic-import-proof.js.map +1 -1
  331. package/dist/semantic-import-quality.d.ts.map +1 -1
  332. package/dist/semantic-import-quality.js +8 -0
  333. package/dist/semantic-import-quality.js.map +1 -1
  334. package/dist/semantic-import-readiness.d.ts +15 -0
  335. package/dist/semantic-import-readiness.d.ts.map +1 -0
  336. package/dist/semantic-import-readiness.js +214 -0
  337. package/dist/semantic-import-readiness.js.map +1 -0
  338. package/dist/semantic-import-sidecar.d.ts.map +1 -1
  339. package/dist/semantic-import-sidecar.js +6 -37
  340. package/dist/semantic-import-sidecar.js.map +1 -1
  341. package/dist/semantic-import.d.ts +4 -2
  342. package/dist/semantic-import.d.ts.map +1 -1
  343. package/dist/semantic-import.js +27 -10
  344. package/dist/semantic-import.js.map +1 -1
  345. package/dist/tournament-bandit-view.d.ts +16 -13
  346. package/dist/tournament-bandit-view.d.ts.map +1 -1
  347. package/dist/tournament-bandit-view.js +23 -3
  348. package/dist/tournament-bandit-view.js.map +1 -1
  349. package/dist/tournament-query.d.ts +35 -39
  350. package/dist/tournament-query.d.ts.map +1 -1
  351. package/dist/tournament-query.js +32 -6
  352. package/dist/tournament-query.js.map +1 -1
  353. package/dist/types-collection-quality.d.ts +112 -0
  354. package/dist/types-collection-quality.d.ts.map +1 -0
  355. package/dist/types-collection-quality.js +2 -0
  356. package/dist/types-collection-quality.js.map +1 -0
  357. package/dist/types-collection-score.d.ts +112 -0
  358. package/dist/types-collection-score.d.ts.map +1 -0
  359. package/dist/types-collection-score.js +2 -0
  360. package/dist/types-collection-score.js.map +1 -0
  361. package/dist/types-collection.d.ts +107 -112
  362. package/dist/types-collection.d.ts.map +1 -1
  363. package/dist/types-continuation.d.ts +151 -0
  364. package/dist/types-continuation.d.ts.map +1 -0
  365. package/dist/types-continuation.js +2 -0
  366. package/dist/types-continuation.js.map +1 -0
  367. package/dist/types-dashboard-metrics.d.ts +241 -0
  368. package/dist/types-dashboard-metrics.d.ts.map +1 -0
  369. package/dist/types-dashboard-metrics.js +2 -0
  370. package/dist/types-dashboard-metrics.js.map +1 -0
  371. package/dist/types-dashboard.d.ts +277 -0
  372. package/dist/types-dashboard.d.ts.map +1 -0
  373. package/dist/types-dashboard.js +2 -0
  374. package/dist/types-dashboard.js.map +1 -0
  375. package/dist/types-evidence.d.ts +3 -0
  376. package/dist/types-evidence.d.ts.map +1 -1
  377. package/dist/types-run.d.ts +54 -1
  378. package/dist/types-run.d.ts.map +1 -1
  379. package/dist/types-score-calibration.d.ts +15 -0
  380. package/dist/types-score-calibration.d.ts.map +1 -1
  381. package/dist/types-semantic.d.ts +21 -12
  382. package/dist/types-semantic.d.ts.map +1 -1
  383. package/dist/types-workspace.d.ts +31 -1
  384. package/dist/types-workspace.d.ts.map +1 -1
  385. package/dist/types.d.ts +2 -0
  386. package/dist/types.d.ts.map +1 -1
  387. package/package.json +2 -2
@@ -0,0 +1,215 @@
1
+ import { createSwarmBacklog } from '@shapeshift-labs/frontier-swarm';
2
+ import { uniqueStrings } from './common.js';
3
+ import { humanActionSubjectAliases } from './human-actions.js';
4
+ export function projectContinuationTerminalOutcomes(input) {
5
+ const model = input.collection?.queueOutcomeModel;
6
+ if (!model) {
7
+ return {
8
+ backlog: input.backlog,
9
+ tasks: [...input.tasks],
10
+ summary: emptyTerminalOutcomeProjectionSummary()
11
+ };
12
+ }
13
+ const decisionsByAlias = latestDecisionsByAlias(model);
14
+ const answeredActionsByAlias = answeredHumanActionsByAlias(input.answeredHumanActions ?? []);
15
+ const entries = input.backlog.entries.map((entry) => projectBacklogEntry(entry, decisionsByAlias, input.generatedAt, answeredActionsByAlias));
16
+ const projectedTasks = input.tasks.map((task) => projectTaskInput(task, decisionsByAlias, input.generatedAt, answeredActionsByAlias));
17
+ const tasks = projectedTasks.filter((task) => !taskClosedByTerminalProjection(task));
18
+ const summary = summarizeProjection(input.backlog.entries, entries, input.tasks, projectedTasks, model);
19
+ return {
20
+ backlog: createSwarmBacklog({
21
+ ...input.backlog,
22
+ entries,
23
+ metadata: {
24
+ ...(input.backlog.metadata ?? {}),
25
+ terminalOutcomeProjection: {
26
+ generatedAt: input.generatedAt,
27
+ sourceCollectionDir: input.collection?.outDir,
28
+ ...summary
29
+ }
30
+ }
31
+ }),
32
+ tasks,
33
+ summary
34
+ };
35
+ }
36
+ function latestDecisionsByAlias(model) {
37
+ const byId = new Map(model.decisions.map((decision) => [decision.id, decision]));
38
+ const out = new Map();
39
+ for (const [alias, decisionId] of Object.entries(model.latestDecisionIdByAlias)) {
40
+ const decision = byId.get(decisionId);
41
+ if (decision)
42
+ out.set(alias, decision);
43
+ }
44
+ return out;
45
+ }
46
+ function projectBacklogEntry(entry, decisionsByAlias, generatedAt, answeredActionsByAlias) {
47
+ const aliases = entryAliases(entry);
48
+ const decision = decisionForAliases(aliases, decisionsByAlias);
49
+ if (!decision)
50
+ return entry;
51
+ const answeredAction = answeredHumanActionForAliases(aliases, answeredActionsByAlias);
52
+ const projection = projectionForDecision(decision, aliases, answeredActionsByAlias);
53
+ return {
54
+ ...entry,
55
+ status: projection.status,
56
+ tags: uniqueStrings([...entry.tags, ...projection.tags]),
57
+ metadata: {
58
+ ...(entry.metadata ?? {}),
59
+ terminalOutcome: terminalOutcomeMetadata(decision, generatedAt, answeredAction)
60
+ }
61
+ };
62
+ }
63
+ function projectTaskInput(task, decisionsByAlias, generatedAt, answeredActionsByAlias) {
64
+ const aliases = taskAliases(task);
65
+ const decision = decisionForAliases(aliases, decisionsByAlias);
66
+ if (!decision)
67
+ return task;
68
+ const answeredAction = answeredHumanActionForAliases(aliases, answeredActionsByAlias);
69
+ const projection = projectionForDecision(decision, aliases, answeredActionsByAlias);
70
+ return {
71
+ ...task,
72
+ status: projection.status,
73
+ tags: uniqueStrings([...(task.tags ?? []), ...projection.tags]),
74
+ metadata: {
75
+ ...metadataObject(task.metadata),
76
+ terminalOutcome: terminalOutcomeMetadata(decision, generatedAt, answeredAction)
77
+ }
78
+ };
79
+ }
80
+ function taskClosedByTerminalProjection(task) {
81
+ if (!metadataObject(task.metadata).terminalOutcome)
82
+ return false;
83
+ return task.status !== 'ready' && task.status !== 'open';
84
+ }
85
+ function decisionForAliases(aliases, decisionsByAlias) {
86
+ let latest;
87
+ for (const alias of aliases) {
88
+ const decision = decisionsByAlias.get(alias);
89
+ if (!decision)
90
+ continue;
91
+ if (!latest || decision.generatedAt > latest.generatedAt || decision.generatedAt === latest.generatedAt && decision.id > latest.id)
92
+ latest = decision;
93
+ }
94
+ return latest;
95
+ }
96
+ function projectionForDecision(decision, aliases, answeredActionsByAlias) {
97
+ if (decision.outcome === 'rerun')
98
+ return { status: 'ready', tags: ['terminal:rerun'] };
99
+ if (decision.outcome === 'needs-port' || decision.coordinatorReview)
100
+ return { status: 'coordinator-review', tags: ['terminal:coordinator-review'] };
101
+ if (decision.outcome === 'human-question' || decision.humanBlocked) {
102
+ return aliases.some((alias) => answeredActionsByAlias.has(alias))
103
+ ? { status: 'ready', tags: ['terminal:human-question', 'human-answer:answered'] }
104
+ : { status: 'blocked', tags: ['terminal:human-question'] };
105
+ }
106
+ if (decision.outcome === 'conflict-blocked' || decision.conflict)
107
+ return { status: 'blocked', tags: ['terminal:conflict'] };
108
+ if (decision.outcome === 'rejected')
109
+ return { status: 'rejected', tags: ['terminal:rejected'] };
110
+ if (decision.outcome === 'ready')
111
+ return { status: 'ready', tags: ['terminal:ready'] };
112
+ return { status: decision.outcome === 'checked' ? 'verified' : 'completed', tags: [`terminal:${decision.outcome}`] };
113
+ }
114
+ function terminalOutcomeMetadata(decision, generatedAt, answeredAction) {
115
+ return {
116
+ generatedAt,
117
+ decisionId: decision.id,
118
+ category: decision.category,
119
+ outcome: decision.outcome,
120
+ terminal: decision.terminal,
121
+ closesSubject: decision.closesSubject,
122
+ reasons: decision.reasons,
123
+ ...(answeredAction ? { humanAnswer: humanAnswerMetadata(answeredAction) } : {})
124
+ };
125
+ }
126
+ function summarizeProjection(beforeEntries, afterEntries, beforeTasks, afterTasks, model) {
127
+ return {
128
+ closedEntryCount: countChangedTo(beforeEntries, afterEntries, (status) => status === 'completed' || status === 'verified' || status === 'rejected'),
129
+ closedTaskCount: countChangedTo(beforeTasks, afterTasks, (status) => status === 'completed' || status === 'verified' || status === 'rejected'),
130
+ rerunEntryCount: countChangedTo(beforeEntries, afterEntries, (status, tags) => status === 'ready' && tags.includes('terminal:rerun')),
131
+ rerunTaskCount: countChangedTo(beforeTasks, afterTasks, (status, tags) => status === 'ready' && tags.includes('terminal:rerun')),
132
+ reviewEntryCount: countChangedTo(beforeEntries, afterEntries, (status) => status === 'coordinator-review'),
133
+ reviewTaskCount: countChangedTo(beforeTasks, afterTasks, (status) => status === 'coordinator-review'),
134
+ blockedEntryCount: countChangedTo(beforeEntries, afterEntries, (status) => status === 'blocked'),
135
+ blockedTaskCount: countChangedTo(beforeTasks, afterTasks, (status) => status === 'blocked'),
136
+ answeredHumanBlockerEntryCount: countMatching(afterEntries, (status, tags) => status === 'ready' && tags.includes('human-answer:answered')),
137
+ answeredHumanBlockerTaskCount: countMatching(afterTasks, (status, tags) => status === 'ready' && tags.includes('human-answer:answered')),
138
+ decisionCount: model.summary.latestDecisionCount
139
+ };
140
+ }
141
+ function answeredHumanActionsByAlias(actions) {
142
+ const out = new Map();
143
+ for (const action of actions) {
144
+ for (const alias of humanActionSubjectAliases(action))
145
+ out.set(alias, action);
146
+ }
147
+ return out;
148
+ }
149
+ function answeredHumanActionForAliases(aliases, answeredActionsByAlias) {
150
+ for (const alias of aliases) {
151
+ const action = answeredActionsByAlias.get(alias);
152
+ if (action)
153
+ return action;
154
+ }
155
+ return undefined;
156
+ }
157
+ function countChangedTo(before, after, predicate) {
158
+ let count = 0;
159
+ for (let index = 0; index < after.length; index += 1) {
160
+ if (before[index]?.status === after[index]?.status)
161
+ continue;
162
+ if (predicate(after[index]?.status, after[index]?.tags ?? []))
163
+ count += 1;
164
+ }
165
+ return count;
166
+ }
167
+ function countMatching(items, predicate) {
168
+ return items.filter((item) => predicate(item.status, item.tags ?? [])).length;
169
+ }
170
+ function entryAliases(entry) {
171
+ return uniqueStrings([entry.id, `queue:${entry.id}`, entry.taskId, entry.taskId ? `task:${entry.taskId}` : undefined].filter(isString));
172
+ }
173
+ function taskAliases(task) {
174
+ return uniqueStrings([task.id, `task:${task.id}`, `queue:${task.id}`]);
175
+ }
176
+ function metadataObject(value) {
177
+ return value && typeof value === 'object' && !Array.isArray(value) ? { ...value } : {};
178
+ }
179
+ function humanAnswerMetadata(action) {
180
+ const answer = metadataObject(action.humanAnswer);
181
+ return {
182
+ ...(stringValue(action.code) ? { code: stringValue(action.code) } : {}),
183
+ ...(stringValue(action.title) ? { title: stringValue(action.title) } : {}),
184
+ ...(stringValue(action.question) ? { question: stringValue(action.question) } : {}),
185
+ ...(stringValue(action.requestedAnswer) ? { requestedAnswer: stringValue(action.requestedAnswer) } : {}),
186
+ ...(stringValue(action.answer) ? { answer: stringValue(action.answer) } : {}),
187
+ ...(typeof action.answeredAt === 'number' ? { answeredAt: action.answeredAt } : {}),
188
+ ...(stringValue(answer.id) ? { answerId: stringValue(answer.id) } : {}),
189
+ ...(stringValue(action.jobId) ? { jobId: stringValue(action.jobId) } : {}),
190
+ ...(stringValue(action.taskId) ? { taskId: stringValue(action.taskId) } : {}),
191
+ ...(stringValue(action.lane) ? { lane: stringValue(action.lane) } : {})
192
+ };
193
+ }
194
+ function stringValue(value) {
195
+ return typeof value === 'string' && value.length > 0 ? value : undefined;
196
+ }
197
+ function isString(value) {
198
+ return typeof value === 'string' && value.length > 0;
199
+ }
200
+ function emptyTerminalOutcomeProjectionSummary() {
201
+ return {
202
+ closedEntryCount: 0,
203
+ closedTaskCount: 0,
204
+ rerunEntryCount: 0,
205
+ rerunTaskCount: 0,
206
+ reviewEntryCount: 0,
207
+ reviewTaskCount: 0,
208
+ blockedEntryCount: 0,
209
+ blockedTaskCount: 0,
210
+ answeredHumanBlockerEntryCount: 0,
211
+ answeredHumanBlockerTaskCount: 0,
212
+ decisionCount: 0
213
+ };
214
+ }
215
+ //# sourceMappingURL=continuation-terminal-outcomes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continuation-terminal-outcomes.js","sourceRoot":"","sources":["../src/continuation-terminal-outcomes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { FrontierCodexContinuationInput, FrontierCodexContinuationResult } from './types-continuation.js';
2
+ export declare function continueCodexSwarmLoop(input: FrontierCodexContinuationInput): Promise<FrontierCodexContinuationResult>;
3
+ //# sourceMappingURL=continuation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continuation.d.ts","sourceRoot":"","sources":["../src/continuation.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE/G,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAyL5H"}
@@ -0,0 +1,266 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { createSwarmBacklog, createSwarmModelRoutingPolicy, mergeSwarmBacklogs } from '@shapeshift-labs/frontier-swarm';
4
+ import { FRONTIER_SWARM_CODEX_CONTINUATION_KIND, FRONTIER_SWARM_CODEX_CONTINUATION_VERSION } from './constants.js';
5
+ import { uniqueStrings } from './common.js';
6
+ import { collectCodexSwarmRun } from './collect.js';
7
+ import { createAdaptiveRoutingSignalsFromTournamentFeedback, dedupeRoutingSignals, summarizeAdaptiveRoutingSignals } from './continuation-adaptive-routing.js';
8
+ import { readContinuationChildBacklogs, resolveContinuationChildBacklogNames } from './continuation-child-backlogs.js';
9
+ import { createContinuationFeedback, createContinuationRoutingCostSummary, createContinuationTournamentSummary } from './continuation-feedback.js';
10
+ import { createContinuationHumanActionState } from './continuation-human-actions.js';
11
+ import { summarizeNextJobRouting } from './continuation-job-routing-summary.js';
12
+ import { writeContinuationTaskSource } from './continuation-task-source.js';
13
+ import { projectContinuationTerminalOutcomes } from './continuation-terminal-outcomes.js';
14
+ import { coerceCodexSwarmTasksInput, createCodexSwarmPlan } from './index.js';
15
+ export async function continueCodexSwarmLoop(input) {
16
+ const generatedAt = Date.now();
17
+ const cwd = path.resolve(input.cwd ?? process.cwd());
18
+ const collection = await resolveContinuationCollection(input, cwd);
19
+ const outDir = path.resolve(cwd, input.outDir ?? path.join(collection?.outDir ?? cwd, 'continuation'));
20
+ const baseBacklog = await readContinuationBacklog(input, cwd);
21
+ const childBacklogNames = resolveContinuationChildBacklogNames(input);
22
+ const childBacklogs = await readContinuationChildBacklogs({
23
+ roots: uniqueStrings([collection?.outDir, collection?.runDir].filter((entry) => !!entry)),
24
+ names: childBacklogNames
25
+ });
26
+ const nextBacklog = mergeSwarmBacklogs({
27
+ base: baseBacklog,
28
+ backlogs: childBacklogs.map((entry) => entry.backlog),
29
+ generatedAt,
30
+ metadata: {
31
+ continuationGeneratedAt: generatedAt,
32
+ childBacklogNames,
33
+ childBacklogPaths: childBacklogs.map((entry) => entry.path)
34
+ }
35
+ });
36
+ const humanActionState = await createContinuationHumanActionState({ continuation: input, cwd, outDir, collection, generatedAt });
37
+ const feedback = createContinuationFeedback({
38
+ collection,
39
+ repository: input.repository ?? path.basename(cwd),
40
+ packageName: input.package
41
+ });
42
+ const routingCostSummary = createContinuationRoutingCostSummary(feedback);
43
+ const tournamentSummary = createContinuationTournamentSummary(collection);
44
+ const adaptiveRoutingSignals = createAdaptiveRoutingSignalsFromTournamentFeedback(collection);
45
+ const adaptiveRouting = summarizeAdaptiveRoutingSignals(collection, adaptiveRoutingSignals);
46
+ const baseRoutingPolicy = await readContinuationRoutingPolicy(input, cwd);
47
+ const baseRoutingFeedback = Array.isArray(baseRoutingPolicy?.feedback)
48
+ ? baseRoutingPolicy.feedback
49
+ : [];
50
+ const baseRoutingSignals = Array.isArray(baseRoutingPolicy?.signals)
51
+ ? baseRoutingPolicy.signals
52
+ : [];
53
+ const nextRoutingPolicy = createSwarmModelRoutingPolicy({
54
+ ...(baseRoutingPolicy ?? {}),
55
+ signals: dedupeRoutingSignals([
56
+ ...baseRoutingSignals,
57
+ ...adaptiveRoutingSignals
58
+ ]),
59
+ feedback: [
60
+ ...baseRoutingFeedback,
61
+ ...feedback
62
+ ],
63
+ generatedAt,
64
+ metadata: {
65
+ ...(baseRoutingPolicy?.metadata ?? {}),
66
+ continuationGeneratedAt: generatedAt,
67
+ feedbackCount: feedback.length,
68
+ repository: input.repository ?? path.basename(cwd),
69
+ ...(input.package ? { package: input.package } : {}),
70
+ collectionDir: collection?.outDir,
71
+ ...(collection?.runDir ? { collectionRunDir: collection.runDir } : {}),
72
+ ...(collection?.generatedAt ? { collectionGeneratedAt: collection.generatedAt } : {}),
73
+ ...(collection?.summary ? { collectionSummary: collection.summary } : {}),
74
+ adaptiveRouting,
75
+ routingCostSummary,
76
+ ...(tournamentSummary ? { tournamentSummary } : {})
77
+ }
78
+ });
79
+ const manifest = await readOptionalJsonPath(input.manifestPath, cwd, input.manifest);
80
+ const tasks = await readOptionalJsonPath(input.tasksPath, cwd, input.tasks ?? []);
81
+ const planTasks = coerceCodexSwarmTasksInput(tasks);
82
+ const projected = projectContinuationTerminalOutcomes({
83
+ backlog: nextBacklog,
84
+ tasks: planTasks,
85
+ collection,
86
+ answeredHumanActions: humanActionState.answeredActions,
87
+ generatedAt
88
+ });
89
+ const nextPlan = manifest ? createCodexSwarmPlan({
90
+ manifest,
91
+ tasks: projected.tasks,
92
+ backlog: sanitizeContinuationBacklogForPlan(projected.backlog, projected.tasks),
93
+ backlogPlan: {
94
+ ...(input.backlogPlan ?? {}),
95
+ backlogPath: input.backlogPath
96
+ },
97
+ routingPolicy: nextRoutingPolicy,
98
+ routingMode: input.routingMode,
99
+ routingContext: {
100
+ repository: input.repository ?? path.basename(cwd),
101
+ package: input.package
102
+ },
103
+ plan: input.plan
104
+ }) : undefined;
105
+ const backlogPath = path.resolve(cwd, input.write && input.backlogPath ? input.backlogPath : path.join(outDir, 'backlog.next.json'));
106
+ const routingPolicyPath = path.resolve(cwd, input.write && input.routingPolicyPath ? input.routingPolicyPath : path.join(outDir, 'model-routing-policy.next.json'));
107
+ const nextPlanPath = nextPlan ? path.join(outDir, 'next-plan.json') : undefined;
108
+ const nextTasksPath = await writeContinuationTaskSource({ cwd, outDir, write: input.write, tasks: input.tasks, tasksPath: input.tasksPath, projectedTasks: projected.tasks });
109
+ const childBacklogPaths = childBacklogs.map((entry) => entry.path);
110
+ const nextJobs = nextPlan?.jobs ?? [];
111
+ const nextJobRouting = summarizeNextJobRouting(nextJobs);
112
+ await fs.mkdir(outDir, { recursive: true });
113
+ await fs.mkdir(path.dirname(backlogPath), { recursive: true });
114
+ await fs.mkdir(path.dirname(routingPolicyPath), { recursive: true });
115
+ await fs.writeFile(backlogPath, JSON.stringify(projected.backlog, null, 2) + '\n');
116
+ await fs.writeFile(routingPolicyPath, JSON.stringify(nextRoutingPolicy, null, 2) + '\n');
117
+ await fs.writeFile(humanActionState.statePath, JSON.stringify(humanActionState, null, 2) + '\n');
118
+ if (nextPlan && nextPlanPath)
119
+ await fs.writeFile(nextPlanPath, JSON.stringify(nextPlan, null, 2) + '\n');
120
+ const result = {
121
+ kind: FRONTIER_SWARM_CODEX_CONTINUATION_KIND,
122
+ version: FRONTIER_SWARM_CODEX_CONTINUATION_VERSION,
123
+ ok: true,
124
+ generatedAt,
125
+ cwd,
126
+ outDir,
127
+ ...(collection?.outDir ? { collectionDir: collection.outDir } : {}),
128
+ ...(collection?.runDir ? { runDir: collection.runDir } : {}),
129
+ backlogPath,
130
+ routingPolicyPath,
131
+ humanActionStatePath: humanActionState.statePath,
132
+ ...(nextTasksPath ? { nextTasksPath } : {}),
133
+ ...(nextPlanPath ? { nextPlanPath } : {}),
134
+ childBacklogNames,
135
+ childBacklogPaths,
136
+ feedbackCount: feedback.length,
137
+ nextBacklog: projected.backlog,
138
+ nextRoutingPolicy,
139
+ humanActions: humanActionState.actions,
140
+ humanAnswers: humanActionState.answers,
141
+ ...(nextPlan ? { nextPlan } : {}),
142
+ summary: {
143
+ childBacklogCount: childBacklogs.length,
144
+ childBacklogEntryCount: childBacklogs.reduce((sum, entry) => sum + entry.backlog.entries.length, 0),
145
+ feedbackCount: feedback.length,
146
+ totalRoutingFeedbackCount: nextRoutingPolicy.feedback.length,
147
+ backlogEntryCount: projected.backlog.entries.length,
148
+ terminalOutcomeProjection: projected.summary,
149
+ humanActions: {
150
+ ...humanActionState.summary,
151
+ answerPaths: humanActionState.answerPaths,
152
+ statePath: humanActionState.statePath
153
+ },
154
+ routingPreferenceCount: nextRoutingPolicy.preferences.length,
155
+ routingPreferences: {
156
+ defaultMode: nextRoutingPolicy.defaultMode,
157
+ signalCount: nextRoutingPolicy.summary.signalCount,
158
+ feedbackCount: nextRoutingPolicy.summary.feedbackCount,
159
+ preferenceCount: nextRoutingPolicy.summary.preferenceCount,
160
+ preferCount: nextRoutingPolicy.summary.preferCount,
161
+ avoidCount: nextRoutingPolicy.summary.avoidCount
162
+ },
163
+ adaptiveRouting,
164
+ routingCost: routingCostSummary,
165
+ nextJobCount: nextJobs.length,
166
+ nextJobIds: nextJobs.map((job) => job.id),
167
+ nextJobTaskIds: nextJobs.map((job) => job.taskId),
168
+ nextJobLaneCounts: countByString(nextJobs.map((job) => job.lane)),
169
+ nextJobRouting,
170
+ tournamentObservationCount: tournamentSummary?.adaptiveFeedback.observationCount ?? 0,
171
+ tournamentRecommendationCount: tournamentSummary?.adaptiveFeedback.recommendationCount ?? 0,
172
+ ...(collection ? {
173
+ collectionBucketCounts: collection.summary,
174
+ tournamentCounts: {
175
+ strategyCount: collection.strategyTournament.summary.strategyCount,
176
+ gameCount: collection.strategyTournament.summary.gameCount,
177
+ matchCount: collection.strategyTournament.summary.matchCount,
178
+ verifiedCount: collection.strategyTournament.summary.verifiedCount,
179
+ rejectedCount: collection.strategyTournament.summary.rejectedCount,
180
+ undefinedCount: collection.strategyTournament.summary.undefinedCount,
181
+ sampleConfidence: collection.strategyTournament.summary.sampleConfidence,
182
+ decisionGrade: collection.strategyTournament.summary.decisionGrade
183
+ },
184
+ tournamentFeedbackCounts: collection.tournamentAdaptiveFeedback.summary
185
+ } : {}),
186
+ paths: {
187
+ outDir,
188
+ ...(collection?.outDir ? { collectionDir: collection.outDir } : {}),
189
+ ...(collection?.runDir ? { runDir: collection.runDir } : {}),
190
+ backlogPath,
191
+ routingPolicyPath,
192
+ humanActionStatePath: humanActionState.statePath,
193
+ ...(nextTasksPath ? { nextTasksPath } : {}),
194
+ ...(nextPlanPath ? { nextPlanPath } : {}),
195
+ childBacklogPaths
196
+ }
197
+ }
198
+ };
199
+ await fs.writeFile(path.join(outDir, 'continuation.json'), JSON.stringify(result, null, 2) + '\n');
200
+ return result;
201
+ }
202
+ async function resolveContinuationCollection(input, cwd) {
203
+ if (input.collection)
204
+ return readContinuationCollection(input.collection, cwd);
205
+ if (!input.run)
206
+ return undefined;
207
+ return collectCodexSwarmRun({
208
+ run: input.run,
209
+ cwd,
210
+ outDir: input.collectionOutDir,
211
+ checkStale: input.checkStale,
212
+ semanticImportExpected: input.semanticImportExpected,
213
+ branchPrefix: input.branchPrefix
214
+ });
215
+ }
216
+ async function readContinuationCollection(collectionPath, cwd) {
217
+ const absolute = path.resolve(cwd, collectionPath);
218
+ const stat = await fs.lstat(absolute);
219
+ const file = stat.isDirectory() ? path.join(absolute, 'collection.json') : absolute;
220
+ const parsed = JSON.parse(await fs.readFile(file, 'utf8'));
221
+ return {
222
+ ...parsed,
223
+ outDir: parsed.outDir ? path.resolve(cwd, parsed.outDir) : path.dirname(file),
224
+ runDir: parsed.runDir ? path.resolve(cwd, parsed.runDir) : path.dirname(file)
225
+ };
226
+ }
227
+ async function readContinuationBacklog(input, cwd) {
228
+ const raw = await readOptionalJsonPath(input.backlogPath, cwd, input.backlog);
229
+ return raw ? createSwarmBacklog(raw) : createSwarmBacklog({ id: 'swarm-backlog:continuation', title: 'Continuation Backlog' });
230
+ }
231
+ async function readContinuationRoutingPolicy(input, cwd) {
232
+ return readOptionalJsonPath(input.routingPolicyPath, cwd, input.routingPolicy);
233
+ }
234
+ async function readOptionalJsonPath(file, cwd, fallback) {
235
+ if (!file)
236
+ return fallback;
237
+ return JSON.parse(await fs.readFile(path.resolve(cwd, file), 'utf8'));
238
+ }
239
+ function countByString(values) {
240
+ const out = {};
241
+ for (const value of values)
242
+ out[value] = (out[value] ?? 0) + 1;
243
+ return out;
244
+ }
245
+ function sanitizeContinuationBacklogForPlan(backlog, explicitTasks) {
246
+ const entryTaskIds = new Map(backlog.entries.map((entry) => [entry.id, entry.taskId ?? entry.id]));
247
+ const plannedTaskIds = new Set([
248
+ ...explicitTasks.map((task) => task.id),
249
+ ...entryTaskIds.values()
250
+ ]);
251
+ const normalizeTaskId = (value) => entryTaskIds.get(value) ?? value;
252
+ return {
253
+ ...backlog,
254
+ entries: backlog.entries.map((entry) => {
255
+ const parentTaskId = entry.parentEntryId ? normalizeTaskId(entry.parentEntryId) : undefined;
256
+ const dependsOn = uniqueStrings(entry.dependsOn.map(normalizeTaskId).filter((dependency) => plannedTaskIds.has(dependency)));
257
+ const { parentEntryId: _parentEntryId, ...rest } = entry;
258
+ return {
259
+ ...rest,
260
+ ...(parentTaskId && plannedTaskIds.has(parentTaskId) ? { parentEntryId: parentTaskId } : {}),
261
+ dependsOn
262
+ };
263
+ })
264
+ };
265
+ }
266
+ //# sourceMappingURL=continuation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continuation.js","sourceRoot":"","sources":["../src/continuation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const DASHBOARD_WORKSPACE_PROOF_MAX_BYTES: number;
2
+ export declare const DASHBOARD_FULL_COLLECTION_MAX_BYTES: number;
3
+ export declare const DASHBOARD_IGNORED_CHANGED_PATH_SAMPLE_LIMIT = 12;
4
+ export declare const DASHBOARD_QUALITY_SAMPLE_LIMIT = 12;
5
+ export declare const DASHBOARD_TIME_SERIES_BUCKET_MS: number;
6
+ //# sourceMappingURL=dashboard-ui-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-constants.d.ts","sourceRoot":"","sources":["../src/dashboard-ui-constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mCAAmC,QAAa,CAAC;AAC9D,eAAO,MAAM,mCAAmC,QAAmB,CAAC;AACpE,eAAO,MAAM,2CAA2C,KAAK,CAAC;AAC9D,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,+BAA+B,QAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ export const DASHBOARD_WORKSPACE_PROOF_MAX_BYTES = 512 * 1024;
2
+ export const DASHBOARD_FULL_COLLECTION_MAX_BYTES = 64 * 1024 * 1024;
3
+ export const DASHBOARD_IGNORED_CHANGED_PATH_SAMPLE_LIMIT = 12;
4
+ export const DASHBOARD_QUALITY_SAMPLE_LIMIT = 12;
5
+ export const DASHBOARD_TIME_SERIES_BUCKET_MS = 60 * 1000;
6
+ //# sourceMappingURL=dashboard-ui-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-constants.js","sourceRoot":"","sources":["../src/dashboard-ui-constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAG,GAAG,IAAI,CAAC;AAC9D,MAAM,CAAC,MAAM,mCAAmC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACpE,MAAM,CAAC,MAAM,2CAA2C,GAAG,EAAE,CAAC;AAC9D,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AACjD,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { FrontierCodexDashboardHealthMetrics, FrontierCodexDashboardHealthStatus, FrontierCodexDashboardJob, FrontierCodexDashboardSemanticReadiness } from './types-dashboard.js';
2
+ export declare function createDashboardHealthMetrics(jobs: readonly FrontierCodexDashboardJob[]): FrontierCodexDashboardHealthMetrics;
3
+ export declare function isDashboardFailureJob(job: FrontierCodexDashboardJob): boolean;
4
+ export declare function dashboardJobHealth(job: FrontierCodexDashboardJob): FrontierCodexDashboardHealthStatus;
5
+ export declare function dashboardSemanticReadiness(input: {
6
+ semanticAdmissionStatus?: string;
7
+ semanticAutoMergeCandidate: boolean;
8
+ semanticCleanEligible: boolean;
9
+ disposition?: string;
10
+ reasons: readonly string[];
11
+ }): FrontierCodexDashboardSemanticReadiness;
12
+ export declare function isDashboardTerminalJob(job: FrontierCodexDashboardJob): boolean;
13
+ export declare function isDashboardBlockedJob(job: FrontierCodexDashboardJob): boolean;
14
+ export declare function isDashboardFailedEvidenceJob(job: FrontierCodexDashboardJob): boolean;
15
+ export declare function dashboardRecordIndicatesFailedEvidence(job: Record<string, unknown>, stringListValue: (value: unknown) => string[]): boolean;
16
+ export declare function hasDashboardContextLoad(job: FrontierCodexDashboardJob): boolean;
17
+ export declare function hasDashboardCostSignal(job: FrontierCodexDashboardJob): boolean;
18
+ export declare function hasDashboardLogVolume(job: FrontierCodexDashboardJob): boolean;
19
+ export declare function isDashboardNeedsPortJob(job: FrontierCodexDashboardJob): boolean;
20
+ export declare function isDashboardStaleJob(job: FrontierCodexDashboardJob): boolean;
21
+ export declare function hasDashboardContextBudget(job: FrontierCodexDashboardJob): boolean;
22
+ export declare function isDashboardContextBudgetWarningJob(job: FrontierCodexDashboardJob): boolean;
23
+ export declare function isDashboardContextBudgetFailedJob(job: FrontierCodexDashboardJob): boolean;
24
+ //# sourceMappingURL=dashboard-ui-health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-health.d.ts","sourceRoot":"","sources":["../src/dashboard-ui-health.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,mCAAmC,EACnC,kCAAkC,EAClC,yBAAyB,EACzB,uCAAuC,EACxC,MAAM,sBAAsB,CAAC;AAE9B,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,SAAS,yBAAyB,EAAE,GAAG,mCAAmC,CAmE5H;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAO7E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,yBAAyB,GAAG,kCAAkC,CAWrG;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,0BAA0B,EAAE,OAAO,CAAC;IACpC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B,GAAG,uCAAuC,CAS1C;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAK9E;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAE7E;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAKpF;AAED,wBAAgB,sCAAsC,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,EAAE,GAAG,OAAO,CAM3I;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAE/E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAE9E;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAE7E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAE/E;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAE3E;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAEjF;AAED,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAE1F;AAED,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAEzF"}