@inflexa-ai/harness 0.45.0 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (802) hide show
  1. package/README.md +6 -3
  2. package/dist/agents/conversation-agent.d.ts +19 -3
  3. package/dist/agents/conversation-agent.js +49 -30
  4. package/dist/agents/report-session-agent.d.ts +15 -15
  5. package/dist/agents/report-session-agent.js +23 -15
  6. package/dist/agents/sandbox/index.d.ts +1 -1
  7. package/dist/agents/sandbox/index.js +1 -1
  8. package/dist/agents/sandbox/shared.d.ts +35 -16
  9. package/dist/agents/sandbox/shared.js +63 -24
  10. package/dist/agents/sandbox/translational-safety-agent.js +26 -0
  11. package/dist/agents/sandbox/types.d.ts +26 -3
  12. package/dist/agents/sandbox/validate-skills.d.ts +2 -2
  13. package/dist/agents/sandbox/validate-skills.js +3 -1
  14. package/dist/agents/sandbox-catalog.d.ts +16 -2
  15. package/dist/agents/sandbox-catalog.js +22 -3
  16. package/dist/agents/system-prompt.d.ts +2 -2
  17. package/dist/app/approve-plan.d.ts +5 -2
  18. package/dist/app/approve-plan.js +1 -1
  19. package/dist/app/chat-turn-workflow.d.ts +114 -0
  20. package/dist/app/chat-turn-workflow.js +307 -0
  21. package/dist/app/chat-turn.d.ts +85 -57
  22. package/dist/app/chat-turn.js +125 -99
  23. package/dist/app/data-profile-orientation.js +10 -8
  24. package/dist/app/data-profile-view.d.ts +4 -4
  25. package/dist/app/data-profile-view.js +9 -8
  26. package/dist/app/in-process-turn.d.ts +42 -0
  27. package/dist/app/in-process-turn.js +139 -0
  28. package/dist/app/message-assembly.d.ts +10 -4
  29. package/dist/app/message-assembly.js +13 -8
  30. package/dist/app/report-session-runtime.d.ts +4 -4
  31. package/dist/app/report-session-runtime.js +36 -21
  32. package/dist/app/spawn-report-session.d.ts +33 -28
  33. package/dist/app/spawn-report-session.js +25 -40
  34. package/dist/app/synthesize-run.d.ts +22 -16
  35. package/dist/app/synthesize-run.js +41 -35
  36. package/dist/app/work.d.ts +96 -0
  37. package/dist/app/work.js +147 -0
  38. package/dist/auth/local-auth-context.d.ts +1 -3
  39. package/dist/auth/local-auth-context.js +1 -3
  40. package/dist/auth/local-run-authorizer.d.ts +1 -1
  41. package/dist/auth/local-run-authorizer.js +5 -3
  42. package/dist/auth/types.d.ts +26 -26
  43. package/dist/billing/cached-resolver.d.ts +4 -4
  44. package/dist/billing/run-charge.d.ts +5 -8
  45. package/dist/billing/run-charge.js +2 -2
  46. package/dist/billing/usage-recorder.d.ts +9 -9
  47. package/dist/citations/aggregate.js +1 -1
  48. package/dist/citations/clients/arxiv.d.ts +2 -2
  49. package/dist/citations/clients/arxiv.js +12 -4
  50. package/dist/citations/clients/common.js +4 -2
  51. package/dist/citations/clients/crossref.d.ts +2 -2
  52. package/dist/citations/clients/crossref.js +37 -37
  53. package/dist/citations/clients/doi-registry.js +15 -16
  54. package/dist/citations/clients/pubmed.d.ts +2 -2
  55. package/dist/citations/clients/pubmed.js +20 -13
  56. package/dist/citations/clients/semantic-scholar.d.ts +2 -2
  57. package/dist/citations/clients/semantic-scholar.js +9 -9
  58. package/dist/citations/compare.js +2 -2
  59. package/dist/citations/match.d.ts +2 -2
  60. package/dist/citations/match.js +12 -7
  61. package/dist/citations/normalize.js +35 -26
  62. package/dist/citations/plan.js +6 -2
  63. package/dist/citations/resolve.d.ts +6 -6
  64. package/dist/citations/resolve.js +34 -25
  65. package/dist/citations/types.d.ts +77 -77
  66. package/dist/config/environment-stores.d.ts +10 -8
  67. package/dist/config/resource-limits.js +1 -3
  68. package/dist/contracts/analogy-report.d.ts +7 -7
  69. package/dist/contracts/analogy-report.js +2 -2
  70. package/dist/contracts/chat-events.d.ts +46 -22
  71. package/dist/contracts/chat-events.js +1 -1
  72. package/dist/contracts/chat-frame.d.ts +15 -5
  73. package/dist/contracts/chat-frame.js +67 -40
  74. package/dist/contracts/chat-parts.d.ts +130 -67
  75. package/dist/contracts/chat-parts.js +1 -0
  76. package/dist/contracts/content-url.js +16 -2
  77. package/dist/contracts/data-profile.d.ts +38 -38
  78. package/dist/contracts/index.d.ts +3 -3
  79. package/dist/contracts/index.js +1 -1
  80. package/dist/contracts/message.d.ts +6 -6
  81. package/dist/contracts/organ-system.d.ts +11 -11
  82. package/dist/contracts/part-registry.d.ts +5 -4
  83. package/dist/contracts/part-registry.js +5 -0
  84. package/dist/contracts/profile-vocabulary.d.ts +11 -10
  85. package/dist/contracts/profile-vocabulary.js +10 -3
  86. package/dist/contracts/report-blocks.d.ts +329 -329
  87. package/dist/contracts/report-reference.d.ts +105 -81
  88. package/dist/contracts/report-reference.js +30 -13
  89. package/dist/contracts/schemas/chat-events.d.ts +45 -6
  90. package/dist/contracts/schemas/chat-events.js +16 -0
  91. package/dist/contracts/schemas/chat-parts.d.ts +214 -102
  92. package/dist/contracts/schemas/chat-parts.js +50 -7
  93. package/dist/contracts/schemas/index.d.ts +1 -1
  94. package/dist/contracts/schemas/index.js +1 -1
  95. package/dist/contracts/severity.d.ts +1 -1
  96. package/dist/contracts/structure-source.d.ts +3 -3
  97. package/dist/contracts/structure-source.js +6 -2
  98. package/dist/contracts/subagent-activity.d.ts +2 -2
  99. package/dist/contracts/subagent-activity.js +5 -3
  100. package/dist/contracts/usage.d.ts +2 -2
  101. package/dist/data/safety-panel-schema.d.ts +25 -25
  102. package/dist/data/safety-panel-schema.js +13 -4
  103. package/dist/execution/artifact-metadata.d.ts +23 -15
  104. package/dist/execution/artifact-metadata.js +33 -10
  105. package/dist/execution/artifact-record.d.ts +2 -2
  106. package/dist/execution/artifact-registration.d.ts +5 -5
  107. package/dist/execution/artifact-registry.d.ts +8 -8
  108. package/dist/execution/dbos-run-launcher.d.ts +24 -4
  109. package/dist/execution/dbos-run-launcher.js +58 -4
  110. package/dist/execution/dbos-workflow-purger.d.ts +7 -6
  111. package/dist/execution/dbos-workflow-purger.js +29 -21
  112. package/dist/execution/input-signature.d.ts +2 -2
  113. package/dist/execution/post-step-pipeline.d.ts +9 -9
  114. package/dist/execution/post-step-pipeline.js +1 -1
  115. package/dist/execution/post-step.js +2 -2
  116. package/dist/execution/reconcile-manifest.d.ts +4 -4
  117. package/dist/execution/reconcile-manifest.js +3 -2
  118. package/dist/execution/run-authorizer.d.ts +46 -37
  119. package/dist/execution/run-authorizer.js +8 -8
  120. package/dist/execution/run-canceler.d.ts +39 -17
  121. package/dist/execution/run-canceler.js +137 -28
  122. package/dist/execution/run-end-record.d.ts +29 -0
  123. package/dist/execution/run-end-record.js +27 -0
  124. package/dist/execution/run-event-parts.d.ts +0 -8
  125. package/dist/execution/run-event-parts.js +29 -24
  126. package/dist/execution/run-event-stream.d.ts +8 -8
  127. package/dist/execution/run-event-stream.js +3 -4
  128. package/dist/execution/run-launcher.d.ts +4 -4
  129. package/dist/execution/run-synthesis.d.ts +49 -48
  130. package/dist/execution/run-synthesis.js +96 -255
  131. package/dist/execution/staged-input.d.ts +2 -2
  132. package/dist/execution/step-summary.d.ts +6 -6
  133. package/dist/execution/step-summary.js +4 -8
  134. package/dist/execution/topo-sort.js +4 -3
  135. package/dist/execution/workflow-purger.d.ts +2 -2
  136. package/dist/index.d.ts +25 -24
  137. package/dist/index.js +36 -37
  138. package/dist/input-sanitization.js +9 -2
  139. package/dist/input-scan/clustering.d.ts +6 -6
  140. package/dist/input-scan/clustering.js +11 -5
  141. package/dist/input-scan/companions.js +3 -2
  142. package/dist/input-scan/detect-sets.d.ts +2 -2
  143. package/dist/input-scan/detect-sets.js +25 -21
  144. package/dist/input-scan/enrich.d.ts +6 -6
  145. package/dist/input-scan/enrich.js +29 -12
  146. package/dist/input-scan/formats.d.ts +2 -2
  147. package/dist/input-scan/formats.js +8 -2
  148. package/dist/input-scan/markers.d.ts +2 -2
  149. package/dist/input-scan/markers.js +14 -5
  150. package/dist/input-scan/menu.d.ts +10 -10
  151. package/dist/input-scan/menu.js +0 -0
  152. package/dist/input-scan/quarantine.d.ts +2 -2
  153. package/dist/input-scan/quarantine.js +23 -18
  154. package/dist/input-scan/readout-budget.d.ts +2 -2
  155. package/dist/input-scan/readout-budget.js +1 -1
  156. package/dist/input-scan/readout.d.ts +2 -2
  157. package/dist/input-scan/readout.js +47 -34
  158. package/dist/input-scan/scan.d.ts +2 -2
  159. package/dist/input-scan/scan.js +7 -5
  160. package/dist/input-scan/set-types.d.ts +28 -28
  161. package/dist/input-scan/shapes.d.ts +4 -4
  162. package/dist/input-scan/shapes.js +0 -0
  163. package/dist/input-scan/templates.d.ts +10 -10
  164. package/dist/input-scan/templates.js +30 -22
  165. package/dist/input-scan/tokens.d.ts +6 -4
  166. package/dist/input-scan/tokens.js +100 -38
  167. package/dist/input-scan/types.d.ts +22 -22
  168. package/dist/lib/async-utils.d.ts +3 -7
  169. package/dist/lib/async-utils.js +5 -9
  170. package/dist/lib/cache.js +1 -1
  171. package/dist/lib/chrome.d.ts +46 -6
  172. package/dist/lib/console-logger.js +2 -2
  173. package/dist/lib/db-result.d.ts +22 -6
  174. package/dist/lib/db-result.js +9 -13
  175. package/dist/lib/eyes.d.ts +4 -4
  176. package/dist/lib/eyes.js +1 -1
  177. package/dist/lib/fs-helpers.js +18 -6
  178. package/dist/lib/fs-result.d.ts +1 -0
  179. package/dist/lib/fs-result.js +5 -6
  180. package/dist/lib/hooks.d.ts +23 -7
  181. package/dist/lib/hooks.js +17 -3
  182. package/dist/lib/host-concurrency.js +3 -2
  183. package/dist/lib/logger.d.ts +2 -2
  184. package/dist/lib/logger.js +2 -1
  185. package/dist/lib/metrics.d.ts +1 -1
  186. package/dist/lib/null-proto.d.ts +6 -0
  187. package/dist/lib/null-proto.js +17 -0
  188. package/dist/lib/otel-spans.d.ts +1 -1
  189. package/dist/lib/otel-spans.js +9 -5
  190. package/dist/lib/otel.d.ts +4 -2
  191. package/dist/lib/otel.js +10 -2
  192. package/dist/lib/page-capture.d.ts +8 -8
  193. package/dist/lib/page-capture.js +9 -4
  194. package/dist/lib/parse-json.d.ts +5 -0
  195. package/dist/lib/parse-json.js +12 -0
  196. package/dist/lib/present.d.ts +12 -0
  197. package/dist/lib/present.js +39 -0
  198. package/dist/lib/rate-limit.d.ts +4 -4
  199. package/dist/lib/rate-limit.js +12 -13
  200. package/dist/lib/regulatory-corpus/fetch-fda-guidance.d.ts +4 -4
  201. package/dist/lib/regulatory-corpus/fetch-fda-guidance.js +4 -10
  202. package/dist/lib/regulatory-corpus/fetch-ich.d.ts +4 -4
  203. package/dist/lib/regulatory-corpus/fetch-ich.js +18 -14
  204. package/dist/lib/regulatory-corpus/normalize-whitespace.d.ts +6 -0
  205. package/dist/lib/regulatory-corpus/normalize-whitespace.js +41 -0
  206. package/dist/lib/regulatory-corpus.d.ts +10 -10
  207. package/dist/lib/regulatory-corpus.js +3 -1
  208. package/dist/lib/result.d.ts +10 -11
  209. package/dist/lib/result.js +15 -13
  210. package/dist/lib/storage.d.ts +2 -2
  211. package/dist/lib/test/async-iterable.d.ts +9 -0
  212. package/dist/lib/test/async-iterable.js +28 -0
  213. package/dist/lib/test/request-url.d.ts +5 -0
  214. package/dist/lib/test/request-url.js +7 -0
  215. package/dist/lib/test/result-assert.d.ts +12 -0
  216. package/dist/lib/test/result-assert.js +17 -0
  217. package/dist/lib/test/text-shapes.d.ts +24 -0
  218. package/dist/lib/test/text-shapes.js +63 -0
  219. package/dist/lib/text.d.ts +22 -0
  220. package/dist/lib/text.js +68 -0
  221. package/dist/lib/thrown.d.ts +18 -0
  222. package/dist/lib/thrown.js +30 -0
  223. package/dist/lib/unknown-array.d.ts +6 -0
  224. package/dist/lib/unknown-array.js +8 -0
  225. package/dist/lib/unknown-containers.d.ts +14 -0
  226. package/dist/lib/unknown-containers.js +17 -0
  227. package/dist/lib/unknown-text.d.ts +8 -0
  228. package/dist/lib/unknown-text.js +28 -0
  229. package/dist/lib/zod-issue-shape.d.ts +1 -1
  230. package/dist/lib/zod-issue-shape.js +31 -31
  231. package/dist/lib/zod-issues.d.ts +3 -3
  232. package/dist/lib/zod-issues.js +30 -17
  233. package/dist/literature/sources/arxiv.d.ts +6 -6
  234. package/dist/literature/sources/arxiv.js +92 -35
  235. package/dist/literature/sources/http.d.ts +2 -2
  236. package/dist/literature/sources/http.js +16 -15
  237. package/dist/literature/sources/pubmed.d.ts +16 -16
  238. package/dist/literature/sources/pubmed.js +96 -61
  239. package/dist/literature/sources/semantic-scholar.d.ts +8 -8
  240. package/dist/literature/sources/semantic-scholar.js +22 -13
  241. package/dist/loop/accounting.d.ts +63 -0
  242. package/dist/loop/accounting.js +141 -0
  243. package/dist/loop/call-policy.d.ts +73 -0
  244. package/dist/loop/call-policy.js +109 -0
  245. package/dist/loop/chat-stream.d.ts +62 -0
  246. package/dist/loop/chat-stream.js +237 -0
  247. package/dist/loop/compaction.d.ts +14 -9
  248. package/dist/loop/compaction.js +17 -0
  249. package/dist/loop/metrics.d.ts +12 -15
  250. package/dist/loop/metrics.js +14 -26
  251. package/dist/loop/run-loop.d.ts +233 -0
  252. package/dist/loop/run-loop.js +770 -0
  253. package/dist/loop/sub-agent.d.ts +61 -0
  254. package/dist/loop/sub-agent.js +161 -0
  255. package/dist/loop/tool-adapter.d.ts +98 -0
  256. package/dist/loop/tool-adapter.js +364 -0
  257. package/dist/loop/tool-detail.d.ts +1 -1
  258. package/dist/loop/tool-detail.js +6 -5
  259. package/dist/loop/tool-outcome.d.ts +1 -1
  260. package/dist/loop/tool-output.d.ts +4 -4
  261. package/dist/loop/tool-output.js +2 -2
  262. package/dist/loop/turn-credentials.d.ts +34 -0
  263. package/dist/loop/turn-credentials.js +73 -0
  264. package/dist/loop/types.d.ts +34 -37
  265. package/dist/loop/types.js +2 -7
  266. package/dist/memory/ai-sdk-message-storage.d.ts +5 -5
  267. package/dist/memory/ai-sdk-message-storage.js +13 -11
  268. package/dist/memory/card-builders.d.ts +14 -14
  269. package/dist/memory/card-builders.js +19 -15
  270. package/dist/memory/conversation-display-recorder.d.ts +22 -6
  271. package/dist/memory/conversation-display-recorder.js +64 -20
  272. package/dist/memory/conversation-display-replay.js +3 -2
  273. package/dist/memory/conversation-display-storage.d.ts +15 -7
  274. package/dist/memory/conversation-display-storage.js +141 -36
  275. package/dist/memory/conversation-view.d.ts +4 -4
  276. package/dist/memory/conversation-view.js +5 -4
  277. package/dist/memory/count-tokens.js +10 -8
  278. package/dist/memory/derive-thread-title.d.ts +0 -13
  279. package/dist/memory/derive-thread-title.js +2 -1
  280. package/dist/memory/message-backfill.d.ts +12 -5
  281. package/dist/memory/message-backfill.js +5 -3
  282. package/dist/memory/thread-history.d.ts +66 -24
  283. package/dist/memory/thread-history.js +212 -79
  284. package/dist/memory/thread-store.d.ts +26 -17
  285. package/dist/memory/thread-store.js +15 -9
  286. package/dist/memory/tool-call-integrity.d.ts +2 -2
  287. package/dist/memory/tool-call-integrity.js +4 -3
  288. package/dist/memory/working-memory.d.ts +16 -12
  289. package/dist/memory/working-memory.js +72 -61
  290. package/dist/prompts/briefing.d.ts +63 -9
  291. package/dist/prompts/briefing.js +130 -3
  292. package/dist/prompts/planner.js +13 -2
  293. package/dist/prompts/synthesis-agent.d.ts +1 -1
  294. package/dist/prompts/synthesis-agent.js +6 -14
  295. package/dist/provenance/collector.d.ts +6 -6
  296. package/dist/provenance/collector.js +15 -8
  297. package/dist/provenance/exec-frame.d.ts +2 -2
  298. package/dist/provenance/exec-frame.js +6 -1
  299. package/dist/provenance/seam.d.ts +24 -19
  300. package/dist/provenance/seam.js +7 -5
  301. package/dist/provenance/types.d.ts +6 -6
  302. package/dist/providers/ai-sdk.d.ts +113 -62
  303. package/dist/providers/ai-sdk.js +303 -458
  304. package/dist/providers/embedding.d.ts +2 -2
  305. package/dist/providers/embedding.js +1 -1
  306. package/dist/providers/errors.d.ts +22 -2
  307. package/dist/providers/errors.js +98 -50
  308. package/dist/providers/prompt-cache.d.ts +8 -8
  309. package/dist/providers/prompt-cache.js +13 -11
  310. package/dist/providers/reasoning.d.ts +2 -2
  311. package/dist/providers/reasoning.js +2 -2
  312. package/dist/providers/types.d.ts +59 -92
  313. package/dist/reference-data/catalog.d.ts +2 -15
  314. package/dist/reference-data/catalog.js +166 -10
  315. package/dist/reference-data/receipt.d.ts +2 -2
  316. package/dist/report-model/assert-rules.js +1 -1
  317. package/dist/report-model/authoring-grammar.d.ts +209 -231
  318. package/dist/report-model/block-walk.d.ts +10 -10
  319. package/dist/report-model/block-walk.js +2 -0
  320. package/dist/report-model/draft-finish.d.ts +8 -8
  321. package/dist/report-model/draft-finish.js +1 -1
  322. package/dist/report-model/draft-hash.js +8 -7
  323. package/dist/report-model/draft-operations.d.ts +22 -10
  324. package/dist/report-model/draft-operations.js +48 -30
  325. package/dist/report-model/draft-read.d.ts +19 -7
  326. package/dist/report-model/draft-read.js +16 -6
  327. package/dist/report-model/draft.d.ts +844 -2
  328. package/dist/report-model/draft.js +3 -1
  329. package/dist/report-model/fixture-resolver.js +39 -16
  330. package/dist/report-model/pin-snapshot.d.ts +2 -2
  331. package/dist/report-model/pin-snapshot.js +15 -15
  332. package/dist/report-model/production-resolver.d.ts +18 -18
  333. package/dist/report-model/production-resolver.js +50 -42
  334. package/dist/report-model/reference-resolver.d.ts +26 -10
  335. package/dist/report-model/reference-resolver.js +68 -5
  336. package/dist/report-model/reference-stamp.js +30 -38
  337. package/dist/report-model/structural-validation.js +12 -4
  338. package/dist/report-model/validate.d.ts +7 -7
  339. package/dist/report-model/validate.js +6 -6
  340. package/dist/report-render/assets.d.ts +2 -2
  341. package/dist/report-render/assets.js +27 -3
  342. package/dist/report-render/chart-export.d.ts +10 -2
  343. package/dist/report-render/chart-export.js +37 -11
  344. package/dist/report-render/chart-presets.d.ts +8 -8
  345. package/dist/report-render/chart-presets.js +3 -3
  346. package/dist/report-render/chart-renderers.d.ts +23 -16
  347. package/dist/report-render/chart-renderers.js +74 -53
  348. package/dist/report-render/chart-toolbox.d.ts +2 -2
  349. package/dist/report-render/chart-toolbox.js +7 -6
  350. package/dist/report-render/chart.d.ts +15 -16
  351. package/dist/report-render/chart.js +369 -252
  352. package/dist/report-render/design.d.ts +36 -297
  353. package/dist/report-render/design.js +0 -12
  354. package/dist/report-render/figures/common.d.ts +12 -12
  355. package/dist/report-render/figures/common.js +42 -31
  356. package/dist/report-render/figures/dendrogram.d.ts +3 -3
  357. package/dist/report-render/figures/dendrogram.js +10 -10
  358. package/dist/report-render/figures/dense.js +15 -8
  359. package/dist/report-render/figures/dotplot.js +46 -33
  360. package/dist/report-render/figures/embedding.js +52 -43
  361. package/dist/report-render/figures/equal-units.d.ts +10 -10
  362. package/dist/report-render/figures/equal-units.js +27 -27
  363. package/dist/report-render/figures/forest.js +9 -7
  364. package/dist/report-render/figures/gsea.js +21 -11
  365. package/dist/report-render/figures/heatmap.js +13 -9
  366. package/dist/report-render/figures/index.d.ts +10 -10
  367. package/dist/report-render/figures/index.js +4 -2
  368. package/dist/report-render/figures/km.js +10 -9
  369. package/dist/report-render/figures/label-room.d.ts +12 -12
  370. package/dist/report-render/figures/label-room.js +7 -2
  371. package/dist/report-render/figures/locuszoom.d.ts +2 -2
  372. package/dist/report-render/figures/locuszoom.js +59 -31
  373. package/dist/report-render/figures/lollipop.js +3 -2
  374. package/dist/report-render/figures/ma.js +8 -4
  375. package/dist/report-render/figures/manhattan.d.ts +1 -2
  376. package/dist/report-render/figures/manhattan.js +52 -34
  377. package/dist/report-render/figures/oncoprint.js +4 -5
  378. package/dist/report-render/figures/pca.js +25 -11
  379. package/dist/report-render/figures/qq.js +20 -9
  380. package/dist/report-render/figures/roc.js +1 -1
  381. package/dist/report-render/figures/sankey.d.ts +2 -2
  382. package/dist/report-render/figures/sankey.js +11 -10
  383. package/dist/report-render/figures/upset.d.ts +6 -6
  384. package/dist/report-render/figures/upset.js +7 -4
  385. package/dist/report-render/figures/volcano.js +12 -10
  386. package/dist/report-render/hybrid-svg.d.ts +4 -4
  387. package/dist/report-render/hybrid-svg.js +7 -5
  388. package/dist/report-render/number-format.d.ts +4 -4
  389. package/dist/report-render/number-format.js +62 -27
  390. package/dist/report-render/page.js +2 -1
  391. package/dist/report-render/provenance-data.d.ts +2 -2
  392. package/dist/report-render/references.d.ts +4 -4
  393. package/dist/report-render/render.d.ts +2 -2
  394. package/dist/report-render/render.js +10 -11
  395. package/dist/report-render/script-json.js +1 -1
  396. package/dist/report-render/table-data.d.ts +6 -6
  397. package/dist/report-render/test/options.d.ts +49 -0
  398. package/dist/report-render/test/options.js +143 -0
  399. package/dist/report-render/test/page-function.d.ts +19 -0
  400. package/dist/report-render/test/page-function.js +33 -0
  401. package/dist/report-render/types.d.ts +10 -10
  402. package/dist/report-render/value-bridge.d.ts +4 -4
  403. package/dist/report-render/value-bridge.js +27 -14
  404. package/dist/report-render/views/chart-view.d.ts +2 -2
  405. package/dist/report-render/views/chart-view.js +2 -2
  406. package/dist/report-render/views/lineage.d.ts +6 -6
  407. package/dist/report-render/views/lineage.js +2 -0
  408. package/dist/report-render/views/page-view.d.ts +2 -2
  409. package/dist/report-render/views/page-view.js +1 -0
  410. package/dist/report-render/views/prose.js +25 -8
  411. package/dist/report-render/views/references-view.js +12 -1
  412. package/dist/report-render/views/values.js +1 -1
  413. package/dist/runtime/assemble.d.ts +53 -26
  414. package/dist/runtime/assemble.js +103 -56
  415. package/dist/runtime/boot.d.ts +8 -7
  416. package/dist/runtime/boot.js +1 -1
  417. package/dist/runtime/connection-budget.d.ts +6 -6
  418. package/dist/runtime/connection-budget.js +1 -1
  419. package/dist/runtime/dbos.d.ts +29 -19
  420. package/dist/runtime/dbos.js +35 -20
  421. package/dist/runtime/result-serialization.js +18 -5
  422. package/dist/runtime/shutdown.d.ts +2 -2
  423. package/dist/sandbox/client.d.ts +7 -3
  424. package/dist/sandbox/cpu-files.d.ts +2 -2
  425. package/dist/sandbox/cpu-files.js +21 -4
  426. package/dist/sandbox/create-sandbox.d.ts +7 -8
  427. package/dist/sandbox/create-sandbox.js +6 -12
  428. package/dist/sandbox/docker-client.d.ts +48 -3
  429. package/dist/sandbox/docker-client.js +10 -6
  430. package/dist/sandbox/estimate-data-profile-resources.js +2 -7
  431. package/dist/sandbox/exec-outcome.d.ts +2 -2
  432. package/dist/sandbox/exec-outcome.js +1 -1
  433. package/dist/sandbox/exec.d.ts +10 -6
  434. package/dist/sandbox/exec.js +27 -12
  435. package/dist/sandbox/execution-id.js +14 -6
  436. package/dist/sandbox/farm.d.ts +2 -2
  437. package/dist/sandbox/farm.js +22 -27
  438. package/dist/sandbox/identity.d.ts +7 -0
  439. package/dist/sandbox/identity.js +14 -3
  440. package/dist/sandbox/image-packages.d.ts +26 -4
  441. package/dist/sandbox/image-packages.js +29 -27
  442. package/dist/sandbox/k8s-client.d.ts +35 -8
  443. package/dist/sandbox/k8s-client.js +6 -5
  444. package/dist/sandbox/labels.js +1 -0
  445. package/dist/sandbox/liveness.js +3 -1
  446. package/dist/sandbox/mount-plan.d.ts +10 -10
  447. package/dist/sandbox/mount-plan.js +13 -14
  448. package/dist/sandbox/notification-sweep.d.ts +4 -4
  449. package/dist/sandbox/notification-sweep.js +4 -7
  450. package/dist/sandbox/package-identity.d.ts +6 -13
  451. package/dist/sandbox/package-identity.js +46 -28
  452. package/dist/sandbox/reaper.d.ts +10 -10
  453. package/dist/sandbox/reaper.js +4 -6
  454. package/dist/sandbox/sandbox-error.d.ts +2 -9
  455. package/dist/sandbox/sandbox-error.js +21 -8
  456. package/dist/sandbox/sandbox-step-translate.d.ts +8 -5
  457. package/dist/sandbox/sandbox-step-translate.js +22 -8
  458. package/dist/sandbox/step-sandbox.d.ts +47 -0
  459. package/dist/sandbox/step-sandbox.js +53 -0
  460. package/dist/sandbox/types.d.ts +18 -19
  461. package/dist/sandbox/types.js +1 -1
  462. package/dist/schemas/artifact-manifest.d.ts +4 -4
  463. package/dist/schemas/data-profile-schemas.d.ts +351 -306
  464. package/dist/schemas/file-metadata.js +2 -4
  465. package/dist/schemas/plan-schemas.d.ts +79 -25
  466. package/dist/schemas/plan-schemas.js +1 -1
  467. package/dist/schemas/run-synthesis.d.ts +95 -26
  468. package/dist/schemas/run-synthesis.js +3 -1
  469. package/dist/schemas/validate-plan.d.ts +4 -4
  470. package/dist/schemas/validate-plan.js +17 -5
  471. package/dist/schemas/workflow-state.d.ts +127 -14
  472. package/dist/schemas/workflow-state.js +56 -2
  473. package/dist/state/active-turns.d.ts +36 -0
  474. package/dist/state/active-turns.js +67 -0
  475. package/dist/state/analyses-metrics.d.ts +8 -8
  476. package/dist/state/analyses-metrics.js +4 -4
  477. package/dist/state/analyses.d.ts +0 -14
  478. package/dist/state/analyses.js +0 -32
  479. package/dist/state/artifacts.d.ts +47 -18
  480. package/dist/state/artifacts.js +48 -7
  481. package/dist/state/data-profile.d.ts +2 -2
  482. package/dist/state/db.d.ts +12 -2
  483. package/dist/state/db.js +5 -0
  484. package/dist/state/edit-intents.d.ts +4 -0
  485. package/dist/state/edit-intents.js +71 -0
  486. package/dist/state/index.d.ts +5 -5
  487. package/dist/state/index.js +3 -3
  488. package/dist/state/init.d.ts +2 -1
  489. package/dist/state/init.js +5 -2
  490. package/dist/state/migrations/20260927120000_baseline.js +3 -1
  491. package/dist/state/migrations/20261026120000_add_the_edit_intents.d.ts +7 -0
  492. package/dist/state/migrations/20261026120000_add_the_edit_intents.js +21 -0
  493. package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.d.ts +7 -0
  494. package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.js +16 -0
  495. package/dist/state/migrations/20261027120100_store_the_authoring_results.d.ts +8 -0
  496. package/dist/state/migrations/20261027120100_store_the_authoring_results.js +20 -0
  497. package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.d.ts +7 -0
  498. package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.js +12 -0
  499. package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.d.ts +7 -0
  500. package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.js +11 -0
  501. package/dist/state/migrations/20261028120000_record_the_paused_work.d.ts +7 -0
  502. package/dist/state/migrations/20261028120000_record_the_paused_work.js +25 -0
  503. package/dist/state/migrations/20261028120100_end_the_suspended_runs.d.ts +8 -0
  504. package/dist/state/migrations/20261028120100_end_the_suspended_runs.js +13 -0
  505. package/dist/state/migrations/20261029120000_reference_the_run_mandate.d.ts +7 -0
  506. package/dist/state/migrations/20261029120000_reference_the_run_mandate.js +23 -0
  507. package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.d.ts +7 -0
  508. package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.js +11 -0
  509. package/dist/state/migrations/index.js +18 -0
  510. package/dist/state/paused-work.d.ts +52 -0
  511. package/dist/state/paused-work.js +105 -0
  512. package/dist/state/plans.d.ts +27 -8
  513. package/dist/state/plans.js +14 -11
  514. package/dist/state/purge-analysis.d.ts +6 -6
  515. package/dist/state/purge-analysis.js +10 -2
  516. package/dist/state/report-session-state.d.ts +43 -18
  517. package/dist/state/report-session-state.js +43 -4
  518. package/dist/state/report-versions.d.ts +16 -11
  519. package/dist/state/report-versions.js +5 -3
  520. package/dist/state/runs.d.ts +70 -25
  521. package/dist/state/runs.js +127 -64
  522. package/dist/state/schema.d.ts +18 -21
  523. package/dist/state/schema.js +4 -5
  524. package/dist/state/snapshot-parse.d.ts +2 -2
  525. package/dist/state/snapshot-parse.js +14 -8
  526. package/dist/state/step-executions.d.ts +29 -8
  527. package/dist/state/step-executions.js +28 -4
  528. package/dist/state/tool-outputs.d.ts +2 -2
  529. package/dist/state/tool-outputs.js +2 -1
  530. package/dist/state/vector-store.d.ts +16 -16
  531. package/dist/state/vector-store.js +11 -7
  532. package/dist/tasks/data-profile-absorb.d.ts +3 -3
  533. package/dist/tasks/data-profile-absorb.js +21 -16
  534. package/dist/tasks/data-profile-activity.d.ts +5 -5
  535. package/dist/tasks/data-profile-activity.js +5 -5
  536. package/dist/tasks/data-profile-index.d.ts +4 -4
  537. package/dist/tasks/data-profile-index.js +32 -17
  538. package/dist/tasks/data-profile-resolve.d.ts +8 -8
  539. package/dist/tasks/data-profile-resolve.js +88 -62
  540. package/dist/tasks/data-profile.d.ts +40 -31
  541. package/dist/tasks/data-profile.js +138 -95
  542. package/dist/tasks/extract-values.d.ts +26 -79
  543. package/dist/tasks/extract-values.js +48 -108
  544. package/dist/tasks/refresh-regulatory-corpus.d.ts +4 -20
  545. package/dist/tasks/refresh-regulatory-corpus.js +12 -8
  546. package/dist/tasks/regulatory-corpus-boot-refresh.d.ts +2 -2
  547. package/dist/tasks/regulatory-corpus-boot-refresh.js +12 -10
  548. package/dist/testing.d.ts +60 -0
  549. package/dist/testing.js +96 -0
  550. package/dist/tools/ad-hoc-router.d.ts +11 -9
  551. package/dist/tools/ad-hoc-router.js +80 -51
  552. package/dist/tools/analysis-invocation.d.ts +7 -0
  553. package/dist/tools/analysis-invocation.js +29 -5
  554. package/dist/tools/approval/contract.d.ts +8 -52
  555. package/dist/tools/approval/contract.js +7 -36
  556. package/dist/tools/approval/gateway.d.ts +27 -28
  557. package/dist/tools/approval/gateway.js +33 -130
  558. package/dist/tools/approval/queries.d.ts +6 -11
  559. package/dist/tools/approval/queries.js +43 -29
  560. package/dist/tools/approval/uuidv7.js +2 -2
  561. package/dist/tools/bio/chembl.d.ts +3 -3
  562. package/dist/tools/bio/chembl.js +10 -0
  563. package/dist/tools/bio/comptox.d.ts +25 -8
  564. package/dist/tools/bio/comptox.js +4 -2
  565. package/dist/tools/bio/drug-gene-interactions.d.ts +27 -17
  566. package/dist/tools/bio/drug-gene-interactions.js +11 -8
  567. package/dist/tools/bio/gene-disease-evidence.d.ts +61 -15
  568. package/dist/tools/bio/gene-disease-evidence.js +10 -6
  569. package/dist/tools/bio/gene-preclinical-profile.d.ts +11 -11
  570. package/dist/tools/bio/keys.d.ts +2 -2
  571. package/dist/tools/bio/keys.js +3 -3
  572. package/dist/tools/bio/lookup-annotation.d.ts +5 -5
  573. package/dist/tools/bio/lookup-annotation.js +3 -0
  574. package/dist/tools/bio/opentargets.d.ts +1 -1
  575. package/dist/tools/bio/opentargets.js +6 -0
  576. package/dist/tools/bio/pubchem.d.ts +2 -2
  577. package/dist/tools/bio/pubchem.js +6 -0
  578. package/dist/tools/bio/pubmed.d.ts +26 -16
  579. package/dist/tools/bio/pubmed.js +9 -3
  580. package/dist/tools/bio/search-clinical-trials.d.ts +4 -4
  581. package/dist/tools/bio/search-clinical-trials.js +5 -1
  582. package/dist/tools/bio/search-faers.d.ts +2 -2
  583. package/dist/tools/bio/search-faers.js +1 -1
  584. package/dist/tools/bio/search-gene.d.ts +2 -2
  585. package/dist/tools/bio/search-gene.js +1 -0
  586. package/dist/tools/bio/search-geo-datasets.d.ts +4 -4
  587. package/dist/tools/bio/search-geo-datasets.js +5 -5
  588. package/dist/tools/bio/search-interactions.d.ts +1 -1
  589. package/dist/tools/bio/search-patents.d.ts +28 -22
  590. package/dist/tools/bio/search-patents.js +20 -17
  591. package/dist/tools/bio/search-protein.d.ts +2 -2
  592. package/dist/tools/bio/search-protein.js +1 -1
  593. package/dist/tools/bio/search-regulatory-approvals.d.ts +64 -18
  594. package/dist/tools/bio/search-regulatory-approvals.js +21 -16
  595. package/dist/tools/bio/target-safety.d.ts +8 -8
  596. package/dist/tools/bio/target-safety.js +11 -6
  597. package/dist/tools/capability-data.d.ts +40 -0
  598. package/dist/tools/capability-data.js +74 -0
  599. package/dist/tools/define-tool.d.ts +55 -46
  600. package/dist/tools/define-tool.js +39 -27
  601. package/dist/tools/display/normalize-echart-spec.d.ts +2 -2
  602. package/dist/tools/display/normalize-echart-spec.js +51 -27
  603. package/dist/tools/display/show-user.d.ts +2 -2
  604. package/dist/tools/display/show-user.js +1 -1
  605. package/dist/tools/execute-analysis.d.ts +54 -17
  606. package/dist/tools/execute-analysis.js +193 -62
  607. package/dist/tools/knowledge/check.d.ts +182 -0
  608. package/dist/tools/knowledge/check.js +94 -0
  609. package/dist/tools/knowledge/client.d.ts +351 -0
  610. package/dist/tools/knowledge/client.js +319 -0
  611. package/dist/tools/knowledge/environment.d.ts +78 -0
  612. package/dist/tools/knowledge/environment.js +116 -0
  613. package/dist/tools/knowledge/index.d.ts +49 -0
  614. package/dist/tools/knowledge/index.js +70 -0
  615. package/dist/tools/knowledge/local-slots.d.ts +62 -0
  616. package/dist/tools/knowledge/local-slots.js +184 -0
  617. package/dist/tools/knowledge/pin.d.ts +14 -0
  618. package/dist/tools/knowledge/pin.js +17 -0
  619. package/dist/tools/knowledge/recommend.d.ts +67 -0
  620. package/dist/tools/knowledge/recommend.js +106 -0
  621. package/dist/tools/knowledge/situation.d.ts +143 -0
  622. package/dist/tools/knowledge/situation.js +157 -0
  623. package/dist/tools/knowledge/skeleton.d.ts +69 -0
  624. package/dist/tools/knowledge/skeleton.js +201 -0
  625. package/dist/tools/knowledge/template.d.ts +139 -0
  626. package/dist/tools/knowledge/template.js +273 -0
  627. package/dist/tools/lib/alphafold-client.js +2 -1
  628. package/dist/tools/lib/amass-client.d.ts +28 -28
  629. package/dist/tools/lib/amass-client.js +20 -10
  630. package/dist/tools/lib/api-utils.d.ts +13 -3
  631. package/dist/tools/lib/api-utils.js +17 -3
  632. package/dist/tools/lib/bgee-client.d.ts +6 -6
  633. package/dist/tools/lib/bgee-client.js +16 -10
  634. package/dist/tools/lib/cbioportal-client.d.ts +4 -4
  635. package/dist/tools/lib/cbioportal-client.js +9 -8
  636. package/dist/tools/lib/chembl-client.d.ts +14 -14
  637. package/dist/tools/lib/chembl-client.js +11 -4
  638. package/dist/tools/lib/clinical-benchmarks-client.d.ts +4 -4
  639. package/dist/tools/lib/clinical-benchmarks-client.js +4 -7
  640. package/dist/tools/lib/clinical-trials-client.d.ts +18 -18
  641. package/dist/tools/lib/clinical-trials-client.js +10 -10
  642. package/dist/tools/lib/clinvar-client.d.ts +2 -2
  643. package/dist/tools/lib/clinvar-client.js +6 -6
  644. package/dist/tools/lib/ctx-ops.d.ts +23 -23
  645. package/dist/tools/lib/ctx-ops.js +13 -10
  646. package/dist/tools/lib/dgidb-client.d.ts +6 -6
  647. package/dist/tools/lib/dgidb-client.js +10 -12
  648. package/dist/tools/lib/disgenet-client.d.ts +4 -4
  649. package/dist/tools/lib/ema-client.d.ts +2 -2
  650. package/dist/tools/lib/ensembl-client.d.ts +4 -4
  651. package/dist/tools/lib/ensembl-client.js +5 -4
  652. package/dist/tools/lib/gwas-catalog-client.d.ts +4 -4
  653. package/dist/tools/lib/gwas-catalog-client.js +17 -17
  654. package/dist/tools/lib/html-text.d.ts +6 -0
  655. package/dist/tools/lib/html-text.js +9 -0
  656. package/dist/tools/lib/identifier-resolver.d.ts +4 -4
  657. package/dist/tools/lib/identifier-resolver.js +7 -3
  658. package/dist/tools/lib/impc-client.d.ts +8 -8
  659. package/dist/tools/lib/impc-client.js +46 -35
  660. package/dist/tools/lib/iuphar-client.d.ts +2 -2
  661. package/dist/tools/lib/iuphar-client.js +7 -16
  662. package/dist/tools/lib/monarch-client.d.ts +4 -4
  663. package/dist/tools/lib/openfda-client.d.ts +22 -22
  664. package/dist/tools/lib/openfda-client.js +23 -22
  665. package/dist/tools/lib/opentargets-client.d.ts +12 -12
  666. package/dist/tools/lib/pathway-client.d.ts +4 -4
  667. package/dist/tools/lib/pathway-client.js +15 -19
  668. package/dist/tools/lib/pharmgkb-client.d.ts +2 -2
  669. package/dist/tools/lib/pharmgkb-client.js +1 -1
  670. package/dist/tools/lib/protein-family-modality.d.ts +2 -2
  671. package/dist/tools/lib/protein-family-modality.js +0 -2
  672. package/dist/tools/lib/protein-family-normalize.js +7 -0
  673. package/dist/tools/lib/pubchem-client.d.ts +2 -2
  674. package/dist/tools/lib/pubchem-client.js +1 -0
  675. package/dist/tools/lib/pubchem-ops.d.ts +4 -4
  676. package/dist/tools/lib/pubchem-ops.js +8 -0
  677. package/dist/tools/lib/pubmed-client.d.ts +9 -9
  678. package/dist/tools/lib/pubmed-client.js +1 -1
  679. package/dist/tools/lib/string-client.d.ts +6 -6
  680. package/dist/tools/lib/uniprot-client.d.ts +8 -8
  681. package/dist/tools/lib/uniprot-client.js +5 -1
  682. package/dist/tools/memory/update-working-memory.d.ts +16 -13
  683. package/dist/tools/memory/update-working-memory.js +21 -3
  684. package/dist/tools/read-tool-output.js +8 -2
  685. package/dist/tools/registry.d.ts +2 -2
  686. package/dist/tools/report-authoring/authoring-tools.d.ts +54 -23
  687. package/dist/tools/report-authoring/authoring-tools.js +128 -62
  688. package/dist/tools/report-session/derive-table.d.ts +19 -59
  689. package/dist/tools/report-session/derive-table.js +120 -122
  690. package/dist/tools/report-session/examine-page.d.ts +6 -6
  691. package/dist/tools/report-session/examine-page.js +14 -12
  692. package/dist/tools/report-session/list-artifacts.d.ts +6 -6
  693. package/dist/tools/report-session/list-artifacts.js +5 -5
  694. package/dist/tools/report-session/page-faults.d.ts +6 -6
  695. package/dist/tools/report-session/page-faults.js +3 -1
  696. package/dist/tools/report-session/preview-report.d.ts +4 -3
  697. package/dist/tools/report-session/preview-report.js +26 -7
  698. package/dist/tools/report-session/record-version.d.ts +9 -4
  699. package/dist/tools/report-session/record-version.js +16 -9
  700. package/dist/tools/report-session/session-page-publisher.d.ts +6 -6
  701. package/dist/tools/research/generate-analogy-report.d.ts +14 -7
  702. package/dist/tools/research/generate-analogy-report.js +80 -76
  703. package/dist/tools/research/generate-plan.d.ts +39 -16
  704. package/dist/tools/research/generate-plan.js +565 -338
  705. package/dist/tools/research/guarded-address.d.ts +20 -0
  706. package/dist/tools/research/guarded-address.js +149 -0
  707. package/dist/tools/research/inspect-data-profile.d.ts +27 -20
  708. package/dist/tools/research/inspect-data-profile.js +26 -25
  709. package/dist/tools/research/inspect-run.d.ts +54 -27
  710. package/dist/tools/research/inspect-run.js +50 -40
  711. package/dist/tools/research/literature-reviewer.d.ts +8 -7
  712. package/dist/tools/research/literature-reviewer.js +29 -28
  713. package/dist/tools/research/search-arxiv.d.ts +1 -1
  714. package/dist/tools/research/search-arxiv.js +1 -1
  715. package/dist/tools/research/search-github-repos.d.ts +10 -7
  716. package/dist/tools/research/search-github-repos.js +25 -22
  717. package/dist/tools/research/search-semantic-scholar.js +1 -1
  718. package/dist/tools/research/searxng-engine.d.ts +40 -0
  719. package/dist/tools/research/searxng-engine.js +122 -0
  720. package/dist/tools/research/web-fetch.d.ts +127 -0
  721. package/dist/tools/research/web-fetch.js +618 -0
  722. package/dist/tools/research/web-search.d.ts +84 -0
  723. package/dist/tools/research/web-search.js +117 -0
  724. package/dist/tools/sandbox/link-packages.d.ts +11 -7
  725. package/dist/tools/sandbox/link-packages.js +11 -8
  726. package/dist/tools/sandbox/list-available-packages.d.ts +24 -12
  727. package/dist/tools/sandbox/list-available-packages.js +43 -29
  728. package/dist/tools/sandbox/list-available-refs.d.ts +38 -14
  729. package/dist/tools/sandbox/list-available-refs.js +119 -37
  730. package/dist/tools/sandbox/report-blocker.d.ts +30 -37
  731. package/dist/tools/sandbox/report-blocker.js +22 -68
  732. package/dist/tools/sandbox/skills.d.ts +16 -12
  733. package/dist/tools/sandbox/skills.js +16 -12
  734. package/dist/tools/sandbox/submit-file-metadata.d.ts +12 -9
  735. package/dist/tools/sandbox/submit-file-metadata.js +18 -21
  736. package/dist/tools/start-report-session.d.ts +13 -5
  737. package/dist/tools/start-report-session.js +35 -8
  738. package/dist/tools/terminal-text.d.ts +14 -0
  739. package/dist/tools/terminal-text.js +51 -0
  740. package/dist/tools/workspace/decision-record.d.ts +81 -0
  741. package/dist/tools/workspace/decision-record.js +127 -0
  742. package/dist/tools/workspace/edit-file.d.ts +59 -18
  743. package/dist/tools/workspace/edit-file.js +98 -15
  744. package/dist/tools/workspace/execute-command.d.ts +31 -12
  745. package/dist/tools/workspace/execute-command.js +37 -8
  746. package/dist/tools/workspace/file-stat.d.ts +6 -3
  747. package/dist/tools/workspace/grep.d.ts +10 -7
  748. package/dist/tools/workspace/grep.js +9 -3
  749. package/dist/tools/workspace/index.d.ts +1 -0
  750. package/dist/tools/workspace/index.js +1 -0
  751. package/dist/tools/workspace/list-files.d.ts +6 -3
  752. package/dist/tools/workspace/mutator.d.ts +28 -15
  753. package/dist/tools/workspace/mutator.js +107 -53
  754. package/dist/tools/workspace/read-file.d.ts +8 -5
  755. package/dist/tools/workspace/result-bounds.d.ts +5 -5
  756. package/dist/tools/workspace/result-bounds.js +4 -2
  757. package/dist/tools/workspace/run-exec.d.ts +2 -2
  758. package/dist/tools/workspace/run-exec.js +3 -3
  759. package/dist/tools/workspace/scan-inputs.d.ts +8 -5
  760. package/dist/tools/workspace/scan-inputs.js +17 -5
  761. package/dist/tools/workspace/show-file.d.ts +1 -1
  762. package/dist/tools/workspace/show-file.js +2 -1
  763. package/dist/tools/workspace/show-plan.d.ts +8 -5
  764. package/dist/tools/workspace/show-plan.js +9 -8
  765. package/dist/tools/workspace/workspace-search.d.ts +41 -13
  766. package/dist/tools/workspace/workspace-search.js +27 -14
  767. package/dist/tools/workspace/write-file.d.ts +9 -7
  768. package/dist/workflows/execute-analysis-scheduler.d.ts +9 -9
  769. package/dist/workflows/execute-analysis-scheduler.js +6 -3
  770. package/dist/workflows/execute-analysis.d.ts +100 -76
  771. package/dist/workflows/execute-analysis.js +380 -247
  772. package/dist/workflows/pause.d.ts +71 -0
  773. package/dist/workflows/pause.js +173 -0
  774. package/dist/workflows/sandbox-step.d.ts +50 -61
  775. package/dist/workflows/sandbox-step.js +99 -106
  776. package/dist/workflows/test/sql-writes.d.ts +21 -0
  777. package/dist/workflows/test/sql-writes.js +36 -0
  778. package/dist/workspace/filesystem.d.ts +6 -6
  779. package/dist/workspace/filesystem.js +10 -8
  780. package/dist/workspace/paths.d.ts +1 -1
  781. package/dist/workspace/paths.js +15 -4
  782. package/dist/workspace/search-config.d.ts +2 -2
  783. package/dist/workspace/search-config.js +1 -1
  784. package/package.json +25 -22
  785. package/dist/loop/continue-agent.d.ts +0 -40
  786. package/dist/loop/continue-agent.js +0 -38
  787. package/dist/loop/genai-spans.d.ts +0 -47
  788. package/dist/loop/genai-spans.js +0 -134
  789. package/dist/loop/run-agent.d.ts +0 -236
  790. package/dist/loop/run-agent.js +0 -1110
  791. package/dist/loop/run-step.d.ts +0 -29
  792. package/dist/loop/run-step.js +0 -34
  793. package/dist/loop/run-to-terminal.d.ts +0 -66
  794. package/dist/loop/run-to-terminal.js +0 -90
  795. package/dist/loop/tool-mask.d.ts +0 -23
  796. package/dist/loop/tool-mask.js +0 -46
  797. package/dist/providers/streaming-chat.d.ts +0 -32
  798. package/dist/providers/streaming-chat.js +0 -91
  799. package/dist/tasks/derive-table-exec.d.ts +0 -54
  800. package/dist/tasks/derive-table-exec.js +0 -86
  801. package/dist/workflows/suspension.d.ts +0 -32
  802. package/dist/workflows/suspension.js +0 -38
@@ -29,12 +29,12 @@ import type { RenderedPage, RenderProblem, RenderValues } from "./types.js";
29
29
  * three optional inputs made a caller of the last one pad the two before it, thus the inputs ride one bag.
30
30
  * An absent `chart` member derives each chart with the registered figure modules.
31
31
  */
32
- export interface RenderOptions {
32
+ export type RenderOptions = {
33
33
  readonly records?: CitationRecords;
34
34
  readonly derivations?: readonly DerivationChain[];
35
35
  readonly provenance?: ProvenanceExport;
36
36
  readonly chart?: ChartOpts;
37
- }
37
+ };
38
38
  /**
39
39
  * Render a report document, its value map, and the pinned citation records to one page and its data assets.
40
40
  *
@@ -174,9 +174,9 @@ function renderBlock(block, values, ledger, records, data, depth, problems) {
174
174
  // the descriptors address the registered payload whichever block encoded it.
175
175
  const columns = tableColumns(entry);
176
176
  const derived = deriveChartRender(block, entry.rows, entry.columns, { key: block.id, columns }, {
177
- ...(entry.statistics !== undefined ? { statistics: entry.statistics } : {}),
178
- ...(entry.track !== undefined ? { track: entry.track } : {}),
179
- ...(entry.trees !== undefined ? { trees: entry.trees } : {}),
177
+ statistics: entry.statistics,
178
+ track: entry.track,
179
+ trees: entry.trees,
180
180
  }, data.chart);
181
181
  if (derived.isErr()) {
182
182
  problems.push(derived.error);
@@ -196,8 +196,8 @@ function renderBlock(block, values, ledger, records, data, depth, problems) {
196
196
  }
197
197
  return renderChart(block, ledger, derived.value.option, data.view, {
198
198
  bodyPx: derived.value.bodyPx,
199
- ...(derived.value.widthPx !== undefined ? { widthPx: derived.value.widthPx } : {}),
200
- ...(svgs.value !== undefined ? { svg: { single: svgs.value.single.name, double: svgs.value.double.name } } : {}),
199
+ widthPx: derived.value.widthPx,
200
+ svg: svgs.value === undefined ? undefined : { single: svgs.value.single.name, double: svgs.value.double.name },
201
201
  });
202
202
  }
203
203
  case "section":
@@ -224,19 +224,18 @@ function renderChildren(blocks, values, ledger, records, data, depth, problems)
224
224
  let index = 0;
225
225
  while (index < blocks.length) {
226
226
  const run = metricRunLength(blocks, index);
227
- const rendered = [];
228
- for (let offset = 0; offset < Math.max(run, 1); offset += 1) {
229
- rendered.push(renderBlock(blocks[index + offset], values, ledger, records, data, depth, problems));
230
- }
227
+ const runLength = Math.max(run, 1);
228
+ const runBlocks = blocks.slice(index, index + runLength);
229
+ const rendered = runBlocks.map((block) => renderBlock(block, values, ledger, records, data, depth, problems));
231
230
  parts.push(run > 1 ? renderMetricGrid(rendered.join("")) : rendered.join(""));
232
- index += Math.max(run, 1);
231
+ index += runLength;
233
232
  }
234
233
  return parts.join("");
235
234
  }
236
235
  /** The count of the metric blocks that start at `start`. A block of a different kind gives zero. */
237
236
  function metricRunLength(blocks, start) {
238
237
  let length = 0;
239
- while (start + length < blocks.length && blocks[start + length].kind === "metric") {
238
+ while (start + length < blocks.length && blocks[start + length]?.kind === "metric") {
240
239
  length += 1;
241
240
  }
242
241
  return length;
@@ -11,5 +11,5 @@
11
11
  */
12
12
  /** Serialize a value to JSON that is safe inside a `<script>` element. */
13
13
  export function scriptJson(value) {
14
- return JSON.stringify(value).replace(/</g, "\\u003c");
14
+ return JSON.stringify(value).replaceAll("<", "\\u003c");
15
15
  }
@@ -34,12 +34,12 @@ export type ColumnFilter = "number" | "text";
34
34
  * The server resolves each of the four, and the page reads them. Thus the declaration, the token guess, and
35
35
  * the read of a whole column stay on the server, and the page formats and filters alone.
36
36
  */
37
- export interface ColumnDisplay {
37
+ export type ColumnDisplay = {
38
38
  label: string;
39
39
  kind: NumberKind;
40
40
  filter: ColumnFilter;
41
41
  bound?: number;
42
- }
42
+ };
43
43
  /**
44
44
  * One encoded table.
45
45
  *
@@ -53,18 +53,18 @@ export interface ColumnDisplay {
53
53
  * `total` is the row count of the artifact before a row bound cut it. The page states the shown count
54
54
  * against it, thus a reader of a cut table never reads the cut as the whole artifact.
55
55
  */
56
- export interface TablePayload {
56
+ export type TablePayload = {
57
57
  columns: string[];
58
58
  rows: EncodedCell[][];
59
59
  dict: Record<string, string[]>;
60
60
  display: ColumnDisplay[];
61
61
  total: number;
62
- }
62
+ };
63
63
  /** One data asset that the caller writes beside the page: the staged file name, and the source text of it. */
64
- export interface DataAsset {
64
+ export type DataAsset = {
65
65
  name: string;
66
66
  bytes: string;
67
- }
67
+ };
68
68
  /**
69
69
  * Encode a resolved table into its payload.
70
70
  *
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The typed reads that a report-render test makes over a produced ECharts option.
3
+ *
4
+ * An accessor fails the test when a present value carries the wrong shape. It never filters a malformed
5
+ * entry away and never invents a default, so an assertion reads the option that the renderer built.
6
+ */
7
+ import { type EchartOption } from "../chart.js";
8
+ /** The option object that a value holds, or a failed test. */
9
+ export declare function optionOf(value: unknown): EchartOption;
10
+ /** The series of an option, each entry an option object. */
11
+ export declare function seriesOf(option: EchartOption): EchartOption[];
12
+ /** The array of option objects that the named member holds, each entry an option object. */
13
+ export declare function optionArray(option: EchartOption, key: string): EchartOption[];
14
+ /** The option object that the named member holds, or a failed test. */
15
+ export declare function optionAt(option: EchartOption, key: string): EchartOption;
16
+ /** The number that a value holds, or a failed test. */
17
+ export declare function optionNumber(value: unknown): number;
18
+ /** The array of numbers that a value holds, or a failed test. */
19
+ export declare function optionNumbers(value: unknown): number[];
20
+ /** The array of number arrays that a value holds, or a failed test. */
21
+ export declare function optionNumberRows(value: unknown): number[][];
22
+ /** The grid of an option at an index, or a failed test. */
23
+ export declare function gridAt(option: EchartOption, index: number): EchartOption;
24
+ /** The option object that a list holds at an index, or a failed test. */
25
+ export declare function optionEntry(options: EchartOption[], index: number, what: string): EchartOption;
26
+ /** The data of the mark line of an option: empty when the option holds no mark line. The entries stay as
27
+ * the renderer built them, because one mark line mixes guide objects with pairs of line ends. */
28
+ export declare function markLineData(option: EchartOption): unknown[];
29
+ /** The array that a value holds, or a failed test. */
30
+ export declare function optionList(value: unknown): unknown[];
31
+ /** The option object that the named member holds when the member is present, or `undefined`. */
32
+ export declare function optionMaybe(option: EchartOption, key: string): EchartOption | undefined;
33
+ /** The array of strings that a value holds, or a failed test. */
34
+ export declare function optionStrings(value: unknown): string[];
35
+ /** The rows of option pairs that a mark line holds, or a failed test. */
36
+ export declare function optionPairRows(value: unknown): Array<[EchartOption, EchartOption]>;
37
+ /** The array of option objects that a value holds, or a failed test. */
38
+ export declare function optionsOf(value: unknown): EchartOption[];
39
+ /** The pair of numbers that a value holds, or a failed test. */
40
+ export declare function optionPair(value: unknown): [number, number];
41
+ /** The function that the page source builds under the given name, called with unknown arguments. Each
42
+ * call runs the page source again, so a call sees new page globals. */
43
+ export declare function pageCall(source: string, name: string): (...args: unknown[]) => unknown;
44
+ /** The data source of one dense chart: the payload name, the rule, and one option object per series. */
45
+ export declare function chartSourceOf(option: EchartOption): {
46
+ payload: string;
47
+ rule: unknown;
48
+ series: EchartOption[];
49
+ };
@@ -0,0 +1,143 @@
1
+ /**
2
+ * The typed reads that a report-render test makes over a produced ECharts option.
3
+ *
4
+ * An accessor fails the test when a present value carries the wrong shape. It never filters a malformed
5
+ * entry away and never invents a default, so an assertion reads the option that the renderer built.
6
+ */
7
+ import { isUnknownArray } from "../../lib/unknown-array.js";
8
+ import { parseUnknownRecord } from "../../lib/unknown-containers.js";
9
+ import { textOf } from "../../lib/unknown-text.js";
10
+ import { CHART_SOURCE_MEMBER } from "../chart.js";
11
+ import { pageExports } from "./page-function.js";
12
+ /** The JSON text of a value, or `undefined` when the value holds no JSON form. The lib signature types
13
+ * the result `string`, but it gives back `undefined` for a value it cannot hold. */
14
+ function stringifyJson(value) {
15
+ return JSON.stringify(value);
16
+ }
17
+ function fail(what, value) {
18
+ const shown = stringifyJson(value)?.slice(0, 80) ?? textOf(value);
19
+ throw new Error(`the produced option holds ${what} in another shape: ${shown}`);
20
+ }
21
+ /** The option object that a value holds, or a failed test. */
22
+ export function optionOf(value) {
23
+ const option = parseUnknownRecord(value);
24
+ if (option === undefined)
25
+ fail("an option object", value);
26
+ return option;
27
+ }
28
+ /** The series of an option, each entry an option object. */
29
+ export function seriesOf(option) {
30
+ if (!isUnknownArray(option.series))
31
+ fail("a series array", option.series);
32
+ return option.series.map((entry) => optionOf(entry));
33
+ }
34
+ /** The array of option objects that the named member holds, each entry an option object. */
35
+ export function optionArray(option, key) {
36
+ if (!isUnknownArray(option[key]))
37
+ fail(`a ${key} array`, option[key]);
38
+ return option[key].map((entry) => optionOf(entry));
39
+ }
40
+ /** The option object that the named member holds, or a failed test. */
41
+ export function optionAt(option, key) {
42
+ return optionOf(option[key]);
43
+ }
44
+ /** The number that a value holds, or a failed test. */
45
+ export function optionNumber(value) {
46
+ if (typeof value !== "number")
47
+ fail("a number", value);
48
+ return value;
49
+ }
50
+ /** The array of numbers that a value holds, or a failed test. */
51
+ export function optionNumbers(value) {
52
+ if (!isUnknownArray(value))
53
+ fail("a number array", value);
54
+ return value.map((entry) => optionNumber(entry));
55
+ }
56
+ /** The array of number arrays that a value holds, or a failed test. */
57
+ export function optionNumberRows(value) {
58
+ if (!isUnknownArray(value))
59
+ fail("a number matrix", value);
60
+ return value.map((entry) => optionNumbers(entry));
61
+ }
62
+ /** The grid of an option at an index, or a failed test. */
63
+ export function gridAt(option, index) {
64
+ return optionEntry(optionArray(option, "grid"), index, "grid");
65
+ }
66
+ /** The option object that a list holds at an index, or a failed test. */
67
+ export function optionEntry(options, index, what) {
68
+ const entry = options[index];
69
+ if (entry === undefined)
70
+ fail(`a ${what} at index ${index}`, entry);
71
+ return entry;
72
+ }
73
+ /** The data of the mark line of an option: empty when the option holds no mark line. The entries stay as
74
+ * the renderer built them, because one mark line mixes guide objects with pairs of line ends. */
75
+ export function markLineData(option) {
76
+ const line = optionMaybe(option, "markLine");
77
+ return line === undefined ? [] : optionList(line.data);
78
+ }
79
+ /** The array that a value holds, or a failed test. */
80
+ export function optionList(value) {
81
+ if (!isUnknownArray(value))
82
+ fail("an array", value);
83
+ return value;
84
+ }
85
+ /** The option object that the named member holds when the member is present, or `undefined`. */
86
+ export function optionMaybe(option, key) {
87
+ return option[key] === undefined ? undefined : optionAt(option, key);
88
+ }
89
+ /** The array of strings that a value holds, or a failed test. */
90
+ export function optionStrings(value) {
91
+ if (!isUnknownArray(value))
92
+ fail("a string array", value);
93
+ return value.map((entry) => {
94
+ if (typeof entry !== "string")
95
+ fail("a string", entry);
96
+ return entry;
97
+ });
98
+ }
99
+ /** The rows of option pairs that a mark line holds, or a failed test. */
100
+ export function optionPairRows(value) {
101
+ if (!isUnknownArray(value))
102
+ fail("a pair-row array", value);
103
+ return value.map((row) => {
104
+ const entries = optionList(row).map((entry) => optionOf(entry));
105
+ const [from, to] = entries;
106
+ if (from === undefined || to === undefined)
107
+ fail("a pair of options", row);
108
+ return [from, to];
109
+ });
110
+ }
111
+ /** The array of option objects that a value holds, or a failed test. */
112
+ export function optionsOf(value) {
113
+ if (!isUnknownArray(value))
114
+ fail("an option array", value);
115
+ return value.map((entry) => optionOf(entry));
116
+ }
117
+ /** The pair of numbers that a value holds, or a failed test. */
118
+ export function optionPair(value) {
119
+ const [first, second] = optionNumbers(value);
120
+ if (first === undefined || second === undefined)
121
+ fail("a pair of numbers", value);
122
+ return [first, second];
123
+ }
124
+ /** The function that the page source builds under the given name, called with unknown arguments. Each
125
+ * call runs the page source again, so a call sees new page globals. */
126
+ export function pageCall(source, name) {
127
+ return (...args) => {
128
+ const made = pageExports([], [], source, [[name, name]])[name];
129
+ if (typeof made !== "function")
130
+ throw new Error(`the page source holds no ${name}`);
131
+ const given = Reflect.apply(made, undefined, args);
132
+ return given;
133
+ };
134
+ }
135
+ /** The data source of one dense chart: the payload name, the rule, and one option object per series. */
136
+ export function chartSourceOf(option) {
137
+ const source = optionOf(option[CHART_SOURCE_MEMBER]);
138
+ if (typeof source.payload !== "string")
139
+ fail("a payload name", source.payload);
140
+ if (!isUnknownArray(source.series))
141
+ fail("a series array", source.series);
142
+ return { payload: source.payload, rule: source.rule, series: source.series.map((entry) => optionOf(entry)) };
143
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The one `Function` construction of the report-render tests, and its runners.
3
+ *
4
+ * The body is compiled page source — the string that `render.ts`, `page.ts`,
5
+ * or `views/*.tsx` ships — run against fake browser globals. That run is the
6
+ * point of these tests, not an eval of untrusted input.
7
+ */
8
+ /**
9
+ * Run compiled page source against the fake browser globals that the params
10
+ * name and the args give.
11
+ */
12
+ export declare function runPageScript(params: string[], args: unknown[], script: string): void;
13
+ /**
14
+ * Evaluate compiled page source that ends by naming its exports, and give the
15
+ * record back. Each entry pairs the record key with the name that the page
16
+ * source binds. The record is an own-property copy: the page returns plain
17
+ * object literals, so no prototype member is lost.
18
+ */
19
+ export declare function pageExports(params: string[], args: unknown[], source: string, exports: Array<[string, string]>): Record<string, unknown>;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The one `Function` construction of the report-render tests, and its runners.
3
+ *
4
+ * The body is compiled page source — the string that `render.ts`, `page.ts`,
5
+ * or `views/*.tsx` ships — run against fake browser globals. That run is the
6
+ * point of these tests, not an eval of untrusted input.
7
+ */
8
+ import { parseUnknownRecord } from "../../lib/unknown-containers.js";
9
+ function runPageSource(params, args, body) {
10
+ // oxlint-disable-next-line typescript/no-implied-eval -- compiled page source run against fake browser globals; the point of the test, not an eval of untrusted input
11
+ return Reflect.apply(new Function(...params, body), undefined, args);
12
+ }
13
+ /**
14
+ * Run compiled page source against the fake browser globals that the params
15
+ * name and the args give.
16
+ */
17
+ export function runPageScript(params, args, script) {
18
+ runPageSource(params, args, script);
19
+ }
20
+ /**
21
+ * Evaluate compiled page source that ends by naming its exports, and give the
22
+ * record back. Each entry pairs the record key with the name that the page
23
+ * source binds. The record is an own-property copy: the page returns plain
24
+ * object literals, so no prototype member is lost.
25
+ */
26
+ export function pageExports(params, args, source, exports) {
27
+ const tail = exports.map(([key, name]) => `${JSON.stringify(key)}: ${name}`).join(", ");
28
+ const made = runPageSource(params, args, `${source}\nreturn { ${tail} };`);
29
+ const record = parseUnknownRecord(made);
30
+ if (record === undefined)
31
+ throw new Error("the page source returned no record");
32
+ return record;
33
+ }
@@ -9,20 +9,20 @@
9
9
  */
10
10
  import type { DataAsset } from "./table-data.js";
11
11
  /** One statistic of a chart: the label of the block, and the value of the cell that the statistic binds. */
12
- export interface RenderStatistic {
12
+ export type RenderStatistic = {
13
13
  label: string;
14
14
  value: string | number;
15
- }
15
+ };
16
16
  /** The second table of a chart: the rows of the track binding, and the optional column order. */
17
- export interface RenderTrack {
17
+ export type RenderTrack = {
18
18
  rows: Array<Record<string, string | number>>;
19
19
  columns?: string[];
20
- }
20
+ };
21
21
  /** The trees of the category axes of a chart: the rows of the tree binding of each axis, with its optional column order. */
22
- export interface RenderTrees {
22
+ export type RenderTrees = {
23
23
  x?: RenderTrack;
24
24
  y?: RenderTrack;
25
- }
25
+ };
26
26
  /**
27
27
  * The value that one block resolves to, as a closed union. A `scalar` gives one number or one string. A
28
28
  * `table` gives the rows and the optional column order. A `figure` gives a ready source string. A
@@ -56,11 +56,11 @@ export type RenderValue = {
56
56
  * One typed fault of a render. `blockId` names the block. `kind` names the class of the fault. `detail`
57
57
  * names what the block expected. The render collects every problem, and it returns them at once.
58
58
  */
59
- export interface RenderProblem {
59
+ export type RenderProblem = {
60
60
  blockId: string;
61
61
  kind: "missing-value" | "wrong-shape" | "invalid-chart-input";
62
62
  detail: string;
63
- }
63
+ };
64
64
  /** The value map that the renderer takes, keyed by block id. */
65
65
  export type RenderValues = Record<string, RenderValue>;
66
66
  /**
@@ -72,7 +72,7 @@ export type RenderValues = Record<string, RenderValue>;
72
72
  * The list holds the provenance assets of the render beside the table payloads and the SVG files of each
73
73
  * chart, thus one stage writes each file that the page loads or links, and the caller sorts nothing.
74
74
  */
75
- export interface RenderedPage {
75
+ export type RenderedPage = {
76
76
  html: string;
77
77
  dataAssets: DataAsset[];
78
- }
78
+ };
@@ -28,10 +28,10 @@ export type ResolvedFile = Extract<ResolvedValue, {
28
28
  /** The policy that turns a resolved file echo into a figure `src` string. The caller owns the policy. */
29
29
  export type FigureSourcePolicy = (file: ResolvedFile) => string;
30
30
  /** One resolved statistic of a chart: the label of the block, and the resolved value of its cell. */
31
- export interface StatisticResolution {
31
+ export type StatisticResolution = {
32
32
  label: string;
33
33
  resolved: ResolvedValue;
34
- }
34
+ };
35
35
  /**
36
36
  * The resolution result of one block: the block id, the block kind, and the resolved value of its binding.
37
37
  *
@@ -63,13 +63,13 @@ export type BlockResolution = {
63
63
  * needs, and `actual` names the resolved type that arrived. `slot` names the track or the statistic of a
64
64
  * chart whose value has the wrong type.
65
65
  */
66
- export interface BridgeMismatch {
66
+ export type BridgeMismatch = {
67
67
  blockId: string;
68
68
  blockKind: ValueBearingKind;
69
69
  slot?: ChartSlot;
70
70
  expected: ResolvedValue["type"];
71
71
  actual: ResolvedValue["type"];
72
- }
72
+ };
73
73
  /**
74
74
  * Map the resolved values of the blocks onto a `RenderValues` map.
75
75
  *
@@ -126,16 +126,24 @@ export function collectResolutions(blocks, resolvedByBlock, resolvedBySlot) {
126
126
  const value = slots?.get(statisticSlot(index));
127
127
  return value === undefined ? [] : [{ label: statistic.label, resolved: value }];
128
128
  });
129
- resolutions.push({
129
+ const resolution = {
130
130
  blockId: block.id,
131
131
  kind: "chart",
132
132
  resolved,
133
- ...(track !== undefined ? { track } : {}),
134
- ...(treeX !== undefined || treeY !== undefined
135
- ? { trees: { ...(treeX !== undefined ? { x: treeX } : {}), ...(treeY !== undefined ? { y: treeY } : {}) } }
136
- : {}),
137
- ...(statistics.length > 0 ? { statistics } : {}),
138
- });
133
+ };
134
+ if (track !== undefined)
135
+ resolution.track = track;
136
+ if (treeX !== undefined || treeY !== undefined) {
137
+ const trees = {};
138
+ if (treeX !== undefined)
139
+ trees.x = treeX;
140
+ if (treeY !== undefined)
141
+ trees.y = treeY;
142
+ resolution.trees = trees;
143
+ }
144
+ if (statistics.length > 0)
145
+ resolution.statistics = statistics;
146
+ resolutions.push(resolution);
139
147
  return;
140
148
  }
141
149
  }
@@ -183,12 +191,14 @@ function chartValue(resolution) {
183
191
  if (mismatches.length > 0 || binding.type !== "table") {
184
192
  return err(mismatches);
185
193
  }
186
- return ok({
187
- ...tableValue(binding),
188
- ...(statistics.length > 0 ? { statistics } : {}),
189
- ...(track !== undefined && track.type === "table" ? { track: secondTable(track) } : {}),
190
- ...(trees.x !== undefined || trees.y !== undefined ? { trees } : {}),
191
- });
194
+ const value = { ...tableValue(binding) };
195
+ if (statistics.length > 0)
196
+ value.statistics = statistics;
197
+ if (track !== undefined && track.type === "table")
198
+ value.track = secondTable(track);
199
+ if (Object.keys(trees).length > 0)
200
+ value.trees = trees;
201
+ return ok(value);
192
202
  }
193
203
  /** The rows of a second table of a chart, a track or a tree, with its column order where the resolution gives one. */
194
204
  function secondTable(value) {
@@ -213,5 +223,8 @@ function tableValue(value) {
213
223
  * arrived. A mismatch of a chart track, tree, or statistic names its slot.
214
224
  */
215
225
  function mismatch(blockId, blockKind, expected, actual, slot) {
216
- return { blockId, blockKind, ...(slot !== undefined ? { slot } : {}), expected, actual };
226
+ const fault = { blockId, blockKind, expected, actual };
227
+ if (slot !== undefined)
228
+ fault.slot = slot;
229
+ return fault;
217
230
  }
@@ -29,14 +29,14 @@ import { type ViewOptions } from "./lineage.js";
29
29
  * `bodyPx` is the height of the body, and `widthPx` is the width of a figure that draws a block of a fixed
30
30
  * size.
31
31
  */
32
- export interface ChartCard {
32
+ export type ChartCard = {
33
33
  readonly svg?: {
34
34
  readonly single: string;
35
35
  readonly double: string;
36
36
  };
37
37
  readonly bodyPx: number;
38
38
  readonly widthPx?: number;
39
- }
39
+ };
40
40
  /**
41
41
  * The note of a chart past the export bound that holds no point layer. The page draws its PNG, and no SVG
42
42
  * serves it.
@@ -82,9 +82,9 @@ export function renderChart(block, ledger, option, view = DEFAULT_VIEW_OPTIONS,
82
82
  ].join("; ");
83
83
  const stem = kebabFilename(block.title ?? block.id);
84
84
  const hybrid = card.svg === undefined && holdsPointLayer(option);
85
- return String(_jsxs("div", { class: "report-chart", ...blockMark(block.id), ...lineageStamp(view.lineage, block.id, references), children: [_jsxs("div", { class: "report-chart-title", children: [block.title, markers, _jsx("button", { type: "button", id: chartMenuControlId(containerId), class: "report-chart-download", "aria-haspopup": "menu", "aria-expanded": "false", "aria-controls": chartMenuId(containerId), [MENU_CONTROL_ATTRIBUTE]: containerId, children: DOWNLOAD_CONTROL_LABEL })] }), _jsxs("div", { class: "report-chart-card corner-accents", children: [_jsx("div", { id: containerId, "data-echarts-id": block.id, class: "chart-container", ...(bodyStyle !== "" ? { style: bodyStyle } : {}) }), _jsx("script", { type: "application/json", children: raw(json) }), _jsxs("div", { id: chartMenuId(containerId), class: "report-chart-menu", role: "menu", "aria-label": MENU_LABEL, children: [SVG_EXPORTS.map((kind) => {
85
+ return String(_jsxs("div", { class: "report-chart", ...blockMark(block.id), ...lineageStamp(view.lineage, block.id, references), children: [_jsxs("div", { class: "report-chart-title", children: [block.title, markers, _jsx("button", { type: "button", id: chartMenuControlId(containerId), class: "report-chart-download", "aria-haspopup": "menu", "aria-expanded": "false", "aria-controls": chartMenuId(containerId), [MENU_CONTROL_ATTRIBUTE]: containerId, children: DOWNLOAD_CONTROL_LABEL })] }), _jsxs("div", { class: "report-chart-card corner-accents", children: [_jsx("div", { id: containerId, "data-echarts-id": block.id, class: "chart-container", style: bodyStyle === "" ? undefined : bodyStyle }), _jsx("script", { type: "application/json", children: raw(json) }), _jsxs("div", { id: chartMenuId(containerId), class: "report-chart-menu", role: "menu", "aria-label": MENU_LABEL, children: [SVG_EXPORTS.map((kind) => {
86
86
  const size = exportSizeFor(CHART_EXPORT_SIZES[kind], card.bodyPx);
87
- const file = `${stem}-${size.widthMm}mm.svg`;
87
+ const file = `${stem}-${String(size.widthMm)}mm.svg`;
88
88
  const label = `SVG · ${size.label}`;
89
89
  if (card.svg !== undefined) {
90
90
  return (_jsx("a", { class: "report-chart-menu-item", role: "menuitem", tabindex: -1, href: stagedSource(card.svg[kind]), download: file, children: label }));
@@ -30,9 +30,9 @@ import type { Reference } from "../../contracts/report-reference.js";
30
30
  * `lineage` states that the page carries a provenance document. Each grounded block then stamps its keys
31
31
  * and shows its control, and a page with no document carries neither.
32
32
  */
33
- export interface ViewOptions {
33
+ export type ViewOptions = {
34
34
  readonly lineage: boolean;
35
- }
35
+ };
36
36
  /**
37
37
  * The options that a view takes when the caller gives none. Each truth is off, thus the view renders its
38
38
  * plain form.
@@ -47,15 +47,15 @@ export declare const LINEAGE_KEY_ATTRIBUTE = "data-lineage-key";
47
47
  /** The class of the control that opens the chain of one reference. */
48
48
  export declare const LINEAGE_CONTROL_CLASS = "report-lineage";
49
49
  /** The pin of one artifact: the analysis-relative path, and the content hash of the bytes. */
50
- export interface LineagePin {
50
+ export type LineagePin = {
51
51
  readonly path: string;
52
52
  readonly hash: string;
53
- }
53
+ };
54
54
  /** The identity of one external record: the identifier space, and the identifier inside it. */
55
- export interface LineageRecord {
55
+ export type LineageRecord = {
56
56
  readonly idKind: string;
57
57
  readonly id: string;
58
- }
58
+ };
59
59
  /** One key of a stamp. A reference that pins no single file gives `null` in place of a key. */
60
60
  export type LineageKey = LineagePin | LineageRecord;
61
61
  /**
@@ -27,6 +27,7 @@ const LINEAGE_GLYPH_CLASS = "report-lineage-glyph";
27
27
  * both reach the drawing and the sheet holds one color for the two states. The glyph is decoration, thus
28
28
  * it hides from a reader who hears the page and the label of the button answers instead.
29
29
  */
30
+ // oxlint-disable-next-line typescript/explicit-function-return-type -- hono's JSX ElementType contract demands FunctionComponentResult, which its own jsxDEV factory return (JSXNode) does not satisfy; no writable type names what the body returns, so the inferred JSXNode return stays.
30
31
  function LineageGlyph() {
31
32
  return (_jsxs("svg", { class: LINEAGE_GLYPH_CLASS, width: "13", height: "13", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "1.5", "aria-hidden": "true", children: [_jsx("circle", { cx: "4", cy: "4", r: "2" }), _jsx("circle", { cx: "4", cy: "12", r: "2" }), _jsx("circle", { cx: "12", cy: "12", r: "2" }), _jsx("path", { d: "M4 6v4" }), _jsx("path", { d: "M6 12h4" }), _jsx("path", { d: "M12 10V8a4 4 0 0 0-4-4H6" })] }));
32
33
  }
@@ -81,6 +82,7 @@ export function lineagePlace(on, reference, index = 0) {
81
82
  * The control names its place and never its key. The stamp of the block holds the keys, thus one page
82
83
  * carries one copy of each key and a claim of several bindings repeats none of them.
83
84
  */
85
+ // oxlint-disable-next-line typescript/explicit-function-return-type -- hono's JSX ElementType contract demands FunctionComponentResult, which its own jsxDEV factory return (JSXNode) does not satisfy; no writable type names what the body returns, so the inferred JSXNode return stays.
84
86
  export function LineageControl({ place }) {
85
87
  return (_jsx("button", { type: "button", class: LINEAGE_CONTROL_CLASS, "aria-label": LINEAGE_CONTROL_LABEL, "aria-expanded": "false", [LINEAGE_KEY_ATTRIBUTE]: String(place), children: _jsx(LineageGlyph, {}) }));
86
88
  }
@@ -44,11 +44,11 @@ export declare function renderReferenceSection(ledger: ReferenceLedger, index: n
44
44
  * of one type takes no fault at the build when a caller swaps the two. Thus the group rides one bag, and
45
45
  * each member of it carries its own name.
46
46
  */
47
- export interface PageAssets {
47
+ export type PageAssets = {
48
48
  readonly dataAssets: readonly DataAsset[];
49
49
  readonly grids: boolean;
50
50
  readonly provenanceAssets: readonly DataAsset[];
51
- }
51
+ };
52
52
  /**
53
53
  * Assemble the page from the title, the navigation, the main content, the reference frame, and the data
54
54
  * assets. The title passes through the runtime as text, and the runtime escapes it. The reference frame is
@@ -69,6 +69,7 @@ export function renderReferenceSection(ledger, index, records, chains) {
69
69
  if (references === "") {
70
70
  return "";
71
71
  }
72
+ // oxlint-disable-next-line typescript/no-base-to-string -- hono JSXNode.toString() renders these sync element trees to HTML; the rule sees only its declared `string | Promise<string>` return.
72
73
  const heading = String(_jsx("h2", { class: "report-heading report-heading-3 report-ref-title", children: REFERENCES_TITLE }));
73
74
  return renderBand(index, heading + references);
74
75
  }