@teaflask/assistant 0.3.0 → 0.7.0
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/LICENSE +105 -201
- package/README.md +129 -1257
- package/custom-elements.json +264 -0
- package/dist/activity.d.ts +1 -2
- package/dist/activity.js +0 -12
- package/dist/affordances/highlight.js +0 -28
- package/dist/affordances/prefill.js +0 -39
- package/dist/appearance/theme.d.ts +136 -16
- package/dist/appearance/theme.js +0 -17
- package/dist/components/activity-rail.js +2 -65
- package/dist/components/activity-shelf.js +0 -11
- package/dist/components/agent-identity-mark.js +1 -28
- package/dist/components/appearance-context.js +0 -1
- package/dist/components/approval-card.js +5 -134
- package/dist/components/approval-context.d.ts +20 -4
- package/dist/components/approval-context.js +0 -10
- package/dist/components/assistant-companion.d.ts +15 -10
- package/dist/components/assistant-companion.js +0 -60
- package/dist/components/assistant-page.d.ts +47 -49
- package/dist/components/assistant-page.js +2 -64
- package/dist/components/assistant-palette-body.js +0 -14
- package/dist/components/assistant-palette.d.ts +10 -8
- package/dist/components/assistant-palette.js +2 -21
- package/dist/components/assistant-transcript.js +2 -86
- package/dist/components/attachment-chips.js +0 -21
- package/dist/components/child-transcript.js +4 -123
- package/dist/components/companion-drawer-body.js +1 -25
- package/dist/components/companion-drawer.js +0 -44
- package/dist/components/companion-header-disclosure.js +1 -42
- package/dist/components/companion-history-menu.js +2 -31
- package/dist/components/companion-mark.js +0 -9
- package/dist/components/companion-mode-menu.js +2 -29
- package/dist/components/composer-attachment-chip.js +1 -11
- package/dist/components/composer-banner.js +17 -0
- package/dist/components/composer.js +16 -262
- package/dist/components/conversation-context.d.ts +6 -1
- package/dist/components/conversation-context.js +0 -1
- package/dist/components/conversation-gate-card.js +31 -96
- package/dist/components/conversation-surfaces-provider.js +0 -19
- package/dist/components/conversation-view.d.ts +8 -19
- package/dist/components/conversation-view.js +4 -96
- package/dist/components/copy-text-button.js +0 -13
- package/dist/components/elicitation-context.d.ts +39 -13
- package/dist/components/elicitation-context.js +0 -15
- package/dist/components/elicitation-receipt-row.js +0 -3
- package/dist/components/human-file-size.js +0 -4
- package/dist/components/icons.js +0 -28
- package/dist/components/lazy-body.js +0 -24
- package/dist/components/markdown/assistant-markdown.js +0 -2
- package/dist/components/markdown/code-block.js +1 -12
- package/dist/components/markdown/highlight.js +0 -12
- package/dist/components/markdown/markdown-structure.js +36 -11
- package/dist/components/markdown/memoized-blocks.js +3 -10
- package/dist/components/markdown/paced-assistant-markdown.js +0 -10
- package/dist/components/markdown/reveal-pacer.js +0 -27
- package/dist/components/markdown/shiki-highlighter.js +0 -10
- package/dist/components/markdown/streaming-repair.js +0 -18
- package/dist/components/markdown/use-highlighted-html.js +0 -6
- package/dist/components/markdown/use-paced-reveal.js +0 -32
- package/dist/components/memory-updated-footer.js +1 -38
- package/dist/components/message-list-row.js +3 -50
- package/dist/components/message-list.js +2 -25
- package/dist/components/model-picker-chip.js +5 -142
- package/dist/components/model-picker-effort.js +0 -18
- package/dist/components/model-picker-panels.js +0 -18
- package/dist/components/notice-banner.js +0 -7
- package/dist/components/operation-icons.js +1 -41
- package/dist/components/pretty-print.js +0 -1
- package/dist/components/primitives/autofocus.js +0 -11
- package/dist/components/primitives/button.js +26 -74
- package/dist/components/primitives/cx.js +0 -3
- package/dist/components/primitives/dialog.js +1 -30
- package/dist/components/primitives/disclosure.js +2 -49
- package/dist/components/primitives/file-input.js +0 -8
- package/dist/components/primitives/floating-panel.js +3 -73
- package/dist/components/primitives/kbd.js +0 -14
- package/dist/components/primitives/textarea.js +0 -4
- package/dist/components/primitives/use-dock-reflow.js +0 -22
- package/dist/components/primitives/use-swipe-dismiss.js +0 -91
- package/dist/components/provider-chip.js +29 -71
- package/dist/components/question-panel-answers.js +0 -12
- package/dist/components/question-panel-footer.js +1 -10
- package/dist/components/question-panel.js +0 -46
- package/dist/components/react-tool-view.d.ts +7 -15
- package/dist/components/react-tool-view.js +0 -50
- package/dist/components/reasoning-row.js +0 -11
- package/dist/components/receipt-rows.js +0 -19
- package/dist/components/run-status-announcer.js +0 -23
- package/dist/components/scroll-follow-guards.js +0 -75
- package/dist/components/served-suggestions.js +0 -17
- package/dist/components/slot-boundary.js +0 -29
- package/dist/components/standing-poll.js +25 -0
- package/dist/components/streaming-states.js +0 -28
- package/dist/components/subagent-count-pill.js +4 -70
- package/dist/components/subagent-current-work.js +0 -21
- package/dist/components/subagent-delegation-surface.js +0 -100
- package/dist/components/subagent-delivery-divider.js +1 -22
- package/dist/components/subagent-drill-in.js +0 -12
- package/dist/components/subagent-execution-work.js +0 -8
- package/dist/components/subagent-group-row.js +7 -141
- package/dist/components/subagent-preview-popover.js +1 -21
- package/dist/components/subscription-connect-arms.js +45 -0
- package/dist/components/subscription-connect-flow.js +234 -299
- package/dist/components/subscription-connected-standing.js +54 -42
- package/dist/components/subscription-plan-notice.js +31 -0
- package/dist/components/subscription-recheck.js +73 -0
- package/dist/components/surface-boundary.js +1 -36
- package/dist/components/suspension-surfaces.js +0 -64
- package/dist/components/teaflask-assistant-provider.d.ts +96 -63
- package/dist/components/teaflask-assistant-provider.js +26 -53
- package/dist/components/teaflask-assistant.d.ts +31 -16
- package/dist/components/teaflask-assistant.js +0 -16
- package/dist/components/thread-list.js +0 -36
- package/dist/components/tool-arguments-summary.js +0 -26
- package/dist/components/tool-call-rows.js +1 -89
- package/dist/components/tool-row.js +2 -43
- package/dist/components/tool-view-registry-context.js +0 -13
- package/dist/components/tool-view-slot.js +2 -115
- package/dist/components/tool-views/action-view.js +1 -41
- package/dist/components/tool-views/command-view.js +0 -28
- package/dist/components/tool-views/docs-search-view.js +0 -39
- package/dist/components/tool-views/file-edit-view.js +0 -70
- package/dist/components/tool-views/parts-classes.d.ts +5 -24
- package/dist/components/tool-views/parts-classes.js +5 -31
- package/dist/components/tool-views/parts.d.ts +44 -8
- package/dist/components/tool-views/parts.js +0 -6
- package/dist/components/tool-views/questions-view.js +2 -5
- package/dist/components/tool-views/view-dom.d.ts +73 -69
- package/dist/components/tool-views/view-dom.js +0 -78
- package/dist/components/transcript.js +3 -48
- package/dist/components/use-answer-list-fold.js +0 -4
- package/dist/components/use-assistant-activity.d.ts +3 -7
- package/dist/components/use-assistant-activity.js +0 -9
- package/dist/components/use-assistant-conversation.d.ts +97 -9
- package/dist/components/use-assistant-conversation.js +0 -7
- package/dist/components/use-assistant-surface-presence.js +0 -5
- package/dist/components/use-child-replay-stream.js +1 -146
- package/dist/components/use-latest-ref.js +0 -4
- package/dist/components/use-member-toggle-outrank.js +0 -45
- package/dist/components/use-perch-clearance.js +0 -40
- package/dist/components/use-question-panel-keys.js +0 -44
- package/dist/components/use-register-assistant-surface.js +0 -8
- package/dist/components/use-resolved-theme-mode.js +0 -34
- package/dist/components/use-roster-disclosure.js +0 -65
- package/dist/components/use-roster-preview.js +0 -6
- package/dist/components/use-store-cell.d.ts +5 -3
- package/dist/components/use-store-cell.js +0 -3
- package/dist/components/use-thread-dispatches.js +8 -575
- package/dist/components/use-transcript-folds.js +2 -70
- package/dist/components/use-transcript.d.ts +53 -22
- package/dist/components/use-transcript.js +7 -28
- package/dist/components/user-message.js +0 -15
- package/dist/contract/actions-adapter.d.ts +70 -19
- package/dist/contract/assistant-config.d.ts +0 -1
- package/dist/contract/dispatches.js +0 -33
- package/dist/contract/errors.d.ts +6 -2
- package/dist/contract/events.d.ts +1 -4
- package/dist/contract/events.js +0 -30
- package/dist/contract/identity.d.ts +1 -2
- package/dist/contract/subscriptions.d.ts +16 -2
- package/dist/contract/subscriptions.js +35 -5
- package/dist/contract/telemetry.d.ts +45 -18
- package/dist/contract/telemetry.js +0 -10
- package/dist/contract/threads.d.ts +5 -2
- package/dist/contract/threads.js +0 -11
- package/dist/core/activity-title.js +0 -6
- package/dist/core/activity.d.ts +44 -15
- package/dist/core/activity.js +0 -17
- package/dist/core/agent-identity.js +0 -17
- package/dist/core/approval-decision.js +1 -98
- package/dist/core/approval-inbox.d.ts +67 -152
- package/dist/core/approval-inbox.js +0 -173
- package/dist/core/approval-request-narrowing.d.ts +0 -17
- package/dist/core/approval-request-narrowing.js +0 -20
- package/dist/core/approval-resolved.js +0 -21
- package/dist/core/assistant-prose.js +0 -15
- package/dist/core/assistant-session-registry.js +54 -130
- package/dist/core/attachment-uploads.js +0 -15
- package/dist/core/block-timing-anchors.js +0 -46
- package/dist/core/companion-drawer-flag.js +0 -9
- package/dist/core/companion-presence.js +0 -7
- package/dist/core/composer-attachments.js +82 -0
- package/dist/core/composer-input-state.js +1 -22
- package/dist/core/composer-policy.d.ts +20 -13
- package/dist/core/composer-policy.js +0 -35
- package/dist/core/connect-gate.d.ts +0 -14
- package/dist/core/connect-gate.js +0 -22
- package/dist/core/connection-driver.js +0 -60
- package/dist/core/connection-epoch.d.ts +65 -73
- package/dist/core/connection-epoch.js +1 -73
- package/dist/core/consumed-interrupts.d.ts +0 -14
- package/dist/core/consumed-interrupts.js +0 -35
- package/dist/core/conversation-adoption.js +40 -183
- package/dist/core/conversation-contract.d.ts +113 -10
- package/dist/core/conversation-publish.js +1 -48
- package/dist/core/conversation-refresh.js +1 -35
- package/dist/core/conversation-send.js +0 -62
- package/dist/core/conversation-store.d.ts +3 -31
- package/dist/core/conversation-store.js +7 -175
- package/dist/core/coworker-execution-work.d.ts +0 -11
- package/dist/core/coworker-execution-work.js +0 -14
- package/dist/core/dispatch-poll.js +81 -0
- package/dist/core/dock-reflow.js +0 -27
- package/dist/core/elicitation-answers.js +12 -53
- package/dist/core/elicitation-cards.d.ts +14 -24
- package/dist/core/elicitation-cards.js +0 -34
- package/dist/core/elicitation-pickers.d.ts +16 -9
- package/dist/core/elicitation-pickers.js +0 -30
- package/dist/core/epoch-sync.js +0 -147
- package/dist/core/error-copy.js +8 -51
- package/dist/core/execution-driver.js +0 -92
- package/dist/core/execution-handlers.d.ts +0 -14
- package/dist/core/execution-handlers.js +0 -132
- package/dist/core/execution-inbox.d.ts +0 -46
- package/dist/core/execution-inbox.js +0 -101
- package/dist/core/execution-kinds.d.ts +0 -23
- package/dist/core/execution-kinds.js +0 -45
- package/dist/core/execution-request-narrowing.d.ts +0 -15
- package/dist/core/execution-request-narrowing.js +0 -18
- package/dist/core/host-fill.js +0 -8
- package/dist/core/hotkey.js +0 -36
- package/dist/core/identity-pair.js +18 -0
- package/dist/core/idle-recheck.js +0 -36
- package/dist/core/memory-provenance-anchors.d.ts +16 -51
- package/dist/core/memory-provenance-anchors.js +0 -93
- package/dist/core/messages-cell.js +0 -22
- package/dist/core/observable-cell.d.ts +12 -1
- package/dist/core/observable-cell.js +0 -9
- package/dist/core/pending-decision-gap.d.ts +9 -36
- package/dist/core/pending-decision-gap.js +0 -29
- package/dist/core/perch-clearance.js +0 -27
- package/dist/core/question-drafts.d.ts +59 -25
- package/dist/core/question-drafts.js +0 -68
- package/dist/core/question-receipt.js +0 -18
- package/dist/core/reasoning-copy.js +0 -8
- package/dist/core/receipt-anchors.d.ts +9 -27
- package/dist/core/receipt-anchors.js +0 -49
- package/dist/core/run-folds.js +1 -77
- package/dist/core/run-status.js +0 -29
- package/dist/core/segment-timing.d.ts +23 -20
- package/dist/core/segment-timing.js +0 -21
- package/dist/core/settle-refresh.js +0 -12
- package/dist/core/step-caption.js +0 -7
- package/dist/core/stop-copy.js +0 -7
- package/dist/core/stop-settle.js +0 -17
- package/dist/core/stream-trouble.js +0 -46
- package/dist/core/subagent-brief.js +0 -8
- package/dist/core/subagent-delivery-anchors.d.ts +7 -30
- package/dist/core/subagent-delivery-anchors.js +0 -49
- package/dist/core/subagent-ledger-join.js +176 -0
- package/dist/core/subagent-presence.js +0 -35
- package/dist/core/subagent-roster.js +0 -31
- package/dist/core/subagent-rows.d.ts +68 -58
- package/dist/core/subagent-rows.js +0 -66
- package/dist/core/surface-registry.js +0 -25
- package/dist/core/suspension-queue.js +0 -29
- package/dist/core/tail-slot-pool.js +0 -36
- package/dist/core/thread-dispatch-ledger.js +303 -0
- package/dist/core/time-labels.js +0 -23
- package/dist/core/tool-call-display-anchors.js +0 -74
- package/dist/core/tool-call-display.d.ts +71 -33
- package/dist/core/tool-call-display.js +0 -17
- package/dist/core/tool-call-presentation.d.ts +32 -23
- package/dist/core/tool-call-presentation.js +0 -53
- package/dist/core/tool-cancel-anchors.js +0 -6
- package/dist/core/tool-decision-anchors.js +0 -31
- package/dist/core/tool-denial-anchors.d.ts +0 -39
- package/dist/core/tool-denial-anchors.js +0 -36
- package/dist/core/tool-error-anchors.js +0 -8
- package/dist/core/tool-flag-anchors.js +1 -16
- package/dist/core/tool-offload-anchors.js +0 -7
- package/dist/core/tool-outcome.js +0 -26
- package/dist/core/tool-refusal-anchors.js +0 -9
- package/dist/core/tool-result-envelope.js +0 -30
- package/dist/core/tool-schema-anchors.d.ts +6 -39
- package/dist/core/tool-schema-anchors.js +0 -58
- package/dist/core/tool-sentence-anchors.js +1 -20
- package/dist/core/tool-view.d.ts +174 -75
- package/dist/core/tool-view.js +0 -28
- package/dist/core/transcript-lease.js +0 -26
- package/dist/core/transcript-rows.d.ts +138 -72
- package/dist/core/transcript-rows.js +0 -136
- package/dist/core/turn-failed-anchors.d.ts +4 -1
- package/dist/core/turn-failed-anchors.js +0 -11
- package/dist/core/turn-failure-copy.js +0 -26
- package/dist/core/turn-usage-anchors.d.ts +0 -23
- package/dist/core/turn-usage-anchors.js +0 -46
- package/dist/core/turns-backfill.js +0 -16
- package/dist/core/user-turn-ledger.d.ts +3 -22
- package/dist/core/user-turn-ledger.js +1 -41
- package/dist/core/wire-sentence-cap.js +0 -6
- package/dist/generated/models/activityMessage.d.ts +0 -13
- package/dist/generated/models/activityMessage.js +0 -1
- package/dist/generated/models/activityMessageContent.d.ts +0 -7
- package/dist/generated/models/activityMessageContent.js +0 -7
- package/dist/generated/models/activityMessageMetadata.d.ts +0 -7
- package/dist/generated/models/activityMessageMetadata.js +0 -7
- package/dist/generated/models/agentDispatchStatus.d.ts +0 -7
- package/dist/generated/models/agentDispatchStatus.js +0 -7
- package/dist/generated/models/apiErrorBody.d.ts +0 -7
- package/dist/generated/models/apiErrorBody.js +0 -1
- package/dist/generated/models/apiErrorCode.d.ts +2 -11
- package/dist/generated/models/apiErrorCode.js +2 -8
- package/dist/generated/models/approvalRequestedMarker.d.ts +0 -18
- package/dist/generated/models/approvalRequestedMarker.js +0 -1
- package/dist/generated/models/approvalRequestedMarkerToolArgs.d.ts +0 -7
- package/dist/generated/models/approvalRequestedMarkerToolArgs.js +0 -7
- package/dist/generated/models/approvalRequestedMarkerToolInputSchema.d.ts +0 -7
- package/dist/generated/models/approvalRequestedMarkerToolInputSchema.js +0 -7
- package/dist/generated/models/approvalRequestedMarkerToolOutputSchema.d.ts +0 -7
- package/dist/generated/models/approvalRequestedMarkerToolOutputSchema.js +0 -7
- package/dist/generated/models/approvalResolvedMarker.d.ts +0 -16
- package/dist/generated/models/approvalResolvedMarker.js +0 -7
- package/dist/generated/models/askQuestionsAction.d.ts +0 -16
- package/dist/generated/models/askQuestionsAction.js +0 -1
- package/dist/generated/models/askQuestionsResult.d.ts +0 -14
- package/dist/generated/models/askQuestionsResult.js +0 -1
- package/dist/generated/models/assistantConfigResponse.d.ts +0 -7
- package/dist/generated/models/assistantConfigResponse.js +0 -1
- package/dist/generated/models/assistantMessage.d.ts +0 -11
- package/dist/generated/models/assistantMessage.js +0 -1
- package/dist/generated/models/assistantMessageMetadata.d.ts +0 -7
- package/dist/generated/models/assistantMessageMetadata.js +0 -7
- package/dist/generated/models/assistantStreamMarkerName.d.ts +0 -12
- package/dist/generated/models/assistantStreamMarkerName.js +0 -7
- package/dist/generated/models/assistantTurnKind.d.ts +0 -7
- package/dist/generated/models/assistantTurnKind.js +0 -7
- package/dist/generated/models/assistantTurnStatus.d.ts +14 -5
- package/dist/generated/models/assistantTurnStatus.js +0 -7
- package/dist/generated/models/attachmentKind.d.ts +0 -10
- package/dist/generated/models/attachmentKind.js +0 -7
- package/dist/generated/models/attachmentPolicyResponse.d.ts +0 -13
- package/dist/generated/models/attachmentPolicyResponse.js +0 -1
- package/dist/generated/models/audioInputContent.d.ts +0 -10
- package/dist/generated/models/audioInputContent.js +0 -1
- package/dist/generated/models/audioPart.d.ts +0 -10
- package/dist/generated/models/audioPart.js +0 -1
- package/dist/generated/models/beginSubscriptionAuthorizationResponse.d.ts +4 -0
- package/dist/generated/models/beginSubscriptionAuthorizationResponse.js +1 -0
- package/dist/generated/models/binaryInputContent.d.ts +0 -13
- package/dist/generated/models/binaryInputContent.js +0 -7
- package/dist/generated/models/completeSubscriptionAuthorizationRequest.d.ts +5 -0
- package/dist/generated/models/completeSubscriptionAuthorizationRequest.js +1 -0
- package/dist/generated/models/completeSubscriptionAuthorizationResponse.d.ts +4 -0
- package/dist/generated/models/completeSubscriptionAuthorizationResponse.js +1 -0
- package/dist/generated/models/connectProjectionResponse.d.ts +0 -17
- package/dist/generated/models/connectProjectionResponse.js +0 -1
- package/dist/generated/models/connectProjectionResponseGate.d.ts +0 -7
- package/dist/generated/models/connectProjectionResponseGate.js +0 -7
- package/dist/generated/models/connectProjectionResponseReason.d.ts +0 -7
- package/dist/generated/models/connectProjectionResponseReason.js +0 -7
- package/dist/generated/models/context.d.ts +0 -11
- package/dist/generated/models/context.js +0 -7
- package/dist/generated/models/createServingAttachmentUploadRequest.d.ts +0 -15
- package/dist/generated/models/createServingAttachmentUploadRequest.js +0 -7
- package/dist/generated/models/createServingAttachmentUploadResponse.d.ts +0 -7
- package/dist/generated/models/createServingAttachmentUploadResponse.js +0 -1
- package/dist/generated/models/currentVisitorResponse.d.ts +0 -7
- package/dist/generated/models/currentVisitorResponse.js +0 -1
- package/dist/generated/models/dataSource.d.ts +0 -10
- package/dist/generated/models/dataSource.js +0 -7
- package/dist/generated/models/deliveredSubagentResult.d.ts +0 -12
- package/dist/generated/models/deliveredSubagentResult.js +0 -7
- package/dist/generated/models/developerMessage.d.ts +0 -10
- package/dist/generated/models/developerMessage.js +0 -1
- package/dist/generated/models/developerMessageMetadata.d.ts +0 -7
- package/dist/generated/models/developerMessageMetadata.js +0 -7
- package/dist/generated/models/docHeading.d.ts +0 -11
- package/dist/generated/models/docHeading.js +0 -1
- package/dist/generated/models/docHeadingLevel.d.ts +0 -7
- package/dist/generated/models/docHeadingLevel.js +0 -7
- package/dist/generated/models/documentInputContent.d.ts +0 -10
- package/dist/generated/models/documentInputContent.js +0 -1
- package/dist/generated/models/documentPart.d.ts +0 -10
- package/dist/generated/models/documentPart.js +0 -1
- package/dist/generated/models/endUserIdentity.d.ts +0 -10
- package/dist/generated/models/endUserIdentity.js +0 -7
- package/dist/generated/models/errorEnvelope.d.ts +0 -7
- package/dist/generated/models/errorEnvelope.js +0 -1
- package/dist/generated/models/evidenceAfterVoidRecordedMarker.d.ts +0 -12
- package/dist/generated/models/evidenceAfterVoidRecordedMarker.js +0 -1
- package/dist/generated/models/evidenceAfterVoidRecordedMarkerError.d.ts +0 -7
- package/dist/generated/models/evidenceAfterVoidRecordedMarkerError.js +0 -7
- package/dist/generated/models/evidenceAfterVoidRecordedMarkerResult.d.ts +0 -7
- package/dist/generated/models/evidenceAfterVoidRecordedMarkerResult.js +0 -7
- package/dist/generated/models/fileSource.d.ts +0 -14
- package/dist/generated/models/fileSource.js +0 -7
- package/dist/generated/models/functionCall.d.ts +0 -10
- package/dist/generated/models/functionCall.js +0 -7
- package/dist/generated/models/getServingAssistantThreadParams.d.ts +0 -11
- package/dist/generated/models/getServingAssistantThreadParams.js +0 -7
- package/dist/generated/models/helpHostResolution.d.ts +0 -7
- package/dist/generated/models/helpHostResolution.js +0 -7
- package/dist/generated/models/helpPageResponse.d.ts +0 -7
- package/dist/generated/models/helpPageResponse.js +0 -1
- package/dist/generated/models/helpSearchHit.d.ts +0 -17
- package/dist/generated/models/helpSearchHit.js +0 -1
- package/dist/generated/models/helpSearchMode.d.ts +0 -12
- package/dist/generated/models/helpSearchMode.js +0 -7
- package/dist/generated/models/helpSearchResponse.d.ts +0 -7
- package/dist/generated/models/helpSearchResponse.js +0 -1
- package/dist/generated/models/helpSiteGroup.d.ts +0 -7
- package/dist/generated/models/helpSiteGroup.js +0 -1
- package/dist/generated/models/helpSitePage.d.ts +1 -7
- package/dist/generated/models/helpSitePage.js +0 -7
- package/dist/generated/models/helpSiteResponse.d.ts +0 -7
- package/dist/generated/models/helpSiteResponse.js +0 -1
- package/dist/generated/models/helpSiteTab.d.ts +1 -7
- package/dist/generated/models/helpSiteTab.js +0 -1
- package/dist/generated/models/highlightResult.d.ts +0 -11
- package/dist/generated/models/highlightResult.js +0 -7
- package/dist/generated/models/httpIntentResult.d.ts +0 -13
- package/dist/generated/models/httpIntentResult.js +0 -1
- package/dist/generated/models/httpIntentResultHeaders.d.ts +0 -7
- package/dist/generated/models/httpIntentResultHeaders.js +0 -7
- package/dist/generated/models/imageInputContent.d.ts +0 -10
- package/dist/generated/models/imageInputContent.js +0 -1
- package/dist/generated/models/imagePart.d.ts +0 -10
- package/dist/generated/models/imagePart.js +0 -1
- package/dist/generated/models/index.d.ts +3 -13
- package/dist/generated/models/index.js +3 -13
- package/dist/generated/models/inputContentDataSource.d.ts +0 -10
- package/dist/generated/models/inputContentDataSource.js +0 -7
- package/dist/generated/models/inputContentUrlSource.d.ts +0 -10
- package/dist/generated/models/inputContentUrlSource.js +0 -7
- package/dist/generated/models/interruptAnswerConsumedMarker.d.ts +0 -21
- package/dist/generated/models/interruptAnswerConsumedMarker.js +0 -1
- package/dist/generated/models/interruptAnswerConsumedMarkerFamily.d.ts +0 -7
- package/dist/generated/models/interruptAnswerConsumedMarkerFamily.js +0 -7
- package/dist/generated/models/listServingAssistantThreadsParams.d.ts +0 -11
- package/dist/generated/models/listServingAssistantThreadsParams.js +0 -7
- package/dist/generated/models/memoryUpdatedMarker.d.ts +0 -14
- package/dist/generated/models/memoryUpdatedMarker.js +0 -7
- package/dist/generated/models/mintVisitorTokenRequest.d.ts +0 -7
- package/dist/generated/models/mintVisitorTokenRequest.js +0 -7
- package/dist/generated/models/mintVisitorTokenResponse.d.ts +1 -7
- package/dist/generated/models/mintVisitorTokenResponse.js +0 -1
- package/dist/generated/models/modelChoiceOption.d.ts +0 -14
- package/dist/generated/models/modelChoiceOption.js +0 -1
- package/dist/generated/models/modelChoiceResponse.d.ts +0 -25
- package/dist/generated/models/modelChoiceResponse.js +0 -1
- package/dist/generated/models/modelPickRequest.d.ts +0 -20
- package/dist/generated/models/modelPickRequest.js +0 -1
- package/dist/generated/models/navigateResult.d.ts +0 -11
- package/dist/generated/models/navigateResult.js +0 -7
- package/dist/generated/models/prefillFormResult.d.ts +0 -12
- package/dist/generated/models/prefillFormResult.js +0 -1
- package/dist/generated/models/publishableKeyMode.d.ts +0 -7
- package/dist/generated/models/publishableKeyMode.js +0 -7
- package/dist/generated/models/question.d.ts +0 -26
- package/dist/generated/models/question.js +0 -1
- package/dist/generated/models/questionAnswer.d.ts +0 -14
- package/dist/generated/models/questionAnswer.js +0 -7
- package/dist/generated/models/questionOption.d.ts +0 -15
- package/dist/generated/models/questionOption.js +0 -7
- package/dist/generated/models/readPageResult.d.ts +0 -13
- package/dist/generated/models/readPageResult.js +0 -7
- package/dist/generated/models/reasoningMessage.d.ts +0 -11
- package/dist/generated/models/reasoningMessage.js +0 -1
- package/dist/generated/models/reasoningMessageMetadata.d.ts +0 -7
- package/dist/generated/models/reasoningMessageMetadata.js +0 -7
- package/dist/generated/models/refusedField.d.ts +0 -11
- package/dist/generated/models/refusedField.js +0 -7
- package/dist/generated/models/resolveServingTurnApprovalRequest.d.ts +0 -8
- package/dist/generated/models/resolveServingTurnApprovalRequest.js +0 -1
- package/dist/generated/models/resolveServingTurnApprovalResponse.d.ts +0 -7
- package/dist/generated/models/resolveServingTurnApprovalResponse.js +0 -1
- package/dist/generated/models/resolveServingTurnToolResultsRequest.d.ts +0 -8
- package/dist/generated/models/resolveServingTurnToolResultsRequest.js +0 -1
- package/dist/generated/models/resolveServingTurnToolResultsResponse.d.ts +0 -7
- package/dist/generated/models/resolveServingTurnToolResultsResponse.js +0 -1
- package/dist/generated/models/resolvedLanding.d.ts +0 -7
- package/dist/generated/models/resolvedLanding.js +0 -1
- package/dist/generated/models/resolvedLandingCard.d.ts +0 -7
- package/dist/generated/models/resolvedLandingCard.js +0 -7
- package/dist/generated/models/resumeEntry.d.ts +0 -10
- package/dist/generated/models/resumeEntry.js +0 -1
- package/dist/generated/models/resumeEntryMetadata.d.ts +0 -7
- package/dist/generated/models/resumeEntryMetadata.js +0 -7
- package/dist/generated/models/resumeEntryStatus.d.ts +0 -7
- package/dist/generated/models/resumeEntryStatus.js +0 -7
- package/dist/generated/models/routeSuggestions.d.ts +0 -12
- package/dist/generated/models/routeSuggestions.js +0 -1
- package/dist/generated/models/runAgentInput.d.ts +0 -10
- package/dist/generated/models/runAgentInput.js +0 -1
- package/dist/generated/models/runResumedMarker.d.ts +0 -16
- package/dist/generated/models/runResumedMarker.js +0 -7
- package/dist/generated/models/sendServingAssistantMessageRequest.d.ts +0 -9
- package/dist/generated/models/sendServingAssistantMessageRequest.js +0 -1
- package/dist/generated/models/sendServingAssistantMessageResponse.d.ts +0 -7
- package/dist/generated/models/sendServingAssistantMessageResponse.js +0 -1
- package/dist/generated/models/servingAgentDispatchResponse.d.ts +0 -19
- package/dist/generated/models/servingAgentDispatchResponse.js +0 -1
- package/dist/generated/models/servingApprovalDelivery.d.ts +0 -7
- package/dist/generated/models/servingApprovalDelivery.js +0 -7
- package/dist/generated/models/servingAssistantThreadDetailResponse.d.ts +0 -7
- package/dist/generated/models/servingAssistantThreadDetailResponse.js +0 -1
- package/dist/generated/models/servingAssistantThreadResponse.d.ts +23 -7
- package/dist/generated/models/servingAssistantThreadResponse.js +0 -1
- package/dist/generated/models/servingAssistantTurnResponse.d.ts +0 -11
- package/dist/generated/models/servingAssistantTurnResponse.js +0 -1
- package/dist/generated/models/servingAssistantTurnResponsePendingApprovalDisplays.d.ts +0 -7
- package/dist/generated/models/servingAssistantTurnResponsePendingApprovalDisplays.js +0 -1
- package/dist/generated/models/servingAttachmentDownloadUrlResponse.d.ts +0 -7
- package/dist/generated/models/servingAttachmentDownloadUrlResponse.js +0 -7
- package/dist/generated/models/servingAttachmentResponse.d.ts +28 -6
- package/dist/generated/models/servingAttachmentResponse.js +0 -1
- package/dist/generated/models/servingCoworkerApprovalRequest.d.ts +0 -20
- package/dist/generated/models/servingCoworkerApprovalRequest.js +0 -1
- package/dist/generated/models/servingCoworkerExecutionRequest.d.ts +0 -18
- package/dist/generated/models/servingCoworkerExecutionRequest.js +0 -1
- package/dist/generated/models/servingErrorCode.d.ts +17 -6
- package/dist/generated/models/servingErrorCode.js +1 -8
- package/dist/generated/models/servingStopDelivery.d.ts +0 -7
- package/dist/generated/models/servingStopDelivery.js +0 -7
- package/dist/generated/models/servingSubscriptionStatus.d.ts +0 -20
- package/dist/generated/models/servingSubscriptionStatus.js +0 -1
- package/dist/generated/models/servingSubscriptionStatusBounceCause.d.ts +1 -7
- package/dist/generated/models/servingSubscriptionStatusBounceCause.js +1 -7
- package/dist/generated/models/servingSubscriptionsResponse.d.ts +0 -7
- package/dist/generated/models/servingSubscriptionsResponse.js +0 -1
- package/dist/generated/models/servingToolResultDelivery.d.ts +0 -7
- package/dist/generated/models/servingToolResultDelivery.js +0 -7
- package/dist/generated/models/servingToolResultReport.d.ts +0 -14
- package/dist/generated/models/servingToolResultReport.js +0 -1
- package/dist/generated/models/servingToolResultReportError.d.ts +0 -7
- package/dist/generated/models/servingToolResultReportError.js +0 -7
- package/dist/generated/models/servingToolResultReportResult.d.ts +0 -7
- package/dist/generated/models/servingToolResultReportResult.js +0 -7
- package/dist/generated/models/servingTurnApprovalDecision.d.ts +0 -17
- package/dist/generated/models/servingTurnApprovalDecision.js +0 -7
- package/dist/generated/models/servingTurnAttachmentResponse.d.ts +10 -9
- package/dist/generated/models/servingTurnAttachmentResponse.js +0 -1
- package/dist/generated/models/siteTheme.d.ts +1 -11
- package/dist/generated/models/siteTheme.js +0 -1
- package/dist/generated/models/siteThemeDefaultAppearance.d.ts +0 -7
- package/dist/generated/models/siteThemeDefaultAppearance.js +0 -7
- package/dist/generated/models/steeringFiredAction.d.ts +0 -12
- package/dist/generated/models/steeringFiredAction.js +0 -7
- package/dist/generated/models/steeringFiredMarker.d.ts +0 -11
- package/dist/generated/models/steeringFiredMarker.js +0 -1
- package/dist/generated/models/stopServingTurnResponse.d.ts +0 -7
- package/dist/generated/models/stopServingTurnResponse.js +0 -1
- package/dist/generated/models/subagentResultsDeliveredMarker.d.ts +0 -11
- package/dist/generated/models/subagentResultsDeliveredMarker.js +0 -1
- package/dist/generated/models/subscriptionCredentialState.d.ts +0 -15
- package/dist/generated/models/subscriptionCredentialState.js +0 -7
- package/dist/generated/models/subscriptionProvider.d.ts +0 -15
- package/dist/generated/models/subscriptionProvider.js +0 -7
- package/dist/generated/models/suggestionItem.d.ts +0 -15
- package/dist/generated/models/suggestionItem.js +0 -1
- package/dist/generated/models/suggestionKind.d.ts +0 -12
- package/dist/generated/models/suggestionKind.js +0 -7
- package/dist/generated/models/suggestionsConfig.d.ts +0 -13
- package/dist/generated/models/suggestionsConfig.js +0 -1
- package/dist/generated/models/systemMessage.d.ts +0 -10
- package/dist/generated/models/systemMessage.js +0 -1
- package/dist/generated/models/systemMessageMetadata.d.ts +0 -7
- package/dist/generated/models/systemMessageMetadata.js +0 -7
- package/dist/generated/models/textInputContent.d.ts +0 -10
- package/dist/generated/models/textInputContent.js +0 -7
- package/dist/generated/models/textPart.d.ts +0 -10
- package/dist/generated/models/textPart.js +0 -7
- package/dist/generated/models/thinkingEffort.d.ts +7 -11
- package/dist/generated/models/thinkingEffort.js +0 -7
- package/dist/generated/models/threadModelPickResponse.d.ts +10 -11
- package/dist/generated/models/threadModelPickResponse.js +0 -1
- package/dist/generated/models/tool.d.ts +0 -10
- package/dist/generated/models/tool.js +0 -1
- package/dist/generated/models/toolCall.d.ts +0 -12
- package/dist/generated/models/toolCall.js +0 -1
- package/dist/generated/models/toolCallAnnotatedMarker.d.ts +0 -15
- package/dist/generated/models/toolCallAnnotatedMarker.js +0 -1
- package/dist/generated/models/toolCallAnnotatedMarkerToolInputSchema.d.ts +0 -7
- package/dist/generated/models/toolCallAnnotatedMarkerToolInputSchema.js +0 -7
- package/dist/generated/models/toolCallAnnotatedMarkerToolOutputSchema.d.ts +0 -7
- package/dist/generated/models/toolCallAnnotatedMarkerToolOutputSchema.js +0 -7
- package/dist/generated/models/toolCallDisplayPayload.d.ts +0 -12
- package/dist/generated/models/toolCallDisplayPayload.js +0 -1
- package/dist/generated/models/toolCallMetadata.d.ts +0 -7
- package/dist/generated/models/toolCallMetadata.js +0 -7
- package/dist/generated/models/toolExecutionRequestPayload.d.ts +0 -12
- package/dist/generated/models/toolExecutionRequestPayload.js +0 -1
- package/dist/generated/models/toolExecutionRequestPayloadAction.d.ts +0 -7
- package/dist/generated/models/toolExecutionRequestPayloadAction.js +0 -7
- package/dist/generated/models/toolExecutionRequestPayloadIntent.d.ts +0 -7
- package/dist/generated/models/toolExecutionRequestPayloadIntent.js +0 -7
- package/dist/generated/models/toolExecutionRequestedMarker.d.ts +0 -12
- package/dist/generated/models/toolExecutionRequestedMarker.js +0 -1
- package/dist/generated/models/toolMessage.d.ts +0 -11
- package/dist/generated/models/toolMessage.js +0 -1
- package/dist/generated/models/toolMessageMetadata.d.ts +0 -7
- package/dist/generated/models/toolMessageMetadata.js +0 -7
- package/dist/generated/models/toolMetadata.d.ts +0 -7
- package/dist/generated/models/toolMetadata.js +0 -7
- package/dist/generated/models/toolResultRecordedMarker.d.ts +0 -12
- package/dist/generated/models/toolResultRecordedMarker.js +0 -7
- package/dist/generated/models/toolViewRef.d.ts +0 -16
- package/dist/generated/models/toolViewRef.js +0 -7
- package/dist/generated/models/turnFailedMarker.d.ts +0 -12
- package/dist/generated/models/turnFailedMarker.js +0 -7
- package/dist/generated/models/turnStoppedMarker.d.ts +0 -11
- package/dist/generated/models/turnStoppedMarker.js +0 -7
- package/dist/generated/models/turnUsageRecordedMarker.d.ts +0 -17
- package/dist/generated/models/turnUsageRecordedMarker.js +0 -7
- package/dist/generated/models/turnVoidedMarker.d.ts +0 -11
- package/dist/generated/models/turnVoidedMarker.js +0 -7
- package/dist/generated/models/urlSource.d.ts +0 -10
- package/dist/generated/models/urlSource.js +0 -7
- package/dist/generated/models/userMessage.d.ts +0 -10
- package/dist/generated/models/userMessage.js +0 -1
- package/dist/generated/models/userMessageMetadata.d.ts +0 -7
- package/dist/generated/models/userMessageMetadata.js +0 -7
- package/dist/generated/models/videoInputContent.d.ts +0 -10
- package/dist/generated/models/videoInputContent.js +0 -1
- package/dist/generated/models/videoPart.d.ts +0 -10
- package/dist/generated/models/videoPart.js +0 -1
- package/dist/generated/models/visitorTier.d.ts +0 -12
- package/dist/generated/models/visitorTier.js +0 -7
- package/dist/generated/serving.js +20 -170
- package/dist/headless.d.ts +10 -6
- package/dist/headless.js +0 -39
- package/dist/index.d.ts +4 -9
- package/dist/index.js +0 -40
- package/dist/persistence/execution-ledger.js +0 -32
- package/dist/persistence/panel-mode.js +0 -20
- package/dist/persistence/plan-notice.js +30 -0
- package/dist/persistence/stored-thread.d.ts +5 -4
- package/dist/persistence/stored-thread.js +11 -16
- package/dist/reader/accessible-name.js +0 -21
- package/dist/reader/interactivity.js +1 -13
- package/dist/reader/layout-probe.js +0 -15
- package/dist/reader/line-diff.js +0 -8
- package/dist/reader/read-page.js +0 -42
- package/dist/reader/redaction.js +0 -22
- package/dist/reader/render.js +0 -7
- package/dist/reader/roles.js +0 -18
- package/dist/reader/snapshot-compaction.js +0 -17
- package/dist/reader/snapshot-node.js +1 -5
- package/dist/reader/snapshot-root.js +1 -11
- package/dist/reader/snapshot.js +0 -48
- package/dist/reader/visibility.js +0 -22
- package/dist/styles.css +1 -1
- package/dist/transport/actions-adapter.js +0 -36
- package/dist/transport/door-budget.js +3 -28
- package/dist/transport/replay-stream-agent.d.ts +0 -9
- package/dist/transport/replay-stream-agent.js +0 -46
- package/dist/transport/serving-api.js +10 -25
- package/dist/transport/serving-error.d.ts +19 -4
- package/dist/transport/serving-error.js +0 -15
- package/dist/transport/serving-fetch.js +6 -9
- package/dist/transport/stream-resume.d.ts +0 -58
- package/dist/transport/stream-resume.js +0 -178
- package/dist/transport/token-session.d.ts +6 -11
- package/dist/transport/token-session.js +86 -49
- package/package.json +21 -101
- package/CHANGELOG.md +0 -1099
- package/dist/activity.d.ts.map +0 -1
- package/dist/activity.js.map +0 -1
- package/dist/affordances/highlight.d.ts +0 -9
- package/dist/affordances/highlight.d.ts.map +0 -1
- package/dist/affordances/highlight.js.map +0 -1
- package/dist/affordances/prefill.d.ts +0 -21
- package/dist/affordances/prefill.d.ts.map +0 -1
- package/dist/affordances/prefill.js.map +0 -1
- package/dist/appearance/theme.d.ts.map +0 -1
- package/dist/appearance/theme.js.map +0 -1
- package/dist/components/activity-rail.d.ts +0 -19
- package/dist/components/activity-rail.d.ts.map +0 -1
- package/dist/components/activity-rail.js.map +0 -1
- package/dist/components/activity-shelf.d.ts +0 -20
- package/dist/components/activity-shelf.d.ts.map +0 -1
- package/dist/components/activity-shelf.js.map +0 -1
- package/dist/components/agent-identity-mark.d.ts +0 -12
- package/dist/components/agent-identity-mark.d.ts.map +0 -1
- package/dist/components/agent-identity-mark.js.map +0 -1
- package/dist/components/appearance-context.d.ts +0 -15
- package/dist/components/appearance-context.d.ts.map +0 -1
- package/dist/components/appearance-context.js.map +0 -1
- package/dist/components/approval-card.d.ts +0 -42
- package/dist/components/approval-card.d.ts.map +0 -1
- package/dist/components/approval-card.js.map +0 -1
- package/dist/components/approval-context.d.ts.map +0 -1
- package/dist/components/approval-context.js.map +0 -1
- package/dist/components/assistant-companion.d.ts.map +0 -1
- package/dist/components/assistant-companion.js.map +0 -1
- package/dist/components/assistant-page.d.ts.map +0 -1
- package/dist/components/assistant-page.js.map +0 -1
- package/dist/components/assistant-palette-body.d.ts +0 -4
- package/dist/components/assistant-palette-body.d.ts.map +0 -1
- package/dist/components/assistant-palette-body.js.map +0 -1
- package/dist/components/assistant-palette.d.ts.map +0 -1
- package/dist/components/assistant-palette.js.map +0 -1
- package/dist/components/assistant-transcript.d.ts +0 -104
- package/dist/components/assistant-transcript.d.ts.map +0 -1
- package/dist/components/assistant-transcript.js.map +0 -1
- package/dist/components/attachment-chips.d.ts +0 -5
- package/dist/components/attachment-chips.d.ts.map +0 -1
- package/dist/components/attachment-chips.js.map +0 -1
- package/dist/components/child-transcript.d.ts +0 -36
- package/dist/components/child-transcript.d.ts.map +0 -1
- package/dist/components/child-transcript.js.map +0 -1
- package/dist/components/companion-drawer-body.d.ts +0 -2
- package/dist/components/companion-drawer-body.d.ts.map +0 -1
- package/dist/components/companion-drawer-body.js.map +0 -1
- package/dist/components/companion-drawer.d.ts +0 -21
- package/dist/components/companion-drawer.d.ts.map +0 -1
- package/dist/components/companion-drawer.js.map +0 -1
- package/dist/components/companion-header-disclosure.d.ts +0 -38
- package/dist/components/companion-header-disclosure.d.ts.map +0 -1
- package/dist/components/companion-header-disclosure.js.map +0 -1
- package/dist/components/companion-history-menu.d.ts +0 -25
- package/dist/components/companion-history-menu.d.ts.map +0 -1
- package/dist/components/companion-history-menu.js.map +0 -1
- package/dist/components/companion-mark-image.d.ts +0 -4
- package/dist/components/companion-mark-image.d.ts.map +0 -1
- package/dist/components/companion-mark-image.js +0 -28
- package/dist/components/companion-mark-image.js.map +0 -1
- package/dist/components/companion-mark.d.ts +0 -2
- package/dist/components/companion-mark.d.ts.map +0 -1
- package/dist/components/companion-mark.js.map +0 -1
- package/dist/components/companion-mode-menu.d.ts +0 -22
- package/dist/components/companion-mode-menu.d.ts.map +0 -1
- package/dist/components/companion-mode-menu.js.map +0 -1
- package/dist/components/composer-attachment-chip.d.ts +0 -8
- package/dist/components/composer-attachment-chip.d.ts.map +0 -1
- package/dist/components/composer-attachment-chip.js.map +0 -1
- package/dist/components/composer.d.ts +0 -20
- package/dist/components/composer.d.ts.map +0 -1
- package/dist/components/composer.js.map +0 -1
- package/dist/components/conversation-context.d.ts.map +0 -1
- package/dist/components/conversation-context.js.map +0 -1
- package/dist/components/conversation-gate-card.d.ts +0 -9
- package/dist/components/conversation-gate-card.d.ts.map +0 -1
- package/dist/components/conversation-gate-card.js.map +0 -1
- package/dist/components/conversation-surfaces-provider.d.ts +0 -25
- package/dist/components/conversation-surfaces-provider.d.ts.map +0 -1
- package/dist/components/conversation-surfaces-provider.js.map +0 -1
- package/dist/components/conversation-view.d.ts.map +0 -1
- package/dist/components/conversation-view.js.map +0 -1
- package/dist/components/copy-text-button.d.ts +0 -20
- package/dist/components/copy-text-button.d.ts.map +0 -1
- package/dist/components/copy-text-button.js.map +0 -1
- package/dist/components/elicitation-context.d.ts.map +0 -1
- package/dist/components/elicitation-context.js.map +0 -1
- package/dist/components/elicitation-receipt-row.d.ts +0 -5
- package/dist/components/elicitation-receipt-row.d.ts.map +0 -1
- package/dist/components/elicitation-receipt-row.js.map +0 -1
- package/dist/components/human-file-size.d.ts +0 -2
- package/dist/components/human-file-size.d.ts.map +0 -1
- package/dist/components/human-file-size.js.map +0 -1
- package/dist/components/icons.d.ts +0 -16
- package/dist/components/icons.d.ts.map +0 -1
- package/dist/components/icons.js.map +0 -1
- package/dist/components/lazy-body.d.ts +0 -5
- package/dist/components/lazy-body.d.ts.map +0 -1
- package/dist/components/lazy-body.js.map +0 -1
- package/dist/components/markdown/assistant-markdown.d.ts +0 -5
- package/dist/components/markdown/assistant-markdown.d.ts.map +0 -1
- package/dist/components/markdown/assistant-markdown.js.map +0 -1
- package/dist/components/markdown/code-block.d.ts +0 -5
- package/dist/components/markdown/code-block.d.ts.map +0 -1
- package/dist/components/markdown/code-block.js.map +0 -1
- package/dist/components/markdown/highlight.d.ts +0 -6
- package/dist/components/markdown/highlight.d.ts.map +0 -1
- package/dist/components/markdown/highlight.js.map +0 -1
- package/dist/components/markdown/markdown-structure.d.ts +0 -16
- package/dist/components/markdown/markdown-structure.d.ts.map +0 -1
- package/dist/components/markdown/markdown-structure.js.map +0 -1
- package/dist/components/markdown/memoized-blocks.d.ts +0 -7
- package/dist/components/markdown/memoized-blocks.d.ts.map +0 -1
- package/dist/components/markdown/memoized-blocks.js.map +0 -1
- package/dist/components/markdown/paced-assistant-markdown.d.ts +0 -5
- package/dist/components/markdown/paced-assistant-markdown.d.ts.map +0 -1
- package/dist/components/markdown/paced-assistant-markdown.js.map +0 -1
- package/dist/components/markdown/reveal-pacer.d.ts +0 -27
- package/dist/components/markdown/reveal-pacer.d.ts.map +0 -1
- package/dist/components/markdown/reveal-pacer.js.map +0 -1
- package/dist/components/markdown/shiki-highlighter.d.ts +0 -2
- package/dist/components/markdown/shiki-highlighter.d.ts.map +0 -1
- package/dist/components/markdown/shiki-highlighter.js.map +0 -1
- package/dist/components/markdown/streaming-repair.d.ts +0 -2
- package/dist/components/markdown/streaming-repair.d.ts.map +0 -1
- package/dist/components/markdown/streaming-repair.js.map +0 -1
- package/dist/components/markdown/use-highlighted-html.d.ts +0 -7
- package/dist/components/markdown/use-highlighted-html.d.ts.map +0 -1
- package/dist/components/markdown/use-highlighted-html.js.map +0 -1
- package/dist/components/markdown/use-paced-reveal.d.ts +0 -6
- package/dist/components/markdown/use-paced-reveal.d.ts.map +0 -1
- package/dist/components/markdown/use-paced-reveal.js.map +0 -1
- package/dist/components/memory-updated-footer.d.ts +0 -5
- package/dist/components/memory-updated-footer.d.ts.map +0 -1
- package/dist/components/memory-updated-footer.js.map +0 -1
- package/dist/components/message-list-row.d.ts +0 -14
- package/dist/components/message-list-row.d.ts.map +0 -1
- package/dist/components/message-list-row.js.map +0 -1
- package/dist/components/message-list-slots.d.ts +0 -50
- package/dist/components/message-list-slots.d.ts.map +0 -1
- package/dist/components/message-list-slots.js +0 -2
- package/dist/components/message-list-slots.js.map +0 -1
- package/dist/components/message-list.d.ts +0 -97
- package/dist/components/message-list.d.ts.map +0 -1
- package/dist/components/message-list.js.map +0 -1
- package/dist/components/model-picker-chip.d.ts +0 -6
- package/dist/components/model-picker-chip.d.ts.map +0 -1
- package/dist/components/model-picker-chip.js.map +0 -1
- package/dist/components/model-picker-effort.d.ts +0 -5
- package/dist/components/model-picker-effort.d.ts.map +0 -1
- package/dist/components/model-picker-effort.js.map +0 -1
- package/dist/components/model-picker-panels.d.ts +0 -23
- package/dist/components/model-picker-panels.d.ts.map +0 -1
- package/dist/components/model-picker-panels.js.map +0 -1
- package/dist/components/notice-banner.d.ts +0 -21
- package/dist/components/notice-banner.d.ts.map +0 -1
- package/dist/components/notice-banner.js.map +0 -1
- package/dist/components/operation-icons.d.ts +0 -38
- package/dist/components/operation-icons.d.ts.map +0 -1
- package/dist/components/operation-icons.js.map +0 -1
- package/dist/components/pretty-print.d.ts +0 -2
- package/dist/components/pretty-print.d.ts.map +0 -1
- package/dist/components/pretty-print.js.map +0 -1
- package/dist/components/primitives/autofocus.d.ts +0 -6
- package/dist/components/primitives/autofocus.d.ts.map +0 -1
- package/dist/components/primitives/autofocus.js.map +0 -1
- package/dist/components/primitives/button.d.ts +0 -11
- package/dist/components/primitives/button.d.ts.map +0 -1
- package/dist/components/primitives/button.js.map +0 -1
- package/dist/components/primitives/cx.d.ts +0 -2
- package/dist/components/primitives/cx.d.ts.map +0 -1
- package/dist/components/primitives/cx.js.map +0 -1
- package/dist/components/primitives/dialog.d.ts +0 -8
- package/dist/components/primitives/dialog.d.ts.map +0 -1
- package/dist/components/primitives/dialog.js.map +0 -1
- package/dist/components/primitives/disclosure.d.ts +0 -45
- package/dist/components/primitives/disclosure.d.ts.map +0 -1
- package/dist/components/primitives/disclosure.js.map +0 -1
- package/dist/components/primitives/file-input.d.ts +0 -6
- package/dist/components/primitives/file-input.d.ts.map +0 -1
- package/dist/components/primitives/file-input.js.map +0 -1
- package/dist/components/primitives/floating-panel.d.ts +0 -23
- package/dist/components/primitives/floating-panel.d.ts.map +0 -1
- package/dist/components/primitives/floating-panel.js.map +0 -1
- package/dist/components/primitives/kbd.d.ts +0 -3
- package/dist/components/primitives/kbd.d.ts.map +0 -1
- package/dist/components/primitives/kbd.js.map +0 -1
- package/dist/components/primitives/sheet.d.ts +0 -13
- package/dist/components/primitives/sheet.d.ts.map +0 -1
- package/dist/components/primitives/sheet.js +0 -28
- package/dist/components/primitives/sheet.js.map +0 -1
- package/dist/components/primitives/textarea.d.ts +0 -8
- package/dist/components/primitives/textarea.d.ts.map +0 -1
- package/dist/components/primitives/textarea.js.map +0 -1
- package/dist/components/primitives/use-dock-reflow.d.ts +0 -12
- package/dist/components/primitives/use-dock-reflow.d.ts.map +0 -1
- package/dist/components/primitives/use-dock-reflow.js.map +0 -1
- package/dist/components/primitives/use-swipe-dismiss.d.ts +0 -35
- package/dist/components/primitives/use-swipe-dismiss.d.ts.map +0 -1
- package/dist/components/primitives/use-swipe-dismiss.js.map +0 -1
- package/dist/components/provider-chip.d.ts +0 -25
- package/dist/components/provider-chip.d.ts.map +0 -1
- package/dist/components/provider-chip.js.map +0 -1
- package/dist/components/question-panel-answers.d.ts +0 -35
- package/dist/components/question-panel-answers.d.ts.map +0 -1
- package/dist/components/question-panel-answers.js.map +0 -1
- package/dist/components/question-panel-footer.d.ts +0 -12
- package/dist/components/question-panel-footer.d.ts.map +0 -1
- package/dist/components/question-panel-footer.js.map +0 -1
- package/dist/components/question-panel.d.ts +0 -5
- package/dist/components/question-panel.d.ts.map +0 -1
- package/dist/components/question-panel.js.map +0 -1
- package/dist/components/react-tool-view.d.ts.map +0 -1
- package/dist/components/react-tool-view.js.map +0 -1
- package/dist/components/reasoning-row.d.ts +0 -5
- package/dist/components/reasoning-row.d.ts.map +0 -1
- package/dist/components/reasoning-row.js.map +0 -1
- package/dist/components/receipt-rows.d.ts +0 -4
- package/dist/components/receipt-rows.d.ts.map +0 -1
- package/dist/components/receipt-rows.js.map +0 -1
- package/dist/components/run-status-announcer.d.ts +0 -9
- package/dist/components/run-status-announcer.d.ts.map +0 -1
- package/dist/components/run-status-announcer.js.map +0 -1
- package/dist/components/scroll-follow-guards.d.ts +0 -2
- package/dist/components/scroll-follow-guards.d.ts.map +0 -1
- package/dist/components/scroll-follow-guards.js.map +0 -1
- package/dist/components/served-suggestions.d.ts +0 -10
- package/dist/components/served-suggestions.d.ts.map +0 -1
- package/dist/components/served-suggestions.js.map +0 -1
- package/dist/components/slot-boundary.d.ts +0 -28
- package/dist/components/slot-boundary.d.ts.map +0 -1
- package/dist/components/slot-boundary.js.map +0 -1
- package/dist/components/streaming-states.d.ts +0 -16
- package/dist/components/streaming-states.d.ts.map +0 -1
- package/dist/components/streaming-states.js.map +0 -1
- package/dist/components/subagent-count-pill.d.ts +0 -10
- package/dist/components/subagent-count-pill.d.ts.map +0 -1
- package/dist/components/subagent-count-pill.js.map +0 -1
- package/dist/components/subagent-current-work.d.ts +0 -14
- package/dist/components/subagent-current-work.d.ts.map +0 -1
- package/dist/components/subagent-current-work.js.map +0 -1
- package/dist/components/subagent-delegation-surface.d.ts +0 -23
- package/dist/components/subagent-delegation-surface.d.ts.map +0 -1
- package/dist/components/subagent-delegation-surface.js.map +0 -1
- package/dist/components/subagent-delivery-divider.d.ts +0 -6
- package/dist/components/subagent-delivery-divider.d.ts.map +0 -1
- package/dist/components/subagent-delivery-divider.js.map +0 -1
- package/dist/components/subagent-drill-in.d.ts +0 -21
- package/dist/components/subagent-drill-in.d.ts.map +0 -1
- package/dist/components/subagent-drill-in.js.map +0 -1
- package/dist/components/subagent-execution-work.d.ts +0 -4
- package/dist/components/subagent-execution-work.d.ts.map +0 -1
- package/dist/components/subagent-execution-work.js.map +0 -1
- package/dist/components/subagent-group-row.d.ts +0 -57
- package/dist/components/subagent-group-row.d.ts.map +0 -1
- package/dist/components/subagent-group-row.js.map +0 -1
- package/dist/components/subagent-preview-popover.d.ts +0 -11
- package/dist/components/subagent-preview-popover.d.ts.map +0 -1
- package/dist/components/subagent-preview-popover.js.map +0 -1
- package/dist/components/subscription-connect-flow.d.ts +0 -68
- package/dist/components/subscription-connect-flow.d.ts.map +0 -1
- package/dist/components/subscription-connect-flow.js.map +0 -1
- package/dist/components/subscription-connected-standing.d.ts +0 -12
- package/dist/components/subscription-connected-standing.d.ts.map +0 -1
- package/dist/components/subscription-connected-standing.js.map +0 -1
- package/dist/components/surface-boundary.d.ts +0 -18
- package/dist/components/surface-boundary.d.ts.map +0 -1
- package/dist/components/surface-boundary.js.map +0 -1
- package/dist/components/suspension-surfaces.d.ts +0 -6
- package/dist/components/suspension-surfaces.d.ts.map +0 -1
- package/dist/components/suspension-surfaces.js.map +0 -1
- package/dist/components/teaflask-assistant-provider.d.ts.map +0 -1
- package/dist/components/teaflask-assistant-provider.js.map +0 -1
- package/dist/components/teaflask-assistant.d.ts.map +0 -1
- package/dist/components/teaflask-assistant.js.map +0 -1
- package/dist/components/thread-list.d.ts +0 -40
- package/dist/components/thread-list.d.ts.map +0 -1
- package/dist/components/thread-list.js.map +0 -1
- package/dist/components/tool-arguments-summary.d.ts +0 -13
- package/dist/components/tool-arguments-summary.d.ts.map +0 -1
- package/dist/components/tool-arguments-summary.js.map +0 -1
- package/dist/components/tool-call-rows.d.ts +0 -12
- package/dist/components/tool-call-rows.d.ts.map +0 -1
- package/dist/components/tool-call-rows.js.map +0 -1
- package/dist/components/tool-row.d.ts +0 -21
- package/dist/components/tool-row.d.ts.map +0 -1
- package/dist/components/tool-row.js.map +0 -1
- package/dist/components/tool-view-registry-context.d.ts +0 -8
- package/dist/components/tool-view-registry-context.d.ts.map +0 -1
- package/dist/components/tool-view-registry-context.js.map +0 -1
- package/dist/components/tool-view-slot.d.ts +0 -21
- package/dist/components/tool-view-slot.d.ts.map +0 -1
- package/dist/components/tool-view-slot.js.map +0 -1
- package/dist/components/tool-views/action-view.d.ts +0 -2
- package/dist/components/tool-views/action-view.d.ts.map +0 -1
- package/dist/components/tool-views/action-view.js.map +0 -1
- package/dist/components/tool-views/command-view.d.ts +0 -2
- package/dist/components/tool-views/command-view.d.ts.map +0 -1
- package/dist/components/tool-views/command-view.js.map +0 -1
- package/dist/components/tool-views/docs-search-view.d.ts +0 -16
- package/dist/components/tool-views/docs-search-view.d.ts.map +0 -1
- package/dist/components/tool-views/docs-search-view.js.map +0 -1
- package/dist/components/tool-views/file-edit-view.d.ts +0 -2
- package/dist/components/tool-views/file-edit-view.d.ts.map +0 -1
- package/dist/components/tool-views/file-edit-view.js.map +0 -1
- package/dist/components/tool-views/parts-classes.d.ts.map +0 -1
- package/dist/components/tool-views/parts-classes.js.map +0 -1
- package/dist/components/tool-views/parts.d.ts.map +0 -1
- package/dist/components/tool-views/parts.js.map +0 -1
- package/dist/components/tool-views/questions-view.d.ts +0 -2
- package/dist/components/tool-views/questions-view.d.ts.map +0 -1
- package/dist/components/tool-views/questions-view.js.map +0 -1
- package/dist/components/tool-views/view-dom.d.ts.map +0 -1
- package/dist/components/tool-views/view-dom.js.map +0 -1
- package/dist/components/transcript.d.ts +0 -11
- package/dist/components/transcript.d.ts.map +0 -1
- package/dist/components/transcript.js.map +0 -1
- package/dist/components/use-agent-subscriber.d.ts +0 -20
- package/dist/components/use-agent-subscriber.d.ts.map +0 -1
- package/dist/components/use-agent-subscriber.js +0 -30
- package/dist/components/use-agent-subscriber.js.map +0 -1
- package/dist/components/use-answer-list-fold.d.ts +0 -7
- package/dist/components/use-answer-list-fold.d.ts.map +0 -1
- package/dist/components/use-answer-list-fold.js.map +0 -1
- package/dist/components/use-assistant-activity.d.ts.map +0 -1
- package/dist/components/use-assistant-activity.js.map +0 -1
- package/dist/components/use-assistant-conversation.d.ts.map +0 -1
- package/dist/components/use-assistant-conversation.js.map +0 -1
- package/dist/components/use-assistant-surface-presence.d.ts +0 -3
- package/dist/components/use-assistant-surface-presence.d.ts.map +0 -1
- package/dist/components/use-assistant-surface-presence.js.map +0 -1
- package/dist/components/use-child-replay-stream.d.ts +0 -21
- package/dist/components/use-child-replay-stream.d.ts.map +0 -1
- package/dist/components/use-child-replay-stream.js.map +0 -1
- package/dist/components/use-latest-ref.d.ts +0 -6
- package/dist/components/use-latest-ref.d.ts.map +0 -1
- package/dist/components/use-latest-ref.js.map +0 -1
- package/dist/components/use-member-toggle-outrank.d.ts +0 -46
- package/dist/components/use-member-toggle-outrank.d.ts.map +0 -1
- package/dist/components/use-member-toggle-outrank.js.map +0 -1
- package/dist/components/use-perch-clearance.d.ts +0 -3
- package/dist/components/use-perch-clearance.d.ts.map +0 -1
- package/dist/components/use-perch-clearance.js.map +0 -1
- package/dist/components/use-question-panel-keys.d.ts +0 -36
- package/dist/components/use-question-panel-keys.d.ts.map +0 -1
- package/dist/components/use-question-panel-keys.js.map +0 -1
- package/dist/components/use-register-assistant-surface.d.ts +0 -10
- package/dist/components/use-register-assistant-surface.d.ts.map +0 -1
- package/dist/components/use-register-assistant-surface.js.map +0 -1
- package/dist/components/use-resolved-theme-mode.d.ts +0 -4
- package/dist/components/use-resolved-theme-mode.d.ts.map +0 -1
- package/dist/components/use-resolved-theme-mode.js.map +0 -1
- package/dist/components/use-roster-disclosure.d.ts +0 -26
- package/dist/components/use-roster-disclosure.d.ts.map +0 -1
- package/dist/components/use-roster-disclosure.js.map +0 -1
- package/dist/components/use-roster-preview.d.ts +0 -33
- package/dist/components/use-roster-preview.d.ts.map +0 -1
- package/dist/components/use-roster-preview.js.map +0 -1
- package/dist/components/use-store-cell.d.ts.map +0 -1
- package/dist/components/use-store-cell.js.map +0 -1
- package/dist/components/use-thread-dispatches.d.ts +0 -33
- package/dist/components/use-thread-dispatches.d.ts.map +0 -1
- package/dist/components/use-thread-dispatches.js.map +0 -1
- package/dist/components/use-transcript-folds.d.ts +0 -34
- package/dist/components/use-transcript-folds.d.ts.map +0 -1
- package/dist/components/use-transcript-folds.js.map +0 -1
- package/dist/components/use-transcript.d.ts.map +0 -1
- package/dist/components/use-transcript.js.map +0 -1
- package/dist/components/user-message.d.ts +0 -11
- package/dist/components/user-message.d.ts.map +0 -1
- package/dist/components/user-message.js.map +0 -1
- package/dist/contract/actions-adapter.d.ts.map +0 -1
- package/dist/contract/actions-adapter.js +0 -10
- package/dist/contract/actions-adapter.js.map +0 -1
- package/dist/contract/assistant-config.d.ts.map +0 -1
- package/dist/contract/assistant-config.js +0 -5
- package/dist/contract/assistant-config.js.map +0 -1
- package/dist/contract/dispatches.d.ts +0 -32
- package/dist/contract/dispatches.d.ts.map +0 -1
- package/dist/contract/dispatches.js.map +0 -1
- package/dist/contract/errors.d.ts.map +0 -1
- package/dist/contract/errors.js +0 -7
- package/dist/contract/errors.js.map +0 -1
- package/dist/contract/events.d.ts.map +0 -1
- package/dist/contract/events.js.map +0 -1
- package/dist/contract/identity.d.ts.map +0 -1
- package/dist/contract/identity.js +0 -5
- package/dist/contract/identity.js.map +0 -1
- package/dist/contract/subscriptions.d.ts.map +0 -1
- package/dist/contract/subscriptions.js.map +0 -1
- package/dist/contract/telemetry.d.ts.map +0 -1
- package/dist/contract/telemetry.js.map +0 -1
- package/dist/contract/threads.d.ts.map +0 -1
- package/dist/contract/threads.js.map +0 -1
- package/dist/core/activity-title.d.ts +0 -2
- package/dist/core/activity-title.d.ts.map +0 -1
- package/dist/core/activity-title.js.map +0 -1
- package/dist/core/activity.d.ts.map +0 -1
- package/dist/core/activity.js.map +0 -1
- package/dist/core/agent-identity.d.ts +0 -10
- package/dist/core/agent-identity.d.ts.map +0 -1
- package/dist/core/agent-identity.js.map +0 -1
- package/dist/core/approval-decision.d.ts +0 -7
- package/dist/core/approval-decision.d.ts.map +0 -1
- package/dist/core/approval-decision.js.map +0 -1
- package/dist/core/approval-inbox.d.ts.map +0 -1
- package/dist/core/approval-inbox.js.map +0 -1
- package/dist/core/approval-request-narrowing.d.ts.map +0 -1
- package/dist/core/approval-request-narrowing.js.map +0 -1
- package/dist/core/approval-resolved.d.ts +0 -9
- package/dist/core/approval-resolved.d.ts.map +0 -1
- package/dist/core/approval-resolved.js.map +0 -1
- package/dist/core/assistant-prose.d.ts +0 -6
- package/dist/core/assistant-prose.d.ts.map +0 -1
- package/dist/core/assistant-prose.js.map +0 -1
- package/dist/core/assistant-session-registry.d.ts +0 -127
- package/dist/core/assistant-session-registry.d.ts.map +0 -1
- package/dist/core/assistant-session-registry.js.map +0 -1
- package/dist/core/attachment-uploads.d.ts +0 -14
- package/dist/core/attachment-uploads.d.ts.map +0 -1
- package/dist/core/attachment-uploads.js.map +0 -1
- package/dist/core/block-timing-anchors.d.ts +0 -31
- package/dist/core/block-timing-anchors.d.ts.map +0 -1
- package/dist/core/block-timing-anchors.js.map +0 -1
- package/dist/core/companion-drawer-flag.d.ts +0 -5
- package/dist/core/companion-drawer-flag.d.ts.map +0 -1
- package/dist/core/companion-drawer-flag.js.map +0 -1
- package/dist/core/companion-presence.d.ts +0 -9
- package/dist/core/companion-presence.d.ts.map +0 -1
- package/dist/core/companion-presence.js.map +0 -1
- package/dist/core/composer-input-state.d.ts +0 -9
- package/dist/core/composer-input-state.d.ts.map +0 -1
- package/dist/core/composer-input-state.js.map +0 -1
- package/dist/core/composer-policy.d.ts.map +0 -1
- package/dist/core/composer-policy.js.map +0 -1
- package/dist/core/connect-gate.d.ts.map +0 -1
- package/dist/core/connect-gate.js.map +0 -1
- package/dist/core/connection-driver.d.ts +0 -4
- package/dist/core/connection-driver.d.ts.map +0 -1
- package/dist/core/connection-driver.js.map +0 -1
- package/dist/core/connection-epoch.d.ts.map +0 -1
- package/dist/core/connection-epoch.js.map +0 -1
- package/dist/core/consumed-interrupts.d.ts.map +0 -1
- package/dist/core/consumed-interrupts.js.map +0 -1
- package/dist/core/conversation-adoption.d.ts +0 -17
- package/dist/core/conversation-adoption.d.ts.map +0 -1
- package/dist/core/conversation-adoption.js.map +0 -1
- package/dist/core/conversation-contract.d.ts.map +0 -1
- package/dist/core/conversation-contract.js +0 -4
- package/dist/core/conversation-contract.js.map +0 -1
- package/dist/core/conversation-publish.d.ts +0 -9
- package/dist/core/conversation-publish.d.ts.map +0 -1
- package/dist/core/conversation-publish.js.map +0 -1
- package/dist/core/conversation-refresh.d.ts +0 -14
- package/dist/core/conversation-refresh.d.ts.map +0 -1
- package/dist/core/conversation-refresh.js.map +0 -1
- package/dist/core/conversation-send.d.ts +0 -12
- package/dist/core/conversation-send.d.ts.map +0 -1
- package/dist/core/conversation-send.js.map +0 -1
- package/dist/core/conversation-store.d.ts.map +0 -1
- package/dist/core/conversation-store.js.map +0 -1
- package/dist/core/coworker-execution-work.d.ts.map +0 -1
- package/dist/core/coworker-execution-work.js.map +0 -1
- package/dist/core/disposable-subscriber.d.ts +0 -24
- package/dist/core/disposable-subscriber.d.ts.map +0 -1
- package/dist/core/disposable-subscriber.js +0 -33
- package/dist/core/disposable-subscriber.js.map +0 -1
- package/dist/core/dock-reflow.d.ts +0 -14
- package/dist/core/dock-reflow.d.ts.map +0 -1
- package/dist/core/dock-reflow.js.map +0 -1
- package/dist/core/elicitation-answers.d.ts +0 -20
- package/dist/core/elicitation-answers.d.ts.map +0 -1
- package/dist/core/elicitation-answers.js.map +0 -1
- package/dist/core/elicitation-cards.d.ts.map +0 -1
- package/dist/core/elicitation-cards.js.map +0 -1
- package/dist/core/elicitation-pickers.d.ts.map +0 -1
- package/dist/core/elicitation-pickers.js.map +0 -1
- package/dist/core/epoch-sync.d.ts +0 -19
- package/dist/core/epoch-sync.d.ts.map +0 -1
- package/dist/core/epoch-sync.js.map +0 -1
- package/dist/core/error-copy.d.ts +0 -8
- package/dist/core/error-copy.d.ts.map +0 -1
- package/dist/core/error-copy.js.map +0 -1
- package/dist/core/execution-driver.d.ts +0 -61
- package/dist/core/execution-driver.d.ts.map +0 -1
- package/dist/core/execution-driver.js.map +0 -1
- package/dist/core/execution-handlers.d.ts.map +0 -1
- package/dist/core/execution-handlers.js.map +0 -1
- package/dist/core/execution-inbox.d.ts.map +0 -1
- package/dist/core/execution-inbox.js.map +0 -1
- package/dist/core/execution-kinds.d.ts.map +0 -1
- package/dist/core/execution-kinds.js.map +0 -1
- package/dist/core/execution-request-narrowing.d.ts.map +0 -1
- package/dist/core/execution-request-narrowing.js.map +0 -1
- package/dist/core/host-fill.d.ts +0 -2
- package/dist/core/host-fill.d.ts.map +0 -1
- package/dist/core/host-fill.js.map +0 -1
- package/dist/core/hotkey.d.ts +0 -42
- package/dist/core/hotkey.d.ts.map +0 -1
- package/dist/core/hotkey.js.map +0 -1
- package/dist/core/idle-recheck.d.ts +0 -4
- package/dist/core/idle-recheck.d.ts.map +0 -1
- package/dist/core/idle-recheck.js.map +0 -1
- package/dist/core/memory-provenance-anchors.d.ts.map +0 -1
- package/dist/core/memory-provenance-anchors.js.map +0 -1
- package/dist/core/messages-cell.d.ts +0 -17
- package/dist/core/messages-cell.d.ts.map +0 -1
- package/dist/core/messages-cell.js.map +0 -1
- package/dist/core/observable-cell.d.ts.map +0 -1
- package/dist/core/observable-cell.js.map +0 -1
- package/dist/core/pending-decision-gap.d.ts.map +0 -1
- package/dist/core/pending-decision-gap.js.map +0 -1
- package/dist/core/perch-clearance.d.ts +0 -38
- package/dist/core/perch-clearance.d.ts.map +0 -1
- package/dist/core/perch-clearance.js.map +0 -1
- package/dist/core/question-drafts.d.ts.map +0 -1
- package/dist/core/question-drafts.js.map +0 -1
- package/dist/core/question-receipt.d.ts +0 -34
- package/dist/core/question-receipt.d.ts.map +0 -1
- package/dist/core/question-receipt.js.map +0 -1
- package/dist/core/reasoning-copy.d.ts +0 -3
- package/dist/core/reasoning-copy.d.ts.map +0 -1
- package/dist/core/reasoning-copy.js.map +0 -1
- package/dist/core/receipt-anchors.d.ts.map +0 -1
- package/dist/core/receipt-anchors.js.map +0 -1
- package/dist/core/run-folds.d.ts +0 -103
- package/dist/core/run-folds.d.ts.map +0 -1
- package/dist/core/run-folds.js.map +0 -1
- package/dist/core/run-status.d.ts +0 -22
- package/dist/core/run-status.d.ts.map +0 -1
- package/dist/core/run-status.js.map +0 -1
- package/dist/core/segment-timing.d.ts.map +0 -1
- package/dist/core/segment-timing.js.map +0 -1
- package/dist/core/settle-refresh.d.ts +0 -18
- package/dist/core/settle-refresh.d.ts.map +0 -1
- package/dist/core/settle-refresh.js.map +0 -1
- package/dist/core/step-caption.d.ts +0 -5
- package/dist/core/step-caption.d.ts.map +0 -1
- package/dist/core/step-caption.js.map +0 -1
- package/dist/core/stop-copy.d.ts +0 -2
- package/dist/core/stop-copy.d.ts.map +0 -1
- package/dist/core/stop-copy.js.map +0 -1
- package/dist/core/stop-settle.d.ts +0 -17
- package/dist/core/stop-settle.d.ts.map +0 -1
- package/dist/core/stop-settle.js.map +0 -1
- package/dist/core/stream-trouble.d.ts +0 -6
- package/dist/core/stream-trouble.d.ts.map +0 -1
- package/dist/core/stream-trouble.js.map +0 -1
- package/dist/core/subagent-brief.d.ts +0 -7
- package/dist/core/subagent-brief.d.ts.map +0 -1
- package/dist/core/subagent-brief.js.map +0 -1
- package/dist/core/subagent-delivery-anchors.d.ts.map +0 -1
- package/dist/core/subagent-delivery-anchors.js.map +0 -1
- package/dist/core/subagent-presence.d.ts +0 -38
- package/dist/core/subagent-presence.d.ts.map +0 -1
- package/dist/core/subagent-presence.js.map +0 -1
- package/dist/core/subagent-roster.d.ts +0 -70
- package/dist/core/subagent-roster.d.ts.map +0 -1
- package/dist/core/subagent-roster.js.map +0 -1
- package/dist/core/subagent-rows.d.ts.map +0 -1
- package/dist/core/subagent-rows.js.map +0 -1
- package/dist/core/surface-registry.d.ts +0 -31
- package/dist/core/surface-registry.d.ts.map +0 -1
- package/dist/core/surface-registry.js.map +0 -1
- package/dist/core/suspension-queue.d.ts +0 -28
- package/dist/core/suspension-queue.d.ts.map +0 -1
- package/dist/core/suspension-queue.js.map +0 -1
- package/dist/core/tail-slot-pool.d.ts +0 -32
- package/dist/core/tail-slot-pool.d.ts.map +0 -1
- package/dist/core/tail-slot-pool.js.map +0 -1
- package/dist/core/time-labels.d.ts +0 -18
- package/dist/core/time-labels.d.ts.map +0 -1
- package/dist/core/time-labels.js.map +0 -1
- package/dist/core/tool-call-display-anchors.d.ts +0 -49
- package/dist/core/tool-call-display-anchors.d.ts.map +0 -1
- package/dist/core/tool-call-display-anchors.js.map +0 -1
- package/dist/core/tool-call-display.d.ts.map +0 -1
- package/dist/core/tool-call-display.js.map +0 -1
- package/dist/core/tool-call-presentation.d.ts.map +0 -1
- package/dist/core/tool-call-presentation.js.map +0 -1
- package/dist/core/tool-cancel-anchors.d.ts +0 -6
- package/dist/core/tool-cancel-anchors.d.ts.map +0 -1
- package/dist/core/tool-cancel-anchors.js.map +0 -1
- package/dist/core/tool-decision-anchors.d.ts +0 -26
- package/dist/core/tool-decision-anchors.d.ts.map +0 -1
- package/dist/core/tool-decision-anchors.js.map +0 -1
- package/dist/core/tool-denial-anchors.d.ts.map +0 -1
- package/dist/core/tool-denial-anchors.js.map +0 -1
- package/dist/core/tool-error-anchors.d.ts +0 -6
- package/dist/core/tool-error-anchors.d.ts.map +0 -1
- package/dist/core/tool-error-anchors.js.map +0 -1
- package/dist/core/tool-flag-anchors.d.ts +0 -21
- package/dist/core/tool-flag-anchors.d.ts.map +0 -1
- package/dist/core/tool-flag-anchors.js.map +0 -1
- package/dist/core/tool-offload-anchors.d.ts +0 -6
- package/dist/core/tool-offload-anchors.d.ts.map +0 -1
- package/dist/core/tool-offload-anchors.js.map +0 -1
- package/dist/core/tool-outcome.d.ts +0 -24
- package/dist/core/tool-outcome.d.ts.map +0 -1
- package/dist/core/tool-outcome.js.map +0 -1
- package/dist/core/tool-refusal-anchors.d.ts +0 -6
- package/dist/core/tool-refusal-anchors.d.ts.map +0 -1
- package/dist/core/tool-refusal-anchors.js.map +0 -1
- package/dist/core/tool-result-envelope.d.ts +0 -26
- package/dist/core/tool-result-envelope.d.ts.map +0 -1
- package/dist/core/tool-result-envelope.js.map +0 -1
- package/dist/core/tool-schema-anchors.d.ts.map +0 -1
- package/dist/core/tool-schema-anchors.js.map +0 -1
- package/dist/core/tool-sentence-anchors.d.ts +0 -28
- package/dist/core/tool-sentence-anchors.d.ts.map +0 -1
- package/dist/core/tool-sentence-anchors.js.map +0 -1
- package/dist/core/tool-view.d.ts.map +0 -1
- package/dist/core/tool-view.js.map +0 -1
- package/dist/core/transcript-lease.d.ts +0 -14
- package/dist/core/transcript-lease.d.ts.map +0 -1
- package/dist/core/transcript-lease.js.map +0 -1
- package/dist/core/transcript-rows.d.ts.map +0 -1
- package/dist/core/transcript-rows.js.map +0 -1
- package/dist/core/turn-failed-anchors.d.ts.map +0 -1
- package/dist/core/turn-failed-anchors.js.map +0 -1
- package/dist/core/turn-failure-copy.d.ts +0 -5
- package/dist/core/turn-failure-copy.d.ts.map +0 -1
- package/dist/core/turn-failure-copy.js.map +0 -1
- package/dist/core/turn-usage-anchors.d.ts.map +0 -1
- package/dist/core/turn-usage-anchors.js.map +0 -1
- package/dist/core/turns-backfill.d.ts +0 -24
- package/dist/core/turns-backfill.d.ts.map +0 -1
- package/dist/core/turns-backfill.js.map +0 -1
- package/dist/core/user-turn-ledger.d.ts.map +0 -1
- package/dist/core/user-turn-ledger.js.map +0 -1
- package/dist/core/wire-sentence-cap.d.ts +0 -2
- package/dist/core/wire-sentence-cap.d.ts.map +0 -1
- package/dist/core/wire-sentence-cap.js.map +0 -1
- package/dist/generated/models/activityMessage.d.ts.map +0 -1
- package/dist/generated/models/activityMessage.js.map +0 -1
- package/dist/generated/models/activityMessageContent.d.ts.map +0 -1
- package/dist/generated/models/activityMessageContent.js.map +0 -1
- package/dist/generated/models/activityMessageMetadata.d.ts.map +0 -1
- package/dist/generated/models/activityMessageMetadata.js.map +0 -1
- package/dist/generated/models/agentDispatchStatus.d.ts.map +0 -1
- package/dist/generated/models/agentDispatchStatus.js.map +0 -1
- package/dist/generated/models/apiErrorBody.d.ts.map +0 -1
- package/dist/generated/models/apiErrorBody.js.map +0 -1
- package/dist/generated/models/apiErrorCode.d.ts.map +0 -1
- package/dist/generated/models/apiErrorCode.js.map +0 -1
- package/dist/generated/models/approvalRequestedMarker.d.ts.map +0 -1
- package/dist/generated/models/approvalRequestedMarker.js.map +0 -1
- package/dist/generated/models/approvalRequestedMarkerToolArgs.d.ts.map +0 -1
- package/dist/generated/models/approvalRequestedMarkerToolArgs.js.map +0 -1
- package/dist/generated/models/approvalRequestedMarkerToolInputSchema.d.ts.map +0 -1
- package/dist/generated/models/approvalRequestedMarkerToolInputSchema.js.map +0 -1
- package/dist/generated/models/approvalRequestedMarkerToolOutputSchema.d.ts.map +0 -1
- package/dist/generated/models/approvalRequestedMarkerToolOutputSchema.js.map +0 -1
- package/dist/generated/models/approvalResolvedMarker.d.ts.map +0 -1
- package/dist/generated/models/approvalResolvedMarker.js.map +0 -1
- package/dist/generated/models/askQuestionsAction.d.ts.map +0 -1
- package/dist/generated/models/askQuestionsAction.js.map +0 -1
- package/dist/generated/models/askQuestionsResult.d.ts.map +0 -1
- package/dist/generated/models/askQuestionsResult.js.map +0 -1
- package/dist/generated/models/assistantConfigResponse.d.ts.map +0 -1
- package/dist/generated/models/assistantConfigResponse.js.map +0 -1
- package/dist/generated/models/assistantMessage.d.ts.map +0 -1
- package/dist/generated/models/assistantMessage.js.map +0 -1
- package/dist/generated/models/assistantMessageMetadata.d.ts.map +0 -1
- package/dist/generated/models/assistantMessageMetadata.js.map +0 -1
- package/dist/generated/models/assistantStreamMarkerName.d.ts.map +0 -1
- package/dist/generated/models/assistantStreamMarkerName.js.map +0 -1
- package/dist/generated/models/assistantTurnKind.d.ts.map +0 -1
- package/dist/generated/models/assistantTurnKind.js.map +0 -1
- package/dist/generated/models/assistantTurnStatus.d.ts.map +0 -1
- package/dist/generated/models/assistantTurnStatus.js.map +0 -1
- package/dist/generated/models/attachmentKind.d.ts.map +0 -1
- package/dist/generated/models/attachmentKind.js.map +0 -1
- package/dist/generated/models/attachmentPolicyResponse.d.ts.map +0 -1
- package/dist/generated/models/attachmentPolicyResponse.js.map +0 -1
- package/dist/generated/models/audioInputContent.d.ts.map +0 -1
- package/dist/generated/models/audioInputContent.js.map +0 -1
- package/dist/generated/models/audioPart.d.ts.map +0 -1
- package/dist/generated/models/audioPart.js.map +0 -1
- package/dist/generated/models/binaryInputContent.d.ts.map +0 -1
- package/dist/generated/models/binaryInputContent.js.map +0 -1
- package/dist/generated/models/connectProjectionResponse.d.ts.map +0 -1
- package/dist/generated/models/connectProjectionResponse.js.map +0 -1
- package/dist/generated/models/connectProjectionResponseGate.d.ts.map +0 -1
- package/dist/generated/models/connectProjectionResponseGate.js.map +0 -1
- package/dist/generated/models/connectProjectionResponseReason.d.ts.map +0 -1
- package/dist/generated/models/connectProjectionResponseReason.js.map +0 -1
- package/dist/generated/models/context.d.ts.map +0 -1
- package/dist/generated/models/context.js.map +0 -1
- package/dist/generated/models/createDeviceAuthorizationResponse.d.ts +0 -19
- package/dist/generated/models/createDeviceAuthorizationResponse.d.ts.map +0 -1
- package/dist/generated/models/createDeviceAuthorizationResponse.js +0 -8
- package/dist/generated/models/createDeviceAuthorizationResponse.js.map +0 -1
- package/dist/generated/models/createServingAttachmentUploadRequest.d.ts.map +0 -1
- package/dist/generated/models/createServingAttachmentUploadRequest.js.map +0 -1
- package/dist/generated/models/createServingAttachmentUploadResponse.d.ts.map +0 -1
- package/dist/generated/models/createServingAttachmentUploadResponse.js.map +0 -1
- package/dist/generated/models/currentVisitorResponse.d.ts.map +0 -1
- package/dist/generated/models/currentVisitorResponse.js.map +0 -1
- package/dist/generated/models/dataSource.d.ts.map +0 -1
- package/dist/generated/models/dataSource.js.map +0 -1
- package/dist/generated/models/deliveredSubagentResult.d.ts.map +0 -1
- package/dist/generated/models/deliveredSubagentResult.js.map +0 -1
- package/dist/generated/models/developerMessage.d.ts.map +0 -1
- package/dist/generated/models/developerMessage.js.map +0 -1
- package/dist/generated/models/developerMessageMetadata.d.ts.map +0 -1
- package/dist/generated/models/developerMessageMetadata.js.map +0 -1
- package/dist/generated/models/docHeading.d.ts.map +0 -1
- package/dist/generated/models/docHeading.js.map +0 -1
- package/dist/generated/models/docHeadingLevel.d.ts.map +0 -1
- package/dist/generated/models/docHeadingLevel.js.map +0 -1
- package/dist/generated/models/documentInputContent.d.ts.map +0 -1
- package/dist/generated/models/documentInputContent.js.map +0 -1
- package/dist/generated/models/documentPart.d.ts.map +0 -1
- package/dist/generated/models/documentPart.js.map +0 -1
- package/dist/generated/models/endUserIdentity.d.ts.map +0 -1
- package/dist/generated/models/endUserIdentity.js.map +0 -1
- package/dist/generated/models/errorEnvelope.d.ts.map +0 -1
- package/dist/generated/models/errorEnvelope.js.map +0 -1
- package/dist/generated/models/evidenceAfterVoidRecordedMarker.d.ts.map +0 -1
- package/dist/generated/models/evidenceAfterVoidRecordedMarker.js.map +0 -1
- package/dist/generated/models/evidenceAfterVoidRecordedMarkerError.d.ts.map +0 -1
- package/dist/generated/models/evidenceAfterVoidRecordedMarkerError.js.map +0 -1
- package/dist/generated/models/evidenceAfterVoidRecordedMarkerResult.d.ts.map +0 -1
- package/dist/generated/models/evidenceAfterVoidRecordedMarkerResult.js.map +0 -1
- package/dist/generated/models/fileSource.d.ts.map +0 -1
- package/dist/generated/models/fileSource.js.map +0 -1
- package/dist/generated/models/functionCall.d.ts.map +0 -1
- package/dist/generated/models/functionCall.js.map +0 -1
- package/dist/generated/models/getServingAssistantThreadParams.d.ts.map +0 -1
- package/dist/generated/models/getServingAssistantThreadParams.js.map +0 -1
- package/dist/generated/models/helpHostResolution.d.ts.map +0 -1
- package/dist/generated/models/helpHostResolution.js.map +0 -1
- package/dist/generated/models/helpPageResponse.d.ts.map +0 -1
- package/dist/generated/models/helpPageResponse.js.map +0 -1
- package/dist/generated/models/helpSearchHit.d.ts.map +0 -1
- package/dist/generated/models/helpSearchHit.js.map +0 -1
- package/dist/generated/models/helpSearchMode.d.ts.map +0 -1
- package/dist/generated/models/helpSearchMode.js.map +0 -1
- package/dist/generated/models/helpSearchResponse.d.ts.map +0 -1
- package/dist/generated/models/helpSearchResponse.js.map +0 -1
- package/dist/generated/models/helpSiteGroup.d.ts.map +0 -1
- package/dist/generated/models/helpSiteGroup.js.map +0 -1
- package/dist/generated/models/helpSitePage.d.ts.map +0 -1
- package/dist/generated/models/helpSitePage.js.map +0 -1
- package/dist/generated/models/helpSiteResponse.d.ts.map +0 -1
- package/dist/generated/models/helpSiteResponse.js.map +0 -1
- package/dist/generated/models/helpSiteTab.d.ts.map +0 -1
- package/dist/generated/models/helpSiteTab.js.map +0 -1
- package/dist/generated/models/highlightResult.d.ts.map +0 -1
- package/dist/generated/models/highlightResult.js.map +0 -1
- package/dist/generated/models/httpIntentResult.d.ts.map +0 -1
- package/dist/generated/models/httpIntentResult.js.map +0 -1
- package/dist/generated/models/httpIntentResultHeaders.d.ts.map +0 -1
- package/dist/generated/models/httpIntentResultHeaders.js.map +0 -1
- package/dist/generated/models/imageInputContent.d.ts.map +0 -1
- package/dist/generated/models/imageInputContent.js.map +0 -1
- package/dist/generated/models/imagePart.d.ts.map +0 -1
- package/dist/generated/models/imagePart.js.map +0 -1
- package/dist/generated/models/index.d.ts.map +0 -1
- package/dist/generated/models/index.js.map +0 -1
- package/dist/generated/models/inputContentDataSource.d.ts.map +0 -1
- package/dist/generated/models/inputContentDataSource.js.map +0 -1
- package/dist/generated/models/inputContentUrlSource.d.ts.map +0 -1
- package/dist/generated/models/inputContentUrlSource.js.map +0 -1
- package/dist/generated/models/interruptAnswerConsumedMarker.d.ts.map +0 -1
- package/dist/generated/models/interruptAnswerConsumedMarker.js.map +0 -1
- package/dist/generated/models/interruptAnswerConsumedMarkerFamily.d.ts.map +0 -1
- package/dist/generated/models/interruptAnswerConsumedMarkerFamily.js.map +0 -1
- package/dist/generated/models/listServingAssistantThreadsParams.d.ts.map +0 -1
- package/dist/generated/models/listServingAssistantThreadsParams.js.map +0 -1
- package/dist/generated/models/memoryUpdatedMarker.d.ts.map +0 -1
- package/dist/generated/models/memoryUpdatedMarker.js.map +0 -1
- package/dist/generated/models/mintVisitorTokenRequest.d.ts.map +0 -1
- package/dist/generated/models/mintVisitorTokenRequest.js.map +0 -1
- package/dist/generated/models/mintVisitorTokenResponse.d.ts.map +0 -1
- package/dist/generated/models/mintVisitorTokenResponse.js.map +0 -1
- package/dist/generated/models/modelChoiceOption.d.ts.map +0 -1
- package/dist/generated/models/modelChoiceOption.js.map +0 -1
- package/dist/generated/models/modelChoiceResponse.d.ts.map +0 -1
- package/dist/generated/models/modelChoiceResponse.js.map +0 -1
- package/dist/generated/models/modelPickRequest.d.ts.map +0 -1
- package/dist/generated/models/modelPickRequest.js.map +0 -1
- package/dist/generated/models/navigateResult.d.ts.map +0 -1
- package/dist/generated/models/navigateResult.js.map +0 -1
- package/dist/generated/models/pollDeviceAuthorizationRequest.d.ts +0 -10
- package/dist/generated/models/pollDeviceAuthorizationRequest.d.ts.map +0 -1
- package/dist/generated/models/pollDeviceAuthorizationRequest.js +0 -8
- package/dist/generated/models/pollDeviceAuthorizationRequest.js.map +0 -1
- package/dist/generated/models/pollDeviceAuthorizationResponse.d.ts +0 -19
- package/dist/generated/models/pollDeviceAuthorizationResponse.d.ts.map +0 -1
- package/dist/generated/models/pollDeviceAuthorizationResponse.js +0 -2
- package/dist/generated/models/pollDeviceAuthorizationResponse.js.map +0 -1
- package/dist/generated/models/prefillFormResult.d.ts.map +0 -1
- package/dist/generated/models/prefillFormResult.js.map +0 -1
- package/dist/generated/models/publishableKeyMode.d.ts.map +0 -1
- package/dist/generated/models/publishableKeyMode.js.map +0 -1
- package/dist/generated/models/question.d.ts.map +0 -1
- package/dist/generated/models/question.js.map +0 -1
- package/dist/generated/models/questionAnswer.d.ts.map +0 -1
- package/dist/generated/models/questionAnswer.js.map +0 -1
- package/dist/generated/models/questionOption.d.ts.map +0 -1
- package/dist/generated/models/questionOption.js.map +0 -1
- package/dist/generated/models/readPageResult.d.ts.map +0 -1
- package/dist/generated/models/readPageResult.js.map +0 -1
- package/dist/generated/models/reasoningMessage.d.ts.map +0 -1
- package/dist/generated/models/reasoningMessage.js.map +0 -1
- package/dist/generated/models/reasoningMessageMetadata.d.ts.map +0 -1
- package/dist/generated/models/reasoningMessageMetadata.js.map +0 -1
- package/dist/generated/models/refusedField.d.ts.map +0 -1
- package/dist/generated/models/refusedField.js.map +0 -1
- package/dist/generated/models/resolveServingTurnApprovalRequest.d.ts.map +0 -1
- package/dist/generated/models/resolveServingTurnApprovalRequest.js.map +0 -1
- package/dist/generated/models/resolveServingTurnApprovalResponse.d.ts.map +0 -1
- package/dist/generated/models/resolveServingTurnApprovalResponse.js.map +0 -1
- package/dist/generated/models/resolveServingTurnToolResultsRequest.d.ts.map +0 -1
- package/dist/generated/models/resolveServingTurnToolResultsRequest.js.map +0 -1
- package/dist/generated/models/resolveServingTurnToolResultsResponse.d.ts.map +0 -1
- package/dist/generated/models/resolveServingTurnToolResultsResponse.js.map +0 -1
- package/dist/generated/models/resolvedLanding.d.ts.map +0 -1
- package/dist/generated/models/resolvedLanding.js.map +0 -1
- package/dist/generated/models/resolvedLandingCard.d.ts.map +0 -1
- package/dist/generated/models/resolvedLandingCard.js.map +0 -1
- package/dist/generated/models/resumeEntry.d.ts.map +0 -1
- package/dist/generated/models/resumeEntry.js.map +0 -1
- package/dist/generated/models/resumeEntryMetadata.d.ts.map +0 -1
- package/dist/generated/models/resumeEntryMetadata.js.map +0 -1
- package/dist/generated/models/resumeEntryStatus.d.ts.map +0 -1
- package/dist/generated/models/resumeEntryStatus.js.map +0 -1
- package/dist/generated/models/routeSuggestions.d.ts.map +0 -1
- package/dist/generated/models/routeSuggestions.js.map +0 -1
- package/dist/generated/models/runAgentInput.d.ts.map +0 -1
- package/dist/generated/models/runAgentInput.js.map +0 -1
- package/dist/generated/models/runResumedMarker.d.ts.map +0 -1
- package/dist/generated/models/runResumedMarker.js.map +0 -1
- package/dist/generated/models/sectionProvenance.d.ts +0 -17
- package/dist/generated/models/sectionProvenance.d.ts.map +0 -1
- package/dist/generated/models/sectionProvenance.js +0 -2
- package/dist/generated/models/sectionProvenance.js.map +0 -1
- package/dist/generated/models/sectionProvenanceState.d.ts +0 -18
- package/dist/generated/models/sectionProvenanceState.d.ts.map +0 -1
- package/dist/generated/models/sectionProvenanceState.js +0 -12
- package/dist/generated/models/sectionProvenanceState.js.map +0 -1
- package/dist/generated/models/sendServingAssistantMessageRequest.d.ts.map +0 -1
- package/dist/generated/models/sendServingAssistantMessageRequest.js.map +0 -1
- package/dist/generated/models/sendServingAssistantMessageResponse.d.ts.map +0 -1
- package/dist/generated/models/sendServingAssistantMessageResponse.js.map +0 -1
- package/dist/generated/models/servingAgentDispatchResponse.d.ts.map +0 -1
- package/dist/generated/models/servingAgentDispatchResponse.js.map +0 -1
- package/dist/generated/models/servingApprovalDelivery.d.ts.map +0 -1
- package/dist/generated/models/servingApprovalDelivery.js.map +0 -1
- package/dist/generated/models/servingAssistantThreadDetailResponse.d.ts.map +0 -1
- package/dist/generated/models/servingAssistantThreadDetailResponse.js.map +0 -1
- package/dist/generated/models/servingAssistantThreadResponse.d.ts.map +0 -1
- package/dist/generated/models/servingAssistantThreadResponse.js.map +0 -1
- package/dist/generated/models/servingAssistantTurnResponse.d.ts.map +0 -1
- package/dist/generated/models/servingAssistantTurnResponse.js.map +0 -1
- package/dist/generated/models/servingAssistantTurnResponsePendingApprovalDisplays.d.ts.map +0 -1
- package/dist/generated/models/servingAssistantTurnResponsePendingApprovalDisplays.js.map +0 -1
- package/dist/generated/models/servingAttachmentDownloadUrlResponse.d.ts.map +0 -1
- package/dist/generated/models/servingAttachmentDownloadUrlResponse.js.map +0 -1
- package/dist/generated/models/servingAttachmentResponse.d.ts.map +0 -1
- package/dist/generated/models/servingAttachmentResponse.js.map +0 -1
- package/dist/generated/models/servingCoworkerApprovalRequest.d.ts.map +0 -1
- package/dist/generated/models/servingCoworkerApprovalRequest.js.map +0 -1
- package/dist/generated/models/servingCoworkerExecutionRequest.d.ts.map +0 -1
- package/dist/generated/models/servingCoworkerExecutionRequest.js.map +0 -1
- package/dist/generated/models/servingDeviceAuthorizationStatus.d.ts +0 -12
- package/dist/generated/models/servingDeviceAuthorizationStatus.d.ts.map +0 -1
- package/dist/generated/models/servingDeviceAuthorizationStatus.js +0 -11
- package/dist/generated/models/servingDeviceAuthorizationStatus.js.map +0 -1
- package/dist/generated/models/servingErrorCode.d.ts.map +0 -1
- package/dist/generated/models/servingErrorCode.js.map +0 -1
- package/dist/generated/models/servingStopDelivery.d.ts.map +0 -1
- package/dist/generated/models/servingStopDelivery.js.map +0 -1
- package/dist/generated/models/servingSubscriptionStatus.d.ts.map +0 -1
- package/dist/generated/models/servingSubscriptionStatus.js.map +0 -1
- package/dist/generated/models/servingSubscriptionStatusBounceCause.d.ts.map +0 -1
- package/dist/generated/models/servingSubscriptionStatusBounceCause.js.map +0 -1
- package/dist/generated/models/servingSubscriptionsResponse.d.ts.map +0 -1
- package/dist/generated/models/servingSubscriptionsResponse.js.map +0 -1
- package/dist/generated/models/servingToolResultDelivery.d.ts.map +0 -1
- package/dist/generated/models/servingToolResultDelivery.js.map +0 -1
- package/dist/generated/models/servingToolResultReport.d.ts.map +0 -1
- package/dist/generated/models/servingToolResultReport.js.map +0 -1
- package/dist/generated/models/servingToolResultReportError.d.ts.map +0 -1
- package/dist/generated/models/servingToolResultReportError.js.map +0 -1
- package/dist/generated/models/servingToolResultReportResult.d.ts.map +0 -1
- package/dist/generated/models/servingToolResultReportResult.js.map +0 -1
- package/dist/generated/models/servingTurnApprovalDecision.d.ts.map +0 -1
- package/dist/generated/models/servingTurnApprovalDecision.js.map +0 -1
- package/dist/generated/models/servingTurnAttachmentResponse.d.ts.map +0 -1
- package/dist/generated/models/servingTurnAttachmentResponse.js.map +0 -1
- package/dist/generated/models/siteTheme.d.ts.map +0 -1
- package/dist/generated/models/siteTheme.js.map +0 -1
- package/dist/generated/models/siteThemeDefaultAppearance.d.ts.map +0 -1
- package/dist/generated/models/siteThemeDefaultAppearance.js.map +0 -1
- package/dist/generated/models/steeringFiredAction.d.ts.map +0 -1
- package/dist/generated/models/steeringFiredAction.js.map +0 -1
- package/dist/generated/models/steeringFiredMarker.d.ts.map +0 -1
- package/dist/generated/models/steeringFiredMarker.js.map +0 -1
- package/dist/generated/models/stopServingTurnResponse.d.ts.map +0 -1
- package/dist/generated/models/stopServingTurnResponse.js.map +0 -1
- package/dist/generated/models/subagentResultsDeliveredMarker.d.ts.map +0 -1
- package/dist/generated/models/subagentResultsDeliveredMarker.js.map +0 -1
- package/dist/generated/models/subscriptionCredentialState.d.ts.map +0 -1
- package/dist/generated/models/subscriptionCredentialState.js.map +0 -1
- package/dist/generated/models/subscriptionProvider.d.ts.map +0 -1
- package/dist/generated/models/subscriptionProvider.js.map +0 -1
- package/dist/generated/models/suggestionItem.d.ts.map +0 -1
- package/dist/generated/models/suggestionItem.js.map +0 -1
- package/dist/generated/models/suggestionKind.d.ts.map +0 -1
- package/dist/generated/models/suggestionKind.js.map +0 -1
- package/dist/generated/models/suggestionsConfig.d.ts.map +0 -1
- package/dist/generated/models/suggestionsConfig.js.map +0 -1
- package/dist/generated/models/systemMessage.d.ts.map +0 -1
- package/dist/generated/models/systemMessage.js.map +0 -1
- package/dist/generated/models/systemMessageMetadata.d.ts.map +0 -1
- package/dist/generated/models/systemMessageMetadata.js.map +0 -1
- package/dist/generated/models/textInputContent.d.ts.map +0 -1
- package/dist/generated/models/textInputContent.js.map +0 -1
- package/dist/generated/models/textPart.d.ts.map +0 -1
- package/dist/generated/models/textPart.js.map +0 -1
- package/dist/generated/models/thinkingEffort.d.ts.map +0 -1
- package/dist/generated/models/thinkingEffort.js.map +0 -1
- package/dist/generated/models/threadModelPickResponse.d.ts.map +0 -1
- package/dist/generated/models/threadModelPickResponse.js.map +0 -1
- package/dist/generated/models/tool.d.ts.map +0 -1
- package/dist/generated/models/tool.js.map +0 -1
- package/dist/generated/models/toolCall.d.ts.map +0 -1
- package/dist/generated/models/toolCall.js.map +0 -1
- package/dist/generated/models/toolCallAnnotatedMarker.d.ts.map +0 -1
- package/dist/generated/models/toolCallAnnotatedMarker.js.map +0 -1
- package/dist/generated/models/toolCallAnnotatedMarkerToolInputSchema.d.ts.map +0 -1
- package/dist/generated/models/toolCallAnnotatedMarkerToolInputSchema.js.map +0 -1
- package/dist/generated/models/toolCallAnnotatedMarkerToolOutputSchema.d.ts.map +0 -1
- package/dist/generated/models/toolCallAnnotatedMarkerToolOutputSchema.js.map +0 -1
- package/dist/generated/models/toolCallDisplayPayload.d.ts.map +0 -1
- package/dist/generated/models/toolCallDisplayPayload.js.map +0 -1
- package/dist/generated/models/toolCallMetadata.d.ts.map +0 -1
- package/dist/generated/models/toolCallMetadata.js.map +0 -1
- package/dist/generated/models/toolExecutionRequestPayload.d.ts.map +0 -1
- package/dist/generated/models/toolExecutionRequestPayload.js.map +0 -1
- package/dist/generated/models/toolExecutionRequestPayloadAction.d.ts.map +0 -1
- package/dist/generated/models/toolExecutionRequestPayloadAction.js.map +0 -1
- package/dist/generated/models/toolExecutionRequestPayloadIntent.d.ts.map +0 -1
- package/dist/generated/models/toolExecutionRequestPayloadIntent.js.map +0 -1
- package/dist/generated/models/toolExecutionRequestedMarker.d.ts.map +0 -1
- package/dist/generated/models/toolExecutionRequestedMarker.js.map +0 -1
- package/dist/generated/models/toolMessage.d.ts.map +0 -1
- package/dist/generated/models/toolMessage.js.map +0 -1
- package/dist/generated/models/toolMessageMetadata.d.ts.map +0 -1
- package/dist/generated/models/toolMessageMetadata.js.map +0 -1
- package/dist/generated/models/toolMetadata.d.ts.map +0 -1
- package/dist/generated/models/toolMetadata.js.map +0 -1
- package/dist/generated/models/toolResultRecordedMarker.d.ts.map +0 -1
- package/dist/generated/models/toolResultRecordedMarker.js.map +0 -1
- package/dist/generated/models/toolViewRef.d.ts.map +0 -1
- package/dist/generated/models/toolViewRef.js.map +0 -1
- package/dist/generated/models/turnFailedMarker.d.ts.map +0 -1
- package/dist/generated/models/turnFailedMarker.js.map +0 -1
- package/dist/generated/models/turnStoppedMarker.d.ts.map +0 -1
- package/dist/generated/models/turnStoppedMarker.js.map +0 -1
- package/dist/generated/models/turnUsageRecordedMarker.d.ts.map +0 -1
- package/dist/generated/models/turnUsageRecordedMarker.js.map +0 -1
- package/dist/generated/models/turnVoidedMarker.d.ts.map +0 -1
- package/dist/generated/models/turnVoidedMarker.js.map +0 -1
- package/dist/generated/models/urlSource.d.ts.map +0 -1
- package/dist/generated/models/urlSource.js.map +0 -1
- package/dist/generated/models/userMessage.d.ts.map +0 -1
- package/dist/generated/models/userMessage.js.map +0 -1
- package/dist/generated/models/userMessageMetadata.d.ts.map +0 -1
- package/dist/generated/models/userMessageMetadata.js.map +0 -1
- package/dist/generated/models/videoInputContent.d.ts.map +0 -1
- package/dist/generated/models/videoInputContent.js.map +0 -1
- package/dist/generated/models/videoPart.d.ts.map +0 -1
- package/dist/generated/models/videoPart.js.map +0 -1
- package/dist/generated/models/visitorTier.d.ts.map +0 -1
- package/dist/generated/models/visitorTier.js.map +0 -1
- package/dist/generated/serving.d.ts +0 -201
- package/dist/generated/serving.d.ts.map +0 -1
- package/dist/generated/serving.js.map +0 -1
- package/dist/headless.d.ts.map +0 -1
- package/dist/headless.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/markdown.d.ts +0 -5
- package/dist/markdown.d.ts.map +0 -1
- package/dist/markdown.js +0 -13
- package/dist/markdown.js.map +0 -1
- package/dist/persistence/execution-ledger.d.ts +0 -14
- package/dist/persistence/execution-ledger.d.ts.map +0 -1
- package/dist/persistence/execution-ledger.js.map +0 -1
- package/dist/persistence/panel-mode.d.ts +0 -12
- package/dist/persistence/panel-mode.d.ts.map +0 -1
- package/dist/persistence/panel-mode.js.map +0 -1
- package/dist/persistence/stored-thread.d.ts.map +0 -1
- package/dist/persistence/stored-thread.js.map +0 -1
- package/dist/reader/accessible-name.d.ts +0 -4
- package/dist/reader/accessible-name.d.ts.map +0 -1
- package/dist/reader/accessible-name.js.map +0 -1
- package/dist/reader/interactivity.d.ts +0 -13
- package/dist/reader/interactivity.d.ts.map +0 -1
- package/dist/reader/interactivity.js.map +0 -1
- package/dist/reader/layout-probe.d.ts +0 -39
- package/dist/reader/layout-probe.d.ts.map +0 -1
- package/dist/reader/layout-probe.js.map +0 -1
- package/dist/reader/line-diff.d.ts +0 -3
- package/dist/reader/line-diff.d.ts.map +0 -1
- package/dist/reader/line-diff.js.map +0 -1
- package/dist/reader/read-page.d.ts +0 -22
- package/dist/reader/read-page.d.ts.map +0 -1
- package/dist/reader/read-page.js.map +0 -1
- package/dist/reader/redaction.d.ts +0 -14
- package/dist/reader/redaction.d.ts.map +0 -1
- package/dist/reader/redaction.js.map +0 -1
- package/dist/reader/render.d.ts +0 -4
- package/dist/reader/render.d.ts.map +0 -1
- package/dist/reader/render.js.map +0 -1
- package/dist/reader/roles.d.ts +0 -15
- package/dist/reader/roles.d.ts.map +0 -1
- package/dist/reader/roles.js.map +0 -1
- package/dist/reader/snapshot-compaction.d.ts +0 -11
- package/dist/reader/snapshot-compaction.d.ts.map +0 -1
- package/dist/reader/snapshot-compaction.js.map +0 -1
- package/dist/reader/snapshot-node.d.ts +0 -5
- package/dist/reader/snapshot-node.d.ts.map +0 -1
- package/dist/reader/snapshot-node.js.map +0 -1
- package/dist/reader/snapshot-root.d.ts +0 -19
- package/dist/reader/snapshot-root.d.ts.map +0 -1
- package/dist/reader/snapshot-root.js.map +0 -1
- package/dist/reader/snapshot.d.ts +0 -82
- package/dist/reader/snapshot.d.ts.map +0 -1
- package/dist/reader/snapshot.js.map +0 -1
- package/dist/reader/visibility.d.ts +0 -15
- package/dist/reader/visibility.d.ts.map +0 -1
- package/dist/reader/visibility.js.map +0 -1
- package/dist/scroll.d.ts +0 -2
- package/dist/scroll.d.ts.map +0 -1
- package/dist/scroll.js +0 -17
- package/dist/scroll.js.map +0 -1
- package/dist/transcript-ui.d.ts +0 -16
- package/dist/transcript-ui.d.ts.map +0 -1
- package/dist/transcript-ui.js +0 -35
- package/dist/transcript-ui.js.map +0 -1
- package/dist/transcript.d.ts +0 -44
- package/dist/transcript.d.ts.map +0 -1
- package/dist/transcript.js +0 -123
- package/dist/transcript.js.map +0 -1
- package/dist/transport/actions-adapter.d.ts +0 -12
- package/dist/transport/actions-adapter.d.ts.map +0 -1
- package/dist/transport/actions-adapter.js.map +0 -1
- package/dist/transport/door-budget.d.ts +0 -20
- package/dist/transport/door-budget.d.ts.map +0 -1
- package/dist/transport/door-budget.js.map +0 -1
- package/dist/transport/replay-stream-agent.d.ts.map +0 -1
- package/dist/transport/replay-stream-agent.js.map +0 -1
- package/dist/transport/serving-api.d.ts +0 -40
- package/dist/transport/serving-api.d.ts.map +0 -1
- package/dist/transport/serving-api.js.map +0 -1
- package/dist/transport/serving-error.d.ts.map +0 -1
- package/dist/transport/serving-error.js.map +0 -1
- package/dist/transport/serving-fetch.d.ts +0 -6
- package/dist/transport/serving-fetch.d.ts.map +0 -1
- package/dist/transport/serving-fetch.js.map +0 -1
- package/dist/transport/stream-resume.d.ts.map +0 -1
- package/dist/transport/stream-resume.js.map +0 -1
- package/dist/transport/token-session.d.ts.map +0 -1
- package/dist/transport/token-session.js.map +0 -1
- package/src/activity.ts +0 -28
- package/src/affordances/highlight.ts +0 -116
- package/src/affordances/prefill.ts +0 -253
- package/src/appearance/theme.ts +0 -122
- package/src/components/activity-rail.tsx +0 -277
- package/src/components/activity-shelf.tsx +0 -52
- package/src/components/agent-identity-mark.tsx +0 -120
- package/src/components/appearance-context.ts +0 -55
- package/src/components/approval-card.tsx +0 -501
- package/src/components/approval-context.ts +0 -59
- package/src/components/assistant-companion.tsx +0 -345
- package/src/components/assistant-page.tsx +0 -411
- package/src/components/assistant-palette-body.tsx +0 -84
- package/src/components/assistant-palette.tsx +0 -75
- package/src/components/assistant-transcript.tsx +0 -544
- package/src/components/attachment-chips.tsx +0 -133
- package/src/components/child-transcript.tsx +0 -588
- package/src/components/companion-drawer-body.tsx +0 -81
- package/src/components/companion-drawer.tsx +0 -288
- package/src/components/companion-header-disclosure.tsx +0 -200
- package/src/components/companion-history-menu.tsx +0 -128
- package/src/components/companion-mark-image.tsx +0 -39
- package/src/components/companion-mark.tsx +0 -27
- package/src/components/companion-mode-menu.tsx +0 -118
- package/src/components/composer-attachment-chip.tsx +0 -88
- package/src/components/composer.tsx +0 -836
- package/src/components/conversation-context.ts +0 -26
- package/src/components/conversation-gate-card.tsx +0 -269
- package/src/components/conversation-surfaces-provider.tsx +0 -70
- package/src/components/conversation-view.tsx +0 -514
- package/src/components/copy-text-button.tsx +0 -77
- package/src/components/elicitation-context.ts +0 -94
- package/src/components/elicitation-receipt-row.tsx +0 -28
- package/src/components/human-file-size.ts +0 -13
- package/src/components/icons.tsx +0 -281
- package/src/components/lazy-body.tsx +0 -88
- package/src/components/markdown/assistant-markdown.tsx +0 -28
- package/src/components/markdown/code-block.tsx +0 -45
- package/src/components/markdown/highlight.ts +0 -34
- package/src/components/markdown/markdown-structure.tsx +0 -79
- package/src/components/markdown/memoized-blocks.tsx +0 -62
- package/src/components/markdown/paced-assistant-markdown.tsx +0 -33
- package/src/components/markdown/reveal-pacer.ts +0 -135
- package/src/components/markdown/shiki-highlighter.ts +0 -61
- package/src/components/markdown/streaming-repair.ts +0 -83
- package/src/components/markdown/use-highlighted-html.ts +0 -48
- package/src/components/markdown/use-paced-reveal.ts +0 -142
- package/src/components/memory-updated-footer.tsx +0 -166
- package/src/components/message-list-row.tsx +0 -220
- package/src/components/message-list-slots.ts +0 -62
- package/src/components/message-list.tsx +0 -386
- package/src/components/model-picker-chip.tsx +0 -489
- package/src/components/model-picker-effort.ts +0 -81
- package/src/components/model-picker-panels.tsx +0 -232
- package/src/components/notice-banner.tsx +0 -44
- package/src/components/operation-icons.tsx +0 -166
- package/src/components/pretty-print.ts +0 -9
- package/src/components/primitives/autofocus.ts +0 -26
- package/src/components/primitives/button.tsx +0 -205
- package/src/components/primitives/cx.ts +0 -5
- package/src/components/primitives/dialog.tsx +0 -127
- package/src/components/primitives/disclosure.tsx +0 -190
- package/src/components/primitives/file-input.tsx +0 -37
- package/src/components/primitives/floating-panel.tsx +0 -295
- package/src/components/primitives/kbd.tsx +0 -33
- package/src/components/primitives/sheet.tsx +0 -81
- package/src/components/primitives/textarea.tsx +0 -45
- package/src/components/primitives/use-dock-reflow.ts +0 -62
- package/src/components/primitives/use-swipe-dismiss.ts +0 -372
- package/src/components/provider-chip.tsx +0 -279
- package/src/components/question-panel-answers.tsx +0 -356
- package/src/components/question-panel-footer.tsx +0 -150
- package/src/components/question-panel.tsx +0 -340
- package/src/components/react-tool-view.tsx +0 -167
- package/src/components/reasoning-row.tsx +0 -68
- package/src/components/receipt-rows.tsx +0 -47
- package/src/components/run-status-announcer.tsx +0 -48
- package/src/components/scroll-follow-guards.tsx +0 -282
- package/src/components/served-suggestions.ts +0 -62
- package/src/components/slot-boundary.tsx +0 -112
- package/src/components/streaming-states.tsx +0 -110
- package/src/components/subagent-count-pill.tsx +0 -623
- package/src/components/subagent-current-work.tsx +0 -52
- package/src/components/subagent-delegation-surface.tsx +0 -386
- package/src/components/subagent-delivery-divider.tsx +0 -72
- package/src/components/subagent-drill-in.ts +0 -42
- package/src/components/subagent-execution-work.tsx +0 -25
- package/src/components/subagent-group-row.tsx +0 -627
- package/src/components/subagent-preview-popover.tsx +0 -163
- package/src/components/subscription-connect-flow.tsx +0 -662
- package/src/components/subscription-connected-standing.tsx +0 -178
- package/src/components/surface-boundary.tsx +0 -155
- package/src/components/suspension-surfaces.tsx +0 -380
- package/src/components/teaflask-assistant-provider.tsx +0 -542
- package/src/components/teaflask-assistant.tsx +0 -146
- package/src/components/thread-list.tsx +0 -195
- package/src/components/tool-arguments-summary.tsx +0 -213
- package/src/components/tool-call-rows.tsx +0 -274
- package/src/components/tool-row.tsx +0 -184
- package/src/components/tool-view-registry-context.ts +0 -26
- package/src/components/tool-view-slot.tsx +0 -397
- package/src/components/tool-views/action-view.ts +0 -204
- package/src/components/tool-views/command-view.ts +0 -95
- package/src/components/tool-views/docs-search-view.ts +0 -203
- package/src/components/tool-views/file-edit-view.ts +0 -276
- package/src/components/tool-views/parts-classes.ts +0 -104
- package/src/components/tool-views/parts.tsx +0 -211
- package/src/components/tool-views/questions-view.ts +0 -88
- package/src/components/tool-views/view-dom.ts +0 -574
- package/src/components/transcript.tsx +0 -224
- package/src/components/use-agent-subscriber.ts +0 -39
- package/src/components/use-answer-list-fold.ts +0 -50
- package/src/components/use-assistant-activity.ts +0 -18
- package/src/components/use-assistant-conversation.ts +0 -71
- package/src/components/use-assistant-surface-presence.ts +0 -21
- package/src/components/use-child-replay-stream.ts +0 -464
- package/src/components/use-latest-ref.ts +0 -14
- package/src/components/use-member-toggle-outrank.ts +0 -92
- package/src/components/use-perch-clearance.ts +0 -191
- package/src/components/use-question-panel-keys.ts +0 -316
- package/src/components/use-register-assistant-surface.ts +0 -27
- package/src/components/use-resolved-theme-mode.ts +0 -113
- package/src/components/use-roster-disclosure.ts +0 -210
- package/src/components/use-roster-preview.ts +0 -123
- package/src/components/use-store-cell.ts +0 -11
- package/src/components/use-thread-dispatches.ts +0 -732
- package/src/components/use-transcript-folds.ts +0 -269
- package/src/components/use-transcript.ts +0 -131
- package/src/components/user-message.tsx +0 -68
- package/src/contract/actions-adapter.ts +0 -70
- package/src/contract/assistant-config.ts +0 -12
- package/src/contract/dispatches.ts +0 -76
- package/src/contract/errors.ts +0 -23
- package/src/contract/events.ts +0 -117
- package/src/contract/identity.ts +0 -12
- package/src/contract/subscriptions.ts +0 -11
- package/src/contract/telemetry.ts +0 -105
- package/src/contract/threads.ts +0 -38
- package/src/core/activity-title.ts +0 -15
- package/src/core/activity.ts +0 -134
- package/src/core/agent-identity.ts +0 -22
- package/src/core/approval-decision.ts +0 -350
- package/src/core/approval-inbox.ts +0 -854
- package/src/core/approval-request-narrowing.ts +0 -111
- package/src/core/approval-resolved.ts +0 -53
- package/src/core/assistant-prose.ts +0 -32
- package/src/core/assistant-session-registry.ts +0 -584
- package/src/core/attachment-uploads.ts +0 -56
- package/src/core/block-timing-anchors.ts +0 -168
- package/src/core/companion-drawer-flag.ts +0 -22
- package/src/core/companion-presence.ts +0 -32
- package/src/core/composer-input-state.ts +0 -94
- package/src/core/composer-policy.ts +0 -144
- package/src/core/connect-gate.ts +0 -149
- package/src/core/connection-driver.ts +0 -198
- package/src/core/connection-epoch.ts +0 -618
- package/src/core/consumed-interrupts.ts +0 -124
- package/src/core/conversation-adoption.ts +0 -565
- package/src/core/conversation-contract.ts +0 -164
- package/src/core/conversation-publish.ts +0 -223
- package/src/core/conversation-refresh.ts +0 -128
- package/src/core/conversation-send.ts +0 -227
- package/src/core/conversation-store.ts +0 -588
- package/src/core/coworker-execution-work.ts +0 -95
- package/src/core/disposable-subscriber.ts +0 -45
- package/src/core/dock-reflow.ts +0 -120
- package/src/core/elicitation-answers.ts +0 -165
- package/src/core/elicitation-cards.ts +0 -165
- package/src/core/elicitation-pickers.ts +0 -120
- package/src/core/epoch-sync.ts +0 -480
- package/src/core/error-copy.ts +0 -102
- package/src/core/execution-driver.ts +0 -438
- package/src/core/execution-handlers.ts +0 -654
- package/src/core/execution-inbox.ts +0 -527
- package/src/core/execution-kinds.ts +0 -98
- package/src/core/execution-request-narrowing.ts +0 -112
- package/src/core/host-fill.ts +0 -10
- package/src/core/hotkey.ts +0 -148
- package/src/core/idle-recheck.ts +0 -68
- package/src/core/memory-provenance-anchors.ts +0 -312
- package/src/core/messages-cell.ts +0 -99
- package/src/core/observable-cell.ts +0 -46
- package/src/core/pending-decision-gap.ts +0 -203
- package/src/core/perch-clearance.ts +0 -104
- package/src/core/question-drafts.ts +0 -261
- package/src/core/question-receipt.ts +0 -97
- package/src/core/reasoning-copy.ts +0 -10
- package/src/core/receipt-anchors.ts +0 -190
- package/src/core/run-folds.ts +0 -424
- package/src/core/run-status.ts +0 -53
- package/src/core/segment-timing.ts +0 -90
- package/src/core/settle-refresh.ts +0 -37
- package/src/core/step-caption.ts +0 -19
- package/src/core/stop-copy.ts +0 -8
- package/src/core/stop-settle.ts +0 -38
- package/src/core/stream-trouble.ts +0 -154
- package/src/core/subagent-brief.ts +0 -71
- package/src/core/subagent-delivery-anchors.ts +0 -176
- package/src/core/subagent-presence.ts +0 -130
- package/src/core/subagent-roster.ts +0 -187
- package/src/core/subagent-rows.ts +0 -350
- package/src/core/surface-registry.ts +0 -103
- package/src/core/suspension-queue.ts +0 -95
- package/src/core/tail-slot-pool.ts +0 -93
- package/src/core/time-labels.ts +0 -91
- package/src/core/tool-call-display-anchors.ts +0 -325
- package/src/core/tool-call-display.ts +0 -149
- package/src/core/tool-call-presentation.ts +0 -264
- package/src/core/tool-cancel-anchors.ts +0 -15
- package/src/core/tool-decision-anchors.ts +0 -108
- package/src/core/tool-denial-anchors.ts +0 -145
- package/src/core/tool-error-anchors.ts +0 -17
- package/src/core/tool-flag-anchors.ts +0 -78
- package/src/core/tool-offload-anchors.ts +0 -16
- package/src/core/tool-outcome.ts +0 -115
- package/src/core/tool-refusal-anchors.ts +0 -18
- package/src/core/tool-result-envelope.ts +0 -63
- package/src/core/tool-schema-anchors.ts +0 -207
- package/src/core/tool-sentence-anchors.ts +0 -104
- package/src/core/tool-view.ts +0 -261
- package/src/core/transcript-lease.ts +0 -54
- package/src/core/transcript-rows.ts +0 -736
- package/src/core/turn-failed-anchors.ts +0 -44
- package/src/core/turn-failure-copy.ts +0 -57
- package/src/core/turn-usage-anchors.ts +0 -216
- package/src/core/turns-backfill.ts +0 -56
- package/src/core/user-turn-ledger.ts +0 -256
- package/src/core/wire-sentence-cap.ts +0 -6
- package/src/generated/models/activityMessage.ts +0 -24
- package/src/generated/models/activityMessageContent.ts +0 -8
- package/src/generated/models/activityMessageMetadata.ts +0 -8
- package/src/generated/models/agentDispatchStatus.ts +0 -16
- package/src/generated/models/apiErrorBody.ts +0 -13
- package/src/generated/models/apiErrorCode.ts +0 -163
- package/src/generated/models/approvalRequestedMarker.ts +0 -33
- package/src/generated/models/approvalRequestedMarkerToolArgs.ts +0 -8
- package/src/generated/models/approvalRequestedMarkerToolInputSchema.ts +0 -10
- package/src/generated/models/approvalRequestedMarkerToolOutputSchema.ts +0 -10
- package/src/generated/models/approvalResolvedMarker.ts +0 -22
- package/src/generated/models/askQuestionsAction.ts +0 -20
- package/src/generated/models/askQuestionsResult.ts +0 -19
- package/src/generated/models/assistantConfigResponse.ts +0 -17
- package/src/generated/models/assistantMessage.ts +0 -24
- package/src/generated/models/assistantMessageMetadata.ts +0 -8
- package/src/generated/models/assistantStreamMarkerName.ts +0 -33
- package/src/generated/models/assistantTurnKind.ts +0 -13
- package/src/generated/models/assistantTurnStatus.ts +0 -20
- package/src/generated/models/attachmentKind.ts +0 -20
- package/src/generated/models/attachmentPolicyResponse.ts +0 -19
- package/src/generated/models/audioInputContent.ts +0 -20
- package/src/generated/models/audioPart.ts +0 -20
- package/src/generated/models/binaryInputContent.ts +0 -22
- package/src/generated/models/connectProjectionResponse.ts +0 -26
- package/src/generated/models/connectProjectionResponseGate.ts +0 -17
- package/src/generated/models/connectProjectionResponseReason.ts +0 -15
- package/src/generated/models/context.ts +0 -16
- package/src/generated/models/createDeviceAuthorizationResponse.ts +0 -19
- package/src/generated/models/createServingAttachmentUploadRequest.ts +0 -19
- package/src/generated/models/createServingAttachmentUploadResponse.ts +0 -13
- package/src/generated/models/currentVisitorResponse.ts +0 -18
- package/src/generated/models/dataSource.ts +0 -16
- package/src/generated/models/deliveredSubagentResult.ts +0 -17
- package/src/generated/models/developerMessage.ts +0 -21
- package/src/generated/models/developerMessageMetadata.ts +0 -8
- package/src/generated/models/docHeading.ts +0 -17
- package/src/generated/models/docHeadingLevel.ts +0 -18
- package/src/generated/models/documentInputContent.ts +0 -20
- package/src/generated/models/documentPart.ts +0 -20
- package/src/generated/models/endUserIdentity.ts +0 -14
- package/src/generated/models/errorEnvelope.ts +0 -11
- package/src/generated/models/evidenceAfterVoidRecordedMarker.ts +0 -21
- package/src/generated/models/evidenceAfterVoidRecordedMarkerError.ts +0 -10
- package/src/generated/models/evidenceAfterVoidRecordedMarkerResult.ts +0 -10
- package/src/generated/models/fileSource.ts +0 -21
- package/src/generated/models/functionCall.ts +0 -15
- package/src/generated/models/getServingAssistantThreadParams.ts +0 -16
- package/src/generated/models/helpHostResolution.ts +0 -10
- package/src/generated/models/helpPageResponse.ts +0 -13
- package/src/generated/models/helpSearchHit.ts +0 -24
- package/src/generated/models/helpSearchMode.ts +0 -19
- package/src/generated/models/helpSearchResponse.ts +0 -14
- package/src/generated/models/helpSiteGroup.ts +0 -14
- package/src/generated/models/helpSitePage.ts +0 -13
- package/src/generated/models/helpSiteResponse.ts +0 -16
- package/src/generated/models/helpSiteTab.ts +0 -13
- package/src/generated/models/highlightResult.ts +0 -15
- package/src/generated/models/httpIntentResult.ts +0 -20
- package/src/generated/models/httpIntentResultHeaders.ts +0 -8
- package/src/generated/models/imageInputContent.ts +0 -20
- package/src/generated/models/imagePart.ts +0 -20
- package/src/generated/models/index.ts +0 -173
- package/src/generated/models/inputContentDataSource.ts +0 -16
- package/src/generated/models/inputContentUrlSource.ts +0 -16
- package/src/generated/models/interruptAnswerConsumedMarker.ts +0 -27
- package/src/generated/models/interruptAnswerConsumedMarkerFamily.ts +0 -14
- package/src/generated/models/listServingAssistantThreadsParams.ts +0 -16
- package/src/generated/models/memoryUpdatedMarker.ts +0 -19
- package/src/generated/models/mintVisitorTokenRequest.ts +0 -12
- package/src/generated/models/mintVisitorTokenResponse.ts +0 -13
- package/src/generated/models/modelChoiceOption.ts +0 -21
- package/src/generated/models/modelChoiceResponse.ts +0 -34
- package/src/generated/models/modelPickRequest.ts +0 -25
- package/src/generated/models/navigateResult.ts +0 -15
- package/src/generated/models/pollDeviceAuthorizationRequest.ts +0 -10
- package/src/generated/models/pollDeviceAuthorizationResponse.ts +0 -19
- package/src/generated/models/prefillFormResult.ts +0 -17
- package/src/generated/models/publishableKeyMode.ts +0 -14
- package/src/generated/models/question.ts +0 -33
- package/src/generated/models/questionAnswer.ts +0 -18
- package/src/generated/models/questionOption.ts +0 -19
- package/src/generated/models/readPageResult.ts +0 -20
- package/src/generated/models/reasoningMessage.ts +0 -21
- package/src/generated/models/reasoningMessageMetadata.ts +0 -8
- package/src/generated/models/refusedField.ts +0 -15
- package/src/generated/models/resolveServingTurnApprovalRequest.ts +0 -12
- package/src/generated/models/resolveServingTurnApprovalResponse.ts +0 -13
- package/src/generated/models/resolveServingTurnToolResultsRequest.ts +0 -12
- package/src/generated/models/resolveServingTurnToolResultsResponse.ts +0 -14
- package/src/generated/models/resolvedLanding.ts +0 -13
- package/src/generated/models/resolvedLandingCard.ts +0 -13
- package/src/generated/models/resumeEntry.ts +0 -19
- package/src/generated/models/resumeEntryMetadata.ts +0 -8
- package/src/generated/models/resumeEntryStatus.ts +0 -14
- package/src/generated/models/routeSuggestions.ts +0 -17
- package/src/generated/models/runAgentInput.ts +0 -41
- package/src/generated/models/runResumedMarker.ts +0 -20
- package/src/generated/models/sectionProvenance.ts +0 -17
- package/src/generated/models/sectionProvenanceState.ts +0 -20
- package/src/generated/models/sendServingAssistantMessageRequest.ts +0 -16
- package/src/generated/models/sendServingAssistantMessageResponse.ts +0 -13
- package/src/generated/models/servingAgentDispatchResponse.ts +0 -30
- package/src/generated/models/servingApprovalDelivery.ts +0 -15
- package/src/generated/models/servingAssistantThreadDetailResponse.ts +0 -13
- package/src/generated/models/servingAssistantThreadResponse.ts +0 -17
- package/src/generated/models/servingAssistantTurnResponse.ts +0 -37
- package/src/generated/models/servingAssistantTurnResponsePendingApprovalDisplays.ts +0 -11
- package/src/generated/models/servingAttachmentDownloadUrlResponse.ts +0 -11
- package/src/generated/models/servingAttachmentResponse.ts +0 -16
- package/src/generated/models/servingCoworkerApprovalRequest.ts +0 -30
- package/src/generated/models/servingCoworkerExecutionRequest.ts +0 -28
- package/src/generated/models/servingDeviceAuthorizationStatus.ts +0 -14
- package/src/generated/models/servingErrorCode.ts +0 -43
- package/src/generated/models/servingStopDelivery.ts +0 -15
- package/src/generated/models/servingSubscriptionStatus.ts +0 -31
- package/src/generated/models/servingSubscriptionStatusBounceCause.ts +0 -15
- package/src/generated/models/servingSubscriptionsResponse.ts +0 -11
- package/src/generated/models/servingToolResultDelivery.ts +0 -16
- package/src/generated/models/servingToolResultReport.ts +0 -23
- package/src/generated/models/servingToolResultReportError.ts +0 -8
- package/src/generated/models/servingToolResultReportResult.ts +0 -8
- package/src/generated/models/servingTurnApprovalDecision.ts +0 -23
- package/src/generated/models/servingTurnAttachmentResponse.ts +0 -19
- package/src/generated/models/siteTheme.ts +0 -19
- package/src/generated/models/siteThemeDefaultAppearance.ts +0 -15
- package/src/generated/models/steeringFiredAction.ts +0 -19
- package/src/generated/models/steeringFiredMarker.ts +0 -18
- package/src/generated/models/stopServingTurnResponse.ts +0 -13
- package/src/generated/models/subagentResultsDeliveredMarker.ts +0 -15
- package/src/generated/models/subscriptionCredentialState.ts +0 -23
- package/src/generated/models/subscriptionProvider.ts +0 -21
- package/src/generated/models/suggestionItem.ts +0 -20
- package/src/generated/models/suggestionKind.ts +0 -21
- package/src/generated/models/suggestionsConfig.ts +0 -19
- package/src/generated/models/systemMessage.ts +0 -21
- package/src/generated/models/systemMessageMetadata.ts +0 -8
- package/src/generated/models/textInputContent.ts +0 -17
- package/src/generated/models/textPart.ts +0 -17
- package/src/generated/models/thinkingEffort.ts +0 -24
- package/src/generated/models/threadModelPickResponse.ts +0 -18
- package/src/generated/models/tool.ts +0 -18
- package/src/generated/models/toolCall.ts +0 -22
- package/src/generated/models/toolCallAnnotatedMarker.ts +0 -24
- package/src/generated/models/toolCallAnnotatedMarkerToolInputSchema.ts +0 -10
- package/src/generated/models/toolCallAnnotatedMarkerToolOutputSchema.ts +0 -10
- package/src/generated/models/toolCallDisplayPayload.ts +0 -21
- package/src/generated/models/toolCallMetadata.ts +0 -8
- package/src/generated/models/toolExecutionRequestPayload.ts +0 -20
- package/src/generated/models/toolExecutionRequestPayloadAction.ts +0 -10
- package/src/generated/models/toolExecutionRequestPayloadIntent.ts +0 -10
- package/src/generated/models/toolExecutionRequestedMarker.ts +0 -20
- package/src/generated/models/toolMessage.ts +0 -29
- package/src/generated/models/toolMessageMetadata.ts +0 -8
- package/src/generated/models/toolMetadata.ts +0 -8
- package/src/generated/models/toolResultRecordedMarker.ts +0 -17
- package/src/generated/models/toolViewRef.ts +0 -20
- package/src/generated/models/turnFailedMarker.ts +0 -15
- package/src/generated/models/turnStoppedMarker.ts +0 -14
- package/src/generated/models/turnUsageRecordedMarker.ts +0 -26
- package/src/generated/models/turnVoidedMarker.ts +0 -14
- package/src/generated/models/urlSource.ts +0 -16
- package/src/generated/models/userMessage.ts +0 -36
- package/src/generated/models/userMessageMetadata.ts +0 -8
- package/src/generated/models/videoInputContent.ts +0 -20
- package/src/generated/models/videoPart.ts +0 -20
- package/src/generated/models/visitorTier.ts +0 -18
- package/src/generated/serving.ts +0 -593
- package/src/headless.ts +0 -189
- package/src/index.ts +0 -218
- package/src/markdown.ts +0 -13
- package/src/persistence/execution-ledger.ts +0 -146
- package/src/persistence/panel-mode.ts +0 -75
- package/src/persistence/stored-thread.ts +0 -85
- package/src/reader/accessible-name.ts +0 -356
- package/src/reader/interactivity.ts +0 -157
- package/src/reader/layout-probe.ts +0 -166
- package/src/reader/line-diff.ts +0 -168
- package/src/reader/read-page.ts +0 -240
- package/src/reader/redaction.ts +0 -84
- package/src/reader/render.ts +0 -150
- package/src/reader/roles.ts +0 -277
- package/src/reader/snapshot-compaction.ts +0 -208
- package/src/reader/snapshot-node.ts +0 -158
- package/src/reader/snapshot-root.ts +0 -125
- package/src/reader/snapshot.ts +0 -328
- package/src/reader/visibility.ts +0 -152
- package/src/scroll.ts +0 -17
- package/src/styles/styles.css +0 -1533
- package/src/transcript-ui.ts +0 -78
- package/src/transcript.ts +0 -277
- package/src/transport/actions-adapter.ts +0 -227
- package/src/transport/door-budget.ts +0 -78
- package/src/transport/replay-stream-agent.ts +0 -192
- package/src/transport/serving-api.ts +0 -233
- package/src/transport/serving-error.ts +0 -90
- package/src/transport/serving-fetch.ts +0 -38
- package/src/transport/stream-resume.ts +0 -637
- package/src/transport/token-session.ts +0 -209
package/README.md
CHANGED
|
@@ -1,1293 +1,165 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
The package is developed in a private monorepo and mirrored to this
|
|
20
|
-
repository; see [CONTRIBUTING.md](./CONTRIBUTING.md) for how issues and
|
|
21
|
-
changes flow.
|
|
1
|
+
<div align="center">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/teaflask/assistant/main/images/logo-dark.svg">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/teaflask/assistant/main/images/logo.svg" width="56" alt="Teaflask logo">
|
|
5
|
+
</picture>
|
|
6
|
+
<h1>Teaflask Assistant</h1>
|
|
7
|
+
<p>An AI agent that works inside your product, in one component.</p>
|
|
8
|
+
<p>
|
|
9
|
+
<a href="https://docs.teaflask.com/getting-started">Get started</a> ·
|
|
10
|
+
<a href="https://docs.teaflask.com">Docs</a> ·
|
|
11
|
+
<a href="https://app.teaflask.com/">Dashboard</a> ·
|
|
12
|
+
<a href="https://github.com/teaflask/assistant/issues">Issues</a>
|
|
13
|
+
</p>
|
|
14
|
+
<p>
|
|
15
|
+
<a href="https://www.npmjs.com/package/@teaflask/assistant"><img src="https://img.shields.io/npm/v/@teaflask/assistant?color=111" alt="npm version"></a>
|
|
16
|
+
<a href="https://github.com/teaflask/assistant/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/@teaflask/assistant?color=111" alt="License: FSL-1.1-ALv2"></a>
|
|
17
|
+
</p>
|
|
18
|
+
</div>
|
|
22
19
|
|
|
23
|
-
|
|
20
|
+
<table>
|
|
21
|
+
<tr>
|
|
22
|
+
<td width="50%" valign="top">
|
|
23
|
+
<img src="https://raw.githubusercontent.com/teaflask/assistant/main/images/surface-widget.png" alt="Corner widget">
|
|
24
|
+
<p align="center"><sub>Corner widget</sub></p>
|
|
25
|
+
</td>
|
|
26
|
+
<td width="50%" valign="top">
|
|
27
|
+
<img src="https://raw.githubusercontent.com/teaflask/assistant/main/images/surface-sidebar.png" alt="Sidebar">
|
|
28
|
+
<p align="center"><sub>Sidebar</sub></p>
|
|
29
|
+
</td>
|
|
30
|
+
</tr>
|
|
31
|
+
<tr>
|
|
32
|
+
<td width="50%" valign="top">
|
|
33
|
+
<img src="https://raw.githubusercontent.com/teaflask/assistant/main/images/surface-palette.png" alt="⌘K palette">
|
|
34
|
+
<p align="center"><sub>⌘K palette</sub></p>
|
|
35
|
+
</td>
|
|
36
|
+
<td width="50%" valign="top">
|
|
37
|
+
<img src="https://raw.githubusercontent.com/teaflask/assistant/main/images/surface-page.png" alt="Full page">
|
|
38
|
+
<p align="center"><sub>Full page</sub></p>
|
|
39
|
+
</td>
|
|
40
|
+
</tr>
|
|
41
|
+
</table>
|
|
42
|
+
|
|
43
|
+
[Teaflask](https://teaflask.com) gives your product an AI agent that understands how it works and gets things done for your users. `@teaflask/assistant` is the part your users see: drop it into your app and Teaflask hosts everything behind it. Your app keeps its own business logic, authentication and permissions.
|
|
44
|
+
|
|
45
|
+
**React**
|
|
24
46
|
|
|
25
47
|
```tsx
|
|
26
48
|
import "@teaflask/assistant/styles.css";
|
|
27
49
|
import { TeaflaskAssistant } from "@teaflask/assistant";
|
|
28
50
|
|
|
29
|
-
<TeaflaskAssistant publishableKey="
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
`<TeaflaskAssistant/>` is the whole product face in one mount: the
|
|
33
|
-
companion in the corner of every route, the command palette on ⌘K (the
|
|
34
|
-
package owns the hotkey — see below), and the chat drawer on a click of
|
|
35
|
-
the companion. Mount it once near your app root; one root per page. It
|
|
36
|
-
accepts every provider prop in the table below, plus its own:
|
|
37
|
-
|
|
38
|
-
| Prop | Meaning |
|
|
39
|
-
| -------- | --------------------------------------------------------------------------------------- |
|
|
40
|
-
| `hotkey` | The palette chord. `"mod+k"` by default; rebind (`"mod+j"`) or pass `false` to disable. |
|
|
41
|
-
| `corner` | The viewport corner the companion anchors to (`"bottom-right"` default). |
|
|
42
|
-
| `ref` | A `TeaflaskAssistantHandle` — the imperative escape hatch (see The hotkey). |
|
|
43
|
-
|
|
44
|
-
Anonymous visitors converse immediately; the conversation persists in
|
|
45
|
-
this browser and resumes on reload. The publishable key's origin
|
|
46
|
-
allowlist (set on the agent's page in the teaflask dashboard, where the
|
|
47
|
-
key is issued) must include your site's origin.
|
|
48
|
-
|
|
49
|
-
### The hotkey
|
|
50
|
-
|
|
51
|
-
The root binds the palette chord itself — that is the batteries-included
|
|
52
|
-
promise, and it is also a global shortcut registered in _your_ app, so
|
|
53
|
-
it is escapable and deliberately polite:
|
|
54
|
-
|
|
55
|
-
- **Default**: `mod+k`, where `mod` is ⌘ or Ctrl. Rebind with the same
|
|
56
|
-
grammar — `"+"`-separated tokens, at least one modifier from
|
|
57
|
-
`mod|ctrl|meta|alt|shift` plus exactly one key (`"mod+j"`,
|
|
58
|
-
`"ctrl+shift+p"`; a modifier-less key would swallow that character in
|
|
59
|
-
every input, so it is rejected — as is shift alone with a printable
|
|
60
|
-
key, since Shift+letter is just typing a capital) — or pass
|
|
61
|
-
`hotkey={false}` to disable. An unrecognized spec disables the hotkey
|
|
62
|
-
with a console warning; it never falls back to ⌘K, since a rebind away
|
|
63
|
-
from a conflict must not be silently rebound into it.
|
|
64
|
-
- **Precedence — cooperate, don't capture.** The listener sits on
|
|
65
|
-
`window` in the bubble phase, last in the dispatch order. A handler of
|
|
66
|
-
yours that runs first and calls `preventDefault()` wins (as does
|
|
67
|
-
`stopPropagation()` — the event never reaches us), and we call
|
|
68
|
-
`preventDefault()` only on events we act on. Chords are matched
|
|
69
|
-
exactly: `mod+k` ignores ⌘⇧K.
|
|
70
|
-
- **It opens from anywhere**, including a focused input — the Linear
|
|
71
|
-
idiom. An editor that needs ⌘K for itself (insert-link, say) should
|
|
72
|
-
`preventDefault()` in its own handler, rebind the palette, or disable
|
|
73
|
-
the hotkey.
|
|
74
|
-
- **Pressing the chord again toggles the palette closed**; Esc and the
|
|
75
|
-
backdrop still close it from the inside — with one precedence rule:
|
|
76
|
-
while a turn is streaming and focus is in the composer, the first Esc
|
|
77
|
-
is the stop shortcut (it ends the answer) and the palette stays open.
|
|
78
|
-
Once the stop is in flight ("Stopping…") or the composer is idle, Esc
|
|
79
|
-
closes the palette exactly as before; the backdrop and the close
|
|
80
|
-
affordance are never intercepted.
|
|
81
|
-
|
|
82
|
-
The ref is the imperative escape hatch, so a disabled or rebound hotkey
|
|
83
|
-
never strands you without a way in:
|
|
84
|
-
|
|
85
|
-
```tsx
|
|
86
|
-
const assistantRef = useRef<TeaflaskAssistantHandle>(null);
|
|
87
|
-
|
|
88
|
-
<TeaflaskAssistant
|
|
89
|
-
ref={assistantRef}
|
|
90
|
-
hotkey={false}
|
|
91
|
-
publishableKey="pk_test_…"
|
|
92
|
-
/>;
|
|
93
|
-
|
|
94
|
-
// e.g. from your own menu item:
|
|
95
|
-
assistantRef.current?.openPalette();
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
The handle exists only while the root is mounted — the optional chain
|
|
99
|
-
makes an early or late call a no-op. Note that opening the palette makes
|
|
100
|
-
the companion hide until it closes: the palette counts as an open
|
|
101
|
-
assistant surface, and the companion yields to those by design.
|
|
102
|
-
|
|
103
|
-
### Own the pieces instead
|
|
104
|
-
|
|
105
|
-
The root is composition, not magic — every piece stays public for hosts
|
|
106
|
-
that want their own trigger, placement, or a dedicated route:
|
|
107
|
-
|
|
108
|
-
```tsx
|
|
109
|
-
import "@teaflask/assistant/styles.css";
|
|
110
|
-
import { TeaflaskAssistantProvider, AssistantPage } from "@teaflask/assistant";
|
|
111
|
-
|
|
112
|
-
<TeaflaskAssistantProvider publishableKey="pk_test_…">
|
|
113
|
-
<AssistantPage />
|
|
114
|
-
</TeaflaskAssistantProvider>;
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
`AssistantPage` fills whatever box it is mounted in — give it a sized
|
|
118
|
-
container (e.g. `height: 100vh`). Its own props are optional:
|
|
119
|
-
`frameless` drops the surface's card chrome (border and radius) when it
|
|
120
|
-
sits flush inside chrome you already draw, `suggestions` seeds the
|
|
121
|
-
empty state with opening prompts (strings, sent verbatim when clicked),
|
|
122
|
-
and `title` names the surface when no active conversation has a title
|
|
123
|
-
(defaults to "Assistant"). Conversation history opens from that title as
|
|
124
|
-
a transient disclosure instead of occupying a permanent rail. It also
|
|
125
|
-
pairs with the root: an
|
|
126
|
-
`<AssistantPage/>` mounted on your dedicated assistant route registers
|
|
127
|
-
itself, and the root's companion yields there automatically.
|
|
128
|
-
|
|
129
|
-
### Provider props
|
|
130
|
-
|
|
131
|
-
`<TeaflaskAssistant/>` and `<TeaflaskAssistantProvider/>` both take all
|
|
132
|
-
of these:
|
|
133
|
-
|
|
134
|
-
| Prop | Required | Meaning |
|
|
135
|
-
| ----------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
136
|
-
| `publishableKey` | **yes** | Your site's key (`pk_live_…` / `pk_test_…`). |
|
|
137
|
-
| `baseUrl` | no | The teaflask API origin. Defaults to `https://api.teaflask.com`. |
|
|
138
|
-
| `getEndUserToken` | no | Async callback returning your backend-signed end-user JWT (see the serving identity contract), or null while signed out. Unlocks the identified tier: cross-device history and the thread list. Called on every token mint, so a rotated JWT is always picked up. |
|
|
139
|
-
| `actionsAdapter` | no | How this page performs the actions your teaflask catalog grants — one adapter for the whole catalog, in three flavors (see Actions below). Absent means this surface cannot perform actions; the assistant is told so in-band. |
|
|
140
|
-
| `onNavigate` | no | Callback taking the visitor to an app-relative path when the assistant asks (the navigate capability). Absent means this surface cannot navigate; the assistant gives the user directions instead. |
|
|
141
|
-
| `onError` | no | Observer for transport and stream errors (the surface already renders honest error states on its own). |
|
|
142
|
-
| `onTelemetry` | no | Observer for product-telemetry events (`AssistantTelemetryEvent`, exported) — the approval submit path's attempted/sent/dropped narration, plus `assistant_stream_failed`: each stream failure classified (`StreamFailureClass`: pre-response rejection, non-2xx with status, missing body, mid-stream death, protocol refusal, client abort) with the thread id and the resume/last-committed cursors that locate it on the recorded log — never any run content. Forward to your own analytics so a swallowed approval click or a dying stream is a query, not a mystery. Distinct from `onError` on purpose: these are events, not failures, and most carry no exception. npm-package hosts only for now — the script-tag element deliberately does not expose this seam yet. |
|
|
143
|
-
| `companionMark` | no | Your own companion mark — a React node rendered on the corner perch and the drawer's welcome, inside one 4rem box the package sizes; the package sets your node to 100% of that box, so a bare `<svg viewBox>` or `<img>` needs no sizing of its own. Read by identity. Omit it for the TeaFlask flask in the foreground color. Script-tag hosts set `companion-mark-src` instead (see The mark below). |
|
|
144
|
-
| `toolViews` | no | Your own presentation for your own tools: a registry of tool views keyed by the opaque keys your backend's display annotations name, or by your exact tool names (see Custom tool views below). Resolution walks a fixed ladder — exact key-and-version, exact tool name, package built-ins, the package default — and a throwing view falls to the rung below. Script-tag hosts register the same registry through the element's `toolViews` property (see Custom tool views from a script tag). |
|
|
145
|
-
|
|
146
|
-
Providers with the same session identity — `publishableKey`, `baseUrl`,
|
|
147
|
-
and whether `getEndUserToken` is wired — share one live conversation,
|
|
148
|
-
even when they mount in separate React roots: every surface streams the
|
|
149
|
-
same turn. The conversation is released when the last such provider
|
|
150
|
-
unmounts. (A setup failure on that identity — a bad key, a disallowed
|
|
151
|
-
origin — therefore surfaces on all of them at once.)
|
|
152
|
-
|
|
153
|
-
### Actions
|
|
154
|
-
|
|
155
|
-
When your teaflask actions catalog grants the assistant real API calls,
|
|
156
|
-
the `actionsAdapter` prop is how they execute — in this page, in the
|
|
157
|
-
user's own session, so the assistant can do nothing the user couldn't.
|
|
158
|
-
Each request arrives as a server-built `ActionIntent` (`{action: {slug,
|
|
159
|
-
title}, method, pathTemplate, pathParams, query, body?}`) — never model
|
|
160
|
-
prose — and the adapter never needs per-endpoint wiring. Three flavors:
|
|
161
|
-
|
|
162
|
-
```tsx
|
|
163
|
-
// Session-cookie APIs: the package assembles the URL and fetches with
|
|
164
|
-
// credentials included.
|
|
165
|
-
const actionsAdapter = {
|
|
166
|
-
kind: "cookies",
|
|
167
|
-
baseUrl: "https://api.your-domain.com",
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
// Token-auth APIs: answer the headers your API expects, per action.
|
|
171
|
-
const actionsAdapter = {
|
|
172
|
-
kind: "headers",
|
|
173
|
-
baseUrl: "https://api.your-domain.com",
|
|
174
|
-
getHeaders: () => ({ Authorization: `Bearer ${yourAccessToken()}` }),
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
// Full control: your own request wrapper receives the whole intent and
|
|
178
|
-
// returns the response body (throw on failure, as API clients already do).
|
|
179
|
-
const actionsAdapter = {
|
|
180
|
-
kind: "request",
|
|
181
|
-
execute: (intent) =>
|
|
182
|
-
yourApiClient(pathOf(intent), {
|
|
183
|
-
method: intent.method,
|
|
184
|
-
params: intent.query,
|
|
185
|
-
data: intent.body,
|
|
186
|
-
}),
|
|
187
|
-
};
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
The teaflask dashboard's Actions setup card generates the exact snippet
|
|
191
|
-
for your repo (including a detected API client, when there is one).
|
|
192
|
-
|
|
193
|
-
### Custom tool views
|
|
194
|
-
|
|
195
|
-
When the built-in rendering isn't enough for a tool you own, register
|
|
196
|
-
your own view for it. This is conventional trusted application code:
|
|
197
|
-
adapters you compiled and deployed in your bundle, registered through
|
|
198
|
-
the provider prop — **no JavaScript ever rides the wire**. A view is a
|
|
199
|
-
presentation of a tool call, not an approval mechanism: it receives the
|
|
200
|
-
recorded call and the painted theme, and nothing else.
|
|
201
|
-
|
|
202
|
-
```tsx
|
|
203
|
-
import {
|
|
204
|
-
reactToolView,
|
|
205
|
-
type ToolViewProps,
|
|
206
|
-
type ToolViewRegistry,
|
|
207
|
-
} from "@teaflask/assistant";
|
|
208
|
-
|
|
209
|
-
// Module scope, not inline in JSX — the registry is read by identity
|
|
210
|
-
// and the mount slot keys the adapter lifecycle on adapter identity.
|
|
211
|
-
function OrderReview({ call, context }: ToolViewProps) {
|
|
212
|
-
return (
|
|
213
|
-
<div>
|
|
214
|
-
<strong>Order review</strong>
|
|
215
|
-
{call.status === "output-available" ? <OrderLines /> : null}
|
|
216
|
-
<span>{context.themeMode === "dark" ? "🌙" : "☀️"}</span>
|
|
217
|
-
</div>
|
|
218
|
-
);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
const toolViews: ToolViewRegistry = {
|
|
222
|
-
// Rung 1: the opaque key your backend's display annotation names.
|
|
223
|
-
"acme.order-review": { version: 1, view: reactToolView(OrderReview) },
|
|
224
|
-
// Rung 2: your exact tool name — no backend annotation needed.
|
|
225
|
-
acme__order_lookup: { version: 1, view: reactToolView(OrderReview) },
|
|
226
|
-
};
|
|
227
|
-
|
|
228
|
-
<TeaflaskAssistant publishableKey="pk_live_…" toolViews={toolViews} />;
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
**Registering by action slug.** A catalog action mounts as the tool
|
|
232
|
-
`action__{slug}`, where the slug is what the Actions page shows. Write
|
|
233
|
-
the registry in slugs and let the package add the prefix:
|
|
234
|
-
|
|
235
|
-
```tsx
|
|
236
|
-
import { actionToolViews, reactToolView } from "@teaflask/assistant";
|
|
237
|
-
|
|
238
|
-
const toolViews = {
|
|
239
|
-
...actionToolViews({
|
|
240
|
-
"get-doc": { version: 1, view: reactToolView(GetDocView) },
|
|
241
|
-
}),
|
|
242
|
-
acme__order_lookup: { version: 1, view: reactToolView(OrderLookup) },
|
|
243
|
-
};
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
The action's page also renders copy-pasteable `Args` / `Result` types
|
|
247
|
-
for its schemas, so a typed view is `ToolViewProps<GetDocArgs, GetDocResult>`.
|
|
248
|
-
|
|
249
|
-
**What your view inherits.** The mount node carries the row's compact
|
|
250
|
-
text size, and the widget's font and foreground colour cascade into it:
|
|
251
|
-
set no font, size or colour of your own and the view reads as the row.
|
|
252
|
-
The package exports the built-ins' own vocabulary for re-use —
|
|
253
|
-
`settledOutcomeNoteOf(call)` (the not-run sentence per settle),
|
|
254
|
-
`actionEnvelopeOf(resultText)` (an action's HTTP status and body),
|
|
255
|
-
`actionFailureOf(errorText)` (a failed action's message and, when the
|
|
256
|
-
API supplied it, its status, code and per-field problems), and the
|
|
257
|
-
`pane` / `note` DOM primitives for vanilla adapters.
|
|
258
|
-
|
|
259
|
-
**The resolution ladder.** One view per call, resolved once, in a fixed
|
|
260
|
-
precedence; every degraded case is simply the rung below:
|
|
261
|
-
|
|
262
|
-
1. your registry, by the wire annotation's exact `{key, version}`
|
|
263
|
-
(`display.view = {key: "acme.order-review", version: 1}`);
|
|
264
|
-
2. your registry, by exact tool name — naming your own tool is your own
|
|
265
|
-
act, and it beats rung 3 so you can re-skin a tool teaflask ships;
|
|
266
|
-
3. package built-ins, under the reserved `teaflask.*` key namespace —
|
|
267
|
-
`teaflask.action` (every catalog action), `teaflask.command`,
|
|
268
|
-
`teaflask.file-edit`, `teaflask.docs-search` and `teaflask.questions`
|
|
269
|
-
(the recorded question set). A `teaflask.*` key never resolves from
|
|
270
|
-
YOUR registry — tool output can name a key, but it can never name a
|
|
271
|
-
privileged view or resolve anything your bundle didn't compile in;
|
|
272
|
-
4. the package default — a bounded, deterministic reading of the call's
|
|
273
|
-
arguments, the slot's own terminal: a registered view that throws
|
|
274
|
-
advances to the rung below and terminally lands here. Views mount in
|
|
275
|
-
the row's body for the call's whole lifecycle; a call with no
|
|
276
|
-
registered view keeps the row's quiet `Input:` pane instead — an
|
|
277
|
-
unknown tool never grows an inferred result card.
|
|
278
|
-
|
|
279
|
-
**Two authoring forms, one contract.** The canonical form is an
|
|
280
|
-
imperative adapter, so non-React hosts are first-class:
|
|
281
|
-
|
|
282
|
-
```ts
|
|
283
|
-
const vanillaView: ToolViewAdapter = {
|
|
284
|
-
mount(container, props) {
|
|
285
|
-
const el = document.createElement("div");
|
|
286
|
-
render(el, props); // your own code, any framework or none
|
|
287
|
-
container.appendChild(el);
|
|
288
|
-
return {
|
|
289
|
-
update(next) {
|
|
290
|
-
render(el, next); // called on prop change — never a remount,
|
|
291
|
-
}, // so your view's local UI state survives
|
|
292
|
-
destroy() {
|
|
293
|
-
el.remove();
|
|
294
|
-
},
|
|
295
|
-
};
|
|
296
|
-
},
|
|
297
|
-
};
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
`reactToolView(Component)` is thin sugar producing the same adapter
|
|
301
|
-
from a React component; `update` reconciles in place, so component
|
|
302
|
-
state survives a status advance. The same lifecycle serves the icon
|
|
303
|
-
role (below).
|
|
304
|
-
|
|
305
|
-
**The props contract.** A view receives exactly
|
|
306
|
-
`ToolViewProps {call, context}` and nothing else:
|
|
307
|
-
|
|
308
|
-
- `call` — the recorded tool call: `toolName`, `toolCallId`, `status`
|
|
309
|
-
(`ToolCallState`), `awaitingDecision`, parsed `args`, and when a
|
|
310
|
-
result has landed `result` (the tool-result/v1 envelope unwrapped; any
|
|
311
|
-
other JSON document passed through) beside the verbatim `resultText`.
|
|
312
|
-
A size-capped result is honestly flagged `truncated` with `result`
|
|
313
|
-
withheld — never parsed into a complete-looking lie; `offloaded`,
|
|
314
|
-
`errorText`, and `refusalText` carry the other honest endings.
|
|
315
|
-
Views and **icons** both mount for the call's whole lifecycle and see
|
|
316
|
-
every field; on errored, denied (a member declined the approval),
|
|
317
|
-
cancelled, refused and offloaded settles the result stays withheld
|
|
318
|
-
(the wire's content on those paths is model-facing) while the row's
|
|
319
|
-
own package-owned panes — the Error line, the refusal reason, the
|
|
320
|
-
offloaded notice — still render outside the mount slot.
|
|
321
|
-
- `context.themeMode` — `"light" | "dark"`: whichever palette the
|
|
322
|
-
stylesheet actually paints, computed the way the CSS computes it. The
|
|
323
|
-
widget root's own `data-tf-theme` wins outright (`"light"` pins light
|
|
324
|
-
even under a dark ancestor; `"auto"` follows the OS preference); with
|
|
325
|
-
no attribute on the root, any ancestor's `"dark"` paints dark, while
|
|
326
|
-
`"light"`/`"auto"` on a non-root ancestor and any carrier inside the
|
|
327
|
-
root are inert — exactly the stylesheet's rules. Kept live and
|
|
328
|
-
paint-accurate: attribute flips (the provider's `mode` prop, or your
|
|
329
|
-
theme library writing `<html>` directly) and OS-preference changes
|
|
330
|
-
reach mounted views through `update`. If you theme dark purely through
|
|
331
|
-
`--tf-*` values, set `data-tf-theme` so views see it.
|
|
332
|
-
|
|
333
|
-
No auth tokens, no stores, no transport — and no `approve` or `deny`:
|
|
334
|
-
the absence of decision controls is the contract's point, not an
|
|
335
|
-
oversight.
|
|
336
|
-
|
|
337
|
-
**Icons.** A registration may carry a view, an icon, or both — one
|
|
338
|
-
registration, two roles. `icon: reactToolView(MyMark)` (or a vanilla
|
|
339
|
-
`IconAdapter`) replaces the operation mark's glyph and nothing else:
|
|
340
|
-
the mark's identity, state ink, and assistive state word stay
|
|
341
|
-
package-owned.
|
|
342
|
-
|
|
343
|
-
**What stays package-owned.** A view is a _reading_ inside the
|
|
344
|
-
package's frame — the frame's structure, spacing, and accessibility
|
|
345
|
-
stay ours. On the result row: the row line, status mark chrome and the
|
|
346
|
-
error/refusal/offloaded lines. There is no raw payload disclosure and
|
|
347
|
-
no package heading over your view: your view is the row's whole body,
|
|
348
|
-
and a call with no view gets the package's bounded argument reading.
|
|
349
|
-
|
|
350
|
-
**Compose the package's parts.** `ToolViewCard`, `ToolViewRow`,
|
|
351
|
-
`ToolViewFacts`, `ToolViewCaption`, `ToolViewBody`, `ToolViewBadge`,
|
|
352
|
-
`ToolViewScroll`, `ToolViewTitle`, `ToolViewNote` and `ToolViewBones` are the vocabulary
|
|
353
|
-
the built-ins paint with — a hairline card, list rows with a title and a
|
|
354
|
-
muted second line, property rows, a caption, a scrolling body, a
|
|
355
|
-
scrolling well for a long list, a badge, a note, skeleton lines. A view composed from them reads as one system with ours:
|
|
356
|
-
|
|
357
|
-
```tsx
|
|
358
|
-
function GetDocView({ call }: ToolViewProps<GetDocArgs, GetDocResult>) {
|
|
359
|
-
if (call.status !== "output-available" || call.result === undefined) {
|
|
360
|
-
return <ToolViewBones lines={3} />;
|
|
361
|
-
}
|
|
362
|
-
return (
|
|
363
|
-
<ToolViewCard>
|
|
364
|
-
<ToolViewRow
|
|
365
|
-
title={call.result.title}
|
|
366
|
-
secondary={call.result.slug}
|
|
367
|
-
trailing={<ToolViewBadge>Published</ToolViewBadge>}
|
|
368
|
-
href={`/docs/${call.result.id}`}
|
|
369
|
-
/>
|
|
370
|
-
<ToolViewBody label="Document">{/* your renderer */}</ToolViewBody>
|
|
371
|
-
</ToolViewCard>
|
|
372
|
-
);
|
|
373
|
-
}
|
|
51
|
+
<TeaflaskAssistant publishableKey="pk_live_…" />;
|
|
374
52
|
```
|
|
375
53
|
|
|
376
|
-
**
|
|
377
|
-
consent copy and a mechanically spelled tool name, and renders nothing
|
|
378
|
-
argument-derived — the call's own transcript row, which a pending
|
|
379
|
-
decision holds open, carries the request, and a Show-request affordance
|
|
380
|
-
scrolls to it. It is not replaceable by host code: a view presents a tool
|
|
381
|
-
call and never owns its decision (`docs/tool-views.md`).
|
|
382
|
-
|
|
383
|
-
**Failure is safe and observable.** A missing registration, an unknown
|
|
384
|
-
key, a version mismatch, or a view that throws all land on the rung
|
|
385
|
-
below — the transcript never breaks. Throws are reported to your
|
|
386
|
-
`onError` observer and named on the console (`[teaflask-assistant] The
|
|
387
|
-
tool view "acme.order-review" threw…`); end users see the next
|
|
388
|
-
resolution, not a stack trace, and a flaky view never flickers back in.
|
|
389
|
-
|
|
390
|
-
**Versioning.** The entry's `version` is your presentation contract
|
|
391
|
-
with your backend, not the package's semver: when the meaning of your
|
|
392
|
-
view's data changes, bump the annotation's version and ship the
|
|
393
|
-
matching adapter — rungs 1 and 3 require an exact match in both
|
|
394
|
-
directions, so version drift renders the rung below instead of a
|
|
395
|
-
half-broken view. (A tool-name registration, rung 2, has no wire
|
|
396
|
-
version to match.) Keep keys namespaced (`yourco.thing`) and stable;
|
|
397
|
-
`teaflask.*` is reserved.
|
|
398
|
-
|
|
399
|
-
**Testing your view.** It's just an adapter (or a React component
|
|
400
|
-
taking `ToolViewProps`) — construct the props literally and drive it
|
|
401
|
-
with your own tooling; no package harness required:
|
|
402
|
-
|
|
403
|
-
```tsx
|
|
404
|
-
const instance = reactToolView(OrderReview).mount(container, {
|
|
405
|
-
call: {
|
|
406
|
-
toolName: "acme__order_lookup",
|
|
407
|
-
toolCallId: "t1",
|
|
408
|
-
status: "output-available",
|
|
409
|
-
awaitingDecision: false,
|
|
410
|
-
args: { order_id: 7 },
|
|
411
|
-
},
|
|
412
|
-
context: { themeMode: "light" },
|
|
413
|
-
});
|
|
414
|
-
```
|
|
415
|
-
|
|
416
|
-
**Script-tag hosts.** The elements expose the identical registry as
|
|
417
|
-
their `toolViews` JS property — no React, no npm install, no build
|
|
418
|
-
step. An adapter is your own code running in your own page, exactly
|
|
419
|
-
like a React registration; executable code still never rides the wire.
|
|
420
|
-
Hosts that register nothing keep the built-in rendering at full
|
|
421
|
-
fidelity. See _Custom tool views from a script tag_ under the script-tag
|
|
422
|
-
section — especially its Shadow DOM warning.
|
|
423
|
-
|
|
424
|
-
### Command palette
|
|
425
|
-
|
|
426
|
-
`AssistantPalette` is the same conversation in a cmd-k-style overlay —
|
|
427
|
-
current thread only, no history list. `<TeaflaskAssistant/>` mounts and
|
|
428
|
-
triggers it for you; use it directly when you want your own trigger and
|
|
429
|
-
open state — it is controlled:
|
|
430
|
-
|
|
431
|
-
```tsx
|
|
432
|
-
import {
|
|
433
|
-
TeaflaskAssistantProvider,
|
|
434
|
-
AssistantPalette,
|
|
435
|
-
} from "@teaflask/assistant";
|
|
436
|
-
|
|
437
|
-
function App() {
|
|
438
|
-
const [open, setOpen] = useState(false);
|
|
439
|
-
|
|
440
|
-
useEffect(() => {
|
|
441
|
-
function openOnCmdK(event: KeyboardEvent) {
|
|
442
|
-
if (event.key === "k" && (event.metaKey || event.ctrlKey)) {
|
|
443
|
-
event.preventDefault();
|
|
444
|
-
setOpen(true);
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
document.addEventListener("keydown", openOnCmdK);
|
|
448
|
-
return () => {
|
|
449
|
-
document.removeEventListener("keydown", openOnCmdK);
|
|
450
|
-
};
|
|
451
|
-
}, []);
|
|
452
|
-
|
|
453
|
-
return (
|
|
454
|
-
<TeaflaskAssistantProvider publishableKey="pk_test_…">
|
|
455
|
-
<AssistantPalette open={open} onOpenChange={setOpen} />
|
|
456
|
-
</TeaflaskAssistantProvider>
|
|
457
|
-
);
|
|
458
|
-
}
|
|
459
|
-
```
|
|
460
|
-
|
|
461
|
-
Worth knowing:
|
|
462
|
-
|
|
463
|
-
- Surfaces under one provider share ONE live conversation — one stream,
|
|
464
|
-
one approval inbox, one execution driver. Mount both, talk on one, and
|
|
465
|
-
the other shows the same thread as it streams. Opening the palette
|
|
466
|
-
over the page is a first-class handoff: only the newest surface drives
|
|
467
|
-
the transcript (the other stands down cleanly, so the shared agent is
|
|
468
|
-
never connected twice), and closing it hands the stream back with a
|
|
469
|
-
full replay.
|
|
470
|
-
- It renders where you mount it (the browser's top layer lifts it above
|
|
471
|
-
the page — no portal), so `--tf-*` variables and `data-tf-theme` on
|
|
472
|
-
any ancestor theme it exactly like `AssistantPage`. Mount it near your
|
|
473
|
-
app root.
|
|
474
|
-
- Esc and a click on the backdrop close it; the page behind is inert
|
|
475
|
-
while it is open, but its scroll position is never touched. One
|
|
476
|
-
precedence rule: while a turn is streaming and focus is in the
|
|
477
|
-
composer, the first Esc stops the answer instead — a second Esc during
|
|
478
|
-
"Stopping…", or any Esc while idle, closes the surface as before, and
|
|
479
|
-
the backdrop always closes it.
|
|
480
|
-
- Closing mid-answer does NOT drop the turn: while a turn is queued or
|
|
481
|
-
working the engine keeps a headless stream (and keeps executing) until
|
|
482
|
-
the turn settles or parks; an idle or parked thread with no surface
|
|
483
|
-
mounted holds no connection. Reopening replays the conversation in
|
|
484
|
-
full — including whatever streamed while the palette was closed.
|
|
485
|
-
|
|
486
|
-
### The activity feed
|
|
487
|
-
|
|
488
|
-
`useAssistantActivity()` is presence without a transcript: whether the
|
|
489
|
-
assistant is busy, the newest turn's status, how many approvals await a
|
|
490
|
-
human, and how the last turn ended (with its turn id, so a doorbell can
|
|
491
|
-
tell two identical failures apart). Any component under the provider can
|
|
492
|
-
subscribe:
|
|
493
|
-
|
|
494
|
-
```tsx
|
|
495
|
-
import {
|
|
496
|
-
TeaflaskAssistantProvider,
|
|
497
|
-
useAssistantActivity,
|
|
498
|
-
} from "@teaflask/assistant";
|
|
499
|
-
|
|
500
|
-
function AssistantPulse() {
|
|
501
|
-
const activity = useAssistantActivity();
|
|
502
|
-
return activity.busy ? <span data-busy /> : null;
|
|
503
|
-
}
|
|
504
|
-
```
|
|
505
|
-
|
|
506
|
-
A surface that renders ONLY presence should import from
|
|
507
|
-
`@teaflask/assistant/activity` instead — same provider, same hook, but
|
|
508
|
-
the import graph provably excludes the transcript, the markdown/renderer stack, and
|
|
509
|
-
their stylesheets (measured 404,921 B minified with dependencies, React
|
|
510
|
-
external, on 2026-09-19; a mechanical tripwire in
|
|
511
|
-
`tests/bundle-closure.test.ts` holds it under 420,000 B and prints the
|
|
512
|
-
figure on every run):
|
|
513
|
-
|
|
514
|
-
```tsx
|
|
515
|
-
import {
|
|
516
|
-
TeaflaskAssistantProvider,
|
|
517
|
-
useAssistantActivity,
|
|
518
|
-
} from "@teaflask/assistant/activity";
|
|
519
|
-
```
|
|
520
|
-
|
|
521
|
-
### The transcript projection
|
|
522
|
-
|
|
523
|
-
`@teaflask/assistant/transcript` is the transcript's wire-agnostic
|
|
524
|
-
projection layer for hosts that render their own transcript composition:
|
|
525
|
-
`transcriptRowsOf` (plain AG-UI messages plus a `MarkerAnchorsSnapshot`
|
|
526
|
-
in, a flat `TranscriptRow` list out), the anchor recorder families
|
|
527
|
-
(display, error, cancel, refusal, decision, denial — each an `EMPTY_*`
|
|
528
|
-
constant, an idempotent merge and a recorder; the merges are
|
|
529
|
-
`withTool*Anchored`, except denial's `withToolDenialMarkerFolded` over
|
|
530
|
-
its ledger), the
|
|
531
|
-
messages/stream-error wire taps, the subagent grouping and roster
|
|
532
|
-
helpers, and small presentation leaves (`prettyPrintParameters`,
|
|
533
|
-
`humanFileSize`).
|
|
534
|
-
|
|
535
|
-
A scope note on the snapshot: `MarkerAnchorsSnapshot` has fifteen anchor
|
|
536
|
-
fields, and this entry ships recorders for exactly seven families — the
|
|
537
|
-
display/error/cancel/refusal surface the dashboard's run viewer wires,
|
|
538
|
-
the decision family (the durable "a member decision rode this call"
|
|
539
|
-
record the placement holds read) and the denial family (the two approval
|
|
540
|
-
markers joined into the state ladder's rung that outranks the wire's
|
|
541
|
-
cancelled stamp) — those two snapshot fields are optional, and an absent
|
|
542
|
-
field reads as empty — and the string-receipt family
|
|
543
|
-
(`receiptMarkerRecorder`, which feeds `turnFailedAnchors`). The other
|
|
544
|
-
eight (resume, delivery, offload, schema, block-timing, turn-usage, and
|
|
545
|
-
the two memory families) can be passed empty (`new Map()` / `new Set()`
|
|
546
|
-
per field; the corresponding rows and severance reads simply don't light
|
|
547
|
-
up) but cannot be populated from this entry — their recorders remain
|
|
548
|
-
future additive work on this surface. A host that renders over the live
|
|
549
|
-
store instead of its own wire never needs them: the store populates
|
|
550
|
-
every anchor family itself, and
|
|
551
|
-
[`useTranscript()`](#bring-your-own-frontend) reads the result. The
|
|
552
|
-
entry is React-free and transport-free, and it re-exports the AG-UI
|
|
553
|
-
names it speaks (`AbstractAgent`, `HttpAgent`, `AgentSubscriber`,
|
|
554
|
-
`Message`, `BaseEvent`, `RunAgentInput`) so a host never takes its own
|
|
555
|
-
dependency on the `@ag-ui` packages. A host that subclasses `HttpAgent`
|
|
556
|
-
itself pipes its `run()` through `liftToolOutcome`: the 1.0 client
|
|
557
|
-
strips the wire's TOOL_CALL_RESULT extras (`error`, `refused`,
|
|
558
|
-
`cancelled`, `truncated`, `offloaded`) from the top level before any
|
|
559
|
-
subscriber, and the lift moves them under
|
|
560
|
-
`metadata.teaflask.toolOutcome`, where `toolOutcomeOf` and the anchor
|
|
561
|
-
recorders read them. A subclass that does not pipe `run()` through the
|
|
562
|
-
lift loses every one of the five before the recorders see them:
|
|
563
|
-
|
|
564
|
-
```ts
|
|
565
|
-
import {
|
|
566
|
-
HttpAgent,
|
|
567
|
-
liftToolOutcome,
|
|
568
|
-
messagesRecorder,
|
|
569
|
-
toolErrorRecorder,
|
|
570
|
-
transcriptRowsOf,
|
|
571
|
-
type Message,
|
|
572
|
-
type RunAgentInput,
|
|
573
|
-
} from "@teaflask/assistant/transcript";
|
|
574
|
-
|
|
575
|
-
class MyStreamAgent extends HttpAgent {
|
|
576
|
-
override run(input: RunAgentInput) {
|
|
577
|
-
return liftToolOutcome(super.run(input));
|
|
578
|
-
}
|
|
579
|
-
}
|
|
580
|
-
```
|
|
581
|
-
|
|
582
|
-
One more thing a host's install has to hold: `@ag-ui/core/schemas` and
|
|
583
|
-
`@ag-ui/client` must resolve the same `zod` module instance, because the
|
|
584
|
-
client checks the schemas it imports with `instanceof` against its own
|
|
585
|
-
copy. The client declares `zod ^3.25.76`; a host whose root already holds
|
|
586
|
-
zod 4 should pin the client's and proto's zod onto that root copy with an
|
|
587
|
-
npm `overrides` entry (`"@ag-ui/client": { "zod": "$zod" }`,
|
|
588
|
-
`"@ag-ui/proto": { "zod": "$zod" }`), which is what the teaflask dashboard
|
|
589
|
-
does, or hold a single zod 3 at the root as this package's own dev pin
|
|
590
|
-
does. Two zod copies under one AG-UI stack strip or accept events by
|
|
591
|
-
accident.
|
|
592
|
-
|
|
593
|
-
### `./transcript-ui`
|
|
594
|
-
|
|
595
|
-
The transcript surface itself: `<AssistantTranscript/>`, the one
|
|
596
|
-
component the package's own `Transcript`, the dashboard's agent-run
|
|
597
|
-
viewer, and the playground all bind over. A React entry deliberately
|
|
598
|
-
separate from the React-free `./transcript` projection — a host that
|
|
599
|
-
only projects rows never pays for React. Two source modes as a
|
|
600
|
-
discriminated union: **agent** (`agent`, `onStreamError`, optional
|
|
601
|
-
`markers`/`markerBoundaries`/`resumeAnchoredIds`/`deliveryAnchoredIds`/`turnAttachments`
|
|
602
|
-
— the component owns the six-recorder subscription, connect on mount,
|
|
603
|
-
unsubscribe-then-abort on teardown, and the block projection, invoking
|
|
604
|
-
the host's marker composite before and after every message block) and
|
|
605
|
-
**rows** (`rows`, plus `cards`/`live`/`turnOpen`/`decisionSurfacesInShelf`
|
|
606
|
-
— the store path, a straight pass-through). Five host slots — four
|
|
607
|
-
mounted inside the package's slot boundary with the package rendering
|
|
608
|
-
as its fallback, and `input` deliberately unbounded so decision-capable
|
|
609
|
-
chrome is never latched behind a fallback (a composer throw propagates
|
|
610
|
-
to the host's own boundary) — every mandatory frame element outside
|
|
611
|
-
them all:
|
|
612
|
-
`messageView` (row content for
|
|
613
|
-
user/assistant-text/subagent-group/subagent-delivery; null falls
|
|
614
|
-
through per row), `toolRow` (a whole-row seam receiving the durable row
|
|
615
|
-
beside the resolved view; the settled-ask receipt collapse, decision
|
|
616
|
-
surfaces, and the frame's status word stay package-owned), `input`,
|
|
617
|
-
`welcomeScreen` (withheld until the first snapshot in agent mode), and
|
|
618
|
-
`threadList` (chrome above the log, default empty). There are
|
|
619
|
-
deliberately no `row`/`icon`/`artifact` renderer slots — per-tool
|
|
620
|
-
presentation is the tool-view registry's (`docs/tool-views.md`). The
|
|
621
|
-
entry also ships `AgentIdentityMark` and the slot/row types a binder
|
|
622
|
-
types its fills against.
|
|
623
|
-
|
|
624
|
-
### Bring your own frontend
|
|
625
|
-
|
|
626
|
-
`@teaflask/assistant/headless` is the live-session entry with none of
|
|
627
|
-
the package chrome: mount `<TeaflaskAssistantProvider>` alone, DRIVE the
|
|
628
|
-
conversation from its hooks — send and stop turns, switch and start
|
|
629
|
-
threads, answer approvals and question sets, observe failures and
|
|
630
|
-
recover — and RENDER the assistant's replies from the transcript read
|
|
631
|
-
surface. The entry exports bindings, never the serving machinery — the
|
|
632
|
-
conversation store, the token session and the persistence layer stay
|
|
633
|
-
private.
|
|
634
|
-
|
|
635
|
-
The replies come from `useTranscript()`: the streamed message list and
|
|
636
|
-
the marker anchors, projected through the same `transcriptRowsOf`
|
|
637
|
-
derivation the packaged chrome renders — identical rows, one
|
|
638
|
-
composition. Mounting the hook registers transcript presence with the
|
|
639
|
-
store; presence is what GUARANTEES the epoch connects, and it arms the
|
|
640
|
-
idle re-read. A lease-less store connects only while the newest turn is
|
|
641
|
-
queued or working (on a bounded budget) — and any connect, leased or
|
|
642
|
-
not, is the same full replay: history first, then the live tail. So a
|
|
643
|
-
drive-only host that skips the hook still streams and fully paints the
|
|
644
|
-
turns it drives, approvals and failure sentences included; what it loses
|
|
645
|
-
is the guarantee — a thread with no live turn to connect for (a reopened
|
|
646
|
-
settled thread) stays unconnected and its messages stay empty. Hosts
|
|
647
|
-
that want a different projection get the four raw reads (`messages`,
|
|
648
|
-
`markerAnchors`, `activity`, `turnMeta`) on the same surface, shaped so
|
|
649
|
-
the re-exported
|
|
650
|
-
`transcriptRowsOf(messages, markerAnchors, running, turnMeta)`
|
|
651
|
-
type-checks verbatim.
|
|
652
|
-
|
|
653
|
-
- `useTranscript()` — the transcript read surface: `displayRows` (the
|
|
654
|
-
projected row list with the composer's optimistic echo already
|
|
655
|
-
applied — render this; painting your own echo beside it would double
|
|
656
|
-
the bubble), `rows` (the pure projection, pre-echo), the `running` /
|
|
657
|
-
`turnOpen` / `decisionsPending` run-state facts the rows key on, and
|
|
658
|
-
the raw `messages` / `markerAnchors` / `activity` / `turnMeta` reads.
|
|
659
|
-
`running` is false for the send round trip (no turn exists until the
|
|
660
|
-
send POST returns), so join the composer's `pendingSend` into any
|
|
661
|
-
working indicator, as the package chrome does.
|
|
662
|
-
- `useAssistantConversation()` — the conversation: the active thread,
|
|
663
|
-
the thread list, send/turn failure sentences, the interruption banner
|
|
664
|
-
fact, `retryStream`, `refreshConversation`, `openThread`,
|
|
665
|
-
`startNewConversation`.
|
|
666
|
-
- `useConversation()` — the composer contract: `sendMessage`, `busy`,
|
|
667
|
-
`stopTurn`, the model pick, and the draft/attachment setters. The
|
|
668
|
-
per-keystroke `composerInput` rides its own cell; read it with the
|
|
669
|
-
exported `useCell`.
|
|
670
|
-
- `useApprovals()` — the pending approval cards plus `submitDecision`,
|
|
671
|
-
the same guarded submit path the packaged card uses (double submits
|
|
672
|
-
and stale cards are dropped with a reason, never double-sent).
|
|
673
|
-
- `useElicitations()` — the pending question sets, `submitQuestionAnswers`,
|
|
674
|
-
`cancelQuestionSet`, and the store-owned drafts.
|
|
675
|
-
|
|
676
|
-
```tsx
|
|
677
|
-
import {
|
|
678
|
-
TeaflaskAssistantProvider,
|
|
679
|
-
useAssistantConversation,
|
|
680
|
-
useConversation,
|
|
681
|
-
useTranscript,
|
|
682
|
-
} from "@teaflask/assistant/headless";
|
|
683
|
-
|
|
684
|
-
function MyChat() {
|
|
685
|
-
const { turnFailure } = useAssistantConversation();
|
|
686
|
-
const composer = useConversation();
|
|
687
|
-
const { displayRows, running } = useTranscript();
|
|
688
|
-
return (
|
|
689
|
-
<form
|
|
690
|
-
onSubmit={(event) => {
|
|
691
|
-
event.preventDefault();
|
|
692
|
-
const box = event.currentTarget.elements.namedItem("m");
|
|
693
|
-
void composer.sendMessage((box as HTMLTextAreaElement).value);
|
|
694
|
-
}}
|
|
695
|
-
>
|
|
696
|
-
<ol>
|
|
697
|
-
{displayRows.map((row) =>
|
|
698
|
-
row.kind === "user" || row.kind === "assistant-text" ? (
|
|
699
|
-
<li key={row.key}>{row.text}</li>
|
|
700
|
-
) : null,
|
|
701
|
-
)}
|
|
702
|
-
</ol>
|
|
703
|
-
{running || composer.pendingSend ? <p>Working…</p> : null}
|
|
704
|
-
{turnFailure !== null ? <p role="alert">{turnFailure}</p> : null}
|
|
705
|
-
<textarea name="m" disabled={composer.busy} />
|
|
706
|
-
</form>
|
|
707
|
-
);
|
|
708
|
-
}
|
|
709
|
-
|
|
710
|
-
export function App() {
|
|
711
|
-
return (
|
|
712
|
-
<TeaflaskAssistantProvider publishableKey="pk_live_…">
|
|
713
|
-
<MyChat />
|
|
714
|
-
</TeaflaskAssistantProvider>
|
|
715
|
-
);
|
|
716
|
-
}
|
|
717
|
-
```
|
|
718
|
-
|
|
719
|
-
The entry's static import graph is mechanically held chrome-free
|
|
720
|
-
(`tests/bundle-closure.test.ts`): a host that brings its own frontend
|
|
721
|
-
never pays for ours. It does carry the live session (store and
|
|
722
|
-
transport) — for a render-only projection over your own wire, use
|
|
723
|
-
[the transcript projection](#the-transcript-projection) instead. A
|
|
724
|
-
headless mount needs no stylesheet; `styles.css` styles only the
|
|
725
|
-
package's own chrome.
|
|
726
|
-
|
|
727
|
-
### Sign-out
|
|
728
|
-
|
|
729
|
-
Call `resetAssistant` in your sign-out handler so the next visitor on
|
|
730
|
-
the browser starts clean. It is pure storage — it works on pages where
|
|
731
|
-
the assistant isn't mounted:
|
|
732
|
-
|
|
733
|
-
```ts
|
|
734
|
-
import { resetAssistant } from "@teaflask/assistant";
|
|
735
|
-
|
|
736
|
-
resetAssistant({ publishableKey: "pk_test_…" });
|
|
737
|
-
```
|
|
738
|
-
|
|
739
|
-
A bring-your-own-frontend host imports the same function from
|
|
740
|
-
`@teaflask/assistant/headless` instead — importing the root barrel for
|
|
741
|
-
it would pull the package chrome into a bundle that exists to avoid it.
|
|
742
|
-
|
|
743
|
-
## Script tag (no React)
|
|
744
|
-
|
|
745
|
-
The second distribution: one script tag, any stack — Rails, Django,
|
|
746
|
-
Vue, WordPress, plain HTML. The element mounts the same React tree the
|
|
747
|
-
npm package ships into a shadow root, React bundled inside; the host
|
|
748
|
-
page never knows React is in there.
|
|
54
|
+
**Any other stack**, with a script tag
|
|
749
55
|
|
|
750
56
|
```html
|
|
751
57
|
<script
|
|
752
58
|
type="module"
|
|
753
59
|
src="https://app.teaflask.com/assistant/v1/assistant.js"
|
|
754
60
|
></script>
|
|
755
|
-
|
|
756
|
-
<teaflask-assistant publishable-key="pk_test_…"></teaflask-assistant>
|
|
61
|
+
<teaflask-assistant publishable-key="pk_live_…"></teaflask-assistant>
|
|
757
62
|
```
|
|
758
63
|
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
64
|
+
## What your agent can do
|
|
65
|
+
|
|
66
|
+
- **Take actions.** It calls your API on the user's behalf, with the user's own session. You set every action to Allow, Ask or Deny.
|
|
67
|
+
- **Follow your workflows.** Write a procedure once, like how refunds work or when to escalate, and the agent follows it.
|
|
68
|
+
- **Guide users around your app.** It takes people to the right page and highlights what to click.
|
|
69
|
+
- **Fill in forms.** It fills the fields; the user reviews and submits.
|
|
70
|
+
- **Hand off long-running work.** It sends complex, multi-step jobs to background sub-agents and picks up their results.
|
|
71
|
+
- **Answer from your docs.** It answers from the documentation you release, so what it tells users matches your product.
|
|
72
|
+
- **Remember.** It keeps facts across conversations, for your whole organization or for each user.
|
|
73
|
+
|
|
74
|
+
You choose which of these each agent gets. [How Teaflask works →](https://docs.teaflask.com/fundamentals)
|
|
75
|
+
|
|
76
|
+
## Batteries included
|
|
77
|
+
|
|
78
|
+
Everything you'd otherwise build by hand to put an agent in front of your users:
|
|
79
|
+
|
|
80
|
+
- Real-time streaming that resumes mid-sentence after a dropped connection
|
|
81
|
+
- Durable runs that pick up mid-step after a crash, a deploy, or an approval that takes days
|
|
82
|
+
- Approvals right in the conversation, before an action runs
|
|
83
|
+
- Live progress for actions and sub-agents
|
|
84
|
+
- [Tool views](https://docs.teaflask.com/tool-views): show a result as your own component, like an order card instead of JSON
|
|
85
|
+
- Four [surfaces](https://docs.teaflask.com/surfaces) for one conversation: a corner widget, a sidebar, a ⌘K command palette, and a full-page assistant
|
|
86
|
+
- A polished default design in light and dark, restyled with [theme tokens](https://docs.teaflask.com/appearance) and isolated from your CSS
|
|
87
|
+
- Docs that stay true: every claim checked against your code, and a fix proposed when the code moves
|
|
88
|
+
- [Skills](https://docs.teaflask.com/skills), [memory](https://docs.teaflask.com/memory), and a [sandboxed workspace](https://docs.teaflask.com/workspace) the agent can use
|
|
89
|
+
- The model of your choice, on your own provider key or your user's own plan
|
|
90
|
+
- Conversation history across devices, file attachments, and markdown with code highlighting
|
|
91
|
+
- Anonymous visitors or [signed-in users](https://docs.teaflask.com/identity)
|
|
92
|
+
- Every conversation, action and approval recorded for review
|
|
93
|
+
- Keyboard-complete, screen-reader friendly, and respects reduced motion
|
|
94
|
+
- A React component, a script tag for any other stack, or a headless entry point for your own UI
|
|
95
|
+
|
|
96
|
+
<table>
|
|
97
|
+
<tr>
|
|
98
|
+
<td width="50%" valign="top">
|
|
99
|
+
<img src="https://raw.githubusercontent.com/teaflask/assistant/main/images/tool-view.png" alt="Tool views: your own components, right in the conversation">
|
|
100
|
+
<p align="center"><sub>Tool views: your own components, right in the conversation</sub></p>
|
|
101
|
+
</td>
|
|
102
|
+
<td width="50%" valign="top">
|
|
103
|
+
<img src="https://raw.githubusercontent.com/teaflask/assistant/main/images/sub-agents.png" alt="Sub-agents work in parallel. Open one to watch it live">
|
|
104
|
+
<p align="center"><sub>Sub-agents work in parallel. Open one to watch it live</sub></p>
|
|
105
|
+
</td>
|
|
106
|
+
</tr>
|
|
107
|
+
<tr>
|
|
108
|
+
<td width="50%" valign="top">
|
|
109
|
+
<img src="https://raw.githubusercontent.com/teaflask/assistant/main/images/approval.png" alt="An approval before anything changes">
|
|
110
|
+
<p align="center"><sub>An approval before anything changes</sub></p>
|
|
111
|
+
</td>
|
|
112
|
+
<td width="50%" valign="top">
|
|
113
|
+
<img src="https://raw.githubusercontent.com/teaflask/assistant/main/images/form-fill.png" alt="It fills in your forms and points at what to press">
|
|
114
|
+
<p align="center"><sub>It fills in your forms and points at what to press</sub></p>
|
|
115
|
+
</td>
|
|
116
|
+
</tr>
|
|
117
|
+
</table>
|
|
118
|
+
|
|
119
|
+
## Getting started
|
|
120
|
+
|
|
121
|
+
You need a Teaflask agent and its publishable key. The [getting started guide](https://docs.teaflask.com/getting-started) takes you from connecting your codebase to a published agent. Then add the assistant to your app, once, in the layout that wraps every page.
|
|
122
|
+
|
|
123
|
+
### React
|
|
763
124
|
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
The full-page surface (`<AssistantPage/>` — the conversation with its
|
|
767
|
-
history disclosure) ships as a second tag in the same bundle; the one
|
|
768
|
-
script tag defines both.
|
|
769
|
-
|
|
770
|
-
```html
|
|
771
|
-
<div style="height: 600px">
|
|
772
|
-
<teaflask-assistant-page
|
|
773
|
-
publishable-key="pk_test_…"
|
|
774
|
-
heading="Acme Help"
|
|
775
|
-
></teaflask-assistant-page>
|
|
776
|
-
</div>
|
|
125
|
+
```sh
|
|
126
|
+
npm install @teaflask/assistant
|
|
777
127
|
```
|
|
778
128
|
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
Attributes are `publishable-key`, `base-url`, `mode`, plus the page's
|
|
784
|
-
own `heading` (the header's display name — the React prop is `title`,
|
|
785
|
-
but the global HTML `title` attribute would tooltip the whole surface,
|
|
786
|
-
so the attribute wears a different name) and `frameless` (drops the
|
|
787
|
-
card border and radius — a bare attribute or `"true"` enables,
|
|
788
|
-
`"false"` disables, anything else warns once and keeps the default).
|
|
789
|
-
The rich JS properties are the same seven as the widget's table below,
|
|
790
|
-
with identical null semantics; `suggestions` become the page's opening
|
|
791
|
-
prompts. The page has no companion, palette, or hotkey — pair it with
|
|
792
|
-
`<teaflask-assistant>` when you want those too.
|
|
793
|
-
|
|
794
|
-
**Same key, one live conversation.** Elements whose session identity
|
|
795
|
-
matches (publishable key, `base-url`, identity wiring) share one
|
|
796
|
-
conversation store even across their separate roots: a turn typed in
|
|
797
|
-
the widget streams into the open page, and the other way round. While
|
|
798
|
-
a page element is mounted, the widget's companion yields to it — the
|
|
799
|
-
same stance as the in-app pairing. The page body loads on demand,
|
|
800
|
-
exactly like the palette's transcript.
|
|
801
|
-
|
|
802
|
-
### Versioning
|
|
803
|
-
|
|
804
|
-
`/assistant/v1/assistant.js` is a **channel URL**, not a pinned one:
|
|
805
|
-
`v1` names the element's API compatibility channel, and it serves the
|
|
806
|
-
current build — cached five minutes, revalidated in the background —
|
|
807
|
-
so script-tag customers always run current code. That is the point of
|
|
808
|
-
this distribution, and its trade: **you cannot pin a version here.**
|
|
809
|
-
We serve one build at a time and don't keep historical ones, so there
|
|
810
|
-
is no exact-version URL to embed.
|
|
811
|
-
|
|
812
|
-
Version pinning is not offered on this channel. When this package ships
|
|
813
|
-
on npm, a lockfile install becomes the pinning route — an enterprise
|
|
814
|
-
change-control process, or a security review that fixes a reviewed
|
|
815
|
-
artifact, belongs there. Auto-update and pinning are the two halves of
|
|
816
|
-
why both distributions exist.
|
|
817
|
-
|
|
818
|
-
Breaking changes to the element's own API (attribute or property
|
|
819
|
-
names, mount semantics) ship as a new channel, `v2`, with `v1` kept
|
|
820
|
-
serving; the conversation contract underneath is versioned separately
|
|
821
|
-
and additively (`/serving/v1`). A new tag is additive —
|
|
822
|
-
`<teaflask-assistant-page>` rides `v1`.
|
|
823
|
-
|
|
824
|
-
### Attributes and properties
|
|
825
|
-
|
|
826
|
-
Strings ride attributes; anything richer is a JS property on the
|
|
827
|
-
element. Properties may be assigned before or after the script loads —
|
|
828
|
-
both work.
|
|
829
|
-
|
|
830
|
-
| Attribute | React prop equivalent |
|
|
831
|
-
| ---------------------------- | --------------------------------------- |
|
|
832
|
-
| `publishable-key` (required) | `publishableKey` |
|
|
833
|
-
| `base-url` | `baseUrl` |
|
|
834
|
-
| `mode` | `mode` (`"light" \| "dark" \| "auto"`) |
|
|
835
|
-
| `corner` | `corner` |
|
|
836
|
-
| `hotkey` | `hotkey` (the value `"false"` disables) |
|
|
837
|
-
| `companion-mark-src` | `companionMark` (an image URL) |
|
|
838
|
-
|
|
839
|
-
| Property | React prop equivalent |
|
|
840
|
-
| ----------------- | ----------------------------------------------------- |
|
|
841
|
-
| `onNavigate` | `onNavigate` (see Navigation) |
|
|
842
|
-
| `getEndUserToken` | `getEndUserToken` |
|
|
843
|
-
| `actionsAdapter` | `actionsAdapter` |
|
|
844
|
-
| `onError` | `onError` |
|
|
845
|
-
| `theme` | `theme` |
|
|
846
|
-
| `suggestions` | `suggestions` |
|
|
847
|
-
| `toolViews` | `toolViews` (see Custom tool views from a script tag) |
|
|
848
|
-
|
|
849
|
-
On the widget, `suggestions` left unset serves the opening prompts
|
|
850
|
-
authored on your organization's assistant — fetched at runtime and
|
|
851
|
-
matched to the page's path (longest path-prefix wins). Assigning any
|
|
852
|
-
value, even `[]`, overrides the served sets wholesale; there is no
|
|
853
|
-
merging. The path is read when the drawer opens, not subscribed: a
|
|
854
|
-
host that keeps the drawer open across client-side navigation shows
|
|
855
|
-
the set matched at open until the next re-render. The page element
|
|
856
|
-
keeps `suggestions` as its own explicit prop and never fetches.
|
|
857
|
-
|
|
858
|
-
`element.openPalette()` mirrors the React ref handle. Attribute changes
|
|
859
|
-
re-render in place; changing `publishable-key` or `base-url` rebuilds
|
|
860
|
-
the session on purpose.
|
|
861
|
-
|
|
862
|
-
Nothing type-checks a plain-JS host, so the element validates what a
|
|
863
|
-
compiler would have caught and says so in the console rather than
|
|
864
|
-
failing quietly: an invalid `mode` or `corner` warns once and takes the
|
|
865
|
-
default, and an `actionsAdapter` whose `kind` isn't one of `cookies`,
|
|
866
|
-
`headers`, `request` is **refused** — the assistant reports that this
|
|
867
|
-
page cannot perform actions, instead of sending requests with the
|
|
868
|
-
adapter's authentication silently dropped. A `toolViews` registry is
|
|
869
|
-
sanitized one registration at a time: a reserved `teaflask.*` key or a
|
|
870
|
-
wrong-shaped registration (non-numeric version, an adapter without a
|
|
871
|
-
callable `mount`) is dropped with a console warning naming the key,
|
|
872
|
-
and well-formed siblings keep working. The hotkey disclosure applies unchanged: the
|
|
873
|
-
element binds `mod+k` — rebind or set `hotkey="false"` if your app owns
|
|
874
|
-
the chord. One widget element per page, the React root's stance; page
|
|
875
|
-
elements are exempt — any number of surfaces may share the
|
|
876
|
-
conversation.
|
|
877
|
-
|
|
878
|
-
### Navigation — the honest limitation
|
|
879
|
-
|
|
880
|
-
Unset, the assistant's navigate requests become full-page loads
|
|
881
|
-
(`window.location.assign`) — right for a server-rendered host. Assign
|
|
882
|
-
`element.onNavigate = (path) => …` to drive a client-side router
|
|
883
|
-
instead, or `null` to declare the page cannot navigate (the assistant
|
|
884
|
-
is told so in-band and gives directions instead). A script tag cannot
|
|
885
|
-
drive a host framework's router the way the npm package's `onNavigate`
|
|
886
|
-
rides `router.push` — React shops should prefer the package.
|
|
887
|
-
|
|
888
|
-
### Isolation and theming across the boundary
|
|
129
|
+
```tsx
|
|
130
|
+
import "@teaflask/assistant/styles.css";
|
|
131
|
+
import { TeaflaskAssistant } from "@teaflask/assistant";
|
|
889
132
|
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
`--tf-*` custom properties inherit through shadow boundaries, so the
|
|
893
|
-
CSS route works unchanged from any host ancestor, and the element
|
|
894
|
-
reflects `data-tf-theme` / `data-reduce-motion` from host ancestors
|
|
895
|
-
across the boundary itself. One host dependency is compiled away: rem
|
|
896
|
-
values become px (at the standard 16px) in this bundle only, so a host
|
|
897
|
-
`html { font-size: 62.5% }` cannot shrink the widget — the tradeoff is
|
|
898
|
-
that the widget no longer scales with a visitor's browser font-size
|
|
899
|
-
setting.
|
|
133
|
+
<TeaflaskAssistant publishableKey="pk_live_…" />;
|
|
134
|
+
```
|
|
900
135
|
|
|
901
|
-
###
|
|
136
|
+
### Any other stack
|
|
902
137
|
|
|
903
|
-
|
|
904
|
-
tool views above) is a JS property on both elements. Assign it before
|
|
905
|
-
or after the bundle loads — script order is not yours to control, and a
|
|
906
|
-
property set before the element upgrades is reclaimed when the
|
|
907
|
-
definition arrives. A late assignment reaches calls already on screen,
|
|
908
|
-
not just future ones. Each element instance holds its own registry;
|
|
909
|
-
two elements on one page never share registrations.
|
|
138
|
+
Rails, Django, Laravel, Vue, WordPress or plain HTML: add the script tag before `</body>`. React is bundled inside, so your page doesn't need it.
|
|
910
139
|
|
|
911
140
|
```html
|
|
912
|
-
<!-- The element must already be in the DOM when the script below runs;
|
|
913
|
-
the BUNDLE may load whenever it likes. -->
|
|
914
|
-
<teaflask-assistant publishable-key="pk_live_…"></teaflask-assistant>
|
|
915
|
-
|
|
916
|
-
<script>
|
|
917
|
-
const inventoryView = {
|
|
918
|
-
mount(container, props) {
|
|
919
|
-
const style = document.createElement("style");
|
|
920
|
-
// Fallbacks track the mode through the data-mode attribute render()
|
|
921
|
-
// maintains from context.themeMode — the tokens themselves cannot
|
|
922
|
-
// say which mode is painted (see the warning below).
|
|
923
|
-
style.textContent =
|
|
924
|
-
".inventory { color: var(--tf-foreground, #171717); font: 13px/1.4 var(--tf-font-sans, system-ui); }" +
|
|
925
|
-
'.inventory[data-mode="dark"] { color: var(--tf-foreground, #ededed); }';
|
|
926
|
-
const card = document.createElement("div");
|
|
927
|
-
card.className = "inventory";
|
|
928
|
-
// One render path, fed at mount AND on every update: mount receives
|
|
929
|
-
// the call's CURRENT state (a view registered late, or restored
|
|
930
|
-
// from history, mounts onto an already-settled call that may never
|
|
931
|
-
// update again), and an update can change context.themeMode alone.
|
|
932
|
-
const render = ({ call, context }) => {
|
|
933
|
-
card.dataset.mode = context.themeMode;
|
|
934
|
-
card.textContent =
|
|
935
|
-
call.status === "output-available"
|
|
936
|
-
? (call.resultText ?? "Done.")
|
|
937
|
-
: "Checking inventory…";
|
|
938
|
-
};
|
|
939
|
-
render(props);
|
|
940
|
-
container.append(style, card);
|
|
941
|
-
return {
|
|
942
|
-
update: render, // re-reads the whole delivery: call and context
|
|
943
|
-
destroy() {
|
|
944
|
-
style.remove();
|
|
945
|
-
card.remove();
|
|
946
|
-
},
|
|
947
|
-
};
|
|
948
|
-
},
|
|
949
|
-
};
|
|
950
|
-
document.querySelector("teaflask-assistant").toolViews = {
|
|
951
|
-
// your exact tool name, or the opaque key a display annotation names
|
|
952
|
-
northwind__check_inventory: { version: 1, view: inventoryView },
|
|
953
|
-
};
|
|
954
|
-
</script>
|
|
955
141
|
<script
|
|
956
142
|
type="module"
|
|
957
143
|
src="https://app.teaflask.com/assistant/v1/assistant.js"
|
|
958
144
|
></script>
|
|
145
|
+
<teaflask-assistant publishable-key="pk_live_…"></teaflask-assistant>
|
|
959
146
|
```
|
|
960
147
|
|
|
961
|
-
|
|
962
|
-
> `--tf-*` token _names_ — custom properties cross the boundary — and
|
|
963
|
-
> **none of your page's stylesheets**: your CSS classes will not apply,
|
|
964
|
-
> and a first attempt that relies on them renders unstyled. That is the
|
|
965
|
-
> boundary working, not a bug. Two ways through: **inline styles** on
|
|
966
|
-
> the nodes you create, or a **`<style>` element your adapter mounts
|
|
967
|
-
> (and removes) inside its own container**, as above. Mounting it in
|
|
968
|
-
> your container governs its _lifecycle_, not its reach: a `<style>`
|
|
969
|
-
> element styles the **whole shadow root**, so scope every selector to
|
|
970
|
-
> a class you own (both examples prefix theirs for exactly this
|
|
971
|
-
> reason) — a bare `p { … }` would restyle the package surface, not
|
|
972
|
-
> just your card.
|
|
973
|
-
>
|
|
974
|
-
> ⚠ **And the `--tf-*` tokens are host _inputs_, not resolved values.**
|
|
975
|
-
> In an embed that sets no theme, every one of them is unset — and a
|
|
976
|
-
> `var(--tf-*)` without a fallback voids its whole declaration at
|
|
977
|
-
> computed-value time (a borderless `border`, a transparent
|
|
978
|
-
> `background`). **Always pair a token with an explicit fallback**, e.g.
|
|
979
|
-
> `var(--tf-foreground, #171717)`: the host's value wins when the host
|
|
980
|
-
> themes, your fallback paints when it doesn't. And because host-set
|
|
981
|
-
> tokens are single-valued in both modes by design (see Theming), they
|
|
982
|
-
> cannot tell you the mode — **dark-awareness comes from
|
|
983
|
-
> `context.themeMode`**, handed to `mount` and re-delivered through
|
|
984
|
-
> `update` whenever it changes, including on the element's own
|
|
985
|
-
> `mode` attribute flip.
|
|
986
|
-
|
|
987
|
-
What a shadow-mounted adapter can actually see of the theme system —
|
|
988
|
-
each affordance, classified:
|
|
989
|
-
|
|
990
|
-
- **`context.themeMode`** — always available, in every embed; the one
|
|
991
|
-
mode-change signal an adapter receives (via `update`). Use it for
|
|
992
|
-
anything light/dark.
|
|
993
|
-
- **`--tf-*` tokens** (list under Theming) — the _names_ always reach
|
|
994
|
-
you; the _values_ exist only when the host themes (the `theme`
|
|
995
|
-
property, or `--tf-*` set on a host ancestor). Always write
|
|
996
|
-
`var(--tf-x, fallback)`.
|
|
997
|
-
- **Inherited properties** — `color`, `font-family`, and friends
|
|
998
|
-
inherit from the package-styled ancestors around your container, so
|
|
999
|
-
plain text with no declarations of your own already paints correctly
|
|
1000
|
-
in both modes; `currentColor` rides the same channel.
|
|
1001
|
-
- **`--_tf-*` private aliases** — resolved in the shadow tree but
|
|
1002
|
-
package-private and unversioned: never read them.
|
|
1003
|
-
- **`data-tf-theme`** — package-owned plumbing on the widget root; do
|
|
1004
|
-
not sniff it from an adapter, read `context.themeMode` instead.
|
|
1005
|
-
|
|
1006
|
-
Registrations may carry an `icon` beside (or instead of) the `view` —
|
|
1007
|
-
it replaces the operation mark's glyph, with the state semantics left
|
|
1008
|
-
package-owned. A throwing adapter is isolated exactly like a React one:
|
|
1009
|
-
the call falls to the next rung, `element.onError` hears the error, and
|
|
1010
|
-
the console names the key. A wrong-shaped registration — a reserved
|
|
1011
|
-
`teaflask.*` key, a non-numeric `version`, an adapter without a
|
|
1012
|
-
callable `mount` — is dropped with a named warning and costs nothing
|
|
1013
|
-
else. And the door is a JS property on purpose, with no attribute
|
|
1014
|
-
spelling: a registry carries functions, and adapters are always your
|
|
1015
|
-
page's own code — nothing executable ever arrives over the wire.
|
|
1016
|
-
|
|
1017
|
-
### CSP
|
|
1018
|
-
|
|
1019
|
-
The bundle needs `script-src` for `app.teaflask.com`. Its stylesheet is
|
|
1020
|
-
a constructed stylesheet (no `style-src` implications), but the `theme`
|
|
1021
|
-
property lands inline style variables — exactly like the npm `theme`
|
|
1022
|
-
prop — which requires `style-src-attr 'unsafe-inline'`; a strict-CSP
|
|
1023
|
-
host themes through CSS custom properties instead. Registering tool
|
|
1024
|
-
views needs nothing beyond your own script's `script-src` — no `eval`,
|
|
1025
|
-
no injected scripts — though an adapter that mounts its own `<style>`
|
|
1026
|
-
element needs a `style-src` allowance and inline styles on its nodes
|
|
1027
|
-
need `style-src-attr`, the same class of allowance as `theme`.
|
|
1028
|
-
|
|
1029
|
-
## Theming
|
|
1030
|
-
|
|
1031
|
-
The widget styles itself with `--tf-*` CSS variables and ships Graphite
|
|
1032
|
-
(monochrome, hairline-bordered) defaults. Set any of them on an ancestor
|
|
1033
|
-
element and your value wins:
|
|
1034
|
-
|
|
1035
|
-
```css
|
|
1036
|
-
.my-assistant-container {
|
|
1037
|
-
--tf-background: #fdfdfc;
|
|
1038
|
-
--tf-primary: #1a3c8b;
|
|
1039
|
-
--tf-radius: 0.25rem;
|
|
1040
|
-
--tf-font-sans: "Inter", sans-serif;
|
|
1041
|
-
}
|
|
1042
|
-
```
|
|
1043
|
-
|
|
1044
|
-
Tokens: `--tf-background`, `--tf-foreground`, `--tf-card`,
|
|
1045
|
-
`--tf-card-foreground`, `--tf-popover`, `--tf-popover-foreground`,
|
|
1046
|
-
`--tf-primary`, `--tf-primary-foreground`, `--tf-secondary`,
|
|
1047
|
-
`--tf-secondary-foreground`, `--tf-muted`, `--tf-muted-foreground`,
|
|
1048
|
-
`--tf-accent`, `--tf-accent-foreground`, `--tf-destructive`,
|
|
1049
|
-
`--tf-border`, `--tf-input`, `--tf-ring`, `--tf-radius`,
|
|
1050
|
-
`--tf-font-sans`, `--tf-color-scheme`.
|
|
1051
|
-
|
|
1052
|
-
Dark mode: add `data-tf-theme="dark"` on the widget's container (or any
|
|
1053
|
-
ancestor) for the pure-black defaults; host-set `--tf-*` values still
|
|
1054
|
-
win in both modes. Dark-theming with tokens alone (no attribute, no
|
|
1055
|
-
`mode` prop)? Also set `--tf-color-scheme: dark` so native form controls
|
|
1056
|
-
— scrollbars, the composer's textarea — draw dark UA chrome; the
|
|
1057
|
-
attribute and `mode` routes flip it for you.
|
|
1058
|
-
|
|
1059
|
-
### The `theme` and `mode` props
|
|
1060
|
-
|
|
1061
|
-
Prefer configuring in JS? Pass the same tokens, camelCase, to the
|
|
1062
|
-
provider. Values land as inline style variables on the widget roots, so
|
|
1063
|
-
an explicit prop beats any ambient host CSS — two channels, one clear
|
|
1064
|
-
winner:
|
|
1065
|
-
|
|
1066
|
-
```tsx
|
|
1067
|
-
<TeaflaskAssistantProvider
|
|
1068
|
-
publishableKey="pk_test_…"
|
|
1069
|
-
theme={{
|
|
1070
|
-
background: "#fdfdfc",
|
|
1071
|
-
primary: "#1a3c8b",
|
|
1072
|
-
radius: 12, // a bare number means pixels
|
|
1073
|
-
fontSans: '"Inter", sans-serif',
|
|
1074
|
-
dark: { background: "#101010", primary: "#8fb0ff" },
|
|
1075
|
-
}}
|
|
1076
|
-
mode="auto"
|
|
1077
|
-
>
|
|
1078
|
-
```
|
|
1079
|
-
|
|
1080
|
-
- `theme.dark` values take over whenever dark is active — through the
|
|
1081
|
-
`mode` prop or a `data-tf-theme="dark"` on any ancestor. Everything
|
|
1082
|
-
else applies in both modes, exactly like the CSS route.
|
|
1083
|
-
- `mode` writes `data-tf-theme` on the widget roots: `"dark"` pins the
|
|
1084
|
-
dark palette, `"light"` pins light even under an ancestor's dark
|
|
1085
|
-
attribute, `"auto"` follows the visitor's OS preference (a CSS media
|
|
1086
|
-
query — no script runs, no flash before hydration).
|
|
1087
|
-
- The prop is read by value: a fresh object literal every render is
|
|
1088
|
-
fine and never resets the conversation.
|
|
1089
|
-
- Strict CSP: inline styles need `style-src 'unsafe-inline'` (or
|
|
1090
|
-
`style-src-attr`). If your policy cannot allow that, use the CSS
|
|
1091
|
-
route above — it is the same contract, minus the prop precedence.
|
|
1092
|
-
|
|
1093
|
-
## Companion
|
|
1094
|
-
|
|
1095
|
-
### The presence surface
|
|
1096
|
-
|
|
1097
|
-
`<AssistantCompanion/>` is the mark in the corner: an always-present
|
|
1098
|
-
concierge that lives on every route and expands into a corner chat
|
|
1099
|
-
drawer. `<TeaflaskAssistant/>` mounts it
|
|
1100
|
-
automatically; standalone, mount it once under the provider — it needs
|
|
1101
|
-
no route wiring, because it works out for itself when it is not needed:
|
|
1102
|
-
|
|
1103
|
-
```tsx
|
|
1104
|
-
<TeaflaskAssistantProvider
|
|
1105
|
-
publishableKey="pk_test_…"
|
|
1106
|
-
companionMark={<YourMark />}
|
|
1107
|
-
>
|
|
1108
|
-
<AssistantCompanion corner="bottom-right" />
|
|
1109
|
-
</TeaflaskAssistantProvider>
|
|
1110
|
-
```
|
|
1111
|
-
|
|
1112
|
-
- **Yield is automatic.** Wherever an `<AssistantPage/>`-class surface
|
|
1113
|
-
is mounted the companion renders nothing (while staying subscribed, so
|
|
1114
|
-
it returns the instant that surface unmounts); while the palette is
|
|
1115
|
-
open it hides. Its own drawer doesn't count — one companion per page
|
|
1116
|
-
is the supported shape.
|
|
1117
|
-
- **The mark never speaks.** No speech bubbles, no attention dot: a turn
|
|
1118
|
-
finishing, failing, or waiting on the human changes nothing in the
|
|
1119
|
-
corner. Approvals and results live on the cards in an expanded
|
|
1120
|
-
surface, which the visitor opens when they choose.
|
|
1121
|
-
- **A tool navigation lands with the drawer open.** When the assistant
|
|
1122
|
-
moves the visitor through `builtin.navigate` (your `onNavigate`
|
|
1123
|
-
hookup), the drawer opens at the destination, even if the visitor had
|
|
1124
|
-
minimized it — the assistant is taking them somewhere, so the
|
|
1125
|
-
conversation follows, and focus stays exactly where the visitor had
|
|
1126
|
-
it — only an open they clicked for moves the caret into the composer.
|
|
1127
|
-
Only a navigation that actually happened counts:
|
|
1128
|
-
a refused path or a throwing `onNavigate` opens nothing. The flag is
|
|
1129
|
-
page-level state, so it holds even when your router remounts the
|
|
1130
|
-
assistant tree between routes; a full page load starts closed.
|
|
1131
|
-
- **A full-page surface resets the drawer.** The moment an
|
|
1132
|
-
`<AssistantPage/>`-class surface mounts, the drawer's open flag is
|
|
1133
|
-
cleared for good — leaving that page by hand lands the visitor on the
|
|
1134
|
-
bare mark, while the palette (a transient yield) keeps the flag and
|
|
1135
|
-
hands the drawer back when it closes. On ordinary routes an open drawer
|
|
1136
|
-
keeps following the visitor across client-side navigation.
|
|
1137
|
-
- **The minimized companion never downloads the transcript.** The chat
|
|
1138
|
-
drawer's conversation body rides a dynamic import, split by your
|
|
1139
|
-
bundler and fetched on the first expand; importing from
|
|
1140
|
-
`@teaflask/assistant/activity` keeps the whole surface on the
|
|
1141
|
-
bundle-lean entry.
|
|
1142
|
-
- **Reduced motion is honored**: every presence transition collapses to
|
|
1143
|
-
an instant swap. The package's default mark
|
|
1144
|
-
is static by construction; a mark you supply is yours to hold still
|
|
1145
|
-
(below).
|
|
1146
|
-
|
|
1147
|
-
### The mark
|
|
1148
|
-
|
|
1149
|
-
The corner companion and the drawer's welcome show one mark, and it is
|
|
1150
|
-
static — no animation, no state, no hide control. The default
|
|
1151
|
-
is the TeaFlask flask in the widget's foreground color (the same
|
|
1152
|
-
`AgentIdentityMark` the transcript uses). Replace it with your own:
|
|
1153
|
-
|
|
1154
|
-
```tsx
|
|
1155
|
-
// React hosts: any node. The package sizes the box, your node fills it.
|
|
1156
|
-
<TeaflaskAssistantProvider publishableKey="pk_test_…" companionMark={<YourMark />}>
|
|
1157
|
-
```
|
|
1158
|
-
|
|
1159
|
-
```html
|
|
1160
|
-
<!-- Script-tag hosts: an image URL. -->
|
|
1161
|
-
<teaflask-assistant
|
|
1162
|
-
publishable-key="pk_test_…"
|
|
1163
|
-
companion-mark-src="https://…/mark.svg"
|
|
1164
|
-
></teaflask-assistant>
|
|
1165
|
-
```
|
|
1166
|
-
|
|
1167
|
-
The mark floats bare: no plate, no circle, no card behind it — your
|
|
1168
|
-
artwork's own silhouette is the companion, so ship it with transparent
|
|
1169
|
-
surroundings, the way you would a logo. The box is the package's — 4rem
|
|
1170
|
-
on the perch and above the drawer's welcome — and there is no size
|
|
1171
|
-
token.
|
|
1172
|
-
The package sets your node to 100% width and height of the box, so a
|
|
1173
|
-
bare `<svg viewBox="…">` or a plain `<img>` fills it with no sizing of
|
|
1174
|
-
its own; keep the artwork's aspect inside the viewBox. The usual
|
|
1175
|
-
conditional works: `companionMark={brand && <Mark />}` shows the flask
|
|
1176
|
-
on its false arm (null, undefined and booleans all decline; `""` or `[]`
|
|
1177
|
-
are taken as your deliberate empty content). On the script tag, a
|
|
1178
|
-
`companion-mark-src` that fails to load — a 404, a CSP or ad-block
|
|
1179
|
-
refusal, a URL that is not an image — logs one console warning and shows
|
|
1180
|
-
the flask in its place; a broken mark costs the mark, never the page. A
|
|
1181
|
-
host node is host DOM: it renders inside the package's
|
|
1182
|
-
`data-tf-host-view` marker, so the widget's box-sizing and border-color
|
|
1183
|
-
reset never touch it (the same carve-out custom tool views get); the
|
|
1184
|
-
default flask stays package DOM under the reset.
|
|
1185
|
-
|
|
1186
|
-
## SSR and Next.js
|
|
1187
|
-
|
|
1188
|
-
Every component and hook this package exports is a client module — the
|
|
1189
|
-
`"use client"` directive sits on the modules the entry points re-export
|
|
1190
|
-
(the entry barrels themselves and internal leaves don't carry it, and
|
|
1191
|
-
don't need to) — so the App Router accepts a direct import from a server
|
|
1192
|
-
layout: the directive marks the client boundary where it matters, and
|
|
1193
|
-
the components render in the browser. Mount the provider once in a
|
|
1194
|
-
client component (our own dashboard mounts it exactly this way) and
|
|
1195
|
-
import the stylesheet once at the app shell:
|
|
1196
|
-
|
|
1197
|
-
```tsx
|
|
1198
|
-
// app/providers.tsx
|
|
1199
|
-
"use client";
|
|
1200
|
-
import { TeaflaskAssistant } from "@teaflask/assistant";
|
|
1201
|
-
import "@teaflask/assistant/styles.css";
|
|
1202
|
-
|
|
1203
|
-
export function AssistantProvider({ children }: { children: React.ReactNode }) {
|
|
1204
|
-
return (
|
|
1205
|
-
<TeaflaskAssistant publishableKey="pk_live_…">{children}</TeaflaskAssistant>
|
|
1206
|
-
);
|
|
1207
|
-
}
|
|
1208
|
-
```
|
|
1209
|
-
|
|
1210
|
-
Server rendering is safe, not useful: store cells reach React through
|
|
1211
|
-
`useSyncExternalStore` with the store's initial state as the server
|
|
1212
|
-
snapshot, so an SSR pass renders the empty shell without hydration
|
|
1213
|
-
mismatch, and the conversation connects after mount. Nothing in the
|
|
1214
|
-
package touches `window` at module scope. The names reserved on the
|
|
1215
|
-
page: CSS classes under the `tf:` utility prefix plus the `data-tf-*`
|
|
1216
|
-
attributes; custom properties under `--tf-*` (the theming surface —
|
|
1217
|
-
anything you set there is read as a theme value); and animation
|
|
1218
|
-
(`@keyframes`) names under `tf-` — the stylesheet ships no global
|
|
1219
|
-
animation name outside that prefix, so your own `pulse` or `spin` is
|
|
1220
|
-
never overridden by ours. The sheet also carries Tailwind's standard
|
|
1221
|
-
`--tw-*` custom-property machinery, byte-identical to what any Tailwind
|
|
1222
|
-
v4 build registers, so it coexists with a host Tailwind build.
|
|
1223
|
-
|
|
1224
|
-
## Browser support
|
|
1225
|
-
|
|
1226
|
-
The floor is **Chrome/Edge 117, Safari 17.5, Firefox 129** — the newest
|
|
1227
|
-
features the stylesheet and chrome rely on, unpolyfillable by a host.
|
|
1228
|
-
Safari's floor is set by `@starting-style` (17.5, per caniuse);
|
|
1229
|
-
`transition-behavior` alone would allow 17.4, and every other feature
|
|
1230
|
-
below sits earlier still:
|
|
1231
|
-
|
|
1232
|
-
| Needs | Used for |
|
|
1233
|
-
| -------------------------------------- | --------------------------------------------------------- |
|
|
1234
|
-
| `@starting-style` | entry transitions on the palette, shelf and drawer |
|
|
1235
|
-
| `transition-behavior: allow-discrete` | transitioning `display`/`overlay` on close |
|
|
1236
|
-
| the Popover API (`popover`, top layer) | the palette, drill-in previews, menus |
|
|
1237
|
-
| `:has()` | scroll-away/jump chrome and shelf collapse selectors |
|
|
1238
|
-
| `color-mix()` | the ink washes (hover/selected registers) and glass tints |
|
|
1239
|
-
|
|
1240
|
-
Older browsers are not detected or half-supported: below the floor,
|
|
1241
|
-
pieces of the chrome simply do not appear or do not animate. The
|
|
1242
|
-
headless entry has no CSS floor of its own — with your own frontend,
|
|
1243
|
-
your support matrix is your CSS's.
|
|
148
|
+
Next, [connect actions to your API](https://docs.teaflask.com/adapters), [identify signed-in users](https://docs.teaflask.com/identity), and run through the [production checklist](https://docs.teaflask.com/production-checklist).
|
|
1244
149
|
|
|
1245
|
-
##
|
|
150
|
+
## Learn more
|
|
1246
151
|
|
|
1247
|
-
|
|
152
|
+
- [How Teaflask works](https://docs.teaflask.com/fundamentals)
|
|
153
|
+
- [How it connects to your app](https://docs.teaflask.com/architecture)
|
|
154
|
+
- [Grounding and control](https://docs.teaflask.com/grounding)
|
|
155
|
+
- [Install](https://docs.teaflask.com/install)
|
|
156
|
+
- [Assistant UI](https://docs.teaflask.com/assistant-ui)
|
|
157
|
+
- [Trust](https://docs.teaflask.com/trust)
|
|
1248
158
|
|
|
1249
|
-
-
|
|
1250
|
-
transcript mounts a single sr-only `role="status"` announcer that
|
|
1251
|
-
pre-exists its first phrase and speaks run-state changes ("Working…",
|
|
1252
|
-
"Waiting for your input"). Panel-scoped regions announce their own
|
|
1253
|
-
local facts — the question panel's submit-gate sentence, the
|
|
1254
|
-
composer's "Stopping…" — but conversation-level run state has exactly
|
|
1255
|
-
one voice.
|
|
1256
|
-
- **Focus moves only on your action.** A newly arriving decision never
|
|
1257
|
-
steals focus (the context-change rule, WCAG 3.2): its arrival is
|
|
1258
|
-
announced, the surface sits in DOM order directly before the composer,
|
|
1259
|
-
and focus moves there only at member-initiated moments — resolving one
|
|
1260
|
-
decision focuses the next; an emptied queue returns focus to the
|
|
1261
|
-
composer.
|
|
1262
|
-
- **Decisions are keyboard-complete.** Approve/deny controls, the
|
|
1263
|
-
decision queue's paging, and the question panels (radio-group
|
|
1264
|
-
semantics, roving tabindex, labelled by their own question) are
|
|
1265
|
-
reachable and operable without a pointer.
|
|
1266
|
-
- **Errors are announced.** Failure banners and the surface-boundary
|
|
1267
|
-
fallback cards carry `role="alert"`; error states are rendered
|
|
1268
|
-
sentences, never color alone.
|
|
1269
|
-
- **Reduced motion is structural.** Under `prefers-reduced-motion` (or a
|
|
1270
|
-
host `data-reduce-motion="true"` ancestor) shimmer and typing dots
|
|
1271
|
-
collapse to resting states — the signal survives without the motion.
|
|
1272
|
-
The package's default companion mark is static by construction. A mark
|
|
1273
|
-
you supply — a `companionMark` node or a `companion-mark-src` image —
|
|
1274
|
-
is yours to hold still under reduced motion: the package cannot stop a
|
|
1275
|
-
GIF, an APNG or SMIL, and a CSS rule on your node's root would promise
|
|
1276
|
-
more than it delivers.
|
|
1277
|
-
- Static a11y rules (`eslint-plugin-jsx-a11y`) gate the package's own
|
|
1278
|
-
chrome in CI.
|
|
159
|
+
Requires `react` and `react-dom` 18.3 or 19 (the script tag needs neither). The package is pre-1.0: a breaking change bumps the minor version, and the [changelog](https://github.com/teaflask/assistant/blob/main/CHANGELOG.md) lists what changed in every release. Every public export and field is described in the package's types, and the script tag's attributes and properties in its `custom-elements.json`, so your editor and coding agent can read what each one means. You can inspect the published code on [npm](https://www.npmjs.com/package/@teaflask/assistant?activeTab=code) or [unpkg](https://unpkg.com/@teaflask/assistant/).
|
|
1279
160
|
|
|
1280
|
-
|
|
1281
|
-
a11y reports are treated as bugs, not feature requests.
|
|
161
|
+
## License
|
|
1282
162
|
|
|
1283
|
-
|
|
163
|
+
[Functional Source License, Version 1.1, ALv2 Future License](https://github.com/teaflask/assistant/blob/main/LICENSE) (FSL-1.1-ALv2). You can use it in your own product. You can't use it to build a competing product or service. Every release becomes Apache-2.0 two years after it ships.
|
|
1284
164
|
|
|
1285
|
-
|
|
1286
|
-
(the contract document itself does not ship in the package); the types
|
|
1287
|
-
under `src/contract/` are its executable mirror, DO ship in the package
|
|
1288
|
-
(`src` is included for declaration maps), and are exported from the
|
|
1289
|
-
package root. Changes are additive only. The package's own API follows
|
|
1290
|
-
that rule on a version axis: while the package is 0.x its public surface
|
|
1291
|
-
may change between versions (the changelog's versioning policy records
|
|
1292
|
-
each change) — **pre-1.0: minor versions may break.** From 1.0 the
|
|
1293
|
-
additive-only rule binds the package as it already binds the wire.
|
|
165
|
+
Report security issues to [security@teaflask.com](mailto:security@teaflask.com); see [SECURITY.md](https://github.com/teaflask/assistant/blob/main/SECURITY.md).
|