@agent-native/core 0.95.0 → 0.96.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/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +35 -0
- package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +13 -0
- package/corpus/core/docs/content/locales/de-DE/template-design.mdx +18 -0
- package/corpus/core/docs/content/locales/es-ES/template-design.mdx +16 -0
- package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +17 -0
- package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +16 -0
- package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +17 -0
- package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +15 -0
- package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +16 -0
- package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +11 -0
- package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +12 -0
- package/corpus/core/docs/content/template-design.mdx +16 -0
- package/corpus/core/package.json +4 -2
- package/corpus/core/src/a2a/client.ts +11 -1
- package/corpus/core/src/agent/production-agent.ts +107 -27
- package/corpus/core/src/agent/thread-data-builder.ts +48 -22
- package/corpus/core/src/chat-threads/store.ts +20 -1
- package/corpus/core/src/cli/code-agent-executor.ts +1 -0
- package/corpus/core/src/cli/code-agent-runs.ts +14 -0
- package/corpus/core/src/client/AgentPanel.tsx +32 -25
- package/corpus/core/src/client/AssistantChat.tsx +286 -45
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +141 -90
- package/corpus/core/src/client/chat/ChatHistoryList.tsx +404 -0
- package/corpus/core/src/client/chat/index.ts +6 -0
- package/corpus/core/src/client/chat/tool-call-display.tsx +38 -4
- package/corpus/core/src/client/chat/use-reconnect-reader-owner.ts +28 -0
- package/corpus/core/src/client/code-agent-chat-adapter.ts +72 -4
- package/corpus/core/src/client/composer/RealtimeVoiceMode.tsx +52 -11
- package/corpus/core/src/client/composer/TiptapComposer.tsx +157 -20
- package/corpus/core/src/client/composer/VoiceButton.tsx +28 -0
- package/corpus/core/src/client/composer/useRealtimeVoiceMode.tsx +5 -0
- package/corpus/core/src/client/conversation/code-agent-transcript.ts +4 -5
- package/corpus/core/src/client/guided-questions.tsx +11 -2
- package/corpus/core/src/client/index.ts +11 -0
- package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +6 -7
- package/corpus/core/src/client/sse-event-processor.ts +90 -21
- package/corpus/core/src/client/use-chat-threads.ts +10 -1
- package/corpus/core/src/client/voice-provider-status.ts +44 -0
- package/corpus/core/src/code-agents/transcript-normalizer.ts +76 -0
- package/corpus/core/src/connections/catalog.ts +2 -2
- package/corpus/core/src/deploy/build.ts +12 -8
- package/corpus/core/src/integrations/a2a-continuation-processor.ts +35 -5
- package/corpus/core/src/integrations/adapters/slack.ts +74 -21
- package/corpus/core/src/integrations/catalog.ts +2 -2
- package/corpus/core/src/integrations/webhook-handler.ts +14 -0
- package/corpus/core/src/localization/default-messages.ts +6 -0
- package/corpus/core/src/observability/hosted-model-experiment.ts +118 -0
- package/corpus/core/src/observability/routes.ts +17 -0
- package/corpus/core/src/observability/store.ts +4 -1
- package/corpus/core/src/observability/traces.ts +41 -2
- package/corpus/core/src/scripts/agent-engines/list-agent-engines.ts +19 -1
- package/corpus/core/src/scripts/call-agent.ts +53 -3
- package/corpus/core/src/scripts/chat/search-chats.ts +11 -8
- package/corpus/core/src/secrets/register-framework-secrets.ts +1 -1
- package/corpus/core/src/server/agent-chat-plugin.ts +41 -6
- package/corpus/core/src/server/auth.ts +1 -1
- package/corpus/core/src/server/core-routes-plugin.ts +15 -0
- package/corpus/core/src/server/credential-provider.ts +7 -3
- package/corpus/core/src/server/realtime-voice.ts +71 -24
- package/corpus/core/src/server/voice-providers-status.ts +4 -3
- package/corpus/core/src/shared/cache-control.ts +4 -4
- package/corpus/core/src/styles/agent-native.css +1 -0
- package/corpus/core/src/styles/chat-history-list.css +313 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/observability/SKILL.md +20 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +8 -4
- package/corpus/core/src/vite/client.ts +1 -0
- package/corpus/templates/analytics/AGENTS.md +7 -0
- package/corpus/templates/analytics/actions/bigquery.ts +26 -2
- package/corpus/templates/analytics/actions/data-source-status.ts +18 -0
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +5 -4
- package/corpus/templates/analytics/app/global.css +10 -0
- package/corpus/templates/analytics/app/lib/data-sources.ts +5 -4
- package/corpus/templates/analytics/app/pages/Ask.tsx +25 -2
- package/corpus/templates/analytics/changelog/2026-07-10-analytics-answers-simple-time-bounded-metrics-without-unnece.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-analytics-chat-reliably-uses-connected-data-sources-across-s.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-chat-threads-now-stay-clear-of-top-actions-and-fade-smoothly.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-context-chips-can-now-be-selected-and-removed-one-at-a-time-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-slack-token-setup-marked-legacy.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-the-ask-composer-no-longer-carries-dashboard-or-panel-contex.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-the-ask-section-stays-highlighted-while-its-chat-history-is-.md +6 -0
- package/corpus/templates/analytics/server/lib/bigquery.ts +90 -14
- package/corpus/templates/analytics/server/lib/credential-keys.ts +6 -2
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +82 -7
- package/corpus/templates/brain/changelog/2026-07-10-slack-backfill-token-marked-legacy.md +6 -0
- package/corpus/templates/brain/server/register-secrets.ts +2 -2
- package/corpus/templates/clips/app/components/library/library-layout.tsx +7 -1
- package/corpus/templates/clips/app/components/library/page-header.tsx +19 -3
- package/corpus/templates/clips/app/routes/_app.library._index.tsx +16 -12
- package/corpus/templates/clips/changelog/2026-07-10-new-recording-appears-once-when-the-library-sidebar-is-open.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-slack-token-fallback-guidance.md +6 -0
- package/corpus/templates/clips/server/register-secrets.ts +1 -1
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +0 -66
- package/corpus/templates/content/app/routes/_app.local-files.tsx +7 -47
- package/corpus/templates/content/changelog/2026-07-10-local-folders-now-wait-for-an-explicit-pull-before-content-r.md +6 -0
- package/corpus/templates/content/package.json +1 -1
- package/corpus/templates/design/actions/generate-design.ts +128 -31
- package/corpus/templates/design/actions/present-design-variants.ts +37 -9
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +9 -3
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +32 -10
- package/corpus/templates/design/app/components/design/QuestionFlow.tsx +2 -2
- package/corpus/templates/design/app/components/design/TweaksPanel.tsx +9 -1
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +7 -5
- package/corpus/templates/design/app/components/design/multi-screen/types.ts +3 -0
- package/corpus/templates/design/app/global.css +10 -0
- package/corpus/templates/design/app/hooks/use-question-flow.ts +9 -2
- package/corpus/templates/design/app/i18n/zh-TW.ts +1 -0
- package/corpus/templates/design/app/i18n-data.ts +21 -11
- package/corpus/templates/design/changelog/2026-07-10-editor-panels-are-easier-to-distinguish-and-design-intake-qu.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-interact-mode-now-stays-on-the-full-canvas-matches-edit-visu.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-new-web-designs-open-at-desktop-size-and-adapt-across-mobile.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-tweaks-now-link-to-full-documentation.md +6 -0
- package/corpus/templates/design/server/plugins/agent-chat.ts +2 -0
- package/corpus/templates/mail/app/i18n/ar-SA.ts +3 -3
- package/corpus/templates/mail/app/i18n/de-DE.ts +3 -3
- package/corpus/templates/mail/app/i18n/en-US.ts +4 -3
- package/corpus/templates/mail/app/i18n/es-ES.ts +3 -3
- package/corpus/templates/mail/app/i18n/fr-FR.ts +3 -3
- package/corpus/templates/mail/app/i18n/hi-IN.ts +3 -3
- package/corpus/templates/mail/app/i18n/ja-JP.ts +3 -3
- package/corpus/templates/mail/app/i18n/ko-KR.ts +3 -3
- package/corpus/templates/mail/app/i18n/pt-BR.ts +3 -3
- package/corpus/templates/mail/app/i18n/zh-CN.ts +3 -3
- package/corpus/templates/mail/app/i18n/zh-TW.ts +3 -3
- package/corpus/templates/mail/changelog/2026-07-10-slack-intake-marked-legacy.md +6 -0
- package/corpus/templates/mail/server/lib/env-config.ts +5 -4
- package/corpus/templates/plan/package.json +1 -1
- package/dist/a2a/client.d.ts +7 -0
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +2 -1
- package/dist/a2a/client.js.map +1 -1
- package/dist/agent/production-agent.d.ts +6 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +83 -26
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/thread-data-builder.d.ts +1 -0
- package/dist/agent/thread-data-builder.d.ts.map +1 -1
- package/dist/agent/thread-data-builder.js +42 -23
- package/dist/agent/thread-data-builder.js.map +1 -1
- package/dist/chat-threads/store.d.ts +10 -0
- package/dist/chat-threads/store.d.ts.map +1 -1
- package/dist/chat-threads/store.js +6 -0
- package/dist/chat-threads/store.js.map +1 -1
- package/dist/cli/code-agent-executor.d.ts.map +1 -1
- package/dist/cli/code-agent-executor.js +1 -0
- package/dist/cli/code-agent-executor.js.map +1 -1
- package/dist/cli/code-agent-runs.d.ts +12 -0
- package/dist/cli/code-agent-runs.d.ts.map +1 -1
- package/dist/cli/code-agent-runs.js +1 -0
- package/dist/cli/code-agent-runs.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +3 -3
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +14 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +207 -32
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +83 -10
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/chat/ChatHistoryList.d.ts +88 -0
- package/dist/client/chat/ChatHistoryList.d.ts.map +1 -0
- package/dist/client/chat/ChatHistoryList.js +83 -0
- package/dist/client/chat/ChatHistoryList.js.map +1 -0
- package/dist/client/chat/index.d.ts +1 -0
- package/dist/client/chat/index.d.ts.map +1 -1
- package/dist/client/chat/index.js +1 -0
- package/dist/client/chat/index.js.map +1 -1
- package/dist/client/chat/tool-call-display.d.ts +13 -1
- package/dist/client/chat/tool-call-display.d.ts.map +1 -1
- package/dist/client/chat/tool-call-display.js +11 -3
- package/dist/client/chat/tool-call-display.js.map +1 -1
- package/dist/client/chat/use-reconnect-reader-owner.d.ts +11 -0
- package/dist/client/chat/use-reconnect-reader-owner.d.ts.map +1 -0
- package/dist/client/chat/use-reconnect-reader-owner.js +21 -0
- package/dist/client/chat/use-reconnect-reader-owner.js.map +1 -0
- package/dist/client/code-agent-chat-adapter.d.ts +17 -1
- package/dist/client/code-agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/code-agent-chat-adapter.js +47 -3
- package/dist/client/code-agent-chat-adapter.js.map +1 -1
- package/dist/client/composer/RealtimeVoiceMode.d.ts +11 -1
- package/dist/client/composer/RealtimeVoiceMode.d.ts.map +1 -1
- package/dist/client/composer/RealtimeVoiceMode.js +5 -3
- package/dist/client/composer/RealtimeVoiceMode.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts +25 -2
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +96 -5
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/VoiceButton.d.ts.map +1 -1
- package/dist/client/composer/VoiceButton.js +21 -1
- package/dist/client/composer/VoiceButton.js.map +1 -1
- package/dist/client/composer/useRealtimeVoiceMode.d.ts.map +1 -1
- package/dist/client/composer/useRealtimeVoiceMode.js +5 -0
- package/dist/client/composer/useRealtimeVoiceMode.js.map +1 -1
- package/dist/client/conversation/code-agent-transcript.d.ts +2 -0
- package/dist/client/conversation/code-agent-transcript.d.ts.map +1 -1
- package/dist/client/conversation/code-agent-transcript.js +3 -5
- package/dist/client/conversation/code-agent-transcript.js.map +1 -1
- package/dist/client/guided-questions.d.ts.map +1 -1
- package/dist/client/guided-questions.js +7 -2
- package/dist/client/guided-questions.js.map +1 -1
- package/dist/client/index.d.ts +3 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +3 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/integrations/IntegrationsPanel.d.ts.map +1 -1
- package/dist/client/integrations/IntegrationsPanel.js +5 -7
- package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
- package/dist/client/sse-event-processor.d.ts.map +1 -1
- package/dist/client/sse-event-processor.js +67 -20
- package/dist/client/sse-event-processor.js.map +1 -1
- package/dist/client/use-chat-threads.d.ts.map +1 -1
- package/dist/client/use-chat-threads.js +9 -1
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/client/voice-provider-status.d.ts +10 -0
- package/dist/client/voice-provider-status.d.ts.map +1 -0
- package/dist/client/voice-provider-status.js +32 -0
- package/dist/client/voice-provider-status.js.map +1 -0
- package/dist/code-agents/transcript-normalizer.d.ts +29 -0
- package/dist/code-agents/transcript-normalizer.d.ts.map +1 -1
- package/dist/code-agents/transcript-normalizer.js +55 -0
- package/dist/code-agents/transcript-normalizer.js.map +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/connections/catalog.d.ts +2 -2
- package/dist/connections/catalog.js +2 -2
- package/dist/connections/catalog.js.map +1 -1
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +12 -8
- package/dist/deploy/build.js.map +1 -1
- package/dist/integrations/a2a-continuation-processor.d.ts.map +1 -1
- package/dist/integrations/a2a-continuation-processor.js +25 -5
- package/dist/integrations/a2a-continuation-processor.js.map +1 -1
- package/dist/integrations/adapters/slack.d.ts.map +1 -1
- package/dist/integrations/adapters/slack.js +55 -21
- package/dist/integrations/adapters/slack.js.map +1 -1
- package/dist/integrations/catalog.js +2 -2
- package/dist/integrations/catalog.js.map +1 -1
- package/dist/integrations/webhook-handler.d.ts.map +1 -1
- package/dist/integrations/webhook-handler.js +11 -0
- package/dist/integrations/webhook-handler.js.map +1 -1
- package/dist/localization/default-messages.d.ts +5 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +5 -0
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/observability/hosted-model-experiment.d.ts +39 -0
- package/dist/observability/hosted-model-experiment.d.ts.map +1 -0
- package/dist/observability/hosted-model-experiment.js +90 -0
- package/dist/observability/hosted-model-experiment.js.map +1 -0
- package/dist/observability/routes.d.ts.map +1 -1
- package/dist/observability/routes.js +16 -0
- package/dist/observability/routes.js.map +1 -1
- package/dist/observability/store.d.ts.map +1 -1
- package/dist/observability/store.js +4 -1
- package/dist/observability/store.js.map +1 -1
- package/dist/observability/traces.d.ts +6 -0
- package/dist/observability/traces.d.ts.map +1 -1
- package/dist/observability/traces.js +28 -2
- package/dist/observability/traces.js.map +1 -1
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/scripts/agent-engines/list-agent-engines.d.ts.map +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.js +19 -1
- package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -1
- package/dist/scripts/call-agent.d.ts.map +1 -1
- package/dist/scripts/call-agent.js +43 -3
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/scripts/chat/search-chats.d.ts +1 -1
- package/dist/scripts/chat/search-chats.d.ts.map +1 -1
- package/dist/scripts/chat/search-chats.js +11 -8
- package/dist/scripts/chat/search-chats.js.map +1 -1
- package/dist/secrets/register-framework-secrets.js +1 -1
- package/dist/secrets/register-framework-secrets.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +11 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +27 -6
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/auth.js +1 -1
- package/dist/server/auth.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts +3 -0
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +13 -0
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/credential-provider.d.ts +5 -3
- package/dist/server/credential-provider.d.ts.map +1 -1
- package/dist/server/credential-provider.js +7 -3
- package/dist/server/credential-provider.js.map +1 -1
- package/dist/server/realtime-voice.d.ts.map +1 -1
- package/dist/server/realtime-voice.js +55 -21
- package/dist/server/realtime-voice.js.map +1 -1
- package/dist/server/voice-providers-status.d.ts.map +1 -1
- package/dist/server/voice-providers-status.js +2 -3
- package/dist/server/voice-providers-status.js.map +1 -1
- package/dist/shared/cache-control.d.ts +6 -6
- package/dist/shared/cache-control.d.ts.map +1 -1
- package/dist/shared/cache-control.js +3 -3
- package/dist/shared/cache-control.js.map +1 -1
- package/dist/styles/agent-native.css +1 -0
- package/dist/styles/chat-history-list.css +313 -0
- package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +20 -0
- package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +8 -4
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +1 -0
- package/dist/vite/client.js.map +1 -1
- package/docs/content/locales/ar-SA/template-design.mdx +13 -0
- package/docs/content/locales/de-DE/template-design.mdx +18 -0
- package/docs/content/locales/es-ES/template-design.mdx +16 -0
- package/docs/content/locales/fr-FR/template-design.mdx +17 -0
- package/docs/content/locales/hi-IN/template-design.mdx +16 -0
- package/docs/content/locales/ja-JP/template-design.mdx +17 -0
- package/docs/content/locales/ko-KR/template-design.mdx +15 -0
- package/docs/content/locales/pt-BR/template-design.mdx +16 -0
- package/docs/content/locales/zh-CN/template-design.mdx +11 -0
- package/docs/content/locales/zh-TW/template-design.mdx +12 -0
- package/docs/content/template-design.mdx +16 -0
- package/package.json +4 -2
- package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +20 -0
- package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +8 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guided-questions.js","sourceRoot":"","sources":["../../src/client/guided-questions.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n IconCheck,\n IconChevronRight,\n IconUpload,\n IconX,\n} from \"@tabler/icons-react\";\nimport { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { sendToAgentChat } from \"./agent-chat.js\";\nimport { agentNativePath } from \"./api-path.js\";\nimport { setClientAppState } from \"./application-state.js\";\nimport { useChangeVersions } from \"./use-change-version.js\";\nimport { cn } from \"./utils.js\";\n\nexport type GuidedQuestionType =\n | \"text-options\"\n | \"color-options\"\n | \"slider\"\n | \"file\"\n | \"freeform\";\n\nexport interface GuidedQuestionOption {\n label: string;\n value: string;\n color?: string;\n icon?: string;\n description?: string;\n recommended?: boolean;\n /** Optional preview content (mockup, code snippet, or short comparison)\n * shown beneath the option to help the user compare choices. Mirrors the\n * `preview` field of Claude Code's AskUserQuestion options. */\n preview?: string;\n}\n\nexport interface GuidedQuestion {\n id: string;\n type: GuidedQuestionType;\n header?: string;\n question: string;\n description?: string;\n options?: GuidedQuestionOption[];\n choices?: GuidedQuestionOption[];\n multiSelect?: boolean;\n min?: number;\n max?: number;\n step?: number;\n required?: boolean;\n placeholder?: string;\n allowOther?: boolean;\n includeExplore?: boolean;\n includeDecide?: boolean;\n /** Submit immediately when a single-select option is clicked. */\n submitOnSelect?: boolean;\n}\n\nexport type GuidedQuestionAnswers = Record<string, unknown>;\n\nexport interface GuidedQuestionPayload {\n questions: GuidedQuestion[];\n title?: string;\n description?: string;\n skipLabel?: string;\n submitLabel?: string;\n submitMessage?: string;\n skipMessage?: string;\n /**\n * @internal Set by {@link askUserQuestion} for client-initiated questions.\n * When present, `useGuidedQuestionFlow` resolves the matching in-memory\n * promise with the answer instead of forwarding it to the agent chat.\n */\n clientResolveId?: string;\n}\n\nconst OTHER_OPTION_PREFIX = \"__other__:\";\nconst EXPLORE_OPTION: GuidedQuestionOption = {\n label: \"Explore a few options\",\n value: \"__explore__\",\n description: \"Show me a few distinct directions before committing.\",\n};\nconst DECIDE_OPTION: GuidedQuestionOption = {\n label: \"Decide for me\",\n value: \"__decide__\",\n description: \"Use your judgment and keep moving.\",\n};\n\nfunction isFileLike(value: unknown): value is { name: string } {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"name\" in value &&\n typeof (value as { name?: unknown }).name === \"string\"\n );\n}\n\nexport function isOtherGuidedAnswer(value: unknown): value is string {\n return typeof value === \"string\" && value.startsWith(OTHER_OPTION_PREFIX);\n}\n\nexport function getOtherGuidedAnswerText(value: unknown): string {\n return isOtherGuidedAnswer(value)\n ? value.slice(OTHER_OPTION_PREFIX.length)\n : \"\";\n}\n\nexport function makeOtherGuidedAnswer(text = \"\"): string {\n return `${OTHER_OPTION_PREFIX}${text}`;\n}\n\nexport function hasGuidedAnswer(value: unknown): boolean {\n if (value == null || value === \"\") return false;\n if (Array.isArray(value)) return value.some(hasGuidedAnswer);\n if (isOtherGuidedAnswer(value)) {\n return getOtherGuidedAnswerText(value).trim().length > 0;\n }\n return true;\n}\n\nexport function formatGuidedAnswerValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(formatGuidedAnswerValue).filter(hasGuidedAnswer);\n }\n if (isOtherGuidedAnswer(value)) {\n const text = getOtherGuidedAnswerText(value).trim();\n return text ? `Other: ${text}` : \"\";\n }\n if (isFileLike(value)) return value.name;\n return value;\n}\n\nexport function normalizeGuidedAnswers(\n answers: GuidedQuestionAnswers,\n): GuidedQuestionAnswers {\n return Object.fromEntries(\n Object.entries(answers).map(([id, value]) => [\n id,\n formatGuidedAnswerValue(value),\n ]),\n );\n}\n\nexport function formatGuidedAnswersForAgent(\n answers: GuidedQuestionAnswers,\n): string {\n return Object.entries(normalizeGuidedAnswers(answers))\n .filter(([, value]) => hasGuidedAnswer(value))\n .map(([id, value]) => {\n if (Array.isArray(value)) return `${id}: ${value.join(\", \")}`;\n return `${id}: ${String(value)}`;\n })\n .join(\"\\n\");\n}\n\nfunction defaultGuidedSubmitContext(formattedAnswers: string): string {\n return [\n \"The user answered the guided questions.\",\n \"Use the selected option values below as authoritative. If an answer includes exact ids, file names, or action instructions, follow those exact details instead of inferring them.\",\n \"\",\n \"Answers:\",\n formattedAnswers,\n ].join(\"\\n\");\n}\n\n/** A single option for {@link askUserQuestion}. Mirrors the agent `ask-question`\n * tool and Claude Code's AskUserQuestion option shape. */\nexport interface AskUserQuestionOption {\n /** Display text the user picks (1-5 words). */\n label: string;\n /** Value reported back. Defaults to `label` when omitted. */\n value?: string;\n /** Short explanation of the trade-off. */\n description?: string;\n /** Optional preview (mockup, code snippet, short comparison) shown under the option. */\n preview?: string;\n /** Mark the most likely option so the UI highlights it. */\n recommended?: boolean;\n}\n\n/** Input for {@link askUserQuestion}. */\nexport interface AskUserQuestionInput {\n /** The complete question. Clear, specific, ends with a question mark. */\n question: string;\n /** Optional very short chip/heading (≈12 chars), e.g. \"Date range\". */\n header?: string;\n /** 2-4 distinct options (mutually exclusive unless `allowMultiple`). */\n options: AskUserQuestionOption[];\n /** Allow a free-text \"Other\" answer. Default `true`. */\n allowFreeText?: boolean;\n /** Allow selecting more than one option (multi-select). Default `false`. */\n allowMultiple?: boolean;\n /** Application-state key the agent panel polls. Default `\"guided-questions\"`. */\n stateKey?: string;\n}\n\nconst GUIDED_QUESTIONS_STATE_KEY = \"guided-questions\";\n\n/** The user's answer to an {@link askUserQuestion}: the selected option\n * value(s), the free-text \"Other\" string, or `null` if the user skipped. */\nexport type AskUserQuestionResult = string | string[] | null;\n\n// In-memory resolver registry shared between `askUserQuestion` (which registers\n// a resolver and writes the question to application state) and\n// `useGuidedQuestionFlow` (which renders the question and, on submit/skip,\n// resolves the matching promise). Same module → the map is shared.\ntype AskQuestionResolver = (answer: AskUserQuestionResult) => void;\nconst clientQuestionResolvers = new Map<string, AskQuestionResolver>();\nlet askQuestionCounter = 0;\n\nfunction nextClientResolveId(): string {\n askQuestionCounter += 1;\n const rand =\n typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\"\n ? crypto.randomUUID()\n : `${Date.now()}-${Math.random().toString(36).slice(2)}`;\n return `askq-${askQuestionCounter}-${rand}`;\n}\n\n/** Resolve a pending client-initiated question by id. Returns false when no\n * resolver is registered (e.g. an agent-initiated question, or a reload). */\nfunction resolveClientQuestion(\n id: string,\n answer: AskUserQuestionResult,\n): boolean {\n const resolver = clientQuestionResolvers.get(id);\n if (!resolver) return false;\n clientQuestionResolvers.delete(id);\n resolver(answer);\n return true;\n}\n\n/** Pull the answer for a single guided question out of the answers map,\n * normalizing \"Other\" free-text and multi-select arrays. */\nfunction extractSingleAnswer(\n answers: GuidedQuestionAnswers,\n questionId: string,\n): AskUserQuestionResult {\n const raw = answers[questionId];\n if (!hasGuidedAnswer(raw)) return null;\n if (Array.isArray(raw)) {\n const values = raw\n .map((v) =>\n isOtherGuidedAnswer(v) ? getOtherGuidedAnswerText(v).trim() : String(v),\n )\n .filter((s) => s.length > 0);\n return values.length ? values : null;\n }\n if (isOtherGuidedAnswer(raw)) {\n const text = getOtherGuidedAnswerText(raw).trim();\n return text.length ? text : null;\n }\n return String(raw);\n}\n\n/**\n * Ask the user a multiple-choice question from app code and render it inline in\n * the agent panel — the client-side twin of the agent's `ask-question` tool.\n *\n * The question is written to application state (`\"guided-questions\"` by\n * default), where the mounted `GuidedQuestionFlow` (driven by\n * {@link useGuidedQuestionFlow}) renders it, and the agent panel is revealed so\n * it's visible. **Resolves with the user's answer** — the selected option\n * value (or `value[]` when `allowMultiple`), the free-text \"Other\" string, or\n * `null` if they skip — so the caller can branch on it (e.g. build the right\n * generate prompt before kicking off agent work):\n *\n * ```ts\n * const length = await askUserQuestion({\n * question: \"How long should this deck be?\",\n * header: \"Deck length\",\n * options: [{ label: \"Short\", recommended: true }, { label: \"Long\" }],\n * });\n * if (length) sendToAgentChat({ message: `Make a ${length} deck`, submit: true });\n * ```\n *\n * Requires the agent panel (the mounted `GuidedQuestionFlow`) to exist, which\n * it does in every template. The returned promise stays pending until the user\n * answers or skips.\n */\nexport async function askUserQuestion(\n input: AskUserQuestionInput,\n): Promise<AskUserQuestionResult> {\n const question = String(input?.question ?? \"\").trim();\n if (!question) {\n throw new TypeError(\"askUserQuestion: `question` is required.\");\n }\n const header =\n typeof input.header === \"string\" && input.header.trim()\n ? input.header.trim()\n : undefined;\n const allowMultiple = input.allowMultiple === true;\n const allowFreeText = input.allowFreeText !== false;\n\n const options: GuidedQuestionOption[] = (\n Array.isArray(input.options) ? input.options : []\n )\n .map((raw): GuidedQuestionOption | null => {\n const label =\n typeof raw?.label === \"string\" && raw.label.trim()\n ? raw.label.trim()\n : typeof raw?.value === \"string\"\n ? String(raw.value).trim()\n : \"\";\n if (!label) return null;\n const value =\n typeof raw?.value === \"string\" && raw.value.trim()\n ? raw.value.trim()\n : label;\n const option: GuidedQuestionOption = { label, value };\n if (typeof raw.description === \"string\" && raw.description.trim()) {\n option.description = raw.description.trim();\n }\n if (typeof raw.preview === \"string\" && raw.preview.trim()) {\n option.preview = raw.preview;\n }\n if (raw.recommended === true) option.recommended = true;\n return option;\n })\n .filter((opt): opt is GuidedQuestionOption => opt !== null);\n\n if (options.length === 0) {\n throw new TypeError(\n \"askUserQuestion: `options` must contain at least one option with a label.\",\n );\n }\n\n const resolveId = nextClientResolveId();\n const payload: GuidedQuestionPayload = {\n clientResolveId: resolveId,\n questions: [\n {\n id: \"q1\",\n type: \"text-options\",\n question,\n ...(header ? { header } : {}),\n required: !allowFreeText,\n multiSelect: allowMultiple,\n allowOther: allowFreeText,\n includeExplore: false,\n includeDecide: false,\n options,\n },\n ],\n };\n\n const answerPromise = new Promise<AskUserQuestionResult>((resolve) => {\n clientQuestionResolvers.set(resolveId, resolve);\n });\n\n // Reveal the agent panel so the inline question is visible even if collapsed.\n if (typeof window !== \"undefined\") {\n try {\n window.dispatchEvent(new CustomEvent(\"agent-panel:open\"));\n } catch {\n // best-effort — the question still renders if the panel is already open\n }\n }\n\n try {\n await setClientAppState(\n input.stateKey ?? GUIDED_QUESTIONS_STATE_KEY,\n payload,\n );\n } catch (err) {\n clientQuestionResolvers.delete(resolveId);\n throw err;\n }\n\n return answerPromise;\n}\n\nfunction optionKey(option: GuidedQuestionOption): string {\n return `${option.value.toLowerCase()}::${option.label.toLowerCase()}`;\n}\n\n/** Stable content hash so poll refreshes do not reset in-progress answers. */\nexport function guidedQuestionsFingerprint(\n questions: GuidedQuestion[],\n): string {\n return JSON.stringify(\n questions.map((question) => ({\n id: question.id,\n type: question.type,\n header: question.header ?? null,\n question: question.question,\n description: question.description ?? null,\n multiSelect: question.multiSelect ?? false,\n required: question.required ?? false,\n allowOther: question.allowOther ?? null,\n includeExplore: question.includeExplore ?? null,\n includeDecide: question.includeDecide ?? null,\n submitOnSelect: question.submitOnSelect ?? false,\n min: question.min ?? null,\n max: question.max ?? null,\n step: question.step ?? null,\n placeholder: question.placeholder ?? null,\n options: (question.options ?? question.choices ?? []).map((option) => ({\n label: option.label,\n value: option.value,\n color: option.color ?? null,\n description: option.description ?? null,\n recommended: option.recommended ?? false,\n })),\n })),\n );\n}\n\nfunction withDefaultOptions(question: GuidedQuestion): GuidedQuestionOption[] {\n const base = question.options ?? question.choices ?? [];\n const seen = new Set(base.map(optionKey));\n const result = [...base];\n const maybePush = (option: GuidedQuestionOption, enabled: boolean) => {\n if (!enabled) return;\n const key = optionKey(option);\n const label = option.label.toLowerCase();\n const value = option.value.toLowerCase();\n const duplicate = result.some(\n (existing) =>\n optionKey(existing) === key ||\n existing.label.toLowerCase() === label ||\n existing.value.toLowerCase() === value,\n );\n if (duplicate || seen.has(key)) return;\n seen.add(key);\n result.push(option);\n };\n maybePush(EXPLORE_OPTION, question.includeExplore !== false);\n maybePush(DECIDE_OPTION, question.includeDecide !== false);\n return result;\n}\n\nexport interface GuidedQuestionFlowProps {\n questions: GuidedQuestion[];\n onSubmit: (answers: GuidedQuestionAnswers) => void;\n onSkip: () => void;\n title?: string;\n description?: string;\n skipLabel?: string;\n submitLabel?: string;\n className?: string;\n}\n\nexport function GuidedQuestionFlow({\n questions,\n onSubmit,\n onSkip,\n title = \"Before I generate\",\n description = \"Use Other for custom details, or let the agent decide.\",\n skipLabel = \"Skip\",\n submitLabel = \"Continue\",\n className,\n}: GuidedQuestionFlowProps) {\n const [answers, setAnswers] = useState<GuidedQuestionAnswers>({});\n const questionsFingerprint = useMemo(\n () => guidedQuestionsFingerprint(questions),\n [questions],\n );\n\n useEffect(() => {\n setAnswers({});\n }, [questionsFingerprint]);\n\n const setAnswer = useCallback((id: string, value: unknown) => {\n setAnswers((prev) => ({ ...prev, [id]: value }));\n }, []);\n const submitAnswers = useCallback(\n (nextAnswers: GuidedQuestionAnswers = answers) =>\n onSubmit(normalizeGuidedAnswers(nextAnswers)),\n [answers, onSubmit],\n );\n\n const allRequiredAnswered = questions\n .filter((question) => question.required)\n .every((question) => hasGuidedAnswer(answers[question.id]));\n\n return (\n <div\n className={cn(\n \"guided-question-flow flex h-full w-full items-center justify-center bg-background text-foreground\",\n className,\n )}\n >\n <div className=\"guided-question-flow-inner flex max-h-full w-full max-w-3xl flex-col px-3 py-4\">\n <div className=\"guided-question-flow-header mb-4 min-w-0\">\n <h2 className=\"guided-question-flow-title text-lg font-semibold leading-tight tracking-normal text-foreground\">\n {title}\n </h2>\n {description && (\n <p className=\"guided-question-flow-description mt-1 max-w-2xl text-sm leading-5 text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n\n <div className=\"guided-question-flow-list min-h-0 flex-1 overflow-y-auto pe-1\">\n {questions.map((question, index) => (\n <QuestionCard\n key={question.id}\n index={index}\n question={question}\n value={answers[question.id]}\n onChange={(value) => setAnswer(question.id, value)}\n onSubmitAnswer={(value) =>\n submitAnswers({ ...answers, [question.id]: value })\n }\n />\n ))}\n </div>\n\n <div className=\"guided-question-flow-footer mt-4 flex shrink-0 items-center justify-between gap-3 border-t border-border pt-3\">\n <div className=\"flex items-center gap-1.5\">\n {questions.map((question, index) => (\n <span\n key={question.id || index}\n className={cn(\n \"h-1.5 w-1.5 rounded-full\",\n hasGuidedAnswer(answers[question.id])\n ? \"bg-primary\"\n : \"bg-muted-foreground/30\",\n )}\n />\n ))}\n </div>\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={onSkip}\n className=\"cursor-pointer rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/60 hover:text-foreground\"\n >\n {skipLabel}\n </button>\n <button\n type=\"button\"\n onClick={() => submitAnswers()}\n disabled={!allRequiredAnswered}\n className=\"inline-flex cursor-pointer items-center gap-2 rounded-md bg-primary px-3.5 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90 disabled:cursor-not-allowed disabled:opacity-45\"\n >\n {submitLabel}\n <IconChevronRight className=\"h-4 w-4 rtl:-scale-x-100\" />\n </button>\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction QuestionCard({\n index,\n question,\n value,\n onChange,\n onSubmitAnswer,\n}: {\n index: number;\n question: GuidedQuestion;\n value: unknown;\n onChange: (value: unknown) => void;\n onSubmitAnswer: (value: unknown) => void;\n}) {\n return (\n <section className=\"guided-question-card border-t border-border/60 py-3 first:border-t-0 first:pt-0 last:pb-0\">\n <div className=\"mb-2 flex gap-2.5\">\n <div className=\"guided-question-index mt-0.5 min-w-4 text-xs font-medium tabular-nums text-muted-foreground\">\n {index + 1}\n </div>\n <div className=\"min-w-0\">\n {question.header && (\n <p className=\"mb-1 text-[11px] font-medium uppercase text-muted-foreground\">\n {question.header}\n </p>\n )}\n <h3 className=\"text-sm font-medium leading-5 text-foreground\">\n {question.question}\n {question.required && (\n <span className=\"ms-1 text-destructive\">*</span>\n )}\n </h3>\n {question.description && (\n <p className=\"mt-1 text-xs leading-5 text-muted-foreground\">\n {question.description}\n </p>\n )}\n </div>\n </div>\n\n {question.type === \"text-options\" && (\n <TextOptions\n question={question}\n value={value}\n onChange={onChange}\n onSubmitAnswer={onSubmitAnswer}\n />\n )}\n {question.type === \"color-options\" && (\n <ColorOptions question={question} value={value} onChange={onChange} />\n )}\n {question.type === \"slider\" && (\n <SliderQuestion question={question} value={value} onChange={onChange} />\n )}\n {question.type === \"file\" && (\n <FileDropZone value={value} onChange={onChange} />\n )}\n {question.type === \"freeform\" && (\n <textarea\n value={typeof value === \"string\" ? value : \"\"}\n onChange={(event) => onChange(event.target.value)}\n placeholder={question.placeholder ?? \"Type your answer...\"}\n className=\"min-h-[84px] w-full resize-none rounded-md border border-border bg-muted/45 px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground/70 focus:border-primary\"\n />\n )}\n </section>\n );\n}\n\nfunction TextOptions({\n question,\n value,\n onChange,\n onSubmitAnswer,\n}: {\n question: GuidedQuestion;\n value: unknown;\n onChange: (value: unknown) => void;\n onSubmitAnswer: (value: unknown) => void;\n}) {\n const options = useMemo(() => withDefaultOptions(question), [question]);\n const multiSelect = question.multiSelect === true;\n const selectedValues = Array.isArray(value) ? value : [];\n const otherSelected = multiSelect\n ? selectedValues.some(isOtherGuidedAnswer)\n : isOtherGuidedAnswer(value);\n const otherText = multiSelect\n ? getOtherGuidedAnswerText(selectedValues.find(isOtherGuidedAnswer))\n : getOtherGuidedAnswerText(value);\n\n const isSelected = (optionValue: string) =>\n multiSelect ? selectedValues.includes(optionValue) : value === optionValue;\n\n const toggleOption = (optionValue: string) => {\n if (!multiSelect) {\n onChange(optionValue);\n if (question.submitOnSelect) onSubmitAnswer(optionValue);\n return;\n }\n const next = selectedValues.includes(optionValue)\n ? selectedValues.filter((item) => item !== optionValue)\n : [...selectedValues, optionValue];\n onChange(next);\n };\n\n const toggleOther = () => {\n if (!multiSelect) {\n onChange(otherSelected ? \"\" : makeOtherGuidedAnswer());\n return;\n }\n if (otherSelected) {\n onChange(selectedValues.filter((item) => !isOtherGuidedAnswer(item)));\n return;\n }\n onChange([...selectedValues, makeOtherGuidedAnswer()]);\n };\n\n const setOtherText = (text: string) => {\n const nextOther = makeOtherGuidedAnswer(text);\n if (!multiSelect) {\n onChange(nextOther);\n return;\n }\n onChange([\n ...selectedValues.filter((item) => !isOtherGuidedAnswer(item)),\n nextOther,\n ]);\n };\n\n const allowOther = question.allowOther !== false;\n\n return (\n <div className=\"space-y-2.5\">\n <div className=\"guided-question-flow-options grid grid-cols-1 gap-2\">\n {options.map((option) => (\n <OptionButton\n key={`${option.value}:${option.label}`}\n option={option}\n selected={isSelected(option.value)}\n multiSelect={multiSelect}\n onClick={() => toggleOption(option.value)}\n />\n ))}\n {allowOther && (\n <OptionButton\n option={{\n label: \"Other...\",\n value: \"__other__\",\n description: \"Tell the agent exactly what you mean.\",\n }}\n selected={otherSelected}\n multiSelect={multiSelect}\n onClick={toggleOther}\n />\n )}\n </div>\n {allowOther && otherSelected && (\n <textarea\n autoFocus\n value={otherText}\n onChange={(event) => setOtherText(event.target.value)}\n placeholder={question.placeholder ?? \"Type a custom answer...\"}\n className=\"min-h-[72px] w-full resize-none rounded-md border border-border bg-muted/45 px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground/70 focus:border-primary\"\n />\n )}\n </div>\n );\n}\n\nfunction OptionButton({\n option,\n selected,\n multiSelect,\n onClick,\n}: {\n option: GuidedQuestionOption;\n selected: boolean;\n multiSelect?: boolean;\n onClick: () => void;\n}) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n aria-pressed={selected}\n className={cn(\n \"group flex min-h-11 min-w-0 cursor-pointer items-start gap-2 rounded-md border px-2.5 py-2 text-start transition-colors\",\n selected\n ? \"border-primary bg-primary/10 text-foreground ring-2 ring-primary/25\"\n : \"border-border bg-muted/30 text-muted-foreground hover:border-muted-foreground/50 hover:bg-muted/45 hover:text-foreground\",\n )}\n >\n <span\n className={cn(\n \"mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center border\",\n multiSelect ? \"rounded-sm\" : \"rounded-full\",\n selected\n ? \"border-primary bg-primary text-primary-foreground\"\n : \"border-border bg-background\",\n )}\n aria-hidden\n >\n {selected && <IconCheck className=\"h-3 w-3\" />}\n </span>\n <span className=\"min-w-0 flex-1\">\n <span className=\"flex flex-wrap items-center gap-1.5 text-sm font-medium leading-5\">\n {option.label}\n {option.recommended && (\n <span className=\"rounded-sm bg-primary/15 px-1.5 py-0.5 text-[10px] font-medium uppercase text-primary\">\n Recommended\n </span>\n )}\n </span>\n {option.description && (\n <span className=\"mt-0.5 block text-xs leading-4 text-muted-foreground\">\n {option.description}\n </span>\n )}\n {option.preview && (\n <span className=\"mt-1.5 block max-h-40 overflow-auto whitespace-pre-wrap rounded border border-border/60 bg-background/60 px-2 py-1.5 font-mono text-[11px] leading-4 text-muted-foreground\">\n {option.preview}\n </span>\n )}\n </span>\n </button>\n );\n}\n\nfunction ColorOptions({\n question,\n value,\n onChange,\n}: {\n question: GuidedQuestion;\n value: unknown;\n onChange: (value: unknown) => void;\n}) {\n const options = question.options ?? question.choices ?? [];\n const multiSelect = question.multiSelect === true;\n const selectedValues = Array.isArray(value) ? value : [];\n const isSelected = (optionValue: string) =>\n multiSelect ? selectedValues.includes(optionValue) : value === optionValue;\n\n const toggleOption = (optionValue: string) => {\n if (!multiSelect) {\n onChange(optionValue);\n return;\n }\n onChange(\n selectedValues.includes(optionValue)\n ? selectedValues.filter((item) => item !== optionValue)\n : [...selectedValues, optionValue],\n );\n };\n\n return (\n <div className=\"flex flex-wrap gap-3\">\n {options.map((option) => {\n const selected = isSelected(option.value);\n return (\n <button\n type=\"button\"\n key={`${option.value}:${option.label}`}\n onClick={() => toggleOption(option.value)}\n className=\"group flex cursor-pointer flex-col items-center gap-1.5\"\n >\n <span\n className={cn(\n \"h-10 w-10 rounded-full\",\n selected\n ? \"ring-2 ring-primary ring-offset-2 ring-offset-background\"\n : \"ring-1 ring-border group-hover:ring-muted-foreground/50\",\n )}\n style={{ backgroundColor: option.color || option.value }}\n />\n <span\n className={cn(\n \"max-w-20 truncate text-[10px]\",\n selected ? \"text-foreground\" : \"text-muted-foreground\",\n )}\n >\n {option.label}\n </span>\n </button>\n );\n })}\n </div>\n );\n}\n\nfunction SliderQuestion({\n question,\n value,\n onChange,\n}: {\n question: GuidedQuestion;\n value: unknown;\n onChange: (value: unknown) => void;\n}) {\n const min = question.min ?? 0;\n const max = question.max ?? 100;\n const step = question.step ?? 1;\n const current =\n typeof value === \"number\" ? value : Math.round((min + max) / 2);\n\n return (\n <div className=\"flex items-center gap-4\">\n <span className=\"w-8 text-xs text-muted-foreground\">{min}</span>\n <input\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={current}\n onChange={(event) => onChange(Number(event.target.value))}\n className=\"h-2 flex-1 cursor-pointer accent-primary\"\n />\n <span className=\"w-8 text-end text-xs text-muted-foreground\">{max}</span>\n <span className=\"min-w-10 text-end text-sm font-medium tabular-nums text-foreground\">\n {current}\n </span>\n </div>\n );\n}\n\nfunction FileDropZone({\n value,\n onChange,\n}: {\n value: unknown;\n onChange: (value: unknown) => void;\n}) {\n const [dragOver, setDragOver] = useState(false);\n const files: File[] = Array.isArray(value) ? (value as File[]) : [];\n\n const addFiles = (incoming: File[]) => onChange([...files, ...incoming]);\n const removeFile = (index: number) =>\n onChange(files.filter((_, fileIndex) => fileIndex !== index));\n\n return (\n <div>\n <div\n onDragOver={(event) => {\n event.preventDefault();\n setDragOver(true);\n }}\n onDragLeave={() => setDragOver(false)}\n onDrop={(event) => {\n event.preventDefault();\n setDragOver(false);\n addFiles(Array.from(event.dataTransfer.files));\n }}\n className={cn(\n \"flex cursor-pointer flex-col items-center justify-center rounded-md border-2 border-dashed p-5 transition-colors\",\n dragOver\n ? \"border-primary bg-primary/5\"\n : \"border-border bg-muted/30 hover:border-muted-foreground/50\",\n )}\n >\n <IconUpload className=\"mb-2 h-5 w-5 text-muted-foreground\" />\n <p className=\"text-sm text-muted-foreground\">\n Drag files here or{\" \"}\n <label className=\"cursor-pointer text-primary hover:underline\">\n browse\n <input\n type=\"file\"\n multiple\n onChange={(event) => {\n if (event.target.files)\n addFiles(Array.from(event.target.files));\n event.currentTarget.value = \"\";\n }}\n className=\"hidden\"\n />\n </label>\n </p>\n </div>\n\n {files.length > 0 && (\n <div className=\"mt-2 space-y-1\">\n {files.map((file, index) => (\n <div\n key={`${file.name}:${index}`}\n className=\"flex items-center gap-2 rounded-md bg-muted/50 px-2 py-1 text-xs text-muted-foreground\"\n >\n <IconCheck className=\"h-3 w-3 text-primary\" />\n <span className=\"min-w-0 flex-1 truncate\">{file.name}</span>\n <button\n type=\"button\"\n onClick={() => removeFile(index)}\n className=\"cursor-pointer text-muted-foreground/70 hover:text-foreground\"\n aria-label={`Remove ${file.name}`}\n >\n <IconX className=\"h-3 w-3\" />\n </button>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n}\n\nconst SAFE_BROWSER_TAB_ID_RE = /^[A-Za-z0-9_-]{1,96}$/;\n\nfunction normalizeBrowserTabId(browserTabId?: string): string | undefined {\n if (typeof browserTabId !== \"string\") return undefined;\n const trimmed = browserTabId.trim();\n return SAFE_BROWSER_TAB_ID_RE.test(trimmed) ? trimmed : undefined;\n}\n\nexport interface UseGuidedQuestionFlowOptions {\n stateKey?: string;\n /**\n * The current browser tab id. Agent actions that write the guided-questions\n * payload scope the application-state key per tab (`<key>:<tabId>`), so the\n * client must read the scoped key first and fall back to the bare key. Without\n * this, the question card never renders when the agent run carries a tab id\n * (which it almost always does — see `sessionBrowserTabId`).\n */\n browserTabId?: string;\n queryKey?: readonly unknown[];\n refetchInterval?: number | false;\n submitMessage?: string;\n skipMessage?: string;\n buildSubmitContext?: (args: {\n answers: GuidedQuestionAnswers;\n formattedAnswers: string;\n }) => string;\n buildSkipContext?: () => string;\n}\n\nexport function useGuidedQuestionFlow({\n stateKey = \"show-questions\",\n browserTabId,\n queryKey = [\"show-questions\"],\n refetchInterval = false,\n submitMessage = \"Here are my answers — go ahead.\",\n skipMessage = \"Skip the questions — decide for me.\",\n buildSubmitContext,\n buildSkipContext,\n}: UseGuidedQuestionFlowOptions = {}) {\n const queryClient = useQueryClient();\n const [payload, setPayload] = useState<GuidedQuestionPayload | null>(null);\n const normalizedBrowserTabId = useMemo(\n () => normalizeBrowserTabId(browserTabId),\n [browserTabId],\n );\n const endpointFor = useCallback(\n (key: string) => agentNativePath(`/_agent-native/application-state/${key}`),\n [],\n );\n const scopedKey = normalizedBrowserTabId\n ? `${stateKey}:${normalizedBrowserTabId}`\n : stateKey;\n const stateVersionSources = useMemo(\n () =>\n normalizedBrowserTabId\n ? [`app-state:${scopedKey}`, `app-state:${stateKey}`]\n : [`app-state:${stateKey}`],\n [normalizedBrowserTabId, scopedKey, stateKey],\n );\n const stateVersion = useChangeVersions(stateVersionSources);\n // Match the queryKey to the scope so two tabs polling different scoped keys\n // don't share a cache entry.\n const resolvedQueryKey = useMemo(\n () => [...queryKey, normalizedBrowserTabId ?? \"global\", stateVersion],\n [queryKey, normalizedBrowserTabId, stateVersion],\n );\n\n const resolvedRefetchInterval =\n refetchInterval === false\n ? false\n : (query: { state: { data?: GuidedQuestionPayload | null } }) => {\n const activeQuestions = query.state.data?.questions;\n if (Array.isArray(activeQuestions) && activeQuestions.length > 0) {\n return false;\n }\n return refetchInterval;\n };\n\n const { data } = useQuery({\n queryKey: resolvedQueryKey,\n queryFn: async () => {\n const read = async (key: string) => {\n const res = await fetch(endpointFor(key));\n if (!res.ok) return null;\n const text = await res.text();\n if (!text) return null;\n try {\n const parsed = JSON.parse(text);\n if (Array.isArray(parsed?.questions) && parsed.questions.length > 0) {\n return parsed as GuidedQuestionPayload;\n }\n } catch {\n return null;\n }\n return null;\n };\n // Agent writes are tab-scoped; read the scoped key first, then fall back\n // to the bare key (e.g. a deterministic write that omits the tab id).\n return (\n (normalizedBrowserTabId ? await read(scopedKey) : null) ??\n (await read(stateKey))\n );\n },\n refetchInterval: resolvedRefetchInterval,\n structuralSharing: false,\n });\n\n useEffect(() => {\n if (Array.isArray(data?.questions) && data.questions.length > 0) {\n setPayload((prev) => {\n if (\n prev &&\n guidedQuestionsFingerprint(prev.questions) ===\n guidedQuestionsFingerprint(data.questions)\n ) {\n return prev;\n }\n return data;\n });\n } else {\n setPayload(null);\n }\n }, [data]);\n\n const clear = useCallback(() => {\n setPayload(null);\n queryClient.setQueryData(resolvedQueryKey, null);\n const del = (key: string) =>\n fetch(endpointFor(key), {\n method: \"DELETE\",\n headers: { \"X-Agent-Native-CSRF\": \"1\" },\n }).catch(() => {});\n // Clear whichever key actually held the payload (scoped or bare) so the\n // card doesn't reappear on the next poll.\n del(scopedKey);\n if (scopedKey !== stateKey) del(stateKey);\n }, [endpointFor, queryClient, resolvedQueryKey, scopedKey, stateKey]);\n\n const handleSubmit = useCallback(\n (answers: GuidedQuestionAnswers) => {\n // Client-initiated question (askUserQuestion): resolve the caller's\n // promise with the answer instead of forwarding it to the agent chat.\n const resolveId = payload?.clientResolveId;\n if (resolveId) {\n const firstId = payload?.questions?.[0]?.id ?? \"q1\";\n resolveClientQuestion(resolveId, extractSingleAnswer(answers, firstId));\n clear();\n return;\n }\n const formattedAnswers = formatGuidedAnswersForAgent(answers);\n const resolvedSubmitMessage = payload?.submitMessage ?? submitMessage;\n const context =\n buildSubmitContext?.({ answers, formattedAnswers }) ??\n defaultGuidedSubmitContext(formattedAnswers);\n sendToAgentChat({\n message: resolvedSubmitMessage,\n context,\n submit: true,\n });\n clear();\n },\n [buildSubmitContext, clear, payload, submitMessage],\n );\n\n const handleSkip = useCallback(() => {\n const resolveId = payload?.clientResolveId;\n if (resolveId) {\n resolveClientQuestion(resolveId, null);\n clear();\n return;\n }\n sendToAgentChat({\n message: payload?.skipMessage ?? skipMessage,\n context: buildSkipContext?.(),\n submit: true,\n });\n clear();\n }, [buildSkipContext, clear, payload, skipMessage]);\n\n return {\n payload,\n questions: payload?.questions ?? null,\n title: payload?.title,\n description: payload?.description,\n skipLabel: payload?.skipLabel,\n submitLabel: payload?.submitLabel,\n clear,\n handleSubmit,\n handleSkip,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"guided-questions.js","sourceRoot":"","sources":["../../src/client/guided-questions.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n IconCheck,\n IconChevronRight,\n IconUpload,\n IconX,\n} from \"@tabler/icons-react\";\nimport {\n keepPreviousData,\n useQuery,\n useQueryClient,\n} from \"@tanstack/react-query\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { sendToAgentChat } from \"./agent-chat.js\";\nimport { agentNativePath } from \"./api-path.js\";\nimport { setClientAppState } from \"./application-state.js\";\nimport { useChangeVersions } from \"./use-change-version.js\";\nimport { cn } from \"./utils.js\";\n\nexport type GuidedQuestionType =\n | \"text-options\"\n | \"color-options\"\n | \"slider\"\n | \"file\"\n | \"freeform\";\n\nexport interface GuidedQuestionOption {\n label: string;\n value: string;\n color?: string;\n icon?: string;\n description?: string;\n recommended?: boolean;\n /** Optional preview content (mockup, code snippet, or short comparison)\n * shown beneath the option to help the user compare choices. Mirrors the\n * `preview` field of Claude Code's AskUserQuestion options. */\n preview?: string;\n}\n\nexport interface GuidedQuestion {\n id: string;\n type: GuidedQuestionType;\n header?: string;\n question: string;\n description?: string;\n options?: GuidedQuestionOption[];\n choices?: GuidedQuestionOption[];\n multiSelect?: boolean;\n min?: number;\n max?: number;\n step?: number;\n required?: boolean;\n placeholder?: string;\n allowOther?: boolean;\n includeExplore?: boolean;\n includeDecide?: boolean;\n /** Submit immediately when a single-select option is clicked. */\n submitOnSelect?: boolean;\n}\n\nexport type GuidedQuestionAnswers = Record<string, unknown>;\n\nexport interface GuidedQuestionPayload {\n questions: GuidedQuestion[];\n title?: string;\n description?: string;\n skipLabel?: string;\n submitLabel?: string;\n submitMessage?: string;\n skipMessage?: string;\n /**\n * @internal Set by {@link askUserQuestion} for client-initiated questions.\n * When present, `useGuidedQuestionFlow` resolves the matching in-memory\n * promise with the answer instead of forwarding it to the agent chat.\n */\n clientResolveId?: string;\n}\n\nconst OTHER_OPTION_PREFIX = \"__other__:\";\nconst EXPLORE_OPTION: GuidedQuestionOption = {\n label: \"Explore a few options\",\n value: \"__explore__\",\n description: \"Show me a few distinct directions before committing.\",\n};\nconst DECIDE_OPTION: GuidedQuestionOption = {\n label: \"Decide for me\",\n value: \"__decide__\",\n description: \"Use your judgment and keep moving.\",\n};\n\nfunction isFileLike(value: unknown): value is { name: string } {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"name\" in value &&\n typeof (value as { name?: unknown }).name === \"string\"\n );\n}\n\nexport function isOtherGuidedAnswer(value: unknown): value is string {\n return typeof value === \"string\" && value.startsWith(OTHER_OPTION_PREFIX);\n}\n\nexport function getOtherGuidedAnswerText(value: unknown): string {\n return isOtherGuidedAnswer(value)\n ? value.slice(OTHER_OPTION_PREFIX.length)\n : \"\";\n}\n\nexport function makeOtherGuidedAnswer(text = \"\"): string {\n return `${OTHER_OPTION_PREFIX}${text}`;\n}\n\nexport function hasGuidedAnswer(value: unknown): boolean {\n if (value == null || value === \"\") return false;\n if (Array.isArray(value)) return value.some(hasGuidedAnswer);\n if (isOtherGuidedAnswer(value)) {\n return getOtherGuidedAnswerText(value).trim().length > 0;\n }\n return true;\n}\n\nexport function formatGuidedAnswerValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(formatGuidedAnswerValue).filter(hasGuidedAnswer);\n }\n if (isOtherGuidedAnswer(value)) {\n const text = getOtherGuidedAnswerText(value).trim();\n return text ? `Other: ${text}` : \"\";\n }\n if (isFileLike(value)) return value.name;\n return value;\n}\n\nexport function normalizeGuidedAnswers(\n answers: GuidedQuestionAnswers,\n): GuidedQuestionAnswers {\n return Object.fromEntries(\n Object.entries(answers).map(([id, value]) => [\n id,\n formatGuidedAnswerValue(value),\n ]),\n );\n}\n\nexport function formatGuidedAnswersForAgent(\n answers: GuidedQuestionAnswers,\n): string {\n return Object.entries(normalizeGuidedAnswers(answers))\n .filter(([, value]) => hasGuidedAnswer(value))\n .map(([id, value]) => {\n if (Array.isArray(value)) return `${id}: ${value.join(\", \")}`;\n return `${id}: ${String(value)}`;\n })\n .join(\"\\n\");\n}\n\nfunction defaultGuidedSubmitContext(formattedAnswers: string): string {\n return [\n \"The user answered the guided questions.\",\n \"Use the selected option values below as authoritative. If an answer includes exact ids, file names, or action instructions, follow those exact details instead of inferring them.\",\n \"\",\n \"Answers:\",\n formattedAnswers,\n ].join(\"\\n\");\n}\n\n/** A single option for {@link askUserQuestion}. Mirrors the agent `ask-question`\n * tool and Claude Code's AskUserQuestion option shape. */\nexport interface AskUserQuestionOption {\n /** Display text the user picks (1-5 words). */\n label: string;\n /** Value reported back. Defaults to `label` when omitted. */\n value?: string;\n /** Short explanation of the trade-off. */\n description?: string;\n /** Optional preview (mockup, code snippet, short comparison) shown under the option. */\n preview?: string;\n /** Mark the most likely option so the UI highlights it. */\n recommended?: boolean;\n}\n\n/** Input for {@link askUserQuestion}. */\nexport interface AskUserQuestionInput {\n /** The complete question. Clear, specific, ends with a question mark. */\n question: string;\n /** Optional very short chip/heading (≈12 chars), e.g. \"Date range\". */\n header?: string;\n /** 2-4 distinct options (mutually exclusive unless `allowMultiple`). */\n options: AskUserQuestionOption[];\n /** Allow a free-text \"Other\" answer. Default `true`. */\n allowFreeText?: boolean;\n /** Allow selecting more than one option (multi-select). Default `false`. */\n allowMultiple?: boolean;\n /** Application-state key the agent panel polls. Default `\"guided-questions\"`. */\n stateKey?: string;\n}\n\nconst GUIDED_QUESTIONS_STATE_KEY = \"guided-questions\";\n\n/** The user's answer to an {@link askUserQuestion}: the selected option\n * value(s), the free-text \"Other\" string, or `null` if the user skipped. */\nexport type AskUserQuestionResult = string | string[] | null;\n\n// In-memory resolver registry shared between `askUserQuestion` (which registers\n// a resolver and writes the question to application state) and\n// `useGuidedQuestionFlow` (which renders the question and, on submit/skip,\n// resolves the matching promise). Same module → the map is shared.\ntype AskQuestionResolver = (answer: AskUserQuestionResult) => void;\nconst clientQuestionResolvers = new Map<string, AskQuestionResolver>();\nlet askQuestionCounter = 0;\n\nfunction nextClientResolveId(): string {\n askQuestionCounter += 1;\n const rand =\n typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\"\n ? crypto.randomUUID()\n : `${Date.now()}-${Math.random().toString(36).slice(2)}`;\n return `askq-${askQuestionCounter}-${rand}`;\n}\n\n/** Resolve a pending client-initiated question by id. Returns false when no\n * resolver is registered (e.g. an agent-initiated question, or a reload). */\nfunction resolveClientQuestion(\n id: string,\n answer: AskUserQuestionResult,\n): boolean {\n const resolver = clientQuestionResolvers.get(id);\n if (!resolver) return false;\n clientQuestionResolvers.delete(id);\n resolver(answer);\n return true;\n}\n\n/** Pull the answer for a single guided question out of the answers map,\n * normalizing \"Other\" free-text and multi-select arrays. */\nfunction extractSingleAnswer(\n answers: GuidedQuestionAnswers,\n questionId: string,\n): AskUserQuestionResult {\n const raw = answers[questionId];\n if (!hasGuidedAnswer(raw)) return null;\n if (Array.isArray(raw)) {\n const values = raw\n .map((v) =>\n isOtherGuidedAnswer(v) ? getOtherGuidedAnswerText(v).trim() : String(v),\n )\n .filter((s) => s.length > 0);\n return values.length ? values : null;\n }\n if (isOtherGuidedAnswer(raw)) {\n const text = getOtherGuidedAnswerText(raw).trim();\n return text.length ? text : null;\n }\n return String(raw);\n}\n\n/**\n * Ask the user a multiple-choice question from app code and render it inline in\n * the agent panel — the client-side twin of the agent's `ask-question` tool.\n *\n * The question is written to application state (`\"guided-questions\"` by\n * default), where the mounted `GuidedQuestionFlow` (driven by\n * {@link useGuidedQuestionFlow}) renders it, and the agent panel is revealed so\n * it's visible. **Resolves with the user's answer** — the selected option\n * value (or `value[]` when `allowMultiple`), the free-text \"Other\" string, or\n * `null` if they skip — so the caller can branch on it (e.g. build the right\n * generate prompt before kicking off agent work):\n *\n * ```ts\n * const length = await askUserQuestion({\n * question: \"How long should this deck be?\",\n * header: \"Deck length\",\n * options: [{ label: \"Short\", recommended: true }, { label: \"Long\" }],\n * });\n * if (length) sendToAgentChat({ message: `Make a ${length} deck`, submit: true });\n * ```\n *\n * Requires the agent panel (the mounted `GuidedQuestionFlow`) to exist, which\n * it does in every template. The returned promise stays pending until the user\n * answers or skips.\n */\nexport async function askUserQuestion(\n input: AskUserQuestionInput,\n): Promise<AskUserQuestionResult> {\n const question = String(input?.question ?? \"\").trim();\n if (!question) {\n throw new TypeError(\"askUserQuestion: `question` is required.\");\n }\n const header =\n typeof input.header === \"string\" && input.header.trim()\n ? input.header.trim()\n : undefined;\n const allowMultiple = input.allowMultiple === true;\n const allowFreeText = input.allowFreeText !== false;\n\n const options: GuidedQuestionOption[] = (\n Array.isArray(input.options) ? input.options : []\n )\n .map((raw): GuidedQuestionOption | null => {\n const label =\n typeof raw?.label === \"string\" && raw.label.trim()\n ? raw.label.trim()\n : typeof raw?.value === \"string\"\n ? String(raw.value).trim()\n : \"\";\n if (!label) return null;\n const value =\n typeof raw?.value === \"string\" && raw.value.trim()\n ? raw.value.trim()\n : label;\n const option: GuidedQuestionOption = { label, value };\n if (typeof raw.description === \"string\" && raw.description.trim()) {\n option.description = raw.description.trim();\n }\n if (typeof raw.preview === \"string\" && raw.preview.trim()) {\n option.preview = raw.preview;\n }\n if (raw.recommended === true) option.recommended = true;\n return option;\n })\n .filter((opt): opt is GuidedQuestionOption => opt !== null);\n\n if (options.length === 0) {\n throw new TypeError(\n \"askUserQuestion: `options` must contain at least one option with a label.\",\n );\n }\n\n const resolveId = nextClientResolveId();\n const payload: GuidedQuestionPayload = {\n clientResolveId: resolveId,\n questions: [\n {\n id: \"q1\",\n type: \"text-options\",\n question,\n ...(header ? { header } : {}),\n required: !allowFreeText,\n multiSelect: allowMultiple,\n allowOther: allowFreeText,\n includeExplore: false,\n includeDecide: false,\n options,\n },\n ],\n };\n\n const answerPromise = new Promise<AskUserQuestionResult>((resolve) => {\n clientQuestionResolvers.set(resolveId, resolve);\n });\n\n // Reveal the agent panel so the inline question is visible even if collapsed.\n if (typeof window !== \"undefined\") {\n try {\n window.dispatchEvent(new CustomEvent(\"agent-panel:open\"));\n } catch {\n // best-effort — the question still renders if the panel is already open\n }\n }\n\n try {\n await setClientAppState(\n input.stateKey ?? GUIDED_QUESTIONS_STATE_KEY,\n payload,\n );\n } catch (err) {\n clientQuestionResolvers.delete(resolveId);\n throw err;\n }\n\n return answerPromise;\n}\n\nfunction optionKey(option: GuidedQuestionOption): string {\n return `${option.value.toLowerCase()}::${option.label.toLowerCase()}`;\n}\n\n/** Stable content hash so poll refreshes do not reset in-progress answers. */\nexport function guidedQuestionsFingerprint(\n questions: GuidedQuestion[],\n): string {\n return JSON.stringify(\n questions.map((question) => ({\n id: question.id,\n type: question.type,\n header: question.header ?? null,\n question: question.question,\n description: question.description ?? null,\n multiSelect: question.multiSelect ?? false,\n required: question.required ?? false,\n allowOther: question.allowOther ?? null,\n includeExplore: question.includeExplore ?? null,\n includeDecide: question.includeDecide ?? null,\n submitOnSelect: question.submitOnSelect ?? false,\n min: question.min ?? null,\n max: question.max ?? null,\n step: question.step ?? null,\n placeholder: question.placeholder ?? null,\n options: (question.options ?? question.choices ?? []).map((option) => ({\n label: option.label,\n value: option.value,\n color: option.color ?? null,\n description: option.description ?? null,\n recommended: option.recommended ?? false,\n })),\n })),\n );\n}\n\nfunction withDefaultOptions(question: GuidedQuestion): GuidedQuestionOption[] {\n const base = question.options ?? question.choices ?? [];\n const seen = new Set(base.map(optionKey));\n const result = [...base];\n const maybePush = (option: GuidedQuestionOption, enabled: boolean) => {\n if (!enabled) return;\n const key = optionKey(option);\n const label = option.label.toLowerCase();\n const value = option.value.toLowerCase();\n const duplicate = result.some(\n (existing) =>\n optionKey(existing) === key ||\n existing.label.toLowerCase() === label ||\n existing.value.toLowerCase() === value,\n );\n if (duplicate || seen.has(key)) return;\n seen.add(key);\n result.push(option);\n };\n maybePush(EXPLORE_OPTION, question.includeExplore !== false);\n maybePush(DECIDE_OPTION, question.includeDecide !== false);\n return result;\n}\n\nexport interface GuidedQuestionFlowProps {\n questions: GuidedQuestion[];\n onSubmit: (answers: GuidedQuestionAnswers) => void;\n onSkip: () => void;\n title?: string;\n description?: string;\n skipLabel?: string;\n submitLabel?: string;\n className?: string;\n}\n\nexport function GuidedQuestionFlow({\n questions,\n onSubmit,\n onSkip,\n title = \"Before I generate\",\n description = \"Use Other for custom details, or let the agent decide.\",\n skipLabel = \"Skip\",\n submitLabel = \"Continue\",\n className,\n}: GuidedQuestionFlowProps) {\n const [answers, setAnswers] = useState<GuidedQuestionAnswers>({});\n const questionsFingerprint = useMemo(\n () => guidedQuestionsFingerprint(questions),\n [questions],\n );\n\n useEffect(() => {\n setAnswers({});\n }, [questionsFingerprint]);\n\n const setAnswer = useCallback((id: string, value: unknown) => {\n setAnswers((prev) => ({ ...prev, [id]: value }));\n }, []);\n const submitAnswers = useCallback(\n (nextAnswers: GuidedQuestionAnswers = answers) =>\n onSubmit(normalizeGuidedAnswers(nextAnswers)),\n [answers, onSubmit],\n );\n\n const allRequiredAnswered = questions\n .filter((question) => question.required)\n .every((question) => hasGuidedAnswer(answers[question.id]));\n\n return (\n <div\n className={cn(\n \"guided-question-flow flex h-full w-full items-center justify-center bg-background text-foreground\",\n className,\n )}\n >\n <div className=\"guided-question-flow-inner flex max-h-full w-full max-w-3xl flex-col px-3 py-4\">\n <div className=\"guided-question-flow-header mb-4 min-w-0\">\n <h2 className=\"guided-question-flow-title text-lg font-semibold leading-tight tracking-normal text-foreground\">\n {title}\n </h2>\n {description && (\n <p className=\"guided-question-flow-description mt-1 max-w-2xl text-sm leading-5 text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n\n <div className=\"guided-question-flow-list min-h-0 flex-1 overflow-y-auto pe-1\">\n {questions.map((question, index) => (\n <QuestionCard\n key={question.id}\n index={index}\n question={question}\n value={answers[question.id]}\n onChange={(value) => setAnswer(question.id, value)}\n onSubmitAnswer={(value) =>\n submitAnswers({ ...answers, [question.id]: value })\n }\n />\n ))}\n </div>\n\n <div className=\"guided-question-flow-footer mt-4 flex shrink-0 items-center justify-between gap-3 border-t border-border pt-3\">\n <div className=\"flex items-center gap-1.5\">\n {questions.map((question, index) => (\n <span\n key={question.id || index}\n className={cn(\n \"h-1.5 w-1.5 rounded-full\",\n hasGuidedAnswer(answers[question.id])\n ? \"bg-primary\"\n : \"bg-muted-foreground/30\",\n )}\n />\n ))}\n </div>\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={onSkip}\n className=\"cursor-pointer rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/60 hover:text-foreground\"\n >\n {skipLabel}\n </button>\n <button\n type=\"button\"\n onClick={() => submitAnswers()}\n disabled={!allRequiredAnswered}\n className=\"inline-flex cursor-pointer items-center gap-2 rounded-md bg-primary px-3.5 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90 disabled:cursor-not-allowed disabled:opacity-45\"\n >\n {submitLabel}\n <IconChevronRight className=\"h-4 w-4 rtl:-scale-x-100\" />\n </button>\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction QuestionCard({\n index,\n question,\n value,\n onChange,\n onSubmitAnswer,\n}: {\n index: number;\n question: GuidedQuestion;\n value: unknown;\n onChange: (value: unknown) => void;\n onSubmitAnswer: (value: unknown) => void;\n}) {\n return (\n <section className=\"guided-question-card border-t border-border/60 py-3 first:border-t-0 first:pt-0 last:pb-0\">\n <div className=\"mb-2 flex gap-2.5\">\n <div className=\"guided-question-index mt-0.5 min-w-4 text-xs font-medium tabular-nums text-muted-foreground\">\n {index + 1}\n </div>\n <div className=\"min-w-0\">\n {question.header && (\n <p className=\"mb-1 text-[11px] font-medium uppercase text-muted-foreground\">\n {question.header}\n </p>\n )}\n <h3 className=\"text-sm font-medium leading-5 text-foreground\">\n {question.question}\n {question.required && (\n <span className=\"ms-1 text-destructive\">*</span>\n )}\n </h3>\n {question.description && (\n <p className=\"mt-1 text-xs leading-5 text-muted-foreground\">\n {question.description}\n </p>\n )}\n </div>\n </div>\n\n {question.type === \"text-options\" && (\n <TextOptions\n question={question}\n value={value}\n onChange={onChange}\n onSubmitAnswer={onSubmitAnswer}\n />\n )}\n {question.type === \"color-options\" && (\n <ColorOptions question={question} value={value} onChange={onChange} />\n )}\n {question.type === \"slider\" && (\n <SliderQuestion question={question} value={value} onChange={onChange} />\n )}\n {question.type === \"file\" && (\n <FileDropZone value={value} onChange={onChange} />\n )}\n {question.type === \"freeform\" && (\n <textarea\n value={typeof value === \"string\" ? value : \"\"}\n onChange={(event) => onChange(event.target.value)}\n placeholder={question.placeholder ?? \"Type your answer...\"}\n className=\"min-h-[84px] w-full resize-none rounded-md border border-border bg-muted/45 px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground/70 focus:border-primary\"\n />\n )}\n </section>\n );\n}\n\nfunction TextOptions({\n question,\n value,\n onChange,\n onSubmitAnswer,\n}: {\n question: GuidedQuestion;\n value: unknown;\n onChange: (value: unknown) => void;\n onSubmitAnswer: (value: unknown) => void;\n}) {\n const options = useMemo(() => withDefaultOptions(question), [question]);\n const multiSelect = question.multiSelect === true;\n const selectedValues = Array.isArray(value) ? value : [];\n const otherSelected = multiSelect\n ? selectedValues.some(isOtherGuidedAnswer)\n : isOtherGuidedAnswer(value);\n const otherText = multiSelect\n ? getOtherGuidedAnswerText(selectedValues.find(isOtherGuidedAnswer))\n : getOtherGuidedAnswerText(value);\n\n const isSelected = (optionValue: string) =>\n multiSelect ? selectedValues.includes(optionValue) : value === optionValue;\n\n const toggleOption = (optionValue: string) => {\n if (!multiSelect) {\n onChange(optionValue);\n if (question.submitOnSelect) onSubmitAnswer(optionValue);\n return;\n }\n const next = selectedValues.includes(optionValue)\n ? selectedValues.filter((item) => item !== optionValue)\n : [...selectedValues, optionValue];\n onChange(next);\n };\n\n const toggleOther = () => {\n if (!multiSelect) {\n onChange(otherSelected ? \"\" : makeOtherGuidedAnswer());\n return;\n }\n if (otherSelected) {\n onChange(selectedValues.filter((item) => !isOtherGuidedAnswer(item)));\n return;\n }\n onChange([...selectedValues, makeOtherGuidedAnswer()]);\n };\n\n const setOtherText = (text: string) => {\n const nextOther = makeOtherGuidedAnswer(text);\n if (!multiSelect) {\n onChange(nextOther);\n return;\n }\n onChange([\n ...selectedValues.filter((item) => !isOtherGuidedAnswer(item)),\n nextOther,\n ]);\n };\n\n const allowOther = question.allowOther !== false;\n\n return (\n <div className=\"space-y-2.5\">\n <div className=\"guided-question-flow-options grid grid-cols-1 gap-2\">\n {options.map((option) => (\n <OptionButton\n key={`${option.value}:${option.label}`}\n option={option}\n selected={isSelected(option.value)}\n multiSelect={multiSelect}\n onClick={() => toggleOption(option.value)}\n />\n ))}\n {allowOther && (\n <OptionButton\n option={{\n label: \"Other...\",\n value: \"__other__\",\n description: \"Tell the agent exactly what you mean.\",\n }}\n selected={otherSelected}\n multiSelect={multiSelect}\n onClick={toggleOther}\n />\n )}\n </div>\n {allowOther && otherSelected && (\n <textarea\n autoFocus\n value={otherText}\n onChange={(event) => setOtherText(event.target.value)}\n placeholder={question.placeholder ?? \"Type a custom answer...\"}\n className=\"min-h-[72px] w-full resize-none rounded-md border border-border bg-muted/45 px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground/70 focus:border-primary\"\n />\n )}\n </div>\n );\n}\n\nfunction OptionButton({\n option,\n selected,\n multiSelect,\n onClick,\n}: {\n option: GuidedQuestionOption;\n selected: boolean;\n multiSelect?: boolean;\n onClick: () => void;\n}) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n aria-pressed={selected}\n className={cn(\n \"group flex min-h-11 min-w-0 cursor-pointer items-start gap-2 rounded-md border px-2.5 py-2 text-start transition-colors\",\n selected\n ? \"border-primary bg-primary/10 text-foreground ring-2 ring-primary/25\"\n : \"border-border bg-muted/30 text-muted-foreground hover:border-muted-foreground/50 hover:bg-muted/45 hover:text-foreground\",\n )}\n >\n <span\n className={cn(\n \"mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center border\",\n multiSelect ? \"rounded-sm\" : \"rounded-full\",\n selected\n ? \"border-primary bg-primary text-primary-foreground\"\n : \"border-border bg-background\",\n )}\n aria-hidden\n >\n {selected && <IconCheck className=\"h-3 w-3\" />}\n </span>\n <span className=\"min-w-0 flex-1\">\n <span className=\"flex flex-wrap items-center gap-1.5 text-sm font-medium leading-5\">\n {option.label}\n {option.recommended && (\n <span className=\"rounded-sm bg-primary/15 px-1.5 py-0.5 text-[10px] font-medium uppercase text-primary\">\n Recommended\n </span>\n )}\n </span>\n {option.description && (\n <span className=\"mt-0.5 block text-xs leading-4 text-muted-foreground\">\n {option.description}\n </span>\n )}\n {option.preview && (\n <span className=\"mt-1.5 block max-h-40 overflow-auto whitespace-pre-wrap rounded border border-border/60 bg-background/60 px-2 py-1.5 font-mono text-[11px] leading-4 text-muted-foreground\">\n {option.preview}\n </span>\n )}\n </span>\n </button>\n );\n}\n\nfunction ColorOptions({\n question,\n value,\n onChange,\n}: {\n question: GuidedQuestion;\n value: unknown;\n onChange: (value: unknown) => void;\n}) {\n const options = question.options ?? question.choices ?? [];\n const multiSelect = question.multiSelect === true;\n const selectedValues = Array.isArray(value) ? value : [];\n const isSelected = (optionValue: string) =>\n multiSelect ? selectedValues.includes(optionValue) : value === optionValue;\n\n const toggleOption = (optionValue: string) => {\n if (!multiSelect) {\n onChange(optionValue);\n return;\n }\n onChange(\n selectedValues.includes(optionValue)\n ? selectedValues.filter((item) => item !== optionValue)\n : [...selectedValues, optionValue],\n );\n };\n\n return (\n <div className=\"flex flex-wrap gap-3\">\n {options.map((option) => {\n const selected = isSelected(option.value);\n return (\n <button\n type=\"button\"\n key={`${option.value}:${option.label}`}\n onClick={() => toggleOption(option.value)}\n className=\"group flex cursor-pointer flex-col items-center gap-1.5\"\n >\n <span\n className={cn(\n \"h-10 w-10 rounded-full\",\n selected\n ? \"ring-2 ring-primary ring-offset-2 ring-offset-background\"\n : \"ring-1 ring-border group-hover:ring-muted-foreground/50\",\n )}\n style={{ backgroundColor: option.color || option.value }}\n />\n <span\n className={cn(\n \"max-w-20 truncate text-[10px]\",\n selected ? \"text-foreground\" : \"text-muted-foreground\",\n )}\n >\n {option.label}\n </span>\n </button>\n );\n })}\n </div>\n );\n}\n\nfunction SliderQuestion({\n question,\n value,\n onChange,\n}: {\n question: GuidedQuestion;\n value: unknown;\n onChange: (value: unknown) => void;\n}) {\n const min = question.min ?? 0;\n const max = question.max ?? 100;\n const step = question.step ?? 1;\n const current =\n typeof value === \"number\" ? value : Math.round((min + max) / 2);\n\n return (\n <div className=\"flex items-center gap-4\">\n <span className=\"w-8 text-xs text-muted-foreground\">{min}</span>\n <input\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={current}\n onChange={(event) => onChange(Number(event.target.value))}\n className=\"h-2 flex-1 cursor-pointer accent-primary\"\n />\n <span className=\"w-8 text-end text-xs text-muted-foreground\">{max}</span>\n <span className=\"min-w-10 text-end text-sm font-medium tabular-nums text-foreground\">\n {current}\n </span>\n </div>\n );\n}\n\nfunction FileDropZone({\n value,\n onChange,\n}: {\n value: unknown;\n onChange: (value: unknown) => void;\n}) {\n const [dragOver, setDragOver] = useState(false);\n const files: File[] = Array.isArray(value) ? (value as File[]) : [];\n\n const addFiles = (incoming: File[]) => onChange([...files, ...incoming]);\n const removeFile = (index: number) =>\n onChange(files.filter((_, fileIndex) => fileIndex !== index));\n\n return (\n <div>\n <div\n onDragOver={(event) => {\n event.preventDefault();\n setDragOver(true);\n }}\n onDragLeave={() => setDragOver(false)}\n onDrop={(event) => {\n event.preventDefault();\n setDragOver(false);\n addFiles(Array.from(event.dataTransfer.files));\n }}\n className={cn(\n \"flex cursor-pointer flex-col items-center justify-center rounded-md border-2 border-dashed p-5 transition-colors\",\n dragOver\n ? \"border-primary bg-primary/5\"\n : \"border-border bg-muted/30 hover:border-muted-foreground/50\",\n )}\n >\n <IconUpload className=\"mb-2 h-5 w-5 text-muted-foreground\" />\n <p className=\"text-sm text-muted-foreground\">\n Drag files here or{\" \"}\n <label className=\"cursor-pointer text-primary hover:underline\">\n browse\n <input\n type=\"file\"\n multiple\n onChange={(event) => {\n if (event.target.files)\n addFiles(Array.from(event.target.files));\n event.currentTarget.value = \"\";\n }}\n className=\"hidden\"\n />\n </label>\n </p>\n </div>\n\n {files.length > 0 && (\n <div className=\"mt-2 space-y-1\">\n {files.map((file, index) => (\n <div\n key={`${file.name}:${index}`}\n className=\"flex items-center gap-2 rounded-md bg-muted/50 px-2 py-1 text-xs text-muted-foreground\"\n >\n <IconCheck className=\"h-3 w-3 text-primary\" />\n <span className=\"min-w-0 flex-1 truncate\">{file.name}</span>\n <button\n type=\"button\"\n onClick={() => removeFile(index)}\n className=\"cursor-pointer text-muted-foreground/70 hover:text-foreground\"\n aria-label={`Remove ${file.name}`}\n >\n <IconX className=\"h-3 w-3\" />\n </button>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n}\n\nconst SAFE_BROWSER_TAB_ID_RE = /^[A-Za-z0-9_-]{1,96}$/;\n\nfunction normalizeBrowserTabId(browserTabId?: string): string | undefined {\n if (typeof browserTabId !== \"string\") return undefined;\n const trimmed = browserTabId.trim();\n return SAFE_BROWSER_TAB_ID_RE.test(trimmed) ? trimmed : undefined;\n}\n\nexport interface UseGuidedQuestionFlowOptions {\n stateKey?: string;\n /**\n * The current browser tab id. Agent actions that write the guided-questions\n * payload scope the application-state key per tab (`<key>:<tabId>`), so the\n * client must read the scoped key first and fall back to the bare key. Without\n * this, the question card never renders when the agent run carries a tab id\n * (which it almost always does — see `sessionBrowserTabId`).\n */\n browserTabId?: string;\n queryKey?: readonly unknown[];\n refetchInterval?: number | false;\n submitMessage?: string;\n skipMessage?: string;\n buildSubmitContext?: (args: {\n answers: GuidedQuestionAnswers;\n formattedAnswers: string;\n }) => string;\n buildSkipContext?: () => string;\n}\n\nexport function useGuidedQuestionFlow({\n stateKey = \"show-questions\",\n browserTabId,\n queryKey = [\"show-questions\"],\n refetchInterval = false,\n submitMessage = \"Here are my answers — go ahead.\",\n skipMessage = \"Skip the questions — decide for me.\",\n buildSubmitContext,\n buildSkipContext,\n}: UseGuidedQuestionFlowOptions = {}) {\n const queryClient = useQueryClient();\n const [payload, setPayload] = useState<GuidedQuestionPayload | null>(null);\n const normalizedBrowserTabId = useMemo(\n () => normalizeBrowserTabId(browserTabId),\n [browserTabId],\n );\n const endpointFor = useCallback(\n (key: string) => agentNativePath(`/_agent-native/application-state/${key}`),\n [],\n );\n const scopedKey = normalizedBrowserTabId\n ? `${stateKey}:${normalizedBrowserTabId}`\n : stateKey;\n const stateVersionSources = useMemo(\n () =>\n normalizedBrowserTabId\n ? [`app-state:${scopedKey}`, `app-state:${stateKey}`]\n : [`app-state:${stateKey}`],\n [normalizedBrowserTabId, scopedKey, stateKey],\n );\n const stateVersion = useChangeVersions(stateVersionSources);\n // Match the queryKey to the scope so two tabs polling different scoped keys\n // don't share a cache entry.\n const resolvedQueryKey = useMemo(\n () => [...queryKey, normalizedBrowserTabId ?? \"global\", stateVersion],\n [queryKey, normalizedBrowserTabId, stateVersion],\n );\n\n const resolvedRefetchInterval =\n refetchInterval === false\n ? false\n : (query: { state: { data?: GuidedQuestionPayload | null } }) => {\n const activeQuestions = query.state.data?.questions;\n if (Array.isArray(activeQuestions) && activeQuestions.length > 0) {\n return false;\n }\n return refetchInterval;\n };\n\n const { data } = useQuery({\n queryKey: resolvedQueryKey,\n queryFn: async () => {\n const read = async (key: string) => {\n const res = await fetch(endpointFor(key));\n if (!res.ok) return null;\n const text = await res.text();\n if (!text) return null;\n try {\n const parsed = JSON.parse(text);\n if (Array.isArray(parsed?.questions) && parsed.questions.length > 0) {\n return parsed as GuidedQuestionPayload;\n }\n } catch {\n return null;\n }\n return null;\n };\n // Agent writes are tab-scoped; read the scoped key first, then fall back\n // to the bare key (e.g. a deterministic write that omits the tab id).\n return (\n (normalizedBrowserTabId ? await read(scopedKey) : null) ??\n (await read(stateKey))\n );\n },\n refetchInterval: resolvedRefetchInterval,\n structuralSharing: false,\n // A matching app-state event changes the query key. Preserve the existing\n // payload while the replacement read is in flight so full-canvas question\n // forms do not unmount and flash during routine sync updates.\n placeholderData: keepPreviousData,\n });\n\n useEffect(() => {\n if (Array.isArray(data?.questions) && data.questions.length > 0) {\n setPayload((prev) => {\n if (\n prev &&\n guidedQuestionsFingerprint(prev.questions) ===\n guidedQuestionsFingerprint(data.questions) &&\n prev.clientResolveId === data.clientResolveId\n ) {\n return prev;\n }\n return data;\n });\n } else {\n setPayload(null);\n }\n }, [data]);\n\n const clear = useCallback(() => {\n setPayload(null);\n queryClient.setQueryData(resolvedQueryKey, null);\n const del = (key: string) =>\n fetch(endpointFor(key), {\n method: \"DELETE\",\n headers: { \"X-Agent-Native-CSRF\": \"1\" },\n }).catch(() => {});\n // Clear whichever key actually held the payload (scoped or bare) so the\n // card doesn't reappear on the next poll.\n del(scopedKey);\n if (scopedKey !== stateKey) del(stateKey);\n }, [endpointFor, queryClient, resolvedQueryKey, scopedKey, stateKey]);\n\n const handleSubmit = useCallback(\n (answers: GuidedQuestionAnswers) => {\n // Client-initiated question (askUserQuestion): resolve the caller's\n // promise with the answer instead of forwarding it to the agent chat.\n const resolveId = payload?.clientResolveId;\n if (resolveId) {\n const firstId = payload?.questions?.[0]?.id ?? \"q1\";\n resolveClientQuestion(resolveId, extractSingleAnswer(answers, firstId));\n clear();\n return;\n }\n const formattedAnswers = formatGuidedAnswersForAgent(answers);\n const resolvedSubmitMessage = payload?.submitMessage ?? submitMessage;\n const context =\n buildSubmitContext?.({ answers, formattedAnswers }) ??\n defaultGuidedSubmitContext(formattedAnswers);\n sendToAgentChat({\n message: resolvedSubmitMessage,\n context,\n submit: true,\n });\n clear();\n },\n [buildSubmitContext, clear, payload, submitMessage],\n );\n\n const handleSkip = useCallback(() => {\n const resolveId = payload?.clientResolveId;\n if (resolveId) {\n resolveClientQuestion(resolveId, null);\n clear();\n return;\n }\n sendToAgentChat({\n message: payload?.skipMessage ?? skipMessage,\n context: buildSkipContext?.(),\n submit: true,\n });\n clear();\n }, [buildSkipContext, clear, payload, skipMessage]);\n\n return {\n payload,\n questions: payload?.questions ?? null,\n title: payload?.title,\n description: payload?.description,\n skipLabel: payload?.skipLabel,\n submitLabel: payload?.submitLabel,\n clear,\n handleSubmit,\n handleSkip,\n };\n}\n"]}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -8,9 +8,10 @@ export { agentNativePath, appApiPath, appBasePath, appPath, } from "./api-path.j
|
|
|
8
8
|
export { deleteClientAppState, readClientAppState, setClientAppState, writeClientAppState, type ClientAppStateReadOptions, type ClientAppStateWriteOptions, } from "./application-state.js";
|
|
9
9
|
export { useAgentRouteState, useSemanticNavigationState, type AgentRouteLocation, type SemanticNavigationCommandEnvelope, type UseAgentRouteStateOptions, type UseAgentRouteStateResult, type UseSemanticNavigationStateOptions, type UseSemanticNavigationStateResult, } from "./route-state.js";
|
|
10
10
|
export { ensureEmbedAuthFetchInterceptor, getEmbedAuthToken, isEmbedAuthActive, isEmbedMcpChatBridgeActive, } from "./embed-auth.js";
|
|
11
|
-
export { codeAgentTranscriptEventsToContent, createCodeAgentChatAdapter, type CodeAgentChatController, type CodeAgentChatControlResult, type CodeAgentChatFollowUpMode, type CodeAgentChatTranscriptEvent, type CreateCodeAgentChatAdapterOptions, } from "./code-agent-chat-adapter.js";
|
|
11
|
+
export { codeAgentTranscriptEventsToContent, codeAgentTranscriptHasPendingApproval, createCodeAgentChatAdapter, type CodeAgentChatController, type CodeAgentChatControlResult, type CodeAgentChatFollowUpMode, type CodeAgentChatTranscriptEvent, type CreateCodeAgentChatAdapterOptions, } from "./code-agent-chat-adapter.js";
|
|
12
12
|
export { buildRepositoryFromCodeAgentTranscript, type BuildRepositoryFromCodeAgentTranscriptOptions, type CodeAgentThreadTranscriptEvent, } from "../agent/thread-data-builder.js";
|
|
13
13
|
export { compareCodeAgentTranscriptEvents, getCodeAgentTranscriptSeq, isCodeAgentRunActive, mergeCodeAgentTranscriptEvents, type CodeAgentRunStateLike, type CodeAgentTranscriptOrderEvent, } from "../code-agents/transcript-order.js";
|
|
14
|
+
export { CREDENTIAL_GAP_SIGNAL, isCredentialGapCodeAgentEvent, } from "../code-agents/transcript-normalizer.js";
|
|
14
15
|
export { useSendToAgentChat } from "./use-send-to-agent-chat.js";
|
|
15
16
|
export { useChatModels, type UseChatModelsResult, type EngineModelGroup, } from "./use-chat-models.js";
|
|
16
17
|
export { CodeRequiredDialog, type CodeRequiredDialogProps, } from "./components/CodeRequiredDialog.js";
|
|
@@ -55,6 +56,7 @@ export { createAgentChatAdapter, type AgentChatSurfaceKind, type CreateAgentChat
|
|
|
55
56
|
export { AgentComposerFrame, type AgentComposerFrameProps, PromptComposer, RealtimeVoiceModeBoundary, RealtimeVoiceModeProvider, RealtimeVoiceModeDock, RealtimeVoiceModeEntry, TiptapComposer, AGENT_PROMPT_MAX_INLINE_IMAGE_BYTES, AGENT_PROMPT_MAX_INLINE_TEXT_CHARS, escapePromptAttachmentAttribute, formatPromptWithAttachments, isInlineableAgentPromptFile, readAgentPromptAttachment, createRealtimeVoiceSession, executeRealtimeVoiceTool, extractRealtimeVoiceFunctionCalls, readRealtimeVoiceContext, useRealtimeVoiceMode, useRealtimeVoiceModeCopy, useRealtimeVoiceModeOptional, type PromptComposerProps, type PromptComposerFile, type PromptComposerSubmitOptions, type RealtimeVoiceModeCopy, type RealtimeVoiceModeDockProps, type RealtimeVoiceModeEntryProps, type RealtimeVoiceModeState, type RealtimeVoiceModeApi, type RealtimeVoiceModeProviderProps, type RealtimeVoiceToolResult, type ComposerSubmitIntent, type AgentPromptAttachment, type ReadAgentPromptAttachmentOptions, type AgentComposerLayoutVariant, type SlashCommand, type SkillResult, type TiptapComposerHandle, type TiptapComposerProps, type TiptapComposerSubmitOptions, } from "./composer/index.js";
|
|
56
57
|
export { GuidedQuestionFlow, useGuidedQuestionFlow, askUserQuestion, formatGuidedAnswerValue, formatGuidedAnswersForAgent, getOtherGuidedAnswerText, hasGuidedAnswer, isOtherGuidedAnswer, makeOtherGuidedAnswer, normalizeGuidedAnswers, type AskUserQuestionInput, type AskUserQuestionOption, type AskUserQuestionResult, type GuidedQuestion, type GuidedQuestionAnswers, type GuidedQuestionFlowProps, type GuidedQuestionOption, type GuidedQuestionPayload, type GuidedQuestionType, type UseGuidedQuestionFlowOptions, } from "./guided-questions.js";
|
|
57
58
|
export { useChatThreads, type ChatThreadScope, type ChatThreadSnapshot, type ChatThreadSummary, type ChatThreadData, type ChatThreadShareLink, type ChatThreadShareState, type UseChatThreadsOptions, } from "./use-chat-threads.js";
|
|
59
|
+
export { ChatHistoryList, type ChatHistoryItem, type ChatHistorySection, type ChatHistoryListProps, } from "./chat/ChatHistoryList.js";
|
|
58
60
|
export { AgentChatHome, type AgentChatHomeProps } from "./AgentChatHome.js";
|
|
59
61
|
export { AgentChatSurface, AgentPanel, AgentSidebar, AgentToggleButton, focusAgentChat, type AgentChatSurfaceMode, type AgentChatSurfaceProps, type AgentPanelProps, type AgentSidebarProps, } from "./AgentPanel.js";
|
|
60
62
|
export { AGENT_CHAT_HOME_HANDOFF_TTL_MS, AGENT_CHAT_VIEW_TRANSITION_CLASS, AGENT_CHAT_VIEW_TRANSITION_NAME, consumeAgentChatHomeHandoff, getAgentChatViewTransitionStyle, isAgentChatHomeHandoffActive, markAgentChatHomeHandoff, navigateWithAgentChatViewTransition, startAgentChatViewTransition, supportsAgentChatViewTransition, type AgentChatHomeHandoffOptions, type AgentChatViewTransition, type AgentChatViewTransitionOptions, } from "./chat-view-transition.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.js
CHANGED
|
@@ -12,9 +12,10 @@ export { agentNativePath, appApiPath, appBasePath, appPath, } from "./api-path.j
|
|
|
12
12
|
export { deleteClientAppState, readClientAppState, setClientAppState, writeClientAppState, } from "./application-state.js";
|
|
13
13
|
export { useAgentRouteState, useSemanticNavigationState, } from "./route-state.js";
|
|
14
14
|
export { ensureEmbedAuthFetchInterceptor, getEmbedAuthToken, isEmbedAuthActive, isEmbedMcpChatBridgeActive, } from "./embed-auth.js";
|
|
15
|
-
export { codeAgentTranscriptEventsToContent, createCodeAgentChatAdapter, } from "./code-agent-chat-adapter.js";
|
|
15
|
+
export { codeAgentTranscriptEventsToContent, codeAgentTranscriptHasPendingApproval, createCodeAgentChatAdapter, } from "./code-agent-chat-adapter.js";
|
|
16
16
|
export { buildRepositoryFromCodeAgentTranscript, } from "../agent/thread-data-builder.js";
|
|
17
17
|
export { compareCodeAgentTranscriptEvents, getCodeAgentTranscriptSeq, isCodeAgentRunActive, mergeCodeAgentTranscriptEvents, } from "../code-agents/transcript-order.js";
|
|
18
|
+
export { CREDENTIAL_GAP_SIGNAL, isCredentialGapCodeAgentEvent, } from "../code-agents/transcript-normalizer.js";
|
|
18
19
|
export { useSendToAgentChat } from "./use-send-to-agent-chat.js";
|
|
19
20
|
export { useChatModels, } from "./use-chat-models.js";
|
|
20
21
|
export { CodeRequiredDialog, } from "./components/CodeRequiredDialog.js";
|
|
@@ -74,6 +75,7 @@ export { createAgentChatAdapter, } from "./agent-chat-adapter.js";
|
|
|
74
75
|
export { AgentComposerFrame, PromptComposer, RealtimeVoiceModeBoundary, RealtimeVoiceModeProvider, RealtimeVoiceModeDock, RealtimeVoiceModeEntry, TiptapComposer, AGENT_PROMPT_MAX_INLINE_IMAGE_BYTES, AGENT_PROMPT_MAX_INLINE_TEXT_CHARS, escapePromptAttachmentAttribute, formatPromptWithAttachments, isInlineableAgentPromptFile, readAgentPromptAttachment, createRealtimeVoiceSession, executeRealtimeVoiceTool, extractRealtimeVoiceFunctionCalls, readRealtimeVoiceContext, useRealtimeVoiceMode, useRealtimeVoiceModeCopy, useRealtimeVoiceModeOptional, } from "./composer/index.js";
|
|
75
76
|
export { GuidedQuestionFlow, useGuidedQuestionFlow, askUserQuestion, formatGuidedAnswerValue, formatGuidedAnswersForAgent, getOtherGuidedAnswerText, hasGuidedAnswer, isOtherGuidedAnswer, makeOtherGuidedAnswer, normalizeGuidedAnswers, } from "./guided-questions.js";
|
|
76
77
|
export { useChatThreads, } from "./use-chat-threads.js";
|
|
78
|
+
export { ChatHistoryList, } from "./chat/ChatHistoryList.js";
|
|
77
79
|
export { AgentChatHome } from "./AgentChatHome.js";
|
|
78
80
|
export { AgentChatSurface, AgentPanel, AgentSidebar, AgentToggleButton, focusAgentChat, } from "./AgentPanel.js";
|
|
79
81
|
export { AGENT_CHAT_HOME_HANDOFF_TTL_MS, AGENT_CHAT_VIEW_TRANSITION_CLASS, AGENT_CHAT_VIEW_TRANSITION_NAME, consumeAgentChatHomeHandoff, getAgentChatViewTransitionStyle, isAgentChatHomeHandoffActive, markAgentChatHomeHandoff, navigateWithAgentChatViewTransition, startAgentChatViewTransition, supportsAgentChatViewTransition, } from "./chat-view-transition.js";
|