@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
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `knowledge_check` — the drafted steps against the rules, once, before
|
|
3
|
+
* `submit_plan`. A violation names the rule and the permitted alternatives.
|
|
4
|
+
* The planner revises once. There is no loop: the host counts the calls of
|
|
5
|
+
* one plan generation, and past `CHECK_CALL_LIMIT` the tool answers with a
|
|
6
|
+
* typed refusal and never reaches the service. A small model that cannot
|
|
7
|
+
* satisfy a finding otherwise rephrases the step until the plan times out.
|
|
8
|
+
*/
|
|
9
|
+
import { ok } from "neverthrow";
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
import { defineTool } from "../define-tool.js";
|
|
12
|
+
import { SituationFieldsSchema, toSituation } from "./situation.js";
|
|
13
|
+
/** The checks one plan generation may run. Two is a draft and one revision; the third is slack. */
|
|
14
|
+
export const CHECK_CALL_LIMIT = 3;
|
|
15
|
+
const DraftedStepSchema = z.object({
|
|
16
|
+
step_type: z
|
|
17
|
+
.enum([
|
|
18
|
+
"cohort_assembly",
|
|
19
|
+
"qc_sample_structure",
|
|
20
|
+
"filter_low_counts",
|
|
21
|
+
"normalize",
|
|
22
|
+
"model_design",
|
|
23
|
+
"differential_expression",
|
|
24
|
+
"shrink_lfc",
|
|
25
|
+
"multiple_testing",
|
|
26
|
+
"enrichment",
|
|
27
|
+
"variance_partition",
|
|
28
|
+
"tf_activity",
|
|
29
|
+
"pathway_activity",
|
|
30
|
+
"signature_scoring",
|
|
31
|
+
"deconvolution",
|
|
32
|
+
"coexpression",
|
|
33
|
+
"clustering",
|
|
34
|
+
"survival",
|
|
35
|
+
"transcript_level",
|
|
36
|
+
"annotation",
|
|
37
|
+
"report",
|
|
38
|
+
])
|
|
39
|
+
.describe("The kind of work the drafted step does."),
|
|
40
|
+
method: z.string().min(1).describe("The method as the step names it, for example `DESeq2 Wald test` or `edgeR quasi-likelihood`."),
|
|
41
|
+
method_id: z
|
|
42
|
+
.string()
|
|
43
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the recommend-answer method id shape: M- plus four digits.
|
|
44
|
+
.regex(/^M-\d{4}$/)
|
|
45
|
+
.optional()
|
|
46
|
+
.describe("The `method.id` of the step in the `knowledge_recommend` answer (for example `M-0001`), copied when the step uses that method. With it the check matches the method exactly and ignores the wording."),
|
|
47
|
+
package: z.string().optional().describe("The main package of the step, for example `DESeq2`."),
|
|
48
|
+
parameters: z
|
|
49
|
+
.array(z.object({ name: z.string().min(1), value: z.union([z.string(), z.number(), z.boolean()]) }))
|
|
50
|
+
.optional()
|
|
51
|
+
.describe("The key parameters of the step, for example `alpha`, `min_count`, `lfc_shrink`, `rank_metric`."),
|
|
52
|
+
outcome: z
|
|
53
|
+
.string()
|
|
54
|
+
.optional()
|
|
55
|
+
.describe("The outcome the step states when a flag of `knowledge_recommend` removes inference, copied from the flag, for example `descriptive_only`."),
|
|
56
|
+
});
|
|
57
|
+
/** `ok`, or the counts of the findings, plus the steps the check did not assess when there are any. */
|
|
58
|
+
function describeFindings(result) {
|
|
59
|
+
const findings = result.ok ? "ok" : `${result.violations.length} violation(s), ${result.warnings.length} warning(s)`;
|
|
60
|
+
const notAssessed = result.not_assessed?.length ?? 0;
|
|
61
|
+
return notAssessed > 0 ? `${findings}, ${notAssessed} not assessed` : findings;
|
|
62
|
+
}
|
|
63
|
+
const KnowledgeCheckInputSchema = SituationFieldsSchema.extend({
|
|
64
|
+
steps: z.array(DraftedStepSchema).min(1).describe("The drafted method steps, one entry per step type."),
|
|
65
|
+
});
|
|
66
|
+
export function createKnowledgeCheckTool(deps) {
|
|
67
|
+
let calls = 0;
|
|
68
|
+
return defineTool({
|
|
69
|
+
id: "knowledge_check",
|
|
70
|
+
description: "Check the method steps you drafted for a bulk RNA-seq analysis against the rules of the Inflexa knowledge service, once, after the draft and before `submit_plan`. " +
|
|
71
|
+
"Send the same situation you sent to `knowledge_recommend` and the drafted steps: the step type, the method as the step names it, its package, and its key parameters. " +
|
|
72
|
+
"The answer lists `violations` (a forbidden method, or an inferential test on a design that a flag limits) and `warnings` (a method outside the set the rules name, a parameter that differs from a sourced default, or a required parameter that the step does not state), each with the rule id and the permitted alternatives. " +
|
|
73
|
+
"Revise a violated step once, then submit. A warning is advice: keep the step when the data gives a reason, and state the reason in the step. `ok: true` means no finding on the assessed steps. " +
|
|
74
|
+
"`not_assessed` lists the steps that no rule covers; the check neither passed nor failed them, so submit them as drafted. " +
|
|
75
|
+
"`match: unavailable` means the service did not answer, and `match: snapshot_mismatch` means the service moved to another release than the one your recommend answer came from; in both cases submit the draft as it is. " +
|
|
76
|
+
`The host accepts ${CHECK_CALL_LIMIT} checks per plan; after that the tool refuses and you submit with the findings you have.`,
|
|
77
|
+
inputSchema: KnowledgeCheckInputSchema,
|
|
78
|
+
describeCall: ({ steps }) => `${steps.length} drafted step(s)`,
|
|
79
|
+
describeResult: (_input, result) => ("ok" in result ? describeFindings(result) : result.match),
|
|
80
|
+
execute: async (input) => {
|
|
81
|
+
calls += 1;
|
|
82
|
+
if (calls > CHECK_CALL_LIMIT) {
|
|
83
|
+
return ok({
|
|
84
|
+
match: "rejected",
|
|
85
|
+
message: `The host accepts ${CHECK_CALL_LIMIT} checks per plan, and this is call ${calls}. Submit the plan with the findings of the last check.`,
|
|
86
|
+
issues: [],
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
const { steps, ...fields } = input;
|
|
90
|
+
const answer = await deps.client.check(toSituation(fields), steps, deps.pin?.get());
|
|
91
|
+
return ok(answer);
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
}
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The knowledge service interface of the harness.
|
|
3
|
+
*
|
|
4
|
+
* `KnowledgeClient` is the one contract between the harness and the remote
|
|
5
|
+
* knowledge service: four typed operations and the snapshot they answer
|
|
6
|
+
* from. The harness never knows about a license. It sees a client, or it sees
|
|
7
|
+
* nothing, and an absent client is a normal state in which no knowledge tool
|
|
8
|
+
* attaches. `createHttpKnowledgeClient` is the shipped realization over plain
|
|
9
|
+
* HTTPS with the retry and timeout policy of the other external tools.
|
|
10
|
+
*
|
|
11
|
+
* Every operation answers a data variant. A service that is configured but
|
|
12
|
+
* unreachable gives `{ match: "unavailable" }` after the retry policy, and the
|
|
13
|
+
* caller continues from the prose skills. A 400 names the field and the
|
|
14
|
+
* permitted values, thus a model corrects itself in one turn. A 404 on the
|
|
15
|
+
* contract lookup names the `template` field the same way. The response
|
|
16
|
+
* shapes below are the harness copy of the wire contract of the service, kept
|
|
17
|
+
* lenient with `looseObject`, thus a richer answer of a later snapshot still
|
|
18
|
+
* parses.
|
|
19
|
+
*/
|
|
20
|
+
import { z } from "zod";
|
|
21
|
+
import type { SituationFieldsSchema } from "./situation.js";
|
|
22
|
+
/** The role of the blocking factor. A role and never a column name, because the situation leaves the machine. */
|
|
23
|
+
export type BlockingRole = "individual" | "cell_line" | "litter" | "site" | "pair" | "other";
|
|
24
|
+
/** The role of a covariate of the design. A role and never a column name. */
|
|
25
|
+
export type CovariateRole = "sex" | "age" | "clinical" | "technical" | "other";
|
|
26
|
+
/** The role of the numeric variable of interest when the question is a trend, not a comparison of groups. */
|
|
27
|
+
export type PredictorRole = "dose" | "time" | "age" | "score" | "other";
|
|
28
|
+
/** The typed description of one analysis situation. Never a sample row, never an identifier, and never a column name. */
|
|
29
|
+
export type KnowledgeSituation = z.infer<typeof SituationFieldsSchema>;
|
|
30
|
+
export declare const RecommendResponseSchema: z.ZodObject<{
|
|
31
|
+
match: z.ZodEnum<{
|
|
32
|
+
applicable: "applicable";
|
|
33
|
+
flag: "flag";
|
|
34
|
+
none: "none";
|
|
35
|
+
}>;
|
|
36
|
+
snapshot: z.ZodObject<{
|
|
37
|
+
date: z.ZodString;
|
|
38
|
+
digest: z.ZodString;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
procedure: z.ZodArray<z.ZodObject<{
|
|
41
|
+
step: z.ZodString;
|
|
42
|
+
method: z.ZodOptional<z.ZodObject<{
|
|
43
|
+
id: z.ZodString;
|
|
44
|
+
label: z.ZodString;
|
|
45
|
+
}, z.core.$loose>>;
|
|
46
|
+
template: z.ZodOptional<z.ZodString>;
|
|
47
|
+
rules: z.ZodArray<z.ZodString>;
|
|
48
|
+
flags: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
49
|
+
rule: z.ZodString;
|
|
50
|
+
severity: z.ZodString;
|
|
51
|
+
message: z.ZodString;
|
|
52
|
+
outcome: z.ZodOptional<z.ZodString>;
|
|
53
|
+
}, z.core.$loose>>>;
|
|
54
|
+
alternatives: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
55
|
+
method: z.ZodString;
|
|
56
|
+
label: z.ZodString;
|
|
57
|
+
when: z.ZodString;
|
|
58
|
+
rules: z.ZodArray<z.ZodString>;
|
|
59
|
+
}, z.core.$loose>>>;
|
|
60
|
+
disputed: z.ZodOptional<z.ZodObject<{
|
|
61
|
+
rule: z.ZodString;
|
|
62
|
+
sides: z.ZodArray<z.ZodString>;
|
|
63
|
+
}, z.core.$loose>>;
|
|
64
|
+
parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
65
|
+
name: z.ZodString;
|
|
66
|
+
value: z.ZodJSONSchema;
|
|
67
|
+
default_source: z.ZodOptional<z.ZodString>;
|
|
68
|
+
}, z.core.$loose>>>;
|
|
69
|
+
conflicts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
70
|
+
parameter: z.ZodString;
|
|
71
|
+
entries: z.ZodArray<z.ZodObject<{
|
|
72
|
+
rule: z.ZodString;
|
|
73
|
+
value: z.ZodJSONSchema;
|
|
74
|
+
}, z.core.$loose>>;
|
|
75
|
+
}, z.core.$loose>>>;
|
|
76
|
+
substitution: z.ZodOptional<z.ZodObject<{
|
|
77
|
+
for: z.ZodString;
|
|
78
|
+
label: z.ZodString;
|
|
79
|
+
template: z.ZodString;
|
|
80
|
+
}, z.core.$loose>>;
|
|
81
|
+
limit: z.ZodOptional<z.ZodObject<{
|
|
82
|
+
requested_language: z.ZodEnum<{
|
|
83
|
+
R: "R";
|
|
84
|
+
python: "python";
|
|
85
|
+
}>;
|
|
86
|
+
reason: z.ZodString;
|
|
87
|
+
skipped: z.ZodArray<z.ZodObject<{
|
|
88
|
+
template: z.ZodString;
|
|
89
|
+
missing: z.ZodArray<z.ZodString>;
|
|
90
|
+
refused: z.ZodOptional<z.ZodString>;
|
|
91
|
+
}, z.core.$loose>>;
|
|
92
|
+
}, z.core.$loose>>;
|
|
93
|
+
unrealized: z.ZodOptional<z.ZodObject<{
|
|
94
|
+
reason: z.ZodString;
|
|
95
|
+
templates: z.ZodArray<z.ZodObject<{
|
|
96
|
+
template: z.ZodString;
|
|
97
|
+
why: z.ZodString;
|
|
98
|
+
}, z.core.$loose>>;
|
|
99
|
+
}, z.core.$loose>>;
|
|
100
|
+
package: z.ZodOptional<z.ZodObject<{
|
|
101
|
+
name: z.ZodString;
|
|
102
|
+
}, z.core.$loose>>;
|
|
103
|
+
forbids: z.ZodOptional<z.ZodJSONSchema>;
|
|
104
|
+
}, z.core.$loose>>;
|
|
105
|
+
uncovered: z.ZodArray<z.ZodString>;
|
|
106
|
+
unrealized: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
107
|
+
flags: z.ZodArray<z.ZodObject<{
|
|
108
|
+
rule: z.ZodString;
|
|
109
|
+
severity: z.ZodString;
|
|
110
|
+
message: z.ZodString;
|
|
111
|
+
outcome: z.ZodOptional<z.ZodString>;
|
|
112
|
+
}, z.core.$loose>>;
|
|
113
|
+
claims: z.ZodArray<z.ZodObject<{
|
|
114
|
+
id: z.ZodString;
|
|
115
|
+
statement: z.ZodString;
|
|
116
|
+
strength: z.ZodString;
|
|
117
|
+
evidence: z.ZodArray<z.ZodObject<{
|
|
118
|
+
doi: z.ZodOptional<z.ZodString>;
|
|
119
|
+
pmid: z.ZodOptional<z.ZodString>;
|
|
120
|
+
title: z.ZodString;
|
|
121
|
+
year: z.ZodNumber;
|
|
122
|
+
direction: z.ZodString;
|
|
123
|
+
}, z.core.$loose>>;
|
|
124
|
+
}, z.core.$loose>>;
|
|
125
|
+
nearest: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
126
|
+
claim: z.ZodString;
|
|
127
|
+
title: z.ZodString;
|
|
128
|
+
failed: z.ZodArray<z.ZodString>;
|
|
129
|
+
}, z.core.$loose>>>;
|
|
130
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
131
|
+
}, z.core.$loose>;
|
|
132
|
+
export type RecommendResponse = z.infer<typeof RecommendResponseSchema>;
|
|
133
|
+
export declare const CheckResponseSchema: z.ZodObject<{
|
|
134
|
+
ok: z.ZodBoolean;
|
|
135
|
+
snapshot: z.ZodObject<{
|
|
136
|
+
date: z.ZodString;
|
|
137
|
+
digest: z.ZodString;
|
|
138
|
+
}, z.core.$strip>;
|
|
139
|
+
violations: z.ZodArray<z.ZodObject<{
|
|
140
|
+
step_type: z.ZodString;
|
|
141
|
+
severity: z.ZodString;
|
|
142
|
+
rule: z.ZodString;
|
|
143
|
+
message: z.ZodString;
|
|
144
|
+
permitted: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
145
|
+
}, z.core.$loose>>;
|
|
146
|
+
warnings: z.ZodArray<z.ZodObject<{
|
|
147
|
+
step_type: z.ZodString;
|
|
148
|
+
severity: z.ZodString;
|
|
149
|
+
rule: z.ZodString;
|
|
150
|
+
message: z.ZodString;
|
|
151
|
+
permitted: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
152
|
+
}, z.core.$loose>>;
|
|
153
|
+
not_assessed: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
154
|
+
step_type: z.ZodString;
|
|
155
|
+
reason: z.ZodString;
|
|
156
|
+
message: z.ZodString;
|
|
157
|
+
}, z.core.$loose>>>;
|
|
158
|
+
}, z.core.$loose>;
|
|
159
|
+
export type CheckResponse = z.infer<typeof CheckResponseSchema>;
|
|
160
|
+
export declare const RenderResponseSchema: z.ZodObject<{
|
|
161
|
+
ok: z.ZodLiteral<true>;
|
|
162
|
+
snapshot: z.ZodObject<{
|
|
163
|
+
date: z.ZodString;
|
|
164
|
+
digest: z.ZodString;
|
|
165
|
+
}, z.core.$strip>;
|
|
166
|
+
template: z.ZodObject<{
|
|
167
|
+
id: z.ZodString;
|
|
168
|
+
version: z.ZodString;
|
|
169
|
+
label: z.ZodString;
|
|
170
|
+
method: z.ZodObject<{
|
|
171
|
+
id: z.ZodString;
|
|
172
|
+
label: z.ZodString;
|
|
173
|
+
}, z.core.$loose>;
|
|
174
|
+
substitute_for: z.ZodOptional<z.ZodObject<{
|
|
175
|
+
id: z.ZodString;
|
|
176
|
+
label: z.ZodString;
|
|
177
|
+
}, z.core.$loose>>;
|
|
178
|
+
language: z.ZodString;
|
|
179
|
+
}, z.core.$loose>;
|
|
180
|
+
script: z.ZodString;
|
|
181
|
+
slots: z.ZodArray<z.ZodObject<{
|
|
182
|
+
name: z.ZodString;
|
|
183
|
+
value: z.ZodOptional<z.ZodJSONSchema>;
|
|
184
|
+
source: z.ZodString;
|
|
185
|
+
adaptable: z.ZodBoolean;
|
|
186
|
+
lines: z.ZodArray<z.ZodNumber>;
|
|
187
|
+
read: z.ZodOptional<z.ZodBoolean>;
|
|
188
|
+
}, z.core.$loose>>;
|
|
189
|
+
local_slots: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
190
|
+
environment: z.ZodObject<{
|
|
191
|
+
match: z.ZodString;
|
|
192
|
+
}, z.core.$loose>;
|
|
193
|
+
syntax: z.ZodObject<{
|
|
194
|
+
status: z.ZodString;
|
|
195
|
+
}, z.core.$loose>;
|
|
196
|
+
outputs: z.ZodArray<z.ZodObject<{
|
|
197
|
+
name: z.ZodString;
|
|
198
|
+
path: z.ZodString;
|
|
199
|
+
description: z.ZodOptional<z.ZodString>;
|
|
200
|
+
}, z.core.$loose>>;
|
|
201
|
+
decision_record: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
|
|
202
|
+
}, z.core.$loose>;
|
|
203
|
+
export type RenderResponse = z.infer<typeof RenderResponseSchema>;
|
|
204
|
+
/**
|
|
205
|
+
* One slot of a template with the constraint a caller value must obey.
|
|
206
|
+
* `adaptable: false` marks a pinned slot: the render refuses a caller value
|
|
207
|
+
* for it. An adaptable slot without a default is required unless `required`
|
|
208
|
+
* is false.
|
|
209
|
+
*/
|
|
210
|
+
declare const TemplateParameterSchema: z.ZodObject<{
|
|
211
|
+
name: z.ZodString;
|
|
212
|
+
type: z.ZodString;
|
|
213
|
+
description: z.ZodString;
|
|
214
|
+
adaptable: z.ZodBoolean;
|
|
215
|
+
local: z.ZodOptional<z.ZodBoolean>;
|
|
216
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
217
|
+
default: z.ZodOptional<z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodArray<z.ZodString>]>>>, z.ZodTransform<string | number | boolean | string[] | undefined, string | number | boolean | string[] | null | undefined>>>;
|
|
218
|
+
default_source: z.ZodOptional<z.ZodString>;
|
|
219
|
+
enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
220
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
221
|
+
minimum: z.ZodOptional<z.ZodNumber>;
|
|
222
|
+
maximum: z.ZodOptional<z.ZodNumber>;
|
|
223
|
+
}, z.core.$loose>;
|
|
224
|
+
export type TemplateParameter = z.infer<typeof TemplateParameterSchema>;
|
|
225
|
+
/**
|
|
226
|
+
* The contract of one template as `GET /v1/templates/{id}` serves it: every
|
|
227
|
+
* slot, pinned ones included, the inputs, and the outputs. The service adds
|
|
228
|
+
* fields such as `step_types` and `environment`; they pass through the loose
|
|
229
|
+
* remainder.
|
|
230
|
+
*/
|
|
231
|
+
export declare const TemplateContractSchema: z.ZodObject<{
|
|
232
|
+
id: z.ZodString;
|
|
233
|
+
version: z.ZodString;
|
|
234
|
+
label: z.ZodString;
|
|
235
|
+
method: z.ZodString;
|
|
236
|
+
substitute_for: z.ZodOptional<z.ZodString>;
|
|
237
|
+
language: z.ZodString;
|
|
238
|
+
honors: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
239
|
+
parameters: z.ZodArray<z.ZodObject<{
|
|
240
|
+
name: z.ZodString;
|
|
241
|
+
type: z.ZodString;
|
|
242
|
+
description: z.ZodString;
|
|
243
|
+
adaptable: z.ZodBoolean;
|
|
244
|
+
local: z.ZodOptional<z.ZodBoolean>;
|
|
245
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
246
|
+
default: z.ZodOptional<z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodArray<z.ZodString>]>>>, z.ZodTransform<string | number | boolean | string[] | undefined, string | number | boolean | string[] | null | undefined>>>;
|
|
247
|
+
default_source: z.ZodOptional<z.ZodString>;
|
|
248
|
+
enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
249
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
250
|
+
minimum: z.ZodOptional<z.ZodNumber>;
|
|
251
|
+
maximum: z.ZodOptional<z.ZodNumber>;
|
|
252
|
+
}, z.core.$loose>>;
|
|
253
|
+
inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
254
|
+
name: z.ZodString;
|
|
255
|
+
path: z.ZodString;
|
|
256
|
+
description: z.ZodOptional<z.ZodString>;
|
|
257
|
+
}, z.core.$loose>>>;
|
|
258
|
+
outputs: z.ZodArray<z.ZodObject<{
|
|
259
|
+
name: z.ZodString;
|
|
260
|
+
path: z.ZodString;
|
|
261
|
+
description: z.ZodOptional<z.ZodString>;
|
|
262
|
+
}, z.core.$loose>>;
|
|
263
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
264
|
+
}, z.core.$loose>;
|
|
265
|
+
export type TemplateContract = z.infer<typeof TemplateContractSchema>;
|
|
266
|
+
/** The preferences of the caller: the language of the template the answer names. */
|
|
267
|
+
export type KnowledgePreferences = {
|
|
268
|
+
readonly language?: "R" | "python";
|
|
269
|
+
};
|
|
270
|
+
/** What a drafted step carries into the check. */
|
|
271
|
+
export type DraftedStep = {
|
|
272
|
+
readonly step_type: string;
|
|
273
|
+
readonly method: string;
|
|
274
|
+
/** The catalog id of the method (`M-dddd`), copied from the recommendation. An exact match wins over the wording. */
|
|
275
|
+
readonly method_id?: string;
|
|
276
|
+
readonly package?: string;
|
|
277
|
+
readonly parameters?: readonly {
|
|
278
|
+
readonly name: string;
|
|
279
|
+
readonly value: string | number | boolean;
|
|
280
|
+
}[];
|
|
281
|
+
/** The outcome the step states when the design forbids inference, for example `descriptive_only`. */
|
|
282
|
+
readonly outcome?: string;
|
|
283
|
+
};
|
|
284
|
+
export type FarmPackage = {
|
|
285
|
+
readonly name: string;
|
|
286
|
+
readonly version: string;
|
|
287
|
+
};
|
|
288
|
+
/** The service could not answer after the retry policy. The run continues from the prose skills. */
|
|
289
|
+
export type KnowledgeUnavailable = {
|
|
290
|
+
readonly match: "unavailable";
|
|
291
|
+
readonly reason: string;
|
|
292
|
+
};
|
|
293
|
+
/**
|
|
294
|
+
* The service serves another release than the one the plan pinned, and it
|
|
295
|
+
* did no work. A plan is not moved to a new release in silence: the caller
|
|
296
|
+
* proceeds as with an unavailable service, and it states the two digests.
|
|
297
|
+
*/
|
|
298
|
+
export type KnowledgeSnapshotMismatch = {
|
|
299
|
+
readonly match: "snapshot_mismatch";
|
|
300
|
+
readonly message: string;
|
|
301
|
+
readonly expected: string;
|
|
302
|
+
readonly served: {
|
|
303
|
+
readonly date: string;
|
|
304
|
+
readonly digest: string;
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
/** The service refused the request and named the field or the slot and the permitted values. */
|
|
308
|
+
export type KnowledgeRejected = {
|
|
309
|
+
readonly match: "rejected";
|
|
310
|
+
readonly message: string;
|
|
311
|
+
readonly issues: readonly {
|
|
312
|
+
readonly field?: string;
|
|
313
|
+
readonly slot?: string;
|
|
314
|
+
readonly message?: string;
|
|
315
|
+
readonly reason?: string;
|
|
316
|
+
readonly permitted?: readonly string[];
|
|
317
|
+
}[];
|
|
318
|
+
};
|
|
319
|
+
/** What a render call carries beside the template and the slots. */
|
|
320
|
+
export type RenderCallOptions = {
|
|
321
|
+
/** The id of the plan step that runs the script. */
|
|
322
|
+
readonly step?: string;
|
|
323
|
+
/** The claims of the plan step that selected the template. Each must resolve in the served snapshot. */
|
|
324
|
+
readonly claims?: readonly string[];
|
|
325
|
+
/** The release digest the plan pinned. The service refuses another release with `snapshot_mismatch`. */
|
|
326
|
+
readonly expectedSnapshot?: string;
|
|
327
|
+
};
|
|
328
|
+
export type KnowledgeClient = {
|
|
329
|
+
/** `expectedSnapshot` pins the release of an earlier answer of the same plan; the first call of a plan has none. */
|
|
330
|
+
recommend(situation: KnowledgeSituation, responseFormat?: "concise" | "detailed", preferences?: KnowledgePreferences, expectedSnapshot?: string): Promise<RecommendResponse | KnowledgeUnavailable | KnowledgeRejected | KnowledgeSnapshotMismatch>;
|
|
331
|
+
check(situation: KnowledgeSituation, steps: readonly DraftedStep[], expectedSnapshot?: string): Promise<CheckResponse | KnowledgeUnavailable | KnowledgeRejected | KnowledgeSnapshotMismatch>;
|
|
332
|
+
/** `slots` never holds a local slot: the host binds those after the render, on the machine. */
|
|
333
|
+
render(template: string, slots: Readonly<Record<string, unknown>>, farm?: readonly FarmPackage[], options?: RenderCallOptions): Promise<RenderResponse | KnowledgeUnavailable | KnowledgeRejected | KnowledgeSnapshotMismatch>;
|
|
334
|
+
/**
|
|
335
|
+
* The slot contract of a template, by reference (`tpl-x@1.0.0`) or by id.
|
|
336
|
+
* The service serves one version per snapshot, thus the answer carries the
|
|
337
|
+
* version it serves and the caller compares it with the reference. An
|
|
338
|
+
* unknown template is `rejected` with the field `template`.
|
|
339
|
+
*/
|
|
340
|
+
contract(template: string): Promise<TemplateContract | KnowledgeUnavailable | KnowledgeRejected>;
|
|
341
|
+
};
|
|
342
|
+
export type HttpKnowledgeClientConfig = {
|
|
343
|
+
/** The service origin, for example `https://knowledge.inflexa.ai`. */
|
|
344
|
+
readonly baseUrl: string;
|
|
345
|
+
/** The bearer key. The license of the service. */
|
|
346
|
+
readonly apiKey: string;
|
|
347
|
+
readonly timeoutMs?: number;
|
|
348
|
+
readonly maxRetries?: number;
|
|
349
|
+
};
|
|
350
|
+
export declare function createHttpKnowledgeClient(config: HttpKnowledgeClientConfig): KnowledgeClient;
|
|
351
|
+
export {};
|