@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,258 +1,18 @@
|
|
|
1
|
-
import { e as InteractionRequestWire } from '../contract-OxG_jVMx.js';
|
|
2
|
-
export { f as ChatFreeTextField, b as ChatInteraction, C as ChatInteractionField, a as ChatInteractionStatus, d as ChatSelectField, g as ComposerAnswerDelivery, h as INTERACTION_CANCEL_EVENT, i as INTERACTION_EVENT, j as INTERACTION_RESOLVED_EVENT, k as InteractionAnswerValue, I as InteractionAnswers, c as InteractionCancelData, l as InteractionPersistedPart, N as NoticeKind, m as NoticePersistedPart, P as ParseInteractionAnswersResult, n as ParseInteractionResult, o as canTransitionInteractionStatus, p as cancelStatusFor, q as composerAnswerData, r as composerAnswerDeliveries, s as dedupeQuestionInteractionsByContent, t as fieldAcceptsFreeText, u as interactionFromWireRequest, v as interactionPartKey, w as interactionToPersistedPart, x as isRenderableInteractionKind, y as isSafeInteractionFieldKey, z as isTerminalInteractionStatus, A as noticePart, B as noticePartKey, D as parseInteractionAnswers, E as parseInteractionCancel, F as parseInteractionRequest, G as persistedPartToInteraction, H as questionInteractionContentSignature, J as stampInteractionAnswers } from '../contract-OxG_jVMx.js';
|
|
3
|
-
import { InteractionOutcome, InteractionData } from '@tangle-network/agent-interface';
|
|
4
|
-
export { InteractionData, InteractionOutcome, InteractionRequest } from '@tangle-network/agent-interface';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
code: string;
|
|
21
|
-
message: string;
|
|
22
|
-
/** Upstream HTTP status; 0 when the sidecar was unreachable. */
|
|
23
|
-
status: number;
|
|
24
|
-
}
|
|
25
|
-
/** Represent the outcome of sidecar interactions with success or error details */
|
|
26
|
-
type SidecarInteractionsResult<T> = {
|
|
27
|
-
succeeded: true;
|
|
28
|
-
value: T;
|
|
29
|
-
} | {
|
|
30
|
-
succeeded: false;
|
|
31
|
-
error: SidecarInteractionsError;
|
|
32
|
-
};
|
|
33
|
-
/** Where and how to reach one session's interaction registry. */
|
|
34
|
-
interface SidecarInteractionsConnection {
|
|
35
|
-
runtimeUrl: string;
|
|
36
|
-
authToken?: string;
|
|
37
|
-
/** The sidecar agent-session id (the chat thread's session). */
|
|
38
|
-
sessionId: string;
|
|
39
|
-
/** Request deadline. A pending interaction means the box is up and the
|
|
40
|
-
* sidecar responsive; a short default keeps a wedged runtime from stalling
|
|
41
|
-
* the answering request. */
|
|
42
|
-
timeoutMs?: number;
|
|
43
|
-
/** Injection seam for tests; defaults to global fetch. */
|
|
44
|
-
fetchImpl?: typeof fetch;
|
|
45
|
-
}
|
|
46
|
-
/** Outstanding (unanswered) interactions for the session — the sidecar's
|
|
47
|
-
* registry is authoritative, so this is the reconnect/reload source of truth. */
|
|
48
|
-
declare function listSessionInteractions(connection: SidecarInteractionsConnection): Promise<SidecarInteractionsResult<InteractionRequestWire[]>>;
|
|
49
|
-
/** Resolves one interaction. `data` is required by the sidecar only for
|
|
50
|
-
* `accepted` outcomes and is validated fail-closed against the answerSpec
|
|
51
|
-
* (400 INVALID_INTERACTION_ANSWER on mismatch). */
|
|
52
|
-
declare function respondToSessionInteraction(connection: SidecarInteractionsConnection, response: {
|
|
53
|
-
id: string;
|
|
54
|
-
outcome: InteractionOutcome;
|
|
55
|
-
data?: InteractionData;
|
|
56
|
-
}): Promise<SidecarInteractionsResult<void>>;
|
|
57
|
-
/**
|
|
58
|
-
* A sandbox session's lifecycle as the sidecar reports it.
|
|
59
|
-
*
|
|
60
|
-
* Every field is optional because the sidecar's payload has grown over time and
|
|
61
|
-
* an older box answers with a subset. A reader that assumes a field is present
|
|
62
|
-
* mis-reads an old box as terminal; the shapes below are read defensively for
|
|
63
|
-
* that reason, not out of caution about types.
|
|
64
|
-
*/
|
|
65
|
-
interface SidecarSessionState {
|
|
66
|
-
state?: string;
|
|
67
|
-
activeExecutionId?: string | null;
|
|
68
|
-
activeExecutionStatus?: string | null;
|
|
69
|
-
reconnectable?: boolean;
|
|
70
|
-
registryAuthority?: string | null;
|
|
71
|
-
terminalReason?: string | null;
|
|
72
|
-
lastEventAt?: string | number | null;
|
|
73
|
-
outstandingInteractions?: unknown[];
|
|
74
|
-
}
|
|
75
|
-
interface SidecarAbortResult {
|
|
76
|
-
cancelled: boolean;
|
|
77
|
-
reason?: string;
|
|
78
|
-
session?: SidecarSessionState;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Whether a session has finished and will not produce more events.
|
|
82
|
-
*
|
|
83
|
-
* The three early returns are the ones that matter: a session with a live
|
|
84
|
-
* execution, one the platform says is reconnectable, or one holding an
|
|
85
|
-
* unanswered interaction is NOT terminal however its `state` string reads. An
|
|
86
|
-
* app that treats such a session as finished abandons a turn mid-flight, or
|
|
87
|
-
* leaves an agent blocked on an answer nobody will send.
|
|
88
|
-
*/
|
|
89
|
-
declare function isTerminalSidecarState(state: {
|
|
90
|
-
state?: string;
|
|
91
|
-
activeExecutionId?: string | null;
|
|
92
|
-
reconnectable?: boolean;
|
|
93
|
-
outstandingInteractions?: unknown[];
|
|
94
|
-
}): boolean;
|
|
95
|
-
/** The session's current lifecycle, for reconnect and resume decisions. */
|
|
96
|
-
declare function getSessionState(connection: SidecarInteractionsConnection): Promise<SidecarInteractionsResult<SidecarSessionState>>;
|
|
97
|
-
/**
|
|
98
|
-
* Cancel a running session.
|
|
99
|
-
*
|
|
100
|
-
* A 404 is reported as a SUCCESSFUL no-op rather than an error: the caller's
|
|
101
|
-
* intent is "this session must not be running", and a session the sidecar has
|
|
102
|
-
* never heard of already satisfies that. Surfacing it as a failure makes every
|
|
103
|
-
* cancel-after-completion look like an outage.
|
|
104
|
-
*/
|
|
105
|
-
declare function abortSession(connection: SidecarInteractionsConnection): Promise<SidecarInteractionsResult<SidecarAbortResult>>;
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Framework-neutral interaction-answer endpoints, lifted out of the per-app
|
|
109
|
-
* route files (gtm `api.chat.interactions`, legal `api.chat.interactions`,
|
|
110
|
-
* tax `api.sessions.$id.interactions` — three byte-similar forks):
|
|
111
|
-
*
|
|
112
|
-
* list(request) — GET: outstanding asks for a live turn (reload restore)
|
|
113
|
-
* answer(request) — POST `{ id, outcome, data? }`: resolve one ask
|
|
114
|
-
*
|
|
115
|
-
* The product supplies ONE seam, `resolveConnection`: authenticate the caller,
|
|
116
|
-
* authorize the thread/session, and resolve the sidecar connection. Everything
|
|
117
|
-
* behind the seam is mechanism the forks kept re-fixing:
|
|
118
|
-
*
|
|
119
|
-
* - body validation (safe field keys, typed values),
|
|
120
|
-
* - sidecar error → client contract mapping (every "the ask is gone" shape
|
|
121
|
-
* becomes 410 so the card flips to its expired state),
|
|
122
|
-
* - duplicate resolution: after answering, every other outstanding ask with
|
|
123
|
-
* the same content signature (a re-emitted duplicate) gets the same answer,
|
|
124
|
-
* - unblock verification: re-list and fail loud (503 INTERACTION_STILL_PENDING)
|
|
125
|
-
* when the sidecar accepted the POST but the ask is still open,
|
|
126
|
-
* - best-effort list: sidecar failures return `{ interactions: [],
|
|
127
|
-
* unavailable }` so a reload restore never breaks the live stream.
|
|
128
|
-
*
|
|
129
|
-
* Handlers return web-standard `Response`s (Workers, Node 18+, Deno) — no
|
|
130
|
-
* router import anywhere.
|
|
2
|
+
* `@tangle-network/agent-app/interactions` — the human-in-the-loop interaction
|
|
3
|
+
* channel, both halves:
|
|
4
|
+
*
|
|
5
|
+
* - the shared wire/persisted-part contract (`contract.ts`) a chat producer
|
|
6
|
+
* and a chat client agree on (also re-exported from `./web-react` so
|
|
7
|
+
* existing imports keep working),
|
|
8
|
+
* - the server side (`sidecar.ts` + `route.ts`): a structural client for the
|
|
9
|
+
* sidecar's `/agents/sessions/{id}/interactions` REST channel and
|
|
10
|
+
* `createInteractionAnswerRoute()`, the list/answer endpoint factory that
|
|
11
|
+
* retires the per-app route forks.
|
|
12
|
+
*
|
|
13
|
+
* The only shared-package peer is `@tangle-network/agent-interface` (schema +
|
|
14
|
+
* types). The sidecar connection is a structural value, never an SDK import.
|
|
131
15
|
*/
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
/** Validate interaction answer body and return success with data or failure with error message */
|
|
136
|
-
type InteractionAnswerBodyValidation = {
|
|
137
|
-
ok: true;
|
|
138
|
-
id: string;
|
|
139
|
-
outcome: InteractionClientOutcome;
|
|
140
|
-
data?: InteractionData;
|
|
141
|
-
} | {
|
|
142
|
-
ok: false;
|
|
143
|
-
error: string;
|
|
144
|
-
};
|
|
145
|
-
/** Validates the client POST body: `{ id, outcome, data? }` with
|
|
146
|
-
* identifier-safe field keys and primitive/string-array values only. */
|
|
147
|
-
declare function validateInteractionAnswerBody(body: Record<string, unknown>): InteractionAnswerBodyValidation;
|
|
148
|
-
/** Provide logging methods for warnings and errors in interaction routes */
|
|
149
|
-
type InteractionRouteLogger = Pick<Console, 'warn' | 'error'>;
|
|
150
|
-
/** Sidecar error → the client-actionable contract. Every "the ask is gone"
|
|
151
|
-
* shape maps to 410 so the card flips to its expired state — a raw 404/409
|
|
152
|
-
* must never surface. */
|
|
153
|
-
declare function mapInteractionRespondFailure(error: SidecarInteractionsError, logger?: InteractionRouteLogger): Response;
|
|
154
|
-
/** The product seam's verdict for one request. `response` short-circuits with
|
|
155
|
-
* a product-authored Response (401/404/429…); `unavailable` means the caller
|
|
156
|
-
* is fine but the sandbox runtime is not reachable — the factory shapes that
|
|
157
|
-
* per intent (empty list for `list`, 503 for `answer`). */
|
|
158
|
-
type InteractionConnectionResolution = {
|
|
159
|
-
ok: true;
|
|
160
|
-
connection: SidecarInteractionsConnection;
|
|
161
|
-
} | {
|
|
162
|
-
ok: false;
|
|
163
|
-
response: Response;
|
|
164
|
-
} | {
|
|
165
|
-
ok: false;
|
|
166
|
-
unavailable: string;
|
|
167
|
-
};
|
|
168
|
-
/** Define arguments required to resolve interaction connections based on request and intent */
|
|
169
|
-
interface ResolveInteractionConnectionArgs {
|
|
170
|
-
request: Request;
|
|
171
|
-
intent: 'list' | 'answer';
|
|
172
|
-
/** The parsed, validated POST body (answer intent only) so the resolver can
|
|
173
|
-
* read product routing fields (workspaceId/threadId) without re-parsing. */
|
|
174
|
-
body?: Record<string, unknown>;
|
|
175
|
-
}
|
|
176
|
-
/** Describe the arguments provided before processing an interaction answer including request, body, and connection details */
|
|
177
|
-
interface BeforeInteractionAnswerArgs {
|
|
178
|
-
request: Request;
|
|
179
|
-
/** Original parsed body, including product routing fields. */
|
|
180
|
-
body: Record<string, unknown>;
|
|
181
|
-
/** Shared validation result; products never need to parse the answer again. */
|
|
182
|
-
answer: Extract<InteractionAnswerBodyValidation, {
|
|
183
|
-
ok: true;
|
|
184
|
-
}>;
|
|
185
|
-
connection: SidecarInteractionsConnection;
|
|
186
|
-
/** The route's single authoritative pre-answer sidecar snapshot. */
|
|
187
|
-
outstanding: InteractionRequestWire[];
|
|
188
|
-
answeredRequest?: InteractionRequestWire;
|
|
189
|
-
/** Content-identical questions that the shared route will also answer. */
|
|
190
|
-
duplicateRequests: InteractionRequestWire[];
|
|
191
|
-
}
|
|
192
|
-
/** Define arguments for durable interaction routes including a stable caller-created attempt key */
|
|
193
|
-
interface DurableInteractionRouteArgs extends BeforeInteractionAnswerArgs {
|
|
194
|
-
/** Caller-created opaque identifier, stable across an ambiguous retry. */
|
|
195
|
-
attemptKey: string;
|
|
196
|
-
}
|
|
197
|
-
/** Crash-recoverable persistence lifecycle for the answer route. The product
|
|
198
|
-
* binds this structural port to its OWN durable store — agent-app ships no
|
|
199
|
-
* implementation (the `/durable-chat` module that used to provide one was
|
|
200
|
-
* removed in 0.44.0 after nine repos produced zero imports of it). Existing
|
|
201
|
-
* `beforeAnswer` behavior remains independent and unchanged. */
|
|
202
|
-
interface DurableInteractionRoutePersistence<TPrepared = unknown> {
|
|
203
|
-
guarantee: 'reconciled' | 'best-effort';
|
|
204
|
-
prepare(args: DurableInteractionRouteArgs): TPrepared | Promise<TPrepared>;
|
|
205
|
-
/** Resolve an ambiguous retry (for example, the sidecar says the ask is
|
|
206
|
-
* already gone). Only `settled:true` permits the route to report success. */
|
|
207
|
-
reconcile(args: DurableInteractionRouteArgs & {
|
|
208
|
-
prepared: TPrepared;
|
|
209
|
-
}): {
|
|
210
|
-
settled: boolean;
|
|
211
|
-
} | Promise<{
|
|
212
|
-
settled: boolean;
|
|
213
|
-
}>;
|
|
214
|
-
/** Record the authority acknowledgement before terminal projection. */
|
|
215
|
-
acknowledge(args: DurableInteractionRouteArgs & {
|
|
216
|
-
prepared: TPrepared;
|
|
217
|
-
duplicateIds: string[];
|
|
218
|
-
}): void | Promise<void>;
|
|
219
|
-
/** Idempotently materialize terminal status and accepted values. */
|
|
220
|
-
finalize(args: DurableInteractionRouteArgs & {
|
|
221
|
-
prepared: TPrepared;
|
|
222
|
-
duplicateIds: string[];
|
|
223
|
-
}): void | Promise<void>;
|
|
224
|
-
fail?(args: DurableInteractionRouteArgs & {
|
|
225
|
-
prepared: TPrepared;
|
|
226
|
-
error: unknown;
|
|
227
|
-
}): void | Promise<void>;
|
|
228
|
-
}
|
|
229
|
-
/** Define options to authenticate, authorize, and manage persistence for interaction answer routes */
|
|
230
|
-
interface InteractionAnswerRouteOptions {
|
|
231
|
-
/** Authenticate + authorize the caller and resolve the sidecar connection.
|
|
232
|
-
* This is the only product-supplied step: session auth, workspace/thread
|
|
233
|
-
* access, rate limiting, and box resolution all live here. */
|
|
234
|
-
resolveConnection: (args: ResolveInteractionConnectionArgs) => Promise<InteractionConnectionResolution>;
|
|
235
|
-
/** Product persistence seam that runs before the answer can unblock and
|
|
236
|
-
* finalize the agent turn. A throw aborts the request before any answer POST. */
|
|
237
|
-
beforeAnswer?: (args: BeforeInteractionAnswerArgs) => void | Promise<void>;
|
|
238
|
-
/** Additive crash-recoverable settlement. When configured, POST requires an
|
|
239
|
-
* `attemptKey`; accepted values are finalized only after sidecar ack. */
|
|
240
|
-
durable?: DurableInteractionRoutePersistence;
|
|
241
|
-
logger?: InteractionRouteLogger;
|
|
242
|
-
}
|
|
243
|
-
/** Define routes to list outstanding interactions and resolve answers for live turns */
|
|
244
|
-
interface InteractionAnswerRoute {
|
|
245
|
-
/** GET — outstanding interactions for a live turn. Failures return an empty
|
|
246
|
-
* list with an explicit `unavailable` code: the caller is a best-effort
|
|
247
|
-
* reload restore, and the live/replayed stream must stay untouched when the
|
|
248
|
-
* sidecar cannot answer. */
|
|
249
|
-
list: (request: Request) => Promise<Response>;
|
|
250
|
-
/** POST `{ id, outcome, data?, ...productFields }` — resolve one ask, answer
|
|
251
|
-
* content-identical duplicates the same way, then re-list to prove the run
|
|
252
|
-
* actually unblocked. */
|
|
253
|
-
answer: (request: Request) => Promise<Response>;
|
|
254
|
-
}
|
|
255
|
-
/** Create an interaction answer route that handles listing and resolving interaction requests */
|
|
256
|
-
declare function createInteractionAnswerRoute(options: InteractionAnswerRouteOptions): InteractionAnswerRoute;
|
|
257
|
-
|
|
258
|
-
export { type BeforeInteractionAnswerArgs, type DurableInteractionRouteArgs, type DurableInteractionRoutePersistence, type InteractionAnswerBodyValidation, type InteractionAnswerRoute, type InteractionAnswerRouteOptions, type InteractionClientOutcome, type InteractionConnectionResolution, InteractionRequestWire, type InteractionRouteLogger, type ResolveInteractionConnectionArgs, type SidecarAbortResult, type SidecarInteractionsConnection, type SidecarInteractionsError, type SidecarInteractionsResult, type SidecarSessionState, abortSession, createInteractionAnswerRoute, getSessionState, isTerminalSidecarState, listSessionInteractions, mapInteractionRespondFailure, respondToSessionInteraction, validateInteractionAnswerBody };
|
|
16
|
+
export * from './contract';
|
|
17
|
+
export * from './sidecar';
|
|
18
|
+
export * from './route';
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework-neutral interaction-answer endpoints, lifted out of the per-app
|
|
3
|
+
* route files (gtm `api.chat.interactions`, legal `api.chat.interactions`,
|
|
4
|
+
* tax `api.sessions.$id.interactions` — three byte-similar forks):
|
|
5
|
+
*
|
|
6
|
+
* list(request) — GET: outstanding asks for a live turn (reload restore)
|
|
7
|
+
* answer(request) — POST `{ id, outcome, data? }`: resolve one ask
|
|
8
|
+
*
|
|
9
|
+
* The product supplies ONE seam, `resolveConnection`: authenticate the caller,
|
|
10
|
+
* authorize the thread/session, and resolve the sidecar connection. Everything
|
|
11
|
+
* behind the seam is mechanism the forks kept re-fixing:
|
|
12
|
+
*
|
|
13
|
+
* - body validation (safe field keys, typed values),
|
|
14
|
+
* - sidecar error → client contract mapping (every "the ask is gone" shape
|
|
15
|
+
* becomes 410 so the card flips to its expired state),
|
|
16
|
+
* - duplicate resolution: after answering, every other outstanding ask with
|
|
17
|
+
* the same content signature (a re-emitted duplicate) gets the same answer,
|
|
18
|
+
* - unblock verification: re-list and fail loud (503 INTERACTION_STILL_PENDING)
|
|
19
|
+
* when the sidecar accepted the POST but the ask is still open,
|
|
20
|
+
* - best-effort list: sidecar failures return `{ interactions: [],
|
|
21
|
+
* unavailable }` so a reload restore never breaks the live stream.
|
|
22
|
+
*
|
|
23
|
+
* Handlers return web-standard `Response`s (Workers, Node 18+, Deno) — no
|
|
24
|
+
* router import anywhere.
|
|
25
|
+
*/
|
|
26
|
+
import { type InteractionData, type InteractionRequestWire } from './contract';
|
|
27
|
+
import { type SidecarInteractionsConnection, type SidecarInteractionsError } from './sidecar';
|
|
28
|
+
/** Define possible outcomes for an interaction client as accepted or declined */
|
|
29
|
+
export type InteractionClientOutcome = 'accepted' | 'declined';
|
|
30
|
+
/** Validate interaction answer body and return success with data or failure with error message */
|
|
31
|
+
export type InteractionAnswerBodyValidation = {
|
|
32
|
+
ok: true;
|
|
33
|
+
id: string;
|
|
34
|
+
outcome: InteractionClientOutcome;
|
|
35
|
+
data?: InteractionData;
|
|
36
|
+
} | {
|
|
37
|
+
ok: false;
|
|
38
|
+
error: string;
|
|
39
|
+
};
|
|
40
|
+
/** Validates the client POST body: `{ id, outcome, data? }` with
|
|
41
|
+
* identifier-safe field keys and primitive/string-array values only. */
|
|
42
|
+
export declare function validateInteractionAnswerBody(body: Record<string, unknown>): InteractionAnswerBodyValidation;
|
|
43
|
+
/** Provide logging methods for warnings and errors in interaction routes */
|
|
44
|
+
export type InteractionRouteLogger = Pick<Console, 'warn' | 'error'>;
|
|
45
|
+
/** Sidecar error → the client-actionable contract. Every "the ask is gone"
|
|
46
|
+
* shape maps to 410 so the card flips to its expired state — a raw 404/409
|
|
47
|
+
* must never surface. */
|
|
48
|
+
export declare function mapInteractionRespondFailure(error: SidecarInteractionsError, logger?: InteractionRouteLogger): Response;
|
|
49
|
+
/** The product seam's verdict for one request. `response` short-circuits with
|
|
50
|
+
* a product-authored Response (401/404/429…); `unavailable` means the caller
|
|
51
|
+
* is fine but the sandbox runtime is not reachable — the factory shapes that
|
|
52
|
+
* per intent (empty list for `list`, 503 for `answer`). */
|
|
53
|
+
export type InteractionConnectionResolution = {
|
|
54
|
+
ok: true;
|
|
55
|
+
connection: SidecarInteractionsConnection;
|
|
56
|
+
} | {
|
|
57
|
+
ok: false;
|
|
58
|
+
response: Response;
|
|
59
|
+
} | {
|
|
60
|
+
ok: false;
|
|
61
|
+
unavailable: string;
|
|
62
|
+
};
|
|
63
|
+
/** Define arguments required to resolve interaction connections based on request and intent */
|
|
64
|
+
export interface ResolveInteractionConnectionArgs {
|
|
65
|
+
request: Request;
|
|
66
|
+
intent: 'list' | 'answer';
|
|
67
|
+
/** The parsed, validated POST body (answer intent only) so the resolver can
|
|
68
|
+
* read product routing fields (workspaceId/threadId) without re-parsing. */
|
|
69
|
+
body?: Record<string, unknown>;
|
|
70
|
+
}
|
|
71
|
+
/** Describe the arguments provided before processing an interaction answer including request, body, and connection details */
|
|
72
|
+
export interface BeforeInteractionAnswerArgs {
|
|
73
|
+
request: Request;
|
|
74
|
+
/** Original parsed body, including product routing fields. */
|
|
75
|
+
body: Record<string, unknown>;
|
|
76
|
+
/** Shared validation result; products never need to parse the answer again. */
|
|
77
|
+
answer: Extract<InteractionAnswerBodyValidation, {
|
|
78
|
+
ok: true;
|
|
79
|
+
}>;
|
|
80
|
+
connection: SidecarInteractionsConnection;
|
|
81
|
+
/** The route's single authoritative pre-answer sidecar snapshot. */
|
|
82
|
+
outstanding: InteractionRequestWire[];
|
|
83
|
+
answeredRequest?: InteractionRequestWire;
|
|
84
|
+
/** Content-identical questions that the shared route will also answer. */
|
|
85
|
+
duplicateRequests: InteractionRequestWire[];
|
|
86
|
+
}
|
|
87
|
+
/** Define arguments for durable interaction routes including a stable caller-created attempt key */
|
|
88
|
+
export interface DurableInteractionRouteArgs extends BeforeInteractionAnswerArgs {
|
|
89
|
+
/** Caller-created opaque identifier, stable across an ambiguous retry. */
|
|
90
|
+
attemptKey: string;
|
|
91
|
+
}
|
|
92
|
+
/** Crash-recoverable persistence lifecycle for the answer route. The product
|
|
93
|
+
* binds this structural port to its OWN durable store — agent-app ships no
|
|
94
|
+
* implementation (the `/durable-chat` module that used to provide one was
|
|
95
|
+
* removed in 0.44.0 after nine repos produced zero imports of it). Existing
|
|
96
|
+
* `beforeAnswer` behavior remains independent and unchanged. */
|
|
97
|
+
export interface DurableInteractionRoutePersistence<TPrepared = unknown> {
|
|
98
|
+
guarantee: 'reconciled' | 'best-effort';
|
|
99
|
+
prepare(args: DurableInteractionRouteArgs): TPrepared | Promise<TPrepared>;
|
|
100
|
+
/** Resolve an ambiguous retry (for example, the sidecar says the ask is
|
|
101
|
+
* already gone). Only `settled:true` permits the route to report success. */
|
|
102
|
+
reconcile(args: DurableInteractionRouteArgs & {
|
|
103
|
+
prepared: TPrepared;
|
|
104
|
+
}): {
|
|
105
|
+
settled: boolean;
|
|
106
|
+
} | Promise<{
|
|
107
|
+
settled: boolean;
|
|
108
|
+
}>;
|
|
109
|
+
/** Record the authority acknowledgement before terminal projection. */
|
|
110
|
+
acknowledge(args: DurableInteractionRouteArgs & {
|
|
111
|
+
prepared: TPrepared;
|
|
112
|
+
duplicateIds: string[];
|
|
113
|
+
}): void | Promise<void>;
|
|
114
|
+
/** Idempotently materialize terminal status and accepted values. */
|
|
115
|
+
finalize(args: DurableInteractionRouteArgs & {
|
|
116
|
+
prepared: TPrepared;
|
|
117
|
+
duplicateIds: string[];
|
|
118
|
+
}): void | Promise<void>;
|
|
119
|
+
fail?(args: DurableInteractionRouteArgs & {
|
|
120
|
+
prepared: TPrepared;
|
|
121
|
+
error: unknown;
|
|
122
|
+
}): void | Promise<void>;
|
|
123
|
+
}
|
|
124
|
+
/** Define options to authenticate, authorize, and manage persistence for interaction answer routes */
|
|
125
|
+
export interface InteractionAnswerRouteOptions {
|
|
126
|
+
/** Authenticate + authorize the caller and resolve the sidecar connection.
|
|
127
|
+
* This is the only product-supplied step: session auth, workspace/thread
|
|
128
|
+
* access, rate limiting, and box resolution all live here. */
|
|
129
|
+
resolveConnection: (args: ResolveInteractionConnectionArgs) => Promise<InteractionConnectionResolution>;
|
|
130
|
+
/** Product persistence seam that runs before the answer can unblock and
|
|
131
|
+
* finalize the agent turn. A throw aborts the request before any answer POST. */
|
|
132
|
+
beforeAnswer?: (args: BeforeInteractionAnswerArgs) => void | Promise<void>;
|
|
133
|
+
/** Additive crash-recoverable settlement. When configured, POST requires an
|
|
134
|
+
* `attemptKey`; accepted values are finalized only after sidecar ack. */
|
|
135
|
+
durable?: DurableInteractionRoutePersistence;
|
|
136
|
+
logger?: InteractionRouteLogger;
|
|
137
|
+
}
|
|
138
|
+
/** Define routes to list outstanding interactions and resolve answers for live turns */
|
|
139
|
+
export interface InteractionAnswerRoute {
|
|
140
|
+
/** GET — outstanding interactions for a live turn. Failures return an empty
|
|
141
|
+
* list with an explicit `unavailable` code: the caller is a best-effort
|
|
142
|
+
* reload restore, and the live/replayed stream must stay untouched when the
|
|
143
|
+
* sidecar cannot answer. */
|
|
144
|
+
list: (request: Request) => Promise<Response>;
|
|
145
|
+
/** POST `{ id, outcome, data?, ...productFields }` — resolve one ask, answer
|
|
146
|
+
* content-identical duplicates the same way, then re-list to prove the run
|
|
147
|
+
* actually unblocked. */
|
|
148
|
+
answer: (request: Request) => Promise<Response>;
|
|
149
|
+
}
|
|
150
|
+
/** Create an interaction answer route that handles listing and resolving interaction requests */
|
|
151
|
+
export declare function createInteractionAnswerRoute(options: InteractionAnswerRouteOptions): InteractionAnswerRoute;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-side client for the sandbox sidecar's generic interaction routes
|
|
3
|
+
* (`GET/POST {runtimeUrl}/agents/sessions/{sessionId}/interactions`). The
|
|
4
|
+
* pinned sandbox SDK exposes only the question-specific `session().answer()`
|
|
5
|
+
* convenience; these raw calls are backend-agnostic (question/permission/plan,
|
|
6
|
+
* any harness) and carry explicit outcomes (accepted/declined).
|
|
7
|
+
*
|
|
8
|
+
* Server-only: the sidecar bearer must never reach browser code. The caller
|
|
9
|
+
* supplies the connection as a structural value (runtime URL + bearer +
|
|
10
|
+
* session id) — no sandbox-SDK import, so any box-resolution strategy works.
|
|
11
|
+
*/
|
|
12
|
+
import type { InteractionData, InteractionOutcome, InteractionRequestWire } from './contract';
|
|
13
|
+
/** Describe error details including code, message, and upstream HTTP status for sidecar interactions */
|
|
14
|
+
export interface SidecarInteractionsError {
|
|
15
|
+
code: string;
|
|
16
|
+
message: string;
|
|
17
|
+
/** Upstream HTTP status; 0 when the sidecar was unreachable. */
|
|
18
|
+
status: number;
|
|
19
|
+
}
|
|
20
|
+
/** Represent the outcome of sidecar interactions with success or error details */
|
|
21
|
+
export type SidecarInteractionsResult<T> = {
|
|
22
|
+
succeeded: true;
|
|
23
|
+
value: T;
|
|
24
|
+
} | {
|
|
25
|
+
succeeded: false;
|
|
26
|
+
error: SidecarInteractionsError;
|
|
27
|
+
};
|
|
28
|
+
/** Where and how to reach one session's interaction registry. */
|
|
29
|
+
export interface SidecarInteractionsConnection {
|
|
30
|
+
runtimeUrl: string;
|
|
31
|
+
authToken?: string;
|
|
32
|
+
/** The sidecar agent-session id (the chat thread's session). */
|
|
33
|
+
sessionId: string;
|
|
34
|
+
/** Request deadline. A pending interaction means the box is up and the
|
|
35
|
+
* sidecar responsive; a short default keeps a wedged runtime from stalling
|
|
36
|
+
* the answering request. */
|
|
37
|
+
timeoutMs?: number;
|
|
38
|
+
/** Injection seam for tests; defaults to global fetch. */
|
|
39
|
+
fetchImpl?: typeof fetch;
|
|
40
|
+
}
|
|
41
|
+
/** Outstanding (unanswered) interactions for the session — the sidecar's
|
|
42
|
+
* registry is authoritative, so this is the reconnect/reload source of truth. */
|
|
43
|
+
export declare function listSessionInteractions(connection: SidecarInteractionsConnection): Promise<SidecarInteractionsResult<InteractionRequestWire[]>>;
|
|
44
|
+
/** Resolves one interaction. `data` is required by the sidecar only for
|
|
45
|
+
* `accepted` outcomes and is validated fail-closed against the answerSpec
|
|
46
|
+
* (400 INVALID_INTERACTION_ANSWER on mismatch). */
|
|
47
|
+
export declare function respondToSessionInteraction(connection: SidecarInteractionsConnection, response: {
|
|
48
|
+
id: string;
|
|
49
|
+
outcome: InteractionOutcome;
|
|
50
|
+
data?: InteractionData;
|
|
51
|
+
}): Promise<SidecarInteractionsResult<void>>;
|
|
52
|
+
/**
|
|
53
|
+
* A sandbox session's lifecycle as the sidecar reports it.
|
|
54
|
+
*
|
|
55
|
+
* Every field is optional because the sidecar's payload has grown over time and
|
|
56
|
+
* an older box answers with a subset. A reader that assumes a field is present
|
|
57
|
+
* mis-reads an old box as terminal; the shapes below are read defensively for
|
|
58
|
+
* that reason, not out of caution about types.
|
|
59
|
+
*/
|
|
60
|
+
export interface SidecarSessionState {
|
|
61
|
+
state?: string;
|
|
62
|
+
activeExecutionId?: string | null;
|
|
63
|
+
activeExecutionStatus?: string | null;
|
|
64
|
+
reconnectable?: boolean;
|
|
65
|
+
registryAuthority?: string | null;
|
|
66
|
+
terminalReason?: string | null;
|
|
67
|
+
lastEventAt?: string | number | null;
|
|
68
|
+
outstandingInteractions?: unknown[];
|
|
69
|
+
}
|
|
70
|
+
export interface SidecarAbortResult {
|
|
71
|
+
cancelled: boolean;
|
|
72
|
+
reason?: string;
|
|
73
|
+
session?: SidecarSessionState;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Whether a session has finished and will not produce more events.
|
|
77
|
+
*
|
|
78
|
+
* The three early returns are the ones that matter: a session with a live
|
|
79
|
+
* execution, one the platform says is reconnectable, or one holding an
|
|
80
|
+
* unanswered interaction is NOT terminal however its `state` string reads. An
|
|
81
|
+
* app that treats such a session as finished abandons a turn mid-flight, or
|
|
82
|
+
* leaves an agent blocked on an answer nobody will send.
|
|
83
|
+
*/
|
|
84
|
+
export declare function isTerminalSidecarState(state: {
|
|
85
|
+
state?: string;
|
|
86
|
+
activeExecutionId?: string | null;
|
|
87
|
+
reconnectable?: boolean;
|
|
88
|
+
outstandingInteractions?: unknown[];
|
|
89
|
+
}): boolean;
|
|
90
|
+
/** The session's current lifecycle, for reconnect and resume decisions. */
|
|
91
|
+
export declare function getSessionState(connection: SidecarInteractionsConnection): Promise<SidecarInteractionsResult<SidecarSessionState>>;
|
|
92
|
+
/**
|
|
93
|
+
* Cancel a running session.
|
|
94
|
+
*
|
|
95
|
+
* A 404 is reported as a SUCCESSFUL no-op rather than an error: the caller's
|
|
96
|
+
* intent is "this session must not be running", and a session the sidecar has
|
|
97
|
+
* never heard of already satisfies that. Surfacing it as a failure makes every
|
|
98
|
+
* cancel-after-completion look like an outage.
|
|
99
|
+
*/
|
|
100
|
+
export declare function abortSession(connection: SidecarInteractionsConnection): Promise<SidecarInteractionsResult<SidecarAbortResult>>;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { KnowledgeRequirementCategory, KnowledgeAcquisitionMode, KnowledgeImportance, KnowledgeFreshness, KnowledgeSensitivity, KnowledgeRequirement } from '@tangle-network/agent-eval';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Declarative knowledge-requirement gate.
|
|
5
3
|
*
|
|
@@ -18,9 +16,9 @@ import { KnowledgeRequirementCategory, KnowledgeAcquisitionMode, KnowledgeImport
|
|
|
18
16
|
* — implements. Emits `@tangle-network/agent-eval`'s `KnowledgeRequirement[]`,
|
|
19
17
|
* exactly what the agent-runtime control loop consumes.
|
|
20
18
|
*/
|
|
21
|
-
|
|
19
|
+
import type { KnowledgeAcquisitionMode, KnowledgeFreshness, KnowledgeImportance, KnowledgeRequirement, KnowledgeRequirementCategory, KnowledgeSensitivity } from '@tangle-network/agent-eval';
|
|
22
20
|
/** A declarative rule for satisfying a requirement from workspace state. */
|
|
23
|
-
type SatisfiedByRule =
|
|
21
|
+
export type SatisfiedByRule =
|
|
24
22
|
/** A workspace-config field (dot-path) is set. `nonEmpty` requires a
|
|
25
23
|
* non-empty array/string rather than mere presence. */
|
|
26
24
|
{
|
|
@@ -41,7 +39,7 @@ type SatisfiedByRule =
|
|
|
41
39
|
allOf: SatisfiedByRule[];
|
|
42
40
|
};
|
|
43
41
|
/** Define the criteria and conditions required to satisfy a specific knowledge requirement */
|
|
44
|
-
interface KnowledgeRequirementSpec {
|
|
42
|
+
export interface KnowledgeRequirementSpec {
|
|
45
43
|
id: string;
|
|
46
44
|
description: string;
|
|
47
45
|
category: KnowledgeRequirementCategory;
|
|
@@ -61,7 +59,7 @@ interface KnowledgeRequirementSpec {
|
|
|
61
59
|
}
|
|
62
60
|
/** The single seam a backend implements. `preset-cloudflare` provides a D1
|
|
63
61
|
* implementation; a custom stack supplies its own. */
|
|
64
|
-
interface KnowledgeStateAccessor {
|
|
62
|
+
export interface KnowledgeStateAccessor {
|
|
65
63
|
/** Resolve a workspace-config field value (dot-path), or undefined. */
|
|
66
64
|
config: (path: string) => unknown;
|
|
67
65
|
/** Count rows in `table` for the active workspace, optionally status-filtered. */
|
|
@@ -72,7 +70,7 @@ interface KnowledgeStateAccessor {
|
|
|
72
70
|
}) => number | Promise<number>;
|
|
73
71
|
}
|
|
74
72
|
/** Define a signal representing knowledge with confidence level and optional supporting evidence */
|
|
75
|
-
interface KnowledgeSignal {
|
|
73
|
+
export interface KnowledgeSignal {
|
|
76
74
|
confidence: number;
|
|
77
75
|
evidence?: string;
|
|
78
76
|
}
|
|
@@ -81,12 +79,10 @@ interface KnowledgeSignal {
|
|
|
81
79
|
* confidence from `signals` (default 0). Pure + sync: an eval harness can pass
|
|
82
80
|
* hand-authored signals; production passes the output of {@link deriveSignals}.
|
|
83
81
|
*/
|
|
84
|
-
declare function buildKnowledgeRequirements(specs: KnowledgeRequirementSpec[], signals?: Record<string, KnowledgeSignal>): KnowledgeRequirement[];
|
|
82
|
+
export declare function buildKnowledgeRequirements(specs: KnowledgeRequirementSpec[], signals?: Record<string, KnowledgeSignal>): KnowledgeRequirement[];
|
|
85
83
|
/**
|
|
86
84
|
* Score every spec from workspace state. `derive` (code) wins; otherwise the
|
|
87
85
|
* declarative `satisfiedBy` rule is evaluated through the accessor; a spec with
|
|
88
86
|
* neither scores 0 (an acquisition gate, e.g. `search_web`).
|
|
89
87
|
*/
|
|
90
|
-
declare function deriveSignals(specs: KnowledgeRequirementSpec[], ctx: KnowledgeStateAccessor): Promise<Record<string, KnowledgeSignal>>;
|
|
91
|
-
|
|
92
|
-
export { type KnowledgeRequirementSpec, type KnowledgeSignal, type KnowledgeStateAccessor, type SatisfiedByRule, buildKnowledgeRequirements, deriveSignals };
|
|
88
|
+
export declare function deriveSignals(specs: KnowledgeRequirementSpec[], ctx: KnowledgeStateAccessor): Promise<Record<string, KnowledgeSignal>>;
|