@tangle-network/agent-app 0.45.54 → 0.45.56
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/index.js +3 -3
- 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/index.js +2 -2
- 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 +89 -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/index.js +6 -2
- package/dist/chat-routes/index.js.map +1 -1
- 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/{chunk-PVP57G3S.js → chunk-2IFGVBNI.js} +2 -2
- package/dist/{chunk-MQO5ML66.js → chunk-KJ2Q27U7.js} +2 -2
- package/dist/{chunk-CCVG2TL6.js → chunk-YNMPMW3G.js} +64 -2
- package/dist/chunk-YNMPMW3G.js.map +1 -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/index.js +3 -3
- 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/chunk-CCVG2TL6.js.map +0 -1
- package/dist/values-C7RidJuI.d.ts +0 -156
- /package/dist/{chunk-PVP57G3S.js.map → chunk-2IFGVBNI.js.map} +0 -0
- /package/dist/{chunk-MQO5ML66.js.map → chunk-KJ2Q27U7.js.map} +0 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pure half of the editable record grid: the typed column vocabulary, the
|
|
3
|
+
* per-cell parse/validate rules, display + editor formatting, and the
|
|
4
|
+
* optimistic overlay a caller's rows are projected through.
|
|
5
|
+
*
|
|
6
|
+
* Zero React, zero DOM — a product can validate a row on a worker before it
|
|
7
|
+
* ever reaches storage, and the component in `./record-grid` renders exactly
|
|
8
|
+
* what these functions decide.
|
|
9
|
+
*
|
|
10
|
+
* Every domain word is a caller parameter: the module knows no column names,
|
|
11
|
+
* no currencies, no option sets. What it owns is the mechanism four verticals
|
|
12
|
+
* each re-derived — typed cells, an error a person can act on, and an
|
|
13
|
+
* optimistic edit that can be taken back.
|
|
14
|
+
*/
|
|
15
|
+
import type { ProvenanceBasis } from './provenance-model';
|
|
16
|
+
/** The value one cell can hold. `null` is "no value on file". */
|
|
17
|
+
export type RecordGridValue = string | number | boolean | null;
|
|
18
|
+
/** Typed outcome for one cell. Callers MUST inspect `succeeded` before reading
|
|
19
|
+
* `value`; nothing here throws. */
|
|
20
|
+
export type RecordGridCellOutcome = {
|
|
21
|
+
succeeded: true;
|
|
22
|
+
value: RecordGridValue;
|
|
23
|
+
} | {
|
|
24
|
+
succeeded: false;
|
|
25
|
+
error: string;
|
|
26
|
+
};
|
|
27
|
+
/** Typed outcome for a whole row of inputs (the add form). `cellErrors` is
|
|
28
|
+
* keyed by column id so each control can render its own message. */
|
|
29
|
+
export type RecordGridRowOutcome = {
|
|
30
|
+
succeeded: true;
|
|
31
|
+
value: Record<string, RecordGridValue>;
|
|
32
|
+
} | {
|
|
33
|
+
succeeded: false;
|
|
34
|
+
error: string;
|
|
35
|
+
cellErrors: Readonly<Record<string, string>>;
|
|
36
|
+
};
|
|
37
|
+
/** Build a cell success outcome. */
|
|
38
|
+
export declare function recordGridOk(value: RecordGridValue): RecordGridCellOutcome;
|
|
39
|
+
/** Build a cell failure outcome carrying the message shown next to the cell. */
|
|
40
|
+
export declare function recordGridFail(error: string): RecordGridCellOutcome;
|
|
41
|
+
/**
|
|
42
|
+
* How a value came to sit in a cell. Rendered as the provenance tone.
|
|
43
|
+
*
|
|
44
|
+
* A type alias of `./provenance-model`'s `ProvenanceBasis`, not a lookalike:
|
|
45
|
+
* two vocabularies for the same concept — a grid cell's origin — shipped one
|
|
46
|
+
* day apart and would have drifted the moment either one added a value. The
|
|
47
|
+
* grid gains `asserted` for free (a cell an agent claimed with nothing behind
|
|
48
|
+
* it), where the caller previously had no way to say that.
|
|
49
|
+
*/
|
|
50
|
+
export type RecordGridSourceBasis = ProvenanceBasis;
|
|
51
|
+
/**
|
|
52
|
+
* Where one cell's value came from. Optional on every row — a grid over data
|
|
53
|
+
* with no lineage renders identically without it.
|
|
54
|
+
*/
|
|
55
|
+
export interface RecordGridCellSource {
|
|
56
|
+
/** The text in the source that supports this value. */
|
|
57
|
+
quote?: string;
|
|
58
|
+
/** Human name of the source document, message, or system. */
|
|
59
|
+
label?: string;
|
|
60
|
+
/** Click-through to the source. */
|
|
61
|
+
href?: string;
|
|
62
|
+
/** Position inside the source: a page, a line, a span — the caller's words. */
|
|
63
|
+
locator?: string;
|
|
64
|
+
/** How the value got here. Absent renders as `asserted` — the weakest claim
|
|
65
|
+
* in the union — because a caller that stated no basis has established
|
|
66
|
+
* nothing about a document, and an omission must never read as one. */
|
|
67
|
+
basis?: RecordGridSourceBasis;
|
|
68
|
+
}
|
|
69
|
+
/** One option of a `select` column. */
|
|
70
|
+
export interface RecordGridSelectOption {
|
|
71
|
+
value: string;
|
|
72
|
+
label: string;
|
|
73
|
+
}
|
|
74
|
+
/** A cell is only editable, rendered, and validated when the column it depends
|
|
75
|
+
* on holds `equals`. This is how a nested sub-form (a vesting schedule behind
|
|
76
|
+
* a "has vesting" toggle) stays a set of flat, individually-typed columns. */
|
|
77
|
+
export interface RecordGridDependency {
|
|
78
|
+
column: string;
|
|
79
|
+
equals: RecordGridValue;
|
|
80
|
+
}
|
|
81
|
+
/** Fields every column kind carries. */
|
|
82
|
+
export interface RecordGridColumnBase {
|
|
83
|
+
/** Key into a row's `values` bag. */
|
|
84
|
+
id: string;
|
|
85
|
+
/** Column heading, and the accessible name of every control in the column. */
|
|
86
|
+
header: string;
|
|
87
|
+
/** Short hint rendered under the control in the add form. */
|
|
88
|
+
hint?: string;
|
|
89
|
+
/** An empty cell is rejected. */
|
|
90
|
+
required?: boolean;
|
|
91
|
+
/** Cells are editable unless this is `false`. */
|
|
92
|
+
editable?: boolean;
|
|
93
|
+
/** Cell alignment. Numeric kinds default to `right`. */
|
|
94
|
+
align?: 'left' | 'right';
|
|
95
|
+
/** Groups this column under a labelled sub-form in the add form. */
|
|
96
|
+
group?: string;
|
|
97
|
+
/** Only applicable when another column holds a given value. */
|
|
98
|
+
dependsOn?: RecordGridDependency;
|
|
99
|
+
/** Extra rule, run after the kind's own checks pass. Return the message to
|
|
100
|
+
* reject with, or `null` to accept. */
|
|
101
|
+
validate?: (value: RecordGridValue) => string | null;
|
|
102
|
+
/** Column summary rendered in the footer row. */
|
|
103
|
+
footerValue?: (rows: readonly RecordGridRow[]) => RecordGridValue;
|
|
104
|
+
}
|
|
105
|
+
/** Free text, optionally length- or pattern-constrained. */
|
|
106
|
+
export interface RecordGridTextColumn extends RecordGridColumnBase {
|
|
107
|
+
kind: 'text';
|
|
108
|
+
minLength?: number;
|
|
109
|
+
maxLength?: number;
|
|
110
|
+
pattern?: RegExp;
|
|
111
|
+
/** Message when `pattern` rejects. Without it the pattern source is shown. */
|
|
112
|
+
patternMessage?: string;
|
|
113
|
+
/** Render a textarea instead of a single-line input. */
|
|
114
|
+
multiline?: boolean;
|
|
115
|
+
}
|
|
116
|
+
/** A plain number. */
|
|
117
|
+
export interface RecordGridNumberColumn extends RecordGridColumnBase {
|
|
118
|
+
kind: 'number';
|
|
119
|
+
min?: number;
|
|
120
|
+
max?: number;
|
|
121
|
+
integer?: boolean;
|
|
122
|
+
/** Passed through to the editor's `step`. */
|
|
123
|
+
step?: number;
|
|
124
|
+
}
|
|
125
|
+
/** A money amount. The currency is a caller parameter — this module bakes no
|
|
126
|
+
* domain value, so a product with two currencies declares two columns. */
|
|
127
|
+
export interface RecordGridCurrencyColumn extends RecordGridColumnBase {
|
|
128
|
+
kind: 'currency';
|
|
129
|
+
/** ISO 4217 code, e.g. `USD`. */
|
|
130
|
+
currency: string;
|
|
131
|
+
min?: number;
|
|
132
|
+
max?: number;
|
|
133
|
+
/** Fraction digits for display. Defaults to the currency's own. */
|
|
134
|
+
fractionDigits?: number;
|
|
135
|
+
}
|
|
136
|
+
/** A calendar date held as `YYYY-MM-DD`; no time, no zone. */
|
|
137
|
+
export interface RecordGridDateColumn extends RecordGridColumnBase {
|
|
138
|
+
kind: 'date';
|
|
139
|
+
/** Earliest accepted date, `YYYY-MM-DD`. */
|
|
140
|
+
min?: string;
|
|
141
|
+
/** Latest accepted date, `YYYY-MM-DD`. */
|
|
142
|
+
max?: string;
|
|
143
|
+
}
|
|
144
|
+
/** One of a closed set of values. */
|
|
145
|
+
export interface RecordGridSelectColumn extends RecordGridColumnBase {
|
|
146
|
+
kind: 'select';
|
|
147
|
+
options: readonly RecordGridSelectOption[];
|
|
148
|
+
}
|
|
149
|
+
/** A checkbox. */
|
|
150
|
+
export interface RecordGridBooleanColumn extends RecordGridColumnBase {
|
|
151
|
+
kind: 'boolean';
|
|
152
|
+
/** Label for `true`. Defaults to `Yes`. */
|
|
153
|
+
trueLabel?: string;
|
|
154
|
+
/** Label for `false`. Defaults to `No`. */
|
|
155
|
+
falseLabel?: string;
|
|
156
|
+
}
|
|
157
|
+
/** Every column shape the grid renders. */
|
|
158
|
+
export type RecordGridColumn = RecordGridTextColumn | RecordGridNumberColumn | RecordGridCurrencyColumn | RecordGridDateColumn | RecordGridSelectColumn | RecordGridBooleanColumn;
|
|
159
|
+
/** One row: an id, a flat value bag keyed by column id, and optional per-cell
|
|
160
|
+
* provenance. A record-backed product maps its fold output straight onto
|
|
161
|
+
* this — one entry per cell, its quote and link in `sources`. */
|
|
162
|
+
export interface RecordGridRow {
|
|
163
|
+
id: string;
|
|
164
|
+
values: Readonly<Record<string, RecordGridValue>>;
|
|
165
|
+
/** Per-cell provenance, keyed by column id. */
|
|
166
|
+
sources?: Readonly<Record<string, RecordGridCellSource>>;
|
|
167
|
+
/** No cell in this row may be edited or deleted. */
|
|
168
|
+
readOnly?: boolean;
|
|
169
|
+
/** Accessible name for the row's own controls. Falls back to the first text
|
|
170
|
+
* or select column's value, then the row id. */
|
|
171
|
+
label?: string;
|
|
172
|
+
}
|
|
173
|
+
/** True when the column's dependency (if any) is satisfied by the row's other
|
|
174
|
+
* values. An inapplicable cell is never required, never validated, and never
|
|
175
|
+
* editable. */
|
|
176
|
+
export declare function isRecordGridCellApplicable(column: RecordGridColumn, values: Readonly<Record<string, RecordGridValue>>): boolean;
|
|
177
|
+
/** Value equality across the grid's value union, treating `undefined` as
|
|
178
|
+
* `null` so an absent key and an explicit null never read as a change. */
|
|
179
|
+
export declare function sameRecordGridValue(a: RecordGridValue | undefined, b: RecordGridValue | undefined): boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Turn what an editor control produced into a typed value. Syntax only —
|
|
182
|
+
* range, length, and membership are {@link validateRecordGridCell}'s job.
|
|
183
|
+
*/
|
|
184
|
+
export declare function parseRecordGridInput(column: RecordGridColumn, raw: string): RecordGridCellOutcome;
|
|
185
|
+
/**
|
|
186
|
+
* Check one already-typed value against its column. Returns the value the grid
|
|
187
|
+
* should store (empty text normalizes to `null`) or the message a person can
|
|
188
|
+
* act on.
|
|
189
|
+
*/
|
|
190
|
+
export declare function validateRecordGridCell(column: RecordGridColumn, value: RecordGridValue): RecordGridCellOutcome;
|
|
191
|
+
/** Parse editor text and validate it in one step — what a committing cell
|
|
192
|
+
* editor calls. */
|
|
193
|
+
export declare function readRecordGridCell(column: RecordGridColumn, raw: string): RecordGridCellOutcome;
|
|
194
|
+
/**
|
|
195
|
+
* Validate a whole value bag against the columns. Inapplicable cells (an
|
|
196
|
+
* unsatisfied `dependsOn`) are forced to `null` rather than carried, so a
|
|
197
|
+
* sub-form the user turned off cannot smuggle stale values into a write.
|
|
198
|
+
*/
|
|
199
|
+
export declare function validateRecordGridRow(columns: readonly RecordGridColumn[], values: Readonly<Record<string, RecordGridValue>>): RecordGridRowOutcome;
|
|
200
|
+
/** Display text for a cell. `null` renders as the empty string; the component
|
|
201
|
+
* decides what a missing value looks like. */
|
|
202
|
+
export declare function formatRecordGridValue(column: RecordGridColumn, value: RecordGridValue, locale?: string): string;
|
|
203
|
+
/** The text an editor control starts with — the raw value, never the formatted
|
|
204
|
+
* one, so committing an untouched cell is a no-op. */
|
|
205
|
+
export declare function recordGridEditorText(column: RecordGridColumn, value: RecordGridValue): string;
|
|
206
|
+
/** Accessible name for a row's own controls. */
|
|
207
|
+
export declare function recordGridRowLabel(columns: readonly RecordGridColumn[], row: RecordGridRow): string;
|
|
208
|
+
/** Sum a numeric column over the rows that hold a number. Rows with no value
|
|
209
|
+
* are absent from the sum, not zero — a total over three of five filled cells
|
|
210
|
+
* is the total of what is on file. */
|
|
211
|
+
export declare function sumRecordGridColumn(rows: readonly RecordGridRow[], columnId: string): number;
|
|
212
|
+
/**
|
|
213
|
+
* Edits the grid has applied locally but the caller's `rows` prop has not yet
|
|
214
|
+
* caught up with. Every field is what rollback removes: drop the entry and the
|
|
215
|
+
* caller's own data shows through again.
|
|
216
|
+
*/
|
|
217
|
+
export interface RecordGridOverlay {
|
|
218
|
+
/** rowId → columnId → optimistic value. */
|
|
219
|
+
updates: Readonly<Record<string, Readonly<Record<string, RecordGridValue>>>>;
|
|
220
|
+
/** Rows created locally, in insertion order. */
|
|
221
|
+
created: readonly RecordGridRow[];
|
|
222
|
+
/** Row ids removed locally. */
|
|
223
|
+
removed: readonly string[];
|
|
224
|
+
}
|
|
225
|
+
/** An overlay holding nothing. */
|
|
226
|
+
export declare const EMPTY_RECORD_GRID_OVERLAY: RecordGridOverlay;
|
|
227
|
+
/** The rows to render: caller rows minus local deletes, with local cell edits
|
|
228
|
+
* applied, then locally-created rows. */
|
|
229
|
+
export declare function projectRecordGridRows(rows: readonly RecordGridRow[], overlay: RecordGridOverlay): RecordGridRow[];
|
|
230
|
+
/** Record one optimistic cell edit. */
|
|
231
|
+
export declare function withRecordGridUpdate(overlay: RecordGridOverlay, rowId: string, columnId: string, value: RecordGridValue): RecordGridOverlay;
|
|
232
|
+
/** Take back one optimistic cell edit — the rollback path. */
|
|
233
|
+
export declare function withoutRecordGridUpdate(overlay: RecordGridOverlay, rowId: string, columnId: string): RecordGridOverlay;
|
|
234
|
+
/** Adopt a row the writer returned as canonical: for a locally-created row it
|
|
235
|
+
* replaces the draft; for an existing row it replaces the optimistic cells.
|
|
236
|
+
* Either way the draft's pending cell edits go with it — the canonical row IS
|
|
237
|
+
* the answer, and leaving an edit layered over it is how a grid keeps showing
|
|
238
|
+
* a value the server normalized away. */
|
|
239
|
+
export declare function withRecordGridServerRow(overlay: RecordGridOverlay, draftId: string, row: RecordGridRow): RecordGridOverlay;
|
|
240
|
+
/** Record an optimistic create. */
|
|
241
|
+
export declare function withRecordGridCreated(overlay: RecordGridOverlay, row: RecordGridRow): RecordGridOverlay;
|
|
242
|
+
/** Take back an optimistic create — the rollback path. Cell edits made against
|
|
243
|
+
* the draft go with it; the row they applied to no longer exists anywhere. */
|
|
244
|
+
export declare function withoutRecordGridCreated(overlay: RecordGridOverlay, rowId: string): RecordGridOverlay;
|
|
245
|
+
/** Record an optimistic delete. */
|
|
246
|
+
export declare function withRecordGridRemoved(overlay: RecordGridOverlay, rowId: string): RecordGridOverlay;
|
|
247
|
+
/** Take back an optimistic delete — the rollback path. */
|
|
248
|
+
export declare function withoutRecordGridRemoved(overlay: RecordGridOverlay, rowId: string): RecordGridOverlay;
|
|
249
|
+
/**
|
|
250
|
+
* Drop the overlay entries the caller's own rows have caught up with: a cell
|
|
251
|
+
* whose value now matches, a created row now present, a removed row now gone.
|
|
252
|
+
* Without this an overlay would mask every later refresh of the same cell.
|
|
253
|
+
*
|
|
254
|
+
* Returns the SAME overlay object when nothing settled, so a caller can prune
|
|
255
|
+
* on every render without looping.
|
|
256
|
+
*/
|
|
257
|
+
export declare function pruneRecordGridOverlay(rows: readonly RecordGridRow[], overlay: RecordGridOverlay): RecordGridOverlay;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `RecordGrid` — the editable record table four verticals each hand-rolled: a
|
|
3
|
+
* cap table, two relationship record pages, a content board, and an entities
|
|
4
|
+
* panel. Every copy re-derived the same mechanism and each one lost a
|
|
5
|
+
* different part of it.
|
|
6
|
+
*
|
|
7
|
+
* What this owns:
|
|
8
|
+
*
|
|
9
|
+
* - **Typed columns with correctable errors.** A cell is text / number /
|
|
10
|
+
* currency / date / select / boolean (`./record-grid-model`), so a rejected
|
|
11
|
+
* edit explains itself next to the control instead of storing a coerced
|
|
12
|
+
* value.
|
|
13
|
+
* - **Optimistic write with a real rollback.** The edit lands instantly, the
|
|
14
|
+
* caller's writer returns a typed outcome, and a failure puts the previous
|
|
15
|
+
* value back AND says why. A grid that keeps a value the server refused is
|
|
16
|
+
* the defect this replaces.
|
|
17
|
+
* - **Provenance per cell.** An optional quote + link + basis, so a
|
|
18
|
+
* record-backed grid shows where a value came from without the product
|
|
19
|
+
* building a second surface for it.
|
|
20
|
+
* - **Three distinct data states, on `web-react/async`'s own contract.**
|
|
21
|
+
* `state: AsyncResourceState<Row[]>` and `empty: AsyncEmptySpec` are the
|
|
22
|
+
* same types every other screen fetches through — loading, error-with-
|
|
23
|
+
* retry and empty are different renders, a failed fetch never looks like
|
|
24
|
+
* "no data yet", and the empty state carries the CALLER's next action.
|
|
25
|
+
* The optimistic overlay is layered on top of whichever `ready`/`empty`
|
|
26
|
+
* value the caller last supplied, so a row created while the caller's own
|
|
27
|
+
* status is still `empty` renders immediately rather than waiting for a
|
|
28
|
+
* refetch.
|
|
29
|
+
* - **Keyboard-navigable, labelled controls.** Arrow keys move between cells,
|
|
30
|
+
* Enter edits, Escape cancels, and no destructive control is an unlabelled
|
|
31
|
+
* icon.
|
|
32
|
+
*
|
|
33
|
+
* Presentation is Tailwind against the shared design tokens, with no icon
|
|
34
|
+
* library and no sandbox-ui — the same contract as the rest of `/web-react`.
|
|
35
|
+
*/
|
|
36
|
+
import { type ReactNode } from 'react';
|
|
37
|
+
import { type AsyncEmptySpec, type AsyncResourceState } from './async';
|
|
38
|
+
import { type RecordGridColumn, type RecordGridRow, type RecordGridValue } from './record-grid-model';
|
|
39
|
+
export * from './record-grid-model';
|
|
40
|
+
/** One committed cell edit, handed to `onUpdate`. */
|
|
41
|
+
export interface RecordGridCellChange {
|
|
42
|
+
/** The row as it was BEFORE the edit — what rollback restores. */
|
|
43
|
+
row: RecordGridRow;
|
|
44
|
+
columnId: string;
|
|
45
|
+
value: RecordGridValue;
|
|
46
|
+
/** The full value bag after the edit: what a whole-row write would send. */
|
|
47
|
+
values: Readonly<Record<string, RecordGridValue>>;
|
|
48
|
+
}
|
|
49
|
+
/** Outcome of an update or a delete. `value` optionally carries the server's
|
|
50
|
+
* canonical row, which replaces the optimistic one. */
|
|
51
|
+
export type RecordGridWriteOutcome = {
|
|
52
|
+
succeeded: true;
|
|
53
|
+
value?: RecordGridRow;
|
|
54
|
+
} | {
|
|
55
|
+
succeeded: false;
|
|
56
|
+
error: string;
|
|
57
|
+
};
|
|
58
|
+
/** Outcome of a create. The row is REQUIRED on success: a create that does not
|
|
59
|
+
* name the row it wrote leaves the grid unable to address it. */
|
|
60
|
+
export type RecordGridCreateOutcome = {
|
|
61
|
+
succeeded: true;
|
|
62
|
+
value: RecordGridRow;
|
|
63
|
+
} | {
|
|
64
|
+
succeeded: false;
|
|
65
|
+
error: string;
|
|
66
|
+
};
|
|
67
|
+
/** Properties for the editable, provenance-aware record grid. */
|
|
68
|
+
export interface RecordGridProps {
|
|
69
|
+
/** Column definitions, in render order. */
|
|
70
|
+
columns: readonly RecordGridColumn[];
|
|
71
|
+
/** Fetch state over the caller's rows — `web-react/async`'s
|
|
72
|
+
* `AsyncResourceState`, the same three-state contract every other screen
|
|
73
|
+
* in the shell fetches through. `ready`/`empty`'s value is the base rows;
|
|
74
|
+
* optimistic edits are layered over it and dropped as a later value
|
|
75
|
+
* catches up. `error` always carries `retry` — there is no way to render a
|
|
76
|
+
* failed fetch with no recovery action, by construction. */
|
|
77
|
+
state: AsyncResourceState<readonly RecordGridRow[]>;
|
|
78
|
+
/** Accessible name for the grid. Required — an unnamed grid is unusable with
|
|
79
|
+
* a screen reader. */
|
|
80
|
+
caption: string;
|
|
81
|
+
/** What the empty state says, and what it offers next — `web-react/async`'s
|
|
82
|
+
* `AsyncEmptySpec`, so an empty grid reads in the same words as an empty
|
|
83
|
+
* list or panel elsewhere in the product. */
|
|
84
|
+
empty: AsyncEmptySpec;
|
|
85
|
+
/** Persist one created row. Absent → no add affordance. */
|
|
86
|
+
onCreate?: (values: Readonly<Record<string, RecordGridValue>>) => Promise<RecordGridCreateOutcome>;
|
|
87
|
+
/** Persist one cell edit. Absent → every cell renders read-only. */
|
|
88
|
+
onUpdate?: (change: RecordGridCellChange) => Promise<RecordGridWriteOutcome>;
|
|
89
|
+
/** Delete one row. Absent → no delete affordance. */
|
|
90
|
+
onDelete?: (row: RecordGridRow) => Promise<RecordGridWriteOutcome>;
|
|
91
|
+
/** Starting values for the add form. */
|
|
92
|
+
newRowDefaults?: Readonly<Record<string, RecordGridValue>>;
|
|
93
|
+
/** Label of the add control and of the add form. Defaults to `Add row`. */
|
|
94
|
+
addLabel?: string;
|
|
95
|
+
/** BCP-47 locale for number, currency, and date display. */
|
|
96
|
+
locale?: string;
|
|
97
|
+
/** Rendered above the grid — filters, counts, a product action row. */
|
|
98
|
+
toolbar?: ReactNode;
|
|
99
|
+
/** Skeleton rows in the loading state. Defaults to 3. */
|
|
100
|
+
loadingRowCount?: number;
|
|
101
|
+
className?: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The shared editable record table. A row is a flat value bag keyed by column
|
|
105
|
+
* id, so a record store's fold output maps straight on: one cell per entry,
|
|
106
|
+
* its quote and link in `sources`.
|
|
107
|
+
*/
|
|
108
|
+
export declare function RecordGrid({ columns, caption, state, empty, onCreate, onUpdate, onDelete, newRowDefaults, addLabel, locale, toolbar, loadingRowCount, className, }: RecordGridProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/** Define the connection details and status for a sandbox terminal session */
|
|
2
|
+
export interface SandboxTerminalConnection {
|
|
3
|
+
runtimeUrl: string | null;
|
|
4
|
+
sidecarUrl: string | null;
|
|
5
|
+
token: string | null;
|
|
6
|
+
expiresAt: string | null;
|
|
7
|
+
status: string;
|
|
8
|
+
error: string | null;
|
|
9
|
+
loading: boolean;
|
|
10
|
+
sandboxId?: string;
|
|
11
|
+
connectionId?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Define the response structure for a sandbox terminal connection including URLs, token, status, and errors
|
|
15
|
+
*
|
|
16
|
+
* The browser-direct scoped-token route (`createSandboxTerminalConnectionRoute`,
|
|
17
|
+
* `src/sandbox/terminal-connection.ts`) returns `sidecarUrl`. The hook also
|
|
18
|
+
* exposes that URL through the historical `runtimeUrl` state field so existing
|
|
19
|
+
* terminal panels do not need transport-specific branching.
|
|
20
|
+
*
|
|
21
|
+
* `connectionId` is the id the route's minted token's `sid` is bound to
|
|
22
|
+
* (echoed back from the `connectionId` the hook sent) — pass it straight
|
|
23
|
+
* through as `TerminalView`'s `connectionId` prop, since any other value
|
|
24
|
+
* fails the WS upgrade on the current platform.
|
|
25
|
+
*/
|
|
26
|
+
export interface SandboxTerminalConnectionResponse {
|
|
27
|
+
runtimeUrl?: string;
|
|
28
|
+
sidecarUrl?: string;
|
|
29
|
+
token?: string;
|
|
30
|
+
expiresAt?: string;
|
|
31
|
+
status?: string;
|
|
32
|
+
error?: string;
|
|
33
|
+
sandboxId?: string;
|
|
34
|
+
connectionId?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Define options for configuring a sandbox terminal connection including workspace ID and connection parameters
|
|
38
|
+
*
|
|
39
|
+
* `connectionId`, when set, is passed to
|
|
40
|
+
* `createSandboxTerminalConnectionRoute` as the `connectionId` query
|
|
41
|
+
* parameter — pass `tabTerminalConnectionId()` here so the route mints a
|
|
42
|
+
* token whose `sid` is bound to the same id `TerminalView` will dial. Give
|
|
43
|
+
* `TerminalView` the response's echoed `connectionId` (not this input
|
|
44
|
+
* value) alongside `sidecarUrl` as `apiUrl` and `token`, since a product's
|
|
45
|
+
* `resolveConnectionId` seam may rewrite it server-side.
|
|
46
|
+
*/
|
|
47
|
+
export interface UseSandboxTerminalConnectionOptions {
|
|
48
|
+
workspaceId: string;
|
|
49
|
+
connectionUrl?: string | ((workspaceId: string) => string);
|
|
50
|
+
connectionId?: string;
|
|
51
|
+
fetcher?: typeof fetch;
|
|
52
|
+
provisionPollIntervalMs?: number;
|
|
53
|
+
provisionPollTimeoutMs?: number;
|
|
54
|
+
tokenRefreshSkewMs?: number;
|
|
55
|
+
}
|
|
56
|
+
/** Resolve sandbox terminal connection status and provide a method to initiate the connection */
|
|
57
|
+
export interface UseSandboxTerminalConnectionResult extends SandboxTerminalConnection {
|
|
58
|
+
connect: () => Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Manage and maintain a sandbox terminal connection with automatic polling and token refresh handling
|
|
62
|
+
*
|
|
63
|
+
* `connectionUrl` is backed by the browser-direct scoped-token route
|
|
64
|
+
* (`createSandboxTerminalConnectionRoute`,
|
|
65
|
+
* `src/sandbox/terminal-connection.ts`). The route returns `sidecarUrl`; the
|
|
66
|
+
* hook normalizes it into both URL fields for compatibility with existing
|
|
67
|
+
* terminal panels.
|
|
68
|
+
*
|
|
69
|
+
* Pass `tabTerminalConnectionId()` as `opts.connectionId` — the hook forwards
|
|
70
|
+
* it as the `connectionId` query parameter the browser-direct route requires
|
|
71
|
+
* to mint a token whose `sid` is bound to that exact id (the orchestrator's
|
|
72
|
+
* terminal WS gate fails closed on any other value). Give `TerminalView` the
|
|
73
|
+
* RESULT's echoed `connectionId` (not the input value — a product's
|
|
74
|
+
* `resolveConnectionId` seam may rewrite it), the resolved `sidecarUrl`/
|
|
75
|
+
* `runtimeUrl` as `apiUrl`, and `token` as its token prop.
|
|
76
|
+
*/
|
|
77
|
+
export declare function useSandboxTerminalConnection(opts: UseSandboxTerminalConnectionOptions): UseSandboxTerminalConnectionResult;
|
|
78
|
+
/**
|
|
79
|
+
* Stable-per-tab, unique-per-client terminal connection id.
|
|
80
|
+
*
|
|
81
|
+
* Persists in `sessionStorage` so a reload in the same tab reuses the id (the
|
|
82
|
+
* sidecar restores the same PTY session via `TerminalView.connectionId`), while
|
|
83
|
+
* separate tabs/windows each get a distinct id. Pass the result as
|
|
84
|
+
* `TerminalView`'s `connectionId`. Without it (e.g. gtm-agent today) every tab
|
|
85
|
+
* shares one connection id and their reconnects evict each other.
|
|
86
|
+
*
|
|
87
|
+
* Falls back to an ephemeral id when `sessionStorage` is unavailable (SSR,
|
|
88
|
+
* privacy mode) — still unique per call, just not reload-stable.
|
|
89
|
+
*/
|
|
90
|
+
export declare function tabTerminalConnectionId(storageKey?: string): string;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `SeatPaywall` — the shared "unlock this product" screen every agent app
|
|
3
|
+
* shows when a user has no active seat and has spent past the free tier.
|
|
4
|
+
*
|
|
5
|
+
* Copy contract (design §6.8): the included monthly AI usage is framed as a
|
|
6
|
+
* BENEFIT the buyer receives — never the ratio, never the word "margin", never
|
|
7
|
+
* "we debit 50%". Surface the allowance, hide the economics.
|
|
8
|
+
*
|
|
9
|
+
* Styling contract matches the rest of `web-react`: Tailwind classes over the
|
|
10
|
+
* shared design tokens (`bg-card`, `border-border`, `text-muted-foreground`,
|
|
11
|
+
* `bg-primary`, …); glyphs are inline SVGs; no icon or UI library.
|
|
12
|
+
*/
|
|
13
|
+
import type { ReactNode } from 'react';
|
|
14
|
+
import type { ProductSeatOffer } from '../platform/billing';
|
|
15
|
+
export interface SeatPaywallProps {
|
|
16
|
+
/** Human product name shown in the headline, e.g. "Creative". */
|
|
17
|
+
product: string;
|
|
18
|
+
/** Fired when the user clicks the unlock CTA — route them to checkout. When
|
|
19
|
+
* it returns a promise the button shows a pending state and ignores repeat
|
|
20
|
+
* clicks until it settles (no double-charge on a slow checkout open). */
|
|
21
|
+
onCheckout: () => void | Promise<void>;
|
|
22
|
+
/** Monthly seat price in whole dollars. Default 100. */
|
|
23
|
+
priceUsd?: number;
|
|
24
|
+
/** Included monthly AI usage in whole dollars. Default 50. */
|
|
25
|
+
includedUsageUsd?: number;
|
|
26
|
+
/** Platform catalog terms. When present, these override the legacy dollar
|
|
27
|
+
* props and show any introductory period without product-local price copy. */
|
|
28
|
+
offer?: ProductSeatOffer;
|
|
29
|
+
/** Optional one-line value prop under the headline. */
|
|
30
|
+
tagline?: string;
|
|
31
|
+
/** CTA label. Default "Continue to checkout". */
|
|
32
|
+
ctaLabel?: string;
|
|
33
|
+
/** Value-prop bullets. Default = product/usage-derived only; pass your own to
|
|
34
|
+
* supply product-specific value props (the shell bakes no GTM copy). */
|
|
35
|
+
benefits?: ReactNode[];
|
|
36
|
+
/** Optional fine print under the CTA (e.g. "Cancel anytime."). Omitted by default. */
|
|
37
|
+
footnote?: ReactNode;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Centered card paywall. The price line reads
|
|
41
|
+
* "$100/mo · includes $50/mo of AI usage" so the included allowance anchors the
|
|
42
|
+
* value without ever exposing the ratio — and says it ONCE: the default
|
|
43
|
+
* benefits don't restate the usage line the subline already carries, and the
|
|
44
|
+
* CTA is the next step ("Continue to checkout"), not a third repeat of the
|
|
45
|
+
* eyebrow + headline's "Unlock {product}".
|
|
46
|
+
*/
|
|
47
|
+
export declare function SeatPaywall({ product, onCheckout, priceUsd, includedUsageUsd, offer, tagline, ctaLabel, benefits, footnote, }: SeatPaywallProps): ReactNode;
|