@tangle-network/agent-app 0.45.53 → 0.45.55
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 +1 -1
- package/dist/alerting/index.d.ts +5 -175
- package/dist/alerting/slack.d.ts +176 -0
- package/dist/app-auth/index.d.ts +14 -17
- package/dist/assets/index.d.ts +2 -504
- package/dist/assets/schema.d.ts +264 -0
- package/dist/assets/types.d.ts +237 -0
- package/dist/assistant/AssistantDock.d.ts +56 -0
- package/dist/assistant/AssistantHistory.d.ts +41 -0
- package/dist/assistant/AssistantPanel.d.ts +84 -0
- package/dist/assistant/ProposalCard.d.ts +41 -0
- package/dist/assistant/ResizeHandle.d.ts +19 -0
- package/dist/assistant/client-context.d.ts +20 -0
- package/dist/assistant/client.d.ts +117 -0
- package/dist/assistant/index.d.ts +19 -848
- package/dist/assistant/launcher.d.ts +23 -0
- package/dist/assistant/persistence.d.ts +26 -0
- package/dist/assistant/presentation.d.ts +99 -0
- package/dist/assistant/provider-label.d.ts +7 -0
- package/dist/assistant/reducer.d.ts +130 -0
- package/dist/assistant/sse.d.ts +24 -0
- package/dist/assistant/time-ago.d.ts +6 -0
- package/dist/assistant/transcript.d.ts +97 -0
- package/dist/assistant/types.d.ts +291 -0
- package/dist/assistant/use-stick-to-bottom.d.ts +28 -0
- package/dist/assistant/useAssistantChat.d.ts +63 -0
- package/dist/assistant/useAssistantModels.d.ts +22 -0
- package/dist/assistant/useAssistantThreads.d.ts +47 -0
- package/dist/assistant/usePanelPrefs.d.ts +55 -0
- package/dist/billing/index.d.ts +19 -21
- package/dist/brand/index.d.ts +16 -10
- package/dist/brand-extraction/extract.d.ts +34 -0
- package/dist/brand-extraction/index.d.ts +12 -214
- package/dist/brand-extraction/map.d.ts +58 -0
- package/dist/brand-extraction/types.d.ts +119 -0
- package/dist/catalog/index.d.ts +11 -101
- package/dist/chat-react/composer-mode-controls.d.ts +14 -0
- package/dist/chat-react/entry-composer.d.ts +92 -0
- package/dist/chat-react/index.d.ts +22 -118
- package/dist/chat-react/types.d.ts +11 -0
- package/dist/chat-routes/attachment-store.d.ts +84 -0
- package/dist/chat-routes/attachment-upload.d.ts +84 -0
- package/dist/chat-routes/attachment-validation.d.ts +95 -0
- package/dist/chat-routes/binary-sniff.d.ts +45 -0
- package/dist/chat-routes/completed-sandbox-turn.d.ts +25 -0
- package/dist/chat-routes/detached-turn.d.ts +197 -0
- package/dist/chat-routes/dispatch-parts.d.ts +101 -0
- package/dist/chat-routes/draft-persistence.d.ts +189 -0
- package/dist/chat-routes/durable-projection.d.ts +18 -0
- package/dist/chat-routes/file-index.d.ts +115 -0
- package/dist/chat-routes/index.d.ts +25 -1840
- package/dist/chat-routes/model-failover-stream.d.ts +206 -0
- package/dist/chat-routes/promote-file-part.d.ts +84 -0
- package/dist/chat-routes/resolve-attachments.d.ts +72 -0
- package/dist/chat-routes/sandbox-producer.d.ts +146 -0
- package/dist/chat-routes/sandbox-turn-usage.d.ts +4 -0
- package/dist/{stale-turn-lock-DucQzvXu.d.ts → chat-routes/stale-turn-lock.d.ts} +7 -9
- package/dist/chat-routes/turn-routes.d.ts +540 -0
- package/dist/chat-routes/upload.d.ts +84 -0
- package/dist/{wire-DOZ-O6hD.d.ts → chat-routes/wire.d.ts} +41 -44
- package/dist/chat-store/core.d.ts +19 -0
- package/dist/chat-store/index.d.ts +22 -322
- package/dist/{parts-BqIHMdyu.d.ts → chat-store/parts.d.ts} +49 -47
- package/dist/chat-store/schema.d.ts +157 -0
- package/dist/chat-store/store.d.ts +177 -0
- package/dist/config/index.d.ts +13 -18
- package/dist/crypto/index.d.ts +10 -12
- package/dist/crypto/web-token.d.ts +22 -0
- package/dist/design-canvas/apply.d.ts +70 -0
- package/dist/design-canvas/drizzle-store.d.ts +29 -0
- package/dist/design-canvas/drizzle.d.ts +7 -575
- package/dist/{export-presets-mgVulRaV.d.ts → design-canvas/export-presets.d.ts} +18 -22
- package/dist/design-canvas/index.d.ts +22 -268
- package/dist/design-canvas/mcp-entry.d.ts +15 -0
- package/dist/design-canvas/mcp-handler.d.ts +34 -0
- package/dist/design-canvas/mcp-tools.d.ts +30 -0
- package/dist/{model-DnfO_PdJ.d.ts → design-canvas/model.d.ts} +33 -35
- package/dist/{operations-ByJ6yXOW.d.ts → design-canvas/operations.d.ts} +21 -25
- package/dist/design-canvas/schema.d.ts +558 -0
- package/dist/{store-CqfDtnPQ.d.ts → design-canvas/store.d.ts} +8 -12
- package/dist/design-canvas/templates.d.ts +72 -0
- package/dist/design-canvas/validate.d.ts +32 -0
- package/dist/design-canvas-react/components/BleedTrimOverlay.d.ts +22 -0
- package/dist/design-canvas-react/components/BrandKnot.d.ts +11 -0
- package/dist/design-canvas-react/components/CanvasEmptyState.d.ts +32 -0
- package/dist/design-canvas-react/components/CanvasInsertPanel.d.ts +53 -0
- package/dist/{lazy-DrkVyDpe.d.ts → design-canvas-react/components/DesignCanvas.d.ts} +27 -20
- package/dist/design-canvas-react/components/DesignCanvasEditor.d.ts +23 -0
- package/dist/design-canvas-react/components/ElementNode.d.ts +51 -0
- package/dist/design-canvas-react/components/ExportControl.d.ts +21 -0
- package/dist/design-canvas-react/components/GridLayer.d.ts +47 -0
- package/dist/design-canvas-react/components/InlineTextEditor.d.ts +25 -0
- package/dist/design-canvas-react/components/LayersPanel.d.ts +20 -0
- package/dist/design-canvas-react/components/PagesStrip.d.ts +34 -0
- package/dist/design-canvas-react/components/Rulers.d.ts +31 -0
- package/dist/design-canvas-react/components/SelectionLayer.d.ts +51 -0
- package/dist/design-canvas-react/components/SnapGuidesOverlay.d.ts +25 -0
- package/dist/design-canvas-react/components/Toolbar.d.ts +64 -0
- package/dist/design-canvas-react/components/Workspace.d.ts +92 -0
- package/dist/design-canvas-react/components/ZoomControls.d.ts +14 -0
- package/dist/design-canvas-react/components/glyphs.d.ts +46 -0
- package/dist/design-canvas-react/components/icon-button.d.ts +22 -0
- package/dist/design-canvas-react/components/index.d.ts +27 -0
- package/dist/design-canvas-react/components/layer-tree.d.ts +34 -0
- package/dist/design-canvas-react/components/ruler-math.d.ts +78 -0
- package/dist/design-canvas-react/components/transform-math.d.ts +168 -0
- package/dist/{command-stack-TNPWJCzW.d.ts → design-canvas-react/contracts.d.ts} +16 -63
- package/dist/design-canvas-react/engine/command-stack.d.ts +43 -0
- package/dist/design-canvas-react/engine/commands.d.ts +154 -0
- package/dist/design-canvas-react/engine/selection.d.ts +48 -0
- package/dist/design-canvas-react/engine/snap.d.ts +24 -0
- package/dist/design-canvas-react/engine/zoom-pan.d.ts +18 -0
- package/dist/design-canvas-react/engine.d.ts +21 -399
- package/dist/design-canvas-react/export-math.d.ts +104 -0
- package/dist/design-canvas-react/export.d.ts +89 -0
- package/dist/design-canvas-react/index.d.ts +16 -586
- package/dist/design-canvas-react/insert-builders.d.ts +61 -0
- package/dist/design-canvas-react/lazy.d.ts +21 -6
- package/dist/documents/docx.d.ts +50 -0
- package/dist/documents/extract.d.ts +87 -0
- package/dist/documents/index.d.ts +26 -232
- package/dist/documents/media-type.d.ts +33 -0
- package/dist/documents/pdf-inspector.d.ts +5 -9
- package/dist/{types-DrBidf3O.d.ts → documents/types.d.ts} +13 -15
- package/dist/documents/zip.d.ts +56 -0
- package/dist/eval/calibration.d.ts +106 -0
- package/dist/eval/index.d.ts +8 -116
- package/dist/eval-campaign/index.d.ts +11 -12
- package/dist/{trust-gate-Dcm5xSva.d.ts → eval-campaign/trust-gate.d.ts} +5 -9
- package/dist/forms/blank.d.ts +48 -0
- package/dist/forms/fill.d.ts +105 -0
- package/dist/forms/index.d.ts +58 -332
- package/dist/forms/registry.d.ts +115 -0
- package/dist/forms/verify.d.ts +58 -0
- package/dist/harness/index.d.ts +21 -19
- package/dist/intakes/api.d.ts +5 -11
- package/dist/{completion-CvcNUz07.d.ts → intakes/completion.d.ts} +7 -11
- package/dist/intakes/context-sufficiency.d.ts +113 -0
- package/dist/intakes/drizzle/schema.d.ts +338 -0
- package/dist/intakes/drizzle/store.d.ts +75 -0
- package/dist/intakes/drizzle.d.ts +12 -391
- package/dist/intakes/index.d.ts +23 -113
- package/dist/{model-C8U0HZxL.d.ts → intakes/model.d.ts} +15 -17
- package/dist/intakes-react/components/BrandMark.d.ts +10 -0
- package/dist/intakes-react/components/IntakeInterview.d.ts +15 -0
- package/dist/intakes-react/components/index.d.ts +1 -0
- package/dist/intakes-react/contracts.d.ts +42 -0
- package/dist/intakes-react/index.d.ts +12 -47
- package/dist/intakes-react/lazy.d.ts +9 -8
- package/dist/integrations/index.d.ts +10 -12
- package/dist/{contract-OxG_jVMx.d.ts → interactions/contract.d.ts} +40 -42
- package/dist/interactions/index.d.ts +16 -256
- package/dist/interactions/route.d.ts +151 -0
- package/dist/interactions/sidecar.d.ts +100 -0
- package/dist/knowledge/index.d.ts +7 -11
- package/dist/knowledge-loop/index.d.ts +13 -20
- package/dist/legibility/checks/empty-state.d.ts +59 -0
- package/dist/legibility/checks/reachability.d.ts +103 -0
- package/dist/legibility/checks/silent-failure.d.ts +57 -0
- package/dist/legibility/checks/success.d.ts +38 -0
- package/dist/legibility/checks/vocabulary.d.ts +65 -0
- package/dist/legibility/cli-args.d.ts +30 -0
- package/dist/legibility/cli.d.ts +25 -0
- package/dist/legibility/index.d.ts +10 -530
- package/dist/legibility/report.d.ts +22 -0
- package/dist/legibility/scan.d.ts +29 -0
- package/dist/legibility/source.d.ts +132 -0
- package/dist/legibility/suppress.d.ts +36 -0
- package/dist/legibility/types.d.ts +168 -0
- package/dist/legibility/walk-sources.d.ts +21 -0
- package/dist/{agent-activity-C8ZG0F0M.d.ts → missions/agent-activity.d.ts} +3 -5
- package/dist/missions/engine.d.ts +251 -0
- package/dist/missions/events.d.ts +195 -0
- package/dist/missions/index.d.ts +12 -765
- package/dist/missions/plan-parse.d.ts +50 -0
- package/dist/missions/service.d.ts +265 -0
- package/dist/{failover-D-3UXXTb.d.ts → model-resolution/failover.d.ts} +10 -12
- package/dist/model-resolution/index.d.ts +15 -18
- package/dist/object-store/index.d.ts +15 -17
- package/dist/openui/action.d.ts +54 -0
- package/dist/openui/authoring.d.ts +25 -0
- package/dist/openui/index.d.ts +24 -206
- package/dist/openui/route.d.ts +124 -0
- package/dist/openui/segments.d.ts +71 -0
- package/dist/openui/values.d.ts +82 -0
- package/dist/openui-react/index.d.ts +9 -13
- package/dist/peer-floors/check.d.ts +9 -190
- package/dist/peer-floors/cli.d.ts +2 -3
- package/dist/peer-floors/dependency-source.d.ts +178 -0
- package/dist/plans/index.d.ts +13 -14
- package/dist/{billing-BuNlaKlE.d.ts → platform/billing.d.ts} +28 -32
- package/dist/platform/guards.d.ts +79 -0
- package/dist/platform/hub.d.ts +107 -0
- package/dist/platform/index.d.ts +7 -112
- package/dist/{sso-Cm00S61u.d.ts → platform/sso.d.ts} +15 -97
- package/dist/preflight/cli.d.ts +3 -6
- package/dist/preflight/index.d.ts +16 -18
- package/dist/preset-cloudflare/headers.d.ts +12 -0
- package/dist/preset-cloudflare/index.d.ts +22 -74
- package/dist/preset-cloudflare/workflow-instance.d.ts +35 -0
- package/dist/profile/budget.d.ts +72 -0
- package/dist/profile/fingerprint.d.ts +65 -0
- package/dist/profile/index.d.ts +27 -19
- package/dist/prompt/index.d.ts +3 -5
- package/dist/record/drizzle/schema.d.ts +488 -0
- package/dist/record/drizzle/store.d.ts +224 -0
- package/dist/record/drizzle.d.ts +10 -679
- package/dist/record/fold.d.ts +99 -0
- package/dist/record/index.d.ts +13 -13
- package/dist/{fold-DACU7gtf.d.ts → record/model.d.ts} +22 -124
- package/dist/record/ulid.d.ts +12 -0
- package/dist/redact/index.d.ts +14 -16
- package/dist/run/index.d.ts +11 -16
- package/dist/runtime/agent.d.ts +23 -0
- package/dist/runtime/certified-delivery.d.ts +57 -0
- package/dist/runtime/index.d.ts +17 -367
- package/dist/runtime/loop.d.ts +58 -0
- package/dist/runtime/model-catalog.d.ts +103 -0
- package/dist/{model-CdCDfBA9.d.ts → runtime/model.d.ts} +25 -27
- package/dist/runtime/openai-stream.d.ts +126 -0
- package/dist/runtime/surface-profile.d.ts +115 -0
- package/dist/sandbox/binary-read.d.ts +63 -0
- package/dist/sandbox/diagnostics.d.ts +69 -0
- package/dist/sandbox/index.d.ts +103 -1085
- package/dist/sandbox/model.d.ts +179 -0
- package/dist/sandbox/outcome.d.ts +10 -0
- package/dist/sandbox/prewarm-claim-d1.d.ts +80 -0
- package/dist/sandbox/prewarm.d.ts +193 -0
- package/dist/sandbox/recovery.d.ts +216 -0
- package/dist/sandbox/terminal-connection.d.ts +145 -0
- package/dist/sandbox/workspace-sandbox-manager.d.ts +44 -0
- package/dist/sequences/apply.d.ts +54 -0
- package/dist/sequences/captions.d.ts +91 -0
- package/dist/sequences/drizzle-store.d.ts +36 -0
- package/dist/sequences/drizzle.d.ts +7 -1252
- package/dist/sequences/exports.d.ts +138 -0
- package/dist/sequences/index.d.ts +19 -340
- package/dist/sequences/mcp-entry.d.ts +15 -0
- package/dist/sequences/mcp-handler.d.ts +39 -0
- package/dist/sequences/mcp-tools.d.ts +47 -0
- package/dist/{store-B7LLlk9p.d.ts → sequences/model.d.ts} +26 -110
- package/dist/sequences/operations.d.ts +126 -0
- package/dist/sequences/schema.d.ts +1231 -0
- package/dist/sequences/store.d.ts +81 -0
- package/dist/sequences/validate.d.ts +98 -0
- package/dist/sequences-react/components/BrandMark.d.ts +10 -0
- package/dist/sequences-react/components/PreviewCanvas.d.ts +26 -0
- package/dist/sequences-react/components/SnapIndicatorLine.d.ts +11 -0
- package/dist/sequences-react/components/TimelineClipChip.d.ts +80 -0
- package/dist/sequences-react/components/TimelineEditor.d.ts +44 -0
- package/dist/sequences-react/components/TimelineEmptyState.d.ts +21 -0
- package/dist/sequences-react/components/TimelineGhostLanes.d.ts +14 -0
- package/dist/sequences-react/components/TimelinePlayhead.d.ts +11 -0
- package/dist/sequences-react/components/TimelineRuler.d.ts +16 -0
- package/dist/sequences-react/components/TimelineSmallScreenGate.d.ts +12 -0
- package/dist/sequences-react/components/TimelineTrackRow.d.ts +51 -0
- package/dist/sequences-react/components/ZoomControl.d.ts +15 -0
- package/dist/sequences-react/components/composite-command.d.ts +8 -0
- package/dist/sequences-react/components/glyphs.d.ts +26 -0
- package/dist/sequences-react/components/index.d.ts +31 -0
- package/dist/sequences-react/components/interaction-math.d.ts +103 -0
- package/dist/sequences-react/contracts.d.ts +187 -0
- package/dist/sequences-react/engine/command-stack.d.ts +18 -0
- package/dist/sequences-react/engine/commands.d.ts +146 -0
- package/dist/sequences-react/engine/playback.d.ts +18 -0
- package/dist/sequences-react/engine/snap.d.ts +29 -0
- package/dist/sequences-react/engine/zoom.d.ts +29 -0
- package/dist/sequences-react/index.d.ts +20 -880
- package/dist/sequences-react/lazy.d.ts +8 -0
- package/dist/sequences-react/media/frame-provider.d.ts +70 -0
- package/dist/sequences-react/media/transcription.d.ts +33 -0
- package/dist/sequences-react/media/waveform.d.ts +34 -0
- package/dist/session-shell/index.d.ts +31 -204
- package/dist/session-shell/nav-guard.d.ts +170 -0
- package/dist/session-shell/path.d.ts +19 -0
- package/dist/signoff/cli.d.ts +4 -7
- package/dist/signoff/config.d.ts +12 -0
- package/dist/signoff/exec.d.ts +44 -0
- package/dist/signoff/index.d.ts +56 -14
- package/dist/signoff/invoked-as-script.d.ts +25 -0
- package/dist/signoff/node-version.d.ts +50 -0
- package/dist/signoff/proof-attach.d.ts +88 -0
- package/dist/signoff/proof-cli.d.ts +1 -0
- package/dist/signoff/proof-fixture.d.ts +13 -0
- package/dist/signoff/proof-from-report.d.ts +22 -0
- package/dist/signoff/proof-git.d.ts +57 -0
- package/dist/signoff/proof-record.d.ts +202 -0
- package/dist/signoff/proof-verify.d.ts +103 -0
- package/dist/signoff/proof.d.ts +35 -310
- package/dist/signoff/report.d.ts +7 -0
- package/dist/{run-D80hoLKh.d.ts → signoff/run.d.ts} +3 -6
- package/dist/signoff/schedule.d.ts +55 -0
- package/dist/signoff/seeds.d.ts +50 -0
- package/dist/signoff/store.d.ts +22 -0
- package/dist/{types-Bd6uW9vQ.d.ts → signoff/types.d.ts} +15 -17
- package/dist/signoff/workflow-pin.d.ts +56 -0
- package/dist/signoff/workspace.d.ts +40 -0
- package/dist/skills/index.d.ts +28 -32
- package/dist/skills-placement/index.d.ts +7 -11
- package/dist/spend/budget.d.ts +123 -0
- package/dist/spend/ceiling.d.ts +51 -0
- package/dist/spend/cli-args.d.ts +20 -0
- package/dist/spend/cli.d.ts +1 -0
- package/dist/spend/fixtures/incident-parked-time.d.ts +55 -0
- package/dist/spend/index.d.ts +38 -1144
- package/dist/spend/liveness.d.ts +131 -0
- package/dist/spend/ownership.d.ts +87 -0
- package/dist/spend/reconcile.d.ts +109 -0
- package/dist/spend/reference.d.ts +42 -0
- package/dist/spend/report.d.ts +12 -0
- package/dist/spend/store.d.ts +123 -0
- package/dist/spend/types.d.ts +466 -0
- package/dist/store/index.d.ts +10 -12
- package/dist/stories/app-shell/fixtures.d.ts +43 -0
- package/dist/stories/app-shell/shell.d.ts +81 -0
- package/dist/stories/assistant/fixtures.d.ts +73 -0
- package/dist/stories/chat/fixtures.d.ts +70 -0
- package/dist/stories/chat/markdown.d.ts +11 -0
- package/dist/stories/chat/run-drill-in.d.ts +19 -0
- package/dist/stories/chat-controls/fixtures.d.ts +116 -0
- package/dist/stories/design-canvas/fixtures.d.ts +57 -0
- package/dist/stories/fixtures/canvas.d.ts +10 -0
- package/dist/stories/fixtures/catalog.d.ts +7 -0
- package/dist/stories/fixtures/chat.d.ts +39 -0
- package/dist/stories/fixtures/index.d.ts +4 -0
- package/dist/stories/fixtures/sequences.d.ts +17 -0
- package/dist/stories/panels/fixtures.d.ts +63 -0
- package/dist/stories/sequences/fixtures.d.ts +30 -0
- package/dist/stories/studio/fixtures.d.ts +22 -0
- package/dist/stream/index.d.ts +10 -56
- package/dist/{stream-normalizer-DKRxyVlZ.d.ts → stream/stream-normalizer.d.ts} +23 -26
- package/dist/{turn-buffer-COMQUwO2.d.ts → stream/turn-buffer.d.ts} +21 -23
- package/dist/stream/turn-identity.d.ts +49 -0
- package/dist/studio/generation.d.ts +179 -0
- package/dist/studio/index.d.ts +12 -181
- package/dist/studio-react/avatar-composer.d.ts +8 -0
- package/dist/studio-react/composer-hero.d.ts +12 -0
- package/dist/studio-react/composer-shell.d.ts +18 -0
- package/dist/studio-react/generation-card.d.ts +9 -0
- package/dist/studio-react/generation-detail-modal.d.ts +11 -0
- package/dist/studio-react/generation-detail.d.ts +6 -0
- package/dist/studio-react/generation-grid.d.ts +15 -0
- package/dist/studio-react/image-composer.d.ts +8 -0
- package/dist/studio-react/index.d.ts +32 -245
- package/dist/studio-react/library-drawer.d.ts +12 -0
- package/dist/studio-react/library-panel.d.ts +15 -0
- package/dist/studio-react/publish-package-composer.d.ts +18 -0
- package/dist/studio-react/result-canvas.d.ts +6 -0
- package/dist/studio-react/speech-composer.d.ts +4 -0
- package/dist/studio-react/studio-header.d.ts +5 -0
- package/dist/studio-react/studio-sheet.d.ts +12 -0
- package/dist/studio-react/studio-workspace.d.ts +23 -0
- package/dist/studio-react/transcription-composer.d.ts +12 -0
- package/dist/studio-react/type-config.d.ts +11 -0
- package/dist/studio-react/use-studio-generations.d.ts +20 -0
- package/dist/studio-react/video-composer.d.ts +10 -0
- package/dist/tangle/index.d.ts +7 -9
- package/dist/teams/drizzle/access.d.ts +82 -0
- package/dist/{invitations-schema-_fI7HkJP.d.ts → teams/drizzle/invitations-schema.d.ts} +39 -27
- package/dist/teams/drizzle/personal-organization.d.ts +41 -0
- package/dist/{access-490O6aOU.d.ts → teams/drizzle/schema.d.ts} +57 -122
- package/dist/teams/drizzle.d.ts +12 -44
- package/dist/teams/index.d.ts +20 -44
- package/dist/teams/invitations-api.d.ts +17 -21
- package/dist/{invitations-DoYMvXea.d.ts → teams/invitations.d.ts} +14 -18
- package/dist/teams/invite.d.ts +42 -0
- package/dist/teams/members-api.d.ts +12 -16
- package/dist/teams/resend.d.ts +3 -13
- package/dist/{roles-B4nU3jDi.d.ts → teams/roles.d.ts} +18 -20
- package/dist/teams-react/components/BrandMark.d.ts +10 -0
- package/dist/teams-react/components/InvitationsPanel.d.ts +13 -0
- package/dist/teams-react/components/InviteAcceptPage.d.ts +10 -0
- package/dist/teams-react/components/MembersPanel.d.ts +14 -0
- package/dist/teams-react/components/RoleSelect.d.ts +17 -0
- package/dist/teams-react/components/index.d.ts +3 -0
- package/dist/teams-react/contracts.d.ts +134 -0
- package/dist/teams-react/index.d.ts +12 -143
- package/dist/teams-react/lazy.d.ts +11 -11
- package/dist/test-setup.d.ts +1 -0
- package/dist/theme/index.d.ts +6 -104
- package/dist/theme/tailwind-preset.d.ts +1 -2
- package/dist/theme/theme.d.ts +106 -0
- package/dist/theme-contract/cli.d.ts +21 -0
- package/dist/theme-contract/index.d.ts +4 -6
- package/dist/{auth-BYtiazA4.d.ts → tools/auth.d.ts} +8 -11
- package/dist/tools/capability.d.ts +54 -0
- package/dist/tools/dispatch.d.ts +37 -0
- package/dist/tools/errors.d.ts +8 -0
- package/dist/tools/gating.d.ts +62 -0
- package/dist/tools/http.d.ts +27 -0
- package/dist/tools/index.d.ts +12 -217
- package/dist/{mcp-rpc-DYwPlYbZ.d.ts → tools/mcp-rpc.d.ts} +7 -9
- package/dist/{mcp-xxoZZfor.d.ts → tools/mcp.d.ts} +14 -16
- package/dist/tools/openai.d.ts +28 -0
- package/dist/tools/registry.d.ts +39 -0
- package/dist/tools/runtime.d.ts +22 -0
- package/dist/{types-B25Mib1r.d.ts → tools/types.d.ts} +15 -83
- package/dist/{flow-types-CJxEmaRy.d.ts → trace/flow-types.d.ts} +2 -4
- package/dist/trace/index.d.ts +11 -148
- package/dist/trace/mission-flow.d.ts +82 -0
- package/dist/trace/mission-trace.d.ts +52 -0
- package/dist/turn-health/classify.d.ts +207 -0
- package/dist/turn-health/index.d.ts +29 -637
- package/dist/turn-health/lifecycle.d.ts +75 -0
- package/dist/turn-health/sink.d.ts +122 -0
- package/dist/turn-health/sweep.d.ts +245 -0
- package/dist/turn-stream/adapters.d.ts +257 -0
- package/dist/turn-stream/core.d.ts +293 -0
- package/dist/turn-stream/do.d.ts +144 -0
- package/dist/turn-stream/index.d.ts +62 -738
- package/dist/turn-stream/memory.d.ts +41 -0
- package/dist/vault/ConfirmDialog.d.ts +22 -0
- package/dist/vault/VaultPane.d.ts +15 -0
- package/dist/{VaultPane-BDP6SB_K.d.ts → vault/contracts.d.ts} +15 -22
- package/dist/vault/index.d.ts +15 -22
- package/dist/vault/lazy.d.ts +9 -7
- package/dist/vault/server.d.ts +8 -10
- package/dist/web/free-route-limit.d.ts +187 -0
- package/dist/web/index.d.ts +15 -207
- package/dist/{rate-limit-BOVmJRXZ.d.ts → web/rate-limit.d.ts} +3 -5
- package/dist/web-react/agent-session-controls.d.ts +105 -0
- package/dist/web-react/async/async-view.d.ts +69 -0
- package/dist/web-react/async/index.d.ts +13 -305
- package/dist/web-react/async/state.d.ts +107 -0
- package/dist/web-react/async/use-async-resource.d.ts +41 -0
- package/dist/web-react/async/use-confirmed-mutation.d.ts +90 -0
- package/dist/web-react/brand-mark.d.ts +11 -0
- package/dist/web-react/chat-attachments.d.ts +21 -0
- package/dist/web-react/chat-composer.d.ts +174 -0
- package/dist/web-react/chat-interactions.d.ts +1 -0
- package/dist/web-react/chat-mentions.d.ts +48 -0
- package/dist/web-react/chat-stream.d.ts +106 -0
- package/dist/web-react/class-names.d.ts +10 -0
- package/dist/web-react/controls.d.ts +265 -0
- package/dist/web-react/durable-chat-cards.d.ts +40 -0
- package/dist/web-react/durable-interaction-submit.d.ts +22 -0
- package/dist/web-react/durable-plan-card.d.ts +13 -0
- package/dist/web-react/durable-plan-flow.d.ts +77 -0
- package/dist/web-react/harness-glyphs.d.ts +28 -0
- package/dist/web-react/index.d.ts +80 -2347
- package/dist/web-react/inert.d.ts +39 -0
- package/dist/web-react/insight-card.d.ts +203 -0
- package/dist/web-react/interaction-card-support.d.ts +115 -0
- package/dist/web-react/interaction-plan-card.d.ts +39 -0
- package/dist/web-react/interaction-question-card.d.ts +100 -0
- package/dist/web-react/message-attachments.d.ts +56 -0
- package/dist/web-react/mission-activity.d.ts +96 -0
- package/dist/web-react/motion.d.ts +43 -0
- package/dist/web-react/provenance-model.d.ts +195 -0
- package/dist/web-react/provenance.d.ts +82 -0
- package/dist/web-react/provider-logo.d.ts +14 -0
- package/dist/web-react/record-grid-model.d.ts +257 -0
- package/dist/web-react/record-grid.d.ts +108 -0
- package/dist/web-react/sandbox-terminal.d.ts +90 -0
- package/dist/web-react/seat-paywall.d.ts +47 -0
- package/dist/web-react/session-history.d.ts +196 -0
- package/dist/web-react/smooth-text.d.ts +29 -0
- package/dist/web-react/sparkline.d.ts +150 -0
- package/dist/web-react/terminal.d.ts +1 -92
- package/dist/web-react/use-chat-interactions.d.ts +78 -0
- package/dist/web-react/use-composer-attachments.d.ts +111 -0
- package/dist/web-react/use-file-mentions.d.ts +94 -0
- package/dist/web-react/work-product.d.ts +105 -0
- package/dist/work-product/claim-support.d.ts +288 -0
- package/dist/work-product/index.d.ts +16 -849
- package/dist/work-product/provenance.d.ts +61 -0
- package/dist/{queue-VTBA5ONX.d.ts → work-product/queue.d.ts} +10 -12
- package/dist/work-product/quote.d.ts +139 -0
- package/dist/work-product/route.d.ts +88 -0
- package/dist/work-product/service.d.ts +123 -0
- package/dist/work-product/tools.d.ts +144 -0
- package/dist/{types-CCeYywdS.d.ts → work-product/types.d.ts} +29 -31
- package/dist/work-product-react/index.d.ts +19 -8
- package/dist/workspace-react/index.d.ts +8 -11
- package/package.json +5 -4
- package/dist/agent-session-controls-CmlXwp_H.d.ts +0 -384
- package/dist/apply-6wlMOLf8.d.ts +0 -280
- package/dist/attachment-validation-BfJDBU1g.d.ts +0 -261
- package/dist/budget-BOucfcb_.d.ts +0 -142
- package/dist/values-C7RidJuI.d.ts +0 -156
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ReasoningEffort } from '@tangle-network/agent-interface';
|
|
2
|
-
|
|
1
|
+
import type { ReasoningEffort } from '@tangle-network/agent-interface';
|
|
3
2
|
/**
|
|
4
3
|
* Wire contract between the chat client (composer + `streamChatTurn`) and the
|
|
5
4
|
* assembled server vertical (`createChatTurnRoutes`). Runtime-import-free on
|
|
@@ -10,7 +9,7 @@ import { ReasoningEffort } from '@tangle-network/agent-interface';
|
|
|
10
9
|
* it to the URL required by the sandbox SDK. It is derived here, not imported,
|
|
11
10
|
* so the client bundle never touches the SDK.
|
|
12
11
|
*/
|
|
13
|
-
interface ChatTurnTextPartInput {
|
|
12
|
+
export interface ChatTurnTextPartInput {
|
|
14
13
|
type: 'text';
|
|
15
14
|
text: string;
|
|
16
15
|
}
|
|
@@ -18,7 +17,7 @@ interface ChatTurnTextPartInput {
|
|
|
18
17
|
* on send. `url` carries an inline `data:` URI for small files; `path` is a
|
|
19
18
|
* sandbox workspace reference for large ones (the >1 MiB gateway body cap
|
|
20
19
|
* makes the two-step upload mandatory). */
|
|
21
|
-
interface ChatTurnFilePartInput {
|
|
20
|
+
export interface ChatTurnFilePartInput {
|
|
22
21
|
type: 'image' | 'file';
|
|
23
22
|
filename?: string;
|
|
24
23
|
mediaType?: string;
|
|
@@ -26,21 +25,21 @@ interface ChatTurnFilePartInput {
|
|
|
26
25
|
path?: string;
|
|
27
26
|
}
|
|
28
27
|
/** Resolve input as either a text part or a file part of a chat turn */
|
|
29
|
-
type ChatTurnPartInput = ChatTurnTextPartInput | ChatTurnFilePartInput;
|
|
28
|
+
export type ChatTurnPartInput = ChatTurnTextPartInput | ChatTurnFilePartInput;
|
|
30
29
|
/** A chat turn's automatic sentinel plus the canonical agent reasoning levels. */
|
|
31
|
-
type ChatReasoningEffort = 'auto' | ReasoningEffort;
|
|
30
|
+
export type ChatReasoningEffort = 'auto' | ReasoningEffort;
|
|
32
31
|
/** Represent a text event produced by a source with a fixed type and associated text content */
|
|
33
|
-
interface ProducerTextEvent {
|
|
32
|
+
export interface ProducerTextEvent {
|
|
34
33
|
type: 'text';
|
|
35
34
|
text: string;
|
|
36
35
|
}
|
|
37
36
|
/** Define an event representing reasoning output with a fixed type and associated text */
|
|
38
|
-
interface ProducerReasoningEvent {
|
|
37
|
+
export interface ProducerReasoningEvent {
|
|
39
38
|
type: 'reasoning';
|
|
40
39
|
text: string;
|
|
41
40
|
}
|
|
42
41
|
/** Represent an event triggered by a producer tool call with its identifier, name, and arguments */
|
|
43
|
-
interface ProducerToolCallEvent {
|
|
42
|
+
export interface ProducerToolCallEvent {
|
|
44
43
|
type: 'tool_call';
|
|
45
44
|
call: {
|
|
46
45
|
toolCallId: string;
|
|
@@ -49,7 +48,7 @@ interface ProducerToolCallEvent {
|
|
|
49
48
|
};
|
|
50
49
|
}
|
|
51
50
|
/** Describe the structure of an event representing the result of a producer tool call */
|
|
52
|
-
interface ProducerToolResultEvent {
|
|
51
|
+
export interface ProducerToolResultEvent {
|
|
53
52
|
type: 'tool_result';
|
|
54
53
|
toolCallId: string;
|
|
55
54
|
toolName: string;
|
|
@@ -60,7 +59,7 @@ interface ProducerToolResultEvent {
|
|
|
60
59
|
};
|
|
61
60
|
}
|
|
62
61
|
/** Describe usage event with prompt and completion token counts for a producer */
|
|
63
|
-
interface ProducerUsageEvent {
|
|
62
|
+
export interface ProducerUsageEvent {
|
|
64
63
|
type: 'usage';
|
|
65
64
|
usage: {
|
|
66
65
|
promptTokens: number;
|
|
@@ -68,7 +67,7 @@ interface ProducerUsageEvent {
|
|
|
68
67
|
};
|
|
69
68
|
}
|
|
70
69
|
/** Define the structure for a producer notice event with type, id, kind, and text fields */
|
|
71
|
-
interface ProducerNoticeEvent {
|
|
70
|
+
export interface ProducerNoticeEvent {
|
|
72
71
|
type: 'notice';
|
|
73
72
|
id: string;
|
|
74
73
|
/** Kept inline with `/interactions`' `NoticeKind` so this file stays import-free. */
|
|
@@ -76,7 +75,7 @@ interface ProducerNoticeEvent {
|
|
|
76
75
|
text: string;
|
|
77
76
|
}
|
|
78
77
|
/** Represent an error event emitted by a producer containing message, code, and optional details */
|
|
79
|
-
interface ProducerErrorEvent {
|
|
78
|
+
export interface ProducerErrorEvent {
|
|
80
79
|
type: 'error';
|
|
81
80
|
data: {
|
|
82
81
|
message: string;
|
|
@@ -85,16 +84,16 @@ interface ProducerErrorEvent {
|
|
|
85
84
|
};
|
|
86
85
|
}
|
|
87
86
|
/** Stable raw lifecycle/interaction/plan/route events forwarded unchanged. */
|
|
88
|
-
type ProducerPassthroughEventType = 'turn' | 'metadata' | 'interaction' | 'interaction.cancel' | 'plan.submitted' | 'done' | 'warning' | 'session.run.started' | 'session.run.completed' | 'session.run.failed' | 'turn_status';
|
|
87
|
+
export type ProducerPassthroughEventType = 'turn' | 'metadata' | 'interaction' | 'interaction.cancel' | 'plan.submitted' | 'done' | 'warning' | 'session.run.started' | 'session.run.completed' | 'session.run.failed' | 'turn_status';
|
|
89
88
|
/** Define an event carrying passthrough data with flexible properties for producer communication */
|
|
90
|
-
interface ProducerPassthroughEvent {
|
|
89
|
+
export interface ProducerPassthroughEvent {
|
|
91
90
|
type: ProducerPassthroughEventType;
|
|
92
91
|
data?: Record<string, unknown>;
|
|
93
92
|
/** Route markers and raw passthroughs may carry `turnId`, `status`, `seq`, etc. */
|
|
94
93
|
[key: string]: unknown;
|
|
95
94
|
}
|
|
96
95
|
/** Represent events emitted by a producer during its operation for processing and handling */
|
|
97
|
-
type ProducerWireEvent = ProducerTextEvent | ProducerReasoningEvent | ProducerToolCallEvent | ProducerToolResultEvent | ProducerUsageEvent | ProducerNoticeEvent | ProducerErrorEvent | ProducerPassthroughEvent;
|
|
96
|
+
export type ProducerWireEvent = ProducerTextEvent | ProducerReasoningEvent | ProducerToolCallEvent | ProducerToolResultEvent | ProducerUsageEvent | ProducerNoticeEvent | ProducerErrorEvent | ProducerPassthroughEvent;
|
|
98
97
|
/** The image/file split an attachment is rendered and persisted under — the
|
|
99
98
|
* same discriminant as {@link ChatMentionKind}, but a distinct name because an
|
|
100
99
|
* attachment carries content the product uploaded (`ChatAttachmentInput`)
|
|
@@ -102,14 +101,14 @@ type ProducerWireEvent = ProducerTextEvent | ProducerReasoningEvent | ProducerTo
|
|
|
102
101
|
* import-free layer) so `ChatAttachmentInput` can reference it and the client
|
|
103
102
|
* composer imports it without pulling the persisted-part vocabulary;
|
|
104
103
|
* `/chat-store`'s parts module re-exports it alongside the attachment helpers. */
|
|
105
|
-
type ChatAttachmentKind = 'image' | 'file';
|
|
104
|
+
export type ChatAttachmentKind = 'image' | 'file';
|
|
106
105
|
/** `POST` turn-body entry describing a file already uploaded to the product's
|
|
107
106
|
* store (vault/object-store) — distinct from an inline {@link
|
|
108
107
|
* ChatTurnFilePartInput} (which carries bytes) and from a {@link FileMention}
|
|
109
108
|
* (a sandbox path the box already holds). The route resolves this field with
|
|
110
109
|
* {@link resolveChatAttachments}: every path is re-validated and every size is
|
|
111
110
|
* re-derived from the stored body, so nothing here is trusted as sent. */
|
|
112
|
-
interface ChatAttachmentInput {
|
|
111
|
+
export interface ChatAttachmentInput {
|
|
113
112
|
path: string;
|
|
114
113
|
name: string;
|
|
115
114
|
size: number;
|
|
@@ -119,7 +118,7 @@ interface ChatAttachmentInput {
|
|
|
119
118
|
/** POST body for the turn route. `content` may be empty when `parts` carry the
|
|
120
119
|
* message (an image-only send). Product routing fields (workspaceId etc.) ride
|
|
121
120
|
* alongside and are read by the product's `authorize` seam. */
|
|
122
|
-
interface ChatTurnRequestPayload {
|
|
121
|
+
export interface ChatTurnRequestPayload {
|
|
123
122
|
threadId: string;
|
|
124
123
|
content?: string;
|
|
125
124
|
/** Non-text parts from the upload route, echoed back verbatim. */
|
|
@@ -148,32 +147,32 @@ interface ChatTurnRequestPayload {
|
|
|
148
147
|
/** `fetch` init for the turn route — the one place the client wire shape is
|
|
149
148
|
* serialized, so composer glue and products never drift from the server's
|
|
150
149
|
* parser. */
|
|
151
|
-
declare function chatTurnRequestInit(payload: ChatTurnRequestPayload): RequestInit;
|
|
150
|
+
export declare function chatTurnRequestInit(payload: ChatTurnRequestPayload): RequestInit;
|
|
152
151
|
/** Define the maximum byte size allowed for inline parts in data processing */
|
|
153
|
-
declare const INLINE_PARTS_MAX_BYTES = 950000;
|
|
152
|
+
export declare const INLINE_PARTS_MAX_BYTES = 950000;
|
|
154
153
|
/** Hard cap on the whole `/prompt` request body as it crosses the sandbox
|
|
155
154
|
* proxy — smaller in practice than a raw-file write cap because a dispatch
|
|
156
155
|
* carries several inline parts plus the flattened history in one request. */
|
|
157
|
-
declare const DISPATCH_REQUEST_MAX_BYTES: number;
|
|
156
|
+
export declare const DISPATCH_REQUEST_MAX_BYTES: number;
|
|
158
157
|
/** Bytes reserved off the top of {@link DISPATCH_REQUEST_MAX_BYTES} for the
|
|
159
158
|
* JSON structure around the parts array (keys, delimiters, per-part
|
|
160
159
|
* `type`/`filename`/`mediaType` fields) that {@link base64WireLen} does not
|
|
161
160
|
* account for — keeps the inline budget off the exact proxy cap where one
|
|
162
161
|
* stray byte trips the 413. */
|
|
163
|
-
declare const DISPATCH_STRUCTURAL_RESERVE_BYTES: number;
|
|
162
|
+
export declare const DISPATCH_STRUCTURAL_RESERVE_BYTES: number;
|
|
164
163
|
/** Sidecar's hard cap on the `parts` array of one prompt request — a dispatch
|
|
165
164
|
* must never assemble more parts than this or the whole turn 400s. */
|
|
166
|
-
declare const DISPATCH_MAX_PARTS = 64;
|
|
165
|
+
export declare const DISPATCH_MAX_PARTS = 64;
|
|
167
166
|
/** Product-side cap on media parts per dispatch (current turn + carried
|
|
168
167
|
* history), well under {@link DISPATCH_MAX_PARTS}. History trimming that keeps
|
|
169
168
|
* a transcript's native media under this is a PRODUCT concern (the pointer
|
|
170
169
|
* block keeps trimmed media reachable); `buildDispatchParts` enforces only the
|
|
171
170
|
* total {@link DISPATCH_MAX_PARTS} cap. */
|
|
172
|
-
declare const DISPATCH_MAX_MEDIA_PARTS = 24;
|
|
171
|
+
export declare const DISPATCH_MAX_MEDIA_PARTS = 24;
|
|
173
172
|
/** Size a base64-encoded string occupies on the wire given the raw
|
|
174
173
|
* (pre-encoding) byte length: base64 packs 3 raw bytes into 4 output
|
|
175
174
|
* characters, rounded up to the next multiple of 4. */
|
|
176
|
-
declare function base64WireLen(byteLen: number): number;
|
|
175
|
+
export declare function base64WireLen(byteLen: number): number;
|
|
177
176
|
/**
|
|
178
177
|
* Render a raw byte count as a human-readable size (`512B`, `3KB`, `12MB
|
|
179
178
|
* 500KB`). Ported EXACTLY from gtm-agent's `attachment-limits.ts` — byte-
|
|
@@ -185,42 +184,42 @@ declare function base64WireLen(byteLen: number): number;
|
|
|
185
184
|
* formatting for a client-side pre-check can also import it with no engine
|
|
186
185
|
* pulled in.
|
|
187
186
|
*/
|
|
188
|
-
declare function formatBytes(bytes: number): string;
|
|
187
|
+
export declare function formatBytes(bytes: number): string;
|
|
189
188
|
/** Represent errors for invalid chat turn inputs with status and code properties */
|
|
190
|
-
declare class ChatTurnInputError extends Error {
|
|
189
|
+
export declare class ChatTurnInputError extends Error {
|
|
191
190
|
readonly status: number;
|
|
192
191
|
readonly code: string;
|
|
193
192
|
constructor(message: string, status?: number, code?: string);
|
|
194
193
|
}
|
|
195
194
|
/** Calculate the total byte size of an array of chat turn parts */
|
|
196
|
-
declare function promptPartsByteSize(parts: ChatTurnPartInput[]): number;
|
|
195
|
+
export declare function promptPartsByteSize(parts: ChatTurnPartInput[]): number;
|
|
197
196
|
/** Throws `ChatTurnInputError` (413) when the parts' inline payload would blow
|
|
198
197
|
* the gateway cap. Path-ref parts are tiny by construction and always pass. */
|
|
199
|
-
declare function assertPromptPartsWithinCap(parts: ChatTurnPartInput[], maxBytes?: number): void;
|
|
198
|
+
export declare function assertPromptPartsWithinCap(parts: ChatTurnPartInput[], maxBytes?: number): void;
|
|
200
199
|
/** A file mention resolved from the composer's `@`-picker: the
|
|
201
200
|
* workspace-relative path plus enough metadata to build a prompt part and
|
|
202
201
|
* pointer text. `path` is the canonical identity — the mention pill's
|
|
203
202
|
* `MentionItem.id` for the file kind (`/web-react`'s `useFileMentions`). */
|
|
204
|
-
interface FileMention {
|
|
203
|
+
export interface FileMention {
|
|
205
204
|
path: string;
|
|
206
205
|
name: string;
|
|
207
206
|
size?: number;
|
|
208
207
|
}
|
|
209
208
|
/** The `image/*` mime for a mention path by extension, or `undefined` for
|
|
210
209
|
* anything not in the known image set (dispatched as `type: 'file'`). */
|
|
211
|
-
declare function mediaTypeForMentionPath(path: string): string | undefined;
|
|
210
|
+
export declare function mediaTypeForMentionPath(path: string): string | undefined;
|
|
212
211
|
/** The image/file split a mention is rendered and persisted under — the
|
|
213
212
|
* composer pill's icon, the dispatched part's `type`, and
|
|
214
213
|
* `ChatMentionPart.mentionKind` are all this one value. */
|
|
215
|
-
type ChatMentionKind = 'image' | 'file';
|
|
214
|
+
export type ChatMentionKind = 'image' | 'file';
|
|
216
215
|
/** `image` when the path's extension is in the known image set (the same table
|
|
217
216
|
* {@link mediaTypeForMentionPath} reads), `file` otherwise. Exported so a
|
|
218
217
|
* client that needs only the discriminant — a pill icon, a persisted part's
|
|
219
218
|
* `mentionKind` — never re-declares the extension table; two frozen copies of
|
|
220
219
|
* one mime table is how one gains a format and the other doesn't. */
|
|
221
|
-
declare function mentionKindForPath(path: string): ChatMentionKind;
|
|
220
|
+
export declare function mentionKindForPath(path: string): ChatMentionKind;
|
|
222
221
|
/** Define options to resolve mention paths when converting file mentions to parts */
|
|
223
|
-
interface FileMentionsToPartsOptions {
|
|
222
|
+
export interface FileMentionsToPartsOptions {
|
|
224
223
|
/** Resolve a mention's workspace-relative path to the absolute path the
|
|
225
224
|
* dispatched part should carry (e.g. a host prefixing the in-box vault
|
|
226
225
|
* root). Default: identity — the path travels unchanged. */
|
|
@@ -230,18 +229,18 @@ interface FileMentionsToPartsOptions {
|
|
|
230
229
|
* `image` vs `file` by extension, and always a `path`, never a `url` (the
|
|
231
230
|
* url/path XOR invariant: a mention is a sandbox path reference, never
|
|
232
231
|
* inline bytes). */
|
|
233
|
-
declare function fileMentionsToParts(mentions: readonly FileMention[], opts?: FileMentionsToPartsOptions): ChatTurnFilePartInput[];
|
|
232
|
+
export declare function fileMentionsToParts(mentions: readonly FileMention[], opts?: FileMentionsToPartsOptions): ChatTurnFilePartInput[];
|
|
234
233
|
/** The agent-facing pointer block appended to the dispatched prompt — never
|
|
235
234
|
* persisted in message `content`. Empty array → `''` so callers can append
|
|
236
235
|
* unconditionally. This is the sole producer of that text: the current
|
|
237
236
|
* turn's dispatch and any history projection built from the same mention
|
|
238
237
|
* list both route through here, so the two can't drift apart. */
|
|
239
|
-
declare function buildMentionPromptBlock(mentions: readonly Pick<FileMention, 'name' | 'path'>[]): string;
|
|
238
|
+
export declare function buildMentionPromptBlock(mentions: readonly Pick<FileMention, 'name' | 'path'>[]): string;
|
|
240
239
|
/** Hard cap on mentions per turn. Bounds the prompt pointer block, the
|
|
241
240
|
* persisted parts, and whatever media budget a dispatch draws from them. */
|
|
242
|
-
declare const MENTION_MAX_COUNT = 16;
|
|
241
|
+
export declare const MENTION_MAX_COUNT = 16;
|
|
243
242
|
/** Represent the result of a sandbox mention path check indicating success or failure with an error message */
|
|
244
|
-
type SandboxMentionPathCheck = {
|
|
243
|
+
export type SandboxMentionPathCheck = {
|
|
245
244
|
succeeded: true;
|
|
246
245
|
} | {
|
|
247
246
|
succeeded: false;
|
|
@@ -257,7 +256,7 @@ type SandboxMentionPathCheck = {
|
|
|
257
256
|
* and an ASCII-only charset would silently drop real files from a feature
|
|
258
257
|
* whose whole job is naming them.
|
|
259
258
|
*/
|
|
260
|
-
declare function validateSandboxMentionPath(path: unknown): SandboxMentionPathCheck;
|
|
259
|
+
export declare function validateSandboxMentionPath(path: unknown): SandboxMentionPathCheck;
|
|
261
260
|
/**
|
|
262
261
|
* Validates the untyped `mentions` array off the wire, mirroring
|
|
263
262
|
* {@link parseChatTurnParts}: the typed list, or `ChatTurnInputError` (400)
|
|
@@ -268,9 +267,7 @@ declare function validateSandboxMentionPath(path: unknown): SandboxMentionPathCh
|
|
|
268
267
|
* than rejected: mentioning the same file twice is plausible user input, not
|
|
269
268
|
* an attack.
|
|
270
269
|
*/
|
|
271
|
-
declare function parseFileMentions(raw: unknown): FileMention[];
|
|
270
|
+
export declare function parseFileMentions(raw: unknown): FileMention[];
|
|
272
271
|
/** Validates the untyped `parts` array off the wire. Returns the typed parts
|
|
273
272
|
* or throws `ChatTurnInputError` (400) naming the offending entry. */
|
|
274
|
-
declare function parseChatTurnParts(raw: unknown): ChatTurnFilePartInput[];
|
|
275
|
-
|
|
276
|
-
export { formatBytes as A, mediaTypeForMentionPath as B, type ChatMentionKind as C, DISPATCH_MAX_MEDIA_PARTS as D, mentionKindForPath as E, type FileMention as F, parseChatTurnParts as G, parseFileMentions as H, INLINE_PARTS_MAX_BYTES as I, promptPartsByteSize as J, validateSandboxMentionPath as K, MENTION_MAX_COUNT as M, type ProducerErrorEvent as P, type SandboxMentionPathCheck as S, type ChatAttachmentKind as a, type ChatAttachmentInput as b, type ChatTurnRequestPayload as c, type ChatTurnPartInput as d, type ChatTurnFilePartInput as e, type ChatReasoningEffort as f, ChatTurnInputError as g, type ChatTurnTextPartInput as h, DISPATCH_MAX_PARTS as i, DISPATCH_REQUEST_MAX_BYTES as j, DISPATCH_STRUCTURAL_RESERVE_BYTES as k, type FileMentionsToPartsOptions as l, type ProducerNoticeEvent as m, type ProducerPassthroughEvent as n, type ProducerPassthroughEventType as o, type ProducerReasoningEvent as p, type ProducerTextEvent as q, type ProducerToolCallEvent as r, type ProducerToolResultEvent as s, type ProducerUsageEvent as t, type ProducerWireEvent as u, assertPromptPartsWithinCap as v, base64WireLen as w, buildMentionPromptBlock as x, chatTurnRequestInit as y, fileMentionsToParts as z };
|
|
273
|
+
export declare function parseChatTurnParts(raw: unknown): ChatTurnFilePartInput[];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure (drizzle-free) pieces of the chat store: thread-title derivation, the
|
|
3
|
+
* bulk-delete bound, and the typed input error. Split from `./schema`/`./store`
|
|
4
|
+
* so the root barrel can re-export them without dragging the optional
|
|
5
|
+
* drizzle-orm peer into every root-entry consumer.
|
|
6
|
+
*/
|
|
7
|
+
/** Bounds a single bulk-delete request's write set; product surfaces cap
|
|
8
|
+
* thread lists at far fewer, so a larger batch is a malformed or hostile
|
|
9
|
+
* request. (Lifted from legal's api.threads.bulk-delete route.) */
|
|
10
|
+
export declare const BULK_DELETE_MAX_THREADS = 200;
|
|
11
|
+
/** Invalid caller input (missing/oversized ids, empty title). Products map it
|
|
12
|
+
* to a 400; anything else out of the store is a real failure. */
|
|
13
|
+
export declare class ChatStoreInputError extends Error {
|
|
14
|
+
constructor(message: string);
|
|
15
|
+
}
|
|
16
|
+
/** Thread titles come from the first message — keep the list scannable by
|
|
17
|
+
* storing only its first non-empty line, capped at 80 chars, never the whole
|
|
18
|
+
* multi-page prompt. (Lifted verbatim from legal's chat.new route.) */
|
|
19
|
+
export declare function threadTitleFromMessage(message: string): string;
|
|
@@ -1,326 +1,26 @@
|
|
|
1
|
-
import { C as ChatMessagePart } from '../parts-BqIHMdyu.js';
|
|
2
|
-
export { a as ChatAttachmentPart, b as ChatFilePart, c as ChatImagePart, d as ChatInteractionPart, e as ChatMentionPart, f as ChatNoticePart, g as ChatPartTime, h as ChatPlanPart, i as ChatReasoningPart, j as ChatStepFinishPart, k as ChatStepStartPart, l as ChatSubtaskPart, m as ChatTextPart, n as ChatToolPart, o as ChatToolState, p as ChatToolStatus, q as ChatUsageTokens, r as ChatWorkProductPart, D as DEFAULT_ATTACHMENT_PROMPT_HEADER, S as StorableHarnessPartKind, s as attachmentInputToPart, t as attachmentKindForMime, u as attachmentPartsFromMessageParts, v as buildAttachmentPromptBlock, w as historyContentWithAttachments, x as isChatAttachmentPart, y as isChatInteractionPart, z as isChatMentionPart, A as isChatPlanPart, B as isChatStepFinishPart, E as isChatTextPart, F as isChatToolPart, G as isChatWorkProductPart, H as mentionInputToPart, I as mentionPartsFromMessageParts, J as toChatMessageParts } from '../parts-BqIHMdyu.js';
|
|
3
|
-
import * as drizzle_orm from 'drizzle-orm';
|
|
4
|
-
import { SQL } from 'drizzle-orm';
|
|
5
|
-
import * as drizzle_orm_sqlite_core from 'drizzle-orm/sqlite-core';
|
|
6
|
-
import { AnySQLiteColumn, SQLiteTableExtraConfigValue, SQLiteColumnBuilderBase, AnySQLiteTable, BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core';
|
|
7
|
-
import { SqliteBatchDatabase } from '../store/index.js';
|
|
8
|
-
export { a as ChatAttachmentKind, C as ChatMentionKind } from '../wire-DOZ-O6hD.js';
|
|
9
|
-
export { a as attachmentPartKey } from '../stream-normalizer-DKRxyVlZ.js';
|
|
10
|
-
import '@tangle-network/agent-interface';
|
|
11
|
-
import '../contract-OxG_jVMx.js';
|
|
12
|
-
import '../types-CCeYywdS.js';
|
|
13
|
-
import '../plans/index.js';
|
|
14
|
-
|
|
15
1
|
/**
|
|
16
|
-
*
|
|
17
|
-
* bulk-delete bound, and the typed input error. Split from `./schema`/`./store`
|
|
18
|
-
* so the root barrel can re-export them without dragging the optional
|
|
19
|
-
* drizzle-orm peer into every root-entry consumer.
|
|
20
|
-
*/
|
|
21
|
-
/** Bounds a single bulk-delete request's write set; product surfaces cap
|
|
22
|
-
* thread lists at far fewer, so a larger batch is a malformed or hostile
|
|
23
|
-
* request. (Lifted from legal's api.threads.bulk-delete route.) */
|
|
24
|
-
declare const BULK_DELETE_MAX_THREADS = 200;
|
|
25
|
-
/** Invalid caller input (missing/oversized ids, empty title). Products map it
|
|
26
|
-
* to a 400; anything else out of the store is a real failure. */
|
|
27
|
-
declare class ChatStoreInputError extends Error {
|
|
28
|
-
constructor(message: string);
|
|
29
|
-
}
|
|
30
|
-
/** Thread titles come from the first message — keep the list scannable by
|
|
31
|
-
* storing only its first non-empty line, capped at 80 chars, never the whole
|
|
32
|
-
* multi-page prompt. (Lifted verbatim from legal's chat.new route.) */
|
|
33
|
-
declare function threadTitleFromMessage(message: string): string;
|
|
34
|
-
|
|
35
|
-
/** A product table referenced by FK — only the `id` column is touched. */
|
|
36
|
-
type ChatParentTable = AnySQLiteTable & {
|
|
37
|
-
id: AnySQLiteColumn;
|
|
38
|
-
};
|
|
39
|
-
/** Define options to customize chat thread and message table creation including workspace and naming prefixes */
|
|
40
|
-
interface CreateChatTablesOptions<TThreadExtras extends Record<string, SQLiteColumnBuilderBase> = {}, TMessageExtras extends Record<string, SQLiteColumnBuilderBase> = {}> {
|
|
41
|
-
/** The product's workspace table — threads reference `workspaceTable.id`
|
|
42
|
-
* with cascade. Omitted: `workspace_id` stays a plain indexed text column
|
|
43
|
-
* (products whose tenant table lives in another database). */
|
|
44
|
-
workspaceTable?: ChatParentTable;
|
|
45
|
-
/** Prefixes table AND index names (`'chat_'` → `chat_thread`,
|
|
46
|
-
* `idx_chat_thread_workspace`) for products that namespace chat tables in a
|
|
47
|
-
* shared database. Default: unprefixed `thread`/`message` (legal/gtm row
|
|
48
|
-
* compatibility). */
|
|
49
|
-
tablePrefix?: string;
|
|
50
|
-
/** Product columns merged into the thread table (the `/missions` extras
|
|
51
|
-
* pattern) — e.g. a `status` lifecycle enum or gtm's scope columns. */
|
|
52
|
-
threadExtraColumns?: TThreadExtras;
|
|
53
|
-
/** Product columns merged into the message table — e.g. legal's
|
|
54
|
-
* `vault_files`. */
|
|
55
|
-
messageExtraColumns?: TMessageExtras;
|
|
56
|
-
/**
|
|
57
|
-
* Product indexes appended to the thread table's own, given the built
|
|
58
|
-
* columns (extras included) so a product can index what it added.
|
|
59
|
-
*
|
|
60
|
-
* Names are used VERBATIM — `tablePrefix` is not applied — because these
|
|
61
|
-
* have to byte-match indexes the product's migrations already created.
|
|
62
|
-
*
|
|
63
|
-
* Without this a product with one extra index cannot adopt the factory at
|
|
64
|
-
* all: it keeps a hand-rolled duplicate of the same physical table, and the
|
|
65
|
-
* two drift on the next factory change.
|
|
66
|
-
*/
|
|
67
|
-
threadExtraIndexes?: ChatExtraIndexes;
|
|
68
|
-
/** Product indexes appended to the message table's own. Same rules as
|
|
69
|
-
* `threadExtraIndexes`. */
|
|
70
|
-
messageExtraIndexes?: ChatExtraIndexes;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Builds product indexes from a table's columns.
|
|
2
|
+
* `/chat-store` — shared chat thread/message persistence (issue #188 Phase 1).
|
|
74
3
|
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
id: drizzle_orm.HasDefault<drizzle_orm.IsPrimaryKey<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"id", [string, ...string[]], number | undefined>>>>;
|
|
90
|
-
workspaceId: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"workspace_id", [string, ...string[]], number | undefined>>;
|
|
91
|
-
title: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"title", [string, ...string[]], number | undefined>>;
|
|
92
|
-
category: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"category", [string, ...string[]], number | undefined>;
|
|
93
|
-
isPinned: drizzle_orm.HasDefault<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteBooleanBuilderInitial<"is_pinned">>>;
|
|
94
|
-
createdAt: drizzle_orm.HasDefault<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTimestampBuilderInitial<"created_at">>>;
|
|
95
|
-
updatedAt: drizzle_orm.HasDefault<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTimestampBuilderInitial<"updated_at">>>;
|
|
96
|
-
} & TThreadExtras extends infer T extends Record<string, drizzle_orm.ColumnBuilderBase<drizzle_orm.ColumnBuilderBaseConfig<drizzle_orm.ColumnDataType, string>, object>> ? { [Key in keyof T]: drizzle_orm.BuildColumn<TTableName, {
|
|
97
|
-
_: Omit<T[Key]["_"], "name"> & {
|
|
98
|
-
name: T[Key]["_"]["name"] extends "" ? drizzle_orm.Assume<Key, string> : T[Key]["_"]["name"];
|
|
99
|
-
};
|
|
100
|
-
}, TDialect>; } : never;
|
|
101
|
-
dialect: "sqlite";
|
|
102
|
-
}>;
|
|
103
|
-
messages: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
|
|
104
|
-
name: `${string}message`;
|
|
105
|
-
schema: undefined;
|
|
106
|
-
columns: {
|
|
107
|
-
id: drizzle_orm.HasDefault<drizzle_orm.IsPrimaryKey<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"id", [string, ...string[]], number | undefined>>>>;
|
|
108
|
-
threadId: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"thread_id", [string, ...string[]], number | undefined>>;
|
|
109
|
-
role: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"role", ["user", "assistant", "system", "tool"], number | undefined>>;
|
|
110
|
-
content: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"content", [string, ...string[]], number | undefined>>;
|
|
111
|
-
parts: drizzle_orm.HasDefault<drizzle_orm.$Type<drizzle_orm_sqlite_core.SQLiteTextJsonBuilderInitial<"parts">, ChatMessagePart[]>>;
|
|
112
|
-
toolName: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"tool_name", [string, ...string[]], number | undefined>;
|
|
113
|
-
model: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"model", [string, ...string[]], number | undefined>;
|
|
114
|
-
requestedModel: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"requested_model", [string, ...string[]], number | undefined>;
|
|
115
|
-
servedModel: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"served_model", [string, ...string[]], number | undefined>;
|
|
116
|
-
servedProvider: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"served_provider", [string, ...string[]], number | undefined>;
|
|
117
|
-
servedSource: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"served_model_source", [string, ...string[]], number | undefined>;
|
|
118
|
-
inputTokens: drizzle_orm_sqlite_core.SQLiteIntegerBuilderInitial<"input_tokens">;
|
|
119
|
-
outputTokens: drizzle_orm_sqlite_core.SQLiteIntegerBuilderInitial<"output_tokens">;
|
|
120
|
-
reasoningTokens: drizzle_orm_sqlite_core.SQLiteIntegerBuilderInitial<"reasoning_tokens">;
|
|
121
|
-
cacheReadTokens: drizzle_orm_sqlite_core.SQLiteIntegerBuilderInitial<"cache_read_tokens">;
|
|
122
|
-
cacheWriteTokens: drizzle_orm_sqlite_core.SQLiteIntegerBuilderInitial<"cache_write_tokens">;
|
|
123
|
-
costUsd: drizzle_orm_sqlite_core.SQLiteRealBuilderInitial<"cost_usd">;
|
|
124
|
-
createdAt: drizzle_orm.HasDefault<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTimestampBuilderInitial<"created_at">>>;
|
|
125
|
-
} & TMessageExtras extends infer T_1 extends Record<string, drizzle_orm.ColumnBuilderBase<drizzle_orm.ColumnBuilderBaseConfig<drizzle_orm.ColumnDataType, string>, object>> ? { [Key_1 in keyof T_1]: drizzle_orm.BuildColumn<TTableName, {
|
|
126
|
-
_: Omit<T_1[Key_1]["_"], "name"> & {
|
|
127
|
-
name: T_1[Key_1]["_"]["name"] extends "" ? drizzle_orm.Assume<Key_1, string> : T_1[Key_1]["_"]["name"];
|
|
128
|
-
};
|
|
129
|
-
}, TDialect>; } : never;
|
|
130
|
-
dialect: "sqlite";
|
|
131
|
-
}>;
|
|
132
|
-
};
|
|
133
|
-
/**
|
|
134
|
-
* The base (no-extras) table pair, pinned via an instantiation expression:
|
|
135
|
-
* `ReturnType<typeof createChatTables>` on the bare generic substitutes the
|
|
136
|
-
* extras params with their CONSTRAINT (`Record<string,
|
|
137
|
-
* SQLiteColumnBuilderBase>`), stamping an index signature into the column map
|
|
138
|
-
* that widens every concrete column to `unknown`/`notNull: false` — concrete
|
|
139
|
-
* factory results then fail `extends ChatTables`. (`teams`' `createTeamTables`
|
|
140
|
-
* is non-generic, so its plain `ReturnType` never hits this.)
|
|
141
|
-
*/
|
|
142
|
-
type ChatTables = ReturnType<typeof createChatTables<{}, {}>>;
|
|
143
|
-
/** Resolve the selected fields of a chat thread row from the chat threads table */
|
|
144
|
-
type ChatThreadRow = ChatTables['threads']['$inferSelect'];
|
|
145
|
-
/** Resolve the selected structure of a chat message row from the messages table */
|
|
146
|
-
type ChatMessageRow = ChatTables['messages']['$inferSelect'];
|
|
147
|
-
/** Resolve the type for inserting a new chat thread row into the threads table */
|
|
148
|
-
type NewChatThreadRow = ChatTables['threads']['$inferInsert'];
|
|
149
|
-
/** Resolve the type for inserting a new chat message row into the messages table */
|
|
150
|
-
type NewChatMessageRow = ChatTables['messages']['$inferInsert'];
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Typed CRUD over the tables from `createChatTables`. Works against any
|
|
154
|
-
* SQLite drizzle driver (D1, libsql, better-sqlite3) — builders are awaited,
|
|
155
|
-
* never `.run()`/`.all()`, so sync and async drivers behave identically.
|
|
156
|
-
*
|
|
157
|
-
* Access control is an injected seam, never an import: single-thread routes
|
|
158
|
-
* check workspace access themselves (they know the thread), while
|
|
159
|
-
* `bulkDeleteThreads` REQUIRES an `assertAccess` callback because one request
|
|
160
|
-
* can span workspaces — it is called once per distinct workspace and any
|
|
161
|
-
* throw rejects the whole request before a single delete runs (fail-closed;
|
|
162
|
-
* legal's bulk-delete semantics).
|
|
4
|
+
* Unifies the three divergent product implementations (legal's `thread`/
|
|
5
|
+
* `message`, gtm's fix-absorbed copy of the same, tax's `tax_sessions`/
|
|
6
|
+
* `chat_messages`) into one drizzle table factory + typed CRUD store, so
|
|
7
|
+
* products stop hand-rolling incompatible chat schemas:
|
|
8
|
+
* - `createChatTables` (./schema) — the table factory; per-divergence
|
|
9
|
+
* rationale lives in its docblock.
|
|
10
|
+
* - `createChatStore` (./store) — list/get/create/rename/pin/delete/bulk-
|
|
11
|
+
* delete threads + list/append messages, with access control as an injected
|
|
12
|
+
* callback seam.
|
|
13
|
+
* - `ChatMessagePart` (./parts) — the canonical stored `parts` vocabulary both
|
|
14
|
+
* transport lanes (harness `message.part.updated`, router openai-compat)
|
|
15
|
+
* serialize into; source citations in its docblock.
|
|
16
|
+
* - pure helpers (./core) — `threadTitleFromMessage`, `ChatStoreInputError`,
|
|
17
|
+
* `BULK_DELETE_MAX_THREADS` (also re-exported from the root barrel).
|
|
163
18
|
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
* sequential awaits in the same order.
|
|
19
|
+
* Imports `drizzle-orm` at module top — that is WHY this lives behind its own
|
|
20
|
+
* subpath: the root barrel re-exports only `./core` + `./parts`, so a
|
|
21
|
+
* consumer that never touches the DB never pulls the optional peer.
|
|
168
22
|
*/
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
type ChatDatabase = BaseSQLiteDatabase<'sync' | 'async', any, any> & SqliteBatchDatabase;
|
|
174
|
-
/** Product-injected access check. Throw to deny; the store never interprets
|
|
175
|
-
* users or roles itself. */
|
|
176
|
-
type WorkspaceAccessCheck = (workspaceId: string) => void | Promise<void>;
|
|
177
|
-
/** Define input parameters for listing threads within a workspace with pagination options */
|
|
178
|
-
interface ListThreadsInput {
|
|
179
|
-
workspaceId: string;
|
|
180
|
-
/** Clamped to 1..200; default 50 (legal's list route semantics). */
|
|
181
|
-
limit?: number;
|
|
182
|
-
/** Clamped to >= 0; default 0. */
|
|
183
|
-
offset?: number;
|
|
184
|
-
}
|
|
185
|
-
/** Represent a paginated collection of chat threads with total count and pagination details */
|
|
186
|
-
interface ListThreadsResult<TThread = ChatThreadRow> {
|
|
187
|
-
threads: TThread[];
|
|
188
|
-
total: number;
|
|
189
|
-
limit: number;
|
|
190
|
-
offset: number;
|
|
191
|
-
}
|
|
192
|
-
/** Define input parameters required to create a new thread in a workspace */
|
|
193
|
-
interface CreateThreadInput {
|
|
194
|
-
workspaceId: string;
|
|
195
|
-
/** Title source when `title` is absent: first non-empty line, 80-char cap
|
|
196
|
-
* (`threadTitleFromMessage`). */
|
|
197
|
-
firstMessage?: string;
|
|
198
|
-
/** Explicit title; still normalized through `threadTitleFromMessage` so a
|
|
199
|
-
* multi-page paste never becomes a sidebar entry. */
|
|
200
|
-
title?: string;
|
|
201
|
-
category?: string | null;
|
|
202
|
-
isPinned?: boolean;
|
|
203
|
-
/** Opaque product-column values written verbatim in the SAME insert (the
|
|
204
|
-
* `/missions` extras pattern). Never read, validated, or defaulted here. */
|
|
205
|
-
extras?: Record<string, unknown>;
|
|
206
|
-
}
|
|
207
|
-
/** Define input parameters for appending a message to a chat thread with optional metadata */
|
|
208
|
-
interface AppendMessageInput {
|
|
209
|
-
/** Caller-assigned primary key. Omitted, the column default assigns a random
|
|
210
|
-
* hex id (today's behavior). Incremental assistant persistence passes a
|
|
211
|
-
* DETERMINISTIC id derived from the turn's own identity, so a re-entered
|
|
212
|
-
* turn (crashed worker, durable-driver retry) finds and updates the row a
|
|
213
|
-
* previous attempt started instead of inserting a second one. */
|
|
214
|
-
id?: string;
|
|
215
|
-
threadId: string;
|
|
216
|
-
role: 'user' | 'assistant' | 'system' | 'tool';
|
|
217
|
-
content: string;
|
|
218
|
-
parts?: ChatMessagePart[];
|
|
219
|
-
toolName?: string | null;
|
|
220
|
-
model?: string | null;
|
|
221
|
-
requestedModel?: string | null;
|
|
222
|
-
servedModel?: string | null;
|
|
223
|
-
servedProvider?: string | null;
|
|
224
|
-
servedSource?: string | null;
|
|
225
|
-
inputTokens?: number | null;
|
|
226
|
-
outputTokens?: number | null;
|
|
227
|
-
reasoningTokens?: number | null;
|
|
228
|
-
cacheReadTokens?: number | null;
|
|
229
|
-
cacheWriteTokens?: number | null;
|
|
230
|
-
costUsd?: number | null;
|
|
231
|
-
/** Opaque product-column values written verbatim in the SAME insert. */
|
|
232
|
-
extras?: Record<string, unknown>;
|
|
233
|
-
}
|
|
234
|
-
/** Fields an existing message row may be patched with. Every field is
|
|
235
|
-
* optional and only DEFINED fields are written, so a partial patch never
|
|
236
|
-
* clears a column it does not mention. `threadId` and `role` are absent on
|
|
237
|
-
* purpose: a message never moves thread or changes speaker.
|
|
238
|
-
*
|
|
239
|
-
* Exists for incremental assistant persistence — the streaming turn writes
|
|
240
|
-
* the row once and then patches it as content accumulates, so the durable
|
|
241
|
-
* transcript is at most one cadence interval behind the live stream. */
|
|
242
|
-
interface UpdateMessageInput {
|
|
243
|
-
content?: string;
|
|
244
|
-
parts?: ChatMessagePart[];
|
|
245
|
-
toolName?: string | null;
|
|
246
|
-
model?: string | null;
|
|
247
|
-
requestedModel?: string | null;
|
|
248
|
-
servedModel?: string | null;
|
|
249
|
-
servedProvider?: string | null;
|
|
250
|
-
servedSource?: string | null;
|
|
251
|
-
inputTokens?: number | null;
|
|
252
|
-
outputTokens?: number | null;
|
|
253
|
-
reasoningTokens?: number | null;
|
|
254
|
-
cacheReadTokens?: number | null;
|
|
255
|
-
cacheWriteTokens?: number | null;
|
|
256
|
-
costUsd?: number | null;
|
|
257
|
-
/** Opaque product-column values written verbatim in the SAME update. */
|
|
258
|
-
extras?: Record<string, unknown>;
|
|
259
|
-
}
|
|
260
|
-
/** Define options to configure message listing with optional limit and offset parameters */
|
|
261
|
-
interface ListMessagesOptions {
|
|
262
|
-
limit?: number;
|
|
263
|
-
offset?: number;
|
|
264
|
-
}
|
|
265
|
-
/** Define input for bulk deleting threads with access checks per workspace */
|
|
266
|
-
interface BulkDeleteThreadsInput {
|
|
267
|
-
ids: string[];
|
|
268
|
-
/** Optional single-workspace fence for products whose route already resolved
|
|
269
|
-
* one active workspace. Omitted preserves the multi-workspace legal route. */
|
|
270
|
-
workspaceId?: string;
|
|
271
|
-
/** Called once per distinct workspace the ids touch, before ANY delete. */
|
|
272
|
-
assertAccess: WorkspaceAccessCheck;
|
|
273
|
-
}
|
|
274
|
-
/** Delete threads selected by their last activity time within one workspace.
|
|
275
|
-
*
|
|
276
|
-
* Products can add a lifecycle predicate such as `status = 'active'` through
|
|
277
|
-
* `where`; the store still owns workspace scope, access ordering, and message
|
|
278
|
-
* cleanup for every consumer. */
|
|
279
|
-
interface BulkDeleteThreadsByUpdatedAtInput {
|
|
280
|
-
workspaceId: string;
|
|
281
|
-
/** Exclusive upper bound: rows older than this instant. */
|
|
282
|
-
updatedBefore?: Date;
|
|
283
|
-
/** Inclusive lower bound: rows updated at or after this instant. */
|
|
284
|
-
updatedAfter?: Date;
|
|
285
|
-
where?: SQL;
|
|
286
|
-
/** Called before any delete for the requested workspace. */
|
|
287
|
-
assertAccess: WorkspaceAccessCheck;
|
|
288
|
-
}
|
|
289
|
-
/** Manage chat threads and messages with operations for listing, creating, updating, and deleting data */
|
|
290
|
-
interface ChatStore<TThread = ChatThreadRow, TMessage = ChatMessageRow> {
|
|
291
|
-
listThreads(input: ListThreadsInput): Promise<ListThreadsResult<TThread>>;
|
|
292
|
-
getThread(threadId: string): Promise<TThread | null>;
|
|
293
|
-
createThread(input: CreateThreadInput): Promise<TThread>;
|
|
294
|
-
renameThread(threadId: string, title: string): Promise<TThread | null>;
|
|
295
|
-
pinThread(threadId: string, isPinned: boolean): Promise<TThread | null>;
|
|
296
|
-
/** Messages + thread in one batch. Resolves false when the thread does not
|
|
297
|
-
* exist. `assertAccess` (optional) receives the thread's workspaceId before
|
|
298
|
-
* the delete — single-thread callers usually check access themselves. */
|
|
299
|
-
deleteThread(threadId: string, options?: {
|
|
300
|
-
assertAccess?: WorkspaceAccessCheck;
|
|
301
|
-
}): Promise<boolean>;
|
|
302
|
-
bulkDeleteThreads(input: BulkDeleteThreadsInput): Promise<{
|
|
303
|
-
deleted: number;
|
|
304
|
-
}>;
|
|
305
|
-
bulkDeleteThreadsByUpdatedAt(input: BulkDeleteThreadsByUpdatedAtInput): Promise<{
|
|
306
|
-
deleted: number;
|
|
307
|
-
}>;
|
|
308
|
-
/** Ordered oldest-first: `created_at`, then rowid (insertion order within a
|
|
309
|
-
* same-second burst — a user+assistant pair lands in one epoch second). */
|
|
310
|
-
listMessages(threadId: string, options?: ListMessagesOptions): Promise<TMessage[]>;
|
|
311
|
-
/** Inserts the message and bumps the thread's `updatedAt` in one batch so
|
|
312
|
-
* workspace recency sorts stay truthful. */
|
|
313
|
-
appendMessage(input: AppendMessageInput): Promise<TMessage>;
|
|
314
|
-
/** Patches an existing message and bumps its thread's `updatedAt` in the
|
|
315
|
-
* same batch. Resolves `null` when the id does not exist. Only defined
|
|
316
|
-
* patch fields are written. */
|
|
317
|
-
updateMessage(id: string, patch: UpdateMessageInput): Promise<TMessage | null>;
|
|
318
|
-
/** Removes one message. Resolves false when the id does not exist. Used by
|
|
319
|
-
* incremental persistence to retract a draft row for a turn that ended
|
|
320
|
-
* producing nothing, so an empty assistant row is never left behind. */
|
|
321
|
-
deleteMessage(id: string): Promise<boolean>;
|
|
322
|
-
}
|
|
323
|
-
/** Create a chat store managing threads and messages based on the provided database and tables */
|
|
324
|
-
declare function createChatStore<TTables extends ChatTables>(db: ChatDatabase, tables: TTables): ChatStore<TTables['threads']['$inferSelect'], TTables['messages']['$inferSelect']>;
|
|
325
|
-
|
|
326
|
-
export { type AppendMessageInput, BULK_DELETE_MAX_THREADS, type BulkDeleteThreadsByUpdatedAtInput, type BulkDeleteThreadsInput, type ChatDatabase, type ChatExtraIndexes, ChatMessagePart, type ChatMessageRow, type ChatParentTable, type ChatStore, ChatStoreInputError, type ChatTables, type ChatThreadRow, type CreateChatTablesOptions, type CreateThreadInput, type ListMessagesOptions, type ListThreadsInput, type ListThreadsResult, type NewChatMessageRow, type NewChatThreadRow, type UpdateMessageInput, type WorkspaceAccessCheck, createChatStore, createChatTables, threadTitleFromMessage };
|
|
23
|
+
export * from './core';
|
|
24
|
+
export * from './parts';
|
|
25
|
+
export * from './schema';
|
|
26
|
+
export * from './store';
|