@inflexa-ai/harness 0.45.1 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +307 -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 +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 +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 +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 +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/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 +60 -0
- package/dist/testing.js +96 -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
package/dist/index.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ export { createConversationAgent } from "./agents/conversation-agent.js";
|
|
|
27
27
|
export type { ConversationAgentDeps } from "./agents/conversation-agent.js";
|
|
28
28
|
export type { BioToolKeys } from "./tools/bio/keys.js";
|
|
29
29
|
export { createLocalRunAuthorizer } from "./auth/local-run-authorizer.js";
|
|
30
|
-
export type { RunAuthorizer, AuthorizeRunInput,
|
|
30
|
+
export type { RunAuthorizer, AuthorizeRunInput, RevokeByMandateRef } from "./execution/run-authorizer.js";
|
|
31
31
|
export type { GateFailure, NoticeFailure } from "./lib/hooks.js";
|
|
32
32
|
export type { RequestHeaders, ResolveRequestHeaders } from "./providers/request-headers.js";
|
|
33
33
|
export { createNoopRunCharge } from "./billing/noop-run-charge.js";
|
|
@@ -63,16 +63,12 @@ export type { WebSearchEngine } from "./tools/research/web-search.js";
|
|
|
63
63
|
export { CitationKindSchema, CitationInputSchema, CitationSourceSchema, CitationSourceStatusSchema, CitationResolutionResultSchema, CitationVerdictSchema, CitationCoverageSchema, ComparisonStatusSchema, CitationFieldSchema, UnsupportedWorkKindSchema, CitationIdentifiersSchema, NormalizedCitationMetadataSchema, NormalizedCitationSchema, CitationRecordSchema, IdentifierEvidenceSchema, CitationSourceOutcomeSchema, CitationFieldComparisonSchema, CitationConflictSchema, CitationCandidateClusterSchema, CitationClusterRelationSchema, CitationSourceOperationSchema, CitationSourcePlanItemSchema, } from "./citations/types.js";
|
|
64
64
|
export type { CitationKind, CitationInput, CitationSource, CitationSourceStatus, CitationResolver, CitationResolveOptions, CitationResolutionResult, CitationVerdict, CitationCoverage, ComparisonStatus, CitationField, UnsupportedWorkKind, CitationIdentifiers, NormalizedCitationMetadata, NormalizedCitation, CitationSourceOutcome, CitationRecord, IdentifierEvidence, CitationFieldComparison, CitationConflict, CitationCandidateCluster, CitationSourceClient, CitationSourceRequest, CitationSourceOperation, CitationSourcePlanItem, RegistrationAgencyEvidence, } from "./citations/types.js";
|
|
65
65
|
export { createAskGateway } from "./tools/approval/gateway.js";
|
|
66
|
-
export type { AskGateway, AskGatewayDeps,
|
|
67
|
-
export {
|
|
68
|
-
export type {
|
|
69
|
-
export {
|
|
70
|
-
export type {
|
|
71
|
-
export type { CompactionPolicy, CompactionRules } from "./loop/compaction.js";
|
|
72
|
-
export type { ToolMask } from "./loop/tool-mask.js";
|
|
73
|
-
export type { AgentDefinition, RunStep, EmitFn, EmitEvent, EventSource } from "./loop/types.js";
|
|
66
|
+
export type { AskGateway, AskGatewayDeps, AskScope, AnswerOutcome, PendingAsk } from "./tools/approval/gateway.js";
|
|
67
|
+
export type { AskRequest, AskReply } from "./tools/approval/contract.js";
|
|
68
|
+
export type { AgentFinish, AgentRound } from "./loop/run-loop.js";
|
|
69
|
+
export type { CompactionRules } from "./loop/compaction.js";
|
|
70
|
+
export type { AgentDefinition, EmitFn, EmitEvent, EventSource } from "./loop/types.js";
|
|
74
71
|
export type { KeptToolOutput, ToolOutputStore } from "./loop/tool-output.js";
|
|
75
|
-
export { passthroughStep } from "./loop/run-step.js";
|
|
76
72
|
export { forStep, forSubAgent, scopeResource, scopeWorkloadId } from "./auth/types.js";
|
|
77
73
|
export type { AgentSession, RequestSession, RunSession, Identity, Scope, Credential, Provenance, RunFrame, AuthContext, ResourceCoordinates, HookSessionView, ResolvableSession, } from "./auth/types.js";
|
|
78
74
|
export { makeLocalAuth } from "./auth/local-auth-context.js";
|
|
@@ -80,18 +76,19 @@ export { createConfiguredAiSdkProvider, DEFAULT_MAX_OUTPUT_TOKENS } from "./prov
|
|
|
80
76
|
export type { AiSdkProviderConfig, ConfiguredAiSdkProviderDeps, ProviderHostPolicy } from "./providers/ai-sdk.js";
|
|
81
77
|
export { createEmbeddingProvider } from "./providers/embedding.js";
|
|
82
78
|
export type { EmbeddingProviderDeps } from "./providers/embedding.js";
|
|
83
|
-
export type {
|
|
79
|
+
export type { BoundModel, ChatProvider, EmbeddingProvider, ChatStreamEvent, ChatUsage, ModelBinding, ModelMessage, PromptCachePolicy, ReasoningPolicy, } from "./providers/types.js";
|
|
84
80
|
export { CONVERSATION_PROMPT_CACHE, DEFAULT_PROMPT_CACHE, promptCacheProviderOptions, withPromptCacheBreakpoint } from "./providers/prompt-cache.js";
|
|
85
81
|
export { DEFAULT_REASONING } from "./providers/reasoning.js";
|
|
86
82
|
export { toProviderError, isProviderError } from "./providers/errors.js";
|
|
87
83
|
export type { ProviderError } from "./providers/errors.js";
|
|
88
84
|
export { DEFAULT_SUSPEND_ON } from "./providers/errors.js";
|
|
89
85
|
export type { SuspendOn } from "./providers/errors.js";
|
|
90
|
-
export {
|
|
91
|
-
export type {
|
|
92
|
-
export {
|
|
93
|
-
export {
|
|
94
|
-
export type {
|
|
86
|
+
export { DEFAULT_PAUSE_RETRY_DELAYS_MS } from "./workflows/pause.js";
|
|
87
|
+
export type { PausedWorkflow, Work, WorkHold, WorkResume, WorkStop, WorkSurface } from "./app/work.js";
|
|
88
|
+
export { DATA_PROFILE_STOPPED } from "./tasks/data-profile.js";
|
|
89
|
+
export { prepareChatTurn } from "./app/chat-turn.js";
|
|
90
|
+
export type { ChatTurnRefusal, ChatTurnSession, PrepareChatTurnDeps, PrepareChatTurnParams, PrepareChatTurnResult } from "./app/chat-turn.js";
|
|
91
|
+
export type { ChatTurnEnd, ChatTurns, ChatTurnStart, OpenChatTurnRequest } from "./app/chat-turn-workflow.js";
|
|
95
92
|
export { createThreadStore } from "./memory/thread-store.js";
|
|
96
93
|
export type { ThreadStore, Thread, ThreadType, ThreadInputError, CreateThreadInput, ListThreadsInput, ListRecentThreadsInput, ThreadPage, } from "./memory/thread-store.js";
|
|
97
94
|
export { createThreadHistory, conversationRecordTurn } from "./memory/thread-history.js";
|
|
@@ -103,13 +100,13 @@ export { envelopeDisplayMessages, parseStoredDisplayEnvelope } from "./memory/co
|
|
|
103
100
|
export type { ConversationDisplayMetadata, ConversationUIData, ConversationUIMessage, StoredDisplayEnvelope } from "./memory/conversation-display-storage.js";
|
|
104
101
|
export { storedMessagesToChat } from "./memory/conversation-display-replay.js";
|
|
105
102
|
export type { ChatEvent, ChatFrame, ChatPartFrame, TextDeltaEvent, IterationEvent, ToolStartedEvent, ToolFinishedEvent, ToolOutcome, ToolCallOutcome, ToolCallDetail, FinishEvent, ChatErrorEvent, MessageStartEvent, } from "./contracts/chat-events.js";
|
|
106
|
-
export { toChatFrame, applyChatFrame, checkChatPart } from "./contracts/chat-frame.js";
|
|
103
|
+
export { toChatFrame, applyChatFrame, checkChatPart, isKnownPartFrame } from "./contracts/chat-frame.js";
|
|
107
104
|
export { createSubAgentActivityTracker, SUBAGENT_ACTIVITY_MAX_ENTRIES } from "./contracts/subagent-activity.js";
|
|
108
105
|
export type { SubAgentActivityTracker } from "./contracts/subagent-activity.js";
|
|
109
106
|
export type { TextPart, ToolCallPart, MessagePart, ChatMessage } from "./contracts/message.js";
|
|
110
107
|
export type { TurnTerminal, ApplyFrameResult, ChatPartCheck } from "./contracts/chat-frame.js";
|
|
111
108
|
export type { TokenUsageRollup } from "./contracts/usage.js";
|
|
112
|
-
export type { ChatPart, PresentationPart, PresentationContent, PlanPart, RunCardPart, PlanApprovalPart, FileReferencePart, FileReferenceEntry, RunStartedPart, DagStatePart, DagStepState, PlanGraphStep, StepStatus, StepActivityPart, ActivityEntryPart, SubAgentActivityEntry, SubAgentActivityPart, StepPhase, StepFileTreePart, FileTreeEntry, StepOutputPart, StepOutputFile, StepSummaryPart, StepUsagePart, StepBlockedPart, RunSynthesisPart, FindingReference, SynthesizedFinding, BiologicalTheme, SynthesisProgressPart, SynthesisPhase, RunCompletedPart, RunCompletedFinding, RunFailedPart, CompactionPart, AskPart, ChildSessionStartedPart, ReportRenderedPart, } from "./contracts/chat-parts.js";
|
|
109
|
+
export type { ChatPart, PresentationPart, PresentationContent, PlanPart, RunCardPart, PlanApprovalPart, FileReferencePart, FileReferenceEntry, RunStartedPart, DagStatePart, DagStepState, PlanGraphStep, StepStatus, StepActivityPart, ActivityEntryPart, SubAgentActivityEntry, SubAgentActivityPart, StepPhase, StepFileTreePart, FileTreeEntry, StepOutputPart, StepOutputFile, StepSummaryPart, StepUsagePart, StepBlockedPart, RunSynthesisPart, FindingReference, SynthesizedFinding, BiologicalTheme, SynthesisProgressPart, SynthesisPhase, RunCompletedPart, RunCompletedFinding, RunFailedPart, CompactionPart, PauseCause, WorkKind, PausePart, ModelRetryPart, AskPart, ChildSessionStartedPart, ReportRenderedPart, } from "./contracts/chat-parts.js";
|
|
113
110
|
export { PART_REGISTRY, isTransient, isReconciling, isSidebarPart } from "./contracts/part-registry.js";
|
|
114
111
|
export type { ChatPartType, PartDescriptor, PartEmitter, PartConsumer } from "./contracts/part-registry.js";
|
|
115
112
|
export { parseStructureUrl, alphafoldEntryUrl, alphafoldPredictionUrl } from "./contracts/structure-source.js";
|
|
@@ -144,8 +141,8 @@ export type { DataProfileAxis, DataProfileChecked, DataProfileCompanionCompleten
|
|
|
144
141
|
export type { DataProfileStatus } from "./state/data-profile.js";
|
|
145
142
|
export { queryLatestRunsByAnalyses, queryDataProfileStatusByAnalyses, queryRunProgressByRuns, queryRunsEndedSince } from "./state/analyses-metrics.js";
|
|
146
143
|
export type { DataProfileSummary, EndedRunSummary, LatestRunSummary, RunProgressSummary } from "./state/analyses-metrics.js";
|
|
147
|
-
export { queryArtifactPage, countArtifactsByRuns } from "./state/artifacts.js";
|
|
148
|
-
export type { ArtifactExtensionCount, ArtifactPage, ArtifactPageEntry, ArtifactPageQuery, ArtifactPageSort, RunArtifactCount } from "./state/artifacts.js";
|
|
144
|
+
export { queryArtifactPage, queryArtifactOrigins, countArtifactsByRuns } from "./state/artifacts.js";
|
|
145
|
+
export type { ArtifactExtensionCount, ArtifactOrigin, ArtifactPage, ArtifactPageEntry, ArtifactPageQuery, ArtifactPageSort, RunArtifactCount, } from "./state/artifacts.js";
|
|
149
146
|
export { readRunSynthesis } from "./execution/run-synthesis.js";
|
|
150
147
|
export type { ReadSynthesisInput } from "./execution/run-synthesis.js";
|
|
151
148
|
export { DIMENSION_CATEGORIES, DIMENSION_CATEGORY_IDS, DIMENSION_PROBES, DIMENSION_PROBE_IDS, GROUP_CATEGORIES, GROUP_CATEGORY_IDS, GROUP_ROLES, GROUP_ROLE_IDS, PROBE_OUTCOME_IDS, dimensionCategoryEntry, dimensionScope, groupCategoryEntry, } from "./contracts/profile-vocabulary.js";
|
package/dist/index.js
CHANGED
|
@@ -92,19 +92,12 @@ export { createCitationResolver } from "./citations/resolve.js";
|
|
|
92
92
|
// the conversation agent constructs them itself.
|
|
93
93
|
export { createSearxngEngine } from "./tools/research/searxng-engine.js";
|
|
94
94
|
export { CitationKindSchema, CitationInputSchema, CitationSourceSchema, CitationSourceStatusSchema, CitationResolutionResultSchema, CitationVerdictSchema, CitationCoverageSchema, ComparisonStatusSchema, CitationFieldSchema, UnsupportedWorkKindSchema, CitationIdentifiersSchema, NormalizedCitationMetadataSchema, NormalizedCitationSchema, CitationRecordSchema, IdentifierEvidenceSchema, CitationSourceOutcomeSchema, CitationFieldComparisonSchema, CitationConflictSchema, CitationCandidateClusterSchema, CitationClusterRelationSchema, CitationSourceOperationSchema, CitationSourcePlanItemSchema, } from "./citations/types.js";
|
|
95
|
-
//
|
|
96
|
-
//
|
|
97
|
-
//
|
|
98
|
-
//
|
|
99
|
-
//
|
|
95
|
+
// Tool approval. The approval hook of a tool gives an `AskRequest`, and a turn
|
|
96
|
+
// workflow raises it in the ask ledger of `createAskGateway`. A host lists the
|
|
97
|
+
// pending asks with `pending`, answers one with the `answer` of
|
|
98
|
+
// `CoreRuntime.chatTurns`, and expires the orphans of a dead process with the
|
|
99
|
+
// boot-time `sweepExpired`.
|
|
100
100
|
export { createAskGateway } from "./tools/approval/gateway.js";
|
|
101
|
-
export { UnavailableAsk, AskRejectedError } from "./tools/approval/contract.js";
|
|
102
|
-
// Agent loop.
|
|
103
|
-
export { runAgent, finalText } from "./loop/run-agent.js";
|
|
104
|
-
// `passthroughStep` is the in-process `RunStep`: the host request/chat path runs
|
|
105
|
-
// the loop with no durability wrapper (workflow contexts use the durable step).
|
|
106
|
-
// An embedder driving `runAgent` outside a workflow passes it as `runStep`.
|
|
107
|
-
export { passthroughStep } from "./loop/run-step.js";
|
|
108
101
|
// Session value objects + helpers.
|
|
109
102
|
export { forStep, forSubAgent, scopeResource, scopeWorkloadId } from "./auth/types.js";
|
|
110
103
|
export { makeLocalAuth } from "./auth/local-auth-context.js";
|
|
@@ -118,34 +111,30 @@ export { createEmbeddingProvider } from "./providers/embedding.js";
|
|
|
118
111
|
// to the request itself, or a proxy miscounts. The root chat loop gets
|
|
119
112
|
// `CONVERSATION_PROMPT_CACHE` (1h), because a person can reply minutes later.
|
|
120
113
|
export { CONVERSATION_PROMPT_CACHE, DEFAULT_PROMPT_CACHE, promptCacheProviderOptions, withPromptCacheBreakpoint } from "./providers/prompt-cache.js";
|
|
121
|
-
// Effort resolves in order:
|
|
114
|
+
// Effort resolves in order: the effort of the run, the provider config's
|
|
122
115
|
// `reasoning`, then `DEFAULT_REASONING`, downgraded to what the model accepts.
|
|
123
116
|
// A model with no reasoning support takes `"provider-default"`.
|
|
124
117
|
export { DEFAULT_REASONING } from "./providers/reasoning.js";
|
|
125
|
-
// Provider error channel. `ProviderError` is the value `
|
|
126
|
-
// with; `toProviderError` is its sole constructor. Exposed so an embedder
|
|
127
|
-
// realizing its own `
|
|
128
|
-
//
|
|
129
|
-
//
|
|
130
|
-
// directly needs: `chatStream` throws a `ProviderError` value (a plain object,
|
|
131
|
-
// not an `Error`), so a `catch` recognizes it by shape, not `instanceof`.
|
|
118
|
+
// Provider error channel. `ProviderError` is the value a model call and `embed`
|
|
119
|
+
// fail with; `toProviderError` is its sole constructor. Exposed so an embedder
|
|
120
|
+
// realizing its own `EmbeddingProvider` fails with the exact same shape the
|
|
121
|
+
// harness's own realizations do, rather than re-deriving it. `isProviderError`
|
|
122
|
+
// is the structural guard of that plain-object value.
|
|
132
123
|
export { toProviderError, isProviderError } from "./providers/errors.js";
|
|
133
124
|
// The suspend map of a provider: an HTTP status to the suspend reason of the
|
|
134
125
|
// host. A map from the host replaces `DEFAULT_SUSPEND_ON`, which holds `402`.
|
|
135
126
|
export { DEFAULT_SUSPEND_ON } from "./providers/errors.js";
|
|
136
|
-
// The
|
|
137
|
-
//
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
//
|
|
142
|
-
//
|
|
143
|
-
|
|
144
|
-
//
|
|
145
|
-
//
|
|
146
|
-
|
|
147
|
-
// owns thread metadata (create/list/title).
|
|
148
|
-
export { openChatTurn, prepareChatTurn, runChatTurn } from "./app/chat-turn.js";
|
|
127
|
+
// The durable work of an analysis. A host lists the active work, stops it, and
|
|
128
|
+
// resumes or holds paused work with `CoreRuntime.work`, and it reads the
|
|
129
|
+
// `data-pause` part of each waiting workflow in the stream of the work.
|
|
130
|
+
export { DEFAULT_PAUSE_RETRY_DELAYS_MS } from "./workflows/pause.js";
|
|
131
|
+
export { DATA_PROFILE_STOPPED } from "./tasks/data-profile.js";
|
|
132
|
+
// Conversation turn + thread memory. A host opens a chat turn with the `open`
|
|
133
|
+
// of `CoreRuntime.chatTurns`, which starts the workflow of the turn, and reads
|
|
134
|
+
// its frames with `read`, live or again after a lost connection. The harness
|
|
135
|
+
// stores the opening, each round, and the outcome. `appendTurn` stays for a
|
|
136
|
+
// record of a host. `createThreadStore` owns thread metadata (create/list/title).
|
|
137
|
+
export { prepareChatTurn } from "./app/chat-turn.js";
|
|
149
138
|
export { createThreadStore } from "./memory/thread-store.js";
|
|
150
139
|
export { createThreadHistory, conversationRecordTurn } from "./memory/thread-history.js";
|
|
151
140
|
// The synthetic-message primitives. A host appends a record of out-of-band work (an analysis run's
|
|
@@ -170,7 +159,7 @@ export { envelopeDisplayMessages, parseStoredDisplayEnvelope } from "./memory/co
|
|
|
170
159
|
// one thing a read can now meet and not understand — a part whose key this vocabulary has retired —
|
|
171
160
|
// by dropping that part, so one stale row cannot fail a whole thread.
|
|
172
161
|
export { storedMessagesToChat } from "./memory/conversation-display-replay.js";
|
|
173
|
-
export { toChatFrame, applyChatFrame, checkChatPart } from "./contracts/chat-frame.js";
|
|
162
|
+
export { toChatFrame, applyChatFrame, checkChatPart, isKnownPartFrame } from "./contracts/chat-frame.js";
|
|
174
163
|
export { createSubAgentActivityTracker, SUBAGENT_ACTIVITY_MAX_ENTRIES } from "./contracts/subagent-activity.js";
|
|
175
164
|
export { PART_REGISTRY, isTransient, isReconciling, isSidebarPart } from "./contracts/part-registry.js";
|
|
176
165
|
// The source grammar of a `structure` presentation card — a host re-runs the same parse over a
|
|
@@ -233,8 +222,8 @@ export { upsertAnalysis } from "./state/analyses.js";
|
|
|
233
222
|
export { clearDataProfile, loadDataProfileStatus, tryRetryDataProfile, reconcileOrphanedDataProfile } from "./state/data-profile.js";
|
|
234
223
|
// The grouped reads that summarize a page of analyses: one statement for the whole list.
|
|
235
224
|
export { queryLatestRunsByAnalyses, queryDataProfileStatusByAnalyses, queryRunProgressByRuns, queryRunsEndedSince } from "./state/analyses-metrics.js";
|
|
236
|
-
// The artifact ledger reads of one analysis: one page with an exact total, and the step-output count of each run of a list in one statement.
|
|
237
|
-
export { queryArtifactPage, countArtifactsByRuns } from "./state/artifacts.js";
|
|
225
|
+
// The artifact ledger reads of one analysis: one page with an exact total, the origin of each path of a list, and the step-output count of each run of a list, each list in one statement.
|
|
226
|
+
export { queryArtifactPage, queryArtifactOrigins, countArtifactsByRuns } from "./state/artifacts.js";
|
|
238
227
|
// The validated synthesis record of a run as the flat `data-run-synthesis` part of the run stream, or null.
|
|
239
228
|
export { readRunSynthesis } from "./execution/run-synthesis.js";
|
|
240
229
|
// The controlled vocabulary the profiler draws from, as data. A consumer rendering a
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* C0/C1 control characters and DEL, excluding `\t` (U+0009) and `\n`
|
|
11
11
|
* (U+000A) which are legitimate whitespace in user prose.
|
|
12
12
|
*/
|
|
13
|
-
//
|
|
13
|
+
// oxlint-disable-next-line no-control-regex, eslint-js/no-restricted-syntax -- matching control characters is the intent: this pattern strips invisible C0/C1 bytes and DEL from untrusted user input (see `normalizeUnicode` below).
|
|
14
14
|
const CONTROL_CHARS = /[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F-\u009F]/g;
|
|
15
15
|
/**
|
|
16
16
|
* NFC-normalize and strip control characters.
|
|
@@ -31,7 +31,7 @@ export function normalizeUnicode(text) {
|
|
|
31
31
|
* arrives through no fault of the model: tool results carry raw command output
|
|
32
32
|
* and file bytes, which is why they are otherwise left unsanitized.
|
|
33
33
|
*/
|
|
34
|
-
//
|
|
34
|
+
// oxlint-disable-next-line no-control-regex, eslint-js/no-restricted-syntax -- matching NUL is the intent; see above.
|
|
35
35
|
const NUL = /\u0000/g;
|
|
36
36
|
/**
|
|
37
37
|
* Strip every NUL from `text`. Applied where a tool result is built — so the
|
|
@@ -58,17 +58,24 @@ export function stripNulCharacters(text) {
|
|
|
58
58
|
* Anthropic label wins; `sk-(?!ant-)` additionally excludes it by lookahead.
|
|
59
59
|
*/
|
|
60
60
|
const SECRET_PATTERNS = [
|
|
61
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the AWS access-key format with its fixed AKIA prefix and 16-character id body.
|
|
61
62
|
{ name: "AWS Access Key", pattern: /\bAKIA[0-9A-Z]{16}\b/g },
|
|
63
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the Anthropic key format with its sk-ant- prefix and base64url body.
|
|
62
64
|
{ name: "Anthropic API Key", pattern: /\bsk-ant-[A-Za-z0-9_-]{20,}\b/g },
|
|
65
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the generic OpenAI sk- format; the (?!ant-) lookahead keeps the Anthropic label ahead of it.
|
|
63
66
|
{ name: "OpenAI API Key", pattern: /\bsk-(?!ant-)[A-Za-z0-9_-]{20,}\b/g },
|
|
67
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the GitHub token format with its gh*_ prefix and 36-character body.
|
|
64
68
|
{ name: "GitHub Token", pattern: /\bgh[psoru]_[A-Za-z0-9_]{36,}\b/g },
|
|
65
69
|
{
|
|
66
70
|
name: "JWT Token",
|
|
71
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the three dot-separated base64url JWT segments after the eyJ signature prefix.
|
|
67
72
|
pattern: /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/g,
|
|
68
73
|
},
|
|
74
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the Bearer scheme with its token characters and padding, the header form of a leaked credential.
|
|
69
75
|
{ name: "Bearer Token", pattern: /\bBearer\s+[A-Za-z0-9_\-.~+/]+=*/gi },
|
|
70
76
|
{
|
|
71
77
|
name: "Connection String",
|
|
78
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the DB connection schemes with their :// and unquoted authority, the connection-string form of a leaked credential.
|
|
72
79
|
pattern: /\b(?:postgres|postgresql|mysql|mongodb|redis|amqp|mssql):\/\/[^\s"'`]+/gi,
|
|
73
80
|
},
|
|
74
81
|
];
|
|
@@ -14,24 +14,24 @@
|
|
|
14
14
|
* {@link ContentSimilarity}.
|
|
15
15
|
*/
|
|
16
16
|
import type { MemberFile } from "./set-types.js";
|
|
17
|
-
export
|
|
17
|
+
export type DirectoryNode = {
|
|
18
18
|
readonly name: string;
|
|
19
19
|
readonly children: Map<string, DirectoryNode>;
|
|
20
20
|
readonly files: MemberFile[];
|
|
21
21
|
readonly fineSignature: Set<string>;
|
|
22
22
|
readonly coarseSignature: Set<string>;
|
|
23
23
|
readonly childNames: Set<string>;
|
|
24
|
-
}
|
|
24
|
+
};
|
|
25
25
|
/** One concrete directory, carrying the values of the template positions above it. */
|
|
26
|
-
export
|
|
26
|
+
export type DirectoryEntry = {
|
|
27
27
|
readonly node: DirectoryNode;
|
|
28
28
|
readonly varValues: readonly string[];
|
|
29
|
-
}
|
|
29
|
+
};
|
|
30
30
|
/** What a content-schema comparison would be given to judge two candidate clusters by. */
|
|
31
|
-
export
|
|
31
|
+
export type ClusterEvidence = {
|
|
32
32
|
readonly names: readonly string[];
|
|
33
33
|
readonly files: readonly MemberFile[];
|
|
34
|
-
}
|
|
34
|
+
};
|
|
35
35
|
/**
|
|
36
36
|
* Similarity from file contents — header fields, delimiters, column names.
|
|
37
37
|
*
|
|
@@ -15,16 +15,18 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { DATE_SYMBOL, DIGIT_SYMBOL, ID_SYMBOL, maskSegment, skeletonOf, tokenizeName } from "./tokens.js";
|
|
17
17
|
import { COARSE_SIMILARITY, CONTAINMENT_SIMILARITY, FINE_SIMILARITY, MAX_SIGNATURE_KEYS } from "./tuning.js";
|
|
18
|
+
import { firstSegmentOf } from "../lib/text.js";
|
|
18
19
|
function newNode(name) {
|
|
19
20
|
return { name, children: new Map(), files: [], fineSignature: new Set(), coarseSignature: new Set(), childNames: new Set() };
|
|
20
21
|
}
|
|
22
|
+
import { presentAt } from "../lib/present.js";
|
|
21
23
|
export function buildTree(files) {
|
|
22
24
|
const root = newNode("");
|
|
23
25
|
for (const file of files) {
|
|
24
26
|
const segments = file.path.split("/");
|
|
25
27
|
let node = root;
|
|
26
28
|
for (let i = 0; i < segments.length - 1; i++) {
|
|
27
|
-
const name = segments
|
|
29
|
+
const name = presentAt(segments, i, "path segments");
|
|
28
30
|
let child = node.children.get(name);
|
|
29
31
|
if (!child) {
|
|
30
32
|
child = newNode(name);
|
|
@@ -95,8 +97,10 @@ function hasMask(skeleton) {
|
|
|
95
97
|
function skeletonKin(a, b) {
|
|
96
98
|
if (a === b && hasMask(a))
|
|
97
99
|
return true;
|
|
98
|
-
const head = a
|
|
99
|
-
|
|
100
|
+
const head = firstSegmentOf(a, "_-.");
|
|
101
|
+
if (head === undefined)
|
|
102
|
+
return false;
|
|
103
|
+
return head === firstSegmentOf(b, "_-.") && hasMask(head);
|
|
100
104
|
}
|
|
101
105
|
function filesUnder(node, out = []) {
|
|
102
106
|
out.push(...node.files);
|
|
@@ -193,9 +197,11 @@ export function clusterChildren(entries, contentSimilarity) {
|
|
|
193
197
|
let merged = false;
|
|
194
198
|
for (let i = 0; i < clusters.length && !merged; i++) {
|
|
195
199
|
for (let j = i + 1; j < clusters.length; j++) {
|
|
196
|
-
|
|
200
|
+
const left = presentAt(clusters, i, "directory clusters");
|
|
201
|
+
const right = presentAt(clusters, j, "directory clusters");
|
|
202
|
+
if (!agrees(left, right, contentSimilarity))
|
|
197
203
|
continue;
|
|
198
|
-
absorb(
|
|
204
|
+
absorb(left, right);
|
|
199
205
|
clusters.splice(j, 1);
|
|
200
206
|
merged = true;
|
|
201
207
|
break;
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* into a second set that mirrors the first.
|
|
9
9
|
*/
|
|
10
10
|
import { basenameOf } from "./tokens.js";
|
|
11
|
+
import { presentGet } from "../lib/present.js";
|
|
11
12
|
import { EXPECTED_COMPANION_SHARE, MAX_INCOMPLETE_SAMPLE } from "./tuning.js";
|
|
12
13
|
/** Suffixes that name a helper file. The list is a floor; growth is additive. */
|
|
13
14
|
const COMPANION_SUFFIXES = [".bai", ".crai", ".tbi", ".csi", ".idx", ".fai", ".gzi", ".dict", ".md5", ".sha1", ".sha256"];
|
|
@@ -80,7 +81,7 @@ export function attachCompanions(files) {
|
|
|
80
81
|
if (root === undefined)
|
|
81
82
|
continue;
|
|
82
83
|
const bucket = attached.get(root);
|
|
83
|
-
const companion = { path: file.path, suffix: suffixes
|
|
84
|
+
const companion = { path: file.path, suffix: presentGet(suffixes, file.path, "companion suffixes"), size: file.size };
|
|
84
85
|
if (bucket)
|
|
85
86
|
bucket.push(companion);
|
|
86
87
|
else
|
|
@@ -96,7 +97,7 @@ export function attachCompanions(files) {
|
|
|
96
97
|
name: basenameOf(file.path),
|
|
97
98
|
size: file.size,
|
|
98
99
|
format: file.format,
|
|
99
|
-
|
|
100
|
+
wrapper: file.wrapper,
|
|
100
101
|
companions,
|
|
101
102
|
});
|
|
102
103
|
}
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
import type { ContentSimilarity } from "./clustering.js";
|
|
17
17
|
import type { DetectedSets } from "./set-types.js";
|
|
18
18
|
import type { ScannedFile } from "./types.js";
|
|
19
|
-
export
|
|
19
|
+
export type DetectSetsOptions = {
|
|
20
20
|
/** Read-based agreement between candidate clusters, when the caller has header readouts. */
|
|
21
21
|
readonly contentSimilarity?: ContentSimilarity;
|
|
22
|
-
}
|
|
22
|
+
};
|
|
23
23
|
/** Observe the detected sets of a scanned tree. Pure — no I/O, no container, no model. */
|
|
24
24
|
export declare function detectSets(files: readonly ScannedFile[], options?: DetectSetsOptions): DetectedSets;
|
|
@@ -19,6 +19,7 @@ import { applyMarkers } from "./markers.js";
|
|
|
19
19
|
import { quarantine } from "./quarantine.js";
|
|
20
20
|
import { selectReadouts } from "./readout-budget.js";
|
|
21
21
|
import { catchAll, describeGroup, describeSlot, mineContext, slotToken } from "./templates.js";
|
|
22
|
+
import { presentAt } from "../lib/present.js";
|
|
22
23
|
import { IDENTITY_CROSS_CHECK_RATIO, MAX_EXAMPLE_PATHS, MAX_LEFTOVER_SAMPLE, MAX_SETS_PER_CONTEXT, MIN_IDENTITY_TOKEN_LENGTH } from "./tuning.js";
|
|
23
24
|
function fileCountOf(members) {
|
|
24
25
|
return members.reduce((total, member) => total + 1 + member.companions.length, 0);
|
|
@@ -41,7 +42,7 @@ function wrapperCensus(members) {
|
|
|
41
42
|
return [...counts.entries()].map(([wrapper, count]) => ({ wrapper, count })).sort((a, b) => b.count - a.count || a.wrapper.localeCompare(b.wrapper, "en"));
|
|
42
43
|
}
|
|
43
44
|
function renderTemplate(segments, slots) {
|
|
44
|
-
return segments.map((segment) => (segment.kind === "literal" ? segment.text : slotToken(slots
|
|
45
|
+
return segments.map((segment) => (segment.kind === "literal" ? segment.text : slotToken(presentAt(slots, segment.slot, "template slots")))).join("");
|
|
45
46
|
}
|
|
46
47
|
/** The token value at a slot's position, with the literal affixes the template shows stripped off. */
|
|
47
48
|
function coreAt(item, slot) {
|
|
@@ -65,12 +66,11 @@ function crossCheckIdentity(group, nameSlots, directorySlots, directoryValues) {
|
|
|
65
66
|
for (const slot of nameSlots) {
|
|
66
67
|
if (slot.distinctValues < 2)
|
|
67
68
|
continue;
|
|
68
|
-
for (
|
|
69
|
-
const
|
|
70
|
-
const paired = directorySlots[k].distinctValues === slot.distinctValues;
|
|
69
|
+
for (const [k, values] of directoryValues.entries()) {
|
|
70
|
+
const paired = presentAt(directorySlots, k, "directory slots").distinctValues === slot.distinctValues;
|
|
71
71
|
let matches = 0;
|
|
72
|
-
for (
|
|
73
|
-
const core = coreAt(
|
|
72
|
+
for (const [i, item] of group.items.entries()) {
|
|
73
|
+
const core = coreAt(item, slot);
|
|
74
74
|
const segment = values[i] ?? "";
|
|
75
75
|
const alike = core === segment ||
|
|
76
76
|
(segment.includes(core) && (paired || core.length >= MIN_IDENTITY_TOKEN_LENGTH)) ||
|
|
@@ -101,8 +101,9 @@ function assembleMinedSet(group, path) {
|
|
|
101
101
|
const at = variablePosition++;
|
|
102
102
|
const values = members.map((member) => member.varValues[at] ?? "");
|
|
103
103
|
const distinct = new Set(values);
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
const [only] = distinct;
|
|
105
|
+
if (only !== undefined && distinct.size === 1) {
|
|
106
|
+
directorySegments.push({ kind: "literal", text: `${only}/` });
|
|
106
107
|
continue;
|
|
107
108
|
}
|
|
108
109
|
const slot = describeSlot(values, "directory", segment.index);
|
|
@@ -128,26 +129,28 @@ function finalizeSet(draft, index) {
|
|
|
128
129
|
const id = `set-${index + 1}`;
|
|
129
130
|
const slotIds = draft.slots.map((_, position) => `${id}.slot-${position + 1}`);
|
|
130
131
|
const slots = draft.slots.map((slot, position) => ({
|
|
131
|
-
id: slotIds
|
|
132
|
+
id: presentAt(slotIds, position, "slot ids"),
|
|
132
133
|
location: slot.location,
|
|
133
134
|
index: slot.index,
|
|
134
135
|
tokenClass: slot.tokenClass,
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
136
|
+
width: slot.width,
|
|
137
|
+
minLength: slot.minLength,
|
|
138
|
+
maxLength: slot.maxLength,
|
|
139
|
+
skeleton: slot.skeleton,
|
|
140
|
+
prefix: slot.prefix,
|
|
141
|
+
suffix: slot.suffix,
|
|
140
142
|
distinctValues: slot.distinctValues,
|
|
141
143
|
sampleValues: slot.sampleValues,
|
|
142
|
-
|
|
144
|
+
sameAsSlot: slot.sameAs === undefined ? undefined : presentAt(slotIds, slot.sameAs, "slot ids"),
|
|
145
|
+
crossCheckMismatches: slot.sameAs === undefined ? undefined : (slot.crossCheckMismatches ?? 0),
|
|
143
146
|
}));
|
|
144
|
-
const segments = draft.segments.map((segment) => segment.kind === "literal" ? { kind: "literal", text: segment.text } : { kind: "slot", slotId: slotIds
|
|
147
|
+
const segments = draft.segments.map((segment) => segment.kind === "literal" ? { kind: "literal", text: segment.text } : { kind: "slot", slotId: presentAt(slotIds, segment.slot, "slot ids") });
|
|
145
148
|
const { members, completeness } = assessCompleteness(draft.members);
|
|
146
149
|
return {
|
|
147
150
|
set: {
|
|
148
151
|
id,
|
|
149
152
|
origin: draft.origin,
|
|
150
|
-
|
|
153
|
+
marker: draft.marker,
|
|
151
154
|
pathTemplate: draft.pathTemplate,
|
|
152
155
|
segments,
|
|
153
156
|
memberCount: members.length,
|
|
@@ -160,8 +163,8 @@ function finalizeSet(draft, index) {
|
|
|
160
163
|
examplePaths: members.slice(0, MAX_EXAMPLE_PATHS).map((member) => member.path),
|
|
161
164
|
members,
|
|
162
165
|
},
|
|
163
|
-
values: draft.slots.map((slot, position) => [slotIds
|
|
164
|
-
memberValues: draft.slots.map((slot, position) => [slotIds
|
|
166
|
+
values: draft.slots.map((slot, position) => [presentAt(slotIds, position, "slot ids"), slot.values]),
|
|
167
|
+
memberValues: draft.slots.map((slot, position) => [presentAt(slotIds, position, "slot ids"), slot.memberValues]),
|
|
165
168
|
};
|
|
166
169
|
}
|
|
167
170
|
/**
|
|
@@ -236,8 +239,9 @@ export function detectSets(files, options = {}) {
|
|
|
236
239
|
if (children.length === 0)
|
|
237
240
|
return;
|
|
238
241
|
for (const cluster of clusterChildren(children, options.contentSimilarity)) {
|
|
239
|
-
|
|
240
|
-
|
|
242
|
+
const [name] = cluster.names;
|
|
243
|
+
if (name !== undefined && cluster.names.length === 1) {
|
|
244
|
+
descend(cluster.entries, [...path, { kind: "literal", name }]);
|
|
241
245
|
continue;
|
|
242
246
|
}
|
|
243
247
|
const next = cluster.entries.map((entry) => ({ node: entry.node, varValues: [...entry.varValues, entry.node.name] }));
|
|
@@ -36,12 +36,12 @@ export declare const READOUT_CONCURRENCY = 8;
|
|
|
36
36
|
*/
|
|
37
37
|
export declare const SANDBOX_CONTAINER_FORMATS: ReadonlySet<string>;
|
|
38
38
|
/** One file to read a header from, and what the scan already knows about its bytes. */
|
|
39
|
-
export
|
|
39
|
+
export type ReadoutTargetSpec = {
|
|
40
40
|
readonly path: string;
|
|
41
41
|
readonly format: string;
|
|
42
42
|
readonly wrapper?: string;
|
|
43
|
-
}
|
|
44
|
-
export
|
|
43
|
+
};
|
|
44
|
+
export type ReadHeadersArgs = {
|
|
45
45
|
readonly targets: readonly ReadoutTargetSpec[];
|
|
46
46
|
readonly session: AgentSession;
|
|
47
47
|
readonly fs: WorkspaceFilesystem;
|
|
@@ -52,8 +52,8 @@ export interface ReadHeadersArgs {
|
|
|
52
52
|
readonly mountRoot: string;
|
|
53
53
|
readonly deadlineMs: number;
|
|
54
54
|
readonly emit: EmitFn;
|
|
55
|
-
}
|
|
56
|
-
export
|
|
55
|
+
};
|
|
56
|
+
export type EnrichShapesArgs = {
|
|
57
57
|
readonly shapes: readonly FileShape[];
|
|
58
58
|
readonly session: AgentSession;
|
|
59
59
|
readonly fs: WorkspaceFilesystem;
|
|
@@ -64,7 +64,7 @@ export interface EnrichShapesArgs {
|
|
|
64
64
|
readonly mountRoot: string;
|
|
65
65
|
readonly deadlineMs: number;
|
|
66
66
|
readonly emit: EmitFn;
|
|
67
|
-
}
|
|
67
|
+
};
|
|
68
68
|
/**
|
|
69
69
|
* Read a header from each named file, keyed by path.
|
|
70
70
|
*
|
|
@@ -16,8 +16,12 @@
|
|
|
16
16
|
* enrichment reads a bounded number of members per shape whatever the tree's size.
|
|
17
17
|
*/
|
|
18
18
|
import { readFile } from "node:fs/promises";
|
|
19
|
+
import { z } from "zod";
|
|
19
20
|
import { runSandboxExec } from "../tools/workspace/run-exec.js";
|
|
20
21
|
import { READOUT_PREFIX_BYTES, readPrefix } from "./readout.js";
|
|
22
|
+
import { safeParseJsonAs } from "../lib/parse-json.js";
|
|
23
|
+
import { presentAt } from "../lib/present.js";
|
|
24
|
+
import { collapseWhitespace } from "../lib/text.js";
|
|
21
25
|
/** Members decoded per shape. One is enough to characterise a set whose names already match. */
|
|
22
26
|
export const MEMBERS_DECODED_PER_SHAPE = 1;
|
|
23
27
|
/** Wall-clock bound on the container-decode exec. It opens footers, nothing more. */
|
|
@@ -57,7 +61,7 @@ export async function readHeaders(args) {
|
|
|
57
61
|
let next = 0;
|
|
58
62
|
await Promise.all(Array.from({ length: Math.min(READOUT_CONCURRENCY, prefixed.length) }, async () => {
|
|
59
63
|
for (let i = next++; i < prefixed.length; i = next++) {
|
|
60
|
-
const target = prefixed
|
|
64
|
+
const target = presentAt(prefixed, i, "readout targets");
|
|
61
65
|
readouts.set(target.path, await readFromPrefix(args, target));
|
|
62
66
|
}
|
|
63
67
|
}));
|
|
@@ -85,7 +89,7 @@ export async function enrichShapes(args) {
|
|
|
85
89
|
return [...args.shapes];
|
|
86
90
|
const readouts = await readHeaders({
|
|
87
91
|
...args,
|
|
88
|
-
targets: [...targets.entries()].map(([path, shape]) => ({ path, format: shape.format,
|
|
92
|
+
targets: [...targets.entries()].map(([path, shape]) => ({ path, format: shape.format, wrapper: shape.wrapper })),
|
|
89
93
|
});
|
|
90
94
|
const byShape = new Map();
|
|
91
95
|
for (const [path, shape] of targets) {
|
|
@@ -105,9 +109,15 @@ async function readFromPrefix(args, target) {
|
|
|
105
109
|
.unwrapOr({ kind: "read_failed" });
|
|
106
110
|
if (read.kind !== "ok")
|
|
107
111
|
return { path, fields: {}, unavailable: `prefix unreadable (${read.kind})` };
|
|
108
|
-
const readout = await readPrefix({ prefix: read.bytes, format: target.format,
|
|
109
|
-
return { path, fields: readout.fields,
|
|
112
|
+
const readout = await readPrefix({ prefix: read.bytes, format: target.format, wrapper: target.wrapper });
|
|
113
|
+
return { path, fields: readout.fields, unavailable: readout.unavailable };
|
|
110
114
|
}
|
|
115
|
+
/** One JSON line the decoder prints on stdout: the path it read, its fields, or why it could not. */
|
|
116
|
+
const ReadoutLineSchema = z.object({
|
|
117
|
+
path: z.string().optional(),
|
|
118
|
+
fields: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).optional(),
|
|
119
|
+
unavailable: z.string().optional(),
|
|
120
|
+
});
|
|
111
121
|
async function decodeContainers(args, machine, containers) {
|
|
112
122
|
const readouts = new Map();
|
|
113
123
|
const source = await readFile(CONTAINER_DECODER, "utf8").catch(() => undefined);
|
|
@@ -133,18 +143,21 @@ async function decodeContainers(args, machine, containers) {
|
|
|
133
143
|
continue;
|
|
134
144
|
let parsed;
|
|
135
145
|
try {
|
|
136
|
-
parsed =
|
|
146
|
+
parsed = safeParseJsonAs(trimmed, ReadoutLineSchema);
|
|
137
147
|
}
|
|
138
148
|
catch {
|
|
149
|
+
// The sandbox caps stdout and a timeout can stop the decoder mid-write, so the last line can be cut.
|
|
139
150
|
continue;
|
|
140
151
|
}
|
|
141
|
-
|
|
152
|
+
if (!parsed.success)
|
|
153
|
+
continue;
|
|
154
|
+
const target = parsed.data.path ? byAbsolute.get(parsed.data.path) : undefined;
|
|
142
155
|
if (!target)
|
|
143
156
|
continue;
|
|
144
157
|
readouts.set(target.path, {
|
|
145
158
|
path: target.path,
|
|
146
|
-
fields: parsed.fields ?? {},
|
|
147
|
-
|
|
159
|
+
fields: parsed.data.fields ?? {},
|
|
160
|
+
unavailable: parsed.data.unavailable,
|
|
148
161
|
});
|
|
149
162
|
}
|
|
150
163
|
// A target the decoder said nothing about is told WHY, from the exec's own outcome: the
|
|
@@ -158,14 +171,18 @@ async function decodeContainers(args, machine, containers) {
|
|
|
158
171
|
}
|
|
159
172
|
return readouts;
|
|
160
173
|
}
|
|
174
|
+
const CUT_OUTPUT_REASON = "container decoder output was cut at the sandbox byte cap";
|
|
161
175
|
function describeExecFailure(result) {
|
|
176
|
+
const cut = result.stdoutTruncated ? ` (${CUT_OUTPUT_REASON})` : "";
|
|
162
177
|
if (result.timedOut)
|
|
163
|
-
return `container decoder timed out after ${ENRICH_TIMEOUT_SECONDS}s`;
|
|
178
|
+
return `container decoder timed out after ${ENRICH_TIMEOUT_SECONDS}s${cut}`;
|
|
164
179
|
if (result.syntheticFailure)
|
|
165
|
-
return `container decoder did not complete: ${result.syntheticFailure.reason}`;
|
|
180
|
+
return `container decoder did not complete: ${result.syntheticFailure.reason}${cut}`;
|
|
166
181
|
if (result.exitCode !== 0) {
|
|
167
|
-
const stderr = result.stderr
|
|
168
|
-
return `container decoder exited ${result.exitCode ?? "with no code"}${stderr ? `: ${stderr}` : ""}`;
|
|
182
|
+
const stderr = collapseWhitespace(result.stderr).slice(0, MAX_STDERR_CHARS);
|
|
183
|
+
return `container decoder exited ${result.exitCode ?? "with no code"}${stderr ? `: ${stderr}` : ""}${cut}`;
|
|
169
184
|
}
|
|
185
|
+
if (result.stdoutTruncated)
|
|
186
|
+
return CUT_OUTPUT_REASON;
|
|
170
187
|
return "container decoder reported nothing for this member";
|
|
171
188
|
}
|
|
@@ -30,10 +30,10 @@ export declare const KNOWN_EXTENSIONS: ReadonlySet<string>;
|
|
|
30
30
|
export declare function extensionChain(fileName: string): string[];
|
|
31
31
|
/** The extension chain with any compression wrappers stripped from the tail. */
|
|
32
32
|
export declare function innerExtensions(extensions: readonly string[]): string[];
|
|
33
|
-
export
|
|
33
|
+
export type DetectedFormat = {
|
|
34
34
|
readonly format: string;
|
|
35
35
|
readonly wrapper?: string;
|
|
36
|
-
}
|
|
36
|
+
};
|
|
37
37
|
/**
|
|
38
38
|
* Identify a file's format from a bounded prefix of its bytes, falling back to the
|
|
39
39
|
* extension chain — which is all a wrapped file can offer the host, since reading
|