@inflexa-ai/harness 0.45.1 → 0.46.2
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 +9 -3
- package/dist/agents/conversation-agent.js +34 -33
- 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 +12 -14
- package/dist/agents/sandbox/shared.js +18 -12
- package/dist/agents/sandbox/types.d.ts +4 -4
- 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 +2 -2
- package/dist/agents/sandbox-catalog.js +3 -3
- package/dist/agents/system-prompt.d.ts +2 -2
- package/dist/app/chat-turn-workflow.d.ts +114 -0
- package/dist/app/chat-turn-workflow.js +306 -0
- package/dist/app/chat-turn.d.ts +85 -57
- package/dist/app/chat-turn.js +123 -100
- 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 +6 -6
- 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 +38 -24
- package/dist/contracts/chat-frame.d.ts +15 -5
- package/dist/contracts/chat-frame.js +64 -41
- 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 +2 -2
- 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 +30 -16
- package/dist/contracts/schemas/chat-events.js +15 -6
- package/dist/contracts/schemas/chat-parts.d.ts +175 -102
- package/dist/contracts/schemas/chat-parts.js +33 -7
- 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 +5 -6
- package/dist/execution/dbos-workflow-purger.js +8 -7
- 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 +7 -7
- package/dist/execution/run-canceler.js +14 -7
- package/dist/execution/run-end-record.d.ts +2 -3
- 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 +17 -20
- package/dist/index.js +25 -36
- 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 +32 -7
- package/dist/lib/hooks.js +22 -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 +9 -9
- package/dist/loop/compaction.js +1 -1
- 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 +160 -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 +39 -0
- package/dist/loop/turn-credentials.js +90 -0
- package/dist/loop/types.d.ts +29 -38
- 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 -4
- package/dist/memory/conversation-display-recorder.js +43 -24
- 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 +36 -21
- package/dist/memory/thread-history.js +78 -54
- 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 +12 -12
- package/dist/prompts/briefing.js +1 -1
- 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 +1 -4
- package/dist/provenance/types.d.ts +6 -6
- package/dist/providers/ai-sdk.d.ts +113 -62
- package/dist/providers/ai-sdk.js +283 -518
- 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/request-headers.js +12 -3
- package/dist/providers/types.d.ts +55 -94
- package/dist/reference-data/catalog.d.ts +2 -15
- package/dist/reference-data/catalog.js +25 -8
- 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 +211 -233
- 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.js +15 -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 +343 -298
- package/dist/schemas/file-metadata.js +2 -4
- package/dist/schemas/plan-schemas.d.ts +31 -31
- 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 +19 -19
- package/dist/schemas/workflow-state.js +2 -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 +32 -19
- package/dist/state/artifacts.js +28 -5
- 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 +4 -4
- package/dist/state/index.js +2 -2
- 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 +30 -19
- package/dist/state/runs.js +43 -51
- 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 +20 -8
- package/dist/state/step-executions.js +6 -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 +62 -0
- package/dist/testing.js +101 -0
- package/dist/tools/ad-hoc-router.d.ts +9 -9
- package/dist/tools/ad-hoc-router.js +65 -52
- 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 +9 -5
- package/dist/tools/capability-data.js +2 -1
- 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 +19 -10
- package/dist/tools/execute-analysis.js +83 -62
- package/dist/tools/knowledge/check.d.ts +166 -44
- package/dist/tools/knowledge/check.js +5 -3
- package/dist/tools/knowledge/client.d.ts +31 -62
- package/dist/tools/knowledge/client.js +44 -27
- package/dist/tools/knowledge/environment.d.ts +6 -6
- package/dist/tools/knowledge/environment.js +18 -7
- package/dist/tools/knowledge/index.d.ts +2 -2
- package/dist/tools/knowledge/index.js +9 -9
- package/dist/tools/knowledge/local-slots.d.ts +4 -4
- package/dist/tools/knowledge/local-slots.js +11 -4
- package/dist/tools/knowledge/pin.d.ts +2 -2
- package/dist/tools/knowledge/recommend.d.ts +20 -45
- package/dist/tools/knowledge/recommend.js +27 -19
- package/dist/tools/knowledge/situation.d.ts +40 -40
- package/dist/tools/knowledge/situation.js +2 -9
- package/dist/tools/knowledge/skeleton.d.ts +4 -4
- package/dist/tools/knowledge/skeleton.js +10 -11
- package/dist/tools/knowledge/template.d.ts +20 -18
- package/dist/tools/knowledge/template.js +38 -32
- 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 +16 -16
- package/dist/tools/research/generate-plan.js +410 -374
- package/dist/tools/research/guarded-address.js +3 -2
- 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 +2 -2
- package/dist/tools/research/searxng-engine.js +6 -4
- package/dist/tools/research/web-fetch.d.ts +24 -21
- package/dist/tools/research/web-fetch.js +65 -74
- package/dist/tools/research/web-search.d.ts +26 -17
- package/dist/tools/research/web-search.js +26 -21
- 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 +17 -8
- package/dist/tools/sandbox/list-available-packages.js +31 -25
- package/dist/tools/sandbox/list-available-refs.d.ts +17 -14
- package/dist/tools/sandbox/list-available-refs.js +61 -36
- package/dist/tools/sandbox/report-blocker.d.ts +30 -37
- package/dist/tools/sandbox/report-blocker.js +23 -73
- 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 +5 -2
- package/dist/tools/terminal-text.js +35 -3
- package/dist/tools/workspace/decision-record.d.ts +4 -4
- package/dist/tools/workspace/decision-record.js +23 -13
- package/dist/tools/workspace/edit-file.d.ts +59 -20
- package/dist/tools/workspace/edit-file.js +81 -16
- package/dist/tools/workspace/execute-command.d.ts +15 -13
- package/dist/tools/workspace/execute-command.js +11 -9
- 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/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 +46 -62
- package/dist/workflows/execute-analysis.js +137 -219
- package/dist/workflows/pause.d.ts +71 -0
- package/dist/workflows/pause.js +173 -0
- package/dist/workflows/sandbox-step.d.ts +38 -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 +21 -22
- package/dist/loop/call-guard.d.ts +0 -50
- package/dist/loop/call-guard.js +0 -90
- 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 -245
- package/dist/loop/run-agent.js +0 -1124
- 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 -93
- 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
|
@@ -13,80 +13,55 @@
|
|
|
13
13
|
* model three times, as a procedure step, as a claim view, and as a skeleton
|
|
14
14
|
* step.
|
|
15
15
|
*/
|
|
16
|
+
import type { z } from "zod";
|
|
16
17
|
import type { EnvironmentStorePaths } from "../../config/environment-stores.js";
|
|
18
|
+
import { type Tool, type WithToolCallRecord } from "../define-tool.js";
|
|
17
19
|
import type { KnowledgeClient, KnowledgeRejected, KnowledgeSnapshotMismatch, KnowledgeUnavailable, RecommendResponse } from "./client.js";
|
|
18
20
|
import type { SnapshotPin } from "./pin.js";
|
|
19
21
|
import { type EnvironmentPaths, type RecommendWithEnvironment } from "./environment.js";
|
|
22
|
+
import { SituationFieldsSchema } from "./situation.js";
|
|
20
23
|
import { type SkeletonStep } from "./skeleton.js";
|
|
21
|
-
export
|
|
24
|
+
export type KnowledgeRecommendDeps = Omit<EnvironmentPaths, "farmLockFile"> & {
|
|
22
25
|
readonly client: KnowledgeClient;
|
|
23
26
|
/** Host path of the farm `inflexa.lock`, or its resolver for each analysis. Absent, the packages read as unknown. */
|
|
24
27
|
readonly farmLockFile?: EnvironmentStorePaths["farmLockFile"];
|
|
25
28
|
/**
|
|
26
|
-
* Receives each answer the planner
|
|
27
|
-
*
|
|
29
|
+
* Receives each answer the planner saw, after the round of its call, on the
|
|
30
|
+
* first run and on each replay alike. The planner keeps the skeleton of the
|
|
31
|
+
* invocation, thus `submit_plan` can restore a grounding field that the
|
|
28
32
|
* model dropped when it copied a skeleton step.
|
|
29
33
|
*/
|
|
30
34
|
readonly onAnswer?: (answer: KnowledgeRecommendAnswer) => void;
|
|
31
35
|
/**
|
|
32
|
-
* The release of the plan. The first answer sets it
|
|
33
|
-
* of this tool and of `knowledge_check` sends it,
|
|
34
|
-
* to another release between two calls refuses
|
|
36
|
+
* The release of the plan. The first answer sets it after the round of its
|
|
37
|
+
* call, and each later call of this tool and of `knowledge_check` sends it,
|
|
38
|
+
* thus a service that moved to another release between two calls refuses
|
|
39
|
+
* instead of mixing releases.
|
|
35
40
|
*/
|
|
36
41
|
readonly pin?: SnapshotPin;
|
|
37
|
-
}
|
|
42
|
+
};
|
|
38
43
|
/**
|
|
39
44
|
* The model-facing answer of the tool: the skeleton and the claims, with the
|
|
40
45
|
* envelope of the service and the environment source. Never the procedure.
|
|
41
46
|
*/
|
|
42
|
-
export
|
|
47
|
+
export type KnowledgeRecommendAnswer = {
|
|
43
48
|
readonly match: RecommendResponse["match"];
|
|
44
49
|
readonly snapshot: RecommendResponse["snapshot"];
|
|
45
50
|
/** The situation as the service normalized it. */
|
|
46
51
|
readonly situation?: Readonly<Record<string, unknown>>;
|
|
47
52
|
readonly flags: RecommendResponse["flags"];
|
|
48
53
|
/** The step types a flag removed. Absent when none. */
|
|
49
|
-
|
|
54
|
+
dropped?: readonly string[];
|
|
50
55
|
readonly uncovered: readonly string[];
|
|
51
56
|
/** The step types whose method has no eligible template: covered by the knowledge, not by a vetted script. Absent when none. */
|
|
52
|
-
|
|
57
|
+
unrealized?: readonly string[];
|
|
53
58
|
readonly environment_source?: RecommendWithEnvironment["environment_source"];
|
|
54
59
|
readonly plan_skeleton: readonly SkeletonStep[];
|
|
55
60
|
readonly claims: RecommendResponse["claims"];
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
export type KnowledgeRecommendOutput = KnowledgeRecommendAnswer | KnowledgeUnavailable | KnowledgeRejected | KnowledgeSnapshotMismatch;
|
|
61
|
+
nearest?: RecommendResponse["nearest"];
|
|
62
|
+
reason?: string;
|
|
63
|
+
};
|
|
64
|
+
export type KnowledgeRecommendOutput = WithToolCallRecord<KnowledgeRecommendAnswer, KnowledgeRecommendAnswer> | KnowledgeUnavailable | KnowledgeRejected | KnowledgeSnapshotMismatch;
|
|
60
65
|
/** The one representation: the envelope, the skeleton, and the claims. The procedure stays host-side. */
|
|
61
66
|
export declare function toPlannerAnswer(joined: RecommendWithEnvironment): KnowledgeRecommendAnswer;
|
|
62
|
-
export declare function createKnowledgeRecommendTool(deps: KnowledgeRecommendDeps):
|
|
63
|
-
question: "enrichment" | "differential_expression" | "qc" | "full_plan" | "tf_activity" | "deconvolution" | "coexpression" | "clustering" | "survival" | "signature_scoring";
|
|
64
|
-
modality: "bulk_rna_seq";
|
|
65
|
-
data_state: "fastq" | "counts" | "tpm_or_fpkm" | "log_normalized";
|
|
66
|
-
organism: "other" | "human" | "mouse";
|
|
67
|
-
n_groups: number;
|
|
68
|
-
n_per_group_min: number;
|
|
69
|
-
n_per_group_max: number;
|
|
70
|
-
paired: boolean;
|
|
71
|
-
batch: "none" | "known_balanced" | "known_confounded" | "known_unbalanced" | "suspected";
|
|
72
|
-
count_source?: "unknown" | "salmon" | "kallisto" | "star_featurecounts" | "rsem" | undefined;
|
|
73
|
-
import_state?: "unknown" | "quantifications" | "estimated_counts_with_lengths" | "corrected_counts" | "integer_counts" | undefined;
|
|
74
|
-
n_samples?: number | undefined;
|
|
75
|
-
n_events?: number | undefined;
|
|
76
|
-
blocking_factor?: "other" | "individual" | "cell_line" | "litter" | "site" | "pair" | null | undefined;
|
|
77
|
-
block_structure?: "crossed" | "nested" | undefined;
|
|
78
|
-
covariates?: ("other" | "technical" | "sex" | "age" | "clinical")[] | undefined;
|
|
79
|
-
n_timepoints?: number | null | undefined;
|
|
80
|
-
continuous_predictor?: "other" | "score" | "time" | "age" | "dose" | null | undefined;
|
|
81
|
-
technical_replicates?: boolean | undefined;
|
|
82
|
-
sample_exclusions?: boolean | undefined;
|
|
83
|
-
feature_level?: "gene" | "exon" | "transcript" | undefined;
|
|
84
|
-
library_type?: "unknown" | "total" | "polyA" | "three_prime" | undefined;
|
|
85
|
-
strandedness?: "unknown" | "verified" | "declared_unverified" | undefined;
|
|
86
|
-
interaction?: boolean | undefined;
|
|
87
|
-
classifier?: boolean | undefined;
|
|
88
|
-
extra_analyses?: ("tf_activity" | "deconvolution" | "coexpression" | "clustering" | "survival" | "signature_scoring" | "variance_partition" | "pathway_activity" | "transcript_level" | "annotation")[] | undefined;
|
|
89
|
-
preferred_language?: "R" | "python" | undefined;
|
|
90
|
-
enrichment_input?: "ranked_list" | "gene_list" | "sample_scores" | undefined;
|
|
91
|
-
quality_flags?: ("low_depth_sample" | "outlier_sample" | "sample_identity_doubt" | "high_duplication" | "degraded_rna")[] | undefined;
|
|
92
|
-
}, KnowledgeRecommendOutput>;
|
|
67
|
+
export declare function createKnowledgeRecommendTool(deps: KnowledgeRecommendDeps): Tool<z.infer<typeof SituationFieldsSchema>, KnowledgeRecommendOutput>;
|
|
@@ -14,34 +14,37 @@
|
|
|
14
14
|
* step.
|
|
15
15
|
*/
|
|
16
16
|
import { ok } from "neverthrow";
|
|
17
|
-
import {
|
|
17
|
+
import { parseUnknownRecord } from "../../lib/unknown-containers.js";
|
|
18
|
+
import { defineTool, withToolCallRecord } from "../define-tool.js";
|
|
18
19
|
import { joinEnvironment } from "./environment.js";
|
|
19
20
|
import { SITUATION_EXAMPLE, SituationFieldsSchema, toPreferences, toSituation } from "./situation.js";
|
|
20
21
|
import { buildPlanSkeleton } from "./skeleton.js";
|
|
21
|
-
function isRecord(value) {
|
|
22
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
23
|
-
}
|
|
24
22
|
function stringList(value) {
|
|
25
|
-
return Array.isArray(value) ? value.
|
|
23
|
+
return Array.isArray(value) ? value.flatMap((item) => (typeof item === "string" ? [item] : [])) : undefined;
|
|
26
24
|
}
|
|
27
25
|
/** The one representation: the envelope, the skeleton, and the claims. The procedure stays host-side. */
|
|
28
26
|
export function toPlannerAnswer(joined) {
|
|
29
|
-
const
|
|
30
|
-
const unrealized = stringList(joined.unrealized);
|
|
31
|
-
return {
|
|
27
|
+
const answer = {
|
|
32
28
|
match: joined.match,
|
|
33
29
|
snapshot: joined.snapshot,
|
|
34
|
-
|
|
30
|
+
situation: parseUnknownRecord(joined.situation),
|
|
35
31
|
flags: joined.flags,
|
|
36
|
-
...(dropped ? { dropped } : {}),
|
|
37
32
|
uncovered: joined.uncovered,
|
|
38
|
-
|
|
39
|
-
...(joined.environment_source ? { environment_source: joined.environment_source } : {}),
|
|
33
|
+
environment_source: joined.environment_source,
|
|
40
34
|
plan_skeleton: buildPlanSkeleton(joined),
|
|
41
35
|
claims: joined.claims,
|
|
42
|
-
...(joined.nearest ? { nearest: joined.nearest } : {}),
|
|
43
|
-
...(joined.reason !== undefined ? { reason: joined.reason } : {}),
|
|
44
36
|
};
|
|
37
|
+
const dropped = stringList(joined.dropped);
|
|
38
|
+
const unrealized = stringList(joined.unrealized);
|
|
39
|
+
if (dropped)
|
|
40
|
+
answer.dropped = dropped;
|
|
41
|
+
if (unrealized && unrealized.length > 0)
|
|
42
|
+
answer.unrealized = unrealized;
|
|
43
|
+
if (joined.nearest)
|
|
44
|
+
answer.nearest = joined.nearest;
|
|
45
|
+
if (joined.reason !== undefined)
|
|
46
|
+
answer.reason = joined.reason;
|
|
47
|
+
return answer;
|
|
45
48
|
}
|
|
46
49
|
export function createKnowledgeRecommendTool(deps) {
|
|
47
50
|
return defineTool({
|
|
@@ -86,13 +89,18 @@ export function createKnowledgeRecommendTool(deps) {
|
|
|
86
89
|
deps.pin?.set(answer.snapshot.digest);
|
|
87
90
|
const farmLockFile = typeof deps.farmLockFile === "function" ? deps.farmLockFile(ctx.session.scope.analysisId) : deps.farmLockFile;
|
|
88
91
|
const joined = await joinEnvironment(answer, {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
+
farmLockFile,
|
|
93
|
+
imagePackagesFile: deps.imagePackagesFile,
|
|
94
|
+
refStorePath: deps.refStorePath,
|
|
92
95
|
});
|
|
93
96
|
const planner = toPlannerAnswer(joined);
|
|
94
|
-
|
|
95
|
-
|
|
97
|
+
// The answer rides as the call record too. The pin and the memory of the planner
|
|
98
|
+
// fold it after the round, thus a replay that returns the recorded result sets both.
|
|
99
|
+
return ok(withToolCallRecord(planner, planner));
|
|
100
|
+
},
|
|
101
|
+
foldCallRecord: (answer) => {
|
|
102
|
+
deps.pin?.set(answer.snapshot.digest);
|
|
103
|
+
deps.onAnswer?.(answer);
|
|
96
104
|
},
|
|
97
105
|
});
|
|
98
106
|
}
|
|
@@ -8,42 +8,42 @@ import { z } from "zod";
|
|
|
8
8
|
import type { KnowledgeSituation, KnowledgePreferences } from "./client.js";
|
|
9
9
|
export declare const SituationFieldsSchema: z.ZodObject<{
|
|
10
10
|
question: z.ZodEnum<{
|
|
11
|
-
|
|
11
|
+
clustering: "clustering";
|
|
12
|
+
coexpression: "coexpression";
|
|
13
|
+
deconvolution: "deconvolution";
|
|
12
14
|
differential_expression: "differential_expression";
|
|
13
|
-
|
|
15
|
+
enrichment: "enrichment";
|
|
14
16
|
full_plan: "full_plan";
|
|
15
|
-
|
|
16
|
-
deconvolution: "deconvolution";
|
|
17
|
-
coexpression: "coexpression";
|
|
18
|
-
clustering: "clustering";
|
|
19
|
-
survival: "survival";
|
|
17
|
+
qc: "qc";
|
|
20
18
|
signature_scoring: "signature_scoring";
|
|
19
|
+
survival: "survival";
|
|
20
|
+
tf_activity: "tf_activity";
|
|
21
21
|
}>;
|
|
22
22
|
modality: z.ZodLiteral<"bulk_rna_seq">;
|
|
23
23
|
data_state: z.ZodEnum<{
|
|
24
|
-
fastq: "fastq";
|
|
25
24
|
counts: "counts";
|
|
26
|
-
|
|
25
|
+
fastq: "fastq";
|
|
27
26
|
log_normalized: "log_normalized";
|
|
27
|
+
tpm_or_fpkm: "tpm_or_fpkm";
|
|
28
28
|
}>;
|
|
29
29
|
count_source: z.ZodOptional<z.ZodEnum<{
|
|
30
|
-
unknown: "unknown";
|
|
31
|
-
salmon: "salmon";
|
|
32
30
|
kallisto: "kallisto";
|
|
33
|
-
star_featurecounts: "star_featurecounts";
|
|
34
31
|
rsem: "rsem";
|
|
32
|
+
salmon: "salmon";
|
|
33
|
+
star_featurecounts: "star_featurecounts";
|
|
34
|
+
unknown: "unknown";
|
|
35
35
|
}>>;
|
|
36
36
|
import_state: z.ZodOptional<z.ZodEnum<{
|
|
37
|
-
unknown: "unknown";
|
|
38
|
-
quantifications: "quantifications";
|
|
39
|
-
estimated_counts_with_lengths: "estimated_counts_with_lengths";
|
|
40
37
|
corrected_counts: "corrected_counts";
|
|
38
|
+
estimated_counts_with_lengths: "estimated_counts_with_lengths";
|
|
41
39
|
integer_counts: "integer_counts";
|
|
40
|
+
quantifications: "quantifications";
|
|
41
|
+
unknown: "unknown";
|
|
42
42
|
}>>;
|
|
43
43
|
organism: z.ZodEnum<{
|
|
44
|
-
other: "other";
|
|
45
44
|
human: "human";
|
|
46
45
|
mouse: "mouse";
|
|
46
|
+
other: "other";
|
|
47
47
|
}>;
|
|
48
48
|
n_groups: z.ZodNumber;
|
|
49
49
|
n_per_group_min: z.ZodNumber;
|
|
@@ -52,90 +52,90 @@ export declare const SituationFieldsSchema: z.ZodObject<{
|
|
|
52
52
|
n_events: z.ZodOptional<z.ZodNumber>;
|
|
53
53
|
paired: z.ZodBoolean;
|
|
54
54
|
blocking_factor: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
55
|
-
other: "other";
|
|
56
|
-
individual: "individual";
|
|
57
55
|
cell_line: "cell_line";
|
|
56
|
+
individual: "individual";
|
|
58
57
|
litter: "litter";
|
|
59
|
-
|
|
58
|
+
other: "other";
|
|
60
59
|
pair: "pair";
|
|
60
|
+
site: "site";
|
|
61
61
|
}>>>;
|
|
62
62
|
block_structure: z.ZodOptional<z.ZodEnum<{
|
|
63
63
|
crossed: "crossed";
|
|
64
64
|
nested: "nested";
|
|
65
65
|
}>>;
|
|
66
66
|
batch: z.ZodEnum<{
|
|
67
|
-
none: "none";
|
|
68
67
|
known_balanced: "known_balanced";
|
|
69
68
|
known_confounded: "known_confounded";
|
|
70
69
|
known_unbalanced: "known_unbalanced";
|
|
70
|
+
none: "none";
|
|
71
71
|
suspected: "suspected";
|
|
72
72
|
}>;
|
|
73
73
|
covariates: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
74
|
-
other: "other";
|
|
75
|
-
technical: "technical";
|
|
76
|
-
sex: "sex";
|
|
77
74
|
age: "age";
|
|
78
75
|
clinical: "clinical";
|
|
76
|
+
other: "other";
|
|
77
|
+
sex: "sex";
|
|
78
|
+
technical: "technical";
|
|
79
79
|
}>>>;
|
|
80
80
|
n_timepoints: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
81
81
|
continuous_predictor: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
82
|
+
age: "age";
|
|
83
|
+
dose: "dose";
|
|
82
84
|
other: "other";
|
|
83
85
|
score: "score";
|
|
84
86
|
time: "time";
|
|
85
|
-
age: "age";
|
|
86
|
-
dose: "dose";
|
|
87
87
|
}>>>;
|
|
88
88
|
technical_replicates: z.ZodOptional<z.ZodBoolean>;
|
|
89
89
|
sample_exclusions: z.ZodOptional<z.ZodBoolean>;
|
|
90
90
|
feature_level: z.ZodOptional<z.ZodEnum<{
|
|
91
|
-
gene: "gene";
|
|
92
91
|
exon: "exon";
|
|
92
|
+
gene: "gene";
|
|
93
93
|
transcript: "transcript";
|
|
94
94
|
}>>;
|
|
95
95
|
library_type: z.ZodOptional<z.ZodEnum<{
|
|
96
|
-
unknown: "unknown";
|
|
97
|
-
total: "total";
|
|
98
96
|
polyA: "polyA";
|
|
99
97
|
three_prime: "three_prime";
|
|
98
|
+
total: "total";
|
|
99
|
+
unknown: "unknown";
|
|
100
100
|
}>>;
|
|
101
101
|
strandedness: z.ZodOptional<z.ZodEnum<{
|
|
102
|
+
declared_unverified: "declared_unverified";
|
|
102
103
|
unknown: "unknown";
|
|
103
104
|
verified: "verified";
|
|
104
|
-
declared_unverified: "declared_unverified";
|
|
105
105
|
}>>;
|
|
106
106
|
interaction: z.ZodOptional<z.ZodBoolean>;
|
|
107
107
|
classifier: z.ZodOptional<z.ZodBoolean>;
|
|
108
108
|
extra_analyses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
109
|
-
|
|
110
|
-
deconvolution: "deconvolution";
|
|
111
|
-
coexpression: "coexpression";
|
|
109
|
+
annotation: "annotation";
|
|
112
110
|
clustering: "clustering";
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
variance_partition: "variance_partition";
|
|
111
|
+
coexpression: "coexpression";
|
|
112
|
+
deconvolution: "deconvolution";
|
|
116
113
|
pathway_activity: "pathway_activity";
|
|
114
|
+
signature_scoring: "signature_scoring";
|
|
115
|
+
survival: "survival";
|
|
116
|
+
tf_activity: "tf_activity";
|
|
117
117
|
transcript_level: "transcript_level";
|
|
118
|
-
|
|
118
|
+
variance_partition: "variance_partition";
|
|
119
119
|
}>>>;
|
|
120
120
|
preferred_language: z.ZodOptional<z.ZodEnum<{
|
|
121
121
|
R: "R";
|
|
122
122
|
python: "python";
|
|
123
123
|
}>>;
|
|
124
124
|
enrichment_input: z.ZodOptional<z.ZodEnum<{
|
|
125
|
-
ranked_list: "ranked_list";
|
|
126
125
|
gene_list: "gene_list";
|
|
126
|
+
ranked_list: "ranked_list";
|
|
127
127
|
sample_scores: "sample_scores";
|
|
128
128
|
}>>;
|
|
129
129
|
quality_flags: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
130
|
+
degraded_rna: "degraded_rna";
|
|
131
|
+
high_duplication: "high_duplication";
|
|
130
132
|
low_depth_sample: "low_depth_sample";
|
|
131
133
|
outlier_sample: "outlier_sample";
|
|
132
134
|
sample_identity_doubt: "sample_identity_doubt";
|
|
133
|
-
high_duplication: "high_duplication";
|
|
134
|
-
degraded_rna: "degraded_rna";
|
|
135
135
|
}>>>;
|
|
136
136
|
}, z.core.$strip>;
|
|
137
137
|
export type SituationFields = z.infer<typeof SituationFieldsSchema>;
|
|
138
|
-
/** The situation as the client sends it: the fields as given, with
|
|
138
|
+
/** The situation as the client sends it: the fields as given, with the caller preference held out of the situation fields. */
|
|
139
139
|
export declare function toSituation(fields: SituationFields): KnowledgeSituation;
|
|
140
140
|
/** The preferences of the caller, beside the situation: the language of the template. */
|
|
141
141
|
export declare function toPreferences(fields: SituationFields): KnowledgePreferences | undefined;
|
|
@@ -143,16 +143,9 @@ export const SituationFieldsSchema = z.object({
|
|
|
143
143
|
.optional()
|
|
144
144
|
.describe("The quality concerns of the profile as typed flags: a sample with a library size far below the median; a sample that does not cluster with its group; a doubt about the identity of a sample; high duplication; degraded RNA (a low RNA integrity number, a 3' coverage bias, or formalin-fixed material)."),
|
|
145
145
|
});
|
|
146
|
-
/** The situation as the client sends it: the fields as given, with
|
|
146
|
+
/** The situation as the client sends it: the fields as given, with the caller preference held out of the situation fields. */
|
|
147
147
|
export function toSituation(fields) {
|
|
148
|
-
const situation =
|
|
149
|
-
for (const [key, value] of Object.entries(fields)) {
|
|
150
|
-
if (key === "preferred_language")
|
|
151
|
-
continue;
|
|
152
|
-
if (value !== undefined)
|
|
153
|
-
situation[key] = value;
|
|
154
|
-
}
|
|
155
|
-
// The schema above validated every field, thus the record has the shape of the client type.
|
|
148
|
+
const { preferred_language: _omitted, ...situation } = fields;
|
|
156
149
|
return situation;
|
|
157
150
|
}
|
|
158
151
|
/** The preferences of the caller, beside the situation: the language of the template. */
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
*/
|
|
31
31
|
import type { GroundingSetting } from "../../schemas/workflow-state.js";
|
|
32
32
|
import type { RecommendWithEnvironment, StepEnvironment } from "./environment.js";
|
|
33
|
-
export
|
|
33
|
+
export type SkeletonAlternative = {
|
|
34
34
|
readonly method: string;
|
|
35
35
|
readonly label: string;
|
|
36
36
|
readonly when: string;
|
|
37
37
|
readonly rules: readonly string[];
|
|
38
|
-
}
|
|
39
|
-
export
|
|
38
|
+
};
|
|
39
|
+
export type SkeletonStep = {
|
|
40
40
|
readonly id: string;
|
|
41
41
|
readonly name: string;
|
|
42
42
|
readonly track: string;
|
|
@@ -65,5 +65,5 @@ export interface SkeletonStep {
|
|
|
65
65
|
readonly settings: readonly GroundingSetting[];
|
|
66
66
|
readonly reason: string;
|
|
67
67
|
};
|
|
68
|
-
}
|
|
68
|
+
};
|
|
69
69
|
export declare function buildPlanSkeleton(answer: RecommendWithEnvironment): SkeletonStep[];
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
* setting of the grounding, never a constraint of the step: the value is the
|
|
29
29
|
* vetted default, and the agent can state another value with its reason.
|
|
30
30
|
*/
|
|
31
|
+
import { textOf } from "../../lib/unknown-text.js";
|
|
31
32
|
const GROUPS = [
|
|
32
33
|
{ id: "T0S1", track: "T1", step_type: "data_preparation", agent: "bulk-transcriptomics-agent", steps: ["cohort_assembly"], name: "Cohort assembly" },
|
|
33
34
|
{ id: "T1S1", track: "T1", step_type: "qc", agent: "bulk-transcriptomics-agent", steps: ["qc_sample_structure"], name: "Sample structure QC" },
|
|
@@ -86,7 +87,7 @@ function settingValue(value) {
|
|
|
86
87
|
return value;
|
|
87
88
|
if (Array.isArray(value))
|
|
88
89
|
return value.map(String);
|
|
89
|
-
return
|
|
90
|
+
return textOf(value);
|
|
90
91
|
}
|
|
91
92
|
/** The settings of the steps of a group: one entry per parameter, with the step it belongs to. */
|
|
92
93
|
function stepSettings(steps) {
|
|
@@ -94,19 +95,19 @@ function stepSettings(steps) {
|
|
|
94
95
|
step: step.step,
|
|
95
96
|
name: parameter.name,
|
|
96
97
|
value: settingValue(parameter.value),
|
|
97
|
-
|
|
98
|
+
source: parameter.default_source,
|
|
98
99
|
})));
|
|
99
100
|
}
|
|
100
101
|
/** The forbidden method ids of a step. The client schema reads the field through the loose object. */
|
|
101
102
|
function forbidsOf(step) {
|
|
102
103
|
const forbids = step.forbids;
|
|
103
|
-
return Array.isArray(forbids) ? forbids.
|
|
104
|
+
return Array.isArray(forbids) ? forbids.flatMap((method) => (typeof method === "string" ? [method] : [])) : [];
|
|
104
105
|
}
|
|
105
106
|
/** `a and b`, or `a, b and c` for a longer list. */
|
|
106
107
|
function joinWithAnd(items) {
|
|
107
108
|
if (items.length <= 1)
|
|
108
109
|
return items.join("");
|
|
109
|
-
return `${items.slice(0, -1).join(", ")} and ${items[items.length - 1]}`;
|
|
110
|
+
return `${items.slice(0, -1).join(", ")} and ${String(items[items.length - 1])}`;
|
|
110
111
|
}
|
|
111
112
|
/**
|
|
112
113
|
* The caveats a step carries beside its warn flags. A parameter conflict, a
|
|
@@ -155,9 +156,7 @@ export function buildPlanSkeleton(answer) {
|
|
|
155
156
|
const flags = steps.flatMap((step) => step.flags ?? []);
|
|
156
157
|
const hardFlag = flags.find((flag) => flag.severity === "flag");
|
|
157
158
|
const claims = [...new Set(steps.flatMap((step) => step.rules))];
|
|
158
|
-
const packages = [
|
|
159
|
-
...new Set(steps.map((step) => step.package?.name).filter((name) => name !== undefined)),
|
|
160
|
-
];
|
|
159
|
+
const packages = [...new Set(steps.map((step) => step.package?.name).flatMap((name) => (name !== undefined ? [name] : [])))];
|
|
161
160
|
const caveats = [...flags.filter((flag) => flag.severity === "warn").map((flag) => flag.message), ...steps.flatMap(stepCaveats)];
|
|
162
161
|
const method = central?.method;
|
|
163
162
|
// A rule covers the group when a step of the group carries one. A method
|
|
@@ -180,21 +179,21 @@ export function buildPlanSkeleton(answer) {
|
|
|
180
179
|
depends_on: dependsOn(group.id, keptIds),
|
|
181
180
|
caveats: hardFlag ? [hardFlag.message, ...caveats] : caveats,
|
|
182
181
|
alternatives,
|
|
183
|
-
|
|
182
|
+
disputed: disputed === undefined ? undefined : { rule: disputed.rule, sides: disputed.sides },
|
|
184
183
|
forbids,
|
|
185
|
-
|
|
184
|
+
environment: central?.environment,
|
|
186
185
|
grounding: {
|
|
187
186
|
status,
|
|
188
187
|
snapshot: answer.snapshot.digest,
|
|
189
188
|
claims,
|
|
190
|
-
|
|
189
|
+
template: central?.template,
|
|
191
190
|
settings: stepSettings(steps),
|
|
192
191
|
reason: hardFlag
|
|
193
192
|
? `flagged by ${hardFlag.rule}`
|
|
194
193
|
: method
|
|
195
194
|
? `${method.label} per ${claims[0] ?? "the procedure"}`
|
|
196
195
|
: covered
|
|
197
|
-
? `${group.name} per ${claims[0]}`
|
|
196
|
+
? `${group.name} per ${String(claims[0])}`
|
|
198
197
|
: "no rule covers this step",
|
|
199
198
|
},
|
|
200
199
|
};
|
|
@@ -25,8 +25,9 @@
|
|
|
25
25
|
* one durable step, thus a replay returns the cached result and renders
|
|
26
26
|
* nothing again.
|
|
27
27
|
*/
|
|
28
|
+
import { z } from "zod";
|
|
28
29
|
import type { EnvironmentStorePaths } from "../../config/environment-stores.js";
|
|
29
|
-
import { type WithToolCallRecord } from "../define-tool.js";
|
|
30
|
+
import { type Tool, type WithToolCallRecord } from "../define-tool.js";
|
|
30
31
|
import type { WorkspaceMutator, WriteFileResult, WriteRecord } from "../workspace/mutator.js";
|
|
31
32
|
import type { KnowledgeClient, KnowledgeRejected, KnowledgeSnapshotMismatch, KnowledgeUnavailable, TemplateParameter } from "./client.js";
|
|
32
33
|
/** A slot value the plan binds: a scalar, or a list of strings. JSON-serialisable, as the durable step input needs. */
|
|
@@ -39,7 +40,7 @@ export type TemplateBindingValue = string | number | boolean | readonly string[]
|
|
|
39
40
|
* the plan step: its id, its claims, the release the plan pinned, and the
|
|
40
41
|
* local slots of the contract that the tool binds on the machine.
|
|
41
42
|
*/
|
|
42
|
-
export
|
|
43
|
+
export type TemplateBinding = {
|
|
43
44
|
/** The template reference of the plan step, with its version, for example `tpl-deseq2-two-group@1.0.0`. */
|
|
44
45
|
readonly template: string;
|
|
45
46
|
readonly slots: Readonly<Record<string, TemplateBindingValue>>;
|
|
@@ -54,8 +55,8 @@ export interface TemplateBinding {
|
|
|
54
55
|
readonly local?: readonly TemplateParameter[];
|
|
55
56
|
/** The names of every adaptable slot of the served contract, thus the tool refuses an unknown name before anything leaves the machine. */
|
|
56
57
|
readonly adaptable?: readonly string[];
|
|
57
|
-
}
|
|
58
|
-
export
|
|
58
|
+
};
|
|
59
|
+
export type KnowledgeTemplateDeps = {
|
|
59
60
|
readonly client: KnowledgeClient;
|
|
60
61
|
readonly mutator: WorkspaceMutator;
|
|
61
62
|
/** Host path of the farm `inflexa.lock`, or its resolver for each analysis. Absent with no image record, the environment match reads as unknown. */
|
|
@@ -64,20 +65,20 @@ export interface KnowledgeTemplateDeps {
|
|
|
64
65
|
readonly imagePackagesFile?: string;
|
|
65
66
|
/** The plan settings bound to the template of the step. Absent, the model values ride alone. */
|
|
66
67
|
readonly binding?: TemplateBinding;
|
|
67
|
-
}
|
|
68
|
+
};
|
|
68
69
|
/** One bound slot as the decision record keeps it. */
|
|
69
|
-
export
|
|
70
|
+
export type BoundSlotRecord = {
|
|
70
71
|
readonly slot: string;
|
|
71
72
|
readonly value: TemplateBindingValue;
|
|
72
73
|
readonly source: string;
|
|
73
|
-
}
|
|
74
|
+
};
|
|
74
75
|
/** One change of a bound value that an `overrides` entry declared, as the decision record keeps it. */
|
|
75
|
-
export
|
|
76
|
+
export type SettingsOverrideRecord = {
|
|
76
77
|
readonly slot: string;
|
|
77
78
|
readonly plan_value: TemplateBindingValue;
|
|
78
79
|
readonly new_value: unknown;
|
|
79
80
|
readonly reason: string;
|
|
80
|
-
}
|
|
81
|
+
};
|
|
81
82
|
export type KnowledgeTemplateOutput = {
|
|
82
83
|
readonly status: "ok";
|
|
83
84
|
readonly script_path: string;
|
|
@@ -125,13 +126,14 @@ export type KnowledgeTemplateOutput = {
|
|
|
125
126
|
} | KnowledgeUnavailable | KnowledgeRejected | KnowledgeSnapshotMismatch;
|
|
126
127
|
/** The result of a `knowledge_template` call: each landed write rides as the call record, for the fold. */
|
|
127
128
|
type KnowledgeTemplateResult = KnowledgeTemplateOutput | WithToolCallRecord<KnowledgeTemplateOutput, readonly WriteRecord[]>;
|
|
128
|
-
|
|
129
|
-
template:
|
|
130
|
-
slots:
|
|
131
|
-
overrides
|
|
132
|
-
slot:
|
|
133
|
-
reason:
|
|
134
|
-
}
|
|
135
|
-
script_name
|
|
136
|
-
},
|
|
129
|
+
declare const KnowledgeTemplateInputSchema: z.ZodObject<{
|
|
130
|
+
template: z.ZodString;
|
|
131
|
+
slots: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>]>>;
|
|
132
|
+
overrides: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
133
|
+
slot: z.ZodString;
|
|
134
|
+
reason: z.ZodString;
|
|
135
|
+
}, z.core.$strip>>>;
|
|
136
|
+
script_name: z.ZodOptional<z.ZodString>;
|
|
137
|
+
}, z.core.$strip>;
|
|
138
|
+
export declare function createKnowledgeTemplateTool(deps: KnowledgeTemplateDeps): Tool<z.infer<typeof KnowledgeTemplateInputSchema>, KnowledgeTemplateResult>;
|
|
137
139
|
export {};
|