@inflexa-ai/harness 0.45.1 → 0.46.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -3
- package/dist/agents/conversation-agent.d.ts +9 -3
- package/dist/agents/conversation-agent.js +34 -33
- package/dist/agents/report-session-agent.d.ts +15 -15
- package/dist/agents/report-session-agent.js +23 -15
- package/dist/agents/sandbox/index.d.ts +1 -1
- package/dist/agents/sandbox/index.js +1 -1
- package/dist/agents/sandbox/shared.d.ts +12 -14
- package/dist/agents/sandbox/shared.js +18 -12
- package/dist/agents/sandbox/types.d.ts +4 -4
- package/dist/agents/sandbox/validate-skills.d.ts +2 -2
- package/dist/agents/sandbox/validate-skills.js +3 -1
- package/dist/agents/sandbox-catalog.d.ts +2 -2
- package/dist/agents/sandbox-catalog.js +3 -3
- package/dist/agents/system-prompt.d.ts +2 -2
- package/dist/app/chat-turn-workflow.d.ts +114 -0
- package/dist/app/chat-turn-workflow.js +306 -0
- package/dist/app/chat-turn.d.ts +85 -57
- package/dist/app/chat-turn.js +123 -100
- package/dist/app/data-profile-orientation.js +10 -8
- package/dist/app/data-profile-view.d.ts +4 -4
- package/dist/app/data-profile-view.js +9 -8
- package/dist/app/in-process-turn.d.ts +42 -0
- package/dist/app/in-process-turn.js +139 -0
- package/dist/app/message-assembly.d.ts +10 -4
- package/dist/app/message-assembly.js +13 -8
- package/dist/app/report-session-runtime.d.ts +4 -4
- package/dist/app/report-session-runtime.js +36 -21
- package/dist/app/spawn-report-session.d.ts +33 -28
- package/dist/app/spawn-report-session.js +25 -40
- package/dist/app/synthesize-run.d.ts +22 -16
- package/dist/app/synthesize-run.js +41 -35
- package/dist/app/work.d.ts +96 -0
- package/dist/app/work.js +147 -0
- package/dist/auth/local-auth-context.d.ts +1 -3
- package/dist/auth/local-auth-context.js +1 -3
- package/dist/auth/local-run-authorizer.d.ts +1 -1
- package/dist/auth/local-run-authorizer.js +5 -3
- package/dist/auth/types.d.ts +26 -26
- package/dist/billing/cached-resolver.d.ts +4 -4
- package/dist/billing/run-charge.d.ts +5 -8
- package/dist/billing/run-charge.js +2 -2
- package/dist/billing/usage-recorder.d.ts +9 -9
- package/dist/citations/aggregate.js +1 -1
- package/dist/citations/clients/arxiv.d.ts +2 -2
- package/dist/citations/clients/arxiv.js +12 -4
- package/dist/citations/clients/common.js +4 -2
- package/dist/citations/clients/crossref.d.ts +2 -2
- package/dist/citations/clients/crossref.js +37 -37
- package/dist/citations/clients/doi-registry.js +15 -16
- package/dist/citations/clients/pubmed.d.ts +2 -2
- package/dist/citations/clients/pubmed.js +20 -13
- package/dist/citations/clients/semantic-scholar.d.ts +2 -2
- package/dist/citations/clients/semantic-scholar.js +9 -9
- package/dist/citations/compare.js +2 -2
- package/dist/citations/match.d.ts +2 -2
- package/dist/citations/match.js +12 -7
- package/dist/citations/normalize.js +35 -26
- package/dist/citations/plan.js +6 -2
- package/dist/citations/resolve.d.ts +6 -6
- package/dist/citations/resolve.js +34 -25
- package/dist/citations/types.d.ts +77 -77
- package/dist/config/environment-stores.d.ts +6 -6
- package/dist/config/resource-limits.js +1 -3
- package/dist/contracts/analogy-report.d.ts +7 -7
- package/dist/contracts/analogy-report.js +2 -2
- package/dist/contracts/chat-events.d.ts +38 -24
- package/dist/contracts/chat-frame.d.ts +15 -5
- package/dist/contracts/chat-frame.js +64 -41
- package/dist/contracts/chat-parts.d.ts +130 -67
- package/dist/contracts/chat-parts.js +1 -0
- package/dist/contracts/content-url.js +16 -2
- package/dist/contracts/data-profile.d.ts +38 -38
- package/dist/contracts/index.d.ts +2 -2
- package/dist/contracts/index.js +1 -1
- package/dist/contracts/message.d.ts +6 -6
- package/dist/contracts/organ-system.d.ts +11 -11
- package/dist/contracts/part-registry.d.ts +5 -4
- package/dist/contracts/part-registry.js +5 -0
- package/dist/contracts/profile-vocabulary.d.ts +11 -10
- package/dist/contracts/profile-vocabulary.js +10 -3
- package/dist/contracts/report-blocks.d.ts +329 -329
- package/dist/contracts/report-reference.d.ts +105 -81
- package/dist/contracts/report-reference.js +30 -13
- package/dist/contracts/schemas/chat-events.d.ts +30 -16
- package/dist/contracts/schemas/chat-events.js +15 -6
- package/dist/contracts/schemas/chat-parts.d.ts +175 -102
- package/dist/contracts/schemas/chat-parts.js +33 -7
- package/dist/contracts/severity.d.ts +1 -1
- package/dist/contracts/structure-source.d.ts +3 -3
- package/dist/contracts/structure-source.js +6 -2
- package/dist/contracts/subagent-activity.d.ts +2 -2
- package/dist/contracts/subagent-activity.js +5 -3
- package/dist/contracts/usage.d.ts +2 -2
- package/dist/data/safety-panel-schema.d.ts +25 -25
- package/dist/data/safety-panel-schema.js +13 -4
- package/dist/execution/artifact-metadata.d.ts +23 -15
- package/dist/execution/artifact-metadata.js +33 -10
- package/dist/execution/artifact-record.d.ts +2 -2
- package/dist/execution/artifact-registration.d.ts +5 -5
- package/dist/execution/artifact-registry.d.ts +8 -8
- package/dist/execution/dbos-run-launcher.d.ts +24 -4
- package/dist/execution/dbos-run-launcher.js +58 -4
- package/dist/execution/dbos-workflow-purger.d.ts +5 -6
- package/dist/execution/dbos-workflow-purger.js +8 -7
- package/dist/execution/input-signature.d.ts +2 -2
- package/dist/execution/post-step-pipeline.d.ts +9 -9
- package/dist/execution/post-step-pipeline.js +1 -1
- package/dist/execution/post-step.js +2 -2
- package/dist/execution/reconcile-manifest.d.ts +4 -4
- package/dist/execution/reconcile-manifest.js +3 -2
- package/dist/execution/run-authorizer.d.ts +46 -37
- package/dist/execution/run-authorizer.js +8 -8
- package/dist/execution/run-canceler.d.ts +7 -7
- package/dist/execution/run-canceler.js +14 -7
- package/dist/execution/run-end-record.d.ts +2 -3
- package/dist/execution/run-event-parts.d.ts +0 -8
- package/dist/execution/run-event-parts.js +29 -24
- package/dist/execution/run-event-stream.d.ts +8 -8
- package/dist/execution/run-event-stream.js +3 -4
- package/dist/execution/run-launcher.d.ts +4 -4
- package/dist/execution/run-synthesis.d.ts +49 -48
- package/dist/execution/run-synthesis.js +96 -255
- package/dist/execution/staged-input.d.ts +2 -2
- package/dist/execution/step-summary.d.ts +6 -6
- package/dist/execution/step-summary.js +4 -8
- package/dist/execution/topo-sort.js +4 -3
- package/dist/execution/workflow-purger.d.ts +2 -2
- package/dist/index.d.ts +17 -20
- package/dist/index.js +25 -36
- package/dist/input-sanitization.js +9 -2
- package/dist/input-scan/clustering.d.ts +6 -6
- package/dist/input-scan/clustering.js +11 -5
- package/dist/input-scan/companions.js +3 -2
- package/dist/input-scan/detect-sets.d.ts +2 -2
- package/dist/input-scan/detect-sets.js +25 -21
- package/dist/input-scan/enrich.d.ts +6 -6
- package/dist/input-scan/enrich.js +29 -12
- package/dist/input-scan/formats.d.ts +2 -2
- package/dist/input-scan/formats.js +8 -2
- package/dist/input-scan/markers.d.ts +2 -2
- package/dist/input-scan/markers.js +14 -5
- package/dist/input-scan/menu.d.ts +10 -10
- package/dist/input-scan/menu.js +0 -0
- package/dist/input-scan/quarantine.d.ts +2 -2
- package/dist/input-scan/quarantine.js +23 -18
- package/dist/input-scan/readout-budget.d.ts +2 -2
- package/dist/input-scan/readout-budget.js +1 -1
- package/dist/input-scan/readout.d.ts +2 -2
- package/dist/input-scan/readout.js +47 -34
- package/dist/input-scan/scan.d.ts +2 -2
- package/dist/input-scan/scan.js +7 -5
- package/dist/input-scan/set-types.d.ts +28 -28
- package/dist/input-scan/shapes.d.ts +4 -4
- package/dist/input-scan/shapes.js +0 -0
- package/dist/input-scan/templates.d.ts +10 -10
- package/dist/input-scan/templates.js +30 -22
- package/dist/input-scan/tokens.d.ts +6 -4
- package/dist/input-scan/tokens.js +100 -38
- package/dist/input-scan/types.d.ts +22 -22
- package/dist/lib/async-utils.d.ts +3 -7
- package/dist/lib/async-utils.js +5 -9
- package/dist/lib/cache.js +1 -1
- package/dist/lib/chrome.d.ts +46 -6
- package/dist/lib/console-logger.js +2 -2
- package/dist/lib/db-result.d.ts +22 -6
- package/dist/lib/db-result.js +9 -13
- package/dist/lib/eyes.d.ts +4 -4
- package/dist/lib/eyes.js +1 -1
- package/dist/lib/fs-helpers.js +18 -6
- package/dist/lib/fs-result.d.ts +1 -0
- package/dist/lib/fs-result.js +5 -6
- package/dist/lib/hooks.d.ts +32 -7
- package/dist/lib/hooks.js +22 -3
- package/dist/lib/host-concurrency.js +3 -2
- package/dist/lib/logger.d.ts +2 -2
- package/dist/lib/logger.js +2 -1
- package/dist/lib/metrics.d.ts +1 -1
- package/dist/lib/null-proto.d.ts +6 -0
- package/dist/lib/null-proto.js +17 -0
- package/dist/lib/otel-spans.d.ts +1 -1
- package/dist/lib/otel-spans.js +9 -5
- package/dist/lib/otel.d.ts +4 -2
- package/dist/lib/otel.js +10 -2
- package/dist/lib/page-capture.d.ts +8 -8
- package/dist/lib/page-capture.js +9 -4
- package/dist/lib/parse-json.d.ts +5 -0
- package/dist/lib/parse-json.js +12 -0
- package/dist/lib/present.d.ts +12 -0
- package/dist/lib/present.js +39 -0
- package/dist/lib/rate-limit.d.ts +4 -4
- package/dist/lib/rate-limit.js +12 -13
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.js +4 -10
- package/dist/lib/regulatory-corpus/fetch-ich.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-ich.js +18 -14
- package/dist/lib/regulatory-corpus/normalize-whitespace.d.ts +6 -0
- package/dist/lib/regulatory-corpus/normalize-whitespace.js +41 -0
- package/dist/lib/regulatory-corpus.d.ts +10 -10
- package/dist/lib/regulatory-corpus.js +3 -1
- package/dist/lib/result.d.ts +10 -11
- package/dist/lib/result.js +15 -13
- package/dist/lib/storage.d.ts +2 -2
- package/dist/lib/test/async-iterable.d.ts +9 -0
- package/dist/lib/test/async-iterable.js +28 -0
- package/dist/lib/test/request-url.d.ts +5 -0
- package/dist/lib/test/request-url.js +7 -0
- package/dist/lib/test/result-assert.d.ts +12 -0
- package/dist/lib/test/result-assert.js +17 -0
- package/dist/lib/test/text-shapes.d.ts +24 -0
- package/dist/lib/test/text-shapes.js +63 -0
- package/dist/lib/text.d.ts +22 -0
- package/dist/lib/text.js +68 -0
- package/dist/lib/thrown.d.ts +18 -0
- package/dist/lib/thrown.js +30 -0
- package/dist/lib/unknown-array.d.ts +6 -0
- package/dist/lib/unknown-array.js +8 -0
- package/dist/lib/unknown-containers.d.ts +14 -0
- package/dist/lib/unknown-containers.js +17 -0
- package/dist/lib/unknown-text.d.ts +8 -0
- package/dist/lib/unknown-text.js +28 -0
- package/dist/lib/zod-issue-shape.d.ts +1 -1
- package/dist/lib/zod-issue-shape.js +31 -31
- package/dist/lib/zod-issues.d.ts +3 -3
- package/dist/lib/zod-issues.js +30 -17
- package/dist/literature/sources/arxiv.d.ts +6 -6
- package/dist/literature/sources/arxiv.js +92 -35
- package/dist/literature/sources/http.d.ts +2 -2
- package/dist/literature/sources/http.js +16 -15
- package/dist/literature/sources/pubmed.d.ts +16 -16
- package/dist/literature/sources/pubmed.js +96 -61
- package/dist/literature/sources/semantic-scholar.d.ts +8 -8
- package/dist/literature/sources/semantic-scholar.js +22 -13
- package/dist/loop/accounting.d.ts +63 -0
- package/dist/loop/accounting.js +141 -0
- package/dist/loop/call-policy.d.ts +73 -0
- package/dist/loop/call-policy.js +109 -0
- package/dist/loop/chat-stream.d.ts +62 -0
- package/dist/loop/chat-stream.js +237 -0
- package/dist/loop/compaction.d.ts +9 -9
- package/dist/loop/compaction.js +1 -1
- package/dist/loop/metrics.d.ts +12 -15
- package/dist/loop/metrics.js +14 -26
- package/dist/loop/run-loop.d.ts +233 -0
- package/dist/loop/run-loop.js +770 -0
- package/dist/loop/sub-agent.d.ts +61 -0
- package/dist/loop/sub-agent.js +160 -0
- package/dist/loop/tool-adapter.d.ts +98 -0
- package/dist/loop/tool-adapter.js +364 -0
- package/dist/loop/tool-detail.d.ts +1 -1
- package/dist/loop/tool-detail.js +6 -5
- package/dist/loop/tool-outcome.d.ts +1 -1
- package/dist/loop/tool-output.d.ts +4 -4
- package/dist/loop/tool-output.js +2 -2
- package/dist/loop/turn-credentials.d.ts +39 -0
- package/dist/loop/turn-credentials.js +90 -0
- package/dist/loop/types.d.ts +29 -38
- package/dist/loop/types.js +2 -7
- package/dist/memory/ai-sdk-message-storage.d.ts +5 -5
- package/dist/memory/ai-sdk-message-storage.js +13 -11
- package/dist/memory/card-builders.d.ts +14 -14
- package/dist/memory/card-builders.js +19 -15
- package/dist/memory/conversation-display-recorder.d.ts +22 -4
- package/dist/memory/conversation-display-recorder.js +43 -24
- package/dist/memory/conversation-display-replay.js +3 -2
- package/dist/memory/conversation-display-storage.d.ts +15 -7
- package/dist/memory/conversation-display-storage.js +141 -36
- package/dist/memory/conversation-view.d.ts +4 -4
- package/dist/memory/conversation-view.js +5 -4
- package/dist/memory/count-tokens.js +10 -8
- package/dist/memory/derive-thread-title.d.ts +0 -13
- package/dist/memory/derive-thread-title.js +2 -1
- package/dist/memory/message-backfill.d.ts +12 -5
- package/dist/memory/message-backfill.js +5 -3
- package/dist/memory/thread-history.d.ts +36 -21
- package/dist/memory/thread-history.js +78 -54
- package/dist/memory/thread-store.d.ts +26 -17
- package/dist/memory/thread-store.js +15 -9
- package/dist/memory/tool-call-integrity.d.ts +2 -2
- package/dist/memory/tool-call-integrity.js +4 -3
- package/dist/memory/working-memory.d.ts +16 -12
- package/dist/memory/working-memory.js +72 -61
- package/dist/prompts/briefing.d.ts +12 -12
- package/dist/prompts/briefing.js +1 -1
- package/dist/prompts/synthesis-agent.d.ts +1 -1
- package/dist/prompts/synthesis-agent.js +6 -14
- package/dist/provenance/collector.d.ts +6 -6
- package/dist/provenance/collector.js +15 -8
- package/dist/provenance/exec-frame.d.ts +2 -2
- package/dist/provenance/exec-frame.js +6 -1
- package/dist/provenance/seam.d.ts +1 -4
- package/dist/provenance/types.d.ts +6 -6
- package/dist/providers/ai-sdk.d.ts +113 -62
- package/dist/providers/ai-sdk.js +283 -518
- package/dist/providers/embedding.d.ts +2 -2
- package/dist/providers/embedding.js +1 -1
- package/dist/providers/errors.d.ts +22 -2
- package/dist/providers/errors.js +98 -50
- package/dist/providers/prompt-cache.d.ts +8 -8
- package/dist/providers/prompt-cache.js +13 -11
- package/dist/providers/reasoning.d.ts +2 -2
- package/dist/providers/reasoning.js +2 -2
- package/dist/providers/request-headers.js +12 -3
- package/dist/providers/types.d.ts +55 -94
- package/dist/reference-data/catalog.d.ts +2 -15
- package/dist/reference-data/catalog.js +25 -8
- package/dist/reference-data/receipt.d.ts +2 -2
- package/dist/report-model/assert-rules.js +1 -1
- package/dist/report-model/authoring-grammar.d.ts +211 -233
- package/dist/report-model/block-walk.d.ts +10 -10
- package/dist/report-model/block-walk.js +2 -0
- package/dist/report-model/draft-finish.d.ts +8 -8
- package/dist/report-model/draft-finish.js +1 -1
- package/dist/report-model/draft-hash.js +8 -7
- package/dist/report-model/draft-operations.d.ts +22 -10
- package/dist/report-model/draft-operations.js +48 -30
- package/dist/report-model/draft-read.d.ts +19 -7
- package/dist/report-model/draft-read.js +16 -6
- package/dist/report-model/draft.d.ts +844 -2
- package/dist/report-model/draft.js +3 -1
- package/dist/report-model/fixture-resolver.js +39 -16
- package/dist/report-model/pin-snapshot.d.ts +2 -2
- package/dist/report-model/pin-snapshot.js +15 -15
- package/dist/report-model/production-resolver.d.ts +18 -18
- package/dist/report-model/production-resolver.js +50 -42
- package/dist/report-model/reference-resolver.d.ts +26 -10
- package/dist/report-model/reference-resolver.js +68 -5
- package/dist/report-model/reference-stamp.js +30 -38
- package/dist/report-model/structural-validation.js +12 -4
- package/dist/report-model/validate.d.ts +7 -7
- package/dist/report-model/validate.js +6 -6
- package/dist/report-render/assets.d.ts +2 -2
- package/dist/report-render/assets.js +27 -3
- package/dist/report-render/chart-export.d.ts +10 -2
- package/dist/report-render/chart-export.js +37 -11
- package/dist/report-render/chart-presets.d.ts +8 -8
- package/dist/report-render/chart-presets.js +3 -3
- package/dist/report-render/chart-renderers.d.ts +23 -16
- package/dist/report-render/chart-renderers.js +74 -53
- package/dist/report-render/chart-toolbox.d.ts +2 -2
- package/dist/report-render/chart-toolbox.js +7 -6
- package/dist/report-render/chart.d.ts +15 -16
- package/dist/report-render/chart.js +369 -252
- package/dist/report-render/design.d.ts +36 -297
- package/dist/report-render/design.js +0 -12
- package/dist/report-render/figures/common.d.ts +12 -12
- package/dist/report-render/figures/common.js +42 -31
- package/dist/report-render/figures/dendrogram.d.ts +3 -3
- package/dist/report-render/figures/dendrogram.js +10 -10
- package/dist/report-render/figures/dense.js +15 -8
- package/dist/report-render/figures/dotplot.js +46 -33
- package/dist/report-render/figures/embedding.js +52 -43
- package/dist/report-render/figures/equal-units.d.ts +10 -10
- package/dist/report-render/figures/equal-units.js +27 -27
- package/dist/report-render/figures/forest.js +9 -7
- package/dist/report-render/figures/gsea.js +21 -11
- package/dist/report-render/figures/heatmap.js +13 -9
- package/dist/report-render/figures/index.d.ts +10 -10
- package/dist/report-render/figures/index.js +4 -2
- package/dist/report-render/figures/km.js +10 -9
- package/dist/report-render/figures/label-room.d.ts +12 -12
- package/dist/report-render/figures/label-room.js +7 -2
- package/dist/report-render/figures/locuszoom.d.ts +2 -2
- package/dist/report-render/figures/locuszoom.js +59 -31
- package/dist/report-render/figures/lollipop.js +3 -2
- package/dist/report-render/figures/ma.js +8 -4
- package/dist/report-render/figures/manhattan.d.ts +1 -2
- package/dist/report-render/figures/manhattan.js +52 -34
- package/dist/report-render/figures/oncoprint.js +4 -5
- package/dist/report-render/figures/pca.js +25 -11
- package/dist/report-render/figures/qq.js +20 -9
- package/dist/report-render/figures/roc.js +1 -1
- package/dist/report-render/figures/sankey.d.ts +2 -2
- package/dist/report-render/figures/sankey.js +11 -10
- package/dist/report-render/figures/upset.d.ts +6 -6
- package/dist/report-render/figures/upset.js +7 -4
- package/dist/report-render/figures/volcano.js +12 -10
- package/dist/report-render/hybrid-svg.d.ts +4 -4
- package/dist/report-render/hybrid-svg.js +7 -5
- package/dist/report-render/number-format.d.ts +4 -4
- package/dist/report-render/number-format.js +62 -27
- package/dist/report-render/page.js +2 -1
- package/dist/report-render/provenance-data.d.ts +2 -2
- package/dist/report-render/references.d.ts +4 -4
- package/dist/report-render/render.d.ts +2 -2
- package/dist/report-render/render.js +10 -11
- package/dist/report-render/script-json.js +1 -1
- package/dist/report-render/table-data.d.ts +6 -6
- package/dist/report-render/test/options.d.ts +49 -0
- package/dist/report-render/test/options.js +143 -0
- package/dist/report-render/test/page-function.d.ts +19 -0
- package/dist/report-render/test/page-function.js +33 -0
- package/dist/report-render/types.d.ts +10 -10
- package/dist/report-render/value-bridge.d.ts +4 -4
- package/dist/report-render/value-bridge.js +27 -14
- package/dist/report-render/views/chart-view.d.ts +2 -2
- package/dist/report-render/views/chart-view.js +2 -2
- package/dist/report-render/views/lineage.d.ts +6 -6
- package/dist/report-render/views/lineage.js +2 -0
- package/dist/report-render/views/page-view.d.ts +2 -2
- package/dist/report-render/views/page-view.js +1 -0
- package/dist/report-render/views/prose.js +25 -8
- package/dist/report-render/views/references-view.js +12 -1
- package/dist/report-render/views/values.js +1 -1
- package/dist/runtime/assemble.d.ts +53 -26
- package/dist/runtime/assemble.js +103 -56
- package/dist/runtime/boot.d.ts +8 -7
- package/dist/runtime/boot.js +1 -1
- package/dist/runtime/connection-budget.d.ts +6 -6
- package/dist/runtime/connection-budget.js +1 -1
- package/dist/runtime/dbos.d.ts +29 -19
- package/dist/runtime/dbos.js +35 -20
- package/dist/runtime/result-serialization.js +18 -5
- package/dist/runtime/shutdown.d.ts +2 -2
- package/dist/sandbox/client.d.ts +7 -3
- package/dist/sandbox/cpu-files.d.ts +2 -2
- package/dist/sandbox/cpu-files.js +21 -4
- package/dist/sandbox/create-sandbox.d.ts +7 -8
- package/dist/sandbox/create-sandbox.js +6 -12
- package/dist/sandbox/docker-client.d.ts +48 -3
- package/dist/sandbox/docker-client.js +10 -6
- package/dist/sandbox/estimate-data-profile-resources.js +2 -7
- package/dist/sandbox/exec-outcome.d.ts +2 -2
- package/dist/sandbox/exec-outcome.js +1 -1
- package/dist/sandbox/exec.d.ts +10 -6
- package/dist/sandbox/exec.js +27 -12
- package/dist/sandbox/execution-id.js +14 -6
- package/dist/sandbox/farm.d.ts +2 -2
- package/dist/sandbox/farm.js +22 -27
- package/dist/sandbox/identity.d.ts +7 -0
- package/dist/sandbox/identity.js +14 -3
- package/dist/sandbox/image-packages.js +15 -27
- package/dist/sandbox/k8s-client.d.ts +35 -8
- package/dist/sandbox/k8s-client.js +6 -5
- package/dist/sandbox/labels.js +1 -0
- package/dist/sandbox/liveness.js +3 -1
- package/dist/sandbox/mount-plan.d.ts +10 -10
- package/dist/sandbox/mount-plan.js +13 -14
- package/dist/sandbox/notification-sweep.d.ts +4 -4
- package/dist/sandbox/notification-sweep.js +4 -7
- package/dist/sandbox/package-identity.d.ts +6 -13
- package/dist/sandbox/package-identity.js +46 -28
- package/dist/sandbox/reaper.d.ts +10 -10
- package/dist/sandbox/reaper.js +4 -6
- package/dist/sandbox/sandbox-error.d.ts +2 -9
- package/dist/sandbox/sandbox-error.js +21 -8
- package/dist/sandbox/sandbox-step-translate.d.ts +8 -5
- package/dist/sandbox/sandbox-step-translate.js +22 -8
- package/dist/sandbox/step-sandbox.d.ts +47 -0
- package/dist/sandbox/step-sandbox.js +53 -0
- package/dist/sandbox/types.d.ts +18 -19
- package/dist/sandbox/types.js +1 -1
- package/dist/schemas/artifact-manifest.d.ts +4 -4
- package/dist/schemas/data-profile-schemas.d.ts +343 -298
- package/dist/schemas/file-metadata.js +2 -4
- package/dist/schemas/plan-schemas.d.ts +31 -31
- package/dist/schemas/run-synthesis.d.ts +95 -26
- package/dist/schemas/run-synthesis.js +3 -1
- package/dist/schemas/validate-plan.d.ts +4 -4
- package/dist/schemas/validate-plan.js +17 -5
- package/dist/schemas/workflow-state.d.ts +19 -19
- package/dist/schemas/workflow-state.js +2 -2
- package/dist/state/active-turns.d.ts +36 -0
- package/dist/state/active-turns.js +67 -0
- package/dist/state/analyses-metrics.d.ts +8 -8
- package/dist/state/analyses-metrics.js +4 -4
- package/dist/state/analyses.d.ts +0 -14
- package/dist/state/analyses.js +0 -32
- package/dist/state/artifacts.d.ts +32 -19
- package/dist/state/artifacts.js +28 -5
- package/dist/state/data-profile.d.ts +2 -2
- package/dist/state/db.d.ts +12 -2
- package/dist/state/db.js +5 -0
- package/dist/state/edit-intents.d.ts +4 -0
- package/dist/state/edit-intents.js +71 -0
- package/dist/state/index.d.ts +4 -4
- package/dist/state/index.js +2 -2
- package/dist/state/init.d.ts +2 -1
- package/dist/state/init.js +5 -2
- package/dist/state/migrations/20260927120000_baseline.js +3 -1
- package/dist/state/migrations/20261026120000_add_the_edit_intents.d.ts +7 -0
- package/dist/state/migrations/20261026120000_add_the_edit_intents.js +21 -0
- package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.d.ts +7 -0
- package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.js +16 -0
- package/dist/state/migrations/20261027120100_store_the_authoring_results.d.ts +8 -0
- package/dist/state/migrations/20261027120100_store_the_authoring_results.js +20 -0
- package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.d.ts +7 -0
- package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.js +12 -0
- package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.d.ts +7 -0
- package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.js +11 -0
- package/dist/state/migrations/20261028120000_record_the_paused_work.d.ts +7 -0
- package/dist/state/migrations/20261028120000_record_the_paused_work.js +25 -0
- package/dist/state/migrations/20261028120100_end_the_suspended_runs.d.ts +8 -0
- package/dist/state/migrations/20261028120100_end_the_suspended_runs.js +13 -0
- package/dist/state/migrations/20261029120000_reference_the_run_mandate.d.ts +7 -0
- package/dist/state/migrations/20261029120000_reference_the_run_mandate.js +23 -0
- package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.d.ts +7 -0
- package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.js +11 -0
- package/dist/state/migrations/index.js +18 -0
- package/dist/state/paused-work.d.ts +52 -0
- package/dist/state/paused-work.js +105 -0
- package/dist/state/plans.d.ts +27 -8
- package/dist/state/plans.js +14 -11
- package/dist/state/purge-analysis.d.ts +6 -6
- package/dist/state/purge-analysis.js +10 -2
- package/dist/state/report-session-state.d.ts +43 -18
- package/dist/state/report-session-state.js +43 -4
- package/dist/state/report-versions.d.ts +16 -11
- package/dist/state/report-versions.js +5 -3
- package/dist/state/runs.d.ts +30 -19
- package/dist/state/runs.js +43 -51
- package/dist/state/schema.d.ts +18 -21
- package/dist/state/schema.js +4 -5
- package/dist/state/snapshot-parse.d.ts +2 -2
- package/dist/state/snapshot-parse.js +14 -8
- package/dist/state/step-executions.d.ts +20 -8
- package/dist/state/step-executions.js +6 -4
- package/dist/state/tool-outputs.d.ts +2 -2
- package/dist/state/tool-outputs.js +2 -1
- package/dist/state/vector-store.d.ts +16 -16
- package/dist/state/vector-store.js +11 -7
- package/dist/tasks/data-profile-absorb.d.ts +3 -3
- package/dist/tasks/data-profile-absorb.js +21 -16
- package/dist/tasks/data-profile-activity.d.ts +5 -5
- package/dist/tasks/data-profile-activity.js +5 -5
- package/dist/tasks/data-profile-index.d.ts +4 -4
- package/dist/tasks/data-profile-index.js +32 -17
- package/dist/tasks/data-profile-resolve.d.ts +8 -8
- package/dist/tasks/data-profile-resolve.js +88 -62
- package/dist/tasks/data-profile.d.ts +40 -31
- package/dist/tasks/data-profile.js +138 -95
- package/dist/tasks/extract-values.d.ts +26 -79
- package/dist/tasks/extract-values.js +48 -108
- package/dist/tasks/refresh-regulatory-corpus.d.ts +4 -20
- package/dist/tasks/refresh-regulatory-corpus.js +12 -8
- package/dist/tasks/regulatory-corpus-boot-refresh.d.ts +2 -2
- package/dist/tasks/regulatory-corpus-boot-refresh.js +12 -10
- package/dist/testing.d.ts +62 -0
- package/dist/testing.js +101 -0
- package/dist/tools/ad-hoc-router.d.ts +9 -9
- package/dist/tools/ad-hoc-router.js +65 -52
- package/dist/tools/analysis-invocation.d.ts +7 -0
- package/dist/tools/analysis-invocation.js +29 -5
- package/dist/tools/approval/contract.d.ts +8 -52
- package/dist/tools/approval/contract.js +7 -36
- package/dist/tools/approval/gateway.d.ts +27 -28
- package/dist/tools/approval/gateway.js +33 -130
- package/dist/tools/approval/queries.d.ts +6 -11
- package/dist/tools/approval/queries.js +43 -29
- package/dist/tools/approval/uuidv7.js +2 -2
- package/dist/tools/bio/chembl.d.ts +3 -3
- package/dist/tools/bio/chembl.js +10 -0
- package/dist/tools/bio/comptox.d.ts +25 -8
- package/dist/tools/bio/comptox.js +4 -2
- package/dist/tools/bio/drug-gene-interactions.d.ts +27 -17
- package/dist/tools/bio/drug-gene-interactions.js +11 -8
- package/dist/tools/bio/gene-disease-evidence.d.ts +61 -15
- package/dist/tools/bio/gene-disease-evidence.js +10 -6
- package/dist/tools/bio/gene-preclinical-profile.d.ts +11 -11
- package/dist/tools/bio/keys.d.ts +2 -2
- package/dist/tools/bio/keys.js +3 -3
- package/dist/tools/bio/lookup-annotation.d.ts +5 -5
- package/dist/tools/bio/lookup-annotation.js +3 -0
- package/dist/tools/bio/opentargets.d.ts +1 -1
- package/dist/tools/bio/opentargets.js +6 -0
- package/dist/tools/bio/pubchem.d.ts +2 -2
- package/dist/tools/bio/pubchem.js +6 -0
- package/dist/tools/bio/pubmed.d.ts +26 -16
- package/dist/tools/bio/pubmed.js +9 -3
- package/dist/tools/bio/search-clinical-trials.d.ts +4 -4
- package/dist/tools/bio/search-clinical-trials.js +5 -1
- package/dist/tools/bio/search-faers.d.ts +2 -2
- package/dist/tools/bio/search-faers.js +1 -1
- package/dist/tools/bio/search-gene.d.ts +2 -2
- package/dist/tools/bio/search-gene.js +1 -0
- package/dist/tools/bio/search-geo-datasets.d.ts +4 -4
- package/dist/tools/bio/search-geo-datasets.js +5 -5
- package/dist/tools/bio/search-interactions.d.ts +1 -1
- package/dist/tools/bio/search-patents.d.ts +28 -22
- package/dist/tools/bio/search-patents.js +20 -17
- package/dist/tools/bio/search-protein.d.ts +2 -2
- package/dist/tools/bio/search-protein.js +1 -1
- package/dist/tools/bio/search-regulatory-approvals.d.ts +64 -18
- package/dist/tools/bio/search-regulatory-approvals.js +21 -16
- package/dist/tools/bio/target-safety.d.ts +8 -8
- package/dist/tools/bio/target-safety.js +11 -6
- package/dist/tools/capability-data.d.ts +9 -5
- package/dist/tools/capability-data.js +2 -1
- package/dist/tools/define-tool.d.ts +55 -46
- package/dist/tools/define-tool.js +39 -27
- package/dist/tools/display/normalize-echart-spec.d.ts +2 -2
- package/dist/tools/display/normalize-echart-spec.js +51 -27
- package/dist/tools/display/show-user.d.ts +2 -2
- package/dist/tools/display/show-user.js +1 -1
- package/dist/tools/execute-analysis.d.ts +19 -10
- package/dist/tools/execute-analysis.js +83 -62
- package/dist/tools/knowledge/check.d.ts +166 -44
- package/dist/tools/knowledge/check.js +5 -3
- package/dist/tools/knowledge/client.d.ts +31 -62
- package/dist/tools/knowledge/client.js +44 -27
- package/dist/tools/knowledge/environment.d.ts +6 -6
- package/dist/tools/knowledge/environment.js +18 -7
- package/dist/tools/knowledge/index.d.ts +2 -2
- package/dist/tools/knowledge/index.js +9 -9
- package/dist/tools/knowledge/local-slots.d.ts +4 -4
- package/dist/tools/knowledge/local-slots.js +11 -4
- package/dist/tools/knowledge/pin.d.ts +2 -2
- package/dist/tools/knowledge/recommend.d.ts +20 -45
- package/dist/tools/knowledge/recommend.js +27 -19
- package/dist/tools/knowledge/situation.d.ts +40 -40
- package/dist/tools/knowledge/situation.js +2 -9
- package/dist/tools/knowledge/skeleton.d.ts +4 -4
- package/dist/tools/knowledge/skeleton.js +10 -11
- package/dist/tools/knowledge/template.d.ts +20 -18
- package/dist/tools/knowledge/template.js +38 -32
- package/dist/tools/lib/alphafold-client.js +2 -1
- package/dist/tools/lib/amass-client.d.ts +28 -28
- package/dist/tools/lib/amass-client.js +20 -10
- package/dist/tools/lib/api-utils.d.ts +13 -3
- package/dist/tools/lib/api-utils.js +17 -3
- package/dist/tools/lib/bgee-client.d.ts +6 -6
- package/dist/tools/lib/bgee-client.js +16 -10
- package/dist/tools/lib/cbioportal-client.d.ts +4 -4
- package/dist/tools/lib/cbioportal-client.js +9 -8
- package/dist/tools/lib/chembl-client.d.ts +14 -14
- package/dist/tools/lib/chembl-client.js +11 -4
- package/dist/tools/lib/clinical-benchmarks-client.d.ts +4 -4
- package/dist/tools/lib/clinical-benchmarks-client.js +4 -7
- package/dist/tools/lib/clinical-trials-client.d.ts +18 -18
- package/dist/tools/lib/clinical-trials-client.js +10 -10
- package/dist/tools/lib/clinvar-client.d.ts +2 -2
- package/dist/tools/lib/clinvar-client.js +6 -6
- package/dist/tools/lib/ctx-ops.d.ts +23 -23
- package/dist/tools/lib/ctx-ops.js +13 -10
- package/dist/tools/lib/dgidb-client.d.ts +6 -6
- package/dist/tools/lib/dgidb-client.js +10 -12
- package/dist/tools/lib/disgenet-client.d.ts +4 -4
- package/dist/tools/lib/ema-client.d.ts +2 -2
- package/dist/tools/lib/ensembl-client.d.ts +4 -4
- package/dist/tools/lib/ensembl-client.js +5 -4
- package/dist/tools/lib/gwas-catalog-client.d.ts +4 -4
- package/dist/tools/lib/gwas-catalog-client.js +17 -17
- package/dist/tools/lib/html-text.d.ts +6 -0
- package/dist/tools/lib/html-text.js +9 -0
- package/dist/tools/lib/identifier-resolver.d.ts +4 -4
- package/dist/tools/lib/identifier-resolver.js +7 -3
- package/dist/tools/lib/impc-client.d.ts +8 -8
- package/dist/tools/lib/impc-client.js +46 -35
- package/dist/tools/lib/iuphar-client.d.ts +2 -2
- package/dist/tools/lib/iuphar-client.js +7 -16
- package/dist/tools/lib/monarch-client.d.ts +4 -4
- package/dist/tools/lib/openfda-client.d.ts +22 -22
- package/dist/tools/lib/openfda-client.js +23 -22
- package/dist/tools/lib/opentargets-client.d.ts +12 -12
- package/dist/tools/lib/pathway-client.d.ts +4 -4
- package/dist/tools/lib/pathway-client.js +15 -19
- package/dist/tools/lib/pharmgkb-client.d.ts +2 -2
- package/dist/tools/lib/pharmgkb-client.js +1 -1
- package/dist/tools/lib/protein-family-modality.d.ts +2 -2
- package/dist/tools/lib/protein-family-modality.js +0 -2
- package/dist/tools/lib/protein-family-normalize.js +7 -0
- package/dist/tools/lib/pubchem-client.d.ts +2 -2
- package/dist/tools/lib/pubchem-client.js +1 -0
- package/dist/tools/lib/pubchem-ops.d.ts +4 -4
- package/dist/tools/lib/pubchem-ops.js +8 -0
- package/dist/tools/lib/pubmed-client.d.ts +9 -9
- package/dist/tools/lib/pubmed-client.js +1 -1
- package/dist/tools/lib/string-client.d.ts +6 -6
- package/dist/tools/lib/uniprot-client.d.ts +8 -8
- package/dist/tools/lib/uniprot-client.js +5 -1
- package/dist/tools/memory/update-working-memory.d.ts +16 -13
- package/dist/tools/memory/update-working-memory.js +21 -3
- package/dist/tools/read-tool-output.js +8 -2
- package/dist/tools/registry.d.ts +2 -2
- package/dist/tools/report-authoring/authoring-tools.d.ts +54 -23
- package/dist/tools/report-authoring/authoring-tools.js +128 -62
- package/dist/tools/report-session/derive-table.d.ts +19 -59
- package/dist/tools/report-session/derive-table.js +120 -122
- package/dist/tools/report-session/examine-page.d.ts +6 -6
- package/dist/tools/report-session/examine-page.js +14 -12
- package/dist/tools/report-session/list-artifacts.d.ts +6 -6
- package/dist/tools/report-session/list-artifacts.js +5 -5
- package/dist/tools/report-session/page-faults.d.ts +6 -6
- package/dist/tools/report-session/page-faults.js +3 -1
- package/dist/tools/report-session/preview-report.d.ts +4 -3
- package/dist/tools/report-session/preview-report.js +26 -7
- package/dist/tools/report-session/record-version.d.ts +9 -4
- package/dist/tools/report-session/record-version.js +16 -9
- package/dist/tools/report-session/session-page-publisher.d.ts +6 -6
- package/dist/tools/research/generate-analogy-report.d.ts +14 -7
- package/dist/tools/research/generate-analogy-report.js +80 -76
- package/dist/tools/research/generate-plan.d.ts +16 -16
- package/dist/tools/research/generate-plan.js +410 -374
- package/dist/tools/research/guarded-address.js +3 -2
- package/dist/tools/research/inspect-data-profile.d.ts +27 -20
- package/dist/tools/research/inspect-data-profile.js +26 -25
- package/dist/tools/research/inspect-run.d.ts +54 -27
- package/dist/tools/research/inspect-run.js +50 -40
- package/dist/tools/research/literature-reviewer.d.ts +8 -7
- package/dist/tools/research/literature-reviewer.js +29 -28
- package/dist/tools/research/search-arxiv.d.ts +1 -1
- package/dist/tools/research/search-arxiv.js +1 -1
- package/dist/tools/research/search-github-repos.d.ts +10 -7
- package/dist/tools/research/search-github-repos.js +25 -22
- package/dist/tools/research/search-semantic-scholar.js +1 -1
- package/dist/tools/research/searxng-engine.d.ts +2 -2
- package/dist/tools/research/searxng-engine.js +6 -4
- package/dist/tools/research/web-fetch.d.ts +24 -21
- package/dist/tools/research/web-fetch.js +65 -74
- package/dist/tools/research/web-search.d.ts +26 -17
- package/dist/tools/research/web-search.js +26 -21
- package/dist/tools/sandbox/link-packages.d.ts +11 -7
- package/dist/tools/sandbox/link-packages.js +11 -8
- package/dist/tools/sandbox/list-available-packages.d.ts +17 -8
- package/dist/tools/sandbox/list-available-packages.js +31 -25
- package/dist/tools/sandbox/list-available-refs.d.ts +17 -14
- package/dist/tools/sandbox/list-available-refs.js +61 -36
- package/dist/tools/sandbox/report-blocker.d.ts +30 -37
- package/dist/tools/sandbox/report-blocker.js +23 -73
- package/dist/tools/sandbox/skills.d.ts +16 -12
- package/dist/tools/sandbox/skills.js +16 -12
- package/dist/tools/sandbox/submit-file-metadata.d.ts +12 -9
- package/dist/tools/sandbox/submit-file-metadata.js +18 -21
- package/dist/tools/start-report-session.d.ts +13 -5
- package/dist/tools/start-report-session.js +35 -8
- package/dist/tools/terminal-text.d.ts +5 -2
- package/dist/tools/terminal-text.js +35 -3
- package/dist/tools/workspace/decision-record.d.ts +4 -4
- package/dist/tools/workspace/decision-record.js +23 -13
- package/dist/tools/workspace/edit-file.d.ts +59 -20
- package/dist/tools/workspace/edit-file.js +81 -16
- package/dist/tools/workspace/execute-command.d.ts +15 -13
- package/dist/tools/workspace/execute-command.js +11 -9
- package/dist/tools/workspace/file-stat.d.ts +6 -3
- package/dist/tools/workspace/grep.d.ts +10 -7
- package/dist/tools/workspace/grep.js +9 -3
- package/dist/tools/workspace/list-files.d.ts +6 -3
- package/dist/tools/workspace/mutator.d.ts +28 -15
- package/dist/tools/workspace/mutator.js +107 -53
- package/dist/tools/workspace/read-file.d.ts +8 -5
- package/dist/tools/workspace/result-bounds.d.ts +5 -5
- package/dist/tools/workspace/result-bounds.js +4 -2
- package/dist/tools/workspace/run-exec.d.ts +2 -2
- package/dist/tools/workspace/run-exec.js +3 -3
- package/dist/tools/workspace/scan-inputs.d.ts +8 -5
- package/dist/tools/workspace/scan-inputs.js +17 -5
- package/dist/tools/workspace/show-file.d.ts +1 -1
- package/dist/tools/workspace/show-file.js +2 -1
- package/dist/tools/workspace/show-plan.d.ts +8 -5
- package/dist/tools/workspace/show-plan.js +9 -8
- package/dist/tools/workspace/workspace-search.d.ts +41 -13
- package/dist/tools/workspace/workspace-search.js +27 -14
- package/dist/tools/workspace/write-file.d.ts +9 -7
- package/dist/workflows/execute-analysis-scheduler.d.ts +9 -9
- package/dist/workflows/execute-analysis-scheduler.js +6 -3
- package/dist/workflows/execute-analysis.d.ts +46 -62
- package/dist/workflows/execute-analysis.js +137 -219
- package/dist/workflows/pause.d.ts +71 -0
- package/dist/workflows/pause.js +173 -0
- package/dist/workflows/sandbox-step.d.ts +38 -61
- package/dist/workflows/sandbox-step.js +99 -106
- package/dist/workflows/test/sql-writes.d.ts +21 -0
- package/dist/workflows/test/sql-writes.js +36 -0
- package/dist/workspace/filesystem.d.ts +6 -6
- package/dist/workspace/filesystem.js +10 -8
- package/dist/workspace/paths.d.ts +1 -1
- package/dist/workspace/paths.js +15 -4
- package/dist/workspace/search-config.d.ts +2 -2
- package/dist/workspace/search-config.js +1 -1
- package/package.json +21 -22
- package/dist/loop/call-guard.d.ts +0 -50
- package/dist/loop/call-guard.js +0 -90
- package/dist/loop/continue-agent.d.ts +0 -40
- package/dist/loop/continue-agent.js +0 -38
- package/dist/loop/genai-spans.d.ts +0 -47
- package/dist/loop/genai-spans.js +0 -134
- package/dist/loop/run-agent.d.ts +0 -245
- package/dist/loop/run-agent.js +0 -1124
- package/dist/loop/run-step.d.ts +0 -29
- package/dist/loop/run-step.js +0 -34
- package/dist/loop/run-to-terminal.d.ts +0 -66
- package/dist/loop/run-to-terminal.js +0 -93
- package/dist/loop/tool-mask.d.ts +0 -23
- package/dist/loop/tool-mask.js +0 -46
- package/dist/providers/streaming-chat.d.ts +0 -32
- package/dist/providers/streaming-chat.js +0 -91
- package/dist/tasks/derive-table-exec.d.ts +0 -54
- package/dist/tasks/derive-table-exec.js +0 -86
- package/dist/workflows/suspension.d.ts +0 -32
- package/dist/workflows/suspension.js +0 -38
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* Approval: data-ask (a tool's pending user-approval prompt),
|
|
9
9
|
* data-plan-approval (the record of an approved plan)
|
|
10
10
|
* Compaction: data-compaction (a compaction of the conversation thread)
|
|
11
|
+
* Model retry: data-model-retry (a retry of a model request inside the retry envelope of the provider)
|
|
11
12
|
* Run lifecycle: run-started, dag-state, run-completed, run-failed, run-synthesis,
|
|
12
13
|
* synthesis-progress
|
|
13
14
|
* Per-step live: step-activity, step-file-tree
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
*/
|
|
17
18
|
import type { ToolCallOutcome } from "./chat-events.js";
|
|
18
19
|
import type { TokenUsageRollup } from "./usage.js";
|
|
19
|
-
export
|
|
20
|
+
export type PlanStep = {
|
|
20
21
|
id: string;
|
|
21
22
|
name: string;
|
|
22
23
|
agent: string;
|
|
@@ -35,7 +36,7 @@ export interface PlanStep {
|
|
|
35
36
|
acceptance_criteria?: string[];
|
|
36
37
|
constraints?: string[];
|
|
37
38
|
caveats?: string[];
|
|
38
|
-
}
|
|
39
|
+
};
|
|
39
40
|
export type PresentationContent =
|
|
40
41
|
/** `dataPath` (optional): an analysis-rooted CSV artifact path the host loads and injects as the
|
|
41
42
|
* chart's `dataset.source` at render time — the data never rides through the context window. */
|
|
@@ -71,13 +72,13 @@ export type PresentationContent =
|
|
|
71
72
|
accession: string;
|
|
72
73
|
version: number;
|
|
73
74
|
};
|
|
74
|
-
export
|
|
75
|
+
export type PresentationPart = {
|
|
75
76
|
type: "data-presentation";
|
|
76
77
|
id: string;
|
|
77
78
|
title?: string;
|
|
78
79
|
content: PresentationContent;
|
|
79
|
-
}
|
|
80
|
-
export
|
|
80
|
+
};
|
|
81
|
+
export type PlanPart = {
|
|
81
82
|
type: "data-plan";
|
|
82
83
|
id: string;
|
|
83
84
|
planId: string;
|
|
@@ -88,40 +89,40 @@ export interface PlanPart {
|
|
|
88
89
|
analytical_narrative?: string;
|
|
89
90
|
omicsType?: string;
|
|
90
91
|
omicsSubtype?: string;
|
|
91
|
-
}
|
|
92
|
-
export
|
|
92
|
+
};
|
|
93
|
+
export type RunCardPart = {
|
|
93
94
|
type: "data-run-card";
|
|
94
95
|
id: string;
|
|
95
96
|
runId: string;
|
|
96
97
|
planId: string;
|
|
97
98
|
title: string;
|
|
98
99
|
stepCount: number;
|
|
99
|
-
}
|
|
100
|
-
export
|
|
100
|
+
};
|
|
101
|
+
export type PlanApprovalPart = {
|
|
101
102
|
type: "data-plan-approval";
|
|
102
103
|
planId: string;
|
|
103
104
|
/** The run that the approval started. */
|
|
104
105
|
runId: string;
|
|
105
106
|
/** ISO 8601. The instant of the approval, equal to the time of the `approve-plan` provenance event. */
|
|
106
107
|
approvedAt: string;
|
|
107
|
-
}
|
|
108
|
-
export
|
|
108
|
+
};
|
|
109
|
+
export type FileReferenceEntry = {
|
|
109
110
|
path: string;
|
|
110
111
|
runId?: string;
|
|
111
112
|
caption?: string;
|
|
112
|
-
}
|
|
113
|
-
export
|
|
113
|
+
};
|
|
114
|
+
export type FileReferencePart = {
|
|
114
115
|
type: "data-file-reference";
|
|
115
116
|
id: string;
|
|
116
117
|
title?: string;
|
|
117
118
|
files: FileReferenceEntry[];
|
|
118
|
-
}
|
|
119
|
+
};
|
|
119
120
|
/**
|
|
120
121
|
* A tool's pending request for an explicit user decision. Re-emitted under the
|
|
121
122
|
* same `id` when the ask reaches a terminal status, so reconciling readers fold
|
|
122
123
|
* pending → outcome latest-wins.
|
|
123
124
|
*/
|
|
124
|
-
export
|
|
125
|
+
export type AskPart = {
|
|
125
126
|
type: "data-ask";
|
|
126
127
|
/** The ask's ledger uuidv7 id — what a surface passes back to `answer`. */
|
|
127
128
|
id: string;
|
|
@@ -134,19 +135,19 @@ export interface AskPart {
|
|
|
134
135
|
status: "pending" | "resolved" | "rejected" | "aborted" | "expired";
|
|
135
136
|
/** The kind of the ledger reply. Only a `resolved` or `rejected` part carries it, and never the rejection feedback. */
|
|
136
137
|
reply?: "once" | "always" | "reject";
|
|
137
|
-
}
|
|
138
|
-
export
|
|
138
|
+
};
|
|
139
|
+
export type RunStartedPart = {
|
|
139
140
|
type: "data-run-started";
|
|
140
141
|
runId: string;
|
|
141
142
|
planSummary: string;
|
|
142
143
|
stepCount: number;
|
|
143
|
-
}
|
|
144
|
+
};
|
|
144
145
|
/** `"pending"` = waiting on dependencies; `"queued"` = dependencies satisfied,
|
|
145
146
|
* held until in-flight steps free machine-budget capacity; `"skipped"` =
|
|
146
147
|
* unreachable — an upstream dependency failed or blocked, so the step can
|
|
147
148
|
* never be dispatched. */
|
|
148
149
|
export type StepStatus = "pending" | "queued" | "running" | "completed" | "failed" | "skipped";
|
|
149
|
-
export
|
|
150
|
+
export type DagStepState = {
|
|
150
151
|
id: string;
|
|
151
152
|
name: string;
|
|
152
153
|
agent: string;
|
|
@@ -166,16 +167,16 @@ export interface DagStepState {
|
|
|
166
167
|
summary?: string;
|
|
167
168
|
/** Error message (set on failure). */
|
|
168
169
|
error?: string;
|
|
169
|
-
}
|
|
170
|
+
};
|
|
170
171
|
/** One step of the stored plan graph: the fields of {@link DagStepState} that the plan alone fixes. */
|
|
171
172
|
export type PlanGraphStep = Pick<DagStepState, "id" | "name" | "agent" | "dependsOn" | "level">;
|
|
172
|
-
export
|
|
173
|
+
export type DagStatePart = {
|
|
173
174
|
type: "data-dag-state";
|
|
174
175
|
/** Stable ID for reconciliation — same across all updates for a run. */
|
|
175
176
|
id: string;
|
|
176
177
|
runId: string;
|
|
177
178
|
steps: DagStepState[];
|
|
178
|
-
}
|
|
179
|
+
};
|
|
179
180
|
export type StepPhase = "sandbox-init" | "executing" | "generating-metadata" | "generating-summary" | "indexing"
|
|
180
181
|
/** Step bytes are uploading to the artifact store inline (per-step sync). */
|
|
181
182
|
| "persisting" | "complete" | "failed"
|
|
@@ -183,7 +184,7 @@ export type StepPhase = "sandbox-init" | "executing" | "generating-metadata" | "
|
|
|
183
184
|
| "retrying"
|
|
184
185
|
/** Non-fatal warning emitted during step execution (e.g., maxSteps hit). */
|
|
185
186
|
| "warning";
|
|
186
|
-
export
|
|
187
|
+
export type StepActivityPart = {
|
|
187
188
|
type: "data-step-activity";
|
|
188
189
|
/** Stable ID for reconciliation — unique per step within a run. */
|
|
189
190
|
id: string;
|
|
@@ -195,12 +196,12 @@ export interface StepActivityPart {
|
|
|
195
196
|
activity: string;
|
|
196
197
|
/** ISO 8601 time of the emission. Absent on a part that an older harness wrote. */
|
|
197
198
|
at?: string;
|
|
198
|
-
}
|
|
199
|
+
};
|
|
199
200
|
/**
|
|
200
201
|
* One activity emission of a step or a data profile, kept in the run stream with no reconciliation. The fold
|
|
201
202
|
* delivers each entry in write order.
|
|
202
203
|
*/
|
|
203
|
-
export
|
|
204
|
+
export type ActivityEntryPart = {
|
|
204
205
|
type: "data-activity-entry";
|
|
205
206
|
/** Unique per emission within a stream. */
|
|
206
207
|
id: string;
|
|
@@ -211,13 +212,13 @@ export interface ActivityEntryPart {
|
|
|
211
212
|
activity: string;
|
|
212
213
|
/** ISO 8601 time of the emission. */
|
|
213
214
|
at: string;
|
|
214
|
-
}
|
|
215
|
-
export
|
|
215
|
+
};
|
|
216
|
+
export type FileTreeEntry = {
|
|
216
217
|
path: string;
|
|
217
218
|
size?: number;
|
|
218
219
|
type: "file" | "directory";
|
|
219
|
-
}
|
|
220
|
-
export
|
|
220
|
+
};
|
|
221
|
+
export type StepFileTreePart = {
|
|
221
222
|
type: "data-step-file-tree";
|
|
222
223
|
/** Stable ID for reconciliation — unique per step within a run. */
|
|
223
224
|
id: string;
|
|
@@ -225,16 +226,16 @@ export interface StepFileTreePart {
|
|
|
225
226
|
stepId: string;
|
|
226
227
|
/** Current file tree snapshot. May be empty if sandbox hasn't written to disk yet. */
|
|
227
228
|
files: FileTreeEntry[];
|
|
228
|
-
}
|
|
229
|
-
export
|
|
229
|
+
};
|
|
230
|
+
export type StepOutputFile = {
|
|
230
231
|
path: string;
|
|
231
232
|
size: number;
|
|
232
233
|
/** File category for grouping/icons. */
|
|
233
234
|
fileType: "script" | "output" | "figure" | "log" | "notebook" | "summary";
|
|
234
235
|
/** LLM-generated description of the file contents. */
|
|
235
236
|
description: string;
|
|
236
|
-
}
|
|
237
|
-
export
|
|
237
|
+
};
|
|
238
|
+
export type StepOutputPart = {
|
|
238
239
|
type: "data-step-output";
|
|
239
240
|
id: string;
|
|
240
241
|
runId: string;
|
|
@@ -247,9 +248,9 @@ export interface StepOutputPart {
|
|
|
247
248
|
finishReason?: string;
|
|
248
249
|
/** True when the agent exhausted its maxSteps turn budget. */
|
|
249
250
|
hitMaxSteps?: boolean;
|
|
250
|
-
}
|
|
251
|
+
};
|
|
251
252
|
/** Step summary — free-form markdown body, rendered verbatim by the UI. */
|
|
252
|
-
export
|
|
253
|
+
export type StepSummaryPart = {
|
|
253
254
|
type: "data-step-summary";
|
|
254
255
|
id: string;
|
|
255
256
|
runId: string;
|
|
@@ -257,7 +258,7 @@ export interface StepSummaryPart {
|
|
|
257
258
|
agentId: string;
|
|
258
259
|
/** Free-form markdown body. Render with a markdown renderer. */
|
|
259
260
|
markdown: string;
|
|
260
|
-
}
|
|
261
|
+
};
|
|
261
262
|
/**
|
|
262
263
|
* What one analysis-run step's agent loop reported spending, emitted when that
|
|
263
264
|
* loop completes.
|
|
@@ -270,7 +271,7 @@ export interface StepSummaryPart {
|
|
|
270
271
|
* Scoped to analysis runs. Workflows without step parts (ephemeral runs, data
|
|
271
272
|
* profiling) reach the ledger through the recorder seam and carry no usage part.
|
|
272
273
|
*/
|
|
273
|
-
export
|
|
274
|
+
export type StepUsagePart = {
|
|
274
275
|
type: "data-step-usage";
|
|
275
276
|
/** Stable ID for reconciliation — unique per step within a run. */
|
|
276
277
|
id: string;
|
|
@@ -286,13 +287,13 @@ export interface StepUsagePart {
|
|
|
286
287
|
modelId: string;
|
|
287
288
|
/** Summed token usage across this step loop's LLM calls. */
|
|
288
289
|
usage: TokenUsageRollup;
|
|
289
|
-
}
|
|
290
|
+
};
|
|
290
291
|
/**
|
|
291
292
|
* Emitted when a step agent declares it cannot fulfil its step via
|
|
292
293
|
* `report_blocker` (see the harness-sandbox-agents spec). A blocked step has no deliverables; the
|
|
293
294
|
* reason surfaces in the run side panel.
|
|
294
295
|
*/
|
|
295
|
-
export
|
|
296
|
+
export type StepBlockedPart = {
|
|
296
297
|
type: "data-step-blocked";
|
|
297
298
|
id: string;
|
|
298
299
|
runId: string;
|
|
@@ -300,12 +301,12 @@ export interface StepBlockedPart {
|
|
|
300
301
|
agentId: string;
|
|
301
302
|
/** Agent-declared reason the step could not be fulfilled. */
|
|
302
303
|
reason: string;
|
|
303
|
-
}
|
|
304
|
-
export
|
|
304
|
+
};
|
|
305
|
+
export type RunCompletedFinding = {
|
|
305
306
|
title: string;
|
|
306
307
|
confidence: "high" | "medium" | "low";
|
|
307
|
-
}
|
|
308
|
-
export
|
|
308
|
+
};
|
|
309
|
+
export type RunCompletedPart = {
|
|
309
310
|
type: "data-run-completed";
|
|
310
311
|
runId: string;
|
|
311
312
|
status: "completed" | "partial";
|
|
@@ -324,14 +325,14 @@ export interface RunCompletedPart {
|
|
|
324
325
|
* Absent when no step reported any, never an all-zero figure.
|
|
325
326
|
*/
|
|
326
327
|
usage?: TokenUsageRollup;
|
|
327
|
-
}
|
|
328
|
-
export
|
|
328
|
+
};
|
|
329
|
+
export type FindingReference = {
|
|
329
330
|
pmid: string;
|
|
330
331
|
citation: string;
|
|
331
332
|
relevance: string;
|
|
332
333
|
concordance: "supports" | "contradicts" | "extends" | "contextualizes";
|
|
333
|
-
}
|
|
334
|
-
export
|
|
334
|
+
};
|
|
335
|
+
export type SynthesizedFinding = {
|
|
335
336
|
stepId: string;
|
|
336
337
|
title: string;
|
|
337
338
|
description: string;
|
|
@@ -339,16 +340,16 @@ export interface SynthesizedFinding {
|
|
|
339
340
|
noveltyStatus: "novel" | "confirmed" | "partially_confirmed" | "contradicted" | "expected";
|
|
340
341
|
literatureInterpretation: string;
|
|
341
342
|
references: FindingReference[];
|
|
342
|
-
}
|
|
343
|
-
export
|
|
343
|
+
};
|
|
344
|
+
export type BiologicalTheme = {
|
|
344
345
|
name: string;
|
|
345
346
|
findings: {
|
|
346
347
|
stepId: string;
|
|
347
348
|
title: string;
|
|
348
349
|
}[];
|
|
349
350
|
narrative: string;
|
|
350
|
-
}
|
|
351
|
-
export
|
|
351
|
+
};
|
|
352
|
+
export type RunSynthesisPart = {
|
|
352
353
|
type: "data-run-synthesis";
|
|
353
354
|
id: string;
|
|
354
355
|
runId: string;
|
|
@@ -362,7 +363,7 @@ export interface RunSynthesisPart {
|
|
|
362
363
|
citation: string;
|
|
363
364
|
description: string;
|
|
364
365
|
}[];
|
|
365
|
-
}
|
|
366
|
+
};
|
|
366
367
|
export type SynthesisPhase = "starting" | "researching" | "drafting" | "validating" | "refining" | "indexing" | "persisting" | "complete"
|
|
367
368
|
/**
|
|
368
369
|
* Synthesizer chose to skip (e.g., technical-only run, summaries with no
|
|
@@ -370,7 +371,7 @@ export type SynthesisPhase = "starting" | "researching" | "drafting" | "validati
|
|
|
370
371
|
* intentional outcome, not a breakage.
|
|
371
372
|
*/
|
|
372
373
|
| "skipped" | "failed";
|
|
373
|
-
export
|
|
374
|
+
export type SynthesisProgressPart = {
|
|
374
375
|
type: "data-synthesis-progress";
|
|
375
376
|
/** Stable ID for reconciliation — `synthesis-progress-{runId}`. */
|
|
376
377
|
id: string;
|
|
@@ -386,8 +387,8 @@ export interface SynthesisProgressPart {
|
|
|
386
387
|
reason?: string;
|
|
387
388
|
/** Error message — set when phase === "failed". */
|
|
388
389
|
error?: string;
|
|
389
|
-
}
|
|
390
|
-
export
|
|
390
|
+
};
|
|
391
|
+
export type RunFailedPart = {
|
|
391
392
|
type: "data-run-failed";
|
|
392
393
|
runId: string;
|
|
393
394
|
/** Scrubbed error message (no internal details). */
|
|
@@ -397,7 +398,7 @@ export interface RunFailedPart {
|
|
|
397
398
|
* `canceled` when an external cancel ended the run. Absent for a failure.
|
|
398
399
|
*/
|
|
399
400
|
reason?: string;
|
|
400
|
-
}
|
|
401
|
+
};
|
|
401
402
|
/**
|
|
402
403
|
* The record that a turn started a child session. It rides the chat stream
|
|
403
404
|
* live, and it persists into the turn at the position of the spawn.
|
|
@@ -407,7 +408,7 @@ export interface RunFailedPart {
|
|
|
407
408
|
* archived state. When the thread of the part is archived or absent, a
|
|
408
409
|
* consumer renders nothing for it.
|
|
409
410
|
*/
|
|
410
|
-
export
|
|
411
|
+
export type ChildSessionStartedPart = {
|
|
411
412
|
type: "data-child-session-started";
|
|
412
413
|
/** The id of the child thread that the spawn made. */
|
|
413
414
|
threadId: string;
|
|
@@ -418,7 +419,7 @@ export interface ChildSessionStartedPart {
|
|
|
418
419
|
* Known values today: `"report"`.
|
|
419
420
|
*/
|
|
420
421
|
threadType: string;
|
|
421
|
-
}
|
|
422
|
+
};
|
|
422
423
|
/**
|
|
423
424
|
* The record that a report-session preview rendered the page. It rides the
|
|
424
425
|
* chat stream live, and it persists into the turn at the position of the
|
|
@@ -429,7 +430,7 @@ export interface ChildSessionStartedPart {
|
|
|
429
430
|
* the part carries no path, no format, and no URL. A consumer that wants the
|
|
430
431
|
* page reads those surfaces.
|
|
431
432
|
*/
|
|
432
|
-
export
|
|
433
|
+
export type ReportRenderedPart = {
|
|
433
434
|
type: "data-report-rendered";
|
|
434
435
|
/** Unique per emission. */
|
|
435
436
|
id: string;
|
|
@@ -437,9 +438,9 @@ export interface ReportRenderedPart {
|
|
|
437
438
|
renderedAt: string;
|
|
438
439
|
/** The title of the rendered document. */
|
|
439
440
|
title?: string;
|
|
440
|
-
}
|
|
441
|
+
};
|
|
441
442
|
/** One compaction of the thread: `running`, then `done` or `failed` under the same id. A reload shows it as a divider. */
|
|
442
|
-
export
|
|
443
|
+
export type CompactionPart = {
|
|
443
444
|
type: "data-compaction";
|
|
444
445
|
id: string;
|
|
445
446
|
status: "running" | "done" | "failed";
|
|
@@ -450,9 +451,9 @@ export interface CompactionPart {
|
|
|
450
451
|
durationMs?: number;
|
|
451
452
|
/** Before the user message of a turn, or before a later request. */
|
|
452
453
|
trigger?: "turn-start" | "mid-turn";
|
|
453
|
-
}
|
|
454
|
+
};
|
|
454
455
|
/** One tool call of a sub-agent. It holds no input, no output, and no text of the sub-agent. */
|
|
455
|
-
export
|
|
456
|
+
export type SubAgentActivityEntry = {
|
|
456
457
|
agentId: string;
|
|
457
458
|
callPath: string[];
|
|
458
459
|
tool: string;
|
|
@@ -464,12 +465,12 @@ export interface SubAgentActivityEntry {
|
|
|
464
465
|
endedAt?: string;
|
|
465
466
|
/** Absent while the call is in flight. A stored entry always has it. */
|
|
466
467
|
outcome?: ToolCallOutcome;
|
|
467
|
-
}
|
|
468
|
+
};
|
|
468
469
|
/**
|
|
469
470
|
* The tool calls of the sub-agents below one root tool call. Re-emitted under the same `id` after each change,
|
|
470
471
|
* so reconciling readers keep the latest list.
|
|
471
472
|
*/
|
|
472
|
-
export
|
|
473
|
+
export type SubAgentActivityPart = {
|
|
473
474
|
type: "data-subagent-activity";
|
|
474
475
|
id: string;
|
|
475
476
|
/** The id of the root tool call. */
|
|
@@ -477,5 +478,67 @@ export interface SubAgentActivityPart {
|
|
|
477
478
|
entries: SubAgentActivityEntry[];
|
|
478
479
|
/** The count of calls past the cap of the entries. */
|
|
479
480
|
dropped: number;
|
|
480
|
-
}
|
|
481
|
-
|
|
481
|
+
};
|
|
482
|
+
/**
|
|
483
|
+
* Why durable work waits: a provider outage that outlived its retries, a refusal of the host with its reason, or a
|
|
484
|
+
* credential that the endpoint refused or that the host did not give.
|
|
485
|
+
*/
|
|
486
|
+
export type PauseCause = {
|
|
487
|
+
readonly kind: "outage";
|
|
488
|
+
} | {
|
|
489
|
+
readonly kind: "credential";
|
|
490
|
+
} | {
|
|
491
|
+
readonly kind: "host";
|
|
492
|
+
readonly reason: string;
|
|
493
|
+
};
|
|
494
|
+
/**
|
|
495
|
+
* One retry of a model request inside the retry envelope of the provider, before the wait of that retry. Re-emitted
|
|
496
|
+
* under the same `id` for each retry of the request. A later frame of the same agent ends it: the request then gave
|
|
497
|
+
* a reply, or it failed after the last retry.
|
|
498
|
+
*/
|
|
499
|
+
export type ModelRetryPart = {
|
|
500
|
+
type: "data-model-retry";
|
|
501
|
+
/** The id of the model request. */
|
|
502
|
+
id: string;
|
|
503
|
+
/** The number of this retry, from 1. */
|
|
504
|
+
attempt: number;
|
|
505
|
+
/** The count of retries that the envelope makes before it gives up. */
|
|
506
|
+
maxRetries: number;
|
|
507
|
+
/** ISO 8601. The time of the next attempt. */
|
|
508
|
+
retryAt: string;
|
|
509
|
+
/** The HTTP status of the failed attempt. Absent for a failure with no status, for example a lost connection. */
|
|
510
|
+
status?: number;
|
|
511
|
+
};
|
|
512
|
+
/** The kind of a durable work, and of the work that a pause belongs to. A sub-agent belongs to its turn, and a sandbox step to its run. */
|
|
513
|
+
export type WorkKind = "turn" | "run" | "profile";
|
|
514
|
+
/**
|
|
515
|
+
* The state of one waiting workflow of paused work. Re-emitted under the same `id` when the wait ends, with the
|
|
516
|
+
* state `running`, so reconciling readers keep the latest state of each workflow.
|
|
517
|
+
*/
|
|
518
|
+
export type PausePart = {
|
|
519
|
+
type: "data-pause";
|
|
520
|
+
/** The id of the workflow that waits. */
|
|
521
|
+
id: string;
|
|
522
|
+
/** The id of the work: the turn, the run, or the profile workflow. A resume names it. */
|
|
523
|
+
workId: string;
|
|
524
|
+
workKind: WorkKind;
|
|
525
|
+
/** `retrying`: the system sends the request again at `retryAt`. `paused`: only a resume ends the wait. */
|
|
526
|
+
state: "retrying" | "paused" | "running";
|
|
527
|
+
/** Absent for the state `running`. */
|
|
528
|
+
cause?: PauseCause;
|
|
529
|
+
/** The count of timer retries before this wait. Absent for the state `running`. */
|
|
530
|
+
attempt?: number;
|
|
531
|
+
/** ISO 8601. Present for the state `retrying` only. */
|
|
532
|
+
retryAt?: string;
|
|
533
|
+
};
|
|
534
|
+
/** The parts whose contracts this version of the package declares — the arms the part registry knows. */
|
|
535
|
+
export type KnownChatPart = PresentationPart | PlanPart | RunCardPart | PlanApprovalPart | FileReferencePart | AskPart | RunStartedPart | DagStatePart | StepActivityPart | ActivityEntryPart | SubAgentActivityPart | StepFileTreePart | StepOutputPart | StepSummaryPart | StepUsagePart | StepBlockedPart | RunSynthesisPart | SynthesisProgressPart | RunCompletedPart | RunFailedPart | ChildSessionStartedPart | ReportRenderedPart | CompactionPart | PausePart | ModelRetryPart;
|
|
536
|
+
/**
|
|
537
|
+
* A part of a known contract, or a part whose type this build does not know. An emitter newer than this
|
|
538
|
+
* build can lead the registry, and such a part already rides through the check boundary and the live view
|
|
539
|
+
* as the record the emitter sent — so the union admits that record shape, with no change to the stored
|
|
540
|
+
* payload or to a known part.
|
|
541
|
+
*/
|
|
542
|
+
export type ChatPart = KnownChatPart | ({
|
|
543
|
+
type: `data-${string}`;
|
|
544
|
+
} & Record<string, unknown>);
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* Approval: data-ask (a tool's pending user-approval prompt),
|
|
9
9
|
* data-plan-approval (the record of an approved plan)
|
|
10
10
|
* Compaction: data-compaction (a compaction of the conversation thread)
|
|
11
|
+
* Model retry: data-model-retry (a retry of a model request inside the retry envelope of the provider)
|
|
11
12
|
* Run lifecycle: run-started, dag-state, run-completed, run-failed, run-synthesis,
|
|
12
13
|
* synthesis-progress
|
|
13
14
|
* Per-step live: step-activity, step-file-tree
|
|
@@ -50,8 +50,22 @@ export function reportSessionResourceId(analysisId, threadId) {
|
|
|
50
50
|
* @param token - Short-lived content token minted by the storage backend (required)
|
|
51
51
|
*/
|
|
52
52
|
export function buildReportSessionUrl(contentBaseUrl, analysisId, threadId, pagePath, token) {
|
|
53
|
-
const base = contentBaseUrl
|
|
54
|
-
const path = pagePath
|
|
53
|
+
const base = stripTrailingSlashes(contentBaseUrl);
|
|
54
|
+
const path = stripLeadingSlashes(pagePath);
|
|
55
55
|
const res = reportSessionResourceId(analysisId, threadId);
|
|
56
56
|
return `${base}/${res}/${path}?t=${encodeURIComponent(token)}`;
|
|
57
57
|
}
|
|
58
|
+
/** The text without its trailing slashes. */
|
|
59
|
+
function stripTrailingSlashes(value) {
|
|
60
|
+
let end = value.length;
|
|
61
|
+
while (end > 0 && value.charAt(end - 1) === "/")
|
|
62
|
+
end--;
|
|
63
|
+
return value.slice(0, end);
|
|
64
|
+
}
|
|
65
|
+
/** The text without its leading slashes. */
|
|
66
|
+
function stripLeadingSlashes(value) {
|
|
67
|
+
let start = 0;
|
|
68
|
+
while (start < value.length && value.charAt(start) === "/")
|
|
69
|
+
start++;
|
|
70
|
+
return value.slice(start);
|
|
71
|
+
}
|