@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
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { okAsync } from "neverthrow";
|
|
16
16
|
import { tryMutation, tryQuery } from "../lib/db-result.js";
|
|
17
|
+
import { presentAt } from "../lib/present.js";
|
|
17
18
|
/**
|
|
18
19
|
* The identifier shape and length the harness may interpolate into a statement.
|
|
19
20
|
* An identifier cannot be a bind parameter, so a name reaching SQL has to be
|
|
@@ -25,7 +26,13 @@ import { tryMutation, tryQuery } from "../lib/db-result.js";
|
|
|
25
26
|
* a name that matches it has one byte per character and `length` is the byte count
|
|
26
27
|
* the limit is measured in.
|
|
27
28
|
*/
|
|
28
|
-
|
|
29
|
+
function isSqlIdentifierShape(name) {
|
|
30
|
+
if (name.length === 0)
|
|
31
|
+
return false;
|
|
32
|
+
const isLowerOrUnderscore = (char) => (char >= "a" && char <= "z") || char === "_";
|
|
33
|
+
const isWordChar = (char) => isLowerOrUnderscore(char) || (char >= "0" && char <= "9");
|
|
34
|
+
return isLowerOrUnderscore(name.charAt(0)) && Array.from(name).every(isWordChar);
|
|
35
|
+
}
|
|
29
36
|
const MAX_SQL_IDENTIFIER_BYTES = 63;
|
|
30
37
|
/**
|
|
31
38
|
* Whether `name` may be interpolated into a statement as an identifier. Shared
|
|
@@ -33,7 +40,7 @@ const MAX_SQL_IDENTIFIER_BYTES = 63;
|
|
|
33
40
|
* shape — one invariant, one place to read it.
|
|
34
41
|
*/
|
|
35
42
|
export function isSqlIdentifier(name) {
|
|
36
|
-
return
|
|
43
|
+
return isSqlIdentifierShape(name) && name.length <= MAX_SQL_IDENTIFIER_BYTES;
|
|
37
44
|
}
|
|
38
45
|
function assertIdent(name) {
|
|
39
46
|
if (!isSqlIdentifier(name)) {
|
|
@@ -56,11 +63,8 @@ export function createVectorStore(pool) {
|
|
|
56
63
|
)`);
|
|
57
64
|
});
|
|
58
65
|
},
|
|
59
|
-
buildIndex({ indexName
|
|
66
|
+
buildIndex({ indexName }) {
|
|
60
67
|
assertIdent(indexName);
|
|
61
|
-
if (indexConfig.type !== "hnsw") {
|
|
62
|
-
throw new Error(`vector-store: unsupported index type "${indexConfig.type}"`);
|
|
63
|
-
}
|
|
64
68
|
// m/ef_construction default to 8/32.
|
|
65
69
|
return tryMutation("vectorStore.buildIndex", async () => {
|
|
66
70
|
await pool.query(`CREATE INDEX IF NOT EXISTS "${indexName}_vector_idx"
|
|
@@ -76,7 +80,7 @@ export function createVectorStore(pool) {
|
|
|
76
80
|
const finalIds = ids ?? vectors.map(() => crypto.randomUUID());
|
|
77
81
|
return tryMutation("vectorStore.upsert", async () => {
|
|
78
82
|
for (let i = 0; i < vectors.length; i++) {
|
|
79
|
-
const vec = toVectorLiteral(vectors
|
|
83
|
+
const vec = toVectorLiteral(presentAt(vectors, i, "the vector at the index"));
|
|
80
84
|
const meta = JSON.stringify(metadata?.[i] ?? {});
|
|
81
85
|
await pool.query(`INSERT INTO "${indexName}" (vector_id, embedding, metadata)
|
|
82
86
|
VALUES ($1, $2::vector, $3::jsonb)
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
import type { DataProfileResult } from "../contracts/data-profile.js";
|
|
32
32
|
import type { SetMenu } from "../input-scan/menu.js";
|
|
33
33
|
import type { DetectedSets } from "../input-scan/set-types.js";
|
|
34
|
-
import type {
|
|
34
|
+
import type { MenuOperationInput } from "../schemas/data-profile-schemas.js";
|
|
35
35
|
import { type ProfileResolution } from "./data-profile-resolve.js";
|
|
36
36
|
/** Delta paths named in the repair briefing before the tail folds into a count. */
|
|
37
37
|
export declare const MAX_DELTA_PATHS = 30;
|
|
@@ -43,11 +43,11 @@ export type AbsorbOutcome = {
|
|
|
43
43
|
readonly reason: string;
|
|
44
44
|
} | {
|
|
45
45
|
readonly kind: "full";
|
|
46
|
-
readonly operations: readonly
|
|
46
|
+
readonly operations: readonly MenuOperationInput[];
|
|
47
47
|
readonly resolution: ProfileResolution;
|
|
48
48
|
} | {
|
|
49
49
|
readonly kind: "partial";
|
|
50
|
-
readonly operations: readonly
|
|
50
|
+
readonly operations: readonly MenuOperationInput[];
|
|
51
51
|
readonly resolution: ProfileResolution;
|
|
52
52
|
/** Kept files the replayed recipe does not account for — what the agent is woken for. */
|
|
53
53
|
readonly delta: readonly string[];
|
|
@@ -51,17 +51,19 @@ function keptPaths(detected) {
|
|
|
51
51
|
*/
|
|
52
52
|
function annotationOf(group, kept) {
|
|
53
53
|
const annotations = (group.memberAnnotations ?? []).filter((entry) => kept.has(entry.path));
|
|
54
|
-
|
|
54
|
+
const annotation = {
|
|
55
55
|
name: group.name,
|
|
56
56
|
memberRepresents: group.memberRepresents,
|
|
57
57
|
description: group.description,
|
|
58
58
|
role: group.role,
|
|
59
59
|
category: group.category,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
...(annotations.length > 0 ? { memberAnnotations: annotations.map((entry) => ({ path: entry.path, note: entry.note })) } : {}),
|
|
60
|
+
categoryLabel: group.categoryLabel,
|
|
61
|
+
subtype: group.subtype,
|
|
62
|
+
categoryReason: group.categoryReason,
|
|
64
63
|
};
|
|
64
|
+
if (annotations.length > 0)
|
|
65
|
+
annotation.memberAnnotations = annotations.map((entry) => ({ path: entry.path, note: entry.note }));
|
|
66
|
+
return annotation;
|
|
65
67
|
}
|
|
66
68
|
class StrandedRecipe extends Error {
|
|
67
69
|
}
|
|
@@ -140,21 +142,23 @@ function replayDimension(ctx, dimension) {
|
|
|
140
142
|
if (!slot) {
|
|
141
143
|
throw new StrandedRecipe(`dimension "${dimension.label}": the template "${binding.template}" no longer carries a slot at position ${binding.slotIndex}`);
|
|
142
144
|
}
|
|
143
|
-
return { kind: "slot", setId: set.id, slotId: slot.id,
|
|
145
|
+
return { kind: "slot", setId: set.id, slotId: slot.id, note: observation.note };
|
|
144
146
|
});
|
|
145
|
-
|
|
147
|
+
const reconciliations = dimension.reconciliations?.map((entry) => ({ ...entry }));
|
|
148
|
+
const replayed = {
|
|
146
149
|
label: dimension.label,
|
|
147
150
|
category: dimension.category,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
+
categoryLabel: dimension.categoryLabel,
|
|
152
|
+
scope: dimension.scope,
|
|
153
|
+
description: dimension.description,
|
|
151
154
|
observations,
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
...(dimension.nestsUnder ? { nestsUnder: { ...dimension.nestsUnder } } : {}),
|
|
156
|
-
...(dimension.treatmentReason ? { treatmentReason: dimension.treatmentReason } : {}),
|
|
155
|
+
reconciliations,
|
|
156
|
+
nestsUnder: dimension.nestsUnder === undefined ? undefined : { ...dimension.nestsUnder },
|
|
157
|
+
treatmentReason: dimension.treatmentReason,
|
|
157
158
|
};
|
|
159
|
+
if (reconciliations && reconciliations.length > 0)
|
|
160
|
+
replayed.reconciliations = reconciliations;
|
|
161
|
+
return replayed;
|
|
158
162
|
}
|
|
159
163
|
/** Every group id the authored steps named, including a value-mapped split's per-value groups. */
|
|
160
164
|
function namedGroupIds(steps) {
|
|
@@ -208,11 +212,12 @@ export function absorbRecipe(prior, detected, menu) {
|
|
|
208
212
|
}
|
|
209
213
|
const submission = {
|
|
210
214
|
operations,
|
|
211
|
-
...(dimensions.length > 0 ? { dimensions } : {}),
|
|
212
215
|
analysisSummary: prior.summary,
|
|
213
216
|
domain: prior.domain ?? "",
|
|
214
217
|
organism: prior.organism ?? null,
|
|
215
218
|
};
|
|
219
|
+
if (dimensions.length > 0)
|
|
220
|
+
submission.dimensions = dimensions;
|
|
216
221
|
// Final round by construction: no agent is awake to repair anything this raises, so a
|
|
217
222
|
// contested file sweeps rather than being awarded to whichever step ran first.
|
|
218
223
|
const resolution = resolveProfileSubmission(submission, detected, menu, { finalRound: true });
|
|
@@ -47,7 +47,7 @@ export type ActivityWrite = (part: unknown) => Promise<void>;
|
|
|
47
47
|
* manifest, a fallback file description) are logged because neither warrants
|
|
48
48
|
* interrupting the activity line.
|
|
49
49
|
*/
|
|
50
|
-
export
|
|
50
|
+
export type ProfileActivityEmitter = {
|
|
51
51
|
/** Reported before the sandbox is created — the longest wait in a profile, and the one that precedes the agent entirely. */
|
|
52
52
|
sandboxInit(): Promise<void>;
|
|
53
53
|
/**
|
|
@@ -72,16 +72,16 @@ export interface ProfileActivityEmitter {
|
|
|
72
72
|
* phrases are this capability's observable contract, and a call site that
|
|
73
73
|
* composed its own is a call site that can drift from it.
|
|
74
74
|
*/
|
|
75
|
-
forTool(name: string, input: unknown, resolveDetail?: ToolDetailResolver): Promise<void>;
|
|
75
|
+
forTool(toolUseId: string, name: string, input: unknown, resolveDetail?: ToolDetailResolver): Promise<void>;
|
|
76
76
|
/** Reported for the vector-store pass that indexes per-file descriptions. */
|
|
77
77
|
indexing(): Promise<void>;
|
|
78
78
|
/** The success terminal. Emitted only after the terminal ledger write has landed. */
|
|
79
79
|
complete(): Promise<void>;
|
|
80
80
|
/** The failure terminal, carrying the same user-safe reason the ledger receives. */
|
|
81
81
|
failed(reason: string): Promise<void>;
|
|
82
|
-
}
|
|
82
|
+
};
|
|
83
83
|
/** Identity the emitted parts carry — the workflow's synthetic frame, not a real run. */
|
|
84
|
-
export
|
|
84
|
+
export type ProfileActivityFrame = {
|
|
85
85
|
/**
|
|
86
86
|
* The constant literal the data-profile workflow uses as its run id. It is the
|
|
87
87
|
* same string for every analysis, so it identifies nothing; consumers are
|
|
@@ -92,7 +92,7 @@ export interface ProfileActivityFrame {
|
|
|
92
92
|
readonly runId: string;
|
|
93
93
|
/** The constant literal step id of the profile's single synthetic step. */
|
|
94
94
|
readonly stepId: string;
|
|
95
|
-
}
|
|
95
|
+
};
|
|
96
96
|
/**
|
|
97
97
|
* Build the profile's activity channel over `write`.
|
|
98
98
|
*
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* anything that throws on the way there reaches the failure path having emitted
|
|
20
20
|
* no terminal at all.
|
|
21
21
|
*/
|
|
22
|
-
import { activityEmission, activityForTool } from "../sandbox/sandbox-step-translate.js";
|
|
22
|
+
import { activityEmission, activityForTool, toolActivityKey } from "../sandbox/sandbox-step-translate.js";
|
|
23
23
|
/**
|
|
24
24
|
* Build the profile's activity channel over `write`.
|
|
25
25
|
*
|
|
@@ -47,10 +47,10 @@ export function createProfileActivityEmitter(write, frame, logger, now) {
|
|
|
47
47
|
logger.warn("run-event write failed (non-fatal)", { phase, ...logger.errorFields(err) });
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
|
-
const emit = async (phase, activity) => {
|
|
51
|
-
const
|
|
50
|
+
const emit = async (phase, activity, toolUseId) => {
|
|
51
|
+
const key = toolUseId === undefined ? seq++ : toolActivityKey(toolUseId);
|
|
52
52
|
const at = new Date(await now()).toISOString();
|
|
53
|
-
const parts = activityEmission(frame,
|
|
53
|
+
const parts = activityEmission(frame, key, phase, activity, at);
|
|
54
54
|
await writeAlone(parts.activity, phase);
|
|
55
55
|
await writeAlone(parts.entry, phase);
|
|
56
56
|
};
|
|
@@ -58,7 +58,7 @@ export function createProfileActivityEmitter(write, frame, logger, now) {
|
|
|
58
58
|
sandboxInit: () => emit("sandbox-init", "Starting sandbox"),
|
|
59
59
|
scanning: () => emit("executing", "Scanning input files"),
|
|
60
60
|
agentStarting: () => emit("executing", "Running data-profiler"),
|
|
61
|
-
forTool: (name, input, resolveDetail) => emit("executing", activityForTool(name, input, resolveDetail)),
|
|
61
|
+
forTool: (toolUseId, name, input, resolveDetail) => emit("executing", activityForTool(name, input, resolveDetail), toolUseId),
|
|
62
62
|
indexing: () => emit("indexing", "Indexing input descriptions for search"),
|
|
63
63
|
complete: () => emit("complete", "Profile complete"),
|
|
64
64
|
failed: (reason) => emit("failed", reason),
|
|
@@ -34,18 +34,18 @@ export declare const MAX_ENTITY_ENTRIES = 20000;
|
|
|
34
34
|
* own types and are untouched.
|
|
35
35
|
*/
|
|
36
36
|
export declare const PROFILE_INDEX_TYPES: readonly ["input-group", "input-dimension", "input", "input-kind"];
|
|
37
|
-
export
|
|
37
|
+
export type ProfileIndexEntry = {
|
|
38
38
|
readonly id: string;
|
|
39
39
|
readonly text: string;
|
|
40
40
|
readonly metadata: Record<string, unknown>;
|
|
41
|
-
}
|
|
42
|
-
export
|
|
41
|
+
};
|
|
42
|
+
export type BuildProfileIndexArgs = {
|
|
43
43
|
readonly analysisId: string;
|
|
44
44
|
/** The profile as persisted. Whichever era wrote it, the entries are derived from it alone. */
|
|
45
45
|
readonly result: DataProfileResult;
|
|
46
46
|
/** The scan the profile was taken against — the source of a legacy profile's entity value set. */
|
|
47
47
|
readonly scan?: InputScan;
|
|
48
|
-
}
|
|
48
|
+
};
|
|
49
49
|
/**
|
|
50
50
|
* Build every index entry for a completed profile. Deterministic and model-free: each
|
|
51
51
|
* entry's text is templated from what the agent already wrote and what resolution already
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
* entries (group, dimension, kind, entity) never do. That presence is the discriminator
|
|
21
21
|
* `workspace_search` documents, so a consumer needs no id parsing to tell them apart.
|
|
22
22
|
*/
|
|
23
|
+
import { presentFirst } from "../lib/present.js";
|
|
23
24
|
import { dimensionCardinalities, profileDimensions, profileFileRecords, profileGroups } from "../app/data-profile-view.js";
|
|
24
25
|
/** Entity entries built for a legacy profile. Past this the entity tier is a liability, not a search aid. */
|
|
25
26
|
export const MAX_ENTITY_ENTRIES = 20_000;
|
|
@@ -36,19 +37,31 @@ export const PROFILE_INDEX_TYPES = ["input-group", "input-dimension", "input", "
|
|
|
36
37
|
/** Group names named in one legacy entity entry's text. */
|
|
37
38
|
const MAX_GROUPS_IN_ENTITY_TEXT = 6;
|
|
38
39
|
function slug(value) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
.
|
|
43
|
-
|
|
40
|
+
let out = "";
|
|
41
|
+
let inRun = false;
|
|
42
|
+
for (const char of value.toLowerCase()) {
|
|
43
|
+
if (out.length >= SLUG_MAX_LENGTH)
|
|
44
|
+
break;
|
|
45
|
+
const isSlugChar = (char >= "a" && char <= "z") || (char >= "0" && char <= "9");
|
|
46
|
+
if (!isSlugChar) {
|
|
47
|
+
inRun = true;
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (inRun && out.length > 0)
|
|
51
|
+
out += "-";
|
|
52
|
+
inRun = false;
|
|
53
|
+
out += char;
|
|
54
|
+
}
|
|
55
|
+
return out.slice(0, SLUG_MAX_LENGTH) || "unnamed";
|
|
44
56
|
}
|
|
57
|
+
const SLUG_MAX_LENGTH = 60;
|
|
45
58
|
function slotSummary(slot) {
|
|
46
59
|
return { id: slot.id, location: slot.location, tokenClass: slot.tokenClass, distinctValues: slot.distinctValues };
|
|
47
60
|
}
|
|
48
61
|
function groupEntry(analysisId, group) {
|
|
49
62
|
const category = group.categoryLabel ?? group.category;
|
|
50
63
|
const facts = [`${group.count} members`, `${group.fileCount} files`, group.displayPattern].join(", ");
|
|
51
|
-
|
|
64
|
+
const entry = {
|
|
52
65
|
id: `/${analysisId}/group/${group.id}`,
|
|
53
66
|
text: `${group.name} — one member is ${group.memberRepresents}. ${group.description} ${category} held as ${group.role}. (${facts})`,
|
|
54
67
|
metadata: {
|
|
@@ -57,14 +70,16 @@ function groupEntry(analysisId, group) {
|
|
|
57
70
|
name: group.name,
|
|
58
71
|
role: group.role,
|
|
59
72
|
category: group.category,
|
|
60
|
-
|
|
73
|
+
categoryLabel: group.categoryLabel ? group.categoryLabel : undefined,
|
|
61
74
|
pathPattern: group.displayPattern,
|
|
62
75
|
count: group.count,
|
|
63
76
|
fileCount: group.fileCount,
|
|
64
|
-
|
|
65
|
-
...(group.unclassified ? { unclassified: true } : {}),
|
|
77
|
+
slots: group.slots && group.slots.length > 0 ? group.slots.map(slotSummary) : undefined,
|
|
66
78
|
},
|
|
67
79
|
};
|
|
80
|
+
if (group.unclassified)
|
|
81
|
+
entry.metadata.unclassified = true;
|
|
82
|
+
return entry;
|
|
68
83
|
}
|
|
69
84
|
/** One observation as a searchable clause — where the dimension was seen, and what was seen there. */
|
|
70
85
|
function observationSummary(observation) {
|
|
@@ -89,7 +104,7 @@ function dimensionEntry(analysisId, dimension) {
|
|
|
89
104
|
type: "input-dimension",
|
|
90
105
|
dimension: dimension.label,
|
|
91
106
|
category: dimension.category,
|
|
92
|
-
|
|
107
|
+
categoryLabel: dimension.categoryLabel ? dimension.categoryLabel : undefined,
|
|
93
108
|
scope: dimension.scope,
|
|
94
109
|
cardinalities: dimensionCardinalities(dimension),
|
|
95
110
|
groups: [...new Set(dimension.observations.flatMap((observation) => (observation.kind === "slot" ? observation.groupIds : [])))],
|
|
@@ -101,7 +116,7 @@ function dimensionEntry(analysisId, dimension) {
|
|
|
101
116
|
* resolves to a file that exists rather than to a synthetic key.
|
|
102
117
|
*/
|
|
103
118
|
function memberEntry(analysisId, group, annotation) {
|
|
104
|
-
const format = group.formats.length === 1 ? group.formats
|
|
119
|
+
const format = group.formats.length === 1 ? presentFirst(group.formats, "the single format").format : undefined;
|
|
105
120
|
return {
|
|
106
121
|
id: `/${analysisId}/${annotation.path}`,
|
|
107
122
|
text: `${annotation.path} — ${annotation.note} In ${group.name}, where one member is ${group.memberRepresents}.`,
|
|
@@ -111,7 +126,7 @@ function memberEntry(analysisId, group, annotation) {
|
|
|
111
126
|
group: group.id,
|
|
112
127
|
groupName: group.name,
|
|
113
128
|
category: group.category,
|
|
114
|
-
|
|
129
|
+
format: format ? format : undefined,
|
|
115
130
|
},
|
|
116
131
|
};
|
|
117
132
|
}
|
|
@@ -154,7 +169,7 @@ function entityDimensionLabel(dimensions, distinct) {
|
|
|
154
169
|
return widest?.label ?? "entity";
|
|
155
170
|
}
|
|
156
171
|
function kindEntry(analysisId, group) {
|
|
157
|
-
const facts = [`${group.count} files`, group.format, group.pattern].
|
|
172
|
+
const facts = [`${group.count} files`, group.format, group.pattern].flatMap((fact) => (fact ? [fact] : [])).join(", ");
|
|
158
173
|
return {
|
|
159
174
|
id: `/${analysisId}/kind/${slug(group.name)}`,
|
|
160
175
|
text: `${group.name} — ${group.description} One member is ${group.memberRepresents}. (${facts})`,
|
|
@@ -163,7 +178,7 @@ function kindEntry(analysisId, group) {
|
|
|
163
178
|
kind: group.name,
|
|
164
179
|
pathPattern: group.pattern,
|
|
165
180
|
count: group.count,
|
|
166
|
-
|
|
181
|
+
format: group.format ? group.format : undefined,
|
|
167
182
|
},
|
|
168
183
|
};
|
|
169
184
|
}
|
|
@@ -189,9 +204,9 @@ function fileEntry(analysisId, file) {
|
|
|
189
204
|
metadata: {
|
|
190
205
|
type: "input",
|
|
191
206
|
path: file.path,
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
207
|
+
dataType: file.dataType ? file.dataType : undefined,
|
|
208
|
+
format: file.format ? file.format : undefined,
|
|
209
|
+
tags: file.tags ? file.tags : undefined,
|
|
195
210
|
},
|
|
196
211
|
};
|
|
197
212
|
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
import type { SetMenu } from "../input-scan/menu.js";
|
|
20
20
|
import type { DetectedSets } from "../input-scan/set-types.js";
|
|
21
21
|
import type { DataProfileDimension, DataProfileGroup, DataProfilePartition, DataProfileProbeReport, DataProfileRecipeStep } from "../contracts/data-profile.js";
|
|
22
|
-
import type {
|
|
22
|
+
import type { ProfileSubmissionInput } from "../schemas/data-profile-schemas.js";
|
|
23
23
|
/** The id the swept residue carries. Visible in the record and in the accounting. */
|
|
24
24
|
export declare const UNCLASSIFIED_GROUP_ID = "unclassified";
|
|
25
25
|
/**
|
|
@@ -34,11 +34,11 @@ export declare const MAX_UNCLASSIFIED_RECIPE_PATHS = 1000;
|
|
|
34
34
|
/** Contested paths named in the accounting before the count stands alone. */
|
|
35
35
|
export declare const MAX_CONTESTED_SAMPLE = 10;
|
|
36
36
|
/** A resolved group plus the membership the record deliberately does not carry. */
|
|
37
|
-
export
|
|
37
|
+
export type ResolvedGroup = DataProfileGroup & {
|
|
38
38
|
/** Member paths — what the index projects from. The persisted record holds counts only. */
|
|
39
39
|
readonly memberPaths: readonly string[];
|
|
40
|
-
}
|
|
41
|
-
export
|
|
40
|
+
};
|
|
41
|
+
export type ProfileResolution = {
|
|
42
42
|
/** Repairable faults. A submission carrying any of these is handed back to the agent whole. */
|
|
43
43
|
readonly errors: readonly string[];
|
|
44
44
|
/** Kept members no operation claimed. Already swept into the `unclassified` group below. */
|
|
@@ -50,15 +50,15 @@ export interface ProfileResolution {
|
|
|
50
50
|
readonly probes: readonly DataProfileProbeReport[];
|
|
51
51
|
readonly partition: DataProfilePartition;
|
|
52
52
|
readonly recipe: readonly DataProfileRecipeStep[];
|
|
53
|
-
}
|
|
54
|
-
export
|
|
53
|
+
};
|
|
54
|
+
export type ResolveOptions = {
|
|
55
55
|
/**
|
|
56
56
|
* True when no repair round follows. A contested file is then swept rather than
|
|
57
57
|
* reported: there is nobody left to hand the error to, and leaving it with whichever
|
|
58
58
|
* operation ran first would be the precedence the partition forbids.
|
|
59
59
|
*/
|
|
60
60
|
readonly finalRound?: boolean;
|
|
61
|
-
}
|
|
61
|
+
};
|
|
62
62
|
/**
|
|
63
63
|
* Resolve a submission against the scan it was authored over.
|
|
64
64
|
*
|
|
@@ -67,6 +67,6 @@ export interface ResolveOptions {
|
|
|
67
67
|
* round is a full resubmit, and after it the residue sweeps rather than blocking a
|
|
68
68
|
* profile that gates planning.
|
|
69
69
|
*/
|
|
70
|
-
export declare function resolveProfileSubmission(submission:
|
|
70
|
+
export declare function resolveProfileSubmission(submission: ProfileSubmissionInput, detected: DetectedSets, menu?: SetMenu, options?: ResolveOptions): ProfileResolution;
|
|
71
71
|
/** The repair round's errors, phrased for the agent that must fix them in one resubmit. */
|
|
72
72
|
export declare function formatResolutionErrors(resolution: ProfileResolution, unclaimedSample?: number): string;
|