@inflexa-ai/harness 0.45.0 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -3
- package/dist/agents/conversation-agent.d.ts +19 -3
- package/dist/agents/conversation-agent.js +49 -30
- package/dist/agents/report-session-agent.d.ts +15 -15
- package/dist/agents/report-session-agent.js +23 -15
- package/dist/agents/sandbox/index.d.ts +1 -1
- package/dist/agents/sandbox/index.js +1 -1
- package/dist/agents/sandbox/shared.d.ts +35 -16
- package/dist/agents/sandbox/shared.js +63 -24
- package/dist/agents/sandbox/translational-safety-agent.js +26 -0
- package/dist/agents/sandbox/types.d.ts +26 -3
- package/dist/agents/sandbox/validate-skills.d.ts +2 -2
- package/dist/agents/sandbox/validate-skills.js +3 -1
- package/dist/agents/sandbox-catalog.d.ts +16 -2
- package/dist/agents/sandbox-catalog.js +22 -3
- package/dist/agents/system-prompt.d.ts +2 -2
- package/dist/app/approve-plan.d.ts +5 -2
- package/dist/app/approve-plan.js +1 -1
- package/dist/app/chat-turn-workflow.d.ts +114 -0
- package/dist/app/chat-turn-workflow.js +307 -0
- package/dist/app/chat-turn.d.ts +85 -57
- package/dist/app/chat-turn.js +125 -99
- package/dist/app/data-profile-orientation.js +10 -8
- package/dist/app/data-profile-view.d.ts +4 -4
- package/dist/app/data-profile-view.js +9 -8
- package/dist/app/in-process-turn.d.ts +42 -0
- package/dist/app/in-process-turn.js +139 -0
- package/dist/app/message-assembly.d.ts +10 -4
- package/dist/app/message-assembly.js +13 -8
- package/dist/app/report-session-runtime.d.ts +4 -4
- package/dist/app/report-session-runtime.js +36 -21
- package/dist/app/spawn-report-session.d.ts +33 -28
- package/dist/app/spawn-report-session.js +25 -40
- package/dist/app/synthesize-run.d.ts +22 -16
- package/dist/app/synthesize-run.js +41 -35
- package/dist/app/work.d.ts +96 -0
- package/dist/app/work.js +147 -0
- package/dist/auth/local-auth-context.d.ts +1 -3
- package/dist/auth/local-auth-context.js +1 -3
- package/dist/auth/local-run-authorizer.d.ts +1 -1
- package/dist/auth/local-run-authorizer.js +5 -3
- package/dist/auth/types.d.ts +26 -26
- package/dist/billing/cached-resolver.d.ts +4 -4
- package/dist/billing/run-charge.d.ts +5 -8
- package/dist/billing/run-charge.js +2 -2
- package/dist/billing/usage-recorder.d.ts +9 -9
- package/dist/citations/aggregate.js +1 -1
- package/dist/citations/clients/arxiv.d.ts +2 -2
- package/dist/citations/clients/arxiv.js +12 -4
- package/dist/citations/clients/common.js +4 -2
- package/dist/citations/clients/crossref.d.ts +2 -2
- package/dist/citations/clients/crossref.js +37 -37
- package/dist/citations/clients/doi-registry.js +15 -16
- package/dist/citations/clients/pubmed.d.ts +2 -2
- package/dist/citations/clients/pubmed.js +20 -13
- package/dist/citations/clients/semantic-scholar.d.ts +2 -2
- package/dist/citations/clients/semantic-scholar.js +9 -9
- package/dist/citations/compare.js +2 -2
- package/dist/citations/match.d.ts +2 -2
- package/dist/citations/match.js +12 -7
- package/dist/citations/normalize.js +35 -26
- package/dist/citations/plan.js +6 -2
- package/dist/citations/resolve.d.ts +6 -6
- package/dist/citations/resolve.js +34 -25
- package/dist/citations/types.d.ts +77 -77
- package/dist/config/environment-stores.d.ts +10 -8
- package/dist/config/resource-limits.js +1 -3
- package/dist/contracts/analogy-report.d.ts +7 -7
- package/dist/contracts/analogy-report.js +2 -2
- package/dist/contracts/chat-events.d.ts +46 -22
- package/dist/contracts/chat-events.js +1 -1
- package/dist/contracts/chat-frame.d.ts +15 -5
- package/dist/contracts/chat-frame.js +67 -40
- package/dist/contracts/chat-parts.d.ts +130 -67
- package/dist/contracts/chat-parts.js +1 -0
- package/dist/contracts/content-url.js +16 -2
- package/dist/contracts/data-profile.d.ts +38 -38
- package/dist/contracts/index.d.ts +3 -3
- package/dist/contracts/index.js +1 -1
- package/dist/contracts/message.d.ts +6 -6
- package/dist/contracts/organ-system.d.ts +11 -11
- package/dist/contracts/part-registry.d.ts +5 -4
- package/dist/contracts/part-registry.js +5 -0
- package/dist/contracts/profile-vocabulary.d.ts +11 -10
- package/dist/contracts/profile-vocabulary.js +10 -3
- package/dist/contracts/report-blocks.d.ts +329 -329
- package/dist/contracts/report-reference.d.ts +105 -81
- package/dist/contracts/report-reference.js +30 -13
- package/dist/contracts/schemas/chat-events.d.ts +45 -6
- package/dist/contracts/schemas/chat-events.js +16 -0
- package/dist/contracts/schemas/chat-parts.d.ts +214 -102
- package/dist/contracts/schemas/chat-parts.js +50 -7
- package/dist/contracts/schemas/index.d.ts +1 -1
- package/dist/contracts/schemas/index.js +1 -1
- package/dist/contracts/severity.d.ts +1 -1
- package/dist/contracts/structure-source.d.ts +3 -3
- package/dist/contracts/structure-source.js +6 -2
- package/dist/contracts/subagent-activity.d.ts +2 -2
- package/dist/contracts/subagent-activity.js +5 -3
- package/dist/contracts/usage.d.ts +2 -2
- package/dist/data/safety-panel-schema.d.ts +25 -25
- package/dist/data/safety-panel-schema.js +13 -4
- package/dist/execution/artifact-metadata.d.ts +23 -15
- package/dist/execution/artifact-metadata.js +33 -10
- package/dist/execution/artifact-record.d.ts +2 -2
- package/dist/execution/artifact-registration.d.ts +5 -5
- package/dist/execution/artifact-registry.d.ts +8 -8
- package/dist/execution/dbos-run-launcher.d.ts +24 -4
- package/dist/execution/dbos-run-launcher.js +58 -4
- package/dist/execution/dbos-workflow-purger.d.ts +7 -6
- package/dist/execution/dbos-workflow-purger.js +29 -21
- package/dist/execution/input-signature.d.ts +2 -2
- package/dist/execution/post-step-pipeline.d.ts +9 -9
- package/dist/execution/post-step-pipeline.js +1 -1
- package/dist/execution/post-step.js +2 -2
- package/dist/execution/reconcile-manifest.d.ts +4 -4
- package/dist/execution/reconcile-manifest.js +3 -2
- package/dist/execution/run-authorizer.d.ts +46 -37
- package/dist/execution/run-authorizer.js +8 -8
- package/dist/execution/run-canceler.d.ts +39 -17
- package/dist/execution/run-canceler.js +137 -28
- package/dist/execution/run-end-record.d.ts +29 -0
- package/dist/execution/run-end-record.js +27 -0
- package/dist/execution/run-event-parts.d.ts +0 -8
- package/dist/execution/run-event-parts.js +29 -24
- package/dist/execution/run-event-stream.d.ts +8 -8
- package/dist/execution/run-event-stream.js +3 -4
- package/dist/execution/run-launcher.d.ts +4 -4
- package/dist/execution/run-synthesis.d.ts +49 -48
- package/dist/execution/run-synthesis.js +96 -255
- package/dist/execution/staged-input.d.ts +2 -2
- package/dist/execution/step-summary.d.ts +6 -6
- package/dist/execution/step-summary.js +4 -8
- package/dist/execution/topo-sort.js +4 -3
- package/dist/execution/workflow-purger.d.ts +2 -2
- package/dist/index.d.ts +25 -24
- package/dist/index.js +36 -37
- package/dist/input-sanitization.js +9 -2
- package/dist/input-scan/clustering.d.ts +6 -6
- package/dist/input-scan/clustering.js +11 -5
- package/dist/input-scan/companions.js +3 -2
- package/dist/input-scan/detect-sets.d.ts +2 -2
- package/dist/input-scan/detect-sets.js +25 -21
- package/dist/input-scan/enrich.d.ts +6 -6
- package/dist/input-scan/enrich.js +29 -12
- package/dist/input-scan/formats.d.ts +2 -2
- package/dist/input-scan/formats.js +8 -2
- package/dist/input-scan/markers.d.ts +2 -2
- package/dist/input-scan/markers.js +14 -5
- package/dist/input-scan/menu.d.ts +10 -10
- package/dist/input-scan/menu.js +0 -0
- package/dist/input-scan/quarantine.d.ts +2 -2
- package/dist/input-scan/quarantine.js +23 -18
- package/dist/input-scan/readout-budget.d.ts +2 -2
- package/dist/input-scan/readout-budget.js +1 -1
- package/dist/input-scan/readout.d.ts +2 -2
- package/dist/input-scan/readout.js +47 -34
- package/dist/input-scan/scan.d.ts +2 -2
- package/dist/input-scan/scan.js +7 -5
- package/dist/input-scan/set-types.d.ts +28 -28
- package/dist/input-scan/shapes.d.ts +4 -4
- package/dist/input-scan/shapes.js +0 -0
- package/dist/input-scan/templates.d.ts +10 -10
- package/dist/input-scan/templates.js +30 -22
- package/dist/input-scan/tokens.d.ts +6 -4
- package/dist/input-scan/tokens.js +100 -38
- package/dist/input-scan/types.d.ts +22 -22
- package/dist/lib/async-utils.d.ts +3 -7
- package/dist/lib/async-utils.js +5 -9
- package/dist/lib/cache.js +1 -1
- package/dist/lib/chrome.d.ts +46 -6
- package/dist/lib/console-logger.js +2 -2
- package/dist/lib/db-result.d.ts +22 -6
- package/dist/lib/db-result.js +9 -13
- package/dist/lib/eyes.d.ts +4 -4
- package/dist/lib/eyes.js +1 -1
- package/dist/lib/fs-helpers.js +18 -6
- package/dist/lib/fs-result.d.ts +1 -0
- package/dist/lib/fs-result.js +5 -6
- package/dist/lib/hooks.d.ts +23 -7
- package/dist/lib/hooks.js +17 -3
- package/dist/lib/host-concurrency.js +3 -2
- package/dist/lib/logger.d.ts +2 -2
- package/dist/lib/logger.js +2 -1
- package/dist/lib/metrics.d.ts +1 -1
- package/dist/lib/null-proto.d.ts +6 -0
- package/dist/lib/null-proto.js +17 -0
- package/dist/lib/otel-spans.d.ts +1 -1
- package/dist/lib/otel-spans.js +9 -5
- package/dist/lib/otel.d.ts +4 -2
- package/dist/lib/otel.js +10 -2
- package/dist/lib/page-capture.d.ts +8 -8
- package/dist/lib/page-capture.js +9 -4
- package/dist/lib/parse-json.d.ts +5 -0
- package/dist/lib/parse-json.js +12 -0
- package/dist/lib/present.d.ts +12 -0
- package/dist/lib/present.js +39 -0
- package/dist/lib/rate-limit.d.ts +4 -4
- package/dist/lib/rate-limit.js +12 -13
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.js +4 -10
- package/dist/lib/regulatory-corpus/fetch-ich.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-ich.js +18 -14
- package/dist/lib/regulatory-corpus/normalize-whitespace.d.ts +6 -0
- package/dist/lib/regulatory-corpus/normalize-whitespace.js +41 -0
- package/dist/lib/regulatory-corpus.d.ts +10 -10
- package/dist/lib/regulatory-corpus.js +3 -1
- package/dist/lib/result.d.ts +10 -11
- package/dist/lib/result.js +15 -13
- package/dist/lib/storage.d.ts +2 -2
- package/dist/lib/test/async-iterable.d.ts +9 -0
- package/dist/lib/test/async-iterable.js +28 -0
- package/dist/lib/test/request-url.d.ts +5 -0
- package/dist/lib/test/request-url.js +7 -0
- package/dist/lib/test/result-assert.d.ts +12 -0
- package/dist/lib/test/result-assert.js +17 -0
- package/dist/lib/test/text-shapes.d.ts +24 -0
- package/dist/lib/test/text-shapes.js +63 -0
- package/dist/lib/text.d.ts +22 -0
- package/dist/lib/text.js +68 -0
- package/dist/lib/thrown.d.ts +18 -0
- package/dist/lib/thrown.js +30 -0
- package/dist/lib/unknown-array.d.ts +6 -0
- package/dist/lib/unknown-array.js +8 -0
- package/dist/lib/unknown-containers.d.ts +14 -0
- package/dist/lib/unknown-containers.js +17 -0
- package/dist/lib/unknown-text.d.ts +8 -0
- package/dist/lib/unknown-text.js +28 -0
- package/dist/lib/zod-issue-shape.d.ts +1 -1
- package/dist/lib/zod-issue-shape.js +31 -31
- package/dist/lib/zod-issues.d.ts +3 -3
- package/dist/lib/zod-issues.js +30 -17
- package/dist/literature/sources/arxiv.d.ts +6 -6
- package/dist/literature/sources/arxiv.js +92 -35
- package/dist/literature/sources/http.d.ts +2 -2
- package/dist/literature/sources/http.js +16 -15
- package/dist/literature/sources/pubmed.d.ts +16 -16
- package/dist/literature/sources/pubmed.js +96 -61
- package/dist/literature/sources/semantic-scholar.d.ts +8 -8
- package/dist/literature/sources/semantic-scholar.js +22 -13
- package/dist/loop/accounting.d.ts +63 -0
- package/dist/loop/accounting.js +141 -0
- package/dist/loop/call-policy.d.ts +73 -0
- package/dist/loop/call-policy.js +109 -0
- package/dist/loop/chat-stream.d.ts +62 -0
- package/dist/loop/chat-stream.js +237 -0
- package/dist/loop/compaction.d.ts +14 -9
- package/dist/loop/compaction.js +17 -0
- package/dist/loop/metrics.d.ts +12 -15
- package/dist/loop/metrics.js +14 -26
- package/dist/loop/run-loop.d.ts +233 -0
- package/dist/loop/run-loop.js +770 -0
- package/dist/loop/sub-agent.d.ts +61 -0
- package/dist/loop/sub-agent.js +161 -0
- package/dist/loop/tool-adapter.d.ts +98 -0
- package/dist/loop/tool-adapter.js +364 -0
- package/dist/loop/tool-detail.d.ts +1 -1
- package/dist/loop/tool-detail.js +6 -5
- package/dist/loop/tool-outcome.d.ts +1 -1
- package/dist/loop/tool-output.d.ts +4 -4
- package/dist/loop/tool-output.js +2 -2
- package/dist/loop/turn-credentials.d.ts +34 -0
- package/dist/loop/turn-credentials.js +73 -0
- package/dist/loop/types.d.ts +34 -37
- package/dist/loop/types.js +2 -7
- package/dist/memory/ai-sdk-message-storage.d.ts +5 -5
- package/dist/memory/ai-sdk-message-storage.js +13 -11
- package/dist/memory/card-builders.d.ts +14 -14
- package/dist/memory/card-builders.js +19 -15
- package/dist/memory/conversation-display-recorder.d.ts +22 -6
- package/dist/memory/conversation-display-recorder.js +64 -20
- package/dist/memory/conversation-display-replay.js +3 -2
- package/dist/memory/conversation-display-storage.d.ts +15 -7
- package/dist/memory/conversation-display-storage.js +141 -36
- package/dist/memory/conversation-view.d.ts +4 -4
- package/dist/memory/conversation-view.js +5 -4
- package/dist/memory/count-tokens.js +10 -8
- package/dist/memory/derive-thread-title.d.ts +0 -13
- package/dist/memory/derive-thread-title.js +2 -1
- package/dist/memory/message-backfill.d.ts +12 -5
- package/dist/memory/message-backfill.js +5 -3
- package/dist/memory/thread-history.d.ts +66 -24
- package/dist/memory/thread-history.js +212 -79
- package/dist/memory/thread-store.d.ts +26 -17
- package/dist/memory/thread-store.js +15 -9
- package/dist/memory/tool-call-integrity.d.ts +2 -2
- package/dist/memory/tool-call-integrity.js +4 -3
- package/dist/memory/working-memory.d.ts +16 -12
- package/dist/memory/working-memory.js +72 -61
- package/dist/prompts/briefing.d.ts +63 -9
- package/dist/prompts/briefing.js +130 -3
- package/dist/prompts/planner.js +13 -2
- package/dist/prompts/synthesis-agent.d.ts +1 -1
- package/dist/prompts/synthesis-agent.js +6 -14
- package/dist/provenance/collector.d.ts +6 -6
- package/dist/provenance/collector.js +15 -8
- package/dist/provenance/exec-frame.d.ts +2 -2
- package/dist/provenance/exec-frame.js +6 -1
- package/dist/provenance/seam.d.ts +24 -19
- package/dist/provenance/seam.js +7 -5
- package/dist/provenance/types.d.ts +6 -6
- package/dist/providers/ai-sdk.d.ts +113 -62
- package/dist/providers/ai-sdk.js +303 -458
- package/dist/providers/embedding.d.ts +2 -2
- package/dist/providers/embedding.js +1 -1
- package/dist/providers/errors.d.ts +22 -2
- package/dist/providers/errors.js +98 -50
- package/dist/providers/prompt-cache.d.ts +8 -8
- package/dist/providers/prompt-cache.js +13 -11
- package/dist/providers/reasoning.d.ts +2 -2
- package/dist/providers/reasoning.js +2 -2
- package/dist/providers/types.d.ts +59 -92
- package/dist/reference-data/catalog.d.ts +2 -15
- package/dist/reference-data/catalog.js +166 -10
- package/dist/reference-data/receipt.d.ts +2 -2
- package/dist/report-model/assert-rules.js +1 -1
- package/dist/report-model/authoring-grammar.d.ts +209 -231
- package/dist/report-model/block-walk.d.ts +10 -10
- package/dist/report-model/block-walk.js +2 -0
- package/dist/report-model/draft-finish.d.ts +8 -8
- package/dist/report-model/draft-finish.js +1 -1
- package/dist/report-model/draft-hash.js +8 -7
- package/dist/report-model/draft-operations.d.ts +22 -10
- package/dist/report-model/draft-operations.js +48 -30
- package/dist/report-model/draft-read.d.ts +19 -7
- package/dist/report-model/draft-read.js +16 -6
- package/dist/report-model/draft.d.ts +844 -2
- package/dist/report-model/draft.js +3 -1
- package/dist/report-model/fixture-resolver.js +39 -16
- package/dist/report-model/pin-snapshot.d.ts +2 -2
- package/dist/report-model/pin-snapshot.js +15 -15
- package/dist/report-model/production-resolver.d.ts +18 -18
- package/dist/report-model/production-resolver.js +50 -42
- package/dist/report-model/reference-resolver.d.ts +26 -10
- package/dist/report-model/reference-resolver.js +68 -5
- package/dist/report-model/reference-stamp.js +30 -38
- package/dist/report-model/structural-validation.js +12 -4
- package/dist/report-model/validate.d.ts +7 -7
- package/dist/report-model/validate.js +6 -6
- package/dist/report-render/assets.d.ts +2 -2
- package/dist/report-render/assets.js +27 -3
- package/dist/report-render/chart-export.d.ts +10 -2
- package/dist/report-render/chart-export.js +37 -11
- package/dist/report-render/chart-presets.d.ts +8 -8
- package/dist/report-render/chart-presets.js +3 -3
- package/dist/report-render/chart-renderers.d.ts +23 -16
- package/dist/report-render/chart-renderers.js +74 -53
- package/dist/report-render/chart-toolbox.d.ts +2 -2
- package/dist/report-render/chart-toolbox.js +7 -6
- package/dist/report-render/chart.d.ts +15 -16
- package/dist/report-render/chart.js +369 -252
- package/dist/report-render/design.d.ts +36 -297
- package/dist/report-render/design.js +0 -12
- package/dist/report-render/figures/common.d.ts +12 -12
- package/dist/report-render/figures/common.js +42 -31
- package/dist/report-render/figures/dendrogram.d.ts +3 -3
- package/dist/report-render/figures/dendrogram.js +10 -10
- package/dist/report-render/figures/dense.js +15 -8
- package/dist/report-render/figures/dotplot.js +46 -33
- package/dist/report-render/figures/embedding.js +52 -43
- package/dist/report-render/figures/equal-units.d.ts +10 -10
- package/dist/report-render/figures/equal-units.js +27 -27
- package/dist/report-render/figures/forest.js +9 -7
- package/dist/report-render/figures/gsea.js +21 -11
- package/dist/report-render/figures/heatmap.js +13 -9
- package/dist/report-render/figures/index.d.ts +10 -10
- package/dist/report-render/figures/index.js +4 -2
- package/dist/report-render/figures/km.js +10 -9
- package/dist/report-render/figures/label-room.d.ts +12 -12
- package/dist/report-render/figures/label-room.js +7 -2
- package/dist/report-render/figures/locuszoom.d.ts +2 -2
- package/dist/report-render/figures/locuszoom.js +59 -31
- package/dist/report-render/figures/lollipop.js +3 -2
- package/dist/report-render/figures/ma.js +8 -4
- package/dist/report-render/figures/manhattan.d.ts +1 -2
- package/dist/report-render/figures/manhattan.js +52 -34
- package/dist/report-render/figures/oncoprint.js +4 -5
- package/dist/report-render/figures/pca.js +25 -11
- package/dist/report-render/figures/qq.js +20 -9
- package/dist/report-render/figures/roc.js +1 -1
- package/dist/report-render/figures/sankey.d.ts +2 -2
- package/dist/report-render/figures/sankey.js +11 -10
- package/dist/report-render/figures/upset.d.ts +6 -6
- package/dist/report-render/figures/upset.js +7 -4
- package/dist/report-render/figures/volcano.js +12 -10
- package/dist/report-render/hybrid-svg.d.ts +4 -4
- package/dist/report-render/hybrid-svg.js +7 -5
- package/dist/report-render/number-format.d.ts +4 -4
- package/dist/report-render/number-format.js +62 -27
- package/dist/report-render/page.js +2 -1
- package/dist/report-render/provenance-data.d.ts +2 -2
- package/dist/report-render/references.d.ts +4 -4
- package/dist/report-render/render.d.ts +2 -2
- package/dist/report-render/render.js +10 -11
- package/dist/report-render/script-json.js +1 -1
- package/dist/report-render/table-data.d.ts +6 -6
- package/dist/report-render/test/options.d.ts +49 -0
- package/dist/report-render/test/options.js +143 -0
- package/dist/report-render/test/page-function.d.ts +19 -0
- package/dist/report-render/test/page-function.js +33 -0
- package/dist/report-render/types.d.ts +10 -10
- package/dist/report-render/value-bridge.d.ts +4 -4
- package/dist/report-render/value-bridge.js +27 -14
- package/dist/report-render/views/chart-view.d.ts +2 -2
- package/dist/report-render/views/chart-view.js +2 -2
- package/dist/report-render/views/lineage.d.ts +6 -6
- package/dist/report-render/views/lineage.js +2 -0
- package/dist/report-render/views/page-view.d.ts +2 -2
- package/dist/report-render/views/page-view.js +1 -0
- package/dist/report-render/views/prose.js +25 -8
- package/dist/report-render/views/references-view.js +12 -1
- package/dist/report-render/views/values.js +1 -1
- package/dist/runtime/assemble.d.ts +53 -26
- package/dist/runtime/assemble.js +103 -56
- package/dist/runtime/boot.d.ts +8 -7
- package/dist/runtime/boot.js +1 -1
- package/dist/runtime/connection-budget.d.ts +6 -6
- package/dist/runtime/connection-budget.js +1 -1
- package/dist/runtime/dbos.d.ts +29 -19
- package/dist/runtime/dbos.js +35 -20
- package/dist/runtime/result-serialization.js +18 -5
- package/dist/runtime/shutdown.d.ts +2 -2
- package/dist/sandbox/client.d.ts +7 -3
- package/dist/sandbox/cpu-files.d.ts +2 -2
- package/dist/sandbox/cpu-files.js +21 -4
- package/dist/sandbox/create-sandbox.d.ts +7 -8
- package/dist/sandbox/create-sandbox.js +6 -12
- package/dist/sandbox/docker-client.d.ts +48 -3
- package/dist/sandbox/docker-client.js +10 -6
- package/dist/sandbox/estimate-data-profile-resources.js +2 -7
- package/dist/sandbox/exec-outcome.d.ts +2 -2
- package/dist/sandbox/exec-outcome.js +1 -1
- package/dist/sandbox/exec.d.ts +10 -6
- package/dist/sandbox/exec.js +27 -12
- package/dist/sandbox/execution-id.js +14 -6
- package/dist/sandbox/farm.d.ts +2 -2
- package/dist/sandbox/farm.js +22 -27
- package/dist/sandbox/identity.d.ts +7 -0
- package/dist/sandbox/identity.js +14 -3
- package/dist/sandbox/image-packages.d.ts +26 -4
- package/dist/sandbox/image-packages.js +29 -27
- package/dist/sandbox/k8s-client.d.ts +35 -8
- package/dist/sandbox/k8s-client.js +6 -5
- package/dist/sandbox/labels.js +1 -0
- package/dist/sandbox/liveness.js +3 -1
- package/dist/sandbox/mount-plan.d.ts +10 -10
- package/dist/sandbox/mount-plan.js +13 -14
- package/dist/sandbox/notification-sweep.d.ts +4 -4
- package/dist/sandbox/notification-sweep.js +4 -7
- package/dist/sandbox/package-identity.d.ts +6 -13
- package/dist/sandbox/package-identity.js +46 -28
- package/dist/sandbox/reaper.d.ts +10 -10
- package/dist/sandbox/reaper.js +4 -6
- package/dist/sandbox/sandbox-error.d.ts +2 -9
- package/dist/sandbox/sandbox-error.js +21 -8
- package/dist/sandbox/sandbox-step-translate.d.ts +8 -5
- package/dist/sandbox/sandbox-step-translate.js +22 -8
- package/dist/sandbox/step-sandbox.d.ts +47 -0
- package/dist/sandbox/step-sandbox.js +53 -0
- package/dist/sandbox/types.d.ts +18 -19
- package/dist/sandbox/types.js +1 -1
- package/dist/schemas/artifact-manifest.d.ts +4 -4
- package/dist/schemas/data-profile-schemas.d.ts +351 -306
- package/dist/schemas/file-metadata.js +2 -4
- package/dist/schemas/plan-schemas.d.ts +79 -25
- package/dist/schemas/plan-schemas.js +1 -1
- package/dist/schemas/run-synthesis.d.ts +95 -26
- package/dist/schemas/run-synthesis.js +3 -1
- package/dist/schemas/validate-plan.d.ts +4 -4
- package/dist/schemas/validate-plan.js +17 -5
- package/dist/schemas/workflow-state.d.ts +127 -14
- package/dist/schemas/workflow-state.js +56 -2
- package/dist/state/active-turns.d.ts +36 -0
- package/dist/state/active-turns.js +67 -0
- package/dist/state/analyses-metrics.d.ts +8 -8
- package/dist/state/analyses-metrics.js +4 -4
- package/dist/state/analyses.d.ts +0 -14
- package/dist/state/analyses.js +0 -32
- package/dist/state/artifacts.d.ts +47 -18
- package/dist/state/artifacts.js +48 -7
- package/dist/state/data-profile.d.ts +2 -2
- package/dist/state/db.d.ts +12 -2
- package/dist/state/db.js +5 -0
- package/dist/state/edit-intents.d.ts +4 -0
- package/dist/state/edit-intents.js +71 -0
- package/dist/state/index.d.ts +5 -5
- package/dist/state/index.js +3 -3
- package/dist/state/init.d.ts +2 -1
- package/dist/state/init.js +5 -2
- package/dist/state/migrations/20260927120000_baseline.js +3 -1
- package/dist/state/migrations/20261026120000_add_the_edit_intents.d.ts +7 -0
- package/dist/state/migrations/20261026120000_add_the_edit_intents.js +21 -0
- package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.d.ts +7 -0
- package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.js +16 -0
- package/dist/state/migrations/20261027120100_store_the_authoring_results.d.ts +8 -0
- package/dist/state/migrations/20261027120100_store_the_authoring_results.js +20 -0
- package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.d.ts +7 -0
- package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.js +12 -0
- package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.d.ts +7 -0
- package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.js +11 -0
- package/dist/state/migrations/20261028120000_record_the_paused_work.d.ts +7 -0
- package/dist/state/migrations/20261028120000_record_the_paused_work.js +25 -0
- package/dist/state/migrations/20261028120100_end_the_suspended_runs.d.ts +8 -0
- package/dist/state/migrations/20261028120100_end_the_suspended_runs.js +13 -0
- package/dist/state/migrations/20261029120000_reference_the_run_mandate.d.ts +7 -0
- package/dist/state/migrations/20261029120000_reference_the_run_mandate.js +23 -0
- package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.d.ts +7 -0
- package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.js +11 -0
- package/dist/state/migrations/index.js +18 -0
- package/dist/state/paused-work.d.ts +52 -0
- package/dist/state/paused-work.js +105 -0
- package/dist/state/plans.d.ts +27 -8
- package/dist/state/plans.js +14 -11
- package/dist/state/purge-analysis.d.ts +6 -6
- package/dist/state/purge-analysis.js +10 -2
- package/dist/state/report-session-state.d.ts +43 -18
- package/dist/state/report-session-state.js +43 -4
- package/dist/state/report-versions.d.ts +16 -11
- package/dist/state/report-versions.js +5 -3
- package/dist/state/runs.d.ts +70 -25
- package/dist/state/runs.js +127 -64
- package/dist/state/schema.d.ts +18 -21
- package/dist/state/schema.js +4 -5
- package/dist/state/snapshot-parse.d.ts +2 -2
- package/dist/state/snapshot-parse.js +14 -8
- package/dist/state/step-executions.d.ts +29 -8
- package/dist/state/step-executions.js +28 -4
- package/dist/state/tool-outputs.d.ts +2 -2
- package/dist/state/tool-outputs.js +2 -1
- package/dist/state/vector-store.d.ts +16 -16
- package/dist/state/vector-store.js +11 -7
- package/dist/tasks/data-profile-absorb.d.ts +3 -3
- package/dist/tasks/data-profile-absorb.js +21 -16
- package/dist/tasks/data-profile-activity.d.ts +5 -5
- package/dist/tasks/data-profile-activity.js +5 -5
- package/dist/tasks/data-profile-index.d.ts +4 -4
- package/dist/tasks/data-profile-index.js +32 -17
- package/dist/tasks/data-profile-resolve.d.ts +8 -8
- package/dist/tasks/data-profile-resolve.js +88 -62
- package/dist/tasks/data-profile.d.ts +40 -31
- package/dist/tasks/data-profile.js +138 -95
- package/dist/tasks/extract-values.d.ts +26 -79
- package/dist/tasks/extract-values.js +48 -108
- package/dist/tasks/refresh-regulatory-corpus.d.ts +4 -20
- package/dist/tasks/refresh-regulatory-corpus.js +12 -8
- package/dist/tasks/regulatory-corpus-boot-refresh.d.ts +2 -2
- package/dist/tasks/regulatory-corpus-boot-refresh.js +12 -10
- package/dist/testing.d.ts +60 -0
- package/dist/testing.js +96 -0
- package/dist/tools/ad-hoc-router.d.ts +11 -9
- package/dist/tools/ad-hoc-router.js +80 -51
- package/dist/tools/analysis-invocation.d.ts +7 -0
- package/dist/tools/analysis-invocation.js +29 -5
- package/dist/tools/approval/contract.d.ts +8 -52
- package/dist/tools/approval/contract.js +7 -36
- package/dist/tools/approval/gateway.d.ts +27 -28
- package/dist/tools/approval/gateway.js +33 -130
- package/dist/tools/approval/queries.d.ts +6 -11
- package/dist/tools/approval/queries.js +43 -29
- package/dist/tools/approval/uuidv7.js +2 -2
- package/dist/tools/bio/chembl.d.ts +3 -3
- package/dist/tools/bio/chembl.js +10 -0
- package/dist/tools/bio/comptox.d.ts +25 -8
- package/dist/tools/bio/comptox.js +4 -2
- package/dist/tools/bio/drug-gene-interactions.d.ts +27 -17
- package/dist/tools/bio/drug-gene-interactions.js +11 -8
- package/dist/tools/bio/gene-disease-evidence.d.ts +61 -15
- package/dist/tools/bio/gene-disease-evidence.js +10 -6
- package/dist/tools/bio/gene-preclinical-profile.d.ts +11 -11
- package/dist/tools/bio/keys.d.ts +2 -2
- package/dist/tools/bio/keys.js +3 -3
- package/dist/tools/bio/lookup-annotation.d.ts +5 -5
- package/dist/tools/bio/lookup-annotation.js +3 -0
- package/dist/tools/bio/opentargets.d.ts +1 -1
- package/dist/tools/bio/opentargets.js +6 -0
- package/dist/tools/bio/pubchem.d.ts +2 -2
- package/dist/tools/bio/pubchem.js +6 -0
- package/dist/tools/bio/pubmed.d.ts +26 -16
- package/dist/tools/bio/pubmed.js +9 -3
- package/dist/tools/bio/search-clinical-trials.d.ts +4 -4
- package/dist/tools/bio/search-clinical-trials.js +5 -1
- package/dist/tools/bio/search-faers.d.ts +2 -2
- package/dist/tools/bio/search-faers.js +1 -1
- package/dist/tools/bio/search-gene.d.ts +2 -2
- package/dist/tools/bio/search-gene.js +1 -0
- package/dist/tools/bio/search-geo-datasets.d.ts +4 -4
- package/dist/tools/bio/search-geo-datasets.js +5 -5
- package/dist/tools/bio/search-interactions.d.ts +1 -1
- package/dist/tools/bio/search-patents.d.ts +28 -22
- package/dist/tools/bio/search-patents.js +20 -17
- package/dist/tools/bio/search-protein.d.ts +2 -2
- package/dist/tools/bio/search-protein.js +1 -1
- package/dist/tools/bio/search-regulatory-approvals.d.ts +64 -18
- package/dist/tools/bio/search-regulatory-approvals.js +21 -16
- package/dist/tools/bio/target-safety.d.ts +8 -8
- package/dist/tools/bio/target-safety.js +11 -6
- package/dist/tools/capability-data.d.ts +40 -0
- package/dist/tools/capability-data.js +74 -0
- package/dist/tools/define-tool.d.ts +55 -46
- package/dist/tools/define-tool.js +39 -27
- package/dist/tools/display/normalize-echart-spec.d.ts +2 -2
- package/dist/tools/display/normalize-echart-spec.js +51 -27
- package/dist/tools/display/show-user.d.ts +2 -2
- package/dist/tools/display/show-user.js +1 -1
- package/dist/tools/execute-analysis.d.ts +54 -17
- package/dist/tools/execute-analysis.js +193 -62
- package/dist/tools/knowledge/check.d.ts +182 -0
- package/dist/tools/knowledge/check.js +94 -0
- package/dist/tools/knowledge/client.d.ts +351 -0
- package/dist/tools/knowledge/client.js +319 -0
- package/dist/tools/knowledge/environment.d.ts +78 -0
- package/dist/tools/knowledge/environment.js +116 -0
- package/dist/tools/knowledge/index.d.ts +49 -0
- package/dist/tools/knowledge/index.js +70 -0
- package/dist/tools/knowledge/local-slots.d.ts +62 -0
- package/dist/tools/knowledge/local-slots.js +184 -0
- package/dist/tools/knowledge/pin.d.ts +14 -0
- package/dist/tools/knowledge/pin.js +17 -0
- package/dist/tools/knowledge/recommend.d.ts +67 -0
- package/dist/tools/knowledge/recommend.js +106 -0
- package/dist/tools/knowledge/situation.d.ts +143 -0
- package/dist/tools/knowledge/situation.js +157 -0
- package/dist/tools/knowledge/skeleton.d.ts +69 -0
- package/dist/tools/knowledge/skeleton.js +201 -0
- package/dist/tools/knowledge/template.d.ts +139 -0
- package/dist/tools/knowledge/template.js +273 -0
- package/dist/tools/lib/alphafold-client.js +2 -1
- package/dist/tools/lib/amass-client.d.ts +28 -28
- package/dist/tools/lib/amass-client.js +20 -10
- package/dist/tools/lib/api-utils.d.ts +13 -3
- package/dist/tools/lib/api-utils.js +17 -3
- package/dist/tools/lib/bgee-client.d.ts +6 -6
- package/dist/tools/lib/bgee-client.js +16 -10
- package/dist/tools/lib/cbioportal-client.d.ts +4 -4
- package/dist/tools/lib/cbioportal-client.js +9 -8
- package/dist/tools/lib/chembl-client.d.ts +14 -14
- package/dist/tools/lib/chembl-client.js +11 -4
- package/dist/tools/lib/clinical-benchmarks-client.d.ts +4 -4
- package/dist/tools/lib/clinical-benchmarks-client.js +4 -7
- package/dist/tools/lib/clinical-trials-client.d.ts +18 -18
- package/dist/tools/lib/clinical-trials-client.js +10 -10
- package/dist/tools/lib/clinvar-client.d.ts +2 -2
- package/dist/tools/lib/clinvar-client.js +6 -6
- package/dist/tools/lib/ctx-ops.d.ts +23 -23
- package/dist/tools/lib/ctx-ops.js +13 -10
- package/dist/tools/lib/dgidb-client.d.ts +6 -6
- package/dist/tools/lib/dgidb-client.js +10 -12
- package/dist/tools/lib/disgenet-client.d.ts +4 -4
- package/dist/tools/lib/ema-client.d.ts +2 -2
- package/dist/tools/lib/ensembl-client.d.ts +4 -4
- package/dist/tools/lib/ensembl-client.js +5 -4
- package/dist/tools/lib/gwas-catalog-client.d.ts +4 -4
- package/dist/tools/lib/gwas-catalog-client.js +17 -17
- package/dist/tools/lib/html-text.d.ts +6 -0
- package/dist/tools/lib/html-text.js +9 -0
- package/dist/tools/lib/identifier-resolver.d.ts +4 -4
- package/dist/tools/lib/identifier-resolver.js +7 -3
- package/dist/tools/lib/impc-client.d.ts +8 -8
- package/dist/tools/lib/impc-client.js +46 -35
- package/dist/tools/lib/iuphar-client.d.ts +2 -2
- package/dist/tools/lib/iuphar-client.js +7 -16
- package/dist/tools/lib/monarch-client.d.ts +4 -4
- package/dist/tools/lib/openfda-client.d.ts +22 -22
- package/dist/tools/lib/openfda-client.js +23 -22
- package/dist/tools/lib/opentargets-client.d.ts +12 -12
- package/dist/tools/lib/pathway-client.d.ts +4 -4
- package/dist/tools/lib/pathway-client.js +15 -19
- package/dist/tools/lib/pharmgkb-client.d.ts +2 -2
- package/dist/tools/lib/pharmgkb-client.js +1 -1
- package/dist/tools/lib/protein-family-modality.d.ts +2 -2
- package/dist/tools/lib/protein-family-modality.js +0 -2
- package/dist/tools/lib/protein-family-normalize.js +7 -0
- package/dist/tools/lib/pubchem-client.d.ts +2 -2
- package/dist/tools/lib/pubchem-client.js +1 -0
- package/dist/tools/lib/pubchem-ops.d.ts +4 -4
- package/dist/tools/lib/pubchem-ops.js +8 -0
- package/dist/tools/lib/pubmed-client.d.ts +9 -9
- package/dist/tools/lib/pubmed-client.js +1 -1
- package/dist/tools/lib/string-client.d.ts +6 -6
- package/dist/tools/lib/uniprot-client.d.ts +8 -8
- package/dist/tools/lib/uniprot-client.js +5 -1
- package/dist/tools/memory/update-working-memory.d.ts +16 -13
- package/dist/tools/memory/update-working-memory.js +21 -3
- package/dist/tools/read-tool-output.js +8 -2
- package/dist/tools/registry.d.ts +2 -2
- package/dist/tools/report-authoring/authoring-tools.d.ts +54 -23
- package/dist/tools/report-authoring/authoring-tools.js +128 -62
- package/dist/tools/report-session/derive-table.d.ts +19 -59
- package/dist/tools/report-session/derive-table.js +120 -122
- package/dist/tools/report-session/examine-page.d.ts +6 -6
- package/dist/tools/report-session/examine-page.js +14 -12
- package/dist/tools/report-session/list-artifacts.d.ts +6 -6
- package/dist/tools/report-session/list-artifacts.js +5 -5
- package/dist/tools/report-session/page-faults.d.ts +6 -6
- package/dist/tools/report-session/page-faults.js +3 -1
- package/dist/tools/report-session/preview-report.d.ts +4 -3
- package/dist/tools/report-session/preview-report.js +26 -7
- package/dist/tools/report-session/record-version.d.ts +9 -4
- package/dist/tools/report-session/record-version.js +16 -9
- package/dist/tools/report-session/session-page-publisher.d.ts +6 -6
- package/dist/tools/research/generate-analogy-report.d.ts +14 -7
- package/dist/tools/research/generate-analogy-report.js +80 -76
- package/dist/tools/research/generate-plan.d.ts +39 -16
- package/dist/tools/research/generate-plan.js +565 -338
- package/dist/tools/research/guarded-address.d.ts +20 -0
- package/dist/tools/research/guarded-address.js +149 -0
- package/dist/tools/research/inspect-data-profile.d.ts +27 -20
- package/dist/tools/research/inspect-data-profile.js +26 -25
- package/dist/tools/research/inspect-run.d.ts +54 -27
- package/dist/tools/research/inspect-run.js +50 -40
- package/dist/tools/research/literature-reviewer.d.ts +8 -7
- package/dist/tools/research/literature-reviewer.js +29 -28
- package/dist/tools/research/search-arxiv.d.ts +1 -1
- package/dist/tools/research/search-arxiv.js +1 -1
- package/dist/tools/research/search-github-repos.d.ts +10 -7
- package/dist/tools/research/search-github-repos.js +25 -22
- package/dist/tools/research/search-semantic-scholar.js +1 -1
- package/dist/tools/research/searxng-engine.d.ts +40 -0
- package/dist/tools/research/searxng-engine.js +122 -0
- package/dist/tools/research/web-fetch.d.ts +127 -0
- package/dist/tools/research/web-fetch.js +618 -0
- package/dist/tools/research/web-search.d.ts +84 -0
- package/dist/tools/research/web-search.js +117 -0
- package/dist/tools/sandbox/link-packages.d.ts +11 -7
- package/dist/tools/sandbox/link-packages.js +11 -8
- package/dist/tools/sandbox/list-available-packages.d.ts +24 -12
- package/dist/tools/sandbox/list-available-packages.js +43 -29
- package/dist/tools/sandbox/list-available-refs.d.ts +38 -14
- package/dist/tools/sandbox/list-available-refs.js +119 -37
- package/dist/tools/sandbox/report-blocker.d.ts +30 -37
- package/dist/tools/sandbox/report-blocker.js +22 -68
- package/dist/tools/sandbox/skills.d.ts +16 -12
- package/dist/tools/sandbox/skills.js +16 -12
- package/dist/tools/sandbox/submit-file-metadata.d.ts +12 -9
- package/dist/tools/sandbox/submit-file-metadata.js +18 -21
- package/dist/tools/start-report-session.d.ts +13 -5
- package/dist/tools/start-report-session.js +35 -8
- package/dist/tools/terminal-text.d.ts +14 -0
- package/dist/tools/terminal-text.js +51 -0
- package/dist/tools/workspace/decision-record.d.ts +81 -0
- package/dist/tools/workspace/decision-record.js +127 -0
- package/dist/tools/workspace/edit-file.d.ts +59 -18
- package/dist/tools/workspace/edit-file.js +98 -15
- package/dist/tools/workspace/execute-command.d.ts +31 -12
- package/dist/tools/workspace/execute-command.js +37 -8
- package/dist/tools/workspace/file-stat.d.ts +6 -3
- package/dist/tools/workspace/grep.d.ts +10 -7
- package/dist/tools/workspace/grep.js +9 -3
- package/dist/tools/workspace/index.d.ts +1 -0
- package/dist/tools/workspace/index.js +1 -0
- package/dist/tools/workspace/list-files.d.ts +6 -3
- package/dist/tools/workspace/mutator.d.ts +28 -15
- package/dist/tools/workspace/mutator.js +107 -53
- package/dist/tools/workspace/read-file.d.ts +8 -5
- package/dist/tools/workspace/result-bounds.d.ts +5 -5
- package/dist/tools/workspace/result-bounds.js +4 -2
- package/dist/tools/workspace/run-exec.d.ts +2 -2
- package/dist/tools/workspace/run-exec.js +3 -3
- package/dist/tools/workspace/scan-inputs.d.ts +8 -5
- package/dist/tools/workspace/scan-inputs.js +17 -5
- package/dist/tools/workspace/show-file.d.ts +1 -1
- package/dist/tools/workspace/show-file.js +2 -1
- package/dist/tools/workspace/show-plan.d.ts +8 -5
- package/dist/tools/workspace/show-plan.js +9 -8
- package/dist/tools/workspace/workspace-search.d.ts +41 -13
- package/dist/tools/workspace/workspace-search.js +27 -14
- package/dist/tools/workspace/write-file.d.ts +9 -7
- package/dist/workflows/execute-analysis-scheduler.d.ts +9 -9
- package/dist/workflows/execute-analysis-scheduler.js +6 -3
- package/dist/workflows/execute-analysis.d.ts +100 -76
- package/dist/workflows/execute-analysis.js +380 -247
- package/dist/workflows/pause.d.ts +71 -0
- package/dist/workflows/pause.js +173 -0
- package/dist/workflows/sandbox-step.d.ts +50 -61
- package/dist/workflows/sandbox-step.js +99 -106
- package/dist/workflows/test/sql-writes.d.ts +21 -0
- package/dist/workflows/test/sql-writes.js +36 -0
- package/dist/workspace/filesystem.d.ts +6 -6
- package/dist/workspace/filesystem.js +10 -8
- package/dist/workspace/paths.d.ts +1 -1
- package/dist/workspace/paths.js +15 -4
- package/dist/workspace/search-config.d.ts +2 -2
- package/dist/workspace/search-config.js +1 -1
- package/package.json +25 -22
- package/dist/loop/continue-agent.d.ts +0 -40
- package/dist/loop/continue-agent.js +0 -38
- package/dist/loop/genai-spans.d.ts +0 -47
- package/dist/loop/genai-spans.js +0 -134
- package/dist/loop/run-agent.d.ts +0 -236
- package/dist/loop/run-agent.js +0 -1110
- package/dist/loop/run-step.d.ts +0 -29
- package/dist/loop/run-step.js +0 -34
- package/dist/loop/run-to-terminal.d.ts +0 -66
- package/dist/loop/run-to-terminal.js +0 -90
- package/dist/loop/tool-mask.d.ts +0 -23
- package/dist/loop/tool-mask.js +0 -46
- package/dist/providers/streaming-chat.d.ts +0 -32
- package/dist/providers/streaming-chat.js +0 -91
- package/dist/tasks/derive-table-exec.d.ts +0 -54
- package/dist/tasks/derive-table-exec.js +0 -86
- package/dist/workflows/suspension.d.ts +0 -32
- package/dist/workflows/suspension.js +0 -38
|
@@ -49,18 +49,28 @@ export type ConversationUIData = {
|
|
|
49
49
|
})[];
|
|
50
50
|
};
|
|
51
51
|
};
|
|
52
|
-
export
|
|
52
|
+
export type ConversationDisplayMetadata = {
|
|
53
53
|
interrupted?: boolean;
|
|
54
|
-
}
|
|
54
|
+
};
|
|
55
55
|
export type ConversationUIMessage = UIMessage<ConversationDisplayMetadata, ConversationUIData>;
|
|
56
|
-
export
|
|
56
|
+
export type StoredDisplayEnvelope = {
|
|
57
57
|
readonly kind: "ai-sdk-ui-messages";
|
|
58
58
|
readonly aiSdkMajor: 7;
|
|
59
59
|
readonly schemaVersion: typeof SUPPORTED_DISPLAY_SCHEMA_VERSION;
|
|
60
60
|
readonly messages: ConversationUIMessage[];
|
|
61
|
-
}
|
|
61
|
+
};
|
|
62
62
|
export declare function envelopeDisplayMessages(messages: readonly ConversationUIMessage[]): StoredDisplayEnvelope;
|
|
63
63
|
export declare function parseStoredDisplayEnvelope(value: unknown, identity: string, logger?: Logger): Promise<StoredDisplayEnvelope>;
|
|
64
|
+
/** The message-part arm a stored data part round-trips from: the payload is the arm minus its discriminant. */
|
|
65
|
+
export type StoredSourcePart = Extract<Exclude<MessagePart, {
|
|
66
|
+
type: "text";
|
|
67
|
+
}>, {
|
|
68
|
+
type: ToolCallPart["type"] | PresentationPart["type"] | PlanPart["type"] | RunCardPart["type"] | PlanApprovalPart["type"] | FileReferencePart["type"] | AskPart["type"] | ChildSessionStartedPart["type"] | ReportRenderedPart["type"] | CompactionPart["type"] | SubAgentActivityPart["type"];
|
|
69
|
+
}>;
|
|
70
|
+
/** Whether `part` is an arm the stored vocabulary can hold; anything else cannot become a stored card. */
|
|
71
|
+
export declare function isStoredSourcePart(part: Exclude<MessagePart, {
|
|
72
|
+
type: "text";
|
|
73
|
+
}>): part is StoredSourcePart;
|
|
64
74
|
/**
|
|
65
75
|
* Build the stored form of one non-text message part.
|
|
66
76
|
*
|
|
@@ -72,9 +82,7 @@ export declare function parseStoredDisplayEnvelope(value: unknown, identity: str
|
|
|
72
82
|
* lifetime changes — rather than at each reader. An entry of a sub-agent call
|
|
73
83
|
* closes the same way, and an `incomplete` entry has no end time.
|
|
74
84
|
*/
|
|
75
|
-
export declare function conversationDisplayPart(part:
|
|
76
|
-
type: "text";
|
|
77
|
-
}>): DataUIPart<ConversationUIData>;
|
|
85
|
+
export declare function conversationDisplayPart(part: StoredSourcePart): DataUIPart<ConversationUIData>;
|
|
78
86
|
/**
|
|
79
87
|
* Read the durable representation back as chat messages.
|
|
80
88
|
*
|
|
@@ -14,8 +14,11 @@
|
|
|
14
14
|
* ({@link conversationUIToChatMessages}) is a near-identity rather than a
|
|
15
15
|
* reconstruction.
|
|
16
16
|
*/
|
|
17
|
-
import {
|
|
17
|
+
import { errorMessageOf } from "../lib/thrown.js";
|
|
18
|
+
import { textOf } from "../lib/unknown-text.js";
|
|
19
|
+
import { isDataUIPart, validateUIMessages } from "ai";
|
|
18
20
|
import { z } from "zod";
|
|
21
|
+
import { parseUnknownRecord } from "../lib/unknown-containers.js";
|
|
19
22
|
import { AskPartSchema, ChildSessionStartedPartSchema, CompactionPartSchema, FileReferencePartSchema, PlanApprovalPartSchema, PlanPartSchema, PresentationPartSchema, ReportRenderedPartSchema, RunCardPartSchema, SubAgentActivityEntrySchema, SubAgentActivityPartSchema, } from "../contracts/schemas/chat-parts.js";
|
|
20
23
|
import { ToolCallOutcomeSchema } from "../contracts/schemas/chat-events.js";
|
|
21
24
|
export const SUPPORTED_DISPLAY_SCHEMA_VERSION = 1;
|
|
@@ -82,12 +85,9 @@ export function envelopeDisplayMessages(messages) {
|
|
|
82
85
|
kind: "ai-sdk-ui-messages",
|
|
83
86
|
aiSdkMajor: 7,
|
|
84
87
|
schemaVersion: SUPPORTED_DISPLAY_SCHEMA_VERSION,
|
|
85
|
-
messages: structuredClone(messages),
|
|
88
|
+
messages: structuredClone([...messages]),
|
|
86
89
|
};
|
|
87
90
|
}
|
|
88
|
-
function isRecord(value) {
|
|
89
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
90
|
-
}
|
|
91
91
|
/**
|
|
92
92
|
* Strip every `data-*` part the current vocabulary cannot render.
|
|
93
93
|
*
|
|
@@ -109,36 +109,47 @@ function dropUnrenderableDataParts(messages, identity, logger) {
|
|
|
109
109
|
const unknownKey = [];
|
|
110
110
|
const schemaMismatch = [];
|
|
111
111
|
const filtered = messages.map((message) => {
|
|
112
|
-
|
|
112
|
+
const record = parseUnknownRecord(message);
|
|
113
|
+
if (record === undefined || !Array.isArray(record.parts))
|
|
113
114
|
return message;
|
|
114
|
-
const parts =
|
|
115
|
-
|
|
115
|
+
const parts = record.parts.filter((part) => {
|
|
116
|
+
const partRecord = parseUnknownRecord(part);
|
|
117
|
+
if (partRecord === undefined || typeof partRecord.type !== "string" || !partRecord.type.startsWith("data-"))
|
|
116
118
|
return true;
|
|
117
|
-
const key =
|
|
119
|
+
const key = partRecord.type.slice("data-".length);
|
|
118
120
|
// `Object.hasOwn` before the index: a part typed `data-constructor`
|
|
119
121
|
// would otherwise resolve up the prototype chain to something that is
|
|
120
122
|
// not a schema at all, and throw where it should have been dropped.
|
|
121
|
-
|
|
122
|
-
|
|
123
|
+
// `Object.entries` lists own keys only, so the lookup refuses a
|
|
124
|
+
// prototype name the same way.
|
|
125
|
+
const schema = dataSchemaOf(key);
|
|
126
|
+
if (schema === undefined) {
|
|
127
|
+
unknownKey.push(partRecord.type);
|
|
123
128
|
return false;
|
|
124
129
|
}
|
|
125
|
-
if (!
|
|
126
|
-
schemaMismatch.push(
|
|
130
|
+
if (!schema.safeParse(partRecord.data).success) {
|
|
131
|
+
schemaMismatch.push(partRecord.type);
|
|
127
132
|
return false;
|
|
128
133
|
}
|
|
129
134
|
return true;
|
|
130
135
|
});
|
|
131
|
-
return parts.length ===
|
|
136
|
+
return parts.length === record.parts.length ? message : { ...record, parts };
|
|
132
137
|
});
|
|
133
138
|
if (unknownKey.length > 0 || schemaMismatch.length > 0) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
+
const fields = { identity };
|
|
140
|
+
if (unknownKey.length > 0)
|
|
141
|
+
fields.unknownKey = [...new Set(unknownKey)];
|
|
142
|
+
if (schemaMismatch.length > 0)
|
|
143
|
+
fields.schemaMismatch = [...new Set(schemaMismatch)];
|
|
144
|
+
logger?.warn("dropped unrenderable stored display parts", fields);
|
|
139
145
|
}
|
|
140
146
|
return filtered;
|
|
141
147
|
}
|
|
148
|
+
/** The schema behind one stored data-part key, or `undefined` when the key was retired or never stood. */
|
|
149
|
+
function dataSchemaOf(key) {
|
|
150
|
+
const entry = Object.entries(dataSchemas).find(([name]) => name === key);
|
|
151
|
+
return entry?.[1];
|
|
152
|
+
}
|
|
142
153
|
export async function parseStoredDisplayEnvelope(value, identity, logger) {
|
|
143
154
|
const header = DisplayEnvelopeHeaderSchema.safeParse(value);
|
|
144
155
|
if (!header.success) {
|
|
@@ -153,13 +164,27 @@ export async function parseStoredDisplayEnvelope(value, identity, logger) {
|
|
|
153
164
|
return { ...header.data, messages };
|
|
154
165
|
}
|
|
155
166
|
catch (error) {
|
|
156
|
-
const message = error
|
|
167
|
+
const message = errorMessageOf(error) ?? textOf(error);
|
|
157
168
|
throw new Error(`Invalid stored conversation display envelope at ${identity}: ${message}`, { cause: error });
|
|
158
169
|
}
|
|
159
170
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
171
|
+
const STORED_SOURCE_TYPES = [
|
|
172
|
+
"tool-call",
|
|
173
|
+
"data-presentation",
|
|
174
|
+
"data-plan",
|
|
175
|
+
"data-run-card",
|
|
176
|
+
"data-plan-approval",
|
|
177
|
+
"data-file-reference",
|
|
178
|
+
"data-ask",
|
|
179
|
+
"data-child-session-started",
|
|
180
|
+
"data-report-rendered",
|
|
181
|
+
"data-compaction",
|
|
182
|
+
"data-subagent-activity",
|
|
183
|
+
];
|
|
184
|
+
const STORED_SOURCE_TYPE_SET = new Set(STORED_SOURCE_TYPES);
|
|
185
|
+
/** Whether `part` is an arm the stored vocabulary can hold; anything else cannot become a stored card. */
|
|
186
|
+
export function isStoredSourcePart(part) {
|
|
187
|
+
return STORED_SOURCE_TYPE_SET.has(part.type);
|
|
163
188
|
}
|
|
164
189
|
function closedEntry(entry) {
|
|
165
190
|
if (entry.outcome !== undefined)
|
|
@@ -185,13 +210,57 @@ function displayPartId(part) {
|
|
|
185
210
|
* closes the same way, and an `incomplete` entry has no end time.
|
|
186
211
|
*/
|
|
187
212
|
export function conversationDisplayPart(part) {
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
213
|
+
const id = displayPartId(part);
|
|
214
|
+
switch (part.type) {
|
|
215
|
+
case "tool-call": {
|
|
216
|
+
const { type: _type, ...payload } = part;
|
|
217
|
+
return { type: "data-tool-call", id, data: { ...payload, outcome: part.outcome ?? "incomplete" } };
|
|
218
|
+
}
|
|
219
|
+
case "data-presentation": {
|
|
220
|
+
const { type: _type, ...data } = part;
|
|
221
|
+
return { type: "data-presentation", id, data };
|
|
222
|
+
}
|
|
223
|
+
case "data-plan": {
|
|
224
|
+
const { type: _type, ...data } = part;
|
|
225
|
+
return { type: "data-plan", id, data };
|
|
226
|
+
}
|
|
227
|
+
case "data-run-card": {
|
|
228
|
+
const { type: _type, ...data } = part;
|
|
229
|
+
return { type: "data-run-card", id, data };
|
|
230
|
+
}
|
|
231
|
+
case "data-plan-approval": {
|
|
232
|
+
const { type: _type, ...data } = part;
|
|
233
|
+
return { type: "data-plan-approval", id, data };
|
|
234
|
+
}
|
|
235
|
+
case "data-file-reference": {
|
|
236
|
+
const { type: _type, ...data } = part;
|
|
237
|
+
return { type: "data-file-reference", id, data };
|
|
238
|
+
}
|
|
239
|
+
case "data-ask": {
|
|
240
|
+
const { type: _type, ...data } = part;
|
|
241
|
+
return { type: "data-ask", id, data };
|
|
242
|
+
}
|
|
243
|
+
case "data-child-session-started": {
|
|
244
|
+
const { type: _type, ...data } = part;
|
|
245
|
+
return { type: "data-child-session-started", id, data };
|
|
246
|
+
}
|
|
247
|
+
case "data-report-rendered": {
|
|
248
|
+
const { type: _type, ...data } = part;
|
|
249
|
+
return { type: "data-report-rendered", id, data };
|
|
250
|
+
}
|
|
251
|
+
case "data-compaction": {
|
|
252
|
+
const { type: _type, ...data } = part;
|
|
253
|
+
return { type: "data-compaction", id, data };
|
|
254
|
+
}
|
|
255
|
+
case "data-subagent-activity": {
|
|
256
|
+
const { type: _type, ...payload } = part;
|
|
257
|
+
return { type: "data-subagent-activity", id, data: { ...payload, entries: part.entries.map(closedEntry) } };
|
|
258
|
+
}
|
|
259
|
+
default: {
|
|
260
|
+
const unreachable = part;
|
|
261
|
+
return unreachable;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
195
264
|
}
|
|
196
265
|
/**
|
|
197
266
|
* Read the durable representation back as chat messages.
|
|
@@ -214,19 +283,55 @@ export function conversationUIToChatMessages(messages) {
|
|
|
214
283
|
parts.push({ type: "tool-call", ...part.data });
|
|
215
284
|
continue;
|
|
216
285
|
}
|
|
217
|
-
if (part
|
|
218
|
-
|
|
219
|
-
|
|
286
|
+
if (isDataUIPart(part)) {
|
|
287
|
+
switch (part.type) {
|
|
288
|
+
case "data-presentation":
|
|
289
|
+
parts.push({ type: "data-presentation", ...part.data });
|
|
290
|
+
break;
|
|
291
|
+
case "data-plan":
|
|
292
|
+
parts.push({ type: "data-plan", ...part.data });
|
|
293
|
+
break;
|
|
294
|
+
case "data-run-card":
|
|
295
|
+
parts.push({ type: "data-run-card", ...part.data });
|
|
296
|
+
break;
|
|
297
|
+
case "data-plan-approval":
|
|
298
|
+
parts.push({ type: "data-plan-approval", ...part.data });
|
|
299
|
+
break;
|
|
300
|
+
case "data-file-reference":
|
|
301
|
+
parts.push({ type: "data-file-reference", ...part.data });
|
|
302
|
+
break;
|
|
303
|
+
case "data-ask":
|
|
304
|
+
parts.push({ type: "data-ask", ...part.data });
|
|
305
|
+
break;
|
|
306
|
+
case "data-child-session-started":
|
|
307
|
+
parts.push({ type: "data-child-session-started", ...part.data });
|
|
308
|
+
break;
|
|
309
|
+
case "data-report-rendered":
|
|
310
|
+
parts.push({ type: "data-report-rendered", ...part.data });
|
|
311
|
+
break;
|
|
312
|
+
case "data-compaction":
|
|
313
|
+
parts.push({ type: "data-compaction", ...part.data });
|
|
314
|
+
break;
|
|
315
|
+
case "data-subagent-activity":
|
|
316
|
+
parts.push({ type: "data-subagent-activity", ...part.data });
|
|
317
|
+
break;
|
|
318
|
+
default: {
|
|
319
|
+
const unhandled = part;
|
|
320
|
+
throw new Error(`stored display part has no chat-part arm: ${String(unhandled)}`);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
220
323
|
}
|
|
221
324
|
}
|
|
222
325
|
if (parts.length === 0)
|
|
223
326
|
continue;
|
|
224
|
-
|
|
327
|
+
const chat = {
|
|
225
328
|
id: message.id,
|
|
226
329
|
role: message.role,
|
|
227
330
|
parts,
|
|
228
|
-
|
|
229
|
-
|
|
331
|
+
};
|
|
332
|
+
if (message.metadata?.interrupted)
|
|
333
|
+
chat.interrupted = true;
|
|
334
|
+
out.push(chat);
|
|
230
335
|
}
|
|
231
336
|
return out;
|
|
232
337
|
}
|
|
@@ -35,15 +35,15 @@ export declare function isGenuineUserStart(message: ModelMessage): boolean;
|
|
|
35
35
|
* (`loadAll`) share it, each supplying its own start predicate.
|
|
36
36
|
*/
|
|
37
37
|
export declare function groupTurns<T>(rows: readonly T[], isStart: (row: T) => boolean): T[][];
|
|
38
|
-
export
|
|
38
|
+
export type ConversationViewOptions = {
|
|
39
39
|
/** Keep the first turn in front of the view: the seed of a report thread. */
|
|
40
40
|
readonly keepFirstTurn?: boolean;
|
|
41
|
-
}
|
|
42
|
-
export
|
|
41
|
+
};
|
|
42
|
+
export type ConversationView = {
|
|
43
43
|
readonly messages: ModelMessage[];
|
|
44
44
|
/** `sources[i]` is the index of the input message that gives `messages[i]`. */
|
|
45
45
|
readonly sources: number[];
|
|
46
|
-
}
|
|
46
|
+
};
|
|
47
47
|
export declare function conversationView(messages: readonly ModelMessage[], options: ConversationViewOptions): ConversationView;
|
|
48
48
|
/** The message with no reasoning part, or `undefined` for an assistant message with no part left. */
|
|
49
49
|
export declare function withoutReasoning(message: ModelMessage): ModelMessage | undefined;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* turns of the body without their reasoning. The loop and the reader call this one function, thus the
|
|
5
5
|
* next turn reads back the prefix that the last request sent.
|
|
6
6
|
*/
|
|
7
|
+
import { presentAt, presentLast } from "../lib/present.js";
|
|
7
8
|
import { compactionExchangeOf, compactionMarkerOf, isSyntheticUserMessage, requestInputTokensOf } from "./ai-sdk-message-storage.js";
|
|
8
9
|
/**
|
|
9
10
|
* A turn starts on a `user` message that a human actually sent. Two kinds of
|
|
@@ -43,7 +44,7 @@ export function groupTurns(rows, isStart) {
|
|
|
43
44
|
turns.push([row]);
|
|
44
45
|
}
|
|
45
46
|
else {
|
|
46
|
-
turns
|
|
47
|
+
presentLast(turns, "the open turn").push(row);
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
50
|
return turns;
|
|
@@ -66,7 +67,7 @@ function viewParts(messages, options) {
|
|
|
66
67
|
let headEnd = 0;
|
|
67
68
|
if (options.keepFirstTurn === true) {
|
|
68
69
|
while (headEnd < messages.length) {
|
|
69
|
-
const message = messages
|
|
70
|
+
const message = presentAt(messages, headEnd, "the head message");
|
|
70
71
|
if (isCompactionMessage(message) || (headEnd > 0 && isGenuineUserStart(message)))
|
|
71
72
|
break;
|
|
72
73
|
headEnd++;
|
|
@@ -76,7 +77,7 @@ function viewParts(messages, options) {
|
|
|
76
77
|
let front;
|
|
77
78
|
let body = [];
|
|
78
79
|
for (let source = headEnd; source < messages.length; source++) {
|
|
79
|
-
const message = messages
|
|
80
|
+
const message = presentAt(messages, source, "the message at the source index");
|
|
80
81
|
if (compactionExchangeOf(message) !== undefined)
|
|
81
82
|
continue;
|
|
82
83
|
const marker = compactionMarkerOf(message);
|
|
@@ -115,7 +116,7 @@ export function withoutReasoning(message) {
|
|
|
115
116
|
*/
|
|
116
117
|
export function lastRequestInputTokens(messages) {
|
|
117
118
|
for (let at = messages.length - 1; at >= 0; at--) {
|
|
118
|
-
const message = messages
|
|
119
|
+
const message = presentAt(messages, at, "the message at the index");
|
|
119
120
|
if (compactionMarkerOf(message) !== undefined)
|
|
120
121
|
return undefined;
|
|
121
122
|
const tokens = requestInputTokensOf(message);
|
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
* callers treat the budget as a soft target with a safety margin below the
|
|
9
9
|
* true context limit.
|
|
10
10
|
*/
|
|
11
|
+
import { textOf } from "../lib/unknown-text.js";
|
|
11
12
|
import { getEncoding } from "js-tiktoken";
|
|
13
|
+
import { parseUnknownRecord } from "../lib/unknown-containers.js";
|
|
12
14
|
let encoder;
|
|
13
15
|
function enc() {
|
|
14
16
|
encoder ??= getEncoding("cl100k_base");
|
|
@@ -27,16 +29,16 @@ function enc() {
|
|
|
27
29
|
* Each other output arm is plain JSON, thus it is stringified whole.
|
|
28
30
|
*/
|
|
29
31
|
function toolResultText(output) {
|
|
30
|
-
|
|
32
|
+
const out = parseUnknownRecord(output);
|
|
33
|
+
if (out === undefined)
|
|
31
34
|
return JSON.stringify(output ?? {});
|
|
32
|
-
const out = output;
|
|
33
35
|
if (out.type !== "content" || !Array.isArray(out.value))
|
|
34
36
|
return JSON.stringify(out);
|
|
35
37
|
const texts = [];
|
|
36
38
|
for (const item of out.value) {
|
|
37
|
-
|
|
39
|
+
const nested = parseUnknownRecord(item);
|
|
40
|
+
if (nested === undefined)
|
|
38
41
|
continue;
|
|
39
|
-
const nested = item;
|
|
40
42
|
if (nested.type === "text" && typeof nested.text === "string")
|
|
41
43
|
texts.push(nested.text);
|
|
42
44
|
}
|
|
@@ -52,9 +54,9 @@ function toolResultText(output) {
|
|
|
52
54
|
function tokenizableText(block) {
|
|
53
55
|
if (typeof block === "string")
|
|
54
56
|
return block;
|
|
55
|
-
|
|
57
|
+
const part = parseUnknownRecord(block);
|
|
58
|
+
if (part === undefined)
|
|
56
59
|
return JSON.stringify(block);
|
|
57
|
-
const part = block;
|
|
58
60
|
switch (part.type) {
|
|
59
61
|
case "text":
|
|
60
62
|
return typeof part.text === "string" ? part.text : "";
|
|
@@ -66,9 +68,9 @@ function tokenizableText(block) {
|
|
|
66
68
|
case "image":
|
|
67
69
|
return "";
|
|
68
70
|
case "tool-call":
|
|
69
|
-
return `${
|
|
71
|
+
return `${textOf(part.toolName ?? "")} ${JSON.stringify(part.input ?? {})}`;
|
|
70
72
|
case "tool-result": {
|
|
71
|
-
return `${
|
|
73
|
+
return `${textOf(part.toolName ?? "")} ${toolResultText(part.output)}`;
|
|
72
74
|
}
|
|
73
75
|
default:
|
|
74
76
|
return JSON.stringify(part);
|
|
@@ -1,14 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Derive a deterministic thread title from the user's first message.
|
|
3
|
-
* Pure function — no I/O, no global state.
|
|
4
|
-
*
|
|
5
|
-
* Rules:
|
|
6
|
-
* 1. Collapse runs of whitespace to a single space.
|
|
7
|
-
* 2. Trim.
|
|
8
|
-
* 3. Empty / whitespace-only input → `"Untitled"`.
|
|
9
|
-
* 4. If length ≤ `max`, return unchanged.
|
|
10
|
-
* 5. Else slice to `max`, walk back to the last space (word boundary),
|
|
11
|
-
* append the real ellipsis `…` (U+2026). If no space exists inside
|
|
12
|
-
* the window, hard-slice at `max` and append `…`.
|
|
13
|
-
*/
|
|
14
1
|
export declare function deriveThreadTitle(text: string, max?: number): string;
|
|
@@ -11,8 +11,9 @@
|
|
|
11
11
|
* append the real ellipsis `…` (U+2026). If no space exists inside
|
|
12
12
|
* the window, hard-slice at `max` and append `…`.
|
|
13
13
|
*/
|
|
14
|
+
import { collapseWhitespace } from "../lib/text.js";
|
|
14
15
|
export function deriveThreadTitle(text, max = 40) {
|
|
15
|
-
const normalized = text
|
|
16
|
+
const normalized = collapseWhitespace(text);
|
|
16
17
|
if (normalized.length === 0)
|
|
17
18
|
return "Untitled";
|
|
18
19
|
if (normalized.length <= max)
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import type { QueryResultRow } from "pg";
|
|
2
2
|
/** The query method of a `pg` client, which the migration transaction also supplies. */
|
|
3
|
-
export
|
|
4
|
-
query
|
|
5
|
-
rows:
|
|
3
|
+
export type BackfillClient<Row extends QueryResultRow = QueryResultRow> = {
|
|
4
|
+
query(text: string, values?: unknown[]): Promise<{
|
|
5
|
+
rows: Row[];
|
|
6
6
|
}>;
|
|
7
|
-
}
|
|
8
|
-
|
|
7
|
+
};
|
|
8
|
+
type LegacyRow = {
|
|
9
|
+
readonly thread_id: string;
|
|
10
|
+
readonly seq: string;
|
|
11
|
+
readonly role: string;
|
|
12
|
+
readonly content_jsonb: string | Array<Record<string, unknown>>;
|
|
13
|
+
};
|
|
14
|
+
export declare function backfillAiSdkMessageEnvelopes(client: BackfillClient<LegacyRow>): Promise<void>;
|
|
15
|
+
export {};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { errorMessageOf } from "../lib/thrown.js";
|
|
2
|
+
import { textOf } from "../lib/unknown-text.js";
|
|
1
3
|
import { envelopeMessage, legacyAnthropicToModelMessage } from "./ai-sdk-message-storage.js";
|
|
2
4
|
export async function backfillAiSdkMessageEnvelopes(client) {
|
|
3
5
|
// Legacy Anthropic columns (`role`, `content_jsonb`) are temporary and
|
|
@@ -22,7 +24,7 @@ export async function backfillAiSdkMessageEnvelopes(client) {
|
|
|
22
24
|
]);
|
|
23
25
|
}
|
|
24
26
|
catch (err) {
|
|
25
|
-
const message = err
|
|
27
|
+
const message = errorMessageOf(err) ?? textOf(err);
|
|
26
28
|
throw new Error(`Failed to backfill AI SDK message envelope for ${identity}: ${message}`, { cause: err });
|
|
27
29
|
}
|
|
28
30
|
}
|
|
@@ -31,8 +33,8 @@ export async function backfillAiSdkMessageEnvelopes(client) {
|
|
|
31
33
|
WHERE message_envelope IS NULL
|
|
32
34
|
ORDER BY thread_id, seq
|
|
33
35
|
LIMIT 1`);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
const [row] = remaining.rows;
|
|
37
|
+
if (row !== undefined) {
|
|
36
38
|
throw new Error(`AI SDK message backfill left an unmigrated row at ${row.thread_id}/${row.seq}`);
|
|
37
39
|
}
|
|
38
40
|
}
|