@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 @@
1
+ {"version":3,"file":"dashboard-ui-semantic.js","sourceRoot":"","sources":["../src/dashboard-ui-semantic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { CollectedDashboardSource } from './dashboard-ui-types.js';
2
+ export declare function readCollectedDashboardSource(cwd: string, value: string | undefined): Promise<CollectedDashboardSource | undefined>;
3
+ export declare function readArtifact<T>(cwd: string, value: string | undefined, defaultFile: string): Promise<{
4
+ file: string;
5
+ dir: string;
6
+ json: T;
7
+ } | undefined>;
8
+ export declare function asRecord(value: unknown): Record<string, unknown>;
9
+ //# sourceMappingURL=dashboard-ui-sources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-sources.d.ts","sourceRoot":"","sources":["../src/dashboard-ui-sources.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAExE,wBAAsB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAYxI;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG,SAAS,CAAC,CAU9J;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEhE"}
@@ -0,0 +1,39 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { isObject } from './common.js';
4
+ import { DASHBOARD_FULL_COLLECTION_MAX_BYTES } from './dashboard-ui-constants.js';
5
+ export async function readCollectedDashboardSource(cwd, value) {
6
+ if (!value)
7
+ return undefined;
8
+ const absolute = path.resolve(cwd, value);
9
+ const stat = await fs.lstat(absolute).catch(() => undefined);
10
+ if (!stat)
11
+ return undefined;
12
+ const dir = stat.isDirectory() ? absolute : path.dirname(absolute);
13
+ const collectionFile = stat.isDirectory() ? path.join(absolute, 'collection.json') : absolute;
14
+ const collectionStat = await fs.stat(collectionFile).catch(() => undefined);
15
+ if (collectionStat && collectionStat.size <= DASHBOARD_FULL_COLLECTION_MAX_BYTES)
16
+ return undefined;
17
+ const dashboardSource = await readArtifact(cwd, dir, 'coordinator-query.json');
18
+ if (!dashboardSource || !Array.isArray(dashboardSource.json.jobs))
19
+ return undefined;
20
+ return { file: dashboardSource.file, dir: dashboardSource.dir, dashboard: dashboardSource.json };
21
+ }
22
+ export async function readArtifact(cwd, value, defaultFile) {
23
+ if (!value)
24
+ return undefined;
25
+ const absolute = path.resolve(cwd, value);
26
+ const stat = await fs.lstat(absolute).catch(() => undefined);
27
+ if (!stat)
28
+ return undefined;
29
+ const file = stat.isDirectory() ? path.join(absolute, defaultFile) : absolute;
30
+ const text = await fs.readFile(file, 'utf8').catch(() => undefined);
31
+ if (!text)
32
+ return undefined;
33
+ const json = JSON.parse(text);
34
+ return { file, dir: stat.isDirectory() ? absolute : path.dirname(file), json };
35
+ }
36
+ export function asRecord(value) {
37
+ return isObject(value) ? value : {};
38
+ }
39
+ //# sourceMappingURL=dashboard-ui-sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-sources.js","sourceRoot":"","sources":["../src/dashboard-ui-sources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { FrontierCodexDashboardSteeringIntent, FrontierCodexDashboardSteeringIntentInput, FrontierCodexDashboardSteeringWriteInput, FrontierCodexDashboardSteeringWriteResult } from './types-dashboard.js';
2
+ export declare function createCodexDashboardSteeringIntent(input: FrontierCodexDashboardSteeringIntentInput): FrontierCodexDashboardSteeringIntent;
3
+ export declare function writeCodexDashboardSteeringIntent(input: FrontierCodexDashboardSteeringWriteInput): Promise<FrontierCodexDashboardSteeringWriteResult>;
4
+ //# sourceMappingURL=dashboard-ui-steering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-steering.d.ts","sourceRoot":"","sources":["../src/dashboard-ui-steering.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,oCAAoC,EACpC,yCAAyC,EACzC,wCAAwC,EACxC,yCAAyC,EAC1C,MAAM,sBAAsB,CAAC;AAE9B,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,yCAAyC,GAAG,oCAAoC,CAuBzI;AAED,wBAAsB,iCAAiC,CAAC,KAAK,EAAE,wCAAwC,GAAG,OAAO,CAAC,yCAAyC,CAAC,CAQ3J"}
@@ -0,0 +1,41 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { FRONTIER_SWARM_CODEX_STEERING_INTENT_KIND, FRONTIER_SWARM_CODEX_STEERING_INTENT_VERSION } from './constants.js';
4
+ import { isObject, stableHash, uniqueStrings } from './common.js';
5
+ export function createCodexDashboardSteeringIntent(input) {
6
+ const generatedAt = Date.now();
7
+ const laneFocus = uniqueStrings([...(input.laneFocus ?? [])]);
8
+ const tags = uniqueStrings(['loom-ui', ...(input.tags ?? [])]);
9
+ const maxConcurrency = input.maxConcurrency === undefined ? undefined : Math.max(1, Math.floor(input.maxConcurrency));
10
+ return {
11
+ kind: FRONTIER_SWARM_CODEX_STEERING_INTENT_KIND,
12
+ version: FRONTIER_SWARM_CODEX_STEERING_INTENT_VERSION,
13
+ id: 'codex-dashboard-steering:' + stableHash([input.run, input.collection, input.continuation, input.routingMode, maxConcurrency, laneFocus, input.modelTierPreference, input.nextWaveNote, generatedAt]),
14
+ generatedAt,
15
+ target: {
16
+ ...(input.run ? { run: input.run } : {}),
17
+ ...(input.collection ? { collection: input.collection } : {}),
18
+ ...(input.continuation ? { continuation: input.continuation } : {})
19
+ },
20
+ ...(input.routingMode ? { routingMode: input.routingMode } : {}),
21
+ ...(maxConcurrency ? { maxConcurrency } : {}),
22
+ laneFocus,
23
+ ...(input.modelTierPreference ? { modelTierPreference: input.modelTierPreference } : {}),
24
+ ...(input.nextWaveNote ? { nextWaveNote: input.nextWaveNote } : {}),
25
+ tags,
26
+ metadata: { ...(input.metadata ?? {}) }
27
+ };
28
+ }
29
+ export async function writeCodexDashboardSteeringIntent(input) {
30
+ const cwd = path.resolve(input.cwd ?? process.cwd());
31
+ const intent = isSteeringIntent(input.intent) ? input.intent : createCodexDashboardSteeringIntent(input.intent);
32
+ const baseDir = path.resolve(cwd, input.outDir ?? 'agent-runs/loom-ui-steering');
33
+ const file = input.file ? path.resolve(cwd, input.file) : path.join(baseDir, `steering-intent-${intent.generatedAt}.json`);
34
+ await fs.mkdir(path.dirname(file), { recursive: true });
35
+ await fs.writeFile(file, JSON.stringify(intent, null, 2) + '\n');
36
+ return { ok: true, file, intent };
37
+ }
38
+ function isSteeringIntent(value) {
39
+ return isObject(value) && value.kind === FRONTIER_SWARM_CODEX_STEERING_INTENT_KIND;
40
+ }
41
+ //# sourceMappingURL=dashboard-ui-steering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-steering.js","sourceRoot":"","sources":["../src/dashboard-ui-steering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { FrontierCodexCollectResult } from './types-collection.js';
2
+ import type { FrontierCodexContinuationResult } from './types-continuation.js';
3
+ import type { FrontierCodexDashboardJob, FrontierCodexDashboardSnapshot } from './types-dashboard.js';
4
+ import type { FrontierCodexSwarmRunResult } from './types-run.js';
5
+ export declare function createDashboardSummary(run: FrontierCodexSwarmRunResult | undefined, collection: FrontierCodexCollectResult | undefined, continuation: FrontierCodexContinuationResult | undefined, jobs: readonly FrontierCodexDashboardJob[]): FrontierCodexDashboardSnapshot['summary'];
6
+ //# sourceMappingURL=dashboard-ui-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-summary.d.ts","sourceRoot":"","sources":["../src/dashboard-ui-summary.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAElE,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,2BAA2B,GAAG,SAAS,EAC5C,UAAU,EAAE,0BAA0B,GAAG,SAAS,EAClD,YAAY,EAAE,+BAA+B,GAAG,SAAS,EACzD,IAAI,EAAE,SAAS,yBAAyB,EAAE,GACzC,8BAA8B,CAAC,SAAS,CAAC,CAsD3C"}
@@ -0,0 +1,64 @@
1
+ import { hasDashboardCostSignal, isDashboardContextBudgetFailedJob, isDashboardContextBudgetWarningJob, isDashboardFailureJob, isDashboardTerminalJob } from './dashboard-ui-health.js';
2
+ import { averageJobMetric, maxJobMetric } from './dashboard-ui-metric-utils.js';
3
+ import { numberValue, roundDashboardUsd } from './dashboard-ui-values.js';
4
+ export function createDashboardSummary(run, collection, continuation, jobs) {
5
+ const terminalJobs = jobs.filter(isDashboardTerminalJob);
6
+ const failureJobs = jobs.filter(isDashboardFailureJob);
7
+ const warningJobs = jobs.filter((job) => job.health === 'warning');
8
+ const contextWarningJobs = jobs.filter(isDashboardContextBudgetWarningJob);
9
+ const contextFailedJobs = jobs.filter(isDashboardContextBudgetFailedJob);
10
+ const durationJobs = jobs.filter((job) => job.durationMs > 0);
11
+ const costSignalJobs = jobs.filter(hasDashboardCostSignal);
12
+ const applyLedger = collection?.summary.applyLedger;
13
+ const landed = applyLedger?.landed ?? collection?.summary.landed;
14
+ const landedJobIds = applyLedger?.landedJobIds ?? collection?.summary.landedJobIds;
15
+ return {
16
+ jobCount: jobs.length,
17
+ completedCount: jobs.filter((job) => job.status === 'completed').length,
18
+ failedCount: jobs.filter((job) => job.status === 'failed').length,
19
+ runningCount: jobs.filter((job) => job.status === 'running').length,
20
+ blockedCount: jobs.filter((job) => job.status === 'blocked').length,
21
+ changedPathCount: jobs.reduce((sum, job) => sum + job.changedPathCount, 0),
22
+ ownershipViolationCount: jobs.reduce((sum, job) => sum + job.ownershipViolationCount, 0),
23
+ sourceOwnershipViolationCount: jobs.reduce((sum, job) => sum + job.sourceOwnershipViolationCount, 0),
24
+ ignoredOwnershipViolationCount: jobs.reduce((sum, job) => sum + job.ignoredOwnershipViolationCount, 0),
25
+ quarantinedChangedPathCount: jobs.reduce((sum, job) => sum + job.quarantinedChangedPathCount, 0),
26
+ ignoredChangedPathCount: jobs.reduce((sum, job) => sum + job.ignoredChangedPathCount, 0),
27
+ terminalCount: terminalJobs.length,
28
+ failureCount: failureJobs.length,
29
+ warningCount: warningJobs.length,
30
+ contextWarningCount: contextWarningJobs.length,
31
+ contextFailedCount: contextFailedJobs.length,
32
+ semanticCleanCount: jobs.filter((job) => job.semanticReadiness === 'clean').length,
33
+ semanticCandidateCount: jobs.filter((job) => job.semanticReadiness === 'candidate').length,
34
+ semanticBlockedCount: jobs.filter((job) => job.semanticReadiness === 'blocked').length,
35
+ durationMs: durationJobs.reduce((sum, job) => sum + job.durationMs, 0),
36
+ averageDurationMs: averageJobMetric(durationJobs, (job) => job.durationMs),
37
+ maxDurationMs: maxJobMetric(durationJobs, (job) => job.durationMs),
38
+ actualInputTokens: jobs.reduce((sum, job) => sum + job.actualInputTokens, 0),
39
+ cachedInputTokens: jobs.reduce((sum, job) => sum + job.cachedInputTokens, 0),
40
+ uncachedInputTokens: jobs.reduce((sum, job) => sum + job.uncachedInputTokens, 0),
41
+ outputTokens: jobs.reduce((sum, job) => sum + job.outputTokens, 0),
42
+ billableInputTokens: jobs.reduce((sum, job) => sum + job.billableInputTokens, 0),
43
+ priceKnownJobCount: costSignalJobs.filter((job) => job.priceKnown).length,
44
+ unknownPriceJobCount: costSignalJobs.filter((job) => !job.priceKnown).length,
45
+ inputOnlyCostJobCount: costSignalJobs.filter((job) => job.costEstimateInputOnly).length,
46
+ estimatedInputCostJobCount: costSignalJobs.filter((job) => job.costEstimateEstimatedInput).length,
47
+ estimatedCostUsd: roundDashboardUsd(jobs.reduce((sum, job) => sum + job.estimatedCostUsd, 0)),
48
+ estimatedInputCostUsd: roundDashboardUsd(jobs.reduce((sum, job) => sum + job.estimatedInputCostUsd, 0)),
49
+ estimatedOutputCostUsd: roundDashboardUsd(jobs.reduce((sum, job) => sum + job.estimatedOutputCostUsd, 0)),
50
+ estimatedCostMicroUsd: jobs.reduce((sum, job) => sum + job.estimatedCostMicroUsd, 0),
51
+ ...(collection ? { bucketCounts: collection.summary } : {}),
52
+ ...(landed !== undefined ? { landed } : {}),
53
+ ...(landedJobIds ? { landedJobIds } : {}),
54
+ ...(applyLedger ? { applyLedgerLandedCount: applyLedger.landed, applyLedger } : {}),
55
+ ...(continuation ? dashboardContinuationSummaryMetrics(continuation) : {}),
56
+ ...(run && jobs.length === 0 ? { jobCount: run.run.jobs.length } : {})
57
+ };
58
+ }
59
+ function dashboardContinuationSummaryMetrics(continuation) {
60
+ const summary = continuation.summary;
61
+ const routing = summary.nextJobRouting;
62
+ return { childBacklogEntryCount: summary.childBacklogEntryCount, routingFeedbackCount: summary.totalRoutingFeedbackCount, routingPreferenceCount: summary.routingPreferenceCount, nextJobCount: summary.nextJobCount, nextJobRoutedCount: numberValue(routing?.routedJobCount), nextJobChangedComputeCount: numberValue(routing?.changedComputeCount), nextJobRoutingFeedbackMatchCount: numberValue(routing?.policyFeedbackMatchCount), nextJobRoutingCostSignalCount: numberValue(routing?.policyCostSignalCount) };
63
+ }
64
+ //# sourceMappingURL=dashboard-ui-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-summary.js","sourceRoot":"","sources":["../src/dashboard-ui-summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { FrontierCodexDashboardJob, FrontierCodexDashboardTimeSeries } from './types-dashboard.js';
2
+ import type { FrontierCodexSwarmRunResult } from './types-run.js';
3
+ export declare function createDashboardTimeSeries(run: FrontierCodexSwarmRunResult | undefined, jobs: readonly FrontierCodexDashboardJob[]): FrontierCodexDashboardTimeSeries;
4
+ export declare function dashboardJobTimeSeriesTimestamp(job: FrontierCodexDashboardJob): number | undefined;
5
+ export declare function dashboardDurationMs(startedAt: number | undefined, finishedAt: number | undefined): number;
6
+ //# sourceMappingURL=dashboard-ui-time-series.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-time-series.d.ts","sourceRoot":"","sources":["../src/dashboard-ui-time-series.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,yBAAyB,EACzB,gCAAgC,EAEjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAElE,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,2BAA2B,GAAG,SAAS,EAC5C,IAAI,EAAE,SAAS,yBAAyB,EAAE,GACzC,gCAAgC,CAsElC;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,yBAAyB,GAAG,MAAM,GAAG,SAAS,CAElG;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGzG"}
@@ -0,0 +1,191 @@
1
+ import { DASHBOARD_TIME_SERIES_BUCKET_MS } from './dashboard-ui-constants.js';
2
+ import { hasDashboardCostSignal, hasDashboardContextLoad, hasDashboardLogVolume, isDashboardBlockedJob, isDashboardFailureJob, isDashboardTerminalJob } from './dashboard-ui-health.js';
3
+ import { averageJobMetric, maxJobMetric } from './dashboard-ui-metric-utils.js';
4
+ import { roundDashboardUsd, timestampValue } from './dashboard-ui-values.js';
5
+ export function createDashboardTimeSeries(run, jobs) {
6
+ const points = new Map();
7
+ const bucketMs = DASHBOARD_TIME_SERIES_BUCKET_MS;
8
+ let missingTimestampJobCount = 0;
9
+ for (const event of run?.run.events ?? []) {
10
+ const at = timestampValue(event.at);
11
+ if (at !== undefined)
12
+ pointForTimeSeriesBucket(points, at, bucketMs).eventCount += 1;
13
+ }
14
+ for (const job of jobs) {
15
+ const hasContextLoad = hasDashboardContextLoad(job);
16
+ const hasLogVolume = hasDashboardLogVolume(job);
17
+ const terminal = isDashboardTerminalJob(job);
18
+ if (!terminal && !hasContextLoad && !hasLogVolume)
19
+ continue;
20
+ const at = dashboardJobTimeSeriesTimestamp(job);
21
+ if (at === undefined) {
22
+ missingTimestampJobCount += 1;
23
+ continue;
24
+ }
25
+ addJobToPoint(pointForTimeSeriesBucket(points, at, bucketMs), job, terminal);
26
+ }
27
+ const sortedPoints = Array.from(points.values()).sort((left, right) => left.at - right.at);
28
+ for (const point of sortedPoints)
29
+ point.jobIds.sort();
30
+ const contextLoadJobs = jobs.filter(hasDashboardContextLoad);
31
+ const logVolumeJobs = jobs.filter(hasDashboardLogVolume);
32
+ const durationJobs = jobs.filter((job) => job.durationMs > 0);
33
+ return {
34
+ bucketMs,
35
+ summary: {
36
+ pointCount: sortedPoints.length,
37
+ eventCount: sumPoints(sortedPoints, 'eventCount'),
38
+ terminalJobCount: sumPoints(sortedPoints, 'terminalJobCount'),
39
+ failureJobCount: sumPoints(sortedPoints, 'failureJobCount'),
40
+ blockedJobCount: sumPoints(sortedPoints, 'blockedJobCount'),
41
+ runningJobCount: sumPoints(sortedPoints, 'runningJobCount'),
42
+ warningJobCount: sumPoints(sortedPoints, 'warningJobCount'),
43
+ semanticCleanJobCount: sumPoints(sortedPoints, 'semanticCleanJobCount'),
44
+ semanticCandidateJobCount: sumPoints(sortedPoints, 'semanticCandidateJobCount'),
45
+ semanticBlockedJobCount: sumPoints(sortedPoints, 'semanticBlockedJobCount'),
46
+ contextLoadJobCount: contextLoadJobs.length,
47
+ logVolumeJobCount: logVolumeJobs.length,
48
+ missingTimestampJobCount,
49
+ ...(sortedPoints[0] ? { earliestAt: sortedPoints[0].at } : {}),
50
+ ...(sortedPoints[sortedPoints.length - 1] ? { latestAt: sortedPoints[sortedPoints.length - 1].at } : {}),
51
+ promptBytes: sumPoints(sortedPoints, 'promptBytes'),
52
+ estimatedInputTokens: sumPoints(sortedPoints, 'estimatedInputTokens'),
53
+ actualInputTokens: sumPoints(sortedPoints, 'actualInputTokens'),
54
+ cachedInputTokens: sumPoints(sortedPoints, 'cachedInputTokens'),
55
+ uncachedInputTokens: sumPoints(sortedPoints, 'uncachedInputTokens'),
56
+ outputTokens: sumPoints(sortedPoints, 'outputTokens'),
57
+ billableInputTokens: sumPoints(sortedPoints, 'billableInputTokens'),
58
+ priceKnownJobCount: sumPoints(sortedPoints, 'priceKnownJobCount'),
59
+ unknownPriceJobCount: sumPoints(sortedPoints, 'unknownPriceJobCount'),
60
+ inputOnlyCostJobCount: sumPoints(sortedPoints, 'inputOnlyCostJobCount'),
61
+ estimatedInputCostJobCount: sumPoints(sortedPoints, 'estimatedInputCostJobCount'),
62
+ estimatedCostUsd: roundDashboardUsd(sumPoints(sortedPoints, 'estimatedCostUsd')),
63
+ estimatedInputCostUsd: roundDashboardUsd(sumPoints(sortedPoints, 'estimatedInputCostUsd')),
64
+ estimatedOutputCostUsd: roundDashboardUsd(sumPoints(sortedPoints, 'estimatedOutputCostUsd')),
65
+ estimatedCostMicroUsd: sumPoints(sortedPoints, 'estimatedCostMicroUsd'),
66
+ durationMs: sumPoints(sortedPoints, 'durationMs'),
67
+ averageDurationMs: averageJobMetric(durationJobs, (job) => job.durationMs),
68
+ maxDurationMs: maxJobMetric(durationJobs, (job) => job.durationMs),
69
+ eventBytes: sumPoints(sortedPoints, 'eventBytes'),
70
+ eventBytesTruncated: sumPoints(sortedPoints, 'eventBytesTruncated'),
71
+ stderrBytes: sumPoints(sortedPoints, 'stderrBytes'),
72
+ stderrBytesTruncated: sumPoints(sortedPoints, 'stderrBytesTruncated'),
73
+ logBytes: sumPoints(sortedPoints, 'logBytes'),
74
+ logBytesTruncated: sumPoints(sortedPoints, 'logBytesTruncated')
75
+ },
76
+ points: sortedPoints
77
+ };
78
+ }
79
+ export function dashboardJobTimeSeriesTimestamp(job) {
80
+ return timestampValue(job.finishedAt) ?? timestampValue(job.generatedAt) ?? timestampValue(job.startedAt);
81
+ }
82
+ export function dashboardDurationMs(startedAt, finishedAt) {
83
+ if (startedAt === undefined || finishedAt === undefined || finishedAt < startedAt)
84
+ return 0;
85
+ return Math.max(0, Math.round(finishedAt - startedAt));
86
+ }
87
+ function addJobToPoint(point, job, terminal) {
88
+ if (terminal)
89
+ point.terminalJobCount += 1;
90
+ if (isDashboardFailureJob(job))
91
+ point.failureJobCount += 1;
92
+ if (isDashboardBlockedJob(job))
93
+ point.blockedJobCount += 1;
94
+ if (job.health === 'running')
95
+ point.runningJobCount += 1;
96
+ if (job.health === 'warning')
97
+ point.warningJobCount += 1;
98
+ if (job.semanticReadiness === 'clean')
99
+ point.semanticCleanJobCount += 1;
100
+ if (job.semanticReadiness === 'candidate')
101
+ point.semanticCandidateJobCount += 1;
102
+ if (job.semanticReadiness === 'blocked')
103
+ point.semanticBlockedJobCount += 1;
104
+ addJobTokenAndCostMetrics(point, job);
105
+ point.durationMs += job.durationMs;
106
+ point.averageDurationMs = point.terminalJobCount > 0 ? Math.round(point.durationMs / point.terminalJobCount) : 0;
107
+ point.eventBytes += job.eventBytes;
108
+ point.eventBytesTruncated += job.eventBytesTruncated;
109
+ point.stderrBytes += job.stderrBytes;
110
+ point.stderrBytesTruncated += job.stderrBytesTruncated;
111
+ point.logBytes += job.eventBytes + job.stderrBytes;
112
+ point.logBytesTruncated += job.eventBytesTruncated + job.stderrBytesTruncated;
113
+ if (!point.jobIds.includes(job.id))
114
+ point.jobIds.push(job.id);
115
+ }
116
+ function addJobTokenAndCostMetrics(point, job) {
117
+ point.promptBytes += job.promptBytes;
118
+ point.estimatedInputTokens += job.estimatedInputTokens;
119
+ point.actualInputTokens += job.actualInputTokens;
120
+ point.cachedInputTokens += job.cachedInputTokens;
121
+ point.uncachedInputTokens += job.uncachedInputTokens;
122
+ point.outputTokens += job.outputTokens;
123
+ point.billableInputTokens += job.billableInputTokens;
124
+ const hasCostSignal = hasDashboardCostSignal(job);
125
+ if (hasCostSignal) {
126
+ if (job.priceKnown)
127
+ point.priceKnownJobCount += 1;
128
+ else
129
+ point.unknownPriceJobCount += 1;
130
+ }
131
+ if (hasCostSignal && job.costEstimateInputOnly)
132
+ point.inputOnlyCostJobCount += 1;
133
+ if (hasCostSignal && job.costEstimateEstimatedInput)
134
+ point.estimatedInputCostJobCount += 1;
135
+ point.estimatedCostUsd = roundDashboardUsd(point.estimatedCostUsd + job.estimatedCostUsd);
136
+ point.estimatedInputCostUsd = roundDashboardUsd(point.estimatedInputCostUsd + job.estimatedInputCostUsd);
137
+ point.estimatedOutputCostUsd = roundDashboardUsd(point.estimatedOutputCostUsd + job.estimatedOutputCostUsd);
138
+ point.estimatedCostMicroUsd += job.estimatedCostMicroUsd;
139
+ }
140
+ function pointForTimeSeriesBucket(points, at, bucketMs) {
141
+ const bucketAt = Math.floor(at / bucketMs) * bucketMs;
142
+ const existing = points.get(bucketAt);
143
+ if (existing)
144
+ return existing;
145
+ const point = emptyPoint(bucketAt);
146
+ points.set(bucketAt, point);
147
+ return point;
148
+ }
149
+ function emptyPoint(bucketAt) {
150
+ return {
151
+ at: bucketAt,
152
+ label: new Date(bucketAt).toISOString(),
153
+ eventCount: 0,
154
+ terminalJobCount: 0,
155
+ failureJobCount: 0,
156
+ blockedJobCount: 0,
157
+ runningJobCount: 0,
158
+ warningJobCount: 0,
159
+ semanticCleanJobCount: 0,
160
+ semanticCandidateJobCount: 0,
161
+ semanticBlockedJobCount: 0,
162
+ promptBytes: 0,
163
+ estimatedInputTokens: 0,
164
+ actualInputTokens: 0,
165
+ cachedInputTokens: 0,
166
+ uncachedInputTokens: 0,
167
+ outputTokens: 0,
168
+ billableInputTokens: 0,
169
+ priceKnownJobCount: 0,
170
+ unknownPriceJobCount: 0,
171
+ inputOnlyCostJobCount: 0,
172
+ estimatedInputCostJobCount: 0,
173
+ estimatedCostUsd: 0,
174
+ estimatedInputCostUsd: 0,
175
+ estimatedOutputCostUsd: 0,
176
+ estimatedCostMicroUsd: 0,
177
+ durationMs: 0,
178
+ averageDurationMs: 0,
179
+ eventBytes: 0,
180
+ eventBytesTruncated: 0,
181
+ stderrBytes: 0,
182
+ stderrBytesTruncated: 0,
183
+ logBytes: 0,
184
+ logBytesTruncated: 0,
185
+ jobIds: []
186
+ };
187
+ }
188
+ function sumPoints(points, key) {
189
+ return points.reduce((sum, point) => sum + Number(point[key] ?? 0), 0);
190
+ }
191
+ //# sourceMappingURL=dashboard-ui-time-series.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-time-series.js","sourceRoot":"","sources":["../src/dashboard-ui-time-series.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { FrontierCodexDashboardIgnoredChangedPathReason } from './types-dashboard.js';
2
+ export interface DashboardWorkspaceOwnershipEvidence {
3
+ ignoredChangedPaths: string[];
4
+ ignoredChangedPathCount: number;
5
+ ignoredChangedPathReasonCounts: Record<string, number>;
6
+ ignoredChangedPathSamples: string[];
7
+ ignoredChangedPathReasonSamples: FrontierCodexDashboardIgnoredChangedPathReason[];
8
+ observedChangedPathCount: number;
9
+ reportedChangedPathCount: number;
10
+ }
11
+ export interface DashboardArtifactContext {
12
+ cwd: string;
13
+ artifactRoots: string[];
14
+ artifactBases: string[];
15
+ }
16
+ export interface CollectedDashboardSource {
17
+ file: string;
18
+ dir: string;
19
+ dashboard: Record<string, unknown>;
20
+ }
21
+ //# sourceMappingURL=dashboard-ui-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-types.d.ts","sourceRoot":"","sources":["../src/dashboard-ui-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8CAA8C,EAAE,MAAM,sBAAsB,CAAC;AAE3F,MAAM,WAAW,mCAAmC;IAClD,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,uBAAuB,EAAE,MAAM,CAAC;IAChC,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,+BAA+B,EAAE,8CAA8C,EAAE,CAAC;IAClF,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dashboard-ui-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-types.js","sourceRoot":"","sources":["../src/dashboard-ui-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { estimateCodexModelCost } from './model-pricing.js';
2
+ import type { FrontierCodexDashboardJob } from './types-dashboard.js';
3
+ export declare function stringValue(value: unknown): string | undefined;
4
+ export declare function numberValue(value: unknown, fallback?: number): number;
5
+ export declare function optionalNumberValue(value: unknown): number | undefined;
6
+ export declare function roundDashboardUsd(value: number): number;
7
+ export declare function booleanValue(value: unknown): boolean;
8
+ export declare function timestampValue(value: unknown): number | undefined;
9
+ export declare function numberRecordValue(value: unknown, fallback?: Record<string, number>): Record<string, number>;
10
+ export declare function stringArrayValue(value: unknown): string[];
11
+ export declare function stringListValue(value: unknown): string[];
12
+ export declare function dashboardCostFields(cost: ReturnType<typeof estimateCodexModelCost>): Pick<FrontierCodexDashboardJob, 'billableInputTokens' | 'priceKnown' | 'pricingModel' | 'pricingMatchedModel' | 'pricingSource' | 'pricingUpdatedAt' | 'estimatedCostUsd' | 'estimatedInputCostUsd' | 'estimatedCachedInputCostUsd' | 'estimatedUncachedInputCostUsd' | 'estimatedOutputCostUsd' | 'estimatedCostMicroUsd' | 'costEstimateInputOnly' | 'costEstimateEstimatedInput' | 'costEstimateMissingOutputTokens' | 'costEstimateLongContext' | 'unknownPricingReason'>;
13
+ //# sourceMappingURL=dashboard-ui-values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-values.d.ts","sourceRoot":"","sources":["../src/dashboard-ui-values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAGtE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE9D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,SAAI,GAAG,MAAM,CAEhE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAEtE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI/G;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAEzD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAIxD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,GAAG,IAAI,CAAC,yBAAyB,EAChH,qBAAqB,GACrB,YAAY,GACZ,cAAc,GACd,qBAAqB,GACrB,eAAe,GACf,kBAAkB,GAClB,kBAAkB,GAClB,uBAAuB,GACvB,6BAA6B,GAC7B,+BAA+B,GAC/B,wBAAwB,GACxB,uBAAuB,GACvB,uBAAuB,GACvB,4BAA4B,GAC5B,iCAAiC,GACjC,yBAAyB,GACzB,sBAAsB,CACzB,CAoBA"}
@@ -0,0 +1,57 @@
1
+ import { isObject } from './common.js';
2
+ export function stringValue(value) {
3
+ return typeof value === 'string' && value.length > 0 ? value : undefined;
4
+ }
5
+ export function numberValue(value, fallback = 0) {
6
+ return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
7
+ }
8
+ export function optionalNumberValue(value) {
9
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
10
+ }
11
+ export function roundDashboardUsd(value) {
12
+ return Math.round(value * 1_000_000_000) / 1_000_000_000;
13
+ }
14
+ export function booleanValue(value) {
15
+ return value === true || value === 'true';
16
+ }
17
+ export function timestampValue(value) {
18
+ return typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : undefined;
19
+ }
20
+ export function numberRecordValue(value, fallback = {}) {
21
+ if (!isObject(value))
22
+ return fallback;
23
+ return Object.fromEntries(Object.entries(value)
24
+ .filter((entry) => typeof entry[1] === 'number' && Number.isFinite(entry[1])));
25
+ }
26
+ export function stringArrayValue(value) {
27
+ return Array.isArray(value) ? value.map(String) : [];
28
+ }
29
+ export function stringListValue(value) {
30
+ if (Array.isArray(value))
31
+ return value.map(String).filter(Boolean);
32
+ if (typeof value === 'string')
33
+ return value.split(',').map((entry) => entry.trim()).filter(Boolean);
34
+ return [];
35
+ }
36
+ export function dashboardCostFields(cost) {
37
+ return {
38
+ billableInputTokens: cost.billableInputTokens,
39
+ priceKnown: cost.priceKnown,
40
+ ...(cost.pricingModel ? { pricingModel: cost.pricingModel } : {}),
41
+ ...(cost.pricingMatchedModel ? { pricingMatchedModel: cost.pricingMatchedModel } : {}),
42
+ ...(cost.pricingSource ? { pricingSource: cost.pricingSource } : {}),
43
+ ...(cost.pricingUpdatedAt ? { pricingUpdatedAt: cost.pricingUpdatedAt } : {}),
44
+ estimatedCostUsd: cost.estimatedCostUsd,
45
+ estimatedInputCostUsd: cost.estimatedInputCostUsd,
46
+ estimatedCachedInputCostUsd: cost.estimatedCachedInputCostUsd,
47
+ estimatedUncachedInputCostUsd: cost.estimatedUncachedInputCostUsd,
48
+ estimatedOutputCostUsd: cost.estimatedOutputCostUsd,
49
+ estimatedCostMicroUsd: cost.estimatedCostMicroUsd,
50
+ costEstimateInputOnly: cost.costEstimateInputOnly,
51
+ costEstimateEstimatedInput: cost.costEstimateEstimatedInput,
52
+ costEstimateMissingOutputTokens: cost.costEstimateMissingOutputTokens,
53
+ costEstimateLongContext: cost.costEstimateLongContext,
54
+ ...(cost.unknownPricingReason ? { unknownPricingReason: cost.unknownPricingReason } : {})
55
+ };
56
+ }
57
+ //# sourceMappingURL=dashboard-ui-values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-values.js","sourceRoot":"","sources":["../src/dashboard-ui-values.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,QAAQ,GAAG,CAAC;IACtD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,aAAa,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,WAAmC,EAAE;IACrF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtC,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SAC5C,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpG,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAA+C;IAmBjF,OAAO;QACL,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,2BAA2B,EAAE,IAAI,CAAC,2BAA2B;QAC7D,6BAA6B,EAAE,IAAI,CAAC,6BAA6B;QACjE,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;QACnD,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;QAC3D,+BAA+B,EAAE,IAAI,CAAC,+BAA+B;QACrE,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;QACrD,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { DashboardArtifactContext, DashboardWorkspaceOwnershipEvidence } from './dashboard-ui-types.js';
2
+ import type { FrontierCodexDashboardIgnoredChangedPathReason } from './types-dashboard.js';
3
+ export declare function dashboardWorkspaceOwnershipEvidence(bundle: Record<string, unknown>, metadata: Record<string, unknown>, context: DashboardArtifactContext): Promise<DashboardWorkspaceOwnershipEvidence>;
4
+ export declare function dashboardArtifactRoots(cwd: string, ...values: Array<string | undefined>): string[];
5
+ export declare function ignoredChangedPathReasonArrayValue(value: unknown): FrontierCodexDashboardIgnoredChangedPathReason[];
6
+ export declare function isIgnoredChangedPath(file: string, ignoredPaths: readonly string[]): boolean;
7
+ //# sourceMappingURL=dashboard-ui-workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-ui-workspace.d.ts","sourceRoot":"","sources":["../src/dashboard-ui-workspace.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,mCAAmC,EAAE,MAAM,yBAAyB,CAAC;AAQ7G,OAAO,KAAK,EACV,8CAA8C,EAC/C,MAAM,sBAAsB,CAAC;AAG9B,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,mCAAmC,CAAC,CAS9C;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE,CAGlG;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,OAAO,GAAG,8CAA8C,EAAE,CAUnH;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAO3F"}