@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.
- package/README.md +6 -3
- package/dist/agents/conversation-agent.d.ts +19 -3
- package/dist/agents/conversation-agent.js +49 -30
- package/dist/agents/report-session-agent.d.ts +15 -15
- package/dist/agents/report-session-agent.js +23 -15
- package/dist/agents/sandbox/index.d.ts +1 -1
- package/dist/agents/sandbox/index.js +1 -1
- package/dist/agents/sandbox/shared.d.ts +35 -16
- package/dist/agents/sandbox/shared.js +63 -24
- package/dist/agents/sandbox/translational-safety-agent.js +26 -0
- package/dist/agents/sandbox/types.d.ts +26 -3
- package/dist/agents/sandbox/validate-skills.d.ts +2 -2
- package/dist/agents/sandbox/validate-skills.js +3 -1
- package/dist/agents/sandbox-catalog.d.ts +16 -2
- package/dist/agents/sandbox-catalog.js +22 -3
- package/dist/agents/system-prompt.d.ts +2 -2
- package/dist/app/approve-plan.d.ts +5 -2
- package/dist/app/approve-plan.js +1 -1
- package/dist/app/chat-turn-workflow.d.ts +114 -0
- package/dist/app/chat-turn-workflow.js +307 -0
- package/dist/app/chat-turn.d.ts +85 -57
- package/dist/app/chat-turn.js +125 -99
- package/dist/app/data-profile-orientation.js +10 -8
- package/dist/app/data-profile-view.d.ts +4 -4
- package/dist/app/data-profile-view.js +9 -8
- package/dist/app/in-process-turn.d.ts +42 -0
- package/dist/app/in-process-turn.js +139 -0
- package/dist/app/message-assembly.d.ts +10 -4
- package/dist/app/message-assembly.js +13 -8
- package/dist/app/report-session-runtime.d.ts +4 -4
- package/dist/app/report-session-runtime.js +36 -21
- package/dist/app/spawn-report-session.d.ts +33 -28
- package/dist/app/spawn-report-session.js +25 -40
- package/dist/app/synthesize-run.d.ts +22 -16
- package/dist/app/synthesize-run.js +41 -35
- package/dist/app/work.d.ts +96 -0
- package/dist/app/work.js +147 -0
- package/dist/auth/local-auth-context.d.ts +1 -3
- package/dist/auth/local-auth-context.js +1 -3
- package/dist/auth/local-run-authorizer.d.ts +1 -1
- package/dist/auth/local-run-authorizer.js +5 -3
- package/dist/auth/types.d.ts +26 -26
- package/dist/billing/cached-resolver.d.ts +4 -4
- package/dist/billing/run-charge.d.ts +5 -8
- package/dist/billing/run-charge.js +2 -2
- package/dist/billing/usage-recorder.d.ts +9 -9
- package/dist/citations/aggregate.js +1 -1
- package/dist/citations/clients/arxiv.d.ts +2 -2
- package/dist/citations/clients/arxiv.js +12 -4
- package/dist/citations/clients/common.js +4 -2
- package/dist/citations/clients/crossref.d.ts +2 -2
- package/dist/citations/clients/crossref.js +37 -37
- package/dist/citations/clients/doi-registry.js +15 -16
- package/dist/citations/clients/pubmed.d.ts +2 -2
- package/dist/citations/clients/pubmed.js +20 -13
- package/dist/citations/clients/semantic-scholar.d.ts +2 -2
- package/dist/citations/clients/semantic-scholar.js +9 -9
- package/dist/citations/compare.js +2 -2
- package/dist/citations/match.d.ts +2 -2
- package/dist/citations/match.js +12 -7
- package/dist/citations/normalize.js +35 -26
- package/dist/citations/plan.js +6 -2
- package/dist/citations/resolve.d.ts +6 -6
- package/dist/citations/resolve.js +34 -25
- package/dist/citations/types.d.ts +77 -77
- package/dist/config/environment-stores.d.ts +10 -8
- package/dist/config/resource-limits.js +1 -3
- package/dist/contracts/analogy-report.d.ts +7 -7
- package/dist/contracts/analogy-report.js +2 -2
- package/dist/contracts/chat-events.d.ts +46 -22
- package/dist/contracts/chat-events.js +1 -1
- package/dist/contracts/chat-frame.d.ts +15 -5
- package/dist/contracts/chat-frame.js +67 -40
- package/dist/contracts/chat-parts.d.ts +130 -67
- package/dist/contracts/chat-parts.js +1 -0
- package/dist/contracts/content-url.js +16 -2
- package/dist/contracts/data-profile.d.ts +38 -38
- package/dist/contracts/index.d.ts +3 -3
- package/dist/contracts/index.js +1 -1
- package/dist/contracts/message.d.ts +6 -6
- package/dist/contracts/organ-system.d.ts +11 -11
- package/dist/contracts/part-registry.d.ts +5 -4
- package/dist/contracts/part-registry.js +5 -0
- package/dist/contracts/profile-vocabulary.d.ts +11 -10
- package/dist/contracts/profile-vocabulary.js +10 -3
- package/dist/contracts/report-blocks.d.ts +329 -329
- package/dist/contracts/report-reference.d.ts +105 -81
- package/dist/contracts/report-reference.js +30 -13
- package/dist/contracts/schemas/chat-events.d.ts +45 -6
- package/dist/contracts/schemas/chat-events.js +16 -0
- package/dist/contracts/schemas/chat-parts.d.ts +214 -102
- package/dist/contracts/schemas/chat-parts.js +50 -7
- package/dist/contracts/schemas/index.d.ts +1 -1
- package/dist/contracts/schemas/index.js +1 -1
- package/dist/contracts/severity.d.ts +1 -1
- package/dist/contracts/structure-source.d.ts +3 -3
- package/dist/contracts/structure-source.js +6 -2
- package/dist/contracts/subagent-activity.d.ts +2 -2
- package/dist/contracts/subagent-activity.js +5 -3
- package/dist/contracts/usage.d.ts +2 -2
- package/dist/data/safety-panel-schema.d.ts +25 -25
- package/dist/data/safety-panel-schema.js +13 -4
- package/dist/execution/artifact-metadata.d.ts +23 -15
- package/dist/execution/artifact-metadata.js +33 -10
- package/dist/execution/artifact-record.d.ts +2 -2
- package/dist/execution/artifact-registration.d.ts +5 -5
- package/dist/execution/artifact-registry.d.ts +8 -8
- package/dist/execution/dbos-run-launcher.d.ts +24 -4
- package/dist/execution/dbos-run-launcher.js +58 -4
- package/dist/execution/dbos-workflow-purger.d.ts +7 -6
- package/dist/execution/dbos-workflow-purger.js +29 -21
- package/dist/execution/input-signature.d.ts +2 -2
- package/dist/execution/post-step-pipeline.d.ts +9 -9
- package/dist/execution/post-step-pipeline.js +1 -1
- package/dist/execution/post-step.js +2 -2
- package/dist/execution/reconcile-manifest.d.ts +4 -4
- package/dist/execution/reconcile-manifest.js +3 -2
- package/dist/execution/run-authorizer.d.ts +46 -37
- package/dist/execution/run-authorizer.js +8 -8
- package/dist/execution/run-canceler.d.ts +39 -17
- package/dist/execution/run-canceler.js +137 -28
- package/dist/execution/run-end-record.d.ts +29 -0
- package/dist/execution/run-end-record.js +27 -0
- package/dist/execution/run-event-parts.d.ts +0 -8
- package/dist/execution/run-event-parts.js +29 -24
- package/dist/execution/run-event-stream.d.ts +8 -8
- package/dist/execution/run-event-stream.js +3 -4
- package/dist/execution/run-launcher.d.ts +4 -4
- package/dist/execution/run-synthesis.d.ts +49 -48
- package/dist/execution/run-synthesis.js +96 -255
- package/dist/execution/staged-input.d.ts +2 -2
- package/dist/execution/step-summary.d.ts +6 -6
- package/dist/execution/step-summary.js +4 -8
- package/dist/execution/topo-sort.js +4 -3
- package/dist/execution/workflow-purger.d.ts +2 -2
- package/dist/index.d.ts +25 -24
- package/dist/index.js +36 -37
- package/dist/input-sanitization.js +9 -2
- package/dist/input-scan/clustering.d.ts +6 -6
- package/dist/input-scan/clustering.js +11 -5
- package/dist/input-scan/companions.js +3 -2
- package/dist/input-scan/detect-sets.d.ts +2 -2
- package/dist/input-scan/detect-sets.js +25 -21
- package/dist/input-scan/enrich.d.ts +6 -6
- package/dist/input-scan/enrich.js +29 -12
- package/dist/input-scan/formats.d.ts +2 -2
- package/dist/input-scan/formats.js +8 -2
- package/dist/input-scan/markers.d.ts +2 -2
- package/dist/input-scan/markers.js +14 -5
- package/dist/input-scan/menu.d.ts +10 -10
- package/dist/input-scan/menu.js +0 -0
- package/dist/input-scan/quarantine.d.ts +2 -2
- package/dist/input-scan/quarantine.js +23 -18
- package/dist/input-scan/readout-budget.d.ts +2 -2
- package/dist/input-scan/readout-budget.js +1 -1
- package/dist/input-scan/readout.d.ts +2 -2
- package/dist/input-scan/readout.js +47 -34
- package/dist/input-scan/scan.d.ts +2 -2
- package/dist/input-scan/scan.js +7 -5
- package/dist/input-scan/set-types.d.ts +28 -28
- package/dist/input-scan/shapes.d.ts +4 -4
- package/dist/input-scan/shapes.js +0 -0
- package/dist/input-scan/templates.d.ts +10 -10
- package/dist/input-scan/templates.js +30 -22
- package/dist/input-scan/tokens.d.ts +6 -4
- package/dist/input-scan/tokens.js +100 -38
- package/dist/input-scan/types.d.ts +22 -22
- package/dist/lib/async-utils.d.ts +3 -7
- package/dist/lib/async-utils.js +5 -9
- package/dist/lib/cache.js +1 -1
- package/dist/lib/chrome.d.ts +46 -6
- package/dist/lib/console-logger.js +2 -2
- package/dist/lib/db-result.d.ts +22 -6
- package/dist/lib/db-result.js +9 -13
- package/dist/lib/eyes.d.ts +4 -4
- package/dist/lib/eyes.js +1 -1
- package/dist/lib/fs-helpers.js +18 -6
- package/dist/lib/fs-result.d.ts +1 -0
- package/dist/lib/fs-result.js +5 -6
- package/dist/lib/hooks.d.ts +23 -7
- package/dist/lib/hooks.js +17 -3
- package/dist/lib/host-concurrency.js +3 -2
- package/dist/lib/logger.d.ts +2 -2
- package/dist/lib/logger.js +2 -1
- package/dist/lib/metrics.d.ts +1 -1
- package/dist/lib/null-proto.d.ts +6 -0
- package/dist/lib/null-proto.js +17 -0
- package/dist/lib/otel-spans.d.ts +1 -1
- package/dist/lib/otel-spans.js +9 -5
- package/dist/lib/otel.d.ts +4 -2
- package/dist/lib/otel.js +10 -2
- package/dist/lib/page-capture.d.ts +8 -8
- package/dist/lib/page-capture.js +9 -4
- package/dist/lib/parse-json.d.ts +5 -0
- package/dist/lib/parse-json.js +12 -0
- package/dist/lib/present.d.ts +12 -0
- package/dist/lib/present.js +39 -0
- package/dist/lib/rate-limit.d.ts +4 -4
- package/dist/lib/rate-limit.js +12 -13
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.js +4 -10
- package/dist/lib/regulatory-corpus/fetch-ich.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-ich.js +18 -14
- package/dist/lib/regulatory-corpus/normalize-whitespace.d.ts +6 -0
- package/dist/lib/regulatory-corpus/normalize-whitespace.js +41 -0
- package/dist/lib/regulatory-corpus.d.ts +10 -10
- package/dist/lib/regulatory-corpus.js +3 -1
- package/dist/lib/result.d.ts +10 -11
- package/dist/lib/result.js +15 -13
- package/dist/lib/storage.d.ts +2 -2
- package/dist/lib/test/async-iterable.d.ts +9 -0
- package/dist/lib/test/async-iterable.js +28 -0
- package/dist/lib/test/request-url.d.ts +5 -0
- package/dist/lib/test/request-url.js +7 -0
- package/dist/lib/test/result-assert.d.ts +12 -0
- package/dist/lib/test/result-assert.js +17 -0
- package/dist/lib/test/text-shapes.d.ts +24 -0
- package/dist/lib/test/text-shapes.js +63 -0
- package/dist/lib/text.d.ts +22 -0
- package/dist/lib/text.js +68 -0
- package/dist/lib/thrown.d.ts +18 -0
- package/dist/lib/thrown.js +30 -0
- package/dist/lib/unknown-array.d.ts +6 -0
- package/dist/lib/unknown-array.js +8 -0
- package/dist/lib/unknown-containers.d.ts +14 -0
- package/dist/lib/unknown-containers.js +17 -0
- package/dist/lib/unknown-text.d.ts +8 -0
- package/dist/lib/unknown-text.js +28 -0
- package/dist/lib/zod-issue-shape.d.ts +1 -1
- package/dist/lib/zod-issue-shape.js +31 -31
- package/dist/lib/zod-issues.d.ts +3 -3
- package/dist/lib/zod-issues.js +30 -17
- package/dist/literature/sources/arxiv.d.ts +6 -6
- package/dist/literature/sources/arxiv.js +92 -35
- package/dist/literature/sources/http.d.ts +2 -2
- package/dist/literature/sources/http.js +16 -15
- package/dist/literature/sources/pubmed.d.ts +16 -16
- package/dist/literature/sources/pubmed.js +96 -61
- package/dist/literature/sources/semantic-scholar.d.ts +8 -8
- package/dist/literature/sources/semantic-scholar.js +22 -13
- package/dist/loop/accounting.d.ts +63 -0
- package/dist/loop/accounting.js +141 -0
- package/dist/loop/call-policy.d.ts +73 -0
- package/dist/loop/call-policy.js +109 -0
- package/dist/loop/chat-stream.d.ts +62 -0
- package/dist/loop/chat-stream.js +237 -0
- package/dist/loop/compaction.d.ts +14 -9
- package/dist/loop/compaction.js +17 -0
- package/dist/loop/metrics.d.ts +12 -15
- package/dist/loop/metrics.js +14 -26
- package/dist/loop/run-loop.d.ts +233 -0
- package/dist/loop/run-loop.js +770 -0
- package/dist/loop/sub-agent.d.ts +61 -0
- package/dist/loop/sub-agent.js +161 -0
- package/dist/loop/tool-adapter.d.ts +98 -0
- package/dist/loop/tool-adapter.js +364 -0
- package/dist/loop/tool-detail.d.ts +1 -1
- package/dist/loop/tool-detail.js +6 -5
- package/dist/loop/tool-outcome.d.ts +1 -1
- package/dist/loop/tool-output.d.ts +4 -4
- package/dist/loop/tool-output.js +2 -2
- package/dist/loop/turn-credentials.d.ts +34 -0
- package/dist/loop/turn-credentials.js +73 -0
- package/dist/loop/types.d.ts +34 -37
- package/dist/loop/types.js +2 -7
- package/dist/memory/ai-sdk-message-storage.d.ts +5 -5
- package/dist/memory/ai-sdk-message-storage.js +13 -11
- package/dist/memory/card-builders.d.ts +14 -14
- package/dist/memory/card-builders.js +19 -15
- package/dist/memory/conversation-display-recorder.d.ts +22 -6
- package/dist/memory/conversation-display-recorder.js +64 -20
- package/dist/memory/conversation-display-replay.js +3 -2
- package/dist/memory/conversation-display-storage.d.ts +15 -7
- package/dist/memory/conversation-display-storage.js +141 -36
- package/dist/memory/conversation-view.d.ts +4 -4
- package/dist/memory/conversation-view.js +5 -4
- package/dist/memory/count-tokens.js +10 -8
- package/dist/memory/derive-thread-title.d.ts +0 -13
- package/dist/memory/derive-thread-title.js +2 -1
- package/dist/memory/message-backfill.d.ts +12 -5
- package/dist/memory/message-backfill.js +5 -3
- package/dist/memory/thread-history.d.ts +66 -24
- package/dist/memory/thread-history.js +212 -79
- package/dist/memory/thread-store.d.ts +26 -17
- package/dist/memory/thread-store.js +15 -9
- package/dist/memory/tool-call-integrity.d.ts +2 -2
- package/dist/memory/tool-call-integrity.js +4 -3
- package/dist/memory/working-memory.d.ts +16 -12
- package/dist/memory/working-memory.js +72 -61
- package/dist/prompts/briefing.d.ts +63 -9
- package/dist/prompts/briefing.js +130 -3
- package/dist/prompts/planner.js +13 -2
- package/dist/prompts/synthesis-agent.d.ts +1 -1
- package/dist/prompts/synthesis-agent.js +6 -14
- package/dist/provenance/collector.d.ts +6 -6
- package/dist/provenance/collector.js +15 -8
- package/dist/provenance/exec-frame.d.ts +2 -2
- package/dist/provenance/exec-frame.js +6 -1
- package/dist/provenance/seam.d.ts +24 -19
- package/dist/provenance/seam.js +7 -5
- package/dist/provenance/types.d.ts +6 -6
- package/dist/providers/ai-sdk.d.ts +113 -62
- package/dist/providers/ai-sdk.js +303 -458
- package/dist/providers/embedding.d.ts +2 -2
- package/dist/providers/embedding.js +1 -1
- package/dist/providers/errors.d.ts +22 -2
- package/dist/providers/errors.js +98 -50
- package/dist/providers/prompt-cache.d.ts +8 -8
- package/dist/providers/prompt-cache.js +13 -11
- package/dist/providers/reasoning.d.ts +2 -2
- package/dist/providers/reasoning.js +2 -2
- package/dist/providers/types.d.ts +59 -92
- package/dist/reference-data/catalog.d.ts +2 -15
- package/dist/reference-data/catalog.js +166 -10
- package/dist/reference-data/receipt.d.ts +2 -2
- package/dist/report-model/assert-rules.js +1 -1
- package/dist/report-model/authoring-grammar.d.ts +209 -231
- package/dist/report-model/block-walk.d.ts +10 -10
- package/dist/report-model/block-walk.js +2 -0
- package/dist/report-model/draft-finish.d.ts +8 -8
- package/dist/report-model/draft-finish.js +1 -1
- package/dist/report-model/draft-hash.js +8 -7
- package/dist/report-model/draft-operations.d.ts +22 -10
- package/dist/report-model/draft-operations.js +48 -30
- package/dist/report-model/draft-read.d.ts +19 -7
- package/dist/report-model/draft-read.js +16 -6
- package/dist/report-model/draft.d.ts +844 -2
- package/dist/report-model/draft.js +3 -1
- package/dist/report-model/fixture-resolver.js +39 -16
- package/dist/report-model/pin-snapshot.d.ts +2 -2
- package/dist/report-model/pin-snapshot.js +15 -15
- package/dist/report-model/production-resolver.d.ts +18 -18
- package/dist/report-model/production-resolver.js +50 -42
- package/dist/report-model/reference-resolver.d.ts +26 -10
- package/dist/report-model/reference-resolver.js +68 -5
- package/dist/report-model/reference-stamp.js +30 -38
- package/dist/report-model/structural-validation.js +12 -4
- package/dist/report-model/validate.d.ts +7 -7
- package/dist/report-model/validate.js +6 -6
- package/dist/report-render/assets.d.ts +2 -2
- package/dist/report-render/assets.js +27 -3
- package/dist/report-render/chart-export.d.ts +10 -2
- package/dist/report-render/chart-export.js +37 -11
- package/dist/report-render/chart-presets.d.ts +8 -8
- package/dist/report-render/chart-presets.js +3 -3
- package/dist/report-render/chart-renderers.d.ts +23 -16
- package/dist/report-render/chart-renderers.js +74 -53
- package/dist/report-render/chart-toolbox.d.ts +2 -2
- package/dist/report-render/chart-toolbox.js +7 -6
- package/dist/report-render/chart.d.ts +15 -16
- package/dist/report-render/chart.js +369 -252
- package/dist/report-render/design.d.ts +36 -297
- package/dist/report-render/design.js +0 -12
- package/dist/report-render/figures/common.d.ts +12 -12
- package/dist/report-render/figures/common.js +42 -31
- package/dist/report-render/figures/dendrogram.d.ts +3 -3
- package/dist/report-render/figures/dendrogram.js +10 -10
- package/dist/report-render/figures/dense.js +15 -8
- package/dist/report-render/figures/dotplot.js +46 -33
- package/dist/report-render/figures/embedding.js +52 -43
- package/dist/report-render/figures/equal-units.d.ts +10 -10
- package/dist/report-render/figures/equal-units.js +27 -27
- package/dist/report-render/figures/forest.js +9 -7
- package/dist/report-render/figures/gsea.js +21 -11
- package/dist/report-render/figures/heatmap.js +13 -9
- package/dist/report-render/figures/index.d.ts +10 -10
- package/dist/report-render/figures/index.js +4 -2
- package/dist/report-render/figures/km.js +10 -9
- package/dist/report-render/figures/label-room.d.ts +12 -12
- package/dist/report-render/figures/label-room.js +7 -2
- package/dist/report-render/figures/locuszoom.d.ts +2 -2
- package/dist/report-render/figures/locuszoom.js +59 -31
- package/dist/report-render/figures/lollipop.js +3 -2
- package/dist/report-render/figures/ma.js +8 -4
- package/dist/report-render/figures/manhattan.d.ts +1 -2
- package/dist/report-render/figures/manhattan.js +52 -34
- package/dist/report-render/figures/oncoprint.js +4 -5
- package/dist/report-render/figures/pca.js +25 -11
- package/dist/report-render/figures/qq.js +20 -9
- package/dist/report-render/figures/roc.js +1 -1
- package/dist/report-render/figures/sankey.d.ts +2 -2
- package/dist/report-render/figures/sankey.js +11 -10
- package/dist/report-render/figures/upset.d.ts +6 -6
- package/dist/report-render/figures/upset.js +7 -4
- package/dist/report-render/figures/volcano.js +12 -10
- package/dist/report-render/hybrid-svg.d.ts +4 -4
- package/dist/report-render/hybrid-svg.js +7 -5
- package/dist/report-render/number-format.d.ts +4 -4
- package/dist/report-render/number-format.js +62 -27
- package/dist/report-render/page.js +2 -1
- package/dist/report-render/provenance-data.d.ts +2 -2
- package/dist/report-render/references.d.ts +4 -4
- package/dist/report-render/render.d.ts +2 -2
- package/dist/report-render/render.js +10 -11
- package/dist/report-render/script-json.js +1 -1
- package/dist/report-render/table-data.d.ts +6 -6
- package/dist/report-render/test/options.d.ts +49 -0
- package/dist/report-render/test/options.js +143 -0
- package/dist/report-render/test/page-function.d.ts +19 -0
- package/dist/report-render/test/page-function.js +33 -0
- package/dist/report-render/types.d.ts +10 -10
- package/dist/report-render/value-bridge.d.ts +4 -4
- package/dist/report-render/value-bridge.js +27 -14
- package/dist/report-render/views/chart-view.d.ts +2 -2
- package/dist/report-render/views/chart-view.js +2 -2
- package/dist/report-render/views/lineage.d.ts +6 -6
- package/dist/report-render/views/lineage.js +2 -0
- package/dist/report-render/views/page-view.d.ts +2 -2
- package/dist/report-render/views/page-view.js +1 -0
- package/dist/report-render/views/prose.js +25 -8
- package/dist/report-render/views/references-view.js +12 -1
- package/dist/report-render/views/values.js +1 -1
- package/dist/runtime/assemble.d.ts +53 -26
- package/dist/runtime/assemble.js +103 -56
- package/dist/runtime/boot.d.ts +8 -7
- package/dist/runtime/boot.js +1 -1
- package/dist/runtime/connection-budget.d.ts +6 -6
- package/dist/runtime/connection-budget.js +1 -1
- package/dist/runtime/dbos.d.ts +29 -19
- package/dist/runtime/dbos.js +35 -20
- package/dist/runtime/result-serialization.js +18 -5
- package/dist/runtime/shutdown.d.ts +2 -2
- package/dist/sandbox/client.d.ts +7 -3
- package/dist/sandbox/cpu-files.d.ts +2 -2
- package/dist/sandbox/cpu-files.js +21 -4
- package/dist/sandbox/create-sandbox.d.ts +7 -8
- package/dist/sandbox/create-sandbox.js +6 -12
- package/dist/sandbox/docker-client.d.ts +48 -3
- package/dist/sandbox/docker-client.js +10 -6
- package/dist/sandbox/estimate-data-profile-resources.js +2 -7
- package/dist/sandbox/exec-outcome.d.ts +2 -2
- package/dist/sandbox/exec-outcome.js +1 -1
- package/dist/sandbox/exec.d.ts +10 -6
- package/dist/sandbox/exec.js +27 -12
- package/dist/sandbox/execution-id.js +14 -6
- package/dist/sandbox/farm.d.ts +2 -2
- package/dist/sandbox/farm.js +22 -27
- package/dist/sandbox/identity.d.ts +7 -0
- package/dist/sandbox/identity.js +14 -3
- package/dist/sandbox/image-packages.d.ts +26 -4
- package/dist/sandbox/image-packages.js +29 -27
- package/dist/sandbox/k8s-client.d.ts +35 -8
- package/dist/sandbox/k8s-client.js +6 -5
- package/dist/sandbox/labels.js +1 -0
- package/dist/sandbox/liveness.js +3 -1
- package/dist/sandbox/mount-plan.d.ts +10 -10
- package/dist/sandbox/mount-plan.js +13 -14
- package/dist/sandbox/notification-sweep.d.ts +4 -4
- package/dist/sandbox/notification-sweep.js +4 -7
- package/dist/sandbox/package-identity.d.ts +6 -13
- package/dist/sandbox/package-identity.js +46 -28
- package/dist/sandbox/reaper.d.ts +10 -10
- package/dist/sandbox/reaper.js +4 -6
- package/dist/sandbox/sandbox-error.d.ts +2 -9
- package/dist/sandbox/sandbox-error.js +21 -8
- package/dist/sandbox/sandbox-step-translate.d.ts +8 -5
- package/dist/sandbox/sandbox-step-translate.js +22 -8
- package/dist/sandbox/step-sandbox.d.ts +47 -0
- package/dist/sandbox/step-sandbox.js +53 -0
- package/dist/sandbox/types.d.ts +18 -19
- package/dist/sandbox/types.js +1 -1
- package/dist/schemas/artifact-manifest.d.ts +4 -4
- package/dist/schemas/data-profile-schemas.d.ts +351 -306
- package/dist/schemas/file-metadata.js +2 -4
- package/dist/schemas/plan-schemas.d.ts +79 -25
- package/dist/schemas/plan-schemas.js +1 -1
- package/dist/schemas/run-synthesis.d.ts +95 -26
- package/dist/schemas/run-synthesis.js +3 -1
- package/dist/schemas/validate-plan.d.ts +4 -4
- package/dist/schemas/validate-plan.js +17 -5
- package/dist/schemas/workflow-state.d.ts +127 -14
- package/dist/schemas/workflow-state.js +56 -2
- package/dist/state/active-turns.d.ts +36 -0
- package/dist/state/active-turns.js +67 -0
- package/dist/state/analyses-metrics.d.ts +8 -8
- package/dist/state/analyses-metrics.js +4 -4
- package/dist/state/analyses.d.ts +0 -14
- package/dist/state/analyses.js +0 -32
- package/dist/state/artifacts.d.ts +47 -18
- package/dist/state/artifacts.js +48 -7
- package/dist/state/data-profile.d.ts +2 -2
- package/dist/state/db.d.ts +12 -2
- package/dist/state/db.js +5 -0
- package/dist/state/edit-intents.d.ts +4 -0
- package/dist/state/edit-intents.js +71 -0
- package/dist/state/index.d.ts +5 -5
- package/dist/state/index.js +3 -3
- package/dist/state/init.d.ts +2 -1
- package/dist/state/init.js +5 -2
- package/dist/state/migrations/20260927120000_baseline.js +3 -1
- package/dist/state/migrations/20261026120000_add_the_edit_intents.d.ts +7 -0
- package/dist/state/migrations/20261026120000_add_the_edit_intents.js +21 -0
- package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.d.ts +7 -0
- package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.js +16 -0
- package/dist/state/migrations/20261027120100_store_the_authoring_results.d.ts +8 -0
- package/dist/state/migrations/20261027120100_store_the_authoring_results.js +20 -0
- package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.d.ts +7 -0
- package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.js +12 -0
- package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.d.ts +7 -0
- package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.js +11 -0
- package/dist/state/migrations/20261028120000_record_the_paused_work.d.ts +7 -0
- package/dist/state/migrations/20261028120000_record_the_paused_work.js +25 -0
- package/dist/state/migrations/20261028120100_end_the_suspended_runs.d.ts +8 -0
- package/dist/state/migrations/20261028120100_end_the_suspended_runs.js +13 -0
- package/dist/state/migrations/20261029120000_reference_the_run_mandate.d.ts +7 -0
- package/dist/state/migrations/20261029120000_reference_the_run_mandate.js +23 -0
- package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.d.ts +7 -0
- package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.js +11 -0
- package/dist/state/migrations/index.js +18 -0
- package/dist/state/paused-work.d.ts +52 -0
- package/dist/state/paused-work.js +105 -0
- package/dist/state/plans.d.ts +27 -8
- package/dist/state/plans.js +14 -11
- package/dist/state/purge-analysis.d.ts +6 -6
- package/dist/state/purge-analysis.js +10 -2
- package/dist/state/report-session-state.d.ts +43 -18
- package/dist/state/report-session-state.js +43 -4
- package/dist/state/report-versions.d.ts +16 -11
- package/dist/state/report-versions.js +5 -3
- package/dist/state/runs.d.ts +70 -25
- package/dist/state/runs.js +127 -64
- package/dist/state/schema.d.ts +18 -21
- package/dist/state/schema.js +4 -5
- package/dist/state/snapshot-parse.d.ts +2 -2
- package/dist/state/snapshot-parse.js +14 -8
- package/dist/state/step-executions.d.ts +29 -8
- package/dist/state/step-executions.js +28 -4
- package/dist/state/tool-outputs.d.ts +2 -2
- package/dist/state/tool-outputs.js +2 -1
- package/dist/state/vector-store.d.ts +16 -16
- package/dist/state/vector-store.js +11 -7
- package/dist/tasks/data-profile-absorb.d.ts +3 -3
- package/dist/tasks/data-profile-absorb.js +21 -16
- package/dist/tasks/data-profile-activity.d.ts +5 -5
- package/dist/tasks/data-profile-activity.js +5 -5
- package/dist/tasks/data-profile-index.d.ts +4 -4
- package/dist/tasks/data-profile-index.js +32 -17
- package/dist/tasks/data-profile-resolve.d.ts +8 -8
- package/dist/tasks/data-profile-resolve.js +88 -62
- package/dist/tasks/data-profile.d.ts +40 -31
- package/dist/tasks/data-profile.js +138 -95
- package/dist/tasks/extract-values.d.ts +26 -79
- package/dist/tasks/extract-values.js +48 -108
- package/dist/tasks/refresh-regulatory-corpus.d.ts +4 -20
- package/dist/tasks/refresh-regulatory-corpus.js +12 -8
- package/dist/tasks/regulatory-corpus-boot-refresh.d.ts +2 -2
- package/dist/tasks/regulatory-corpus-boot-refresh.js +12 -10
- package/dist/testing.d.ts +60 -0
- package/dist/testing.js +96 -0
- package/dist/tools/ad-hoc-router.d.ts +11 -9
- package/dist/tools/ad-hoc-router.js +80 -51
- package/dist/tools/analysis-invocation.d.ts +7 -0
- package/dist/tools/analysis-invocation.js +29 -5
- package/dist/tools/approval/contract.d.ts +8 -52
- package/dist/tools/approval/contract.js +7 -36
- package/dist/tools/approval/gateway.d.ts +27 -28
- package/dist/tools/approval/gateway.js +33 -130
- package/dist/tools/approval/queries.d.ts +6 -11
- package/dist/tools/approval/queries.js +43 -29
- package/dist/tools/approval/uuidv7.js +2 -2
- package/dist/tools/bio/chembl.d.ts +3 -3
- package/dist/tools/bio/chembl.js +10 -0
- package/dist/tools/bio/comptox.d.ts +25 -8
- package/dist/tools/bio/comptox.js +4 -2
- package/dist/tools/bio/drug-gene-interactions.d.ts +27 -17
- package/dist/tools/bio/drug-gene-interactions.js +11 -8
- package/dist/tools/bio/gene-disease-evidence.d.ts +61 -15
- package/dist/tools/bio/gene-disease-evidence.js +10 -6
- package/dist/tools/bio/gene-preclinical-profile.d.ts +11 -11
- package/dist/tools/bio/keys.d.ts +2 -2
- package/dist/tools/bio/keys.js +3 -3
- package/dist/tools/bio/lookup-annotation.d.ts +5 -5
- package/dist/tools/bio/lookup-annotation.js +3 -0
- package/dist/tools/bio/opentargets.d.ts +1 -1
- package/dist/tools/bio/opentargets.js +6 -0
- package/dist/tools/bio/pubchem.d.ts +2 -2
- package/dist/tools/bio/pubchem.js +6 -0
- package/dist/tools/bio/pubmed.d.ts +26 -16
- package/dist/tools/bio/pubmed.js +9 -3
- package/dist/tools/bio/search-clinical-trials.d.ts +4 -4
- package/dist/tools/bio/search-clinical-trials.js +5 -1
- package/dist/tools/bio/search-faers.d.ts +2 -2
- package/dist/tools/bio/search-faers.js +1 -1
- package/dist/tools/bio/search-gene.d.ts +2 -2
- package/dist/tools/bio/search-gene.js +1 -0
- package/dist/tools/bio/search-geo-datasets.d.ts +4 -4
- package/dist/tools/bio/search-geo-datasets.js +5 -5
- package/dist/tools/bio/search-interactions.d.ts +1 -1
- package/dist/tools/bio/search-patents.d.ts +28 -22
- package/dist/tools/bio/search-patents.js +20 -17
- package/dist/tools/bio/search-protein.d.ts +2 -2
- package/dist/tools/bio/search-protein.js +1 -1
- package/dist/tools/bio/search-regulatory-approvals.d.ts +64 -18
- package/dist/tools/bio/search-regulatory-approvals.js +21 -16
- package/dist/tools/bio/target-safety.d.ts +8 -8
- package/dist/tools/bio/target-safety.js +11 -6
- package/dist/tools/capability-data.d.ts +40 -0
- package/dist/tools/capability-data.js +74 -0
- package/dist/tools/define-tool.d.ts +55 -46
- package/dist/tools/define-tool.js +39 -27
- package/dist/tools/display/normalize-echart-spec.d.ts +2 -2
- package/dist/tools/display/normalize-echart-spec.js +51 -27
- package/dist/tools/display/show-user.d.ts +2 -2
- package/dist/tools/display/show-user.js +1 -1
- package/dist/tools/execute-analysis.d.ts +54 -17
- package/dist/tools/execute-analysis.js +193 -62
- package/dist/tools/knowledge/check.d.ts +182 -0
- package/dist/tools/knowledge/check.js +94 -0
- package/dist/tools/knowledge/client.d.ts +351 -0
- package/dist/tools/knowledge/client.js +319 -0
- package/dist/tools/knowledge/environment.d.ts +78 -0
- package/dist/tools/knowledge/environment.js +116 -0
- package/dist/tools/knowledge/index.d.ts +49 -0
- package/dist/tools/knowledge/index.js +70 -0
- package/dist/tools/knowledge/local-slots.d.ts +62 -0
- package/dist/tools/knowledge/local-slots.js +184 -0
- package/dist/tools/knowledge/pin.d.ts +14 -0
- package/dist/tools/knowledge/pin.js +17 -0
- package/dist/tools/knowledge/recommend.d.ts +67 -0
- package/dist/tools/knowledge/recommend.js +106 -0
- package/dist/tools/knowledge/situation.d.ts +143 -0
- package/dist/tools/knowledge/situation.js +157 -0
- package/dist/tools/knowledge/skeleton.d.ts +69 -0
- package/dist/tools/knowledge/skeleton.js +201 -0
- package/dist/tools/knowledge/template.d.ts +139 -0
- package/dist/tools/knowledge/template.js +273 -0
- package/dist/tools/lib/alphafold-client.js +2 -1
- package/dist/tools/lib/amass-client.d.ts +28 -28
- package/dist/tools/lib/amass-client.js +20 -10
- package/dist/tools/lib/api-utils.d.ts +13 -3
- package/dist/tools/lib/api-utils.js +17 -3
- package/dist/tools/lib/bgee-client.d.ts +6 -6
- package/dist/tools/lib/bgee-client.js +16 -10
- package/dist/tools/lib/cbioportal-client.d.ts +4 -4
- package/dist/tools/lib/cbioportal-client.js +9 -8
- package/dist/tools/lib/chembl-client.d.ts +14 -14
- package/dist/tools/lib/chembl-client.js +11 -4
- package/dist/tools/lib/clinical-benchmarks-client.d.ts +4 -4
- package/dist/tools/lib/clinical-benchmarks-client.js +4 -7
- package/dist/tools/lib/clinical-trials-client.d.ts +18 -18
- package/dist/tools/lib/clinical-trials-client.js +10 -10
- package/dist/tools/lib/clinvar-client.d.ts +2 -2
- package/dist/tools/lib/clinvar-client.js +6 -6
- package/dist/tools/lib/ctx-ops.d.ts +23 -23
- package/dist/tools/lib/ctx-ops.js +13 -10
- package/dist/tools/lib/dgidb-client.d.ts +6 -6
- package/dist/tools/lib/dgidb-client.js +10 -12
- package/dist/tools/lib/disgenet-client.d.ts +4 -4
- package/dist/tools/lib/ema-client.d.ts +2 -2
- package/dist/tools/lib/ensembl-client.d.ts +4 -4
- package/dist/tools/lib/ensembl-client.js +5 -4
- package/dist/tools/lib/gwas-catalog-client.d.ts +4 -4
- package/dist/tools/lib/gwas-catalog-client.js +17 -17
- package/dist/tools/lib/html-text.d.ts +6 -0
- package/dist/tools/lib/html-text.js +9 -0
- package/dist/tools/lib/identifier-resolver.d.ts +4 -4
- package/dist/tools/lib/identifier-resolver.js +7 -3
- package/dist/tools/lib/impc-client.d.ts +8 -8
- package/dist/tools/lib/impc-client.js +46 -35
- package/dist/tools/lib/iuphar-client.d.ts +2 -2
- package/dist/tools/lib/iuphar-client.js +7 -16
- package/dist/tools/lib/monarch-client.d.ts +4 -4
- package/dist/tools/lib/openfda-client.d.ts +22 -22
- package/dist/tools/lib/openfda-client.js +23 -22
- package/dist/tools/lib/opentargets-client.d.ts +12 -12
- package/dist/tools/lib/pathway-client.d.ts +4 -4
- package/dist/tools/lib/pathway-client.js +15 -19
- package/dist/tools/lib/pharmgkb-client.d.ts +2 -2
- package/dist/tools/lib/pharmgkb-client.js +1 -1
- package/dist/tools/lib/protein-family-modality.d.ts +2 -2
- package/dist/tools/lib/protein-family-modality.js +0 -2
- package/dist/tools/lib/protein-family-normalize.js +7 -0
- package/dist/tools/lib/pubchem-client.d.ts +2 -2
- package/dist/tools/lib/pubchem-client.js +1 -0
- package/dist/tools/lib/pubchem-ops.d.ts +4 -4
- package/dist/tools/lib/pubchem-ops.js +8 -0
- package/dist/tools/lib/pubmed-client.d.ts +9 -9
- package/dist/tools/lib/pubmed-client.js +1 -1
- package/dist/tools/lib/string-client.d.ts +6 -6
- package/dist/tools/lib/uniprot-client.d.ts +8 -8
- package/dist/tools/lib/uniprot-client.js +5 -1
- package/dist/tools/memory/update-working-memory.d.ts +16 -13
- package/dist/tools/memory/update-working-memory.js +21 -3
- package/dist/tools/read-tool-output.js +8 -2
- package/dist/tools/registry.d.ts +2 -2
- package/dist/tools/report-authoring/authoring-tools.d.ts +54 -23
- package/dist/tools/report-authoring/authoring-tools.js +128 -62
- package/dist/tools/report-session/derive-table.d.ts +19 -59
- package/dist/tools/report-session/derive-table.js +120 -122
- package/dist/tools/report-session/examine-page.d.ts +6 -6
- package/dist/tools/report-session/examine-page.js +14 -12
- package/dist/tools/report-session/list-artifacts.d.ts +6 -6
- package/dist/tools/report-session/list-artifacts.js +5 -5
- package/dist/tools/report-session/page-faults.d.ts +6 -6
- package/dist/tools/report-session/page-faults.js +3 -1
- package/dist/tools/report-session/preview-report.d.ts +4 -3
- package/dist/tools/report-session/preview-report.js +26 -7
- package/dist/tools/report-session/record-version.d.ts +9 -4
- package/dist/tools/report-session/record-version.js +16 -9
- package/dist/tools/report-session/session-page-publisher.d.ts +6 -6
- package/dist/tools/research/generate-analogy-report.d.ts +14 -7
- package/dist/tools/research/generate-analogy-report.js +80 -76
- package/dist/tools/research/generate-plan.d.ts +39 -16
- package/dist/tools/research/generate-plan.js +565 -338
- package/dist/tools/research/guarded-address.d.ts +20 -0
- package/dist/tools/research/guarded-address.js +149 -0
- package/dist/tools/research/inspect-data-profile.d.ts +27 -20
- package/dist/tools/research/inspect-data-profile.js +26 -25
- package/dist/tools/research/inspect-run.d.ts +54 -27
- package/dist/tools/research/inspect-run.js +50 -40
- package/dist/tools/research/literature-reviewer.d.ts +8 -7
- package/dist/tools/research/literature-reviewer.js +29 -28
- package/dist/tools/research/search-arxiv.d.ts +1 -1
- package/dist/tools/research/search-arxiv.js +1 -1
- package/dist/tools/research/search-github-repos.d.ts +10 -7
- package/dist/tools/research/search-github-repos.js +25 -22
- package/dist/tools/research/search-semantic-scholar.js +1 -1
- package/dist/tools/research/searxng-engine.d.ts +40 -0
- package/dist/tools/research/searxng-engine.js +122 -0
- package/dist/tools/research/web-fetch.d.ts +127 -0
- package/dist/tools/research/web-fetch.js +618 -0
- package/dist/tools/research/web-search.d.ts +84 -0
- package/dist/tools/research/web-search.js +117 -0
- package/dist/tools/sandbox/link-packages.d.ts +11 -7
- package/dist/tools/sandbox/link-packages.js +11 -8
- package/dist/tools/sandbox/list-available-packages.d.ts +24 -12
- package/dist/tools/sandbox/list-available-packages.js +43 -29
- package/dist/tools/sandbox/list-available-refs.d.ts +38 -14
- package/dist/tools/sandbox/list-available-refs.js +119 -37
- package/dist/tools/sandbox/report-blocker.d.ts +30 -37
- package/dist/tools/sandbox/report-blocker.js +22 -68
- package/dist/tools/sandbox/skills.d.ts +16 -12
- package/dist/tools/sandbox/skills.js +16 -12
- package/dist/tools/sandbox/submit-file-metadata.d.ts +12 -9
- package/dist/tools/sandbox/submit-file-metadata.js +18 -21
- package/dist/tools/start-report-session.d.ts +13 -5
- package/dist/tools/start-report-session.js +35 -8
- package/dist/tools/terminal-text.d.ts +14 -0
- package/dist/tools/terminal-text.js +51 -0
- package/dist/tools/workspace/decision-record.d.ts +81 -0
- package/dist/tools/workspace/decision-record.js +127 -0
- package/dist/tools/workspace/edit-file.d.ts +59 -18
- package/dist/tools/workspace/edit-file.js +98 -15
- package/dist/tools/workspace/execute-command.d.ts +31 -12
- package/dist/tools/workspace/execute-command.js +37 -8
- package/dist/tools/workspace/file-stat.d.ts +6 -3
- package/dist/tools/workspace/grep.d.ts +10 -7
- package/dist/tools/workspace/grep.js +9 -3
- package/dist/tools/workspace/index.d.ts +1 -0
- package/dist/tools/workspace/index.js +1 -0
- package/dist/tools/workspace/list-files.d.ts +6 -3
- package/dist/tools/workspace/mutator.d.ts +28 -15
- package/dist/tools/workspace/mutator.js +107 -53
- package/dist/tools/workspace/read-file.d.ts +8 -5
- package/dist/tools/workspace/result-bounds.d.ts +5 -5
- package/dist/tools/workspace/result-bounds.js +4 -2
- package/dist/tools/workspace/run-exec.d.ts +2 -2
- package/dist/tools/workspace/run-exec.js +3 -3
- package/dist/tools/workspace/scan-inputs.d.ts +8 -5
- package/dist/tools/workspace/scan-inputs.js +17 -5
- package/dist/tools/workspace/show-file.d.ts +1 -1
- package/dist/tools/workspace/show-file.js +2 -1
- package/dist/tools/workspace/show-plan.d.ts +8 -5
- package/dist/tools/workspace/show-plan.js +9 -8
- package/dist/tools/workspace/workspace-search.d.ts +41 -13
- package/dist/tools/workspace/workspace-search.js +27 -14
- package/dist/tools/workspace/write-file.d.ts +9 -7
- package/dist/workflows/execute-analysis-scheduler.d.ts +9 -9
- package/dist/workflows/execute-analysis-scheduler.js +6 -3
- package/dist/workflows/execute-analysis.d.ts +100 -76
- package/dist/workflows/execute-analysis.js +380 -247
- package/dist/workflows/pause.d.ts +71 -0
- package/dist/workflows/pause.js +173 -0
- package/dist/workflows/sandbox-step.d.ts +50 -61
- package/dist/workflows/sandbox-step.js +99 -106
- package/dist/workflows/test/sql-writes.d.ts +21 -0
- package/dist/workflows/test/sql-writes.js +36 -0
- package/dist/workspace/filesystem.d.ts +6 -6
- package/dist/workspace/filesystem.js +10 -8
- package/dist/workspace/paths.d.ts +1 -1
- package/dist/workspace/paths.js +15 -4
- package/dist/workspace/search-config.d.ts +2 -2
- package/dist/workspace/search-config.js +1 -1
- package/package.json +25 -22
- package/dist/loop/continue-agent.d.ts +0 -40
- package/dist/loop/continue-agent.js +0 -38
- package/dist/loop/genai-spans.d.ts +0 -47
- package/dist/loop/genai-spans.js +0 -134
- package/dist/loop/run-agent.d.ts +0 -236
- package/dist/loop/run-agent.js +0 -1110
- package/dist/loop/run-step.d.ts +0 -29
- package/dist/loop/run-step.js +0 -34
- package/dist/loop/run-to-terminal.d.ts +0 -66
- package/dist/loop/run-to-terminal.js +0 -90
- package/dist/loop/tool-mask.d.ts +0 -23
- package/dist/loop/tool-mask.js +0 -46
- package/dist/providers/streaming-chat.d.ts +0 -32
- package/dist/providers/streaming-chat.js +0 -91
- package/dist/tasks/derive-table-exec.d.ts +0 -54
- package/dist/tasks/derive-table-exec.js +0 -86
- package/dist/workflows/suspension.d.ts +0 -32
- package/dist/workflows/suspension.js +0 -38
|
@@ -12,6 +12,23 @@ export const PlanStepSchema = z.object({
|
|
|
12
12
|
question: z.string(),
|
|
13
13
|
depends_on: z.array(z.string()),
|
|
14
14
|
resources: z.object({ cpu: z.number(), memoryGb: z.number(), gpu: z.object({ count: z.number() }).optional() }).optional(),
|
|
15
|
+
grounding: z
|
|
16
|
+
.object({
|
|
17
|
+
status: z.string(),
|
|
18
|
+
snapshot: z.string(),
|
|
19
|
+
claims: z.array(z.string()),
|
|
20
|
+
template: z.string().optional(),
|
|
21
|
+
settings: z
|
|
22
|
+
.array(z.object({
|
|
23
|
+
step: z.string(),
|
|
24
|
+
name: z.string(),
|
|
25
|
+
value: z.union([z.string(), z.number(), z.boolean(), z.array(z.string())]),
|
|
26
|
+
source: z.string().optional(),
|
|
27
|
+
}))
|
|
28
|
+
.optional(),
|
|
29
|
+
reason: z.string(),
|
|
30
|
+
})
|
|
31
|
+
.optional(),
|
|
15
32
|
maxSteps: z.number(),
|
|
16
33
|
track: z.string().optional(),
|
|
17
34
|
step_type: z.string().optional(),
|
|
@@ -22,7 +39,7 @@ export const PlanStepSchema = z.object({
|
|
|
22
39
|
export const PresentationContentSchema = z.discriminatedUnion("kind", [
|
|
23
40
|
z.object({
|
|
24
41
|
kind: z.literal("echart"),
|
|
25
|
-
spec: z.record(z.string(), z.
|
|
42
|
+
spec: z.record(z.string(), z.json()),
|
|
26
43
|
// Analysis-rooted CSV path the host resolves to `dataset.source` at render time; optional
|
|
27
44
|
// because a self-contained spec may embed its own data.
|
|
28
45
|
dataPath: z.string().optional(),
|
|
@@ -62,14 +79,13 @@ export const PresentationPartSchema = z.object({
|
|
|
62
79
|
content: PresentationContentSchema,
|
|
63
80
|
});
|
|
64
81
|
// ── Plan reference ──────────────────────────────────────────────────
|
|
82
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the issued plan-id shape: the pln- prefix plus 8 hex digits.
|
|
83
|
+
export const PLAN_ID_RE = /^pln-[a-f0-9]{8}$/;
|
|
65
84
|
export const PlanPartSchema = z.object({
|
|
66
85
|
type: z.literal("data-plan"),
|
|
67
86
|
id: z.string(),
|
|
68
|
-
planId: z.string().regex(
|
|
69
|
-
parentPlanId: z
|
|
70
|
-
.string()
|
|
71
|
-
.regex(/^pln-[a-f0-9]{8}$/)
|
|
72
|
-
.optional(),
|
|
87
|
+
planId: z.string().regex(PLAN_ID_RE),
|
|
88
|
+
parentPlanId: z.string().regex(PLAN_ID_RE).optional(),
|
|
73
89
|
title: z.string().optional(),
|
|
74
90
|
steps: z.array(PlanStepSchema).optional(),
|
|
75
91
|
analytical_narrative: z.string().optional(),
|
|
@@ -88,7 +104,7 @@ export const RunCardPartSchema = z.object({
|
|
|
88
104
|
// ── Plan approval ───────────────────────────────────────────────────
|
|
89
105
|
export const PlanApprovalPartSchema = z.object({
|
|
90
106
|
type: z.literal("data-plan-approval"),
|
|
91
|
-
planId: z.string().regex(
|
|
107
|
+
planId: z.string().regex(PLAN_ID_RE),
|
|
92
108
|
runId: z.string(),
|
|
93
109
|
approvedAt: z.iso.datetime(),
|
|
94
110
|
});
|
|
@@ -345,6 +361,31 @@ export const CompactionPartSchema = z.object({
|
|
|
345
361
|
durationMs: z.number().int().nonnegative().optional(),
|
|
346
362
|
trigger: z.enum(["turn-start", "mid-turn"]).optional(),
|
|
347
363
|
});
|
|
364
|
+
// ── Pause ───────────────────────────────────────────────────────────
|
|
365
|
+
export const PauseCauseSchema = z.discriminatedUnion("kind", [
|
|
366
|
+
z.object({ kind: z.literal("outage") }),
|
|
367
|
+
z.object({ kind: z.literal("credential") }),
|
|
368
|
+
z.object({ kind: z.literal("host"), reason: z.string() }),
|
|
369
|
+
]);
|
|
370
|
+
export const PausePartSchema = z.object({
|
|
371
|
+
type: z.literal("data-pause"),
|
|
372
|
+
id: z.string(),
|
|
373
|
+
workId: z.string(),
|
|
374
|
+
workKind: z.enum(["turn", "run", "profile"]),
|
|
375
|
+
state: z.enum(["retrying", "paused", "running"]),
|
|
376
|
+
cause: PauseCauseSchema.optional(),
|
|
377
|
+
attempt: z.number().int().nonnegative().optional(),
|
|
378
|
+
retryAt: z.string().optional(),
|
|
379
|
+
});
|
|
380
|
+
// ── Model retry ─────────────────────────────────────────────────────
|
|
381
|
+
export const ModelRetryPartSchema = z.object({
|
|
382
|
+
type: z.literal("data-model-retry"),
|
|
383
|
+
id: z.string(),
|
|
384
|
+
attempt: z.number().int().positive(),
|
|
385
|
+
maxRetries: z.number().int().positive(),
|
|
386
|
+
retryAt: z.string(),
|
|
387
|
+
status: z.number().int().optional(),
|
|
388
|
+
});
|
|
348
389
|
// ── Sub-agent activity ──────────────────────────────────────────────
|
|
349
390
|
export const SubAgentActivityEntrySchema = z.object({
|
|
350
391
|
agentId: z.string(),
|
|
@@ -387,4 +428,6 @@ export const ChatPartSchema = z.discriminatedUnion("type", [
|
|
|
387
428
|
ChildSessionStartedPartSchema,
|
|
388
429
|
ReportRenderedPartSchema,
|
|
389
430
|
CompactionPartSchema,
|
|
431
|
+
PausePartSchema,
|
|
432
|
+
ModelRetryPartSchema,
|
|
390
433
|
]);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { PlanStepSchema, PresentationContentSchema, PresentationPartSchema, PlanPartSchema, RunCardPartSchema, PlanApprovalPartSchema, FileReferenceEntrySchema, FileReferencePartSchema, RunStartedPartSchema, StepStatusSchema, DagStepStateSchema, DagStatePartSchema, StepPhaseSchema, StepActivityPartSchema, ActivityEntryPartSchema, SubAgentActivityEntrySchema, SubAgentActivityPartSchema, FileTreeEntrySchema, StepFileTreePartSchema, StepOutputFileSchema, StepOutputPartSchema, StepSummaryPartSchema, StepUsagePartSchema, StepBlockedPartSchema, FindingReferenceSchema, SynthesizedFindingSchema, BiologicalThemeSchema, RunSynthesisPartSchema, SynthesisPhaseSchema, SynthesisProgressPartSchema, RunCompletedFindingSchema, RunCompletedPartSchema, RunFailedPartSchema, ChatPartSchema, } from "./chat-parts.js";
|
|
2
|
-
export { EventSourceSchema, TextDeltaEventSchema, IterationEventSchema, ToolStartedEventSchema, ToolFinishedEventSchema, FinishEventSchema, ChatErrorEventSchema, ChatEventSchema, } from "./chat-events.js";
|
|
2
|
+
export { EventSourceSchema, TextDeltaEventSchema, IterationEventSchema, ToolStartedEventSchema, ToolFinishedEventSchema, FinishEventSchema, ChatErrorEventSchema, MessageStartEventSchema, ChatEventSchema, } from "./chat-events.js";
|
|
3
3
|
export { TokenUsageRollupSchema } from "./usage.js";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { PlanStepSchema, PresentationContentSchema, PresentationPartSchema, PlanPartSchema, RunCardPartSchema, PlanApprovalPartSchema, FileReferenceEntrySchema, FileReferencePartSchema, RunStartedPartSchema, StepStatusSchema, DagStepStateSchema, DagStatePartSchema, StepPhaseSchema, StepActivityPartSchema, ActivityEntryPartSchema, SubAgentActivityEntrySchema, SubAgentActivityPartSchema, FileTreeEntrySchema, StepFileTreePartSchema, StepOutputFileSchema, StepOutputPartSchema, StepSummaryPartSchema, StepUsagePartSchema, StepBlockedPartSchema, FindingReferenceSchema, SynthesizedFindingSchema, BiologicalThemeSchema, RunSynthesisPartSchema, SynthesisPhaseSchema, SynthesisProgressPartSchema, RunCompletedFindingSchema, RunCompletedPartSchema, RunFailedPartSchema, ChatPartSchema, } from "./chat-parts.js";
|
|
2
|
-
export { EventSourceSchema, TextDeltaEventSchema, IterationEventSchema, ToolStartedEventSchema, ToolFinishedEventSchema, FinishEventSchema, ChatErrorEventSchema, ChatEventSchema, } from "./chat-events.js";
|
|
2
|
+
export { EventSourceSchema, TextDeltaEventSchema, IterationEventSchema, ToolStartedEventSchema, ToolFinishedEventSchema, FinishEventSchema, ChatErrorEventSchema, MessageStartEventSchema, ChatEventSchema, } from "./chat-events.js";
|
|
3
3
|
export { TokenUsageRollupSchema } from "./usage.js";
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
import { z } from "zod";
|
|
9
9
|
export declare const SEVERITIES: readonly ["high", "medium", "low"];
|
|
10
10
|
export declare const SeveritySchema: z.ZodEnum<{
|
|
11
|
+
high: "high";
|
|
11
12
|
low: "low";
|
|
12
13
|
medium: "medium";
|
|
13
|
-
high: "high";
|
|
14
14
|
}>;
|
|
15
15
|
export type Severity = (typeof SEVERITIES)[number];
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
* parse over a persisted `url` before it fetches, so a card the harness would
|
|
12
12
|
* refuse today is refused at render time too.
|
|
13
13
|
*
|
|
14
|
-
* This module is browser-safe: it imports
|
|
14
|
+
* This module is browser-safe: it imports no platform API, and each import from outside `contracts/` is a type import.
|
|
15
15
|
*/
|
|
16
16
|
export type StructureFormat = "pdb" | "mmcif";
|
|
17
|
-
export
|
|
17
|
+
export type StructureSource = {
|
|
18
18
|
readonly provider: "alphafold";
|
|
19
19
|
/** The UniProt accession the model is keyed by, isoform suffix included (`P38398-2`). */
|
|
20
20
|
readonly accession: string;
|
|
@@ -23,7 +23,7 @@ export interface StructureSource {
|
|
|
23
23
|
readonly format: StructureFormat;
|
|
24
24
|
/** The normalized file URL — what a host fetches and what the transcript attests to. */
|
|
25
25
|
readonly url: string;
|
|
26
|
-
}
|
|
26
|
+
};
|
|
27
27
|
/**
|
|
28
28
|
* Parse a structure URL into its source, or `null` when the grammar refuses it.
|
|
29
29
|
*
|
|
@@ -11,10 +11,11 @@
|
|
|
11
11
|
* parse over a persisted `url` before it fetches, so a card the harness would
|
|
12
12
|
* refuse today is refused at render time too.
|
|
13
13
|
*
|
|
14
|
-
* This module is browser-safe: it imports
|
|
14
|
+
* This module is browser-safe: it imports no platform API, and each import from outside `contracts/` is a type import.
|
|
15
15
|
*/
|
|
16
16
|
const ALPHAFOLD_ORIGIN = "https://alphafold.ebi.ac.uk";
|
|
17
17
|
/** `/files/AF-{accession}-F{fragment}-model_v{version}.{pdb|cif}` — the AlphaFold DB file path shape. */
|
|
18
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the AlphaFold file-path grammar with its accession, fragment, and version captures; the captures name the fields the source record carries.
|
|
18
19
|
const ALPHAFOLD_FILE_PATH = /^\/files\/AF-([A-Z0-9]+(?:-\d+)?)-F\d+-model_v(\d+)\.(pdb|cif)$/;
|
|
19
20
|
/**
|
|
20
21
|
* Parse a structure URL into its source, or `null` when the grammar refuses it.
|
|
@@ -40,12 +41,15 @@ export function parseStructureUrl(url) {
|
|
|
40
41
|
const match = ALPHAFOLD_FILE_PATH.exec(parsed.pathname);
|
|
41
42
|
if (match === null)
|
|
42
43
|
return null;
|
|
44
|
+
const accession = match[1];
|
|
45
|
+
if (accession === undefined)
|
|
46
|
+
return null;
|
|
43
47
|
const version = Number(match[2]);
|
|
44
48
|
if (!Number.isInteger(version) || version < 1)
|
|
45
49
|
return null;
|
|
46
50
|
return {
|
|
47
51
|
provider: "alphafold",
|
|
48
|
-
accession
|
|
52
|
+
accession,
|
|
49
53
|
version,
|
|
50
54
|
format: match[3] === "pdb" ? "pdb" : "mmcif",
|
|
51
55
|
url: parsed.href,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { ChatFrame, ChatPartFrame } from "./chat-events.js";
|
|
2
2
|
/** The most entries that one root tool call holds. Each later call of its sub-agents only adds to `dropped`. */
|
|
3
3
|
export declare const SUBAGENT_ACTIVITY_MAX_ENTRIES = 200;
|
|
4
|
-
export
|
|
4
|
+
export type SubAgentActivityTracker = {
|
|
5
5
|
/**
|
|
6
6
|
* Read one frame of the turn, from the root agent or from a sub-agent, with the time of its receipt in
|
|
7
7
|
* milliseconds. Gives the new `data-subagent-activity` part frame (no source) when the frame changes the activity
|
|
8
8
|
* of a root tool call, else `null`.
|
|
9
9
|
*/
|
|
10
10
|
track(frame: ChatFrame, nowMs: number): ChatPartFrame | null;
|
|
11
|
-
}
|
|
11
|
+
};
|
|
12
12
|
export declare function createSubAgentActivityTracker(): SubAgentActivityTracker;
|
|
@@ -42,13 +42,15 @@ export function createSubAgentActivityTracker() {
|
|
|
42
42
|
calls.set(callKey(source.callPath, frame.toolUseId), { rootId: parent.rootId, startedMs: nowMs });
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
45
|
-
|
|
45
|
+
const entry = {
|
|
46
46
|
agentId: source.agentId,
|
|
47
47
|
callPath: [...source.callPath],
|
|
48
48
|
tool: frame.name,
|
|
49
|
-
...(frame.detail === undefined ? {} : { label: frame.detail }),
|
|
50
49
|
startedAt: new Date(nowMs).toISOString(),
|
|
51
|
-
}
|
|
50
|
+
};
|
|
51
|
+
if (frame.detail !== undefined)
|
|
52
|
+
entry.label = frame.detail;
|
|
53
|
+
record.entries.push(entry);
|
|
52
54
|
calls.set(callKey(source.callPath, frame.toolUseId), {
|
|
53
55
|
rootId: parent.rootId,
|
|
54
56
|
entryIndex: record.entries.length - 1,
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* of calls that reported nothing carries no rollup at all rather than an
|
|
13
13
|
* all-zero one, so a consumer can tell "spent nothing" from "was told nothing".
|
|
14
14
|
*/
|
|
15
|
-
export
|
|
15
|
+
export type TokenUsageRollup = {
|
|
16
16
|
/** Total billed prefix, cache reads included. */
|
|
17
17
|
readonly inputTokens?: number;
|
|
18
18
|
readonly outputTokens?: number;
|
|
@@ -26,7 +26,7 @@ export interface TokenUsageRollup {
|
|
|
26
26
|
* total varies by provider, so arithmetic between the two is a guess.
|
|
27
27
|
*/
|
|
28
28
|
readonly reasoningTokens?: number;
|
|
29
|
-
}
|
|
29
|
+
};
|
|
30
30
|
/**
|
|
31
31
|
* The rollup's fields as values — the single enumeration a fold can iterate.
|
|
32
32
|
*
|
|
@@ -8,30 +8,30 @@ export declare const SafetyTargetSchema: z.ZodObject<{
|
|
|
8
8
|
ensembl_gene_id: z.ZodOptional<z.ZodString>;
|
|
9
9
|
name: z.ZodString;
|
|
10
10
|
organ_system: z.ZodEnum<{
|
|
11
|
+
cardiac: "cardiac";
|
|
12
|
+
cns: "cns";
|
|
13
|
+
dermatologic: "dermatologic";
|
|
14
|
+
endocrine_thyroid: "endocrine_thyroid";
|
|
15
|
+
gi: "gi";
|
|
11
16
|
hematologic: "hematologic";
|
|
12
|
-
metabolic: "metabolic";
|
|
13
|
-
immune: "immune";
|
|
14
17
|
hepatic: "hepatic";
|
|
18
|
+
immune: "immune";
|
|
19
|
+
metabolic: "metabolic";
|
|
15
20
|
musculoskeletal: "musculoskeletal";
|
|
16
|
-
|
|
21
|
+
ocular: "ocular";
|
|
22
|
+
oncology: "oncology";
|
|
23
|
+
pancreas: "pancreas";
|
|
24
|
+
pns: "pns";
|
|
17
25
|
renal: "renal";
|
|
18
26
|
reproductive: "reproductive";
|
|
19
27
|
respiratory: "respiratory";
|
|
20
|
-
cardiac: "cardiac";
|
|
21
28
|
vascular: "vascular";
|
|
22
|
-
pns: "pns";
|
|
23
|
-
gi: "gi";
|
|
24
|
-
pancreas: "pancreas";
|
|
25
|
-
endocrine_thyroid: "endocrine_thyroid";
|
|
26
|
-
dermatologic: "dermatologic";
|
|
27
|
-
ocular: "ocular";
|
|
28
|
-
oncology: "oncology";
|
|
29
29
|
}>;
|
|
30
30
|
clinical_consequence: z.ZodString;
|
|
31
31
|
severity: z.ZodEnum<{
|
|
32
|
+
high: "high";
|
|
32
33
|
low: "low";
|
|
33
34
|
medium: "medium";
|
|
34
|
-
high: "high";
|
|
35
35
|
}>;
|
|
36
36
|
references: z.ZodArray<z.ZodString>;
|
|
37
37
|
}, z.core.$strip>;
|
|
@@ -39,7 +39,7 @@ export type SafetyTarget = z.infer<typeof SafetyTargetSchema>;
|
|
|
39
39
|
export declare const SafetyPanelFileSchema: z.ZodObject<{
|
|
40
40
|
schema_version: z.ZodLiteral<1>;
|
|
41
41
|
panel_version: z.ZodString;
|
|
42
|
-
curated_at: z.
|
|
42
|
+
curated_at: z.ZodISODate;
|
|
43
43
|
targets: z.ZodArray<z.ZodObject<{
|
|
44
44
|
chembl_id: z.ZodString;
|
|
45
45
|
gene_symbol: z.ZodString;
|
|
@@ -47,30 +47,30 @@ export declare const SafetyPanelFileSchema: z.ZodObject<{
|
|
|
47
47
|
ensembl_gene_id: z.ZodOptional<z.ZodString>;
|
|
48
48
|
name: z.ZodString;
|
|
49
49
|
organ_system: z.ZodEnum<{
|
|
50
|
+
cardiac: "cardiac";
|
|
51
|
+
cns: "cns";
|
|
52
|
+
dermatologic: "dermatologic";
|
|
53
|
+
endocrine_thyroid: "endocrine_thyroid";
|
|
54
|
+
gi: "gi";
|
|
50
55
|
hematologic: "hematologic";
|
|
51
|
-
metabolic: "metabolic";
|
|
52
|
-
immune: "immune";
|
|
53
56
|
hepatic: "hepatic";
|
|
57
|
+
immune: "immune";
|
|
58
|
+
metabolic: "metabolic";
|
|
54
59
|
musculoskeletal: "musculoskeletal";
|
|
55
|
-
|
|
60
|
+
ocular: "ocular";
|
|
61
|
+
oncology: "oncology";
|
|
62
|
+
pancreas: "pancreas";
|
|
63
|
+
pns: "pns";
|
|
56
64
|
renal: "renal";
|
|
57
65
|
reproductive: "reproductive";
|
|
58
66
|
respiratory: "respiratory";
|
|
59
|
-
cardiac: "cardiac";
|
|
60
67
|
vascular: "vascular";
|
|
61
|
-
pns: "pns";
|
|
62
|
-
gi: "gi";
|
|
63
|
-
pancreas: "pancreas";
|
|
64
|
-
endocrine_thyroid: "endocrine_thyroid";
|
|
65
|
-
dermatologic: "dermatologic";
|
|
66
|
-
ocular: "ocular";
|
|
67
|
-
oncology: "oncology";
|
|
68
68
|
}>;
|
|
69
69
|
clinical_consequence: z.ZodString;
|
|
70
70
|
severity: z.ZodEnum<{
|
|
71
|
+
high: "high";
|
|
71
72
|
low: "low";
|
|
72
73
|
medium: "medium";
|
|
73
|
-
high: "high";
|
|
74
74
|
}>;
|
|
75
75
|
references: z.ZodArray<z.ZodString>;
|
|
76
76
|
}, z.core.$strip>>;
|
|
@@ -1,20 +1,28 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { OrganSystemSchema } from "../contracts/organ-system.js";
|
|
3
3
|
import { SeveritySchema } from "../contracts/severity.js";
|
|
4
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the fixed CHEMBL<n> shape is the identifier that the ChEMBL registry issues.
|
|
4
5
|
export const CHEMBL_RE = /^CHEMBL\d+$/;
|
|
5
6
|
// UniProt 6-char accession: letter (any A-Z, covering A-N, O, P, Q, R-Z sub-families),
|
|
6
7
|
// followed by a digit, three alphanumerics, and a final digit.
|
|
8
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the fixed six-character accession shape is what UniProt issues.
|
|
7
9
|
export const UNIPROT_RE = /^[A-Z][0-9][A-Z0-9]{3}[0-9]$/;
|
|
10
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- an HGNC symbol is uppercase alphanumeric segments joined by hyphens; the shape is the naming rule.
|
|
11
|
+
const HGNC_SYMBOL_RE = /^[A-Z][A-Z0-9]*(-[A-Z0-9]+)*$/;
|
|
8
12
|
const ChemblIdSchema = z.string().regex(CHEMBL_RE, "must match CHEMBL\\d+");
|
|
9
13
|
const GeneSymbolSchema = z
|
|
10
14
|
.string()
|
|
11
15
|
.min(1)
|
|
12
16
|
.max(20)
|
|
13
|
-
.regex(
|
|
17
|
+
.regex(HGNC_SYMBOL_RE, "must be HGNC-style uppercase");
|
|
14
18
|
const UniprotSchema = z.string().regex(UNIPROT_RE, "must be a 6-char UniProt accession");
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
const
|
|
19
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- an Ensembl gene id is ENSG plus 11 digits, the fixed Ensembl shape.
|
|
20
|
+
const ENSEMBL_GENE_RE = /^ENSG\d{11}$/;
|
|
21
|
+
const EnsemblGeneSchema = z.string().regex(ENSEMBL_GENE_RE, "must match ENSG\\d{11}");
|
|
22
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- a reference is one of the two prefixed provenance forms; the alternation is the rule.
|
|
23
|
+
const REFERENCE_RE = /^(PMID:\d+|DOI:.+)$/;
|
|
24
|
+
const ReferenceSchema = z.string().regex(REFERENCE_RE, "must be PMID:<digits> or DOI:<doi>");
|
|
25
|
+
const IsoDateSchema = z.iso.date();
|
|
18
26
|
export const SafetyTargetSchema = z.object({
|
|
19
27
|
chembl_id: ChemblIdSchema,
|
|
20
28
|
gene_symbol: GeneSymbolSchema,
|
|
@@ -28,6 +36,7 @@ export const SafetyTargetSchema = z.object({
|
|
|
28
36
|
});
|
|
29
37
|
export const SafetyPanelFileSchema = z.object({
|
|
30
38
|
schema_version: z.literal(1),
|
|
39
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- a dotted three-part version is the file format's own version rule.
|
|
31
40
|
panel_version: z.string().regex(/^\d+\.\d+\.\d+$/, "semver"),
|
|
32
41
|
curated_at: IsoDateSchema,
|
|
33
42
|
targets: z.array(SafetyTargetSchema),
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-step artifact metadata generation — describes a step's output files
|
|
3
|
-
* through a
|
|
4
|
-
* on the harness `ChatProvider`.
|
|
3
|
+
* through a follow-up request of the step agent's conversation (`continueLoop`)
|
|
4
|
+
* on the harness `ChatProvider`. The description of each file comes from the
|
|
5
|
+
* recorded calls of `submit_file_metadata`: the last description of a path wins.
|
|
5
6
|
*
|
|
6
7
|
* The continuation extends the prefix that the task cached, so each signed
|
|
7
8
|
* thinking block of the task must stay valid across the extension.
|
|
@@ -17,21 +18,23 @@
|
|
|
17
18
|
* obligation on every provider call.
|
|
18
19
|
*/
|
|
19
20
|
import type { AgentSession } from "../auth/types.js";
|
|
21
|
+
import { type LoopStep } from "../loop/run-loop.js";
|
|
20
22
|
import { type ToolOutputStore } from "../loop/tool-output.js";
|
|
21
23
|
import type { AgentDefinition, LoopMessage } from "../loop/types.js";
|
|
22
|
-
import type {
|
|
24
|
+
import type { ChatProvider } from "../providers/types.js";
|
|
25
|
+
import { type SubmittedFileDescription } from "../schemas/file-metadata.js";
|
|
23
26
|
import { type FileMetadataCell } from "../tools/sandbox/submit-file-metadata.js";
|
|
24
27
|
import type { Logger } from "../lib/logger.js";
|
|
25
28
|
import type { UsageRecorder } from "../billing/usage-recorder.js";
|
|
26
|
-
export
|
|
29
|
+
export type ArtifactForMetadata = {
|
|
27
30
|
/** Path used to update `cortex_artifacts` after metadata generation. */
|
|
28
31
|
readonly dbPath: string;
|
|
29
32
|
/** Path shown to the model and used as the per-file key. */
|
|
30
33
|
readonly displayPath: string;
|
|
31
34
|
/** File size in bytes — surfaced in the deterministic fallback description. */
|
|
32
35
|
readonly sizeBytes?: number;
|
|
33
|
-
}
|
|
34
|
-
export
|
|
36
|
+
};
|
|
37
|
+
export type GenerateFileMetadataOptions = {
|
|
35
38
|
/** Operational logging seam; omitted falls back to no-op. */
|
|
36
39
|
readonly logger?: Logger;
|
|
37
40
|
/** LLM usage-accounting seam for the continuation; omitted falls back to the no-op recorder. */
|
|
@@ -39,7 +42,7 @@ export interface GenerateFileMetadataOptions {
|
|
|
39
42
|
/** The store of the task, thus the loop of the continuation keeps its texts where the read tool of the agent reads them. */
|
|
40
43
|
readonly toolOutputStore?: ToolOutputStore;
|
|
41
44
|
/** The provider of the task, thus each request extends the prefix that the task cached. */
|
|
42
|
-
readonly provider:
|
|
45
|
+
readonly provider: ChatProvider;
|
|
43
46
|
readonly session: AgentSession;
|
|
44
47
|
readonly artifacts: readonly ArtifactForMetadata[];
|
|
45
48
|
readonly resourceId: string;
|
|
@@ -47,27 +50,32 @@ export interface GenerateFileMetadataOptions {
|
|
|
47
50
|
readonly extraMetadata?: Record<string, unknown>;
|
|
48
51
|
/** The step agent: the continuation sends its system prompt and its declared tools. */
|
|
49
52
|
readonly agent: AgentDefinition;
|
|
50
|
-
/** The cell
|
|
53
|
+
/** The cell of the `submit_file_metadata` tool of `agent`: it holds the known paths of the request. */
|
|
51
54
|
readonly cell: FileMetadataCell;
|
|
52
55
|
/**
|
|
53
|
-
* The transcript
|
|
56
|
+
* The transcript of the task that the follow-up request extends, to
|
|
54
57
|
* ground each file's description in why the step produced it.
|
|
55
58
|
*/
|
|
56
59
|
readonly transcript: readonly LoopMessage[];
|
|
57
60
|
readonly signal?: AbortSignal;
|
|
58
|
-
}
|
|
59
|
-
export
|
|
61
|
+
};
|
|
62
|
+
export type FileMetadataEntry = {
|
|
60
63
|
readonly dbPath: string;
|
|
61
64
|
readonly description: string;
|
|
62
65
|
readonly metadata: Record<string, unknown>;
|
|
63
|
-
}
|
|
64
|
-
export
|
|
66
|
+
};
|
|
67
|
+
export type FileMetadataResult = {
|
|
65
68
|
/** Number of files the model described — excludes deterministic fallbacks. */
|
|
66
69
|
readonly indexed: number;
|
|
67
70
|
/** One entry per input artifact (described or fallback), input order. */
|
|
68
71
|
readonly entries: readonly FileMetadataEntry[];
|
|
69
72
|
/** The continuation's new messages: the request, then its replies. Empty when no continuation ran. */
|
|
70
73
|
readonly messages: readonly LoopMessage[];
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* The description of each known path, from the calls of `submit_file_metadata` that ran, in order. A later
|
|
77
|
+
* description of a path replaces an earlier one, and a path outside the list is no file of the step.
|
|
78
|
+
*/
|
|
79
|
+
export declare function submittedDescriptions(steps: readonly LoopStep[], knownPaths: ReadonlySet<string>): Map<string, SubmittedFileDescription>;
|
|
80
|
+
/** Describes a step's known artifacts; a follow-up failure degrades to per-file fallbacks rather than throwing. */
|
|
73
81
|
export declare function generateFileMetadata(opts: GenerateFileMetadataOptions): Promise<FileMetadataResult>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-step artifact metadata generation — describes a step's output files
|
|
3
|
-
* through a
|
|
4
|
-
* on the harness `ChatProvider`.
|
|
3
|
+
* through a follow-up request of the step agent's conversation (`continueLoop`)
|
|
4
|
+
* on the harness `ChatProvider`. The description of each file comes from the
|
|
5
|
+
* recorded calls of `submit_file_metadata`: the last description of a path wins.
|
|
5
6
|
*
|
|
6
7
|
* The continuation extends the prefix that the task cached, so each signed
|
|
7
8
|
* thinking block of the task must stay valid across the extension.
|
|
@@ -16,10 +17,11 @@
|
|
|
16
17
|
* `Session` is taken explicitly (see the harness-durable-runtime spec) — billing is a compile-time
|
|
17
18
|
* obligation on every provider call.
|
|
18
19
|
*/
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
20
|
+
import { continueLoop } from "../loop/run-loop.js";
|
|
21
|
+
import { recordedInputOf } from "../loop/tool-adapter.js";
|
|
21
22
|
import { READ_TOOL_OUTPUT_TOOL_ID } from "../loop/tool-output.js";
|
|
22
23
|
import { inferArtifactType } from "../schemas/artifact-manifest.js";
|
|
24
|
+
import { SubmitFileMetadataInputSchema } from "../schemas/file-metadata.js";
|
|
23
25
|
import { SUBMIT_FILE_METADATA_TOOL_ID } from "../tools/sandbox/submit-file-metadata.js";
|
|
24
26
|
import { createNoopLogger } from "../lib/console-logger.js";
|
|
25
27
|
const DESCRIBER_AGENT_ID = "file-metadata-describer";
|
|
@@ -88,7 +90,28 @@ function fallbackEntry(artifact, extra) {
|
|
|
88
90
|
metadata: { ...extra, dataType: fileType, format },
|
|
89
91
|
};
|
|
90
92
|
}
|
|
91
|
-
/**
|
|
93
|
+
/**
|
|
94
|
+
* The description of each known path, from the calls of `submit_file_metadata` that ran, in order. A later
|
|
95
|
+
* description of a path replaces an earlier one, and a path outside the list is no file of the step.
|
|
96
|
+
*/
|
|
97
|
+
export function submittedDescriptions(steps, knownPaths) {
|
|
98
|
+
const descriptions = new Map();
|
|
99
|
+
for (const step of steps) {
|
|
100
|
+
for (const call of step.calls) {
|
|
101
|
+
if (call.toolName !== SUBMIT_FILE_METADATA_TOOL_ID || call.output?.outcome !== "ok")
|
|
102
|
+
continue;
|
|
103
|
+
const input = recordedInputOf(SubmitFileMetadataInputSchema, call.input);
|
|
104
|
+
if (input === undefined)
|
|
105
|
+
continue;
|
|
106
|
+
for (const entry of input.files) {
|
|
107
|
+
if (knownPaths.has(entry.path))
|
|
108
|
+
descriptions.set(entry.path, entry);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return descriptions;
|
|
113
|
+
}
|
|
114
|
+
/** Describes a step's known artifacts; a follow-up failure degrades to per-file fallbacks rather than throwing. */
|
|
92
115
|
export async function generateFileMetadata(opts) {
|
|
93
116
|
const logger = (opts.logger ?? createNoopLogger()).named("artifact-metadata").with({ resourceId: opts.resourceId });
|
|
94
117
|
if (opts.artifacts.length === 0) {
|
|
@@ -105,30 +128,30 @@ export async function generateFileMetadata(opts) {
|
|
|
105
128
|
}
|
|
106
129
|
opts.cell.expect(opts.artifacts.map((a) => a.displayPath));
|
|
107
130
|
let messages = [];
|
|
131
|
+
let descriptions = new Map();
|
|
108
132
|
try {
|
|
109
|
-
const continued = await
|
|
133
|
+
const continued = await continueLoop(opts.agent, opts.transcript, {
|
|
110
134
|
text: describerRequest(opts.artifacts),
|
|
111
135
|
mask: { allow: DESCRIBER_TOOLS },
|
|
112
136
|
maxRequests: DESCRIBER_MAX_REQUESTS,
|
|
113
|
-
stepNamespace: "file-metadata",
|
|
114
137
|
accountingAgentId: DESCRIBER_AGENT_ID,
|
|
115
138
|
}, opts.session, {
|
|
116
139
|
provider: opts.provider,
|
|
117
140
|
signal: opts.signal ?? new AbortController().signal,
|
|
118
141
|
emit: () => { },
|
|
119
|
-
runStep: passthroughStep,
|
|
120
142
|
usageRecorder: opts.usageRecorder,
|
|
121
143
|
toolOutputStore: opts.toolOutputStore,
|
|
122
144
|
});
|
|
123
145
|
messages = continued.messages;
|
|
146
|
+
descriptions = submittedDescriptions(continued.steps, new Set(opts.artifacts.map((a) => a.displayPath)));
|
|
124
147
|
}
|
|
125
148
|
catch (err) {
|
|
126
|
-
logger.warn("describer
|
|
149
|
+
logger.warn("describer follow-up request failed; using fallbacks", logger.errorFields(err));
|
|
127
150
|
}
|
|
128
151
|
const entries = [];
|
|
129
152
|
const fallbackPaths = [];
|
|
130
153
|
for (const artifact of opts.artifacts) {
|
|
131
|
-
const desc =
|
|
154
|
+
const desc = descriptions.get(artifact.displayPath);
|
|
132
155
|
if (desc) {
|
|
133
156
|
entries.push(buildEntry(artifact, desc, opts.extraMetadata));
|
|
134
157
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Pure data type; lives in its own file because it is shared across
|
|
5
5
|
* `execution/` and `provenance/`.
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
7
|
+
export type ArtifactRecord = {
|
|
8
8
|
path: string;
|
|
9
9
|
hash: string;
|
|
10
10
|
size: number;
|
|
@@ -20,4 +20,4 @@ export interface ArtifactRecord {
|
|
|
20
20
|
* deterministic call-activity identifier on it.
|
|
21
21
|
*/
|
|
22
22
|
invocationId: string;
|
|
23
|
-
}
|
|
23
|
+
};
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
* decision — this module never names one.
|
|
11
11
|
*/
|
|
12
12
|
import { type Result } from "neverthrow";
|
|
13
|
-
import type {
|
|
13
|
+
import type { Querier } from "../state/db.js";
|
|
14
14
|
import type { AgentSession } from "../auth/types.js";
|
|
15
15
|
import type { DbError } from "../lib/db-result.js";
|
|
16
16
|
import { type GateRefusal } from "../lib/hooks.js";
|
|
17
17
|
import type { Logger } from "../lib/logger.js";
|
|
18
18
|
import type { ArtifactRegistry, ArtifactRegistrationInput } from "./artifact-registry.js";
|
|
19
|
-
export type { ArtifactRegistrationInput };
|
|
20
|
-
export
|
|
19
|
+
export type { ArtifactRegistrationInput } from "./artifact-registry.js";
|
|
20
|
+
export type ArtifactRegistrationResult = {
|
|
21
21
|
/** Number of artifacts written to the local ledger. */
|
|
22
22
|
localCount: number;
|
|
23
23
|
/** Number of artifacts registered externally and given external IDs. */
|
|
@@ -29,7 +29,7 @@ export interface ArtifactRegistrationResult {
|
|
|
29
29
|
path: string;
|
|
30
30
|
error: string;
|
|
31
31
|
}>;
|
|
32
|
-
}
|
|
32
|
+
};
|
|
33
33
|
/** Why a registration stopped: the `register` gate refused it, or a write of the local ledger failed. */
|
|
34
34
|
export type ArtifactRegistrationFailure = {
|
|
35
35
|
readonly kind: "refused";
|
|
@@ -49,4 +49,4 @@ export type ArtifactRegistrationFailure = {
|
|
|
49
49
|
* `artifact_id = NULL`. A failed ledger write stops the registration at that
|
|
50
50
|
* write.
|
|
51
51
|
*/
|
|
52
|
-
export declare function registerStepArtifacts(db:
|
|
52
|
+
export declare function registerStepArtifacts(db: Querier, registry: ArtifactRegistry, input: ArtifactRegistrationInput, session: AgentSession, logger?: Logger): Promise<Result<ArtifactRegistrationResult, ArtifactRegistrationFailure>>;
|
|
@@ -20,7 +20,7 @@ import type { ProvenanceCollector } from "../provenance/collector.js";
|
|
|
20
20
|
import type { AgentSession } from "../auth/types.js";
|
|
21
21
|
import type { GateFailure, NoticeFailure } from "../lib/hooks.js";
|
|
22
22
|
/** High-level input for registering one step's artifacts. */
|
|
23
|
-
export
|
|
23
|
+
export type ArtifactRegistrationInput = {
|
|
24
24
|
/** Analysis resource ID. */
|
|
25
25
|
resourceId: string;
|
|
26
26
|
/** Workflow run ID. */
|
|
@@ -31,21 +31,21 @@ export interface ArtifactRegistrationInput {
|
|
|
31
31
|
artifacts: ArtifactManifestEntry[];
|
|
32
32
|
/** Provenance collector with tracked inputs/outputs. */
|
|
33
33
|
collector: ProvenanceCollector;
|
|
34
|
-
}
|
|
34
|
+
};
|
|
35
35
|
/** Step coordinates for a per-step artifact sync. */
|
|
36
|
-
export
|
|
36
|
+
export type ArtifactSyncInput = {
|
|
37
37
|
/** Analysis resource ID. */
|
|
38
38
|
resourceId: string;
|
|
39
39
|
/** Workflow run ID. */
|
|
40
40
|
runId: string;
|
|
41
41
|
/** Step ID whose registered artifacts are synced. */
|
|
42
42
|
stepId: string;
|
|
43
|
-
}
|
|
43
|
+
};
|
|
44
44
|
/**
|
|
45
45
|
* Outcome of external registration. Flat per-path results — no provenance-model
|
|
46
46
|
* vocabulary leaks across the seam.
|
|
47
47
|
*/
|
|
48
|
-
export
|
|
48
|
+
export type ExternalRegistrationResult = {
|
|
49
49
|
/**
|
|
50
50
|
* Artifacts the external registry accepted, with the external identity to
|
|
51
51
|
* write back onto the local ledger row. `path` is the analysis-scoped path
|
|
@@ -80,8 +80,8 @@ export interface ExternalRegistrationResult {
|
|
|
80
80
|
path: string;
|
|
81
81
|
error: string;
|
|
82
82
|
}>;
|
|
83
|
-
}
|
|
84
|
-
export
|
|
83
|
+
};
|
|
84
|
+
export type ArtifactRegistry = {
|
|
85
85
|
/**
|
|
86
86
|
* Register one step's artifacts with the external provenance system.
|
|
87
87
|
* Implementations MUST NOT touch the local `cortex_artifacts` ledger — that
|
|
@@ -100,4 +100,4 @@ export interface ArtifactRegistry {
|
|
|
100
100
|
* again.
|
|
101
101
|
*/
|
|
102
102
|
sync(input: ArtifactSyncInput, session: AgentSession): ResultAsync<void, NoticeFailure>;
|
|
103
|
-
}
|
|
103
|
+
};
|