@tangle-network/agent-app 0.45.54 → 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 +4 -3
- 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
package/dist/web/index.d.ts
CHANGED
|
@@ -1,194 +1,3 @@
|
|
|
1
|
-
import { K as KvLike } from '../rate-limit-BOVmJRXZ.js';
|
|
2
|
-
export { R as RateLimitResult, c as checkRateLimit } from '../rate-limit-BOVmJRXZ.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Rate-limit policy for FREE routes: authenticated, unmetered, compute-bearing
|
|
6
|
-
* endpoints.
|
|
7
|
-
*
|
|
8
|
-
* Billing meters the chat turn. Everything deterministic a product adds beside
|
|
9
|
-
* it — a planning recompute fired on every slider drag, a redline diff, a
|
|
10
|
-
* deadline computation — runs unmetered, so nothing bounds how much worker CPU
|
|
11
|
-
* one authenticated caller can spend. `checkRateLimit` is the primitive; this
|
|
12
|
-
* is the policy around it, so a route declares a cost class instead of each one
|
|
13
|
-
* inventing a key format, a budget, and a denial response.
|
|
14
|
-
*
|
|
15
|
-
* Three rules this enforces that a hand-rolled call site usually does not:
|
|
16
|
-
*
|
|
17
|
-
* 1. **Identity is required.** A missing subject is denied, never pooled into a
|
|
18
|
-
* shared bucket and never quietly keyed by IP — a shared bucket makes one
|
|
19
|
-
* heavy user throttle everyone, and an IP key makes one NAT do the same.
|
|
20
|
-
* 2. **A limiter that throws denies.** KV `get`/`put` failures are transport
|
|
21
|
-
* failures; treating them as "allowed" converts a KV outage into an
|
|
22
|
-
* unbounded-compute hole, which is exactly when the limiter matters most.
|
|
23
|
-
* 3. **The denial is a typed, correctable outcome** — reason, HTTP status and
|
|
24
|
-
* `Retry-After` — so the caller answers the client rather than failing
|
|
25
|
-
* opaquely or, worse, continuing.
|
|
26
|
-
*
|
|
27
|
-
* ```ts
|
|
28
|
-
* export const action = withFreeRouteLimit(
|
|
29
|
-
* {
|
|
30
|
-
* route: 'tax.plan.recompute',
|
|
31
|
-
* costClass: 'interactive',
|
|
32
|
-
* kv: ({ context }) => context.cloudflare.env.RATE_LIMIT_KV,
|
|
33
|
-
* identify: async ({ request }) => {
|
|
34
|
-
* const session = await requireSession(request)
|
|
35
|
-
* return { subject: session.userId, workspace: session.workspaceId }
|
|
36
|
-
* },
|
|
37
|
-
* },
|
|
38
|
-
* async ({ request }) => Response.json(recompute(await request.json())),
|
|
39
|
-
* )
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
/** Requests allowed per identity inside a sliding window. */
|
|
44
|
-
interface RateLimitBudget {
|
|
45
|
-
limit: number;
|
|
46
|
-
windowSeconds: number;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* How expensive one call is, which is what picks the default budget.
|
|
50
|
-
*
|
|
51
|
-
* - `interactive` — a control the user drags or types into, recomputed per
|
|
52
|
-
* tick. Sized for sustained two-per-second interaction, so a real slider
|
|
53
|
-
* never trips it and a script still stops.
|
|
54
|
-
* - `compute` — a derivation the user triggers deliberately (recalculate a
|
|
55
|
-
* plan, diff a document, compute a deadline set). The default.
|
|
56
|
-
* - `heavy` — whole-document or whole-matter work measured in seconds of CPU.
|
|
57
|
-
*/
|
|
58
|
-
type FreeRouteClass = 'interactive' | 'compute' | 'heavy';
|
|
59
|
-
/** Default budget per cost class. A product overrides with an explicit
|
|
60
|
-
* `budget` when it has measured its own route. */
|
|
61
|
-
declare const FREE_ROUTE_BUDGETS: Readonly<Record<FreeRouteClass, RateLimitBudget>>;
|
|
62
|
-
/** A workspace's shared ceiling defaults to this many times one member's, so a
|
|
63
|
-
* multi-seat tenant is bounded without a single active member tripping it. */
|
|
64
|
-
declare const WORKSPACE_BUDGET_MULTIPLIER = 5;
|
|
65
|
-
/** Why a call was refused. Every value is a REFUSAL — there is no reason code
|
|
66
|
-
* that lets the handler run. */
|
|
67
|
-
type FreeRouteDenialReason =
|
|
68
|
-
/** No authenticated subject. Not correctable by waiting. */
|
|
69
|
-
'unidentified'
|
|
70
|
-
/** The window is full for this subject or workspace. */
|
|
71
|
-
| 'rate-limited'
|
|
72
|
-
/** The limiter itself failed (KV read/write threw). Denied, not passed. */
|
|
73
|
-
| 'limiter-unavailable';
|
|
74
|
-
/** Which window refused the call. `null` when no window was consulted. */
|
|
75
|
-
type FreeRouteDimension = 'subject' | 'workspace' | null;
|
|
76
|
-
/**
|
|
77
|
-
* A correctable refusal: the caller maps `status` + `retryAfterSeconds` onto a
|
|
78
|
-
* response (see {@link freeRouteLimitResponse}) so the client learns what to do
|
|
79
|
-
* next. Carrying the limiter's own failure in `cause` keeps a KV outage
|
|
80
|
-
* diagnosable instead of collapsing into a generic 429.
|
|
81
|
-
*/
|
|
82
|
-
declare class FreeRouteLimitError extends Error {
|
|
83
|
-
readonly reason: FreeRouteDenialReason;
|
|
84
|
-
readonly status: 401 | 429 | 503;
|
|
85
|
-
readonly retryAfterSeconds: number;
|
|
86
|
-
readonly dimension: FreeRouteDimension;
|
|
87
|
-
readonly route: string;
|
|
88
|
-
constructor(init: {
|
|
89
|
-
reason: FreeRouteDenialReason;
|
|
90
|
-
status: 401 | 429 | 503;
|
|
91
|
-
retryAfterSeconds: number;
|
|
92
|
-
dimension: FreeRouteDimension;
|
|
93
|
-
route: string;
|
|
94
|
-
message: string;
|
|
95
|
-
cause?: unknown;
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
/** What remains of the binding window after an allowed call. */
|
|
99
|
-
interface FreeRouteAllowance {
|
|
100
|
-
/** Remaining calls in whichever window is tightest. */
|
|
101
|
-
remaining: number;
|
|
102
|
-
/** Unix seconds at which that window resets. */
|
|
103
|
-
resetAt: number;
|
|
104
|
-
/** The budget that window enforces. */
|
|
105
|
-
budget: RateLimitBudget;
|
|
106
|
-
/** Which window is tightest — `subject` unless a workspace ceiling binds. */
|
|
107
|
-
dimension: Exclude<FreeRouteDimension, null>;
|
|
108
|
-
}
|
|
109
|
-
/** Typed outcome at the route boundary: an allowance, or a refusal that says
|
|
110
|
-
* how to correct it. There is no third state and no silent pass. */
|
|
111
|
-
type FreeRouteLimitOutcome = {
|
|
112
|
-
succeeded: true;
|
|
113
|
-
value: FreeRouteAllowance;
|
|
114
|
-
} | {
|
|
115
|
-
succeeded: false;
|
|
116
|
-
error: FreeRouteLimitError;
|
|
117
|
-
};
|
|
118
|
-
interface FreeRouteLimitInput {
|
|
119
|
-
kv: KvLike;
|
|
120
|
-
/** Stable route name. Part of the key, so two routes never share a window. */
|
|
121
|
-
route: string;
|
|
122
|
-
/** The authenticated subject (user id). Absent or blank ⇒ denied. */
|
|
123
|
-
subject: string | null | undefined;
|
|
124
|
-
/** Tenant the call belongs to. When present, a second, wider window bounds
|
|
125
|
-
* the workspace as a whole. */
|
|
126
|
-
workspace?: string | null;
|
|
127
|
-
/** Cost class picking the default budget. Ignored when `budget` is given.
|
|
128
|
-
* Default `'compute'`. */
|
|
129
|
-
costClass?: FreeRouteClass;
|
|
130
|
-
budget?: RateLimitBudget;
|
|
131
|
-
/** Workspace ceiling. Defaults to the subject budget's limit multiplied by
|
|
132
|
-
* {@link WORKSPACE_BUDGET_MULTIPLIER} over the same window. */
|
|
133
|
-
workspaceBudget?: RateLimitBudget;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Decide whether one authenticated, unmetered call may run.
|
|
137
|
-
*
|
|
138
|
-
* Checks the subject's window first, then the workspace ceiling when a
|
|
139
|
-
* workspace is supplied; the tighter of the two is what the allowance reports.
|
|
140
|
-
* Every failure path returns a refusal — none returns an allowance.
|
|
141
|
-
*/
|
|
142
|
-
declare function checkFreeRouteLimit(input: FreeRouteLimitInput): Promise<FreeRouteLimitOutcome>;
|
|
143
|
-
interface FreeRouteLimitResponseOptions {
|
|
144
|
-
/** Extra response headers (a product's security headers, CORS). */
|
|
145
|
-
headers?: Record<string, string>;
|
|
146
|
-
/** Client-facing message. Defaults to the error's own message. */
|
|
147
|
-
message?: string;
|
|
148
|
-
}
|
|
149
|
-
/** The refusal as an HTTP response: the error's status, a JSON body carrying
|
|
150
|
-
* the machine-readable `reason`, and `Retry-After` when waiting can fix it. */
|
|
151
|
-
declare function freeRouteLimitResponse(error: FreeRouteLimitError, options?: FreeRouteLimitResponseOptions): Response;
|
|
152
|
-
/** The authenticated caller behind one request. */
|
|
153
|
-
interface FreeRouteIdentity {
|
|
154
|
-
subject: string;
|
|
155
|
-
workspace?: string | null;
|
|
156
|
-
}
|
|
157
|
-
interface WithFreeRouteLimitOptions<TArgs> {
|
|
158
|
-
/** Stable route name; part of the key. */
|
|
159
|
-
route: string;
|
|
160
|
-
costClass?: FreeRouteClass;
|
|
161
|
-
budget?: RateLimitBudget;
|
|
162
|
-
workspaceBudget?: RateLimitBudget;
|
|
163
|
-
/** The KV binding for this request. */
|
|
164
|
-
kv: (args: TArgs) => KvLike;
|
|
165
|
-
/**
|
|
166
|
-
* Resolve the authenticated caller. Return `null` for an unauthenticated
|
|
167
|
-
* request — the wrapper then refuses with 401 and the handler never runs.
|
|
168
|
-
*
|
|
169
|
-
* A THROW here propagates: an auth lookup that failed is not the same as an
|
|
170
|
-
* absent session, and the wrapper will not invent a status for it. The
|
|
171
|
-
* handler still does not run, so the failure stays closed.
|
|
172
|
-
*/
|
|
173
|
-
identify: (args: TArgs) => Promise<FreeRouteIdentity | null> | FreeRouteIdentity | null;
|
|
174
|
-
/** Build the refusal response. Defaults to {@link freeRouteLimitResponse}. */
|
|
175
|
-
onDenied?: (error: FreeRouteLimitError, args: TArgs) => Response | Promise<Response>;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Wrap an authenticated, unmetered, compute-bearing route handler in its
|
|
179
|
-
* budget. The limit is applied BEFORE the handler is entered — including
|
|
180
|
-
* before the request body is read — so a refused call costs a KV read, not the
|
|
181
|
-
* compute the route exists to do.
|
|
182
|
-
*
|
|
183
|
-
* The handler's own response is returned untouched: this never rewrites status,
|
|
184
|
-
* body or headers on the success path, so it cannot break a streaming or
|
|
185
|
-
* pre-built response.
|
|
186
|
-
*
|
|
187
|
-
* `TArgs` is the router's handler-argument object (react-router's
|
|
188
|
-
* `ActionFunctionArgs`, or any single-object shape a product uses).
|
|
189
|
-
*/
|
|
190
|
-
declare function withFreeRouteLimit<TArgs>(options: WithFreeRouteLimitOptions<TArgs>, handler: (args: TArgs) => Response | Promise<Response>): (args: TArgs) => Promise<Response>;
|
|
191
|
-
|
|
192
1
|
/**
|
|
193
2
|
* Web-boundary utilities every agent app's routes hand-roll: JSON body parsing
|
|
194
3
|
* + narrowing, request-context extraction (real client IP behind Cloudflare),
|
|
@@ -197,15 +6,16 @@ declare function withFreeRouteLimit<TArgs>(options: WithFreeRouteLimitOptions<TA
|
|
|
197
6
|
* KV is a structural interface so this needs no `@cloudflare/workers-types`
|
|
198
7
|
* dependency.
|
|
199
8
|
*/
|
|
200
|
-
|
|
201
|
-
|
|
9
|
+
export * from './rate-limit';
|
|
10
|
+
export * from './free-route-limit';
|
|
11
|
+
export type JsonObject = Record<string, unknown>;
|
|
202
12
|
/** Parse + object-narrow a Request body. `[body, null]` on success, `[null,
|
|
203
13
|
* errorResponse]` on a non-object body (callers `if (err) return err`). */
|
|
204
|
-
declare function parseJsonObjectBody(request: Request): Promise<[JsonObject, null] | [null, Response]>;
|
|
14
|
+
export declare function parseJsonObjectBody(request: Request): Promise<[JsonObject, null] | [null, Response]>;
|
|
205
15
|
/** Narrow one required string field, 400 if missing/empty. */
|
|
206
|
-
declare function requireString(body: JsonObject, field: string): string | Response;
|
|
16
|
+
export declare function requireString(body: JsonObject, field: string): string | Response;
|
|
207
17
|
/** Define the context of a request including IP address, user agent, timestamp, and request ID */
|
|
208
|
-
interface RequestContext {
|
|
18
|
+
export interface RequestContext {
|
|
209
19
|
ipAddress: string;
|
|
210
20
|
userAgent: string;
|
|
211
21
|
timestamp: string;
|
|
@@ -213,9 +23,9 @@ interface RequestContext {
|
|
|
213
23
|
}
|
|
214
24
|
/** Extract request context for audit trails. Uses `CF-Connecting-IP` for the
|
|
215
25
|
* real client IP behind Cloudflare. */
|
|
216
|
-
declare function extractRequestContext(request: Request): RequestContext;
|
|
26
|
+
export declare function extractRequestContext(request: Request): RequestContext;
|
|
217
27
|
/** Define options for configuring cookie attributes and behavior */
|
|
218
|
-
interface CookieOptions {
|
|
28
|
+
export interface CookieOptions {
|
|
219
29
|
name: string;
|
|
220
30
|
/** Default '/'. */
|
|
221
31
|
path?: string;
|
|
@@ -231,13 +41,13 @@ interface CookieOptions {
|
|
|
231
41
|
* attributes in Path / HttpOnly / SameSite / Max-Age / Secure order.
|
|
232
42
|
* Throws on `SameSite=None` without `secure` — browsers silently drop that
|
|
233
43
|
* combination, which would otherwise fail invisibly. */
|
|
234
|
-
declare function serializeCookie(value: string, opts: CookieOptions): string;
|
|
44
|
+
export declare function serializeCookie(value: string, opts: CookieOptions): string;
|
|
235
45
|
/** Set-Cookie header value that deletes the cookie (empty value, Max-Age=0). */
|
|
236
|
-
declare function clearCookieHeader(opts: Omit<CookieOptions, 'maxAgeSeconds'>): string;
|
|
46
|
+
export declare function clearCookieHeader(opts: Omit<CookieOptions, 'maxAgeSeconds'>): string;
|
|
237
47
|
/** Read + decode one cookie from a Cookie request header; null when absent. */
|
|
238
|
-
declare function readCookieValue(cookieHeader: string | null, name: string): string | null;
|
|
48
|
+
export declare function readCookieValue(cookieHeader: string | null, name: string): string | null;
|
|
239
49
|
/** Define options for configuring security-related HTTP headers including disclaimers and retention labels */
|
|
240
|
-
interface SecurityHeaderOptions {
|
|
50
|
+
export interface SecurityHeaderOptions {
|
|
241
51
|
/** Product disclaimer (e.g. "AI-powered tool. Not legal advice."). Omitted if absent. */
|
|
242
52
|
disclaimer?: string;
|
|
243
53
|
/** Data-retention label (e.g. "7-years"). Omitted if absent. */
|
|
@@ -248,7 +58,7 @@ interface SecurityHeaderOptions {
|
|
|
248
58
|
/** Canonical generic response headers used by {@link addSecurityHeaders}.
|
|
249
59
|
* Exported so static-asset hosts can apply the same policy without copying
|
|
250
60
|
* values that silently drift from Worker/API responses. */
|
|
251
|
-
declare const STANDARD_SECURITY_HEADERS: Readonly<{
|
|
61
|
+
export declare const STANDARD_SECURITY_HEADERS: Readonly<{
|
|
252
62
|
readonly 'Strict-Transport-Security': "max-age=31536000; includeSubDomains; preload";
|
|
253
63
|
readonly 'X-Content-Type-Options': "nosniff";
|
|
254
64
|
readonly 'X-Frame-Options': "SAMEORIGIN";
|
|
@@ -258,7 +68,7 @@ declare const STANDARD_SECURITY_HEADERS: Readonly<{
|
|
|
258
68
|
/** Set standard security headers on a response (HSTS, nosniff, frame-options,
|
|
259
69
|
* referrer-policy, XSS) + optional product disclaimer/retention. The security
|
|
260
70
|
* set is generic; the disclaimer/retention are the product's. */
|
|
261
|
-
declare function addSecurityHeaders(response: Response, opts?: SecurityHeaderOptions): Response;
|
|
71
|
+
export declare function addSecurityHeaders(response: Response, opts?: SecurityHeaderOptions): Response;
|
|
262
72
|
/**
|
|
263
73
|
* Canonical media-reference boundary shared by every surface that persists a
|
|
264
74
|
* media url (sequences clips, design-canvas image/video src). The ONE rule:
|
|
@@ -270,6 +80,4 @@ declare function addSecurityHeaders(response: Response, opts?: SecurityHeaderOpt
|
|
|
270
80
|
*
|
|
271
81
|
* @param what - noun for the error message (e.g. 'media url', 'src').
|
|
272
82
|
*/
|
|
273
|
-
declare function assertMediaUrl(url: string, what?: string): void;
|
|
274
|
-
|
|
275
|
-
export { type CookieOptions, FREE_ROUTE_BUDGETS, type FreeRouteAllowance, type FreeRouteClass, type FreeRouteDenialReason, type FreeRouteDimension, type FreeRouteIdentity, FreeRouteLimitError, type FreeRouteLimitInput, type FreeRouteLimitOutcome, type FreeRouteLimitResponseOptions, type JsonObject, KvLike, type RateLimitBudget, type RequestContext, STANDARD_SECURITY_HEADERS, type SecurityHeaderOptions, WORKSPACE_BUDGET_MULTIPLIER, type WithFreeRouteLimitOptions, addSecurityHeaders, assertMediaUrl, checkFreeRouteLimit, clearCookieHeader, extractRequestContext, freeRouteLimitResponse, parseJsonObjectBody, readCookieValue, requireString, serializeCookie, withFreeRouteLimit };
|
|
83
|
+
export declare function assertMediaUrl(url: string, what?: string): void;
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
* published surface.
|
|
6
6
|
*/
|
|
7
7
|
/** Minimal KV contract (Cloudflare `KVNamespace` satisfies it structurally). */
|
|
8
|
-
interface KvLike {
|
|
8
|
+
export interface KvLike {
|
|
9
9
|
get(key: string): Promise<string | null>;
|
|
10
10
|
put(key: string, value: string, options?: {
|
|
11
11
|
expirationTtl?: number;
|
|
12
12
|
}): Promise<void>;
|
|
13
13
|
}
|
|
14
14
|
/** Describe the outcome of a rate limit check including allowance, remaining count, and reset time */
|
|
15
|
-
interface RateLimitResult {
|
|
15
|
+
export interface RateLimitResult {
|
|
16
16
|
allowed: boolean;
|
|
17
17
|
remaining: number;
|
|
18
18
|
resetAt: number;
|
|
@@ -30,6 +30,4 @@ interface RateLimitResult {
|
|
|
30
30
|
* truncated value) is treated as a full window, so a tampered key cannot reset
|
|
31
31
|
* the count and bypass the limiter. A bare `JSON.parse` here would throw and
|
|
32
32
|
* abort the request handler, silently disabling the limit (fail-open). */
|
|
33
|
-
declare function checkRateLimit(kv: KvLike, key: string, limit: number, windowSeconds: number): Promise<RateLimitResult>;
|
|
34
|
-
|
|
35
|
-
export { type KvLike as K, type RateLimitResult as R, checkRateLimit as c };
|
|
33
|
+
export declare function checkRateLimit(kv: KvLike, key: string, limit: number, windowSeconds: number): Promise<RateLimitResult>;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `AgentSessionControls` — the CANONICAL model + harness + reasoning-effort
|
|
3
|
+
* cluster a chat composer docks (see "UI chrome ownership (picker canon)" in
|
|
4
|
+
* AGENTS.md). One component so every product's two composers (and every
|
|
5
|
+
* product) share the same control surface and harness↔model coherence policy.
|
|
6
|
+
*
|
|
7
|
+
* PICKER CANON. The model menu below IS `/web-react`'s `ModelPicker` and the
|
|
8
|
+
* thinking-budget pill IS `EffortPicker` — the canonical ecosystem pickers.
|
|
9
|
+
* sandbox-ui's `dashboard/ModelPicker` and the model menu inside sandbox-ui's
|
|
10
|
+
* `chat/AgentSessionControls` are legacy (deprecated, frozen, removed at
|
|
11
|
+
* sandbox-ui's next major), and the `/chat-react` `ComposerAgentControls`
|
|
12
|
+
* adapter that rendered sandbox-ui's strip is REMOVED — a surface that still
|
|
13
|
+
* renders the sandbox-ui strip is showing the old design; migrate it
|
|
14
|
+
* (props mapping in `docs/ui-picker-canon.md`).
|
|
15
|
+
*
|
|
16
|
+
* Dependency-free beyond React by design: `/web-react` must not force the
|
|
17
|
+
* optional sandbox-ui peer, so this component — the canonical one — can never
|
|
18
|
+
* require it.
|
|
19
|
+
*
|
|
20
|
+
* Two layouts, additive — the default preserves the prior hand-rolled behavior:
|
|
21
|
+
* - `layout="inline"` (default): model, harness, and effort sit side by side as
|
|
22
|
+
* pills. This is the original arrangement; existing call sites that mounted
|
|
23
|
+
* `ModelPicker` + a harness picker + `EffortPicker` in a row get the same UI.
|
|
24
|
+
* - `layout="compact"`: the model picker stays inline and visible; the agent
|
|
25
|
+
* backend ("harness") and reasoning-effort controls — internal jargon a user
|
|
26
|
+
* rarely needs — tuck behind a single gear popover with plain-English copy.
|
|
27
|
+
*
|
|
28
|
+
* Harness ↔ model coherence is identical in both layouts, via the substrate's
|
|
29
|
+
* snap helpers (`@tangle-network/agent-app/harness`): changing the harness snaps
|
|
30
|
+
* an incompatible model to that harness's best catalog option; changing the
|
|
31
|
+
* model switches to the model's native harness. Catalog model ids are canonical
|
|
32
|
+
* ("provider/model"), which is exactly what the snap helpers expect — no id
|
|
33
|
+
* translation is needed here.
|
|
34
|
+
*
|
|
35
|
+
* Dependency-free beyond React: inline SVG glyphs, CSS-var / Tailwind tokens the
|
|
36
|
+
* app shell defines. The harness picker is rendered inline so this needs no
|
|
37
|
+
* sandbox-ui dependency.
|
|
38
|
+
*/
|
|
39
|
+
import { type ReactNode } from 'react';
|
|
40
|
+
import { type Harness } from '../harness';
|
|
41
|
+
import type { CatalogModel } from '../runtime/model-catalog';
|
|
42
|
+
import type { EffortLevel } from './controls';
|
|
43
|
+
export interface AgentSessionControlsProps {
|
|
44
|
+
/** Catalog models — canonical provider-prefixed ids. */
|
|
45
|
+
models: CatalogModel[];
|
|
46
|
+
modelsLoading?: boolean;
|
|
47
|
+
/** Selected canonical model id. */
|
|
48
|
+
model: string;
|
|
49
|
+
onModelChange(modelId: string): void;
|
|
50
|
+
/** Current harness; harness↔model coherence is enforced on every change. */
|
|
51
|
+
harness: Harness;
|
|
52
|
+
onHarnessChange(harness: Harness): void;
|
|
53
|
+
/** Harnesses to offer; defaults to the labeled set. */
|
|
54
|
+
availableHarnesses?: ReadonlyArray<Harness>;
|
|
55
|
+
/** Reasoning-effort value + setter. Shown only when the selected model
|
|
56
|
+
* `supportsReasoning`, matching `EffortPicker`'s guidance. */
|
|
57
|
+
effort: string;
|
|
58
|
+
onEffortChange(effort: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* Levels to offer, forwarded verbatim to {@link EffortPicker}. Omit for the
|
|
61
|
+
* default vocabulary.
|
|
62
|
+
*
|
|
63
|
+
* A product whose backend applies only a SUBSET of the levels for the
|
|
64
|
+
* selected harness/model passes that subset here. Without it the strip
|
|
65
|
+
* offers every level and the backend silently ignores the ones it does not
|
|
66
|
+
* apply — a control that reports a choice the system never made.
|
|
67
|
+
*
|
|
68
|
+
* This is the COMPLETE renderable set, not an allow-list layered over a
|
|
69
|
+
* default one — the removed `ComposerAgentControls`' `available` list was the
|
|
70
|
+
* latter, and its picker injected the `auto` sentinel itself. A list that
|
|
71
|
+
* omits the current {@link effort} is still safe: `EffortPicker` reconciles
|
|
72
|
+
* the selected value into the rendered list under its own name rather than
|
|
73
|
+
* resolving it to a different entry (`reconcileEffortLevels`). Build the list
|
|
74
|
+
* from engine ids with `effortLevelsFromIds`; the migration is in
|
|
75
|
+
* `docs/ui-picker-canon.md`.
|
|
76
|
+
*/
|
|
77
|
+
effortLevels?: readonly EffortLevel[];
|
|
78
|
+
/**
|
|
79
|
+
* `inline` (default): model, harness, effort side by side — the prior
|
|
80
|
+
* behavior. `compact`: model inline, harness + effort behind a gear popover.
|
|
81
|
+
*/
|
|
82
|
+
layout?: 'inline' | 'compact';
|
|
83
|
+
/** Hide the harness control entirely (single-harness products). */
|
|
84
|
+
showHarness?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* PIN the harness and say why, in the user's words ("This thread already has
|
|
87
|
+
* messages — start a new chat to switch backend"). Presence IS the lock:
|
|
88
|
+
* there is no separate boolean, because a lock a user cannot read is the
|
|
89
|
+
* thing this prop exists to replace.
|
|
90
|
+
*
|
|
91
|
+
* The control stays VISIBLE and reports the harness the thread is on — the
|
|
92
|
+
* shape a locked selector has to keep, since a thread whose backend is fixed
|
|
93
|
+
* is exactly when a user wants to know what it is. Hiding it (`showHarness:
|
|
94
|
+
* false`) is what pushed products into rendering their own lock label
|
|
95
|
+
* outside the panel.
|
|
96
|
+
*
|
|
97
|
+
* While locked, `onHarnessChange` is never called — not from the picker, and
|
|
98
|
+
* not from the model↔harness coherence policy either. See
|
|
99
|
+
* {@link useCoherentHandlers}.
|
|
100
|
+
*/
|
|
101
|
+
harnessLockReason?: string;
|
|
102
|
+
renderProviderBadge?: (provider: string) => ReactNode;
|
|
103
|
+
className?: string;
|
|
104
|
+
}
|
|
105
|
+
export declare function AgentSessionControls(props: AgentSessionControlsProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { type ReactElement, type ReactNode } from 'react';
|
|
2
|
+
import type { AsyncResourceState } from './state';
|
|
3
|
+
import type { MutationState } from './use-confirmed-mutation';
|
|
4
|
+
export interface AsyncEmptyAction {
|
|
5
|
+
label: string;
|
|
6
|
+
onClick: () => void;
|
|
7
|
+
}
|
|
8
|
+
export interface AsyncEmptySpec {
|
|
9
|
+
/** What is not there, in the reader's words ("No templates yet"). Required:
|
|
10
|
+
* an empty state with nothing to say is the state this module exists to
|
|
11
|
+
* stop being mistaken for a failure. */
|
|
12
|
+
title: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
/** The next action. An element is rendered as supplied (a link, a dialog
|
|
15
|
+
* trigger); the object form renders the standard button. */
|
|
16
|
+
action?: AsyncEmptyAction | ReactElement;
|
|
17
|
+
}
|
|
18
|
+
export interface AsyncErrorRenderProps {
|
|
19
|
+
message: string;
|
|
20
|
+
retry: () => void;
|
|
21
|
+
}
|
|
22
|
+
export interface AsyncViewProps<T> {
|
|
23
|
+
state: AsyncResourceState<T>;
|
|
24
|
+
/** Rendered only for `ready`, with the loaded value — the branch cannot be
|
|
25
|
+
* entered without one. */
|
|
26
|
+
children: (value: T) => ReactNode;
|
|
27
|
+
/** Required: `empty` must name what is missing and what to do about it. */
|
|
28
|
+
empty: AsyncEmptySpec | ReactElement;
|
|
29
|
+
/** Must return an element. Returning nothing is what produced the blank
|
|
30
|
+
* screens this component replaces, so a nullish return falls back to the
|
|
31
|
+
* built-in block rather than rendering nothing. */
|
|
32
|
+
renderLoading?: () => ReactElement;
|
|
33
|
+
renderError?: (props: AsyncErrorRenderProps) => ReactElement;
|
|
34
|
+
/** `idle` renders the loading block by default — from the reader's side,
|
|
35
|
+
* "not started" and "in flight" are the same wait. */
|
|
36
|
+
renderIdle?: () => ReactElement;
|
|
37
|
+
loadingLabel?: string;
|
|
38
|
+
retryLabel?: string;
|
|
39
|
+
/** Applied to the wrapper around the non-`ready` branches. `ready` renders the
|
|
40
|
+
* children with no wrapper element, so grids and lists keep their layout. */
|
|
41
|
+
className?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Renders the branch the state is actually in.
|
|
45
|
+
*
|
|
46
|
+
* The three anti-patterns this replaces (`catch` that only clears a loading
|
|
47
|
+
* flag, early return on a non-ok response, bare `null` while loading) all end at
|
|
48
|
+
* the same rendered output as a successful-but-empty load. Here every branch is
|
|
49
|
+
* reached from a different variant and each renders visibly: `loading` and
|
|
50
|
+
* `idle` render a labelled busy block, `error` renders the message plus the
|
|
51
|
+
* retry, `empty` renders the caller's copy and next action, and `ready` is the
|
|
52
|
+
* only branch with a value to hand to `children`.
|
|
53
|
+
*/
|
|
54
|
+
export declare function AsyncView<T>({ state, children, empty, renderLoading, renderError, renderIdle, loadingLabel, retryLabel, className, }: AsyncViewProps<T>): ReactElement;
|
|
55
|
+
export interface MutationStatusLabels {
|
|
56
|
+
pending?: string;
|
|
57
|
+
succeeded?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface MutationStatusProps<T> {
|
|
60
|
+
state: MutationState<T>;
|
|
61
|
+
labels?: MutationStatusLabels;
|
|
62
|
+
className?: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The write's own status line. "Saved" renders only from `succeeded`, which
|
|
66
|
+
* `useConfirmedMutation` can only reach through a confirmed write, so the label
|
|
67
|
+
* cannot appear over a failed request.
|
|
68
|
+
*/
|
|
69
|
+
export declare function MutationStatus<T>({ state, labels, className }: MutationStatusProps<T>): ReactElement | null;
|