@inflexa-ai/harness 0.45.1 → 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 (789) hide show
  1. package/README.md +6 -3
  2. package/dist/agents/conversation-agent.d.ts +9 -3
  3. package/dist/agents/conversation-agent.js +34 -33
  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 +12 -14
  9. package/dist/agents/sandbox/shared.js +18 -12
  10. package/dist/agents/sandbox/types.d.ts +4 -4
  11. package/dist/agents/sandbox/validate-skills.d.ts +2 -2
  12. package/dist/agents/sandbox/validate-skills.js +3 -1
  13. package/dist/agents/sandbox-catalog.d.ts +2 -2
  14. package/dist/agents/sandbox-catalog.js +3 -3
  15. package/dist/agents/system-prompt.d.ts +2 -2
  16. package/dist/app/chat-turn-workflow.d.ts +114 -0
  17. package/dist/app/chat-turn-workflow.js +307 -0
  18. package/dist/app/chat-turn.d.ts +85 -57
  19. package/dist/app/chat-turn.js +123 -100
  20. package/dist/app/data-profile-orientation.js +10 -8
  21. package/dist/app/data-profile-view.d.ts +4 -4
  22. package/dist/app/data-profile-view.js +9 -8
  23. package/dist/app/in-process-turn.d.ts +42 -0
  24. package/dist/app/in-process-turn.js +139 -0
  25. package/dist/app/message-assembly.d.ts +10 -4
  26. package/dist/app/message-assembly.js +13 -8
  27. package/dist/app/report-session-runtime.d.ts +4 -4
  28. package/dist/app/report-session-runtime.js +36 -21
  29. package/dist/app/spawn-report-session.d.ts +33 -28
  30. package/dist/app/spawn-report-session.js +25 -40
  31. package/dist/app/synthesize-run.d.ts +22 -16
  32. package/dist/app/synthesize-run.js +41 -35
  33. package/dist/app/work.d.ts +96 -0
  34. package/dist/app/work.js +147 -0
  35. package/dist/auth/local-auth-context.d.ts +1 -3
  36. package/dist/auth/local-auth-context.js +1 -3
  37. package/dist/auth/local-run-authorizer.d.ts +1 -1
  38. package/dist/auth/local-run-authorizer.js +5 -3
  39. package/dist/auth/types.d.ts +26 -26
  40. package/dist/billing/cached-resolver.d.ts +4 -4
  41. package/dist/billing/run-charge.d.ts +5 -8
  42. package/dist/billing/run-charge.js +2 -2
  43. package/dist/billing/usage-recorder.d.ts +9 -9
  44. package/dist/citations/aggregate.js +1 -1
  45. package/dist/citations/clients/arxiv.d.ts +2 -2
  46. package/dist/citations/clients/arxiv.js +12 -4
  47. package/dist/citations/clients/common.js +4 -2
  48. package/dist/citations/clients/crossref.d.ts +2 -2
  49. package/dist/citations/clients/crossref.js +37 -37
  50. package/dist/citations/clients/doi-registry.js +15 -16
  51. package/dist/citations/clients/pubmed.d.ts +2 -2
  52. package/dist/citations/clients/pubmed.js +20 -13
  53. package/dist/citations/clients/semantic-scholar.d.ts +2 -2
  54. package/dist/citations/clients/semantic-scholar.js +9 -9
  55. package/dist/citations/compare.js +2 -2
  56. package/dist/citations/match.d.ts +2 -2
  57. package/dist/citations/match.js +12 -7
  58. package/dist/citations/normalize.js +35 -26
  59. package/dist/citations/plan.js +6 -2
  60. package/dist/citations/resolve.d.ts +6 -6
  61. package/dist/citations/resolve.js +34 -25
  62. package/dist/citations/types.d.ts +77 -77
  63. package/dist/config/environment-stores.d.ts +6 -6
  64. package/dist/config/resource-limits.js +1 -3
  65. package/dist/contracts/analogy-report.d.ts +7 -7
  66. package/dist/contracts/analogy-report.js +2 -2
  67. package/dist/contracts/chat-events.d.ts +38 -24
  68. package/dist/contracts/chat-frame.d.ts +15 -5
  69. package/dist/contracts/chat-frame.js +64 -41
  70. package/dist/contracts/chat-parts.d.ts +130 -67
  71. package/dist/contracts/chat-parts.js +1 -0
  72. package/dist/contracts/content-url.js +16 -2
  73. package/dist/contracts/data-profile.d.ts +38 -38
  74. package/dist/contracts/index.d.ts +2 -2
  75. package/dist/contracts/index.js +1 -1
  76. package/dist/contracts/message.d.ts +6 -6
  77. package/dist/contracts/organ-system.d.ts +11 -11
  78. package/dist/contracts/part-registry.d.ts +5 -4
  79. package/dist/contracts/part-registry.js +5 -0
  80. package/dist/contracts/profile-vocabulary.d.ts +11 -10
  81. package/dist/contracts/profile-vocabulary.js +10 -3
  82. package/dist/contracts/report-blocks.d.ts +329 -329
  83. package/dist/contracts/report-reference.d.ts +105 -81
  84. package/dist/contracts/report-reference.js +30 -13
  85. package/dist/contracts/schemas/chat-events.d.ts +30 -16
  86. package/dist/contracts/schemas/chat-events.js +15 -6
  87. package/dist/contracts/schemas/chat-parts.d.ts +175 -102
  88. package/dist/contracts/schemas/chat-parts.js +33 -7
  89. package/dist/contracts/severity.d.ts +1 -1
  90. package/dist/contracts/structure-source.d.ts +3 -3
  91. package/dist/contracts/structure-source.js +6 -2
  92. package/dist/contracts/subagent-activity.d.ts +2 -2
  93. package/dist/contracts/subagent-activity.js +5 -3
  94. package/dist/contracts/usage.d.ts +2 -2
  95. package/dist/data/safety-panel-schema.d.ts +25 -25
  96. package/dist/data/safety-panel-schema.js +13 -4
  97. package/dist/execution/artifact-metadata.d.ts +23 -15
  98. package/dist/execution/artifact-metadata.js +33 -10
  99. package/dist/execution/artifact-record.d.ts +2 -2
  100. package/dist/execution/artifact-registration.d.ts +5 -5
  101. package/dist/execution/artifact-registry.d.ts +8 -8
  102. package/dist/execution/dbos-run-launcher.d.ts +24 -4
  103. package/dist/execution/dbos-run-launcher.js +58 -4
  104. package/dist/execution/dbos-workflow-purger.d.ts +5 -6
  105. package/dist/execution/dbos-workflow-purger.js +8 -7
  106. package/dist/execution/input-signature.d.ts +2 -2
  107. package/dist/execution/post-step-pipeline.d.ts +9 -9
  108. package/dist/execution/post-step-pipeline.js +1 -1
  109. package/dist/execution/post-step.js +2 -2
  110. package/dist/execution/reconcile-manifest.d.ts +4 -4
  111. package/dist/execution/reconcile-manifest.js +3 -2
  112. package/dist/execution/run-authorizer.d.ts +46 -37
  113. package/dist/execution/run-authorizer.js +8 -8
  114. package/dist/execution/run-canceler.d.ts +7 -7
  115. package/dist/execution/run-canceler.js +14 -7
  116. package/dist/execution/run-end-record.d.ts +2 -3
  117. package/dist/execution/run-event-parts.d.ts +0 -8
  118. package/dist/execution/run-event-parts.js +29 -24
  119. package/dist/execution/run-event-stream.d.ts +8 -8
  120. package/dist/execution/run-event-stream.js +3 -4
  121. package/dist/execution/run-launcher.d.ts +4 -4
  122. package/dist/execution/run-synthesis.d.ts +49 -48
  123. package/dist/execution/run-synthesis.js +96 -255
  124. package/dist/execution/staged-input.d.ts +2 -2
  125. package/dist/execution/step-summary.d.ts +6 -6
  126. package/dist/execution/step-summary.js +4 -8
  127. package/dist/execution/topo-sort.js +4 -3
  128. package/dist/execution/workflow-purger.d.ts +2 -2
  129. package/dist/index.d.ts +17 -20
  130. package/dist/index.js +25 -36
  131. package/dist/input-sanitization.js +9 -2
  132. package/dist/input-scan/clustering.d.ts +6 -6
  133. package/dist/input-scan/clustering.js +11 -5
  134. package/dist/input-scan/companions.js +3 -2
  135. package/dist/input-scan/detect-sets.d.ts +2 -2
  136. package/dist/input-scan/detect-sets.js +25 -21
  137. package/dist/input-scan/enrich.d.ts +6 -6
  138. package/dist/input-scan/enrich.js +29 -12
  139. package/dist/input-scan/formats.d.ts +2 -2
  140. package/dist/input-scan/formats.js +8 -2
  141. package/dist/input-scan/markers.d.ts +2 -2
  142. package/dist/input-scan/markers.js +14 -5
  143. package/dist/input-scan/menu.d.ts +10 -10
  144. package/dist/input-scan/menu.js +0 -0
  145. package/dist/input-scan/quarantine.d.ts +2 -2
  146. package/dist/input-scan/quarantine.js +23 -18
  147. package/dist/input-scan/readout-budget.d.ts +2 -2
  148. package/dist/input-scan/readout-budget.js +1 -1
  149. package/dist/input-scan/readout.d.ts +2 -2
  150. package/dist/input-scan/readout.js +47 -34
  151. package/dist/input-scan/scan.d.ts +2 -2
  152. package/dist/input-scan/scan.js +7 -5
  153. package/dist/input-scan/set-types.d.ts +28 -28
  154. package/dist/input-scan/shapes.d.ts +4 -4
  155. package/dist/input-scan/shapes.js +0 -0
  156. package/dist/input-scan/templates.d.ts +10 -10
  157. package/dist/input-scan/templates.js +30 -22
  158. package/dist/input-scan/tokens.d.ts +6 -4
  159. package/dist/input-scan/tokens.js +100 -38
  160. package/dist/input-scan/types.d.ts +22 -22
  161. package/dist/lib/async-utils.d.ts +3 -7
  162. package/dist/lib/async-utils.js +5 -9
  163. package/dist/lib/cache.js +1 -1
  164. package/dist/lib/chrome.d.ts +46 -6
  165. package/dist/lib/console-logger.js +2 -2
  166. package/dist/lib/db-result.d.ts +22 -6
  167. package/dist/lib/db-result.js +9 -13
  168. package/dist/lib/eyes.d.ts +4 -4
  169. package/dist/lib/eyes.js +1 -1
  170. package/dist/lib/fs-helpers.js +18 -6
  171. package/dist/lib/fs-result.d.ts +1 -0
  172. package/dist/lib/fs-result.js +5 -6
  173. package/dist/lib/hooks.d.ts +23 -7
  174. package/dist/lib/hooks.js +17 -3
  175. package/dist/lib/host-concurrency.js +3 -2
  176. package/dist/lib/logger.d.ts +2 -2
  177. package/dist/lib/logger.js +2 -1
  178. package/dist/lib/metrics.d.ts +1 -1
  179. package/dist/lib/null-proto.d.ts +6 -0
  180. package/dist/lib/null-proto.js +17 -0
  181. package/dist/lib/otel-spans.d.ts +1 -1
  182. package/dist/lib/otel-spans.js +9 -5
  183. package/dist/lib/otel.d.ts +4 -2
  184. package/dist/lib/otel.js +10 -2
  185. package/dist/lib/page-capture.d.ts +8 -8
  186. package/dist/lib/page-capture.js +9 -4
  187. package/dist/lib/parse-json.d.ts +5 -0
  188. package/dist/lib/parse-json.js +12 -0
  189. package/dist/lib/present.d.ts +12 -0
  190. package/dist/lib/present.js +39 -0
  191. package/dist/lib/rate-limit.d.ts +4 -4
  192. package/dist/lib/rate-limit.js +12 -13
  193. package/dist/lib/regulatory-corpus/fetch-fda-guidance.d.ts +4 -4
  194. package/dist/lib/regulatory-corpus/fetch-fda-guidance.js +4 -10
  195. package/dist/lib/regulatory-corpus/fetch-ich.d.ts +4 -4
  196. package/dist/lib/regulatory-corpus/fetch-ich.js +18 -14
  197. package/dist/lib/regulatory-corpus/normalize-whitespace.d.ts +6 -0
  198. package/dist/lib/regulatory-corpus/normalize-whitespace.js +41 -0
  199. package/dist/lib/regulatory-corpus.d.ts +10 -10
  200. package/dist/lib/regulatory-corpus.js +3 -1
  201. package/dist/lib/result.d.ts +10 -11
  202. package/dist/lib/result.js +15 -13
  203. package/dist/lib/storage.d.ts +2 -2
  204. package/dist/lib/test/async-iterable.d.ts +9 -0
  205. package/dist/lib/test/async-iterable.js +28 -0
  206. package/dist/lib/test/request-url.d.ts +5 -0
  207. package/dist/lib/test/request-url.js +7 -0
  208. package/dist/lib/test/result-assert.d.ts +12 -0
  209. package/dist/lib/test/result-assert.js +17 -0
  210. package/dist/lib/test/text-shapes.d.ts +24 -0
  211. package/dist/lib/test/text-shapes.js +63 -0
  212. package/dist/lib/text.d.ts +22 -0
  213. package/dist/lib/text.js +68 -0
  214. package/dist/lib/thrown.d.ts +18 -0
  215. package/dist/lib/thrown.js +30 -0
  216. package/dist/lib/unknown-array.d.ts +6 -0
  217. package/dist/lib/unknown-array.js +8 -0
  218. package/dist/lib/unknown-containers.d.ts +14 -0
  219. package/dist/lib/unknown-containers.js +17 -0
  220. package/dist/lib/unknown-text.d.ts +8 -0
  221. package/dist/lib/unknown-text.js +28 -0
  222. package/dist/lib/zod-issue-shape.d.ts +1 -1
  223. package/dist/lib/zod-issue-shape.js +31 -31
  224. package/dist/lib/zod-issues.d.ts +3 -3
  225. package/dist/lib/zod-issues.js +30 -17
  226. package/dist/literature/sources/arxiv.d.ts +6 -6
  227. package/dist/literature/sources/arxiv.js +92 -35
  228. package/dist/literature/sources/http.d.ts +2 -2
  229. package/dist/literature/sources/http.js +16 -15
  230. package/dist/literature/sources/pubmed.d.ts +16 -16
  231. package/dist/literature/sources/pubmed.js +96 -61
  232. package/dist/literature/sources/semantic-scholar.d.ts +8 -8
  233. package/dist/literature/sources/semantic-scholar.js +22 -13
  234. package/dist/loop/accounting.d.ts +63 -0
  235. package/dist/loop/accounting.js +141 -0
  236. package/dist/loop/call-policy.d.ts +73 -0
  237. package/dist/loop/call-policy.js +109 -0
  238. package/dist/loop/chat-stream.d.ts +62 -0
  239. package/dist/loop/chat-stream.js +237 -0
  240. package/dist/loop/compaction.d.ts +9 -9
  241. package/dist/loop/compaction.js +1 -1
  242. package/dist/loop/metrics.d.ts +12 -15
  243. package/dist/loop/metrics.js +14 -26
  244. package/dist/loop/run-loop.d.ts +233 -0
  245. package/dist/loop/run-loop.js +770 -0
  246. package/dist/loop/sub-agent.d.ts +61 -0
  247. package/dist/loop/sub-agent.js +161 -0
  248. package/dist/loop/tool-adapter.d.ts +98 -0
  249. package/dist/loop/tool-adapter.js +364 -0
  250. package/dist/loop/tool-detail.d.ts +1 -1
  251. package/dist/loop/tool-detail.js +6 -5
  252. package/dist/loop/tool-outcome.d.ts +1 -1
  253. package/dist/loop/tool-output.d.ts +4 -4
  254. package/dist/loop/tool-output.js +2 -2
  255. package/dist/loop/turn-credentials.d.ts +34 -0
  256. package/dist/loop/turn-credentials.js +73 -0
  257. package/dist/loop/types.d.ts +29 -38
  258. package/dist/loop/types.js +2 -7
  259. package/dist/memory/ai-sdk-message-storage.d.ts +5 -5
  260. package/dist/memory/ai-sdk-message-storage.js +13 -11
  261. package/dist/memory/card-builders.d.ts +14 -14
  262. package/dist/memory/card-builders.js +19 -15
  263. package/dist/memory/conversation-display-recorder.d.ts +22 -4
  264. package/dist/memory/conversation-display-recorder.js +43 -24
  265. package/dist/memory/conversation-display-replay.js +3 -2
  266. package/dist/memory/conversation-display-storage.d.ts +15 -7
  267. package/dist/memory/conversation-display-storage.js +141 -36
  268. package/dist/memory/conversation-view.d.ts +4 -4
  269. package/dist/memory/conversation-view.js +5 -4
  270. package/dist/memory/count-tokens.js +10 -8
  271. package/dist/memory/derive-thread-title.d.ts +0 -13
  272. package/dist/memory/derive-thread-title.js +2 -1
  273. package/dist/memory/message-backfill.d.ts +12 -5
  274. package/dist/memory/message-backfill.js +5 -3
  275. package/dist/memory/thread-history.d.ts +36 -21
  276. package/dist/memory/thread-history.js +78 -54
  277. package/dist/memory/thread-store.d.ts +26 -17
  278. package/dist/memory/thread-store.js +15 -9
  279. package/dist/memory/tool-call-integrity.d.ts +2 -2
  280. package/dist/memory/tool-call-integrity.js +4 -3
  281. package/dist/memory/working-memory.d.ts +16 -12
  282. package/dist/memory/working-memory.js +72 -61
  283. package/dist/prompts/briefing.d.ts +12 -12
  284. package/dist/prompts/briefing.js +1 -1
  285. package/dist/prompts/synthesis-agent.d.ts +1 -1
  286. package/dist/prompts/synthesis-agent.js +6 -14
  287. package/dist/provenance/collector.d.ts +6 -6
  288. package/dist/provenance/collector.js +15 -8
  289. package/dist/provenance/exec-frame.d.ts +2 -2
  290. package/dist/provenance/exec-frame.js +6 -1
  291. package/dist/provenance/seam.d.ts +1 -4
  292. package/dist/provenance/types.d.ts +6 -6
  293. package/dist/providers/ai-sdk.d.ts +113 -62
  294. package/dist/providers/ai-sdk.js +283 -518
  295. package/dist/providers/embedding.d.ts +2 -2
  296. package/dist/providers/embedding.js +1 -1
  297. package/dist/providers/errors.d.ts +22 -2
  298. package/dist/providers/errors.js +98 -50
  299. package/dist/providers/prompt-cache.d.ts +8 -8
  300. package/dist/providers/prompt-cache.js +13 -11
  301. package/dist/providers/reasoning.d.ts +2 -2
  302. package/dist/providers/reasoning.js +2 -2
  303. package/dist/providers/types.d.ts +55 -94
  304. package/dist/reference-data/catalog.d.ts +2 -15
  305. package/dist/reference-data/catalog.js +25 -8
  306. package/dist/reference-data/receipt.d.ts +2 -2
  307. package/dist/report-model/assert-rules.js +1 -1
  308. package/dist/report-model/authoring-grammar.d.ts +211 -233
  309. package/dist/report-model/block-walk.d.ts +10 -10
  310. package/dist/report-model/block-walk.js +2 -0
  311. package/dist/report-model/draft-finish.d.ts +8 -8
  312. package/dist/report-model/draft-finish.js +1 -1
  313. package/dist/report-model/draft-hash.js +8 -7
  314. package/dist/report-model/draft-operations.d.ts +22 -10
  315. package/dist/report-model/draft-operations.js +48 -30
  316. package/dist/report-model/draft-read.d.ts +19 -7
  317. package/dist/report-model/draft-read.js +16 -6
  318. package/dist/report-model/draft.d.ts +844 -2
  319. package/dist/report-model/draft.js +3 -1
  320. package/dist/report-model/fixture-resolver.js +39 -16
  321. package/dist/report-model/pin-snapshot.d.ts +2 -2
  322. package/dist/report-model/pin-snapshot.js +15 -15
  323. package/dist/report-model/production-resolver.d.ts +18 -18
  324. package/dist/report-model/production-resolver.js +50 -42
  325. package/dist/report-model/reference-resolver.d.ts +26 -10
  326. package/dist/report-model/reference-resolver.js +68 -5
  327. package/dist/report-model/reference-stamp.js +30 -38
  328. package/dist/report-model/structural-validation.js +12 -4
  329. package/dist/report-model/validate.d.ts +7 -7
  330. package/dist/report-model/validate.js +6 -6
  331. package/dist/report-render/assets.d.ts +2 -2
  332. package/dist/report-render/assets.js +27 -3
  333. package/dist/report-render/chart-export.d.ts +10 -2
  334. package/dist/report-render/chart-export.js +37 -11
  335. package/dist/report-render/chart-presets.d.ts +8 -8
  336. package/dist/report-render/chart-presets.js +3 -3
  337. package/dist/report-render/chart-renderers.d.ts +23 -16
  338. package/dist/report-render/chart-renderers.js +74 -53
  339. package/dist/report-render/chart-toolbox.d.ts +2 -2
  340. package/dist/report-render/chart-toolbox.js +7 -6
  341. package/dist/report-render/chart.d.ts +15 -16
  342. package/dist/report-render/chart.js +369 -252
  343. package/dist/report-render/design.d.ts +36 -297
  344. package/dist/report-render/design.js +0 -12
  345. package/dist/report-render/figures/common.d.ts +12 -12
  346. package/dist/report-render/figures/common.js +42 -31
  347. package/dist/report-render/figures/dendrogram.d.ts +3 -3
  348. package/dist/report-render/figures/dendrogram.js +10 -10
  349. package/dist/report-render/figures/dense.js +15 -8
  350. package/dist/report-render/figures/dotplot.js +46 -33
  351. package/dist/report-render/figures/embedding.js +52 -43
  352. package/dist/report-render/figures/equal-units.d.ts +10 -10
  353. package/dist/report-render/figures/equal-units.js +27 -27
  354. package/dist/report-render/figures/forest.js +9 -7
  355. package/dist/report-render/figures/gsea.js +21 -11
  356. package/dist/report-render/figures/heatmap.js +13 -9
  357. package/dist/report-render/figures/index.d.ts +10 -10
  358. package/dist/report-render/figures/index.js +4 -2
  359. package/dist/report-render/figures/km.js +10 -9
  360. package/dist/report-render/figures/label-room.d.ts +12 -12
  361. package/dist/report-render/figures/label-room.js +7 -2
  362. package/dist/report-render/figures/locuszoom.d.ts +2 -2
  363. package/dist/report-render/figures/locuszoom.js +59 -31
  364. package/dist/report-render/figures/lollipop.js +3 -2
  365. package/dist/report-render/figures/ma.js +8 -4
  366. package/dist/report-render/figures/manhattan.d.ts +1 -2
  367. package/dist/report-render/figures/manhattan.js +52 -34
  368. package/dist/report-render/figures/oncoprint.js +4 -5
  369. package/dist/report-render/figures/pca.js +25 -11
  370. package/dist/report-render/figures/qq.js +20 -9
  371. package/dist/report-render/figures/roc.js +1 -1
  372. package/dist/report-render/figures/sankey.d.ts +2 -2
  373. package/dist/report-render/figures/sankey.js +11 -10
  374. package/dist/report-render/figures/upset.d.ts +6 -6
  375. package/dist/report-render/figures/upset.js +7 -4
  376. package/dist/report-render/figures/volcano.js +12 -10
  377. package/dist/report-render/hybrid-svg.d.ts +4 -4
  378. package/dist/report-render/hybrid-svg.js +7 -5
  379. package/dist/report-render/number-format.d.ts +4 -4
  380. package/dist/report-render/number-format.js +62 -27
  381. package/dist/report-render/page.js +2 -1
  382. package/dist/report-render/provenance-data.d.ts +2 -2
  383. package/dist/report-render/references.d.ts +4 -4
  384. package/dist/report-render/render.d.ts +2 -2
  385. package/dist/report-render/render.js +10 -11
  386. package/dist/report-render/script-json.js +1 -1
  387. package/dist/report-render/table-data.d.ts +6 -6
  388. package/dist/report-render/test/options.d.ts +49 -0
  389. package/dist/report-render/test/options.js +143 -0
  390. package/dist/report-render/test/page-function.d.ts +19 -0
  391. package/dist/report-render/test/page-function.js +33 -0
  392. package/dist/report-render/types.d.ts +10 -10
  393. package/dist/report-render/value-bridge.d.ts +4 -4
  394. package/dist/report-render/value-bridge.js +27 -14
  395. package/dist/report-render/views/chart-view.d.ts +2 -2
  396. package/dist/report-render/views/chart-view.js +2 -2
  397. package/dist/report-render/views/lineage.d.ts +6 -6
  398. package/dist/report-render/views/lineage.js +2 -0
  399. package/dist/report-render/views/page-view.d.ts +2 -2
  400. package/dist/report-render/views/page-view.js +1 -0
  401. package/dist/report-render/views/prose.js +25 -8
  402. package/dist/report-render/views/references-view.js +12 -1
  403. package/dist/report-render/views/values.js +1 -1
  404. package/dist/runtime/assemble.d.ts +53 -26
  405. package/dist/runtime/assemble.js +103 -56
  406. package/dist/runtime/boot.d.ts +8 -7
  407. package/dist/runtime/boot.js +1 -1
  408. package/dist/runtime/connection-budget.d.ts +6 -6
  409. package/dist/runtime/connection-budget.js +1 -1
  410. package/dist/runtime/dbos.d.ts +29 -19
  411. package/dist/runtime/dbos.js +35 -20
  412. package/dist/runtime/result-serialization.js +18 -5
  413. package/dist/runtime/shutdown.d.ts +2 -2
  414. package/dist/sandbox/client.d.ts +7 -3
  415. package/dist/sandbox/cpu-files.d.ts +2 -2
  416. package/dist/sandbox/cpu-files.js +21 -4
  417. package/dist/sandbox/create-sandbox.d.ts +7 -8
  418. package/dist/sandbox/create-sandbox.js +6 -12
  419. package/dist/sandbox/docker-client.d.ts +48 -3
  420. package/dist/sandbox/docker-client.js +10 -6
  421. package/dist/sandbox/estimate-data-profile-resources.js +2 -7
  422. package/dist/sandbox/exec-outcome.d.ts +2 -2
  423. package/dist/sandbox/exec-outcome.js +1 -1
  424. package/dist/sandbox/exec.d.ts +10 -6
  425. package/dist/sandbox/exec.js +27 -12
  426. package/dist/sandbox/execution-id.js +14 -6
  427. package/dist/sandbox/farm.d.ts +2 -2
  428. package/dist/sandbox/farm.js +22 -27
  429. package/dist/sandbox/identity.d.ts +7 -0
  430. package/dist/sandbox/identity.js +14 -3
  431. package/dist/sandbox/image-packages.js +15 -27
  432. package/dist/sandbox/k8s-client.d.ts +35 -8
  433. package/dist/sandbox/k8s-client.js +6 -5
  434. package/dist/sandbox/labels.js +1 -0
  435. package/dist/sandbox/liveness.js +3 -1
  436. package/dist/sandbox/mount-plan.d.ts +10 -10
  437. package/dist/sandbox/mount-plan.js +13 -14
  438. package/dist/sandbox/notification-sweep.d.ts +4 -4
  439. package/dist/sandbox/notification-sweep.js +4 -7
  440. package/dist/sandbox/package-identity.d.ts +6 -13
  441. package/dist/sandbox/package-identity.js +46 -28
  442. package/dist/sandbox/reaper.d.ts +10 -10
  443. package/dist/sandbox/reaper.js +4 -6
  444. package/dist/sandbox/sandbox-error.d.ts +2 -9
  445. package/dist/sandbox/sandbox-error.js +21 -8
  446. package/dist/sandbox/sandbox-step-translate.d.ts +8 -5
  447. package/dist/sandbox/sandbox-step-translate.js +22 -8
  448. package/dist/sandbox/step-sandbox.d.ts +47 -0
  449. package/dist/sandbox/step-sandbox.js +53 -0
  450. package/dist/sandbox/types.d.ts +18 -19
  451. package/dist/sandbox/types.js +1 -1
  452. package/dist/schemas/artifact-manifest.d.ts +4 -4
  453. package/dist/schemas/data-profile-schemas.d.ts +343 -298
  454. package/dist/schemas/file-metadata.js +2 -4
  455. package/dist/schemas/plan-schemas.d.ts +31 -31
  456. package/dist/schemas/run-synthesis.d.ts +95 -26
  457. package/dist/schemas/run-synthesis.js +3 -1
  458. package/dist/schemas/validate-plan.d.ts +4 -4
  459. package/dist/schemas/validate-plan.js +17 -5
  460. package/dist/schemas/workflow-state.d.ts +19 -19
  461. package/dist/schemas/workflow-state.js +2 -2
  462. package/dist/state/active-turns.d.ts +36 -0
  463. package/dist/state/active-turns.js +67 -0
  464. package/dist/state/analyses-metrics.d.ts +8 -8
  465. package/dist/state/analyses-metrics.js +4 -4
  466. package/dist/state/analyses.d.ts +0 -14
  467. package/dist/state/analyses.js +0 -32
  468. package/dist/state/artifacts.d.ts +32 -19
  469. package/dist/state/artifacts.js +28 -5
  470. package/dist/state/data-profile.d.ts +2 -2
  471. package/dist/state/db.d.ts +12 -2
  472. package/dist/state/db.js +5 -0
  473. package/dist/state/edit-intents.d.ts +4 -0
  474. package/dist/state/edit-intents.js +71 -0
  475. package/dist/state/index.d.ts +4 -4
  476. package/dist/state/index.js +2 -2
  477. package/dist/state/init.d.ts +2 -1
  478. package/dist/state/init.js +5 -2
  479. package/dist/state/migrations/20260927120000_baseline.js +3 -1
  480. package/dist/state/migrations/20261026120000_add_the_edit_intents.d.ts +7 -0
  481. package/dist/state/migrations/20261026120000_add_the_edit_intents.js +21 -0
  482. package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.d.ts +7 -0
  483. package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.js +16 -0
  484. package/dist/state/migrations/20261027120100_store_the_authoring_results.d.ts +8 -0
  485. package/dist/state/migrations/20261027120100_store_the_authoring_results.js +20 -0
  486. package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.d.ts +7 -0
  487. package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.js +12 -0
  488. package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.d.ts +7 -0
  489. package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.js +11 -0
  490. package/dist/state/migrations/20261028120000_record_the_paused_work.d.ts +7 -0
  491. package/dist/state/migrations/20261028120000_record_the_paused_work.js +25 -0
  492. package/dist/state/migrations/20261028120100_end_the_suspended_runs.d.ts +8 -0
  493. package/dist/state/migrations/20261028120100_end_the_suspended_runs.js +13 -0
  494. package/dist/state/migrations/20261029120000_reference_the_run_mandate.d.ts +7 -0
  495. package/dist/state/migrations/20261029120000_reference_the_run_mandate.js +23 -0
  496. package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.d.ts +7 -0
  497. package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.js +11 -0
  498. package/dist/state/migrations/index.js +18 -0
  499. package/dist/state/paused-work.d.ts +52 -0
  500. package/dist/state/paused-work.js +105 -0
  501. package/dist/state/plans.d.ts +27 -8
  502. package/dist/state/plans.js +14 -11
  503. package/dist/state/purge-analysis.d.ts +6 -6
  504. package/dist/state/purge-analysis.js +10 -2
  505. package/dist/state/report-session-state.d.ts +43 -18
  506. package/dist/state/report-session-state.js +43 -4
  507. package/dist/state/report-versions.d.ts +16 -11
  508. package/dist/state/report-versions.js +5 -3
  509. package/dist/state/runs.d.ts +30 -19
  510. package/dist/state/runs.js +43 -51
  511. package/dist/state/schema.d.ts +18 -21
  512. package/dist/state/schema.js +4 -5
  513. package/dist/state/snapshot-parse.d.ts +2 -2
  514. package/dist/state/snapshot-parse.js +14 -8
  515. package/dist/state/step-executions.d.ts +20 -8
  516. package/dist/state/step-executions.js +6 -4
  517. package/dist/state/tool-outputs.d.ts +2 -2
  518. package/dist/state/tool-outputs.js +2 -1
  519. package/dist/state/vector-store.d.ts +16 -16
  520. package/dist/state/vector-store.js +11 -7
  521. package/dist/tasks/data-profile-absorb.d.ts +3 -3
  522. package/dist/tasks/data-profile-absorb.js +21 -16
  523. package/dist/tasks/data-profile-activity.d.ts +5 -5
  524. package/dist/tasks/data-profile-activity.js +5 -5
  525. package/dist/tasks/data-profile-index.d.ts +4 -4
  526. package/dist/tasks/data-profile-index.js +32 -17
  527. package/dist/tasks/data-profile-resolve.d.ts +8 -8
  528. package/dist/tasks/data-profile-resolve.js +88 -62
  529. package/dist/tasks/data-profile.d.ts +40 -31
  530. package/dist/tasks/data-profile.js +138 -95
  531. package/dist/tasks/extract-values.d.ts +26 -79
  532. package/dist/tasks/extract-values.js +48 -108
  533. package/dist/tasks/refresh-regulatory-corpus.d.ts +4 -20
  534. package/dist/tasks/refresh-regulatory-corpus.js +12 -8
  535. package/dist/tasks/regulatory-corpus-boot-refresh.d.ts +2 -2
  536. package/dist/tasks/regulatory-corpus-boot-refresh.js +12 -10
  537. package/dist/testing.d.ts +60 -0
  538. package/dist/testing.js +96 -0
  539. package/dist/tools/ad-hoc-router.d.ts +9 -9
  540. package/dist/tools/ad-hoc-router.js +65 -52
  541. package/dist/tools/analysis-invocation.d.ts +7 -0
  542. package/dist/tools/analysis-invocation.js +29 -5
  543. package/dist/tools/approval/contract.d.ts +8 -52
  544. package/dist/tools/approval/contract.js +7 -36
  545. package/dist/tools/approval/gateway.d.ts +27 -28
  546. package/dist/tools/approval/gateway.js +33 -130
  547. package/dist/tools/approval/queries.d.ts +6 -11
  548. package/dist/tools/approval/queries.js +43 -29
  549. package/dist/tools/approval/uuidv7.js +2 -2
  550. package/dist/tools/bio/chembl.d.ts +3 -3
  551. package/dist/tools/bio/chembl.js +10 -0
  552. package/dist/tools/bio/comptox.d.ts +25 -8
  553. package/dist/tools/bio/comptox.js +4 -2
  554. package/dist/tools/bio/drug-gene-interactions.d.ts +27 -17
  555. package/dist/tools/bio/drug-gene-interactions.js +11 -8
  556. package/dist/tools/bio/gene-disease-evidence.d.ts +61 -15
  557. package/dist/tools/bio/gene-disease-evidence.js +10 -6
  558. package/dist/tools/bio/gene-preclinical-profile.d.ts +11 -11
  559. package/dist/tools/bio/keys.d.ts +2 -2
  560. package/dist/tools/bio/keys.js +3 -3
  561. package/dist/tools/bio/lookup-annotation.d.ts +5 -5
  562. package/dist/tools/bio/lookup-annotation.js +3 -0
  563. package/dist/tools/bio/opentargets.d.ts +1 -1
  564. package/dist/tools/bio/opentargets.js +6 -0
  565. package/dist/tools/bio/pubchem.d.ts +2 -2
  566. package/dist/tools/bio/pubchem.js +6 -0
  567. package/dist/tools/bio/pubmed.d.ts +26 -16
  568. package/dist/tools/bio/pubmed.js +9 -3
  569. package/dist/tools/bio/search-clinical-trials.d.ts +4 -4
  570. package/dist/tools/bio/search-clinical-trials.js +5 -1
  571. package/dist/tools/bio/search-faers.d.ts +2 -2
  572. package/dist/tools/bio/search-faers.js +1 -1
  573. package/dist/tools/bio/search-gene.d.ts +2 -2
  574. package/dist/tools/bio/search-gene.js +1 -0
  575. package/dist/tools/bio/search-geo-datasets.d.ts +4 -4
  576. package/dist/tools/bio/search-geo-datasets.js +5 -5
  577. package/dist/tools/bio/search-interactions.d.ts +1 -1
  578. package/dist/tools/bio/search-patents.d.ts +28 -22
  579. package/dist/tools/bio/search-patents.js +20 -17
  580. package/dist/tools/bio/search-protein.d.ts +2 -2
  581. package/dist/tools/bio/search-protein.js +1 -1
  582. package/dist/tools/bio/search-regulatory-approvals.d.ts +64 -18
  583. package/dist/tools/bio/search-regulatory-approvals.js +21 -16
  584. package/dist/tools/bio/target-safety.d.ts +8 -8
  585. package/dist/tools/bio/target-safety.js +11 -6
  586. package/dist/tools/capability-data.d.ts +9 -5
  587. package/dist/tools/capability-data.js +2 -1
  588. package/dist/tools/define-tool.d.ts +55 -46
  589. package/dist/tools/define-tool.js +39 -27
  590. package/dist/tools/display/normalize-echart-spec.d.ts +2 -2
  591. package/dist/tools/display/normalize-echart-spec.js +51 -27
  592. package/dist/tools/display/show-user.d.ts +2 -2
  593. package/dist/tools/display/show-user.js +1 -1
  594. package/dist/tools/execute-analysis.d.ts +19 -10
  595. package/dist/tools/execute-analysis.js +83 -62
  596. package/dist/tools/knowledge/check.d.ts +166 -44
  597. package/dist/tools/knowledge/check.js +5 -3
  598. package/dist/tools/knowledge/client.d.ts +31 -62
  599. package/dist/tools/knowledge/client.js +44 -27
  600. package/dist/tools/knowledge/environment.d.ts +6 -6
  601. package/dist/tools/knowledge/environment.js +18 -7
  602. package/dist/tools/knowledge/index.d.ts +2 -2
  603. package/dist/tools/knowledge/index.js +9 -9
  604. package/dist/tools/knowledge/local-slots.d.ts +4 -4
  605. package/dist/tools/knowledge/local-slots.js +11 -4
  606. package/dist/tools/knowledge/pin.d.ts +2 -2
  607. package/dist/tools/knowledge/recommend.d.ts +20 -45
  608. package/dist/tools/knowledge/recommend.js +27 -19
  609. package/dist/tools/knowledge/situation.d.ts +40 -40
  610. package/dist/tools/knowledge/situation.js +2 -9
  611. package/dist/tools/knowledge/skeleton.d.ts +4 -4
  612. package/dist/tools/knowledge/skeleton.js +10 -11
  613. package/dist/tools/knowledge/template.d.ts +20 -18
  614. package/dist/tools/knowledge/template.js +38 -32
  615. package/dist/tools/lib/alphafold-client.js +2 -1
  616. package/dist/tools/lib/amass-client.d.ts +28 -28
  617. package/dist/tools/lib/amass-client.js +20 -10
  618. package/dist/tools/lib/api-utils.d.ts +13 -3
  619. package/dist/tools/lib/api-utils.js +17 -3
  620. package/dist/tools/lib/bgee-client.d.ts +6 -6
  621. package/dist/tools/lib/bgee-client.js +16 -10
  622. package/dist/tools/lib/cbioportal-client.d.ts +4 -4
  623. package/dist/tools/lib/cbioportal-client.js +9 -8
  624. package/dist/tools/lib/chembl-client.d.ts +14 -14
  625. package/dist/tools/lib/chembl-client.js +11 -4
  626. package/dist/tools/lib/clinical-benchmarks-client.d.ts +4 -4
  627. package/dist/tools/lib/clinical-benchmarks-client.js +4 -7
  628. package/dist/tools/lib/clinical-trials-client.d.ts +18 -18
  629. package/dist/tools/lib/clinical-trials-client.js +10 -10
  630. package/dist/tools/lib/clinvar-client.d.ts +2 -2
  631. package/dist/tools/lib/clinvar-client.js +6 -6
  632. package/dist/tools/lib/ctx-ops.d.ts +23 -23
  633. package/dist/tools/lib/ctx-ops.js +13 -10
  634. package/dist/tools/lib/dgidb-client.d.ts +6 -6
  635. package/dist/tools/lib/dgidb-client.js +10 -12
  636. package/dist/tools/lib/disgenet-client.d.ts +4 -4
  637. package/dist/tools/lib/ema-client.d.ts +2 -2
  638. package/dist/tools/lib/ensembl-client.d.ts +4 -4
  639. package/dist/tools/lib/ensembl-client.js +5 -4
  640. package/dist/tools/lib/gwas-catalog-client.d.ts +4 -4
  641. package/dist/tools/lib/gwas-catalog-client.js +17 -17
  642. package/dist/tools/lib/html-text.d.ts +6 -0
  643. package/dist/tools/lib/html-text.js +9 -0
  644. package/dist/tools/lib/identifier-resolver.d.ts +4 -4
  645. package/dist/tools/lib/identifier-resolver.js +7 -3
  646. package/dist/tools/lib/impc-client.d.ts +8 -8
  647. package/dist/tools/lib/impc-client.js +46 -35
  648. package/dist/tools/lib/iuphar-client.d.ts +2 -2
  649. package/dist/tools/lib/iuphar-client.js +7 -16
  650. package/dist/tools/lib/monarch-client.d.ts +4 -4
  651. package/dist/tools/lib/openfda-client.d.ts +22 -22
  652. package/dist/tools/lib/openfda-client.js +23 -22
  653. package/dist/tools/lib/opentargets-client.d.ts +12 -12
  654. package/dist/tools/lib/pathway-client.d.ts +4 -4
  655. package/dist/tools/lib/pathway-client.js +15 -19
  656. package/dist/tools/lib/pharmgkb-client.d.ts +2 -2
  657. package/dist/tools/lib/pharmgkb-client.js +1 -1
  658. package/dist/tools/lib/protein-family-modality.d.ts +2 -2
  659. package/dist/tools/lib/protein-family-modality.js +0 -2
  660. package/dist/tools/lib/protein-family-normalize.js +7 -0
  661. package/dist/tools/lib/pubchem-client.d.ts +2 -2
  662. package/dist/tools/lib/pubchem-client.js +1 -0
  663. package/dist/tools/lib/pubchem-ops.d.ts +4 -4
  664. package/dist/tools/lib/pubchem-ops.js +8 -0
  665. package/dist/tools/lib/pubmed-client.d.ts +9 -9
  666. package/dist/tools/lib/pubmed-client.js +1 -1
  667. package/dist/tools/lib/string-client.d.ts +6 -6
  668. package/dist/tools/lib/uniprot-client.d.ts +8 -8
  669. package/dist/tools/lib/uniprot-client.js +5 -1
  670. package/dist/tools/memory/update-working-memory.d.ts +16 -13
  671. package/dist/tools/memory/update-working-memory.js +21 -3
  672. package/dist/tools/read-tool-output.js +8 -2
  673. package/dist/tools/registry.d.ts +2 -2
  674. package/dist/tools/report-authoring/authoring-tools.d.ts +54 -23
  675. package/dist/tools/report-authoring/authoring-tools.js +128 -62
  676. package/dist/tools/report-session/derive-table.d.ts +19 -59
  677. package/dist/tools/report-session/derive-table.js +120 -122
  678. package/dist/tools/report-session/examine-page.d.ts +6 -6
  679. package/dist/tools/report-session/examine-page.js +14 -12
  680. package/dist/tools/report-session/list-artifacts.d.ts +6 -6
  681. package/dist/tools/report-session/list-artifacts.js +5 -5
  682. package/dist/tools/report-session/page-faults.d.ts +6 -6
  683. package/dist/tools/report-session/page-faults.js +3 -1
  684. package/dist/tools/report-session/preview-report.d.ts +4 -3
  685. package/dist/tools/report-session/preview-report.js +26 -7
  686. package/dist/tools/report-session/record-version.d.ts +9 -4
  687. package/dist/tools/report-session/record-version.js +16 -9
  688. package/dist/tools/report-session/session-page-publisher.d.ts +6 -6
  689. package/dist/tools/research/generate-analogy-report.d.ts +14 -7
  690. package/dist/tools/research/generate-analogy-report.js +80 -76
  691. package/dist/tools/research/generate-plan.d.ts +16 -16
  692. package/dist/tools/research/generate-plan.js +410 -374
  693. package/dist/tools/research/guarded-address.js +3 -2
  694. package/dist/tools/research/inspect-data-profile.d.ts +27 -20
  695. package/dist/tools/research/inspect-data-profile.js +26 -25
  696. package/dist/tools/research/inspect-run.d.ts +54 -27
  697. package/dist/tools/research/inspect-run.js +50 -40
  698. package/dist/tools/research/literature-reviewer.d.ts +8 -7
  699. package/dist/tools/research/literature-reviewer.js +29 -28
  700. package/dist/tools/research/search-arxiv.d.ts +1 -1
  701. package/dist/tools/research/search-arxiv.js +1 -1
  702. package/dist/tools/research/search-github-repos.d.ts +10 -7
  703. package/dist/tools/research/search-github-repos.js +25 -22
  704. package/dist/tools/research/search-semantic-scholar.js +1 -1
  705. package/dist/tools/research/searxng-engine.d.ts +2 -2
  706. package/dist/tools/research/searxng-engine.js +6 -4
  707. package/dist/tools/research/web-fetch.d.ts +24 -21
  708. package/dist/tools/research/web-fetch.js +65 -74
  709. package/dist/tools/research/web-search.d.ts +26 -17
  710. package/dist/tools/research/web-search.js +26 -21
  711. package/dist/tools/sandbox/link-packages.d.ts +11 -7
  712. package/dist/tools/sandbox/link-packages.js +11 -8
  713. package/dist/tools/sandbox/list-available-packages.d.ts +17 -8
  714. package/dist/tools/sandbox/list-available-packages.js +31 -25
  715. package/dist/tools/sandbox/list-available-refs.d.ts +17 -14
  716. package/dist/tools/sandbox/list-available-refs.js +61 -36
  717. package/dist/tools/sandbox/report-blocker.d.ts +30 -37
  718. package/dist/tools/sandbox/report-blocker.js +23 -73
  719. package/dist/tools/sandbox/skills.d.ts +16 -12
  720. package/dist/tools/sandbox/skills.js +16 -12
  721. package/dist/tools/sandbox/submit-file-metadata.d.ts +12 -9
  722. package/dist/tools/sandbox/submit-file-metadata.js +18 -21
  723. package/dist/tools/start-report-session.d.ts +13 -5
  724. package/dist/tools/start-report-session.js +35 -8
  725. package/dist/tools/terminal-text.d.ts +5 -2
  726. package/dist/tools/terminal-text.js +35 -3
  727. package/dist/tools/workspace/decision-record.d.ts +4 -4
  728. package/dist/tools/workspace/decision-record.js +23 -13
  729. package/dist/tools/workspace/edit-file.d.ts +59 -20
  730. package/dist/tools/workspace/edit-file.js +81 -16
  731. package/dist/tools/workspace/execute-command.d.ts +15 -13
  732. package/dist/tools/workspace/execute-command.js +11 -9
  733. package/dist/tools/workspace/file-stat.d.ts +6 -3
  734. package/dist/tools/workspace/grep.d.ts +10 -7
  735. package/dist/tools/workspace/grep.js +9 -3
  736. package/dist/tools/workspace/list-files.d.ts +6 -3
  737. package/dist/tools/workspace/mutator.d.ts +28 -15
  738. package/dist/tools/workspace/mutator.js +107 -53
  739. package/dist/tools/workspace/read-file.d.ts +8 -5
  740. package/dist/tools/workspace/result-bounds.d.ts +5 -5
  741. package/dist/tools/workspace/result-bounds.js +4 -2
  742. package/dist/tools/workspace/run-exec.d.ts +2 -2
  743. package/dist/tools/workspace/run-exec.js +3 -3
  744. package/dist/tools/workspace/scan-inputs.d.ts +8 -5
  745. package/dist/tools/workspace/scan-inputs.js +17 -5
  746. package/dist/tools/workspace/show-file.d.ts +1 -1
  747. package/dist/tools/workspace/show-file.js +2 -1
  748. package/dist/tools/workspace/show-plan.d.ts +8 -5
  749. package/dist/tools/workspace/show-plan.js +9 -8
  750. package/dist/tools/workspace/workspace-search.d.ts +41 -13
  751. package/dist/tools/workspace/workspace-search.js +27 -14
  752. package/dist/tools/workspace/write-file.d.ts +9 -7
  753. package/dist/workflows/execute-analysis-scheduler.d.ts +9 -9
  754. package/dist/workflows/execute-analysis-scheduler.js +6 -3
  755. package/dist/workflows/execute-analysis.d.ts +46 -62
  756. package/dist/workflows/execute-analysis.js +137 -219
  757. package/dist/workflows/pause.d.ts +71 -0
  758. package/dist/workflows/pause.js +173 -0
  759. package/dist/workflows/sandbox-step.d.ts +38 -61
  760. package/dist/workflows/sandbox-step.js +99 -106
  761. package/dist/workflows/test/sql-writes.d.ts +21 -0
  762. package/dist/workflows/test/sql-writes.js +36 -0
  763. package/dist/workspace/filesystem.d.ts +6 -6
  764. package/dist/workspace/filesystem.js +10 -8
  765. package/dist/workspace/paths.d.ts +1 -1
  766. package/dist/workspace/paths.js +15 -4
  767. package/dist/workspace/search-config.d.ts +2 -2
  768. package/dist/workspace/search-config.js +1 -1
  769. package/package.json +21 -22
  770. package/dist/loop/call-guard.d.ts +0 -50
  771. package/dist/loop/call-guard.js +0 -90
  772. package/dist/loop/continue-agent.d.ts +0 -40
  773. package/dist/loop/continue-agent.js +0 -38
  774. package/dist/loop/genai-spans.d.ts +0 -47
  775. package/dist/loop/genai-spans.js +0 -134
  776. package/dist/loop/run-agent.d.ts +0 -245
  777. package/dist/loop/run-agent.js +0 -1124
  778. package/dist/loop/run-step.d.ts +0 -29
  779. package/dist/loop/run-step.js +0 -34
  780. package/dist/loop/run-to-terminal.d.ts +0 -66
  781. package/dist/loop/run-to-terminal.js +0 -93
  782. package/dist/loop/tool-mask.d.ts +0 -23
  783. package/dist/loop/tool-mask.js +0 -46
  784. package/dist/providers/streaming-chat.d.ts +0 -32
  785. package/dist/providers/streaming-chat.js +0 -91
  786. package/dist/tasks/derive-table-exec.d.ts +0 -54
  787. package/dist/tasks/derive-table-exec.js +0 -86
  788. package/dist/workflows/suspension.d.ts +0 -32
  789. package/dist/workflows/suspension.js +0 -38
@@ -80,7 +80,7 @@ function deriveForest(block, rows, context) {
80
80
  if (read.isErr())
81
81
  return err(read.error);
82
82
  const order = channelOrder(block.encoding?.y ?? columns.value.term);
83
- const ordered = orderCategories(context.blockId, read.value.length, (index) => read.value[index].term, read.value.map((entry) => entry.term), order, (index) => (order === undefined ? undefined : read.value[index].row[order.by]));
83
+ const ordered = orderCategories(context.blockId, read.value.length, (index) => read.value[index]?.term, read.value.map((entry) => entry.term), order, (index) => (order === undefined ? undefined : read.value[index]?.row[order.by]));
84
84
  if (ordered.isErr())
85
85
  return err(ordered.error);
86
86
  const byTerm = new Map(read.value.map((entry) => [String(entry.term), entry]));
@@ -154,10 +154,10 @@ function forestColumns(block, rows, context) {
154
154
  return ok({
155
155
  term: channelColumn(term),
156
156
  estimate: estimate.value,
157
- ...(optional.low !== undefined ? { low: optional.low } : {}),
158
- ...(optional.high !== undefined ? { high: optional.high } : {}),
159
- ...(optional.p !== undefined ? { p: optional.p } : {}),
160
- ...(optional.size !== undefined ? { size: optional.size } : {}),
157
+ low: optional.low,
158
+ high: optional.high,
159
+ p: optional.p,
160
+ size: optional.size,
161
161
  });
162
162
  }
163
163
  /**
@@ -313,8 +313,10 @@ export function termLines(term) {
313
313
  if (lines.length <= TERM_LINES)
314
314
  return lines.join("\n");
315
315
  const kept = lines.slice(0, TERM_LINES);
316
- const last = kept[TERM_LINES - 1];
317
- kept[TERM_LINES - 1] = `${last.length < TERM_LINE_CHARACTERS ? last : last.slice(0, TERM_LINE_CHARACTERS - 1)}…`;
316
+ const last = kept[kept.length - 1];
317
+ if (last === undefined)
318
+ return lines.join("\n");
319
+ kept[kept.length - 1] = `${last.length < TERM_LINE_CHARACTERS ? last : last.slice(0, TERM_LINE_CHARACTERS - 1)}…`;
318
320
  return kept.join("\n");
319
321
  }
320
322
  /** The estimated width in pixels of the widest text of one column at the page text size. */
@@ -17,10 +17,11 @@
17
17
  * (`drawnVertices`). The thinning keeps each vertex where the shape of a curve changes, thus the drawn line
18
18
  * follows the table.
19
19
  */
20
+ import { textOf } from "../../lib/unknown-text.js";
20
21
  import { err, ok } from "neverthrow";
21
22
  import { channelColumn, channelOrder, channelTransform } from "../../contracts/report-blocks.js";
22
23
  import { TOOLBOX_BAND_PX } from "../chart-toolbox.js";
23
- import { CHART_BODY_PX, GUIDE_LINE_WIDTH_PX, MUTED_CHART_COLOR } from "../design.js";
24
+ import { CHART_BODY_PX, CHART_INK, GUIDE_LINE_WIDTH_PX, MUTED_CHART_COLOR } from "../design.js";
24
25
  import { categoricalPalette, categoryName, chartProblem, columnPresent, firstAppearance, guideLine, guideMarkLine, statisticsGraphic, toNumber, valueAxis, valueAxisTitle, } from "./common.js";
25
26
  /**
26
27
  * The count of vertices that the thinning aims at for one curve, before it adds the vertices of shape.
@@ -83,9 +84,10 @@ function deriveGsea(block, rows, context) {
83
84
  return err(table.error);
84
85
  const { sets, metric } = table.value;
85
86
  const palette = categoricalPalette(sets.length);
86
- const colorOf = (index) => palette[index % palette.length];
87
+ const colorOf = (index) => palette[index % palette.length] ?? CHART_INK;
87
88
  const legendLines = sets.length > 1 ? sets.length : 0;
88
89
  const grids = panelGrids(legendLines);
90
+ const topPanel = grids[0];
89
91
  const range = rankRange(sets, metric);
90
92
  const metricTitle = valueAxisTitle(context.labels, columns.value.metric, METRIC_TITLE);
91
93
  const deviations = sets.map((set) => maximumDeviation(set.score));
@@ -117,7 +119,7 @@ function deriveGsea(block, rows, context) {
117
119
  { ...valueAxis("y", metricTitle), gridIndex: 2, splitNumber: 3 },
118
120
  ],
119
121
  series: [...top, ...middle, bottom],
120
- graphic: statisticsText(context, grids[0], corner),
122
+ graphic: topPanel === undefined ? [] : statisticsText(context, topPanel, corner),
121
123
  legend: legendLines > 0
122
124
  ? { data: sets.map((set) => set.name), orient: "vertical", left: percent(GRID_LEFT), bottom: 0, itemGap: LEGEND_GAP_PX }
123
125
  : { show: false },
@@ -154,7 +156,7 @@ function gseaColumns(encoding, rows, context) {
154
156
  score: column("y"),
155
157
  hit: column("hit"),
156
158
  metric: column("metric"),
157
- ...(encoding.group !== undefined ? { set: channelColumn(encoding.group) } : {}),
159
+ set: encoding.group === undefined ? undefined : channelColumn(encoding.group),
158
160
  });
159
161
  }
160
162
  /**
@@ -276,14 +278,22 @@ function drawnVertices(curve, kept) {
276
278
  }
277
279
  /** True when the curve turns at one inner vertex. */
278
280
  function turns(curve, index) {
279
- const before = curve[index].value - curve[index - 1].value;
280
- const after = curve[index + 1].value - curve[index].value;
281
- return before * after < 0;
281
+ const at = curve[index];
282
+ const before = curve[index - 1];
283
+ const after = curve[index + 1];
284
+ if (at === undefined || before === undefined || after === undefined)
285
+ return false;
286
+ return (at.value - before.value) * (after.value - at.value) < 0;
282
287
  }
283
288
  /** True when the sign of the curve changes between one inner vertex and a neighbor. */
284
289
  function crossesZero(curve, index) {
285
- const sign = Math.sign(curve[index].value);
286
- return sign !== Math.sign(curve[index - 1].value) || sign !== Math.sign(curve[index + 1].value);
290
+ const at = curve[index];
291
+ if (at === undefined)
292
+ return false;
293
+ const sign = Math.sign(at.value);
294
+ const before = curve[index - 1];
295
+ const after = curve[index + 1];
296
+ return before === undefined || sign !== Math.sign(before.value) || after === undefined || sign !== Math.sign(after.value);
287
297
  }
288
298
  /**
289
299
  * The running score of one set in the top panel, with its dashed mark from zero to its maximum deviation. The
@@ -379,8 +389,8 @@ function panelGrids(legendLines) {
379
389
  * empty, and a set that dips under zero leaves the bottom left empty.
380
390
  */
381
391
  function statisticsText(context, panel, corner) {
382
- const top = Number.parseFloat(String(panel.top));
383
- const height = Number.parseFloat(String(panel.height));
392
+ const top = Number.parseFloat(textOf(panel.top));
393
+ const height = Number.parseFloat(textOf(panel.height));
384
394
  return statisticsGraphic(context.statistics, corner).map((element) => corner === "top-right"
385
395
  ? { ...element, right: percent(GRID_RIGHT + STATISTICS_INSET), top: percent(top + STATISTICS_INSET) }
386
396
  : { ...element, left: percent(GRID_LEFT + STATISTICS_INSET), bottom: percent(100 - top - height + STATISTICS_INSET) });
@@ -103,14 +103,18 @@ function cellKey(cell) {
103
103
  }
104
104
  function deriveHeatmap(block, rows, context) {
105
105
  const encoding = block.encoding ?? {};
106
- for (const member of ["x", "y", "value"]) {
107
- if (encoding[member] === undefined) {
108
- return err(chartProblem(block.id, `The heatmap chart needs a column for the "${member}" channel.`));
109
- }
110
- }
111
106
  const xChannel = encoding.x;
112
107
  const yChannel = encoding.y;
113
108
  const valueChannel = encoding.value;
109
+ if (xChannel === undefined) {
110
+ return err(chartProblem(block.id, 'The heatmap chart needs a column for the "x" channel.'));
111
+ }
112
+ if (yChannel === undefined) {
113
+ return err(chartProblem(block.id, 'The heatmap chart needs a column for the "y" channel.'));
114
+ }
115
+ if (valueChannel === undefined) {
116
+ return err(chartProblem(block.id, 'The heatmap chart needs a column for the "value" channel.'));
117
+ }
114
118
  if (channelOrder(valueChannel) !== undefined) {
115
119
  return err(chartProblem(block.id, 'The "value" channel draws no category axis, thus it takes no "orderBy".'));
116
120
  }
@@ -146,7 +150,7 @@ function deriveHeatmap(block, rows, context) {
146
150
  if (cells.has(key)) {
147
151
  return err(chartProblem(block.id, `The heatmap holds the pair (${String(row[x.value])}, ${String(row[y.value])}) more than one time.`));
148
152
  }
149
- cells.set(key, values[index]);
153
+ cells.set(key, values[index] ?? null);
150
154
  }
151
155
  const data = [];
152
156
  const finite = [];
@@ -167,7 +171,7 @@ function deriveHeatmap(block, rows, context) {
167
171
  data: xCategories.map(String),
168
172
  ...axisNameFields("x", xTitle),
169
173
  ...LINELESS_AXIS,
170
- ...(hidden ? { axisLabel: { show: false } } : {}),
174
+ axisLabel: hidden ? { show: false } : undefined,
171
175
  };
172
176
  const yAxis = {
173
177
  type: "category",
@@ -310,11 +314,11 @@ function axisOrder(block, rows, context, axis, column, channel) {
310
314
  * beside its row. The tree of y reads down, as the matrix reads down.
311
315
  */
312
316
  function leafAxis(gridIndex, count, inverse) {
313
- return { type: "value", gridIndex, min: -0.5, max: count - 0.5, ...(inverse ? { inverse: true } : {}), show: false };
317
+ return { type: "value", gridIndex, min: -0.5, max: count - 0.5, inverse: inverse ? true : undefined, show: false };
314
318
  }
315
319
  /** The hidden value axis of the heights of a dendrogram. The tree of y turns it, thus the root sits at the left and the leaves face the row names. */
316
320
  function heightAxis(gridIndex, height, inverse) {
317
- return { type: "value", gridIndex, min: 0, max: height > 0 ? height : 1, ...(inverse ? { inverse: true } : {}), show: false };
321
+ return { type: "value", gridIndex, min: 0, max: height > 0 ? height : 1, inverse: inverse ? true : undefined, show: false };
318
322
  }
319
323
  /** The branches of one dendrogram: one elbow of lines for each edge, in the order of the tree table. */
320
324
  function dendrogramSeries(gridIndex, tree, axis) {
@@ -47,7 +47,7 @@ export type FigureMember = keyof ChartEncoding | "statistics" | "track" | "trees
47
47
  * The resolved track of a figure: the rows of the second table, its declared column order, and the columns
48
48
  * that the block names in it. The labels and the meanings are the declarations of the track binding.
49
49
  */
50
- export interface FigureTrack {
50
+ export type FigureTrack = {
51
51
  readonly rows: readonly ChartRow[];
52
52
  readonly columns?: readonly string[];
53
53
  readonly start: string;
@@ -56,13 +56,13 @@ export interface FigureTrack {
56
56
  readonly length?: string;
57
57
  readonly labels: ColumnLabels;
58
58
  readonly meanings: ColumnMeanings;
59
- }
59
+ };
60
60
  /**
61
61
  * The resolved tree of one category axis: the edge rows of the tree table, its declared column order, and the
62
62
  * three columns that the block names in it. The labels and the meanings are the declarations of the tree
63
63
  * binding.
64
64
  */
65
- export interface FigureTree {
65
+ export type FigureTree = {
66
66
  readonly rows: readonly ChartRow[];
67
67
  readonly columns?: readonly string[];
68
68
  readonly parent: string;
@@ -70,7 +70,7 @@ export interface FigureTree {
70
70
  readonly height: string;
71
71
  readonly labels: ColumnLabels;
72
72
  readonly meanings: ColumnMeanings;
73
- }
73
+ };
74
74
  /**
75
75
  * The parts of a preset that a figure hands to the composition machinery: the semantic axis titles, and the
76
76
  * per-row classification where the figure splits the rows itself. `colorOnTop` draws the points of a
@@ -81,12 +81,12 @@ export interface FigureTree {
81
81
  * items of the composition output states it, because the page builds each item from the cells and never
82
82
  * from the rewrite.
83
83
  */
84
- export interface FigureComposeExtras {
84
+ export type FigureComposeExtras = {
85
85
  readonly preset?: PresetAxisTitles;
86
86
  readonly classification?: PresetClassification;
87
87
  readonly colorOnTop?: boolean;
88
88
  readonly keepsRowsInline?: boolean;
89
- }
89
+ };
90
90
  /**
91
91
  * What one figure reads beside its block and its rows.
92
92
  *
@@ -103,7 +103,7 @@ export interface FigureComposeExtras {
103
103
  * figure that puts a series before the result keeps the whole chart inline, because the page fills the
104
104
  * leading series from the descriptors of the composition.
105
105
  */
106
- export interface FigureContext {
106
+ export type FigureContext = {
107
107
  readonly blockId: string;
108
108
  readonly labels: ColumnLabels;
109
109
  readonly meanings: ColumnMeanings;
@@ -116,14 +116,14 @@ export interface FigureContext {
116
116
  };
117
117
  readonly textPx: number;
118
118
  readonly compose: (composition: ChartComposition, extras?: FigureComposeExtras) => Result<EchartOption, RenderProblem>;
119
- }
119
+ };
120
120
  /** The derivation of one figure: the raw option, before the layout discipline and the figure rules. */
121
121
  export type FigureDerivation = (block: ChartBlock, rows: readonly ChartRow[], context: FigureContext) => Result<EchartOption, RenderProblem>;
122
122
  /** One figure module: the members of the block that it reads, and its derivation. */
123
- export interface FigureModule {
123
+ export type FigureModule = {
124
124
  readonly reads: ReadonlySet<FigureMember>;
125
125
  readonly derive: FigureDerivation;
126
- }
126
+ };
127
127
  /** The figure module of each chart type that has one. */
128
128
  export type FigureRegistry = Readonly<Partial<Record<ChartType, FigureModule>>>;
129
129
  /** The registered figure modules. A module joins by one entry here, keyed by its chart type. */
@@ -49,7 +49,7 @@ export const FIGURE_PRESET_TYPES = [
49
49
  ];
50
50
  /** True when the chart type exists as a figure module alone. */
51
51
  export function isFigurePresetType(chartType) {
52
- return FIGURE_PRESET_TYPES.includes(chartType);
52
+ return FIGURE_PRESET_TYPES_SET.has(chartType);
53
53
  }
54
54
  /**
55
55
  * The chart types that draw through a figure module alone: each figure preset, the heatmap, and the four
@@ -58,9 +58,11 @@ export function isFigurePresetType(chartType) {
58
58
  * each draw elements that no composition holds, thus none of them keeps an expansion beside its module.
59
59
  */
60
60
  export const MODULE_ONLY_TYPES = [...FIGURE_PRESET_TYPES, "heatmap", "volcano", "ma", "manhattan", "km"];
61
+ const MODULE_ONLY_TYPES_SET = new Set(MODULE_ONLY_TYPES);
62
+ const FIGURE_PRESET_TYPES_SET = new Set(FIGURE_PRESET_TYPES);
61
63
  /** True when the chart type draws through a figure module alone. */
62
64
  export function isModuleOnlyType(chartType) {
63
- return MODULE_ONLY_TYPES.includes(chartType);
65
+ return MODULE_ONLY_TYPES_SET.has(chartType);
64
66
  }
65
67
  /** The registered figure modules. A module joins by one entry here, keyed by its chart type. */
66
68
  export const FIGURE_MODULES = {
@@ -85,7 +85,7 @@ function deriveKm(block, rows, context) {
85
85
  if (curves.isErr())
86
86
  return err(curves.error);
87
87
  const palette = categoricalPalette(curves.value.length);
88
- const colorOf = (index) => palette[index % palette.length];
88
+ const colorOf = (index) => palette[index % palette.length] ?? CHART_INK;
89
89
  const end = timeEnd(curves.value);
90
90
  const step = timeStep(end);
91
91
  const ticks = timeTicks(end, step);
@@ -108,7 +108,7 @@ function deriveKm(block, rows, context) {
108
108
  const timeAxis = {
109
109
  ...valueAxis("x", valueAxisTitle(context.labels, columns.value.time), { min: 0, max: end }),
110
110
  interval: step,
111
- ...(onTick(end, step) ? {} : { axisLabel: { showMaxLabel: false } }),
111
+ axisLabel: onTick(end, step) ? undefined : { showMaxLabel: false },
112
112
  };
113
113
  const survivalAxis = valueAxis("y", valueAxisTitle(context.labels, columns.value.survival), { min: 0, max: 1 });
114
114
  const plotGrid = { top: pct(layout.top), bottom: pct(layout.plotBottom), left: pct(left), right: pct(GRID_RIGHT) };
@@ -121,7 +121,7 @@ function deriveKm(block, rows, context) {
121
121
  xAxis: table ? [timeAxis, tableTimeAxis(end, step)] : timeAxis,
122
122
  yAxis: table ? [survivalAxis, tableGroupAxis(curves.value, colorOf)] : survivalAxis,
123
123
  series,
124
- ...(graphic.length > 0 ? { graphic } : {}),
124
+ graphic,
125
125
  };
126
126
  return ok(layout.bodyPx > CHART_BODY_PX ? withFigureBody(option, layout.bodyPx) : option);
127
127
  }
@@ -175,11 +175,11 @@ function kmColumns(block, rows, context) {
175
175
  return ok({
176
176
  time: time.value,
177
177
  survival: survival.value,
178
- ...(optional.group !== undefined ? { group: optional.group } : {}),
179
- ...(optional.low !== undefined ? { low: optional.low } : {}),
180
- ...(optional.high !== undefined ? { high: optional.high } : {}),
181
- ...(optional.censor !== undefined ? { censor: optional.censor } : {}),
182
- ...(optional.risk !== undefined ? { risk: optional.risk } : {}),
178
+ group: optional.group,
179
+ low: optional.low,
180
+ high: optional.high,
181
+ censor: optional.censor,
182
+ risk: optional.risk,
183
183
  });
184
184
  }
185
185
  /**
@@ -268,7 +268,8 @@ function curveSeries(curve, index, color, columns) {
268
268
  const name = categoryName(curve.name);
269
269
  const points = curve.points;
270
270
  const line = points.map((point) => [point.time, point.survival]);
271
- if (points.length === 0 || points[0].time > 0)
271
+ const first = points[0];
272
+ if (first === undefined || first.time > 0)
272
273
  line.unshift([0, 1]);
273
274
  const series = [
274
275
  {
@@ -15,16 +15,16 @@ import { CHART_EXPORT_SIZES } from "../design.js";
15
15
  /** The gap between a point and its name, in pixels. */
16
16
  export declare const NAME_GAP_PX = 4;
17
17
  /** One box in data units, or in pixels. */
18
- export interface Box {
18
+ export type Box = {
19
19
  readonly left: number;
20
20
  readonly right: number;
21
21
  readonly bottom: number;
22
22
  readonly top: number;
23
- }
23
+ };
24
24
  /** True when two boxes share an area. */
25
25
  export declare function overlaps(a: Box, b: Box): boolean;
26
26
  /** The range of the two axes of a plot, in data units. */
27
- export interface PlotRange {
27
+ export type PlotRange = {
28
28
  readonly x: {
29
29
  readonly min: number;
30
30
  readonly max: number;
@@ -33,13 +33,13 @@ export interface PlotRange {
33
33
  readonly min: number;
34
34
  readonly max: number;
35
35
  };
36
- }
36
+ };
37
37
  /** One named point: its place in data units and its name. */
38
- export interface NamedPoint {
38
+ export type NamedPoint = {
39
39
  readonly x: number;
40
40
  readonly y: number;
41
41
  readonly text: string;
42
- }
42
+ };
43
43
  /** The four sides of a point where its name can sit, in the order that the figure tries them. */
44
44
  export declare const NAME_SIDES: readonly ["right", "left", "top", "bottom"];
45
45
  /** One side of a point. */
@@ -74,11 +74,11 @@ export declare function nameAnchors(names: readonly NamedPoint[], weights: reado
74
74
  * size. A smaller frame puts the names nearer to each other than the drawn plot does, thus a name that clears
75
75
  * its neighbors in the frame clears them in the drawn plot.
76
76
  */
77
- export interface NameFrame {
77
+ export type NameFrame = {
78
78
  readonly widthPx: number;
79
79
  readonly heightPx: number;
80
80
  readonly textPx: number;
81
- }
81
+ };
82
82
  /** The width of one text in pixels at one text size: the estimate of each figure that places its own text. */
83
83
  export declare function textWidthPx(text: string, textPx: number): number;
84
84
  /** The frame of the page: the plot inside the 900 by 400 pixel chart body of a window 1280 pixels wide. */
@@ -97,17 +97,17 @@ export declare const EXPORT_PLOT_FRAMES: Readonly<Record<keyof typeof CHART_EXPO
97
97
  */
98
98
  export type LeaderSide = "right" | "left" | "top";
99
99
  /** The anchor of one name in data units, and the side of the anchor where the text sits. */
100
- export interface LeaderName {
100
+ export type LeaderName = {
101
101
  readonly x: number;
102
102
  readonly y: number;
103
103
  readonly side: LeaderSide;
104
- }
104
+ };
105
105
  /** The points that no name can cover: the plotted pair of each row, and the diameter of the largest point. */
106
- export interface NameObstacles {
106
+ export type NameObstacles = {
107
107
  readonly xs: readonly (number | null)[];
108
108
  readonly ys: readonly (number | null)[];
109
109
  readonly pointPx: number;
110
- }
110
+ };
111
111
  /**
112
112
  * The anchor of each name, in the order of the names, or `undefined` for a name that finds no free place.
113
113
  *
@@ -90,7 +90,10 @@ export function pointNameSides(points, plot, pointPx) {
90
90
  */
91
91
  export function nameAnchors(names, weights, plot) {
92
92
  const length = plot.x.max - plot.x.min;
93
- const order = names.map((_name, index) => index).sort((a, b) => weights[b] - weights[a] || a - b);
93
+ const order = weights
94
+ .map((weight, index) => ({ weight, index }))
95
+ .sort((a, b) => b.weight - a.weight || a.index - b.index)
96
+ .map((entry) => entry.index);
94
97
  const line = nameSize("", length).height;
95
98
  const out = names.map(() => undefined);
96
99
  // A box of no height covers nothing, and a grid of such cells has no key.
@@ -100,6 +103,8 @@ export function nameAnchors(names, weights, plot) {
100
103
  const lines = Math.ceil((plot.y.max - plot.y.min) / line);
101
104
  for (const index of order) {
102
105
  const name = names[index];
106
+ if (name === undefined)
107
+ continue;
103
108
  const { width, height } = nameSize(name.text, length);
104
109
  const boxAt = (y) => ({ left: name.x - width / 2, right: name.x + width / 2, bottom: y - height / 2, top: y + height / 2 });
105
110
  const free = (y, moved) => {
@@ -202,7 +207,7 @@ export function placeLeaderNames(names, obstacles, plot, sides, top, frame = COL
202
207
  for (let index = 0; index < obstacles.xs.length; index += 1) {
203
208
  const x = obstacles.xs[index];
204
209
  const y = obstacles.ys[index];
205
- if (x === null || y === null)
210
+ if (x === null || x === undefined || y === null || y === undefined)
206
211
  continue;
207
212
  const point = { x: toX(x), y: toY(y) };
208
213
  const key = `${cellOf(point.x)}:${cellOf(point.y)}`;
@@ -25,11 +25,11 @@
25
25
  */
26
26
  import type { FigureModule } from "./index.js";
27
27
  /** One LD bin: the r² range, lower end included, and its color. The highest bin includes 1. */
28
- export interface LdBin {
28
+ export type LdBin = {
29
29
  readonly low: number;
30
30
  readonly high: number;
31
31
  readonly color: string;
32
- }
32
+ };
33
33
  /** The five r² bins of LocusZoom, in ascending order, with its colors: navy, sky blue, green, orange, and red. */
34
34
  export declare const LD_BINS: readonly LdBin[];
35
35
  /** The gray of a variant with no r², and the name of its series and its legend entry. */