vibe64 0.1.39 → 0.1.41
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/bin/run.js +1955 -1855
- package/bin/server.js +136 -112
- package/bin/upgrade-state.js +5514 -5343
- package/dist/assets/GithubBrowserTabs-YvIe2BdE.js +1 -0
- package/dist/assets/LocalDatabaseServer-BWAvRlUl.css +1 -0
- package/dist/assets/LocalDatabaseServer-CVsGChHh.js +2 -0
- package/dist/assets/StudioErrorNotice-C_jbvp9V.js +1 -0
- package/dist/assets/VAlert-gwuhYlYb.js +1 -0
- package/dist/assets/VAutocomplete-D7Vk5wq_.js +1 -0
- package/dist/assets/VAvatar-DvRBcmqv.js +1 -0
- package/dist/assets/VBtn-BhVEwXLX.js +1 -0
- package/dist/assets/VCard-C3Hx769y.js +1 -0
- package/dist/assets/VCheckbox-DyCGSN0H.js +1 -0
- package/dist/assets/VCheckboxBtn-DCyuVH7W.css +1 -0
- package/dist/assets/VCheckboxBtn-DYcQU2Pn.js +1 -0
- package/dist/assets/VChip-VVdtjfq-.js +1 -0
- package/dist/assets/VDialog-CQDhjRiV.js +1 -0
- package/dist/assets/VDivider-Dq25WsKu.js +1 -0
- package/dist/assets/VExpansionPanels-C1y-myl5.js +1 -0
- package/dist/assets/VMenu-CDcBLYWR.js +1 -0
- package/dist/assets/VOverlay-Cp4rFk6g.js +1 -0
- package/dist/assets/VRadioGroup-CAjNZwF7.js +1 -0
- package/dist/assets/VRow-BskP28jR.js +1 -0
- package/dist/assets/VSelect-D3oLvCcB.js +2 -0
- package/dist/assets/VSheet-DxYEFfnM.js +1 -0
- package/dist/assets/VSkeletonLoader-Cync3lZZ.js +1 -0
- package/dist/assets/VSpacer-CgWOWvBh.js +1 -0
- package/dist/assets/VSwitch-BxGuGypi.js +1 -0
- package/dist/assets/VTextField-C0b_0cSa.js +1 -0
- package/dist/assets/VTextField-F6unyhrS.css +1 -0
- package/dist/assets/VTextarea-B7sZd1JY.js +1 -0
- package/dist/assets/{Vibe64AsyncModuleState-Do9EqX3S.js → Vibe64AsyncModuleState-syuPcpGx.js} +1 -1
- package/dist/assets/{Vibe64AuthSettingsButton-M44SSmZ9.css → Vibe64AuthSettingsButton-D2lltUhi.css} +1 -1
- package/dist/assets/Vibe64AuthSettingsButton-DLdfT68V.js +5 -0
- package/dist/assets/Vibe64CopyCommand-CYiZcy0d.js +1 -0
- package/dist/assets/Vibe64CopyCommand-ClbQLYZi.css +1 -0
- package/dist/assets/{Vibe64DashboardBackButton-BH_8j_VR.js → Vibe64DashboardBackButton-Go_MJuIK.js} +1 -1
- package/dist/assets/{Vibe64DashboardPageHeader-BXQR00HK.js → Vibe64DashboardPageHeader-BMrdRph6.js} +1 -1
- package/dist/assets/Vibe64DashboardPageHeader-CdlzsyKQ.css +1 -0
- package/dist/assets/Vibe64DashboardShell-DMPz6fIx.js +1 -0
- package/dist/assets/{Vibe64DatabaseWorkspace-CEml9BWn.js → Vibe64DatabaseWorkspace-BCEIOlSg.js} +3 -3
- package/dist/assets/{Vibe64DatabaseWorkspace-DPDMxhAW.css → Vibe64DatabaseWorkspace-DePBDUMy.css} +1 -1
- package/dist/assets/{Vibe64OutputControls-Co5YzwcK.css → Vibe64OutputControls-CeBzZPUT.css} +1 -1
- package/dist/assets/Vibe64OutputControls-DMoqL0VD.js +8 -0
- package/dist/assets/{Vibe64RepositoryWorkspace-obZFXkoG.js → Vibe64RepositoryWorkspace-BdwRwbxp.js} +2 -2
- package/dist/assets/{Vibe64RepositoryWorkspace-Agyt4O-V.css → Vibe64RepositoryWorkspace-Bw9W691N.css} +1 -1
- package/dist/assets/{Vibe64SessionFiles-CQzs6fee.js → Vibe64SessionFiles-ChJWUOqm.js} +4 -4
- package/dist/assets/Vibe64SessionFiles-DsPb8hOe.css +1 -0
- package/dist/assets/{Vibe64TemporaryAiFixAction-BiuIE9mC.js → Vibe64TemporaryAiFixAction-CIePbdW8.js} +1 -1
- package/dist/assets/{Vibe64UiStoryboardView-BhKRpL0N.js → Vibe64UiStoryboardView-Bp9STItF.js} +1 -1
- package/dist/assets/{Vibe64UnavailableSessions-Ca5nC7KH.js → Vibe64UnavailableSessions-JBgHzM-j.js} +1 -1
- package/dist/assets/{_sessionId_-CKkGH3Rx.js → _sessionId_-Bw0KfJeR.js} +1 -1
- package/dist/assets/{_sessionTool_-1V-z6Pbp.js → _sessionTool_-BV1AwpUx.js} +1 -1
- package/dist/assets/_slug_-CAmuBm-M.css +1 -0
- package/dist/assets/_slug_-q9prK_gX.js +25 -0
- package/dist/assets/{access-WlhPvPgy.js → access-C05Nkq6r.js} +1 -1
- package/dist/assets/app-D1CGY9Xm.js +1 -0
- package/dist/assets/assistantRouting-DeE8jvtE.js +3 -0
- package/dist/assets/{changes-CHJjrZAc.js → changes-D17XpgGz.js} +1 -1
- package/dist/assets/client-BxGiylrJ.js +2 -0
- package/dist/assets/client-C8jwAMY9.css +1 -0
- package/dist/assets/{conversation-B90ERX9h.js → conversation-DZW4-Wck.js} +2 -2
- package/dist/assets/{conversation-vxJGwmtW.css → conversation-TK6EmDk4.css} +1 -1
- package/dist/assets/{createSimpleFunctional-CZTGuNuR.js → createSimpleFunctional-zlXZooQW.js} +1 -1
- package/dist/assets/{dashboard-CuutW8iv.js → dashboard-BXXgeQ0Q.js} +1 -1
- package/dist/assets/definitions-SNvFDEFS.js +1 -0
- package/dist/assets/dialog-transition-D2vqGksQ.js +1 -0
- package/dist/assets/env-B5V1EC4M.css +1 -0
- package/dist/assets/env-sXAQqKWk.js +1 -0
- package/dist/assets/health-92hh8xXh.css +1 -0
- package/dist/assets/health-Cr34pf2p.js +1 -0
- package/dist/assets/{history-1_NU8azF.js → history-N1iRZaab.js} +1 -1
- package/dist/assets/incoming-Bdqo8z25.css +1 -0
- package/dist/assets/incoming-CNwZa_yD.js +2 -0
- package/dist/assets/{index-irlMYzLh.css → index-B17d4wpZ.css} +1 -1
- package/dist/assets/index-Mxalhei8.js +138 -0
- package/dist/assets/{integrations-BMzWQQpa.js → integrations-BmwFvHgZ.js} +10 -10
- package/dist/assets/integrations-Co8WvCiD.css +1 -0
- package/dist/assets/issues-BbiG7dCV.js +1 -0
- package/dist/assets/layout-B2Ap07aa.js +1 -0
- package/dist/assets/{lazy-NHSwD9FS.js → lazy-BjyT2XvW.js} +1 -1
- package/dist/assets/{learning-Bdi3XRS7.js → learning-CUCuuoHM.js} +1 -1
- package/dist/assets/mdi-Bt90Ns76.js +1 -0
- package/dist/assets/placement-CQy46H3H.js +1 -0
- package/dist/assets/publish-4r_4K5IY.js +3 -0
- package/dist/assets/publish-BFTsAMCF.css +1 -0
- package/dist/assets/pull-requests-BjwokcU0.css +1 -0
- package/dist/assets/pull-requests-DY9jg3cE.js +1 -0
- package/dist/assets/{repository-BL_2bgzC.js → repository-DhXdoMP6.js} +1 -1
- package/dist/assets/ripple-EFNA8EBu.js +11 -0
- package/dist/assets/rolldown-runtime-DBalRfVu.js +1 -0
- package/dist/assets/{session-BdhKrcX4.js → session-BGpiZThC.js} +1 -1
- package/dist/assets/{settings-1rpuL7eR.js → settings-Cj4u-76p.js} +1 -1
- package/dist/assets/settings-D8x4KUqV.css +1 -0
- package/dist/assets/shared-DZETtWRH.js +2 -0
- package/dist/assets/studioGateApi-BXHVBVEc.js +1 -0
- package/dist/assets/studioUrls-DpSS-0z1.js +1 -0
- package/dist/assets/useArchivedVibe64Sessions-BXNg8oES.js +1 -0
- package/dist/assets/useCommand-nWFczmJy.js +1 -0
- package/dist/assets/useEndpointResource-Ds8EDBZ2.js +1 -0
- package/dist/assets/useRealtimeEvent-DrOiU8lJ.js +1 -0
- package/dist/assets/{useUiFeedback-BPBF_0bp.js → useUiFeedback-CMwE4MLs.js} +1 -1
- package/dist/assets/useVibe64ConversationLog-C1xjhFtS.js +1 -0
- package/dist/assets/{useVibe64DatabaseTools-4o6S8eXq.js → useVibe64DatabaseTools-H6H-YJQX.js} +1 -1
- package/dist/assets/useVibe64ProjectScope-B5ogg6jd.js +1 -0
- package/dist/assets/useVibe64SessionData-CnDOFFHb.js +1 -0
- package/dist/assets/{useVibe64SessionSelection-BzL1y_Vq.js → useVibe64SessionSelection-J87nJ9p5.js} +1 -1
- package/dist/assets/{useVibe64SystemGraph-B4RmsC9Y.js → useVibe64SystemGraph-DbSfrYF8.js} +1 -1
- package/dist/assets/{useVibe64Terminal-Cg3idMcy.js → useVibe64Terminal-I7Sf6xMW.js} +1 -1
- package/dist/assets/vibe64ProjectScope.local-B06ABkhI.js +1 -0
- package/dist/assets/vibe64SavedEnvValues-B_QE9aAj.js +1 -0
- package/dist/assets/vibe64SessionFocus-CA-sk8Ri.css +1 -0
- package/dist/assets/vibe64SessionFocus-DlN8NwcE.js +1 -0
- package/dist/assets/{vibe64SessionInfo-BuBUdL-e.js → vibe64SessionInfo-B0uItVOK.js} +1 -1
- package/dist/assets/{vibe64SessionToolDefinitions-BJaJH5LR.js → vibe64SessionToolDefinitions-Dsn8WYmO.js} +1 -1
- package/dist/index.html +56 -46
- package/docs/colleague-usage/account-profile-and-appearance.md +1 -1
- package/docs/colleague-usage/{ai-accounts-and-routing.md → ai-accounts.md} +41 -114
- package/docs/colleague-usage/ai-model-setups.md +159 -0
- package/docs/colleague-usage/ai-onboarding.md +97 -22
- package/docs/colleague-usage/ai-personal-use.md +41 -0
- package/docs/colleague-usage/auto-workflow.md +8 -3
- package/docs/colleague-usage/codex-context-recovery.md +2 -1
- package/docs/colleague-usage/coding-agent-goals.md +7 -4
- package/docs/colleague-usage/coding-agents.md +8 -5
- package/docs/colleague-usage/colleague-watches.md +15 -4
- package/docs/colleague-usage/colleague.md +21 -5
- package/docs/colleague-usage/connected-contributions.md +13 -13
- package/docs/colleague-usage/connected-projects.md +2 -2
- package/docs/colleague-usage/conversation-context.md +1 -1
- package/docs/colleague-usage/dashboard-navigation.md +5 -3
- package/docs/colleague-usage/development-env.md +21 -4
- package/docs/colleague-usage/file-interfaces.md +1 -1
- package/docs/colleague-usage/github-work.md +8 -8
- package/docs/colleague-usage/health-checks.md +52 -18
- package/docs/colleague-usage/incoming-changes.md +3 -3
- package/docs/colleague-usage/integrations.md +5 -3
- package/docs/colleague-usage/learning-course-catalogue.md +3 -3
- package/docs/colleague-usage/learning-environment.md +78 -56
- package/docs/colleague-usage/learning-mode-ui.md +31 -19
- package/docs/colleague-usage/learning-practice-projects.md +15 -4
- package/docs/colleague-usage/learning-teacher-guide.md +10 -4
- package/docs/colleague-usage/learning-with-colleague.md +12 -8
- package/docs/colleague-usage/lesson-authoring.md +13 -13
- package/docs/colleague-usage/lesson-step-bar.md +47 -33
- package/docs/colleague-usage/main-chat-approvals.md +150 -0
- package/docs/colleague-usage/preview-browser-checks.md +5 -1
- package/docs/colleague-usage/preview-starting-application.md +10 -1
- package/docs/colleague-usage/project-language-tools.md +16 -2
- package/docs/colleague-usage/project-settings.md +1 -1
- package/docs/colleague-usage/project-setup.md +17 -7
- package/docs/colleague-usage/publishing.md +187 -0
- package/docs/colleague-usage/running-vibe64-on-your-computer.md +54 -6
- package/docs/colleague-usage/sessions.md +18 -10
- package/docs/colleague-usage/set-up-linux.md +254 -0
- package/docs/colleague-usage/set-up-macos.md +199 -0
- package/docs/colleague-usage/set-up-windows.md +76 -0
- package/docs/colleague-usage/starter-apps.md +23 -6
- package/docs/colleague-usage/teaching-content.md +2 -2
- package/docs/colleague-usage/team-ai-access.md +108 -0
- package/docs/colleague-usage/temporary-chats.md +9 -7
- package/docs/colleague-usage/workspace-preparation.md +50 -1
- package/docs/templates/learn-topic/README.md +3 -3
- package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.json +2 -1
- package/docs/training-content.md +37 -15
- package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
- package/node_modules/@jskit-ai/assistant-runtime/package.json +1 -1
- package/node_modules/@jskit-ai/assistant-voice/package.json +1 -1
- package/node_modules/@jskit-ai/connector-google-calendar/package.json +1 -1
- package/node_modules/@jskit-ai/connectors-catalog/package.json +1 -1
- package/node_modules/@jskit-ai/connectors-catalog/patterns/oauth-connection/PATTERN.md +25 -0
- package/node_modules/@jskit-ai/connectors-core/package.json +1 -1
- package/node_modules/@jskit-ai/http-runtime/package.json +1 -1
- package/node_modules/@jskit-ai/kernel/package.json +1 -1
- package/node_modules/@jskit-ai/realtime/package.json +1 -1
- package/node_modules/@jskit-ai/resource-core/package.json +1 -1
- package/node_modules/@jskit-ai/resource-crud-core/package.json +1 -1
- package/node_modules/@jskit-ai/uploads-runtime/package.json +1 -1
- package/node_modules/@local/vibe64-accounts/package.json +2 -1
- package/node_modules/@local/vibe64-core/package.json +4 -1
- package/node_modules/@local/vibe64-execution/src/host/execHelper.js +82 -81
- package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +83 -82
- package/node_modules/@local/vibe64-genesis/package.json +1 -0
- package/node_modules/@local/vibe64-genesis/src/server/agentSpecs.js +118 -68
- package/node_modules/@local/vibe64-genesis/src/server/index.js +536 -449
- package/node_modules/@local/vibe64-genesis/src/server/packaging.js +105 -0
- package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +144 -145
- package/node_modules/@local/vibe64-packaging/package.json +26 -0
- package/node_modules/@local/vibe64-packaging/src/server/packers/capacitor/ShellIcons.java +112 -0
- package/node_modules/@local/vibe64-project/package.json +3 -1
- package/node_modules/@local/vibe64-publishing/package.json +12 -0
- package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +7 -7
- package/node_modules/@local/vibe64-runtime/src/shared/assistantRoutingScores.json +25 -22
- package/node_modules/@local/vibe64-terminals/package.json +2 -1
- package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1341 -1300
- package/node_modules/@local/vibe64-training/package.json +2 -1
- package/package.json +19 -15
- package/server.bundle.mjs +43109 -41089
- package/dist/assets/GithubBrowserTabs-C2NO5l8g.js +0 -1
- package/dist/assets/StudioErrorNotice-CSrUw1QV.js +0 -1
- package/dist/assets/VAlert-P256xaE0.js +0 -1
- package/dist/assets/VAutocomplete-BDb95qJX.js +0 -1
- package/dist/assets/VAvatar-DPzqDH4r.js +0 -1
- package/dist/assets/VBtn-B2MBK2DL.js +0 -1
- package/dist/assets/VCard-mXy0k4aS.js +0 -1
- package/dist/assets/VCheckbox-C7A1ZW4D.js +0 -1
- package/dist/assets/VChip-CcI-Oo2J.js +0 -1
- package/dist/assets/VDialog-Bu3EfKb1.js +0 -1
- package/dist/assets/VDivider-BMEqUoAB.js +0 -1
- package/dist/assets/VExpansionPanels-Dgjrop0V.js +0 -1
- package/dist/assets/VMenu-C_x18lwb.js +0 -1
- package/dist/assets/VOverlay-CeMZurIN.js +0 -1
- package/dist/assets/VRadioGroup-CUu2-KIP.js +0 -1
- package/dist/assets/VRow-Cpw7OHQV.js +0 -1
- package/dist/assets/VSelect-DL3HaA5m.js +0 -2
- package/dist/assets/VSheet-DZWsu0kL.js +0 -1
- package/dist/assets/VSkeletonLoader-CttxM1tw.js +0 -1
- package/dist/assets/VSpacer-Dhmsvk4t.js +0 -1
- package/dist/assets/VSwitch-BRHeDJkH.js +0 -1
- package/dist/assets/VTextField-BR2eZeFT.js +0 -1
- package/dist/assets/VTextField-BiatYyd3.css +0 -1
- package/dist/assets/VTextarea-DbqamXJd.js +0 -1
- package/dist/assets/Vibe64AuthSettingsButton-fY4ZiIFF.js +0 -5
- package/dist/assets/Vibe64DashboardPageHeader-Gm1IvlHx.css +0 -1
- package/dist/assets/Vibe64DashboardShell-BSq7uXEW.js +0 -1
- package/dist/assets/Vibe64OutputControls-_zhGX9ne.js +0 -8
- package/dist/assets/Vibe64SessionFiles-Bl8wJ5Sk.css +0 -1
- package/dist/assets/_slug_-BclonbST.js +0 -24
- package/dist/assets/_slug_-CZ1bxO9C.css +0 -1
- package/dist/assets/app-BNP_n_Tt.js +0 -1
- package/dist/assets/assistantRouting-D4XpXcEf.js +0 -3
- package/dist/assets/client-BWV84wi2.js +0 -2
- package/dist/assets/client-DGrP-2AJ.css +0 -1
- package/dist/assets/definitions-BrMvu6yV.js +0 -1
- package/dist/assets/env-BzRtyO0w.css +0 -1
- package/dist/assets/env-D3KQGvRe.js +0 -1
- package/dist/assets/health-BJvooRnJ.css +0 -1
- package/dist/assets/health-BhoO1d4h.js +0 -1
- package/dist/assets/incoming-DWDrmxyH.css +0 -1
- package/dist/assets/incoming-DzADFGqp.js +0 -2
- package/dist/assets/index-dNxr4Lg9.js +0 -138
- package/dist/assets/integrations-Cq1x-Di9.css +0 -1
- package/dist/assets/issues-Bywux4s7.js +0 -1
- package/dist/assets/mdi-CG9pWOSj.js +0 -1
- package/dist/assets/placement-BF-zIEhA.js +0 -1
- package/dist/assets/pull-requests-CdbhyFOv.css +0 -1
- package/dist/assets/pull-requests-ncmKT3sS.js +0 -1
- package/dist/assets/ripple-BVltMmyV.js +0 -11
- package/dist/assets/settings-BopLnpB0.css +0 -1
- package/dist/assets/shared-DpMvYJO3.js +0 -2
- package/dist/assets/studioGateApi-DcCqiD9V.js +0 -1
- package/dist/assets/studioUrls-DmMMIScP.js +0 -1
- package/dist/assets/useArchivedVibe64Sessions-_LB2XxEa.js +0 -1
- package/dist/assets/useCommand-Bqxb-naz.js +0 -1
- package/dist/assets/useEndpointResource-DWoQ2keu.js +0 -1
- package/dist/assets/useRealtimeEvent-Bwapstla.js +0 -1
- package/dist/assets/useVibe64ConversationLog-BqUI0S5n.js +0 -1
- package/dist/assets/useVibe64Learning-DyqXkpLw.js +0 -1
- package/dist/assets/useVibe64ProjectScope-Bp1ImZlz.js +0 -1
- package/dist/assets/useVibe64SessionData-B686lToN.js +0 -1
- package/dist/assets/vibe64SessionFocus-CqZNTvYF.js +0 -1
- package/dist/assets/vibe64SessionFocus-OJ2toBd9.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.cli-install-notice__command[data-v-17cadc5d]{background:rgba(var(--v-theme-on-surface), .06);border-radius:.5rem;align-items:center;gap:.25rem;padding:.25rem .25rem .25rem .75rem;display:flex}.cli-install-notice__command code[data-v-17cadc5d]{white-space:nowrap;flex:1;min-width:0;font-size:.8125rem;overflow-x:auto}.cli-install-notice__guide[data-v-17cadc5d]{margin-top:.5rem;font-size:.875rem;display:inline-block}.cli-install-notice__details[data-v-17cadc5d]{color:rgba(var(--v-theme-on-surface), .72);margin-top:.5rem;font-size:.8125rem}.cli-install-notice__details summary[data-v-17cadc5d]{cursor:pointer}.cli-install-notice__details pre[data-v-17cadc5d]{overflow-wrap:anywhere;white-space:pre-wrap;margin-top:.25rem;font-size:.75rem}.ai-personal-use[data-v-b643988c]{flex-wrap:wrap;align-items:center;gap:4px 8px;display:inline-flex}.ai-personal-use--note[data-v-b643988c]{display:flex}.ai-personal-use__chip[data-v-b643988c]{letter-spacing:0;font-weight:600}.ai-personal-use__note[data-v-b643988c]{align-items:flex-start;gap:6px;display:inline-flex}.ai-personal-use__link[data-v-b643988c]{color:rgb(var(--v-theme-primary));cursor:pointer;font:inherit;text-underline-offset:2px;background:0 0;border:0;min-height:24px;padding:0;font-size:.875rem;text-decoration:underline}.ai-personal-use__link[data-v-b643988c]:focus-visible{outline:2px solid rgb(var(--v-theme-primary));outline-offset:2px}.routing-row[data-v-9a5b35db]{border-top:1px solid var(--v64-outline-variant);gap:var(--v64-space-1) var(--v64-space-4);padding:var(--v64-space-3) 0;grid-template-columns:minmax(7.5rem,9.5rem) minmax(0,1fr);display:grid}.routing-row__label[data-v-9a5b35db]{font:var(--v64-type-label-lg);padding-top:2px}.routing-row__body[data-v-9a5b35db]{gap:var(--v64-space-2);min-width:0;display:grid}.routing-row__description[data-v-9a5b35db],.routing-row__same[data-v-9a5b35db]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);margin:0}.routing-row__same[data-v-9a5b35db]{align-items:center;gap:var(--v64-space-2);justify-content:space-between;display:flex}.routing-row__same>span[data-v-9a5b35db]{overflow-wrap:anywhere;min-width:0}.routing-row__change[data-v-9a5b35db]{flex:none;margin-inline-end:calc(var(--v64-space-3) * -1)}.routing-row__controls[data-v-9a5b35db]{align-items:flex-start;gap:var(--v64-space-2);grid-template-columns:minmax(0,1fr) minmax(6.5rem,8.5rem);display:grid}.routing-row__controls[data-v-9a5b35db]:not(:has(.routing-row__thinking)){grid-template-columns:minmax(0,1fr)}.routing-row__advanced-toggle[data-v-9a5b35db]{margin-inline-start:calc(var(--v64-space-3) * -1)}.routing-row__advanced-toggle[data-v-9a5b35db] .v-btn__append{transition:transform var(--v64-duration-short) var(--v64-ease-standard)}.routing-row__advanced-toggle.is-open[data-v-9a5b35db] .v-btn__append{transform:rotate(180deg)}.routing-row__footer[data-v-9a5b35db]{align-items:center;gap:var(--v64-space-2);flex-wrap:wrap;display:flex}.routing-row__footer[data-v-9a5b35db]:empty{display:none}.routing-row__return[data-v-9a5b35db]:first-child{margin-inline-start:calc(var(--v64-space-3) * -1)}.routing-row__option-title[data-v-9a5b35db]{white-space:normal;flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.routing-row__model-name[data-v-9a5b35db]{overflow-wrap:anywhere;font-weight:500}.routing-row__status[data-v-9a5b35db]{color:var(--v64-on-surface-variant);font:400 .8125rem/1.125rem var(--v64-font-family)}.routing-row__option[data-v-9a5b35db] .v-list-item-subtitle{color:var(--v64-on-surface-variant);opacity:1}.routing-row__selection[data-v-9a5b35db]{white-space:nowrap;align-items:center;gap:6px;min-width:0;display:inline-flex;overflow:hidden}.routing-row__selection .routing-row__model-name[data-v-9a5b35db]{overflow-wrap:normal;text-overflow:ellipsis;min-width:0;overflow:hidden}.routing-row__runs-in[data-v-9a5b35db]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.routing-row__advanced[data-v-9a5b35db]{background:var(--v64-surface-container-low);border:1px solid var(--v64-outline-variant);border-radius:var(--v64-shape-md);gap:var(--v64-space-1);padding:var(--v64-space-3) var(--v64-space-4);display:grid}.routing-row__fixed[data-v-9a5b35db]{font:var(--v64-type-body-md);align-items:center;gap:var(--v64-space-2);margin:0;display:flex}.routing-row__runs-in-group[data-v-9a5b35db] .v-label{font:var(--v64-type-label-lg);opacity:1}.routing-row__runs-in-group[data-v-9a5b35db] .v-selection-control{min-height:44px}.routing-row__tool[data-v-9a5b35db]{align-items:center;gap:var(--v64-space-2);display:inline-flex}.routing-row__connect[data-v-9a5b35db]{justify-self:start;margin-inline-start:calc(var(--v64-space-3) * -1)}.routing-tool[data-v-9a5b35db]{background:var(--v64-surface-container-highest);color:var(--v64-on-surface);font:700 .625rem/1 var(--v64-font-family);letter-spacing:.02em;border-radius:6px;flex:none;justify-content:center;align-items:center;width:24px;height:20px;display:inline-flex}@media (width<=599.98px){.routing-row[data-v-9a5b35db]{gap:var(--v64-space-1);grid-template-columns:minmax(0,1fr)}.routing-row__controls[data-v-9a5b35db]{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.routing-row__advanced-toggle[data-v-9a5b35db] .v-btn__append{transition:none}}.model-routing[data-v-0bf2ce5a]{flex-direction:column;min-width:0;max-height:calc(100dvh - 96px);display:flex}.model-routing__body[data-v-0bf2ce5a]{min-height:0;padding-top:4px;overflow-y:auto}.model-routing__title[data-v-0bf2ce5a]{font:var(--v64-type-title-lg);margin:0 0 var(--v64-space-3)}.model-routing__switch[data-v-0bf2ce5a]{margin-bottom:var(--v64-space-4);max-width:100%}.model-routing__switch .v-btn[data-v-0bf2ce5a]{letter-spacing:0;text-transform:none}.model-routing__intro[data-v-0bf2ce5a]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);margin-bottom:var(--v64-space-4)}.model-routing__intro p[data-v-0bf2ce5a]{margin:0 0 var(--v64-space-2);max-width:62ch}.model-routing__empty[data-v-0bf2ce5a]{background:var(--v64-surface-container-low);border:1px dashed var(--v64-outline);border-radius:var(--v64-shape-md);align-items:center;gap:var(--v64-space-3);margin-bottom:var(--v64-space-4);padding:var(--v64-space-4);flex-wrap:wrap;justify-content:space-between;display:flex}.model-routing__empty p[data-v-0bf2ce5a]{font:var(--v64-type-body-md);max-width:40ch;margin:0}.model-routing__tools[data-v-0bf2ce5a]{margin-bottom:var(--v64-space-3);align-items:center;min-height:36px;display:flex}.model-routing__tools p[data-v-0bf2ce5a]{color:var(--v64-on-surface-variant);margin:0}.model-routing__group+.model-routing__group[data-v-0bf2ce5a]{margin-top:var(--v64-space-4)}.model-routing__group-title[data-v-0bf2ce5a]{color:var(--v64-on-surface-variant);font:var(--v64-type-label-md);letter-spacing:.08em;margin:0 0 var(--v64-space-1);text-transform:uppercase}.model-routing__actions[data-v-0bf2ce5a]{align-items:center;gap:var(--v64-space-2);padding-top:var(--v64-space-4);flex-wrap:wrap;justify-content:flex-end;display:flex}.model-routing__checking[data-v-0bf2ce5a]{color:var(--v64-on-surface-variant);font:400 .8125rem/1.125rem var(--v64-font-family);margin-inline-end:auto}.model-routing__changes[data-v-0bf2ce5a]{overflow-wrap:anywhere}.model-routing__proposal[data-v-0bf2ce5a]{margin-block:6px}.model-routing__proposal[data-v-0bf2ce5a] .v-selection-control{align-items:flex-start}.model-routing__personal[data-v-0bf2ce5a]{background:rgba(var(--v-theme-warning), .12);border-radius:12px;padding:10px 12px}@media (width<=599.98px){.model-routing__switch[data-v-0bf2ce5a]{width:100%;display:flex}.model-routing__switch .v-btn[data-v-0bf2ce5a]{flex:1 1 0;min-height:48px}.model-routing__empty .v-btn[data-v-0bf2ce5a]{width:100%}}.ai-wait[data-v-c328aa94]{align-items:flex-start;gap:.75rem;min-width:0;display:flex}.ai-wait__spinner[data-v-c328aa94]{flex:none;margin-top:.125rem}.ai-wait__text[data-v-c328aa94]{overflow-wrap:anywhere;justify-items:start;gap:.25rem;min-width:0;display:grid}.ai-wait__slow[data-v-c328aa94]{color:rgba(var(--v-theme-on-surface), .7)}.native-providers[data-v-bbd421f7]{min-width:0}.accounts-setup[data-v-5fcac264]{gap:1.5rem;width:100%;display:grid}.accounts-setup__header[data-v-5fcac264],.accounts-setup__notice[data-v-5fcac264],.accounts-setup__items[data-v-5fcac264]{width:100%;min-width:0;max-width:68rem;margin-inline:auto}.accounts-setup__header[data-v-5fcac264],.accounts-setup__items[data-v-5fcac264]{gap:.75rem;display:grid}.accounts-setup__header-actions[data-v-5fcac264],.accounts-setup__actions[data-v-5fcac264]{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.accounts-setup__header[data-v-5fcac264]{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:.5rem}.accounts-setup__header>p[data-v-5fcac264]{grid-column:1/-1}.accounts-setup__identity-fields[data-v-5fcac264]{grid-template-columns:repeat(auto-fit,minmax(min(12rem,100%),1fr));gap:.5rem;width:100%;display:grid}.accounts-setup__api-key-form[data-v-5fcac264]{flex-basis:100%;align-items:start;gap:.75rem;max-width:42rem;display:grid}.accounts-setup__identity[data-v-5fcac264]{color:rgba(var(--v-theme-on-surface), .7);overflow-wrap:anywhere;margin-top:.25rem;font-weight:500}.accounts-setup__item[data-v-5fcac264]{gap:1.5rem;min-width:0;display:grid}.accounts-setup__item-main[data-v-5fcac264]{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.75rem;display:grid}.accounts-setup__session[data-v-5fcac264],.accounts-setup__instruction-copy[data-v-5fcac264]{gap:1rem;min-width:0;display:grid}.accounts-setup__steps[data-v-5fcac264]{align-items:center;gap:1rem;list-style:none;display:flex}.accounts-setup__steps li[data-v-5fcac264]{flex-shrink:0}.accounts-setup__steps .accounts-setup__step-divider[data-v-5fcac264]{flex:1}.accounts-setup__steps [aria-current=step][data-v-5fcac264]{color:rgb(var(--v-theme-primary))}.accounts-setup__code-block[data-v-5fcac264]{gap:.5rem;display:grid;container-type:inline-size}.accounts-setup__code-row[data-v-5fcac264]{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.accounts-setup__code[data-v-5fcac264]{white-space:nowrap;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.04em!important;font-size:clamp(1rem,7cqi,2rem)!important}.accounts-setup__copy-status[data-v-5fcac264]{min-height:1.25rem}.accounts-setup__settings-actions[data-v-5fcac264]{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.accounts-setup__settings-action[data-v-5fcac264]{max-width:100%}.accounts-setup__authorize-action[data-v-5fcac264]{width:100%}.accounts-setup__reference-image[data-v-5fcac264]{max-width:100%;height:auto;display:block}.accounts-setup__terminal[data-v-5fcac264]{min-width:0}.accounts-setup__wait[data-v-5fcac264]{flex-basis:100%}.accounts-setup__pending-action[data-v-5fcac264]{min-inline-size:9rem}.ai-dialog[data-v-75267aac] .v-btn:not(.v-btn--icon){border-radius:var(--v64-shape-md);letter-spacing:0;text-transform:none}.vibe64-dialog-title[data-v-75267aac],.vibe64-provider-editor__provider[data-v-75267aac],.vibe64-provider-editor__route>span[data-v-75267aac],.vibe64-provider-editor__security[data-v-75267aac],.vibe64-provider-editor__recovery[data-v-75267aac]{display:flex}.vibe64-add-ai__body>p[data-v-75267aac],.vibe64-provider-editor__route p[data-v-75267aac]{margin:0}.vibe64-dialog-eyebrow[data-v-75267aac]{color:rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity));letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:700}.vibe64-provider-picker__body[data-v-75267aac],.vibe64-provider-picker__empty[data-v-75267aac],.vibe64-provider-picker__recovery[data-v-75267aac],.vibe64-provider-editor__body[data-v-75267aac],.vibe64-provider-editor__provider>span[data-v-75267aac]:last-child{display:grid}.vibe64-provider-picker__body[data-v-75267aac],.vibe64-provider-picker__empty[data-v-75267aac],.vibe64-provider-picker__recovery[data-v-75267aac],.vibe64-provider-editor__body[data-v-75267aac]{gap:1rem}.vibe64-provider-editor__provider small[data-v-75267aac]{color:rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity))}.vibe64-provider-editor__route>span[data-v-75267aac]{flex-wrap:wrap;align-items:center;gap:.5rem}.vibe64-provider-editor__security[data-v-75267aac]{align-items:center;gap:.5rem;font-size:.8125rem}.vibe64-dialog-title[data-v-75267aac]{justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem .5rem}.vibe64-dialog-title>span[data-v-75267aac]{white-space:normal;gap:.15rem;min-width:0;display:grid}.vibe64-dialog-title strong[data-v-75267aac]{overflow-wrap:anywhere}.vibe64-dialog-title[data-v-75267aac]>:last-child{flex:none}.vibe64-add-ai__body[data-v-75267aac],.vibe64-provider-picker__body[data-v-75267aac],.vibe64-provider-editor__body[data-v-75267aac]{padding:1rem 1.5rem 1.5rem}.vibe64-add-ai__body[data-v-75267aac]{align-content:start;gap:1rem;display:grid}.vibe64-add-ai__choice[data-v-75267aac]{flex-direction:column;display:flex}.vibe64-add-ai__choice-copy[data-v-75267aac]{flex:1}.vibe64-add-ai__choice-actions[data-v-75267aac]{padding:0 1rem 1rem}.vibe64-add-ai__choice-action[data-v-75267aac]{min-height:3rem}.vibe64-codex-setup__body[data-v-75267aac]{padding:1.5rem}.vibe64-provider-picker__list[data-v-75267aac]{border-color:rgba(var(--v-theme-outline), var(--v-border-opacity));overflow:hidden}.vibe64-provider-picker__item[data-v-75267aac]{min-height:4.75rem}.vibe64-provider-picker__item+.vibe64-provider-picker__item[data-v-75267aac]{border-top:1px solid rgba(var(--v-theme-outline), var(--v-border-opacity))}.vibe64-provider-picker__empty[data-v-75267aac]{text-align:center;justify-items:center;padding:2.5rem 1.5rem}.vibe64-provider-picker__recovery .v-btn[data-v-75267aac]{justify-self:end}.vibe64-provider-editor__provider[data-v-75267aac]{background:rgba(var(--v-theme-primary), .06);border:1px solid rgba(var(--v-theme-outline), var(--v-border-opacity));align-items:center;gap:.75rem;padding:.85rem}.vibe64-provider-editor__provider>span[data-v-75267aac]:last-child{gap:.1rem}.vibe64-provider-editor__route[data-v-75267aac]{background:rgba(var(--v-theme-primary), .06);border:1px solid rgba(var(--v-theme-outline), var(--v-border-opacity));gap:.45rem;padding:.85rem;display:grid}.vibe64-provider-editor__route p[data-v-75267aac]{color:rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity));font-size:.875rem;line-height:1.45}.vibe64-provider-editor__recovery[data-v-75267aac]{justify-content:flex-end;gap:.5rem}.vibe64-provider-editor__actions[data-v-75267aac]{justify-content:flex-end;gap:.5rem;padding:0 1.5rem 1.25rem}.vibe64-ai-connections__confirm-header[data-v-75267aac]{padding:1.25rem 1.25rem .5rem}.vibe64-ai-connections__confirm-actions[data-v-75267aac]{justify-content:flex-end;gap:.5rem;padding:.75rem 1.25rem 1.25rem;display:flex}.vibe64-ai-connections__confirm-subtitle[data-v-75267aac]{text-overflow:initial;white-space:normal;overflow:visible}.ai-dialog--compact .vibe64-provider-editor__actions[data-v-75267aac],.ai-dialog--compact .vibe64-provider-editor__recovery[data-v-75267aac],.ai-dialog--compact.ai-dialog .vibe64-ai-connections__confirm-actions[data-v-75267aac]{flex-direction:column-reverse;align-items:stretch}.ai-dialog--compact .vibe64-provider-editor__actions .v-btn[data-v-75267aac],.ai-dialog--compact .vibe64-provider-editor__recovery .v-btn[data-v-75267aac],.ai-dialog--compact .vibe64-ai-connections__confirm-actions .v-btn[data-v-75267aac]{width:100%;margin-inline-start:0}.ai-dialog--compact .vibe64-add-ai__body[data-v-75267aac],.ai-dialog--compact .vibe64-provider-picker__body[data-v-75267aac],.ai-dialog--compact .vibe64-provider-editor__body[data-v-75267aac],.ai-dialog--compact .vibe64-codex-setup__body[data-v-75267aac]{padding:1rem}@media (width<=600px){.vibe64-ai-connections__confirm-actions[data-v-75267aac]{flex-direction:column-reverse;align-items:stretch}.vibe64-ai-connections__confirm-actions .v-btn[data-v-75267aac]{width:100%;margin-inline-start:0}}.ai-row[data-v-a5fd1f17]{--ai-row-on-success:color-mix(in srgb, var(--v64-success) 55%, #000);--ai-row-type-title-sm:500 .9375rem/1.375rem var(--v64-font-family);--ai-row-type-body-sm:400 .8125rem/1.125rem var(--v64-font-family);background:var(--v64-surface);border:1px solid var(--v64-outline-variant);border-radius:var(--v64-shape-lg);gap:var(--v64-space-3);min-width:0;padding:var(--v64-space-4);display:grid}.v-theme--dark .ai-row[data-v-a5fd1f17]{--ai-row-on-success:color-mix(in srgb, var(--v64-success) 45%, #fff)}.ai-row--attention[data-v-a5fd1f17]{background:color-mix(in srgb, rgb(var(--v-theme-warning)) 6%, var(--v64-surface));border-color:color-mix(in srgb, rgb(var(--v-theme-warning)) 45%, var(--v64-outline-variant))}.ai-row[data-v-a5fd1f17] .v-btn:not(.v-btn--icon){border-radius:var(--v64-shape-md);letter-spacing:0;text-transform:none}.ai-row__main[data-v-a5fd1f17]{align-items:flex-start;gap:var(--v64-space-3);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.ai-row__status[data-v-a5fd1f17]{border-radius:var(--v64-shape-full);justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.ai-row__status--ok[data-v-a5fd1f17]{background:var(--v64-success-container);color:var(--ai-row-on-success)}.ai-row__status--warn[data-v-a5fd1f17]{background:color-mix(in srgb, rgb(var(--v-theme-warning)) 22%, var(--v64-surface));color:rgb(var(--v-theme-warning))}.ai-row__identity[data-v-a5fd1f17]{gap:2px;min-width:0;display:grid}.ai-row__title[data-v-a5fd1f17]{align-items:baseline;gap:0 var(--v64-space-2);flex-wrap:wrap;display:flex}.ai-row__title strong[data-v-a5fd1f17]{font:var(--v64-type-title-md)}.ai-row__via[data-v-a5fd1f17]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md)}.ai-row__detail[data-v-a5fd1f17]{font:var(--v64-type-body-md);overflow-wrap:anywhere}.ai-row__meta[data-v-a5fd1f17]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);overflow-wrap:anywhere}.ai-row__meta--warn[data-v-a5fd1f17]{color:color-mix(in srgb, rgb(var(--v-theme-warning)) 75%, var(--v64-on-surface));font-weight:500}.ai-row__key[data-v-a5fd1f17]{font-variant-numeric:tabular-nums;letter-spacing:.04em}.ai-row__chips[data-v-a5fd1f17]{align-items:center;gap:var(--v64-space-1);flex-wrap:wrap;justify-content:flex-end;display:flex}.ai-row__chip[data-v-a5fd1f17]{background:var(--v64-success-container);border-radius:var(--v64-shape-full);color:var(--ai-row-on-success);font:var(--v64-type-label-md);padding:2px 10px}.ai-row__chips[data-v-a5fd1f17]:empty{display:none}.ai-row__panel[data-v-a5fd1f17]{background:var(--v64-surface-container-low);border-radius:var(--v64-shape-md);gap:var(--v64-space-3);padding:var(--v64-space-3) var(--v64-space-4);margin-inline-start:calc(36px + var(--v64-space-3));display:grid}.ai-row__panel--switch[data-v-a5fd1f17]{grid-template-columns:minmax(0,1fr) auto;align-items:center}.ai-row__panel--paid[data-v-a5fd1f17]{background:color-mix(in srgb, rgb(var(--v-theme-warning)) 10%, var(--v64-surface))}.ai-row__panel-copy[data-v-a5fd1f17]{align-items:flex-start;gap:var(--v64-space-3);min-width:0;display:flex}.ai-row__panel-copy>span[data-v-a5fd1f17]{gap:2px;min-width:0;display:grid}.ai-row__panel-copy strong[data-v-a5fd1f17]{font:var(--ai-row-type-title-sm)}.ai-row__panel-copy small[data-v-a5fd1f17],.ai-row__progress small[data-v-a5fd1f17]{color:var(--v64-on-surface-variant);font:var(--ai-row-type-body-sm)}.ai-row__panel-icon[data-v-a5fd1f17]{color:var(--v64-primary);flex:none;margin-top:1px}.ai-row__panel--paid .ai-row__panel-icon[data-v-a5fd1f17]{color:rgb(var(--v-theme-warning))}.ai-row__panel .v-switch[data-v-a5fd1f17]{flex:none}.ai-row__progress[data-v-a5fd1f17]{gap:var(--v64-space-1);display:grid}.ai-row__panel-actions[data-v-a5fd1f17]{gap:var(--v64-space-1);flex-wrap:wrap;margin-inline-start:calc(var(--v64-space-2) * -1);display:flex}.ai-row__panel-actions .v-btn[data-v-a5fd1f17]:first-child{margin-inline-start:var(--v64-space-2)}.ai-row__actions[data-v-a5fd1f17]{align-items:center;gap:var(--v64-space-1);flex-wrap:wrap;padding-inline-start:calc(36px + var(--v64-space-3));display:flex}.ai-row__remove[data-v-a5fd1f17]{margin-inline-start:auto}@media (width<=599.98px){.ai-row[data-v-a5fd1f17]{padding:var(--v64-space-3) var(--v64-space-3) var(--v64-space-3)}.ai-row__main[data-v-a5fd1f17]{grid-template-columns:auto minmax(0,1fr)}.ai-row__chips[data-v-a5fd1f17]{grid-column:2;justify-content:flex-start}.ai-row__panel[data-v-a5fd1f17],.ai-row__actions[data-v-a5fd1f17]{margin-inline-start:0;padding-inline-start:0}.ai-row__panel--switch[data-v-a5fd1f17]{grid-template-columns:minmax(0,1fr)}.ai-row__panel-actions[data-v-a5fd1f17]{margin-inline-start:0}.ai-row__panel-actions .v-btn[data-v-a5fd1f17]{flex:100%;margin:0}.ai-row__actions .v-btn[data-v-a5fd1f17]{flex:auto}.ai-row__remove[data-v-a5fd1f17]{margin-inline-start:0}}.aio-mark[data-v-2085323f]{--aio-s:var(--aio-mark-size);height:var(--aio-s);width:var(--aio-s);flex:none;display:inline-flex;position:relative}.aio-mark__tile[data-v-2085323f]{background:var(--aio-tone-bg);color:var(--aio-tone-fg);font:650 calc(var(--aio-s) * .46) / 1 var(--v64-font-family);letter-spacing:-.03em;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.aio-mark--squircle .aio-mark__tile[data-v-2085323f]{border-radius:30%}.aio-mark--circle .aio-mark__tile[data-v-2085323f]{border-radius:50%}.aio-mark--hexagon .aio-mark__tile[data-v-2085323f]{clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%)}.aio-mark--diamond .aio-mark__tile[data-v-2085323f]{border-radius:22%;transform:rotate(45deg)scale(.78)}.aio-mark--diamond .aio-mark__glyph[data-v-2085323f]{transform:rotate(-45deg)scale(1.28)}.aio-mark--primary .aio-mark__tile[data-v-2085323f]{--aio-tone-bg:radial-gradient(120% 120% at 25% 15%, #ffe48a, #f2bd1d 55%, #d79c00);--aio-tone-fg:#2b2100;box-shadow:inset 0 1px 0 #ffffff8c, inset 0 -2px 0 #7850002e, 0 calc(var(--aio-s) * .12) calc(var(--aio-s) * .3) calc(var(--aio-s) * -.14) #a06e00b3}.aio-mark--secondary[data-v-2085323f]{--aio-tone-bg:var(--v64-secondary-container);--aio-tone-fg:var(--v64-on-secondary-container)}.aio-mark--tertiary[data-v-2085323f]{--aio-tone-bg:color-mix(in srgb, #7d5260 18%, var(--v64-surface));--aio-tone-fg:#633b48}.v-theme--dark .aio-mark--tertiary[data-v-2085323f]{--aio-tone-bg:color-mix(in srgb, #efb8c8 20%, var(--v64-surface));--aio-tone-fg:#efb8c8}.aio-mark--neutral[data-v-2085323f]{--aio-tone-bg:var(--v64-surface-container-highest);--aio-tone-fg:var(--v64-on-surface)}.aio-mark__crown[data-v-2085323f]{filter:drop-shadow(0 1px 1px #78500073);height:calc(var(--aio-s) * .51);left:calc(var(--aio-s) * -.375);top:calc(var(--aio-s) * -.44);width:calc(var(--aio-s) * 1.75);position:absolute}.aio-mark__crown i[data-v-2085323f]{height:100%;-webkit-mask:var(--aio-crown-mask) center / contain no-repeat;-webkit-mask:var(--aio-crown-mask) center / contain no-repeat;mask:var(--aio-crown-mask) center / contain no-repeat;background:linear-gradient(105deg,#0000 38%,#fff8d2e6 48%,#0000 58%) 100% 0/320% 100%,linear-gradient(#ffe48a,#f2bd1d 50%,#c48a00);width:100%;display:block}.aio-mark__crown--settle[data-v-2085323f]{animation:aio-crown-settle-2085323f var(--v64-duration-long) var(--v64-ease-emphasized-decelerate) var(--aio-settle-delay) both}.aio-mark__crown--settle i[data-v-2085323f]{animation:aio-crown-glint-2085323f 1.1s var(--v64-ease-standard) calc(var(--aio-settle-delay) + .35s) both}@keyframes aio-crown-settle-2085323f{0%{opacity:0;transform:translateY(-60%)scale(.7)}60%{opacity:1;transform:translateY(6%)scale(1.04)}}@keyframes aio-crown-glint-2085323f{0%{background-position:100% 0,0 0}to{background-position:0 0,0 0}}@media (prefers-reduced-motion:reduce){.aio-mark__crown--settle[data-v-2085323f],.aio-mark__crown--settle i[data-v-2085323f]{animation:none}}.ai-manage[data-v-5472ebf5]{--aio-crown:#f5c518;--aio-crown-strong:#8a6a00;background:var(--v64-surface-container-lowest,var(--v64-surface));color:var(--v64-on-surface);font-family:var(--v64-font-family);letter-spacing:normal}.v-theme--dark .ai-manage[data-v-5472ebf5]{--aio-crown-strong:#f5c518}.ai-manage[data-v-5472ebf5] .v-btn:not(.v-btn--icon){border-radius:var(--v64-shape-md);letter-spacing:0;text-transform:none}.ai-manage[data-v-5472ebf5] .v-btn:focus-visible{outline:var(--v64-focus-ring-width) solid var(--v64-focus-ring-color);outline-offset:var(--v64-focus-ring-offset)}.ai-manage__header[data-v-5472ebf5]{background:radial-gradient(520px 200px at 90% -40%, var(--v64-primary-container), transparent 75%), var(--v64-surface);border-bottom:1px solid var(--v64-outline-variant);align-items:center;gap:var(--v64-space-2) var(--v64-space-4);padding:var(--v64-space-6) var(--v64-space-4) var(--v64-space-4) var(--v64-space-6);flex:none;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.ai-manage--primary .ai-manage__header[data-v-5472ebf5]{background:linear-gradient(160deg, color-mix(in srgb, var(--aio-crown) 14%, var(--v64-surface)), var(--v64-surface) 60%)}.ai-manage__heading[data-v-5472ebf5]{min-width:0}.ai-manage__eyebrow[data-v-5472ebf5]{color:var(--v64-primary);font:var(--v64-type-label-md);letter-spacing:.12em;text-transform:uppercase;margin:0}.ai-manage--primary .ai-manage__eyebrow[data-v-5472ebf5]{color:var(--aio-crown-strong)}.ai-manage__title[data-v-5472ebf5]{font:var(--v64-type-headline-sm);letter-spacing:-.01em;margin:0}.ai-manage__summary[data-v-5472ebf5]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);margin:2px 0 0}.ai-manage__header>.v-btn--icon[data-v-5472ebf5]{margin-top:calc(var(--v64-space-3) * -1);align-self:start}.ai-manage__billing[data-v-5472ebf5]{grid-column:2/4;justify-self:start;margin-inline-start:calc(var(--v64-space-2) * -1)}.ai-manage__body[data-v-5472ebf5]{align-content:start;gap:var(--v64-space-5);letter-spacing:normal;display:grid;padding:var(--v64-space-5) var(--v64-space-6) var(--v64-space-6)!important}.ai-manage__group[data-v-5472ebf5]{gap:var(--v64-space-3);display:grid}.ai-manage__group-title[data-v-5472ebf5]{color:var(--v64-on-surface-variant);font:var(--v64-type-label-md);align-items:baseline;gap:var(--v64-space-2);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;margin:0;display:flex}.ai-manage__group-title span[data-v-5472ebf5]{color:var(--v64-on-surface);font:var(--v64-type-title-md);letter-spacing:0;text-transform:none}.ai-manage__empty[data-v-5472ebf5]{background:var(--v64-surface-container-low);border:1px dashed var(--v64-outline-variant);border-radius:var(--v64-shape-lg);align-items:center;gap:var(--v64-space-3);padding:var(--v64-space-6) var(--v64-space-4);text-align:center;justify-items:center;display:grid}.ai-manage__empty p[data-v-5472ebf5]{font:var(--v64-type-body-lg);margin:0}.ai-manage__note[data-v-5472ebf5]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);align-items:center;gap:var(--v64-space-2);margin:0;display:flex}.ai-manage__note .v-icon[data-v-5472ebf5]{flex:none}.ai-manage--phone .ai-manage__header[data-v-5472ebf5]{padding:calc(var(--v64-space-4) + env(safe-area-inset-top)) var(--v64-space-2) var(--v64-space-3) var(--v64-space-4)}.ai-manage--phone .ai-manage__header>.v-btn--icon[data-v-5472ebf5]{margin-top:calc(var(--v64-space-2) * -1)}.ai-manage--phone .ai-manage__body[data-v-5472ebf5]{padding:var(--v64-space-4) var(--v64-space-4) calc(var(--v64-space-6) + env(safe-area-inset-bottom))!important}.ai-advanced[data-v-50e9c529]{background:var(--v64-surface);border:1px solid var(--v64-outline-variant);border-radius:var(--v64-shape-xl);margin-top:var(--v64-space-6);overflow:hidden}.ai-advanced[data-v-50e9c529] .v-btn:not(.v-btn--icon){border-radius:var(--v64-shape-md);letter-spacing:0;text-transform:none}.ai-advanced__toggle[data-v-50e9c529]{color:inherit;cursor:pointer;font:inherit;align-items:center;gap:var(--v64-space-4);padding:var(--v64-space-4) var(--v64-space-5);text-align:start;transition:background-color var(--v64-duration-short) var(--v64-ease-standard);background:0 0;border:0;width:100%;display:flex}.ai-advanced__toggle[data-v-50e9c529]:hover{background:color-mix(in srgb, var(--v64-on-surface) 4%, transparent)}.ai-advanced__toggle[data-v-50e9c529]:focus-visible{outline:var(--v64-focus-ring-width) solid var(--v64-focus-ring-color);outline-offset:calc(var(--v64-focus-ring-width) * -1)}.ai-advanced__icon[data-v-50e9c529]{background:var(--v64-surface-container-high);border-radius:var(--v64-shape-md);color:var(--v64-on-surface-variant);flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.ai-advanced__heading[data-v-50e9c529]{flex:1;gap:2px;min-width:0;display:grid}.ai-advanced__title[data-v-50e9c529]{font:var(--v64-type-title-md)}.ai-advanced__summary[data-v-50e9c529]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md)}.ai-advanced__chevron[data-v-50e9c529]{color:var(--v64-on-surface-variant);transition:transform var(--v64-duration-medium) var(--v64-ease-standard)}.ai-advanced--open .ai-advanced__chevron[data-v-50e9c529]{transform:rotate(180deg)}.ai-advanced__body[data-v-50e9c529]{border-top:1px solid var(--v64-outline-variant);gap:var(--v64-space-6);padding:var(--v64-space-5);display:grid}.ai-advanced__actions[data-v-50e9c529]{align-items:center;gap:var(--v64-space-2);flex-wrap:wrap;display:flex}.ai-advanced__loading[data-v-50e9c529]{gap:var(--v64-space-2);display:grid}.ai-advanced__group[data-v-50e9c529]{gap:var(--v64-space-3);display:grid}.ai-advanced__group-title[data-v-50e9c529]{color:var(--v64-on-surface-variant);font:var(--v64-type-label-md);letter-spacing:.08em;text-transform:uppercase;margin:0}.ai-advanced__group-note[data-v-50e9c529]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);margin:calc(var(--v64-space-2) * -1) 0 0}.ai-advanced__error p[data-v-50e9c529]{margin:var(--v64-space-1) 0 var(--v64-space-3)}@media (width<=599.98px){.ai-advanced__toggle[data-v-50e9c529],.ai-advanced__body[data-v-50e9c529]{padding:var(--v64-space-4)}.ai-advanced__actions .v-btn[data-v-50e9c529]{flex:auto}}@media (prefers-reduced-motion:reduce){.ai-advanced__chevron[data-v-50e9c529],.ai-advanced__toggle[data-v-50e9c529]{transition:none}}.aio-key[data-v-4e7cfd40]{gap:var(--v64-space-2);max-width:32rem;display:grid}.aio-key .v-btn[data-v-4e7cfd40]{justify-self:start}.ai-team-card[data-v-e0ab11b3]{background:color-mix(in srgb, var(--v64-primary-container) 40%, var(--v64-surface));border:1px solid var(--v64-outline-variant);border-radius:var(--v64-shape-lg);gap:var(--v64-space-4);margin:0 0 var(--v64-space-6);padding:var(--v64-space-4) var(--v64-space-5);display:flex}.ai-team-card[data-v-e0ab11b3]:focus-visible{outline:var(--v64-focus-ring-width) solid var(--v64-focus-ring-color);outline-offset:var(--v64-focus-ring-offset)}.ai-team-card--ready[data-v-e0ab11b3]{background:color-mix(in srgb, var(--v64-success-container) 55%, var(--v64-surface))}.ai-team-card__icon[data-v-e0ab11b3]{background:var(--v64-surface);border-radius:var(--v64-shape-full);color:var(--v64-primary);flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.ai-team-card--ready .ai-team-card__icon[data-v-e0ab11b3]{color:var(--v64-success)}.ai-team-card__body[data-v-e0ab11b3]{gap:var(--v64-space-2);min-width:0;display:grid}.ai-team-card__title[data-v-e0ab11b3]{font:var(--v64-type-title-md);margin:0}.ai-team-card__text[data-v-e0ab11b3]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);max-width:62ch;margin:0}.ai-team-card__error[data-v-e0ab11b3]{color:rgb(var(--v-theme-error));font:var(--v64-type-body-md);align-items:center;gap:var(--v64-space-2);margin:0;display:flex}.ai-team-card__actions[data-v-e0ab11b3]{align-items:center;gap:var(--v64-space-2);margin-top:var(--v64-space-1);flex-wrap:wrap;display:flex}.ai-team-card__actions .v-btn[data-v-e0ab11b3]{min-height:44px}@media (width<=599.98px){.ai-team-card[data-v-e0ab11b3]{padding:var(--v64-space-4)}.ai-team-card__actions .v-btn[data-v-e0ab11b3]{flex:100%;min-height:48px}}.tool-row[data-v-a5747c97]{background:var(--v64-surface-container-low);border:1px solid var(--v64-outline-variant);border-radius:var(--v64-shape-md,12px);align-items:start;gap:var(--v64-space-3,12px);padding:var(--v64-space-3,12px) var(--v64-space-4,16px);transition:background-color var(--v64-duration-medium) var(--v64-ease-standard), border-color var(--v64-duration-medium) var(--v64-ease-standard);grid-template-columns:20px minmax(0,1fr);display:grid}.tool-row--flat[data-v-a5747c97]{border-block-width:0;border-color:#0000;background:0 0;border-inline-width:0;border-radius:0;padding-inline:0}.tool-row--missing[data-v-a5747c97]:not(.tool-row--flat),.tool-row--broken[data-v-a5747c97]:not(.tool-row--flat){background:color-mix(in srgb, rgb(var(--v-theme-warning)) 6%, rgb(var(--v-theme-surface)));border-color:color-mix(in srgb, rgb(var(--v-theme-warning)) 28%, transparent)}.tool-row__icon[data-v-a5747c97]{justify-content:center;align-items:center;height:24px;display:flex}.tool-row--ready .tool-row__icon[data-v-a5747c97]{color:var(--v64-success)}.tool-row--missing .tool-row__icon[data-v-a5747c97],.tool-row--broken .tool-row__icon[data-v-a5747c97]{color:rgb(var(--v-theme-warning))}.tool-row__body[data-v-a5747c97]{gap:var(--v64-space-2,8px);min-width:0;display:grid}.tool-row__heading[data-v-a5747c97]{align-items:baseline;gap:0 var(--v64-space-2,8px);flex-wrap:wrap;min-width:0;min-height:24px;display:flex}.tool-row__aside[data-v-a5747c97]{color:var(--v64-on-surface-variant);font-size:.8125rem}.tool-row--optional.tool-row--missing .tool-row__heading[data-v-a5747c97]{flex-wrap:nowrap}.tool-row--optional.tool-row--missing .tool-row__title[data-v-a5747c97]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tool-row__toggle[data-v-a5747c97]{flex:none;align-self:center;margin-block:-8px;margin-inline:auto -8px}.tool-row__toggle[data-v-a5747c97],.tool-row__other[data-v-a5747c97]{font-size:.875rem;font-weight:500}@media (width<=599px){.tool-row__aside[data-v-a5747c97]{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}}.tool-row__title[data-v-a5747c97]{font:var(--v64-type-title-md);font-size:.9375rem;font-weight:600}.tool-row__path[data-v-a5747c97]{color:var(--v64-on-surface-variant);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;overflow:hidden}.tool-row__fix[data-v-a5747c97]{gap:var(--v64-space-2,8px);display:grid}.tool-row__sentence[data-v-a5747c97],.tool-row__note[data-v-a5747c97]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);margin:0}.tool-row__note[data-v-a5747c97]{align-items:center;gap:6px;font-size:.8125rem;display:flex}.tool-row__actions[data-v-a5747c97]{align-items:center;gap:var(--v64-space-2,8px);flex-wrap:wrap;padding-top:2px;display:flex}.tool-row__sentence--feedback[data-v-a5747c97]{color:var(--v64-on-surface)}.tool-row--optional.tool-row--missing .tool-row__icon[data-v-a5747c97]{color:var(--v64-on-surface-variant)}.ai-setup[data-v-c29462b1]{--aio-crown:#f5c518;--aio-crown-ink:#2b2100;--aio-crown-strong:#8a6a00;--aio-type-body-sm:400 .8125rem/1.125rem var(--v64-font-family);--aio-stage-top:clamp(24px, 6vh, 72px);--v64-on-success-container:color-mix(in srgb, var(--v64-success) 55%, #000);--aio-warn-ink:color-mix(in srgb, rgb(var(--v-theme-warning)) 45%, #000);color:var(--v64-on-surface);font-family:var(--v64-font-family)}.v-theme--dark .ai-setup[data-v-c29462b1]{--aio-crown-strong:#f5c518;--aio-warn-ink:color-mix(in srgb, rgb(var(--v-theme-warning)) 55%, #fff);--v64-on-success-container:color-mix(in srgb, var(--v64-success) 45%, #fff)}.ai-setup[data-v-c29462b1] .v-btn:not(.v-btn--icon){border-radius:var(--v64-shape-md);letter-spacing:0;text-transform:none}.v-theme--dark .ai-setup[data-v-c29462b1] .v-btn--variant-flat.bg-primary:not(.v-btn--disabled){background:color-mix(in srgb, rgb(var(--v-theme-primary)) 45%, #fff)!important;color:#0b1d33!important}.ai-setup[data-v-c29462b1] .v-btn--disabled.v-btn--variant-flat{opacity:1;background:color-mix(in srgb, var(--v64-on-surface) 12%, transparent)!important;color:color-mix(in srgb, var(--v64-on-surface) 38%, transparent)!important}.ai-setup[data-v-c29462b1] .v-btn--disabled .v-btn__overlay{opacity:0}@media (hover:none){.ai-setup[data-v-c29462b1] .v-btn:hover:not(:focus-visible)>.v-btn__overlay{opacity:0}}.ai-setup[data-v-c29462b1] .v-messages,.ai-setup[data-v-c29462b1] .text-body-small{font:var(--aio-type-body-sm);letter-spacing:0}.ai-setup[data-v-c29462b1] .v-alert-title{font:var(--v64-type-title-md);letter-spacing:0;margin-bottom:2px}.ai-setup[data-v-c29462b1] .v-alert__content{font:var(--v64-type-body-md)}.aio-tabular[data-v-c29462b1]{font-variant-numeric:tabular-nums}.ai-setup>section[data-v-c29462b1]{max-width:1040px;padding-top:var(--aio-stage-top);width:100%;margin-inline:auto}.ai-setup>.ai-onboarding__choose[data-v-c29462b1]{padding-top:var(--v64-space-3)}.ai-setup--phone>section[data-v-c29462b1]{padding-top:var(--v64-space-4)}.ai-setup--inline[data-v-c29462b1]{letter-spacing:normal}.aio-card__facts[data-v-c29462b1] .v-skeleton-loader{background:0 0}.ai-setup--inline>section[data-v-c29462b1],.ai-setup--inline>.ai-onboarding__choose[data-v-c29462b1]{padding-top:0}.ai-onboarding__eyebrow[data-v-c29462b1]{color:var(--v64-primary);font:var(--v64-type-label-lg);letter-spacing:.12em;margin:0 0 var(--v64-space-3)}.ai-onboarding__headline[data-v-c29462b1]{font:var(--v64-type-display-sm);letter-spacing:-.02em;margin:0 0 var(--v64-space-4);text-wrap:balance;outline:none}.ai-onboarding__lede[data-v-c29462b1]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-lg);margin:0 0 var(--v64-space-4);text-wrap:pretty;max-width:60ch}.ai-onboarding__footnote[data-v-c29462b1]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);margin:var(--v64-space-6) 0 0}.ai-onboarding__intro[data-v-c29462b1]{margin-bottom:var(--v64-space-6)}.ai-onboarding__choose .ai-onboarding__intro[data-v-c29462b1]{margin-bottom:var(--v64-space-5)}.ai-onboarding__choose .ai-onboarding__headline[data-v-c29462b1]{font:var(--v64-type-headline-md);margin-bottom:var(--v64-space-1)}.ai-onboarding__choose .ai-onboarding__lede[data-v-c29462b1]{margin:0}.ai-onboarding__choose .ai-onboarding__footnote[data-v-c29462b1]{margin-top:var(--v64-space-4)}.aio-back[data-v-c29462b1]{margin:0 0 var(--v64-space-4) calc(var(--v64-space-4) * -1)}.aio-meter[data-v-c29462b1]{flex:none;gap:3px;display:inline-flex}.aio-meter i[data-v-c29462b1]{box-shadow:inset 0 0 0 1px var(--v64-outline);border-radius:3px;width:10px;height:6px}.aio-meter i.is-filled[data-v-c29462b1]{background:var(--v64-primary);box-shadow:none}.aio-meter--low i.is-filled[data-v-c29462b1]{background:color-mix(in srgb, rgb(var(--v-theme-warning)) 70%, transparent)}.aio-current[data-v-c29462b1]{background:var(--v64-surface-container-low);border:1px solid var(--v64-outline-variant);border-radius:var(--v64-shape-lg);align-items:center;gap:var(--v64-space-3) var(--v64-space-4);margin:calc(var(--v64-space-2) * -1) 0 var(--v64-space-6);padding:var(--v64-space-4) var(--v64-space-5);flex-wrap:wrap;display:flex}.aio-current__marks[data-v-c29462b1]{gap:var(--v64-space-2);display:flex}.aio-current__text[data-v-c29462b1]{flex:12rem;display:grid}.aio-current__label[data-v-c29462b1]{color:var(--v64-on-surface-variant);font:var(--v64-type-label-md);letter-spacing:.06em;text-transform:uppercase}.aio-current__value[data-v-c29462b1]{font:var(--v64-type-title-md)}.aio-current__hint[data-v-c29462b1]{color:var(--v64-primary);font:var(--v64-type-label-lg);align-items:center;gap:var(--v64-space-1);display:inline-flex}.aio-models[data-v-c29462b1]{background:var(--v64-surface-container-low);border:1px solid var(--v64-outline-variant);border-radius:var(--v64-shape-lg);align-items:center;gap:var(--v64-space-3) var(--v64-space-5);margin-top:var(--v64-space-6);padding:var(--v64-space-4) var(--v64-space-5);flex-wrap:wrap;display:flex}.aio-models__text[data-v-c29462b1]{gap:var(--v64-space-1);flex:18rem;min-width:0;display:grid}.aio-models__title[data-v-c29462b1]{font:var(--v64-type-title-md);margin:0}.aio-models__list[data-v-c29462b1]{font:var(--v64-type-body-md);gap:var(--v64-space-1) var(--v64-space-5);flex-wrap:wrap;margin:0;display:flex}.aio-models__list div[data-v-c29462b1]{gap:var(--v64-space-2);min-width:0;display:flex}.aio-models__list dt[data-v-c29462b1]{color:var(--v64-on-surface-variant)}.aio-models__list dd[data-v-c29462b1]{overflow-wrap:anywhere;margin:0}.aio-models__open[data-v-c29462b1]{min-height:44px}.ai-onboarding__cards[data-v-c29462b1]{gap:var(--v64-space-4);display:grid}.aio-card[data-v-c29462b1]{animation:aio-rise-c29462b1 var(--v64-duration-medium) var(--v64-ease-emphasized-decelerate) both;animation-delay:calc(var(--aio-index) * 40ms);background:var(--v64-surface-container-low);border:1px solid var(--v64-outline-variant);border-radius:var(--v64-shape-lg);gap:var(--v64-space-3);min-width:0;padding:var(--v64-space-4) var(--v64-space-5);transition:border-color var(--v64-duration-short) var(--v64-ease-standard), box-shadow var(--v64-duration-short) var(--v64-ease-standard);flex-direction:column;display:flex;position:relative}@media (hover:hover){.ai-setup--pointer .aio-card[data-v-c29462b1]:hover{border-color:var(--v64-outline);box-shadow:var(--v64-elevation-1)}}.aio-card--featured[data-v-c29462b1]{background:linear-gradient(160deg, color-mix(in srgb, var(--aio-crown) 10%, var(--v64-surface)), var(--v64-surface) 55%);border-radius:var(--v64-shape-xl);box-shadow:0 24px 48px -30px color-mix(in srgb, var(--aio-crown-strong) 60%, transparent), var(--v64-elevation-1);padding:var(--v64-space-5) var(--v64-space-6) var(--v64-space-4)}@media (hover:hover){.ai-setup--pointer .aio-card--featured[data-v-c29462b1]:hover{box-shadow:0 28px 56px -30px color-mix(in srgb, var(--aio-crown-strong) 70%, transparent), var(--v64-elevation-2)}}.v-theme--dark .aio-card--featured[data-v-c29462b1]{background:linear-gradient(160deg, color-mix(in srgb, var(--aio-crown) 14%, var(--v64-surface)), var(--v64-surface) 60%);border-color:color-mix(in srgb, var(--aio-crown) 35%, var(--v64-outline-variant))}@media (width>=960px){.aio-card[data-v-c29462b1]{column-gap:var(--v64-space-5);row-gap:var(--v64-space-2);display:grid}.aio-card__head[data-v-c29462b1]{grid-area:head;align-self:start}.aio-card__facts[data-v-c29462b1]{grid-area:facts}.aio-card__note-row[data-v-c29462b1]{grid-area:note}.aio-card--featured[data-v-c29462b1]{column-gap:var(--v64-space-7);row-gap:var(--v64-space-3);grid-template:"head offer""facts offer""note offer"1fr/minmax(0,1fr) minmax(0,25rem)}.aio-card--featured .aio-card__facts[data-v-c29462b1]{padding-left:calc(64px + var(--v64-space-6))}.aio-card--featured .aio-card__offer[data-v-c29462b1]{grid-area:offer;align-self:center}.aio-card--featured .aio-card__ctas[data-v-c29462b1]{grid-template-columns:auto auto;justify-content:start;align-items:center}.aio-card--featured .aio-card__ctas .v-btn[data-v-c29462b1]:first-child{min-width:12rem}.aio-card[data-v-c29462b1]:not(.aio-card--featured){grid-template:"head facts plan ctas""head note plan ctas"1fr"free free free free"/minmax(0,15rem) minmax(0,1fr) minmax(0,12rem) minmax(0,12rem)}.aio-card:not(.aio-card--featured) .aio-card__offer[data-v-c29462b1]{display:contents}.aio-card:not(.aio-card--featured) .aio-plan[data-v-c29462b1]{background:0 0;grid-area:plan;padding:0}.aio-card:not(.aio-card--featured) .aio-plan__more[data-v-c29462b1]{border:0;margin:0;padding:0}.aio-card:not(.aio-card--featured) .aio-card__ctas[data-v-c29462b1]{grid-area:ctas;align-content:start}.aio-card:not(.aio-card--featured) .aio-card__free[data-v-c29462b1]{margin-top:var(--v64-space-1);grid-area:free}.aio-card--installing[data-v-c29462b1]:not(.aio-card--featured){grid-template-rows:auto 1fr auto auto;grid-template-areas:"head facts plan ctas""head note plan ctas""install install install install""free free free free"}.aio-card:not(.aio-card--featured) .aio-card__install[data-v-c29462b1]{margin-top:var(--v64-space-2);grid-area:install}}.aio-card--connected[data-v-c29462b1]{border:2px solid var(--v64-success)}.aio-card--reconnect[data-v-c29462b1]{border:2px solid color-mix(in srgb, rgb(var(--v-theme-warning)) 70%, transparent)}.aio-card__ribbon[data-v-c29462b1],.aio-card__connected[data-v-c29462b1]{border-radius:var(--v64-shape-full);box-shadow:0 0 0 3px var(--v64-surface);font:var(--v64-type-label-lg);align-items:center;gap:var(--v64-space-1);letter-spacing:.02em;padding:3px 12px;display:inline-flex;position:absolute;top:-14px}.aio-card__ribbon[data-v-c29462b1]{background:var(--aio-crown);color:var(--aio-crown-ink);right:var(--v64-space-6)}.aio-card__connected[data-v-c29462b1]{background:var(--v64-success-container);color:var(--v64-on-success-container);left:var(--v64-space-5)}.aio-card__connected--warn[data-v-c29462b1]{background:color-mix(in srgb, rgb(var(--v-theme-warning)) 22%, var(--v64-surface));color:var(--aio-warn-ink)}.aio-card__head[data-v-c29462b1]{color:inherit;align-items:center;gap:var(--v64-space-3);text-align:left;background:0 0;border:0;width:100%;min-width:0;padding:0;display:flex}.aio-card--featured .aio-card__head[data-v-c29462b1]{gap:var(--v64-space-4);padding:var(--v64-space-4) 0 0 var(--v64-space-2)}.aio-card__rank[data-v-c29462b1]{background:var(--v64-surface-container-highest);border-radius:var(--v64-shape-full);color:var(--v64-on-surface);font:var(--v64-type-label-lg);flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.aio-card__identity[data-v-c29462b1]{flex:1;min-width:0;display:grid}.aio-card__name[data-v-c29462b1]{font:var(--v64-type-title-lg)}.aio-card--featured .aio-card__name[data-v-c29462b1]{font:600 1.75rem/2.25rem var(--v64-font-family);letter-spacing:-.015em}.aio-card__tagline[data-v-c29462b1]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md)}.aio-card__chevron[data-v-c29462b1]{transition:transform var(--v64-duration-short) var(--v64-ease-standard)}.aio-card__head[aria-expanded=true] .aio-card__chevron[data-v-c29462b1]{transform:rotate(180deg)}.aio-card__facts[data-v-c29462b1]{align-content:start;gap:var(--v64-space-3);display:grid}.aio-card__bullets[data-v-c29462b1]{gap:var(--v64-space-2);margin:0;padding:0;list-style:none;display:grid}.aio-card__bullets li[data-v-c29462b1]{font:var(--v64-type-body-md);align-items:center;gap:var(--v64-space-3);display:flex}.aio-card--featured .aio-card__bullets li[data-v-c29462b1]{font:var(--v64-type-body-lg)}.aio-card__why[data-v-c29462b1]{font:var(--v64-type-body-lg);margin:0}.aio-card__free[data-v-c29462b1]{border-top:1px solid var(--v64-outline-variant);align-items:center;gap:var(--v64-space-2);margin-top:var(--v64-space-3);padding-top:var(--v64-space-3);flex-wrap:wrap;display:flex}.aio-card__free-label[data-v-c29462b1]{font:var(--v64-type-body-md);flex:16rem;gap:2px;margin:0;display:grid}.aio-card__free-label span[data-v-c29462b1]{color:var(--v64-on-surface-variant)}.aio-card__note[data-v-c29462b1]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);gap:var(--v64-space-2);margin:0;display:flex}.aio-card__note .v-icon[data-v-c29462b1]{flex:none;margin-top:1px}.aio-card__offer[data-v-c29462b1]{gap:var(--v64-space-3);display:grid}.aio-card__needs[data-v-c29462b1]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);align-items:center;gap:var(--v64-space-2);justify-content:center;margin:0;display:flex}.aio-card__free .aio-card__needs[data-v-c29462b1]{margin-top:var(--v64-space-1);justify-content:flex-start}.aio-card__needs--ready .v-icon[data-v-c29462b1]{color:var(--v64-success)}.aio-card__free .aio-card__install[data-v-c29462b1]{flex:100%}.aio-card--needs-tool[data-v-c29462b1],.aio-card--needs-tool.aio-card--featured[data-v-c29462b1]{background:var(--v64-surface-container-low);border-color:var(--v64-outline-variant);box-shadow:none}.ai-setup .aio-card--needs-tool[data-v-c29462b1]:hover{box-shadow:none}.aio-card--needs-tool[data-v-c29462b1] :is(.aio-card__head,.aio-card__facts,.aio-card__note-row,.aio-plan,.aio-card__ribbon){filter:grayscale();opacity:.7}.aio-card--needs-tool .aio-plan[data-v-c29462b1]{border-left-color:var(--v64-outline-variant)}.aio-ready-here[data-v-c29462b1]{margin-top:0}.aio-ready-here__icon[data-v-c29462b1]{color:var(--v64-success)}.aio-card__note-row[data-v-c29462b1]:empty{display:none}.aio-plan[data-v-c29462b1]{background:var(--v64-surface-container);border-radius:var(--v64-shape-md);padding:var(--v64-space-3) var(--v64-space-4);align-content:start;gap:2px;display:grid}.aio-card--featured .aio-plan[data-v-c29462b1]{border-left:3px solid var(--aio-crown);padding:var(--v64-space-3) var(--v64-space-5)}.aio-plan__name[data-v-c29462b1]{font:var(--v64-type-label-lg)}.aio-plan__price[data-v-c29462b1]{font:var(--v64-type-title-lg);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.aio-card--featured .aio-plan__price[data-v-c29462b1]{font:600 2rem/2.5rem var(--v64-font-family);letter-spacing:-.02em}.aio-plan__budget[data-v-c29462b1]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md)}.aio-plan__more[data-v-c29462b1]{border-top:1px solid var(--v64-outline-variant);font:var(--v64-type-label-lg);margin-top:var(--v64-space-2);padding-top:var(--v64-space-2)}.aio-card__ctas[data-v-c29462b1]{gap:var(--v64-space-1);display:grid}.aio-card__ctas .v-btn[data-v-c29462b1]{min-height:48px}.aio-card__ctas .aio-card__link[data-v-c29462b1]{font:var(--v64-type-label-lg);height:40px;min-height:40px}.ai-setup>.ai-onboarding__connect[data-v-c29462b1],.ai-setup>.ai-onboarding__routing[data-v-c29462b1]{max-width:560px}.aio-chosen[data-v-c29462b1]{margin-top:var(--v64-space-6);animation:aio-lift-c29462b1 var(--v64-duration-long) var(--v64-ease-emphasized-decelerate) both;align-items:center;gap:var(--v64-space-4);margin-bottom:var(--v64-space-6);padding-inline-start:var(--v64-space-5);display:flex}.aio-chosen__text[data-v-c29462b1]{flex:1;min-width:0}.aio-chosen__title[data-v-c29462b1]{font:var(--v64-type-headline-md);letter-spacing:-.015em;outline:none;margin:0}.aio-chosen__plan[data-v-c29462b1]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-lg);margin:2px 0 0}.aio-checklist[data-v-c29462b1]{gap:var(--v64-space-6);margin:0;padding:0;list-style:none;display:grid}.aio-checklist li[data-v-c29462b1]{gap:var(--v64-space-4);grid-template-columns:32px minmax(0,1fr);display:grid}.aio-checklist__marker[data-v-c29462b1]{border:1.5px solid var(--v64-outline);border-radius:var(--v64-shape-full);font:var(--v64-type-label-lg);justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.aio-checklist .is-done .aio-checklist__marker[data-v-c29462b1]{background:var(--v64-primary);border-color:var(--v64-primary);color:var(--v64-on-primary)}.aio-checklist__title[data-v-c29462b1]{font:var(--v64-type-title-md);margin:4px 0 0}.aio-checklist__body[data-v-c29462b1]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);margin:4px 0 var(--v64-space-4)}.aio-checklist__setup[data-v-c29462b1]{min-width:0}.aio-checklist__setup[data-v-c29462b1] .accounts-setup__item{background:0 0;border:0!important;padding:0!important}.ai-onboarding__panel[data-v-c29462b1]{background:var(--v64-surface-container-low);border:1px solid var(--v64-outline-variant);border-radius:var(--v64-shape-lg);margin-top:var(--v64-space-4);min-width:0;padding:var(--v64-space-5)}.ai-onboarding__security[data-v-c29462b1]{color:var(--v64-on-surface-variant);font:var(--aio-type-body-sm);align-items:center;gap:var(--v64-space-2);margin:var(--v64-space-4) 0 0;display:flex}.aio-options[data-v-c29462b1]{gap:var(--v64-space-3);display:grid}.aio-option[data-v-c29462b1]{background:var(--v64-surface-container-low);border:1px solid var(--v64-outline-variant);border-radius:var(--v64-shape-lg);color:inherit;cursor:pointer;padding:var(--v64-space-4) var(--v64-space-5);text-align:left;transition:border-color var(--v64-duration-short) var(--v64-ease-standard), background-color var(--v64-duration-short) var(--v64-ease-standard);gap:2px;display:grid;position:relative}.aio-option--primary[data-v-c29462b1]{background:color-mix(in srgb, var(--v64-primary-container) 55%, var(--v64-surface));border-color:var(--v64-primary)}@media (hover:hover){.aio-option[data-v-c29462b1]:hover:not(:disabled){border-color:var(--v64-primary)}}.aio-option[data-v-c29462b1]:focus-visible{outline:var(--v64-focus-ring-width) solid var(--v64-focus-ring-color);outline-offset:var(--v64-focus-ring-offset)}.aio-option[data-v-c29462b1]:disabled{cursor:default;opacity:.6}.aio-option__title[data-v-c29462b1]{font:var(--v64-type-title-md)}.aio-option__body[data-v-c29462b1]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md)}.aio-option__busy[data-v-c29462b1]{right:var(--v64-space-4);top:var(--v64-space-4);position:absolute}.aio-progress[data-v-c29462b1]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-lg);align-items:center;gap:var(--v64-space-3);display:flex}.aio-details-toggle[data-v-c29462b1]{margin-top:var(--v64-space-4)}.aio-details-toggle[data-v-c29462b1] .v-btn__append{transition:transform var(--v64-duration-short) var(--v64-ease-standard)}.aio-details-toggle.is-open[data-v-c29462b1] .v-btn__append{transform:rotate(180deg)}.ai-setup>.ai-onboarding__success[data-v-c29462b1]{align-items:center;gap:var(--v64-space-2);text-align:center;flex-direction:column;max-width:560px;display:flex}.ai-onboarding__success .ai-onboarding__lede[data-v-c29462b1]{margin-inline:auto}.ai-onboarding__success>.v-btn[data-v-c29462b1]{margin-top:var(--v64-space-5)}.aio-success-actions[data-v-c29462b1]{gap:var(--v64-space-3);margin-top:var(--v64-space-5);flex-wrap:wrap;justify-content:center;width:100%;display:flex}.aio-success-mark[data-v-c29462b1]{animation:aio-arrive-c29462b1 var(--v64-duration-long) var(--v64-ease-emphasized-decelerate) both;margin-bottom:var(--v64-space-6);position:relative}.aio-success-mark[data-v-c29462b1]:before{animation:aio-glow-c29462b1 1.4s var(--v64-ease-emphasized-decelerate) .12s both;background:radial-gradient(closest-side, var(--aio-glow), transparent);content:"";z-index:-1;position:absolute;inset:-56px}.aio-success-mark--primary[data-v-c29462b1]{--aio-glow:color-mix(in srgb, var(--aio-crown) 45%, transparent)}.aio-success-mark--secondary[data-v-c29462b1]{--aio-glow:color-mix(in srgb, var(--v64-primary) 30%, transparent)}.aio-success-mark--tertiary[data-v-c29462b1]{--aio-glow:#b5838f66}.aio-success-mark--neutral[data-v-c29462b1]{--aio-glow:color-mix(in srgb, var(--v64-outline) 40%, transparent)}.aio-check[data-v-c29462b1]{animation:aio-pop-c29462b1 var(--v64-duration-medium) var(--v64-ease-emphasized-decelerate) both;width:40px;height:40px;position:absolute;bottom:-10px;right:-12px}.aio-check circle[data-v-c29462b1]{fill:var(--v64-success);stroke:var(--v64-surface);stroke-width:3px}.aio-check path[data-v-c29462b1]{animation:aio-draw-c29462b1 calc(var(--v64-duration-medium) + .1s) var(--v64-ease-emphasized-decelerate) .15s both;fill:none;stroke:#fff;stroke-dasharray:28;stroke-linecap:round;stroke-linejoin:round;stroke-width:3.5px}.aio-proof[data-v-c29462b1]{background:var(--v64-surface-container-low);border:1px solid var(--v64-outline-variant);border-radius:var(--v64-shape-lg);align-items:flex-start;gap:var(--v64-space-3);margin:var(--v64-space-3) 0 var(--v64-space-2);max-width:32rem;padding:var(--v64-space-4);text-align:left;width:100%;display:flex}.aio-proof--failed[data-v-c29462b1]{background:color-mix(in srgb, rgb(var(--v-theme-warning)) 10%, var(--v64-surface));border-color:color-mix(in srgb, rgb(var(--v-theme-warning)) 55%, transparent)}.aio-proof__avatar[data-v-c29462b1]{background:var(--v64-primary-container);border-radius:var(--v64-shape-full);flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.aio-proof__avatar svg[data-v-c29462b1]{fill:var(--v64-on-primary-container);width:20px;height:20px}.aio-proof--failed .aio-proof__avatar[data-v-c29462b1]{background:color-mix(in srgb, rgb(var(--v-theme-warning)) 22%, var(--v64-surface))}.aio-proof--failed .aio-proof__avatar svg[data-v-c29462b1]{fill:rgb(var(--v-theme-warning))}.aio-proof__body[data-v-c29462b1]{gap:2px;min-width:0;display:grid}.aio-proof__name[data-v-c29462b1]{font:var(--v64-type-label-lg)}.aio-proof__reply[data-v-c29462b1]{font:var(--v64-type-body-lg);overflow-wrap:anywhere;margin:0}.aio-proof__reply--quiet[data-v-c29462b1]{color:var(--v64-on-surface-variant)}.aio-proof--failed .aio-proof__reply[data-v-c29462b1]{font:var(--v64-type-body-md);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.aio-proof__actions[data-v-c29462b1]{gap:var(--v64-space-1);margin:var(--v64-space-2) 0 0 calc(var(--v64-space-2) * -1);flex-wrap:wrap;display:flex}.aio-proof__actions .v-btn[data-v-c29462b1]:first-child{margin-left:var(--v64-space-2)}.aio-proof__typing[data-v-c29462b1]{gap:4px;padding:8px 0;display:inline-flex}.aio-proof__typing i[data-v-c29462b1]{background:var(--v64-on-surface-variant);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite aio-typing-c29462b1}.aio-proof__typing i[data-v-c29462b1]:nth-child(3){animation-delay:.15s}.aio-proof__typing i[data-v-c29462b1]:nth-child(4){animation-delay:.3s}.aio-recap[data-v-c29462b1]{font:var(--v64-type-body-lg);gap:var(--v64-space-2);margin:var(--v64-space-2) 0 0;justify-content:center;display:flex}.aio-recap dt[data-v-c29462b1]{color:var(--v64-on-surface-variant)}.aio-recap dt[data-v-c29462b1]:after{content:":"}.aio-recap dd[data-v-c29462b1]{margin:0;font-weight:500}.aio-recap dd span[data-v-c29462b1]{color:var(--v64-on-surface-variant);font-weight:400}.ai-onboarding__colleague[data-v-c29462b1]{align-items:center;gap:var(--v64-space-3);margin-bottom:var(--v64-space-3);flex-wrap:wrap;justify-content:center;display:flex}.ai-onboarding__colleague-error[data-v-c29462b1]{margin:0 auto var(--v64-space-3);text-align:left;max-width:36rem}.ai-onboarding__note[data-v-c29462b1]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);margin:0 0 var(--v64-space-2)}.aio-forward-enter-active[data-v-c29462b1],.aio-back-enter-active[data-v-c29462b1]{transition:opacity var(--v64-duration-medium) var(--v64-ease-emphasized-decelerate), transform var(--v64-duration-medium) var(--v64-ease-emphasized-decelerate)}.aio-forward-leave-active[data-v-c29462b1],.aio-back-leave-active[data-v-c29462b1]{transition:opacity calc(var(--v64-duration-medium) * 2 / 3) var(--v64-ease-emphasized-accelerate), transform calc(var(--v64-duration-medium) * 2 / 3) var(--v64-ease-emphasized-accelerate)}.aio-forward-enter-from[data-v-c29462b1],.aio-back-leave-to[data-v-c29462b1]{opacity:0;transform:translate(24px)}.aio-forward-leave-to[data-v-c29462b1],.aio-back-enter-from[data-v-c29462b1]{opacity:0;transform:translate(-24px)}@keyframes aio-rise-c29462b1{0%{opacity:0;transform:translateY(8px)}}@keyframes aio-lift-c29462b1{0%{opacity:.4;transform:scale(.96)translateY(12px)}}@keyframes aio-arrive-c29462b1{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.06)}}@keyframes aio-glow-c29462b1{0%{opacity:0;transform:scale(.4)}}@keyframes aio-draw-c29462b1{0%{stroke-dashoffset:28px}to{stroke-dashoffset:0}}@keyframes aio-pop-c29462b1{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.12)}}@keyframes aio-typing-c29462b1{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@media (width<=959.98px){.ai-setup>section[data-v-c29462b1]{max-width:640px}.ai-onboarding__headline[data-v-c29462b1]{font:var(--v64-type-headline-md)}}@media (width<=599.98px){.ai-onboarding__headline[data-v-c29462b1]{font:var(--v64-type-headline-sm)}.aio-card[data-v-c29462b1],.aio-card--featured[data-v-c29462b1]{padding:var(--v64-space-4)}.aio-card--collapsed[data-v-c29462b1]{justify-content:center;gap:0;min-height:72px}.aio-card__head[type=button][data-v-c29462b1]{cursor:pointer;min-height:48px}.aio-card__ribbon[data-v-c29462b1]{right:var(--v64-space-4)}.aio-card__connected[data-v-c29462b1]{left:var(--v64-space-4)}.aio-card--featured .aio-card__name[data-v-c29462b1],.aio-card--featured .aio-plan__price[data-v-c29462b1]{font:var(--v64-type-headline-sm)}.aio-current[data-v-c29462b1]{padding:var(--v64-space-3) var(--v64-space-4)}.aio-current__keep[data-v-c29462b1]{width:100%}.aio-models[data-v-c29462b1]{padding:var(--v64-space-4)}.aio-models__open[data-v-c29462b1]{width:100%}.aio-chosen__title[data-v-c29462b1]{font:var(--v64-type-headline-sm)}.ai-onboarding__panel[data-v-c29462b1]{padding:var(--v64-space-4)}.ai-setup>.ai-onboarding__success[data-v-c29462b1]{padding-top:var(--v64-space-6)}}.aio-card__head[data-v-c29462b1]:focus-visible{border-radius:var(--v64-shape-sm)}.ai-setup[data-v-c29462b1] .v-btn:focus-visible,.aio-card__head[data-v-c29462b1]:focus-visible{outline:var(--v64-focus-ring-width) solid var(--v64-focus-ring-color);outline-offset:var(--v64-focus-ring-offset)}@media (prefers-reduced-motion:reduce){.aio-card[data-v-c29462b1],.aio-chosen[data-v-c29462b1],.aio-success-mark[data-v-c29462b1],.aio-success-mark[data-v-c29462b1]:before,.aio-check[data-v-c29462b1],.aio-check path[data-v-c29462b1],.aio-proof__typing i[data-v-c29462b1]{animation:none}.aio-card[data-v-c29462b1],.aio-card__chevron[data-v-c29462b1],.aio-option[data-v-c29462b1]{transition:none}.aio-forward-enter-from[data-v-c29462b1],.aio-forward-leave-to[data-v-c29462b1],.aio-back-enter-from[data-v-c29462b1],.aio-back-leave-to[data-v-c29462b1]{transform:none}}.ai-onboarding[data-v-8c82723c]{--aio-crown:#f5c518;--aio-crown-ink:#2b2100;--aio-crown-strong:#8a6a00;--aio-type-body-sm:400 .8125rem/1.125rem var(--v64-font-family);--aio-stage-top:clamp(24px, 6vh, 72px);--v64-on-success-container:color-mix(in srgb, var(--v64-success) 55%, #000);background:radial-gradient(1100px 640px at 85% -10%, var(--v64-primary-container), transparent 75%), linear-gradient(180deg, color-mix(in srgb, var(--v64-primary-container) 35%, var(--v64-surface)), var(--v64-surface-container-lowest));color:var(--v64-on-surface);font-family:var(--v64-font-family);flex-direction:column;height:100%;display:flex;overflow:hidden}.v-theme--dark .ai-onboarding[data-v-8c82723c]{--aio-crown-strong:#f5c518;--v64-on-success-container:color-mix(in srgb, var(--v64-success) 45%, #fff)}.ai-onboarding[data-v-8c82723c] .v-btn:not(.v-btn--icon){border-radius:var(--v64-shape-md);letter-spacing:0;text-transform:none}.v-theme--dark .ai-onboarding[data-v-8c82723c] .v-btn--variant-flat.bg-primary:not(.v-btn--disabled){background:color-mix(in srgb, rgb(var(--v-theme-primary)) 45%, #fff)!important;color:#0b1d33!important}.ai-onboarding[data-v-8c82723c] .v-btn--disabled.v-btn--variant-flat{opacity:1;background:color-mix(in srgb, var(--v64-on-surface) 12%, transparent)!important;color:color-mix(in srgb, var(--v64-on-surface) 38%, transparent)!important}.ai-onboarding[data-v-8c82723c] .v-btn--disabled .v-btn__overlay{opacity:0}@media (hover:none){.ai-onboarding[data-v-8c82723c] .v-btn:hover:not(:focus-visible)>.v-btn__overlay{opacity:0}}.ai-onboarding[data-v-8c82723c] .v-messages,.ai-onboarding[data-v-8c82723c] .text-body-small{font:var(--aio-type-body-sm);letter-spacing:0}.ai-onboarding[data-v-8c82723c] .v-alert-title{font:var(--v64-type-title-md);letter-spacing:0;margin-bottom:2px}.ai-onboarding[data-v-8c82723c] .v-alert__content{font:var(--v64-type-body-md)}.ai-onboarding__bar[data-v-8c82723c]{height:64px;padding:0 var(--v64-space-5);flex:none;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;display:grid}.ai-onboarding--phone .ai-onboarding__bar[data-v-8c82723c]{height:56px;padding:env(safe-area-inset-top) var(--v64-space-1) 0 var(--v64-space-4)}.ai-onboarding--phone .ai-onboarding__bar>.v-btn[data-v-8c82723c]{margin-inline-start:calc(var(--v64-space-3) * -1)}.ai-onboarding__wordmark[data-v-8c82723c]{font:var(--v64-type-title-lg);letter-spacing:-.01em}.ai-onboarding__wordmark span[data-v-8c82723c]{color:var(--v64-primary)}.ai-onboarding__dots[data-v-8c82723c]{grid-column:2;gap:6px;display:flex}.ai-onboarding__dots span[data-v-8c82723c]{background:var(--v64-outline);border-radius:var(--v64-shape-full);height:8px;transition:width var(--v64-duration-medium) var(--v64-ease-emphasized), background-color var(--v64-duration-medium);width:8px}.ai-onboarding__dots .is-done[data-v-8c82723c]{background:color-mix(in srgb, var(--v64-primary) 45%, transparent)}.ai-onboarding__dots .is-active[data-v-8c82723c]{background:var(--v64-primary);width:24px}.ai-onboarding__bar-actions[data-v-8c82723c]{grid-column:3;justify-content:flex-end;display:flex}.ai-onboarding__bar-actions .v-btn[data-v-8c82723c]:not(.v-btn--icon){font:var(--v64-type-label-lg)}.ai-onboarding__main[data-v-8c82723c]{padding:0 var(--v64-space-5) var(--v64-space-7);flex-direction:column;flex:1;display:flex;overflow-y:auto}.ai-onboarding__main>section[data-v-8c82723c]{max-width:1040px;padding-top:var(--aio-stage-top);width:100%;margin-inline:auto}.ai-onboarding--phone .ai-onboarding__main[data-v-8c82723c]{padding:0 var(--v64-space-4) var(--v64-space-6)}.ai-onboarding--phone .ai-onboarding__main>section[data-v-8c82723c]{padding-top:var(--v64-space-4)}.ai-onboarding__eyebrow[data-v-8c82723c]{color:var(--v64-primary);font:var(--v64-type-label-lg);letter-spacing:.12em;margin:0 0 var(--v64-space-3)}.ai-onboarding__headline[data-v-8c82723c]{font:var(--v64-type-display-sm);letter-spacing:-.02em;margin:0 0 var(--v64-space-4);text-wrap:balance;outline:none}.ai-onboarding__accent[data-v-8c82723c]{color:var(--v64-primary)}.ai-onboarding__lede[data-v-8c82723c]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-lg);margin:0 0 var(--v64-space-4);text-wrap:pretty;max-width:60ch}.ai-onboarding__footnote[data-v-8c82723c]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md);margin:var(--v64-space-6) 0 0}.ai-onboarding__actions[data-v-8c82723c]{align-items:center;gap:var(--v64-space-3);flex-wrap:wrap;display:flex}.ai-onboarding__main>.ai-onboarding__why[data-v-8c82723c]{align-items:center;column-gap:var(--v64-space-7);grid-template-columns:7fr 5fr;display:grid}.ai-onboarding__why-copy[data-v-8c82723c]{grid-area:1/1}.ai-onboarding__why .ai-onboarding__headline[data-v-8c82723c]{font:600 3rem/3.5rem var(--v64-font-family);letter-spacing:-.025em}.ai-onboarding__why .ai-onboarding__lede[data-v-8c82723c]{font:400 1.25rem/1.875rem var(--v64-font-family)}.ai-onboarding__differences[data-v-8c82723c]{gap:var(--v64-space-3);margin:var(--v64-space-5) 0 var(--v64-space-6);padding:0;list-style:none;display:grid}.ai-onboarding__differences li[data-v-8c82723c]{font:var(--v64-type-body-lg);align-items:center;gap:var(--v64-space-3);display:flex}.ai-onboarding__difference-icon[data-v-8c82723c]{background:var(--v64-primary-container);border-radius:var(--v64-shape-full);color:var(--v64-on-primary-container);flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.aio-hero[data-v-8c82723c]{--aio-hero-start:68px;--aio-hero-step:64px;grid-area:1/2;height:420px;position:relative}.aio-hero__card[data-v-8c82723c]{animation:aio-fan-8c82723c var(--v64-duration-long) var(--v64-ease-emphasized-decelerate) calc((3 - var(--aio-index)) * 70ms) both;background:var(--v64-surface);border:1px solid var(--v64-outline-variant);border-radius:var(--v64-shape-lg);box-shadow:var(--v64-elevation-2);align-items:center;gap:var(--v64-space-3);height:72px;left:calc(var(--aio-index) * 5%);opacity:var(--aio-fade);padding:0 var(--v64-space-4);top:calc(var(--aio-hero-start) + var(--aio-index) * var(--aio-hero-step));transform:rotate(calc(var(--aio-index) * 1.5deg));width:calc(100% - var(--aio-index) * 5%);z-index:calc(4 - var(--aio-index));display:flex;position:absolute}.aio-hero__card--crown[data-v-8c82723c]{background:linear-gradient(160deg, color-mix(in srgb, var(--aio-crown) 16%, var(--v64-surface)), var(--v64-surface) 70%);border-color:color-mix(in srgb, var(--aio-crown-strong) 45%, var(--v64-outline-variant));box-shadow:0 28px 56px -26px color-mix(in srgb, var(--aio-crown-strong) 75%, transparent), var(--v64-elevation-2);height:104px;padding:0 var(--v64-space-5) 0 var(--v64-space-6);left:-2%;top:calc(var(--aio-hero-start) - 24px);width:104%;transform:rotate(-2deg)translateY(-4px)}.aio-hero__identity[data-v-8c82723c]{flex:1;min-width:0;display:grid}.aio-hero__name[data-v-8c82723c]{font:var(--v64-type-title-md)}.aio-hero__card--crown .aio-hero__name[data-v-8c82723c]{font:var(--v64-type-title-lg)}.aio-hero__tagline[data-v-8c82723c]{color:var(--v64-on-surface-variant);font:var(--aio-type-body-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.aio-meter[data-v-8c82723c]{flex:none;gap:3px;display:inline-flex}.aio-meter i[data-v-8c82723c]{box-shadow:inset 0 0 0 1px var(--v64-outline);border-radius:3px;width:10px;height:6px}.aio-meter i.is-filled[data-v-8c82723c]{background:var(--v64-primary);box-shadow:none}.aio-meter--low i.is-filled[data-v-8c82723c]{background:color-mix(in srgb, rgb(var(--v-theme-warning)) 70%, transparent)}.ai-onboarding__dock[data-v-8c82723c]{background:var(--v64-surface);border-top:1px solid var(--v64-outline-variant);gap:var(--v64-space-1);padding:var(--v64-space-3) var(--v64-space-4) calc(var(--v64-space-3) + env(safe-area-inset-bottom));flex:none;display:grid}.ai-onboarding__dock-note[data-v-8c82723c]{color:var(--v64-on-surface-variant);font:var(--aio-type-body-sm);text-align:center;margin:0}.aio-forward-enter-active[data-v-8c82723c],.aio-back-enter-active[data-v-8c82723c]{transition:opacity var(--v64-duration-medium) var(--v64-ease-emphasized-decelerate), transform var(--v64-duration-medium) var(--v64-ease-emphasized-decelerate)}.aio-forward-leave-active[data-v-8c82723c],.aio-back-leave-active[data-v-8c82723c]{transition:opacity calc(var(--v64-duration-medium) * 2 / 3) var(--v64-ease-emphasized-accelerate), transform calc(var(--v64-duration-medium) * 2 / 3) var(--v64-ease-emphasized-accelerate)}.aio-forward-enter-from[data-v-8c82723c],.aio-back-leave-to[data-v-8c82723c]{opacity:0;transform:translate(24px)}.aio-forward-leave-to[data-v-8c82723c],.aio-back-enter-from[data-v-8c82723c]{opacity:0;transform:translate(-24px)}@keyframes aio-fan-8c82723c{0%{opacity:0;transform:translateY(32px)rotate(0)}}@media (width<=959.98px){.ai-onboarding__main>section[data-v-8c82723c]{max-width:640px}.ai-onboarding__main[data-v-8c82723c]{padding:0 var(--v64-space-5) var(--v64-space-6)}.ai-onboarding__headline[data-v-8c82723c]{font:var(--v64-type-headline-md)}.ai-onboarding__main>.ai-onboarding__why[data-v-8c82723c]{grid-template-columns:minmax(0,1fr)}.ai-onboarding__why-copy[data-v-8c82723c]{grid-row:2}.aio-hero[data-v-8c82723c]{--aio-hero-start:40px;--aio-hero-step:56px;height:290px;margin-bottom:var(--v64-space-5);grid-column:1}}@media (width<=599.98px){.ai-onboarding__headline[data-v-8c82723c]{font:var(--v64-type-headline-sm)}.ai-onboarding__why .ai-onboarding__headline[data-v-8c82723c]{font:var(--v64-type-headline-md)}.ai-onboarding__why .ai-onboarding__lede[data-v-8c82723c]{font:var(--v64-type-body-lg)}.aio-hero[data-v-8c82723c]{height:132px;margin-bottom:var(--v64-space-4);justify-content:center;display:flex}.aio-hero__card[data-v-8c82723c],.aio-hero__card--crown[data-v-8c82723c]{--aio-fade:1;box-shadow:none;background:0 0;border:0;width:auto;height:auto;padding:0;top:46px;left:calc(50% - 32px)}.aio-hero__card[data-v-8c82723c]:nth-child(2){transform:translate(-62px)rotate(-12deg)}.aio-hero__card[data-v-8c82723c]:nth-child(3){transform:translate(62px)rotate(12deg)}.aio-hero__card[data-v-8c82723c]:nth-child(4){display:none}.aio-hero__card--crown[data-v-8c82723c]{z-index:5;top:30px;left:calc(50% - 48px);transform:none}.aio-hero__identity[data-v-8c82723c],.aio-hero__meter[data-v-8c82723c]{display:none}.ai-onboarding__differences[data-v-8c82723c]{gap:var(--v64-space-2);margin-block:var(--v64-space-4) 0}.ai-onboarding__differences li[data-v-8c82723c]{font:var(--v64-type-body-md)}.ai-onboarding__difference-icon[data-v-8c82723c]{width:32px;height:32px}.ai-onboarding__difference-icon .v-icon[data-v-8c82723c]{--v-icon-size-multiplier:.8}}.ai-onboarding[data-v-8c82723c] .v-btn:focus-visible{outline:var(--v64-focus-ring-width) solid var(--v64-focus-ring-color);outline-offset:var(--v64-focus-ring-offset)}@media (prefers-reduced-motion:reduce){.aio-hero__card[data-v-8c82723c]{animation:none}.ai-onboarding__dots span[data-v-8c82723c]{transition:none}.aio-forward-enter-from[data-v-8c82723c],.aio-forward-leave-to[data-v-8c82723c],.aio-back-enter-from[data-v-8c82723c],.aio-back-leave-to[data-v-8c82723c]{transform:none}}.aio-nudge[data-v-1b0a8909]{--aio-crown-strong:#8a6a00;background:var(--v64-secondary-container);border-radius:var(--v64-shape-md);color:var(--v64-on-secondary-container);align-items:center;gap:var(--v64-space-1) var(--v64-space-3);padding:var(--v64-space-3) var(--v64-space-1) var(--v64-space-3) var(--v64-space-4);flex-wrap:wrap;display:flex}.v-theme--dark .aio-nudge[data-v-1b0a8909]{--aio-crown-strong:#f5c518}.aio-nudge__crown[data-v-1b0a8909]{fill:var(--aio-crown-strong);flex:none;width:18px;height:18px}.aio-nudge__text[data-v-1b0a8909]{font:var(--v64-type-body-md);flex:12rem;margin:0}.aio-nudge__actions[data-v-1b0a8909]{align-items:center;margin-left:auto;display:flex}.aio-setup-pill[data-v-41d81c9e]{border-radius:var(--v64-shape-full);color:#2b2100;cursor:pointer;font:var(--v64-type-label-lg);height:36px;white-space:nowrap;background:#f5c518;border:0;flex:none;align-items:center;gap:6px;margin-inline-end:var(--v64-space-2);padding:0 14px 0 10px;display:inline-flex;box-shadow:0 4px 12px -6px #a06e00b3}.aio-setup-pill[data-v-41d81c9e]:focus-visible{outline:var(--v64-focus-ring-width) solid var(--v64-focus-ring-color);outline-offset:var(--v64-focus-ring-offset)}.aio-setup-pill svg[data-v-41d81c9e]{fill:currentColor;width:18px;height:18px}@media (hover:hover){.aio-setup-pill[data-v-41d81c9e]:hover{background:#f9d65c}}@media (width<=599.98px){.aio-setup-pill[data-v-41d81c9e]{font:var(--v64-type-label-md);height:32px;gap:4px;margin-inline-end:var(--v64-space-1);padding:0 10px 0 8px}.aio-setup-pill svg[data-v-41d81c9e]{width:16px;height:16px}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{$ as mergeModels,$n as normalizeProps,D as createVNode,E as createTextVNode,Ft as useModel,Ht as watch,Lt as useSlots,On as unref,Pt as useId,St as resolveComponent,Yt as withDirectives,Zn as normalizeClass,_ as createBaseVNode,b as createElementBlock,bt as renderList,ct as onMounted,er as normalizeStyle,et as mergeProps,g as computed,it as onBeforeUnmount,mt as openBlock,o as Fragment,pn as onScopeDispose,pt as onUpdated,qt as withCtx,tr as toDisplayString,tt as nextTick,v as createBlock,vn as ref,w as createSlots,wt as resolveDynamicComponent,xt as renderSlot,y as createCommentVNode,z as guardReactiveProps}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{ar as vShow,d as VProgressLinear,h as VIcon,or as withKeys,sr as withModifiers}from"./ripple-EFNA8EBu.js";import{t as VSelect}from"./VSelect-D3oLvCcB.js";import{t as VMenu}from"./VMenu-CDcBLYWR.js";import{n as VChipGroup,t as VChip}from"./VChip-VVdtjfq-.js";import{t as VTextField}from"./VTextField-C0b_0cSa.js";import{Bn as mdiPaperclip,Ft as mdiFileOutline,L as mdiCheck,M as mdiBrain,Or as mdiStopCircleOutline,Pn as mdiMinus,Q as mdiCloseCircleOutline,Sn as mdiLightbulbOnOutline,Un as mdiPencil,Wn as mdiPencilOutline,X as mdiClose,Y as mdiClockOutline,c as mdiAccountOutline,dr as mdiSend,f as mdiAlertCircleOutline,it as mdiCogOutline,n as mdiAccountCircleOutline,nr as mdiRefresh,rn as mdiInformationOutline,sr as mdiRobotOutline,tn as mdiImageOutline,wt as mdiDownload,z as mdiCheckCircleOutline}from"./mdi-Bt90Ns76.js";import{t as VAvatar}from"./VAvatar-DvRBcmqv.js";import{t as VBtn}from"./VBtn-BhVEwXLX.js";import{t as VAlert}from"./VAlert-gwuhYlYb.js";import{t as VAutocomplete}from"./VAutocomplete-D7Vk5wq_.js";import{t as VSheet}from"./VSheet-DxYEFfnM.js";import{t as VDialog}from"./VDialog-CQDhjRiV.js";import{n as VCardText,o as VCardActions,t as VCard}from"./VCard-C3Hx769y.js";import{t as VSpacer}from"./VSpacer-CgWOWvBh.js";import{t as VSkeletonLoader}from"./VSkeletonLoader-Cync3lZZ.js";import{t as VTextarea}from"./VTextarea-B7sZd1JY.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";import{t as normalizeThinkingMessageText}from"./thinkingText-DewCOEcu.js";function attachmentSizeLabel(size){const bytes=Number(size);if(!Number.isFinite(bytes)||bytes<0)return``;if(bytes<1024)return`${bytes} B`;if(bytes<1048576)return`${(bytes/1024).toFixed(1)} KB`;return`${(bytes/1048576).toFixed(1)} MB`}var _hoisted_1$14={key:0,"aria-label":`Attached files`,class:`assistant-conversation-attachments`};var _hoisted_2$13={class:`assistant-conversation-attachments__details`};var _hoisted_3$10=[`title`];var _hoisted_4$9={key:0,class:`assistant-conversation-attachments__size text-label-small`};var _sfc_main$14={__name:`AssistantMessageAttachments`,props:{attachments:{type:Array,default:()=>[]},previewEnabled:Boolean},emits:[`preview`],setup(__props,{emit:__emit}){const emit=__emit;function attachmentIcon(attachment){return/\.(?:avif|bmp|gif|heic|heif|jpe?g|png|svg|webp)$/iu.test(attachment.fileName)?mdiImageOutline:mdiFileOutline}function attachmentKey(attachment,index){return attachment.attachmentId||`${index}:${attachment.fileName}:${attachment.size??``}`}return(_ctx,_cache)=>{return __props.attachments.length?(openBlock(),createElementBlock(`ul`,_hoisted_1$14,[(openBlock(true),createElementBlock(Fragment,null,renderList(__props.attachments,(attachment,index)=>{return openBlock(),createElementBlock(`li`,{key:attachmentKey(attachment,index),class:`assistant-conversation-attachments__item`},[(openBlock(),createBlock(resolveDynamicComponent(__props.previewEnabled?`button`:`span`),{type:__props.previewEnabled?`button`:void 0,class:`assistant-conversation-attachments__open`,onClick:$event=>__props.previewEnabled&&emit(`preview`,attachment)},{default:withCtx(()=>[createVNode(VIcon,{"aria-hidden":`true`,class:`assistant-conversation-attachments__icon`,icon:attachmentIcon(attachment),size:`19`},null,8,[`icon`]),createBaseVNode(`span`,_hoisted_2$13,[createBaseVNode(`span`,{class:`assistant-conversation-attachments__name text-body-small font-weight-medium`,title:attachment.fileName},toDisplayString(attachment.reference)+` `+toDisplayString(attachment.fileName),9,_hoisted_3$10),unref(attachmentSizeLabel)(attachment.size)?(openBlock(),createElementBlock(`span`,_hoisted_4$9,toDisplayString(unref(attachmentSizeLabel)(attachment.size)),1)):createCommentVNode(``,true)])]),_:2},1032,[`type`,`onClick`]))])}),128))])):createCommentVNode(``,true)}}};var AssistantMessageAttachments_default=_plugin_vue_export_helper_default(_sfc_main$14,[[`__scopeId`,`data-v-b3d978b9`]]);function parseLongTextReviewBlocks(value,options={}){const lines=expandCompactPipeTableLines(String(value||``).replace(/\r\n/gu,`
|
|
2
2
|
`).split(`
|
|
3
3
|
`));const blocks=[];let paragraphLines=[];let listBlock=null;let codeLines=null;let detailsBlock=null;const preserveParagraphLineBreaks=options.preserveParagraphLineBreaks===true;const parseDetailsOpening=(trimmed=``)=>{if(trimmed===`<details>`)return{closed:false,remainder:``,summary:`Details`};const inlineMatch=trimmed.match(/^<details>\s*<summary>\s*(.*?)\s*<\/summary>\s*(.*)$/u);if(!inlineMatch)return null;let remainder=inlineMatch[2]||``;let closed=false;const closingMatch=remainder.match(/^(.*?)\s*<\/details>$/u);if(closingMatch){remainder=closingMatch[1]||``;closed=true}return{closed,remainder:remainder.trim(),summary:inlineMatch[1].trim()||`Details`}};const flushParagraph=()=>{const text=preserveParagraphLineBreaks?paragraphLines.join(`
|
|
4
4
|
`).trim():paragraphLines.join(` `).replace(/\s+/gu,` `).trim();paragraphLines=[];if(text)blocks.push({text,type:`paragraph`})};const flushList=()=>{if(listBlock?.items.length)blocks.push(listBlock);listBlock=null};const flushCode=()=>{if(codeLines)blocks.push({text:codeLines.join(`
|
|
@@ -13,5 +13,5 @@ import{Gn as withKeys,Kn as withModifiers,Wn as vShow,d as VProgressLinear,h as
|
|
|
13
13
|
`).trim();const firstMarker=source.search(/\[(?:Q)?\d+\]\s+/iu);if(firstMarker<0)return inactiveNumberedQuestionSugar();const intro=source.slice(0,firstMarker).trim();const questionText=source.slice(firstMarker).trim();if(!questionText||questionText.includes(`
|
|
14
14
|
`))return inactiveNumberedQuestionSugar();const markers=[...questionText.matchAll(/\[(?:Q)?(\d+)\]\s+/giu)];if(markers.length<2||markers[0].index!==0)return inactiveNumberedQuestionSugar();const questions=[];for(const[index,match]of markers.entries()){const labelStart=match.index+match[0].length;const nextMarker=markers[index+1];const labelEnd=nextMarker?nextMarker.index:questionText.length;const question=questionForMarkerMatch([match[0],match[1],questionText.slice(labelStart,labelEnd)],questions.length);if(!question)return inactiveNumberedQuestionSugar();questions.push(question)}if(!validNumberedQuestions(questions))return inactiveNumberedQuestionSugar();return{intro,outro:``,questions}}function parseNumberedQuestionPrompt(value=``){const inlineQuestions=parseInlineNumberedQuestionPrompt(value);return inlineQuestions.questions.length?inlineQuestions:parseLineNumberedQuestionPrompt(value)}function numberedQuestionSubmissionText(questions=[],values={}){return questions.map(question=>`[${question.number}] ${String(values[question.name]||``).trim()}`).join(`
|
|
15
15
|
`)}var DEFAULT_SCROLL_FOLLOW_THRESHOLD_PX=48;function numericElementValue(value){const number=Number(value);return Number.isFinite(number)?number:0}function scrollDistanceFromBottom(element=null){if(!element)return 0;return Math.max(0,numericElementValue(element.scrollHeight)-numericElementValue(element.scrollTop)-numericElementValue(element.clientHeight))}function scrollElementNearBottom(element=null,thresholdPx=48){const threshold=Math.max(0,numericElementValue(thresholdPx));return scrollDistanceFromBottom(element)<=threshold}var _hoisted_1$9={key:2,class:`assistant-transcript__settling`,"aria-hidden":`true`};var _hoisted_2$9={class:`assistant-transcript__error-content`};var _hoisted_3$7={key:0,class:`assistant-transcript__welcome`,role:`status`};var _hoisted_4$6={class:`assistant-transcript__assistant-header`};var _hoisted_5$6={class:`assistant-transcript__avatar assistant-transcript__avatar--assistant`};var _hoisted_6$4={class:`assistant-transcript__message-header`};var _hoisted_7$4={key:1,class:`assistant-transcript__load-more`};var _hoisted_8$4={key:0,class:`assistant-transcript__load-more-error`};var _hoisted_9$4={key:0,class:`assistant-transcript__system`};var _hoisted_10$2={class:`assistant-transcript__system-body`};var _hoisted_11$2={class:`assistant-transcript__system-meta`};var _hoisted_12$2={key:0};var _hoisted_13$2={key:1,class:`assistant-transcript__message-row assistant-transcript__message-row--user`};var _hoisted_14$1={class:`assistant-transcript__user-content`};var _hoisted_15={key:1,class:`assistant-transcript__plain-user`};var _hoisted_16=[`aria-expanded`,`onClick`];var _hoisted_17={key:1,class:`assistant-transcript__message-footer assistant-transcript__message-footer--user`};var _hoisted_18={key:0};var _hoisted_19={key:1,role:`status`};var _hoisted_20={key:2,class:`assistant-transcript__optimistic-failure`};var _hoisted_21={role:`status`};var _hoisted_22={key:0,class:`assistant-transcript__optimistic-actions`};var _hoisted_23={class:`assistant-transcript__avatar assistant-transcript__avatar--user`};var _hoisted_24=[`data-message-role`];var _hoisted_25={class:`assistant-transcript__assistant-header`};var _hoisted_26={class:`assistant-transcript__avatar assistant-transcript__avatar--assistant`};var _hoisted_27={class:`assistant-transcript__message-header`};var _hoisted_28=[`title`];var _hoisted_29={class:`assistant-transcript__message assistant-transcript__message--assistant`};var _hoisted_30={key:1,class:`assistant-transcript__questions`};var _hoisted_31={class:`assistant-transcript__question-number`};var _hoisted_32={class:`assistant-transcript__question-content`};var _hoisted_33={class:`assistant-transcript__question-text`};var _hoisted_34={key:0,class:`assistant-transcript__question-choices`};var _hoisted_35={key:0};var _hoisted_36={key:0,class:`assistant-transcript__message-footer assistant-transcript__message-footer--assistant`};var USER_MESSAGE_COLLAPSE_MIN_CHARACTERS=360;var USER_MESSAGE_PREVIEW_MAX_CHARACTERS=280;var USER_MESSAGE_PREVIEW_MAX_LINES=4;var DISPLAY_MESSAGE_CACHE_LIMIT=500;var USER_SCROLL_INTENT_RESET_MS=600;var LOAD_MORE_THRESHOLD_PX=160;var _sfc_main$9={__name:`AssistantTranscript`,props:{cancellableDelivery:{type:Boolean,default:false},systemLabel:{type:String,default:`Status`},previewMessage:{type:Object,default:null},working:{type:Boolean,default:void 0},progressPreviewLimit:{type:Number,default:2},userMessageFormat:{type:String,default:`formatted`,validator:value=>[`plain`,`formatted`].includes(value)},assistantLabel:{default:`Assistant`,type:String},error:{default:``,type:String},errorReloadable:{default:false,type:Boolean},followLatestKey:{default:0,type:[Number,String]},hasMoreBefore:{default:false,type:Boolean},loading:{default:false,type:Boolean},loadingMore:{default:false,type:Boolean},loadMoreError:{default:``,type:String},reloadable:{default:false,type:Boolean},reloading:{default:false,type:Boolean},retainWhenHidden:{default:false,type:Boolean},scrollKey:{default:``,type:[Number,String]},turns:{default:()=>[],type:Array},variant:{default:`main`,validator:value=>[`main`,`task`].includes(value),type:String},visible:{default:true,type:Boolean},welcomeMessage:{default:``,type:String}},emits:[`cancel-turn`,`check-delivery`,`edit-turn`,`load-more`,`link-click`,`reload`,`resend-turn`],setup(__props,{emit:__emit}){function previewForTurn(turn){const preview=turn.previewMessage||props.previewMessage;return(preview?.messageId||preview?.id)===turn.turnId?preview:null}const props=__props;const emit=__emit;const bodyElement=ref(null);const bottomElement=ref(null);const expandedUserMessages=ref(new Set);const isWorking=computed(()=>props.working??props.turns.some(turn=>turn.pending));const followingLatest=ref(true);const initialScrollSettled=ref(false);const userScrollIntent=ref(false);const displayMessageCache=new Map;let liveScrollFrame=0;let userScrollIntentTimer=null;let initialScrollVersion=0;let loadMoreScrollSnapshot=null;let retainedReaderScrollSnapshot=null;let loadMoreRequestVersion=0;let pendingTailFollow=false;let previousScrollTop=0;const KEYBOARD_SCROLL_KEYS=new Set([` `,`ArrowDown`,`ArrowUp`,`End`,`Home`,`PageDown`,`PageUp`,`Spacebar`]);const timeFormatter=new Intl.DateTimeFormat(void 0,{year:`numeric`,month:`short`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`});function displayTime(value=``){const date=new Date(String(value||``));if(Number.isNaN(date.getTime()))return``;return timeFormatter.format(date)}function userMessagePreviewText(value=``){const text=String(value||``);const characters=[...text];const lines=text.split(/\r\n?|\n/u);if(characters.length<=USER_MESSAGE_COLLAPSE_MIN_CHARACTERS&&lines.length<=USER_MESSAGE_PREVIEW_MAX_LINES)return``;const preview=[...lines.slice(0,USER_MESSAGE_PREVIEW_MAX_LINES).join(`
|
|
16
|
-
`)].slice(0,USER_MESSAGE_PREVIEW_MAX_CHARACTERS).join(``).trimEnd();return preview?`${preview}…`:``}function displayMessage(message=null,{allowNumberedQuestions=false,preserveParagraphLineBreaks=false,previewUserMessage=false}={},cacheKey=``){if(!message)return null;const normalizedCacheKey=String(cacheKey||``).trim();const cached=normalizedCacheKey?displayMessageCache.get(normalizedCacheKey):null;if(cached&&cached.allowNumberedQuestions===allowNumberedQuestions&&cached.attachments===message.attachments&&cached.at===message.at&&cached.messageId===message.messageId&&cached.preserveParagraphLineBreaks===preserveParagraphLineBreaks&&cached.previewUserMessage===previewUserMessage&&cached.role===message.role&&cached.text===message.text)return{...message,...cached.value};const messageText=message.text;const questionInput=allowNumberedQuestions?parseNumberedQuestionPrompt(messageText):{intro:``,outro:``,questions:[]};const hasQuestions=questionInput.questions.length>0;const previewText=previewUserMessage?userMessagePreviewText(message.text):``;const value={blocks:parseLongTextReviewBlocks(hasQuestions?questionInput.intro:messageText,{preserveParagraphLineBreaks}),outroBlocks:parseLongTextReviewBlocks(hasQuestions?questionInput.outro:``,{preserveParagraphLineBreaks}),previewBlocks:previewText?parseLongTextReviewBlocks(previewText,{preserveParagraphLineBreaks:true}):null,questions:hasQuestions?questionInput.questions:[],displayAt:displayTime(message.at)};if(normalizedCacheKey){if(displayMessageCache.size>=DISPLAY_MESSAGE_CACHE_LIMIT&&!displayMessageCache.has(normalizedCacheKey))displayMessageCache.delete(displayMessageCache.keys().next().value);displayMessageCache.set(normalizedCacheKey,{allowNumberedQuestions,attachments:message.attachments,at:message.at,messageId:message.messageId,preserveParagraphLineBreaks,previewUserMessage,role:message.role,text:message.text,value})}return{...message,...value}}function displayThinkingMessage(message=null){if(!message)return null;const text=normalizeThinkingMessageText(message.text);if(!text)return null;return{...message,text,displayAt:displayTime(message.at)}}function conversationAgentMessages(turn={}){if(Array.isArray(turn.messages))return turn.messages.filter(message=>[`assistant`,`commentary`,`thinking`].includes(String(message?.role||``).trim()));return[...Array.isArray(turn.thinking)?turn.thinking:[],...Array.isArray(turn.commentary)?turn.commentary:[],turn.assistant].filter(Boolean)}function conversationMessageKey(message={},index=0){return[String(message.messageId||``).trim(),String(message.role||``).trim(),String(message.at||``).trim(),index].join(`:`)}const displayEntries=computed(()=>{const candidates=[];for(const[index,turn]of props.turns.entries()){const turnId=String(turn.turnId||index+1);const userDelivery=turn.user&&turn.system?.delivery&&turn.system.delivery.messageId===turn.user.messageId?turn.system:null;const messages=[turn.system&&!userDelivery&&{...turn.system,role:`system`},turn.user&&{...turn.user,role:`user`},...conversationAgentMessages(turn)].filter(Boolean);for(const[messageIndex,message]of messages.entries()){const role=String(message.role||``).trim();const key=`${turnId}:${conversationMessageKey(message,messageIndex)}`;const displayed=role===`thinking`?displayThinkingMessage(message):displayMessage(message,{allowNumberedQuestions:role!==`user`&&role!==`system`,preserveParagraphLineBreaks:role===`user`,previewUserMessage:role===`user`},key);if(!displayed)continue;candidates.push({key,role,turn:{...turn,turnId},message:displayed,sortAt:turn.optimistic&&turn.optimistic.status!==`accepted`&&turn.optimistic.id===message.messageId?NaN:Date.parse(message.at),delivery:role===`user`?userDelivery:null})}}const dated=candidates.filter(entry=>Number.isFinite(entry.sortAt)).sort((a,b)=>a.sortAt-b.sortAt)[Symbol.iterator]();const entries=[];for(const candidate of candidates){const entry=Number.isFinite(candidate.sortAt)?dated.next().value:candidate;const previous=entries.at(-1);if(entry.role===`thinking`&&previous?.role===`thinking`)previous.messages.push({...entry.message,key:entry.key});else entries.push({...entry,...entry.role===`thinking`?{messages:[{...entry.message,key:entry.key}]}:{}})}for(const[index,entry]of entries.entries())if(entry.role===`thinking`)entry.key=`progress:${entries[index+1]?.key||`tail`}`;return entries});function handleLongTextLinkClick(payload){emit(`link-click`,payload)}function userMessageCollapsible(message=null){return Array.isArray(message?.previewBlocks)}function userMessageExpanded(turn={}){return expandedUserMessages.value.has(String(turn.turnId||``))}function toggleExpandedKey(expandedKeys,key){const next=new Set(expandedKeys.value);if(next.has(key))next.delete(key);else next.add(key);expandedKeys.value=next}function toggleUserMessage(turn={}){const key=String(turn.turnId||``);if(!key)return;toggleExpandedKey(expandedUserMessages,key)}const loadingIndicatorVisible=computed(()=>Boolean(props.loading&&!displayEntries.value.length));const initialScrollPending=computed(()=>Boolean(props.visible&&displayEntries.value.length&&!initialScrollSettled.value));function messageScrollKey(message=null){if(!message)return`empty`;return[message.messageId||``,message.role||``,message.at||``,String(message.text||``)].join(`/`)}const timelineScrollTrigger=computed(()=>[loadingIndicatorVisible.value?`loading`:`ready`,displayEntries.value.length?`has-messages`:`empty`,props.scrollKey].join(`:`));const latestRenderedTailKey=computed(()=>{const entry=displayEntries.value.at(-1);if(!entry)return``;return[entry.key,isWorking.value,entry.role===`thinking`?entry.messages.map(messageScrollKey).join(`+`):messageScrollKey(entry.message),entry.turn.optimistic?.status||``,entry.turn.optimistic?.error||``].join(`:`)});const autoScrollEnabled=computed(()=>Boolean(props.visible&&followingLatest.value));const{clearScheduledScrolls,scrollAfterLayout:scrollToLatestMessage,scrollNow:scrollToLatestMessageNow}=useScrollToBottom({anchor:bottomElement,enabled:autoScrollEnabled,scrollAnchorIntoView:false,target:bodyElement});function clearUserScrollIntent(){if(userScrollIntentTimer&&typeof window!==`undefined`&&typeof window.clearTimeout===`function`)window.clearTimeout(userScrollIntentTimer);userScrollIntentTimer=null;userScrollIntent.value=false}function resumePendingTailFollow(){const shouldResume=pendingTailFollow&&followingLatest.value;pendingTailFollow=false;if(shouldResume)queueLiveBottomScroll()}function markUserScrollIntent(){retainedReaderScrollSnapshot=null;userScrollIntent.value=true;clearLiveBottomScroll();clearScheduledScrolls();if(userScrollIntentTimer&&typeof window!==`undefined`&&typeof window.clearTimeout===`function`)window.clearTimeout(userScrollIntentTimer);if(typeof window===`undefined`||typeof window.setTimeout!==`function`)return;userScrollIntentTimer=window.setTimeout(()=>{userScrollIntentTimer=null;userScrollIntent.value=false;resumePendingTailFollow()},USER_SCROLL_INTENT_RESET_MS)}function markKeyboardScrollIntent(event={}){if(!KEYBOARD_SCROLL_KEYS.has(String(event.key||``))||event.defaultPrevented)return;const target=event.target;const tagName=String(target?.tagName||``).toLowerCase();if(target?.isContentEditable||[`input`,`select`,`textarea`].includes(tagName)||[` `,`Spacebar`].includes(event.key)&&[`a`,`button`].includes(tagName))return;markUserScrollIntent()}function scrollToLatestMessageAfterLayout({behavior=`auto`,force=false}={}){if(force){retainedReaderScrollSnapshot=null;followingLatest.value=true;clearUserScrollIntent()}return scrollToLatestMessage({behavior})}function queueInitialBottomScroll(){const version=initialScrollVersion+1;initialScrollVersion=version;initialScrollSettled.value=false;if(props.retainWhenHidden&&!props.visible)return;scrollToLatestMessageAfterLayout({behavior:`auto`,force:true}).finally(()=>{if(initialScrollVersion===version)initialScrollSettled.value=true})}function queueLiveBottomScroll({force=false}={}){if(userScrollIntent.value&&!force){pendingTailFollow=true;return}if(force){retainedReaderScrollSnapshot=null;pendingTailFollow=false;followingLatest.value=true;clearUserScrollIntent()}if(props.retainWhenHidden&&!props.visible)return;if(liveScrollFrame)return;if(typeof window===`undefined`||typeof window.requestAnimationFrame!==`function`){scrollToLatestMessageAfterLayout({behavior:`auto`});return}liveScrollFrame=window.requestAnimationFrame(()=>{liveScrollFrame=0;scrollToLatestMessageNow({behavior:`auto`})})}function clearLiveBottomScroll(){if(liveScrollFrame&&typeof window!==`undefined`&&typeof window.cancelAnimationFrame===`function`)window.cancelAnimationFrame(liveScrollFrame);liveScrollFrame=0}function updateLatestFollowFromScroll(event={}){if(props.retainWhenHidden&&!props.visible)return;const target=event?.currentTarget||bodyElement.value;if(retainedReaderScrollSnapshot?.restoring){previousScrollTop=target?.scrollTop||0;return}const scrollTop=target?.scrollTop||0;const scrolledUp=scrollTop<previousScrollTop;previousScrollTop=scrollTop;if(loadMoreScrollSnapshot&&!loadMoreScrollSnapshot.completed){loadMoreScrollSnapshot.scrollTop=scrollTop;loadMoreScrollSnapshot.anchor=visibleHistoryAnchor(target);loadMoreScrollSnapshot.scrollHeight=target.scrollHeight}const shouldFollow=scrollElementNearBottom(target);if(!shouldFollow&&!userScrollIntent.value&&followingLatest.value)return;followingLatest.value=shouldFollow;if(shouldFollow){clearUserScrollIntent();resumePendingTailFollow();return}clearLiveBottomScroll();clearScheduledScrolls();if(scrolledUp&&initialScrollSettled.value&&scrollTop<=LOAD_MORE_THRESHOLD_PX&&!props.loadMoreError)requestLoadMore()}function visibleHistoryAnchor(element){const top=element.getBoundingClientRect().top;for(const turn of element.querySelectorAll(`.assistant-transcript__turn`)){const bounds=turn.getBoundingClientRect();if(bounds.bottom>top)return{element:turn,offset:bounds.top-top}}return null}async function restoreRetainedReaderScroll(){const snapshot=retainedReaderScrollSnapshot;snapshot.restoring=true;await nextTick();for(let pass=0;pass<2;pass+=1){const element=bodyElement.value;if(retainedReaderScrollSnapshot!==snapshot||element!==snapshot.body||snapshot.scrollKey!==props.scrollKey||!props.retainWhenHidden||!props.visible||followingLatest.value||loadMoreScrollSnapshot){if(retainedReaderScrollSnapshot===snapshot)retainedReaderScrollSnapshot=null;return}const anchor=snapshot.anchor;if(anchor&&element.contains(anchor.element)){const offset=anchor.element.getBoundingClientRect().top-element.getBoundingClientRect().top;previousScrollTop=element.scrollTop+offset-anchor.offset}else previousScrollTop=snapshot.scrollTop+(element.scrollHeight-snapshot.scrollHeight);element.scrollTop=previousScrollTop;if(pass===0&&typeof window!==`undefined`&&typeof window.requestAnimationFrame===`function`)await new Promise(resolve=>window.requestAnimationFrame(()=>window.requestAnimationFrame(resolve)))}if(retainedReaderScrollSnapshot===snapshot)retainedReaderScrollSnapshot=null}function requestLoadMore(){if(props.retainWhenHidden&&!props.visible||!props.hasMoreBefore||props.loadingMore||loadMoreScrollSnapshot)return;followingLatest.value=false;pendingTailFollow=false;markUserScrollIntent();const element=bodyElement.value;const version=loadMoreRequestVersion+1;loadMoreRequestVersion=version;loadMoreScrollSnapshot=element?{anchor:visibleHistoryAnchor(element),scrollHeight:element.scrollHeight,scrollKey:props.scrollKey,scrollTop:element.scrollTop,version}:null;emit(`load-more`,{complete:({changed=false}={})=>{completeLoadMoreRequest(version,changed)}})}function clearLoadMoreScrollSnapshot(){loadMoreRequestVersion+=1;loadMoreScrollSnapshot=null}async function completeLoadMoreRequest(version,changed){const snapshot=loadMoreScrollSnapshot;if(!snapshot||snapshot.version!==version)return;if(!changed||snapshot.scrollKey!==props.scrollKey){clearLoadMoreScrollSnapshot();return}snapshot.completed=true;await nextTick();if(loadMoreScrollSnapshot?.version!==version)return;const passes=props.retainWhenHidden?2:1;for(let pass=0;pass<passes;pass+=1){if(props.retainWhenHidden&&!props.visible||loadMoreScrollSnapshot?.version!==version||snapshot.scrollKey!==props.scrollKey)return;const element=bodyElement.value;if(element){const anchor=snapshot.anchor;if(anchor&&element.contains(anchor.element)){const offset=anchor.element.getBoundingClientRect().top-element.getBoundingClientRect().top;previousScrollTop=element.scrollTop+offset-anchor.offset}else previousScrollTop=snapshot.scrollTop+(element.scrollHeight-snapshot.scrollHeight);element.scrollTop=previousScrollTop}if(pass+1<passes&&typeof window!==`undefined`&&typeof window.requestAnimationFrame===`function`)await new Promise(resolve=>window.requestAnimationFrame(()=>window.requestAnimationFrame(resolve)))}clearLoadMoreScrollSnapshot()}onBeforeUnmount(()=>{retainedReaderScrollSnapshot=null;clearLiveBottomScroll();clearUserScrollIntent();clearLoadMoreScrollSnapshot()});watch(()=>props.scrollKey,()=>{expandedUserMessages.value=new Set;displayMessageCache.clear()});watch(()=>[timelineScrollTrigger.value,latestRenderedTailKey.value],([timelineKey,value],[previousTimelineKey,previous]=[])=>{if(timelineKey!==previousTimelineKey)return;if(!value||value===previous)return;queueLiveBottomScroll({force:false})},{flush:`post`});watch(()=>[props.scrollKey,props.followLatestKey],([scrollKey,value],[previousScrollKey,previous]=[])=>{if(scrollKey!==previousScrollKey||value===previous)return;queueLiveBottomScroll({force:true})},{flush:`post`});watch(timelineScrollTrigger,()=>{retainedReaderScrollSnapshot=null;clearLoadMoreScrollSnapshot();queueInitialBottomScroll()},{flush:`post`,immediate:true});watch(()=>props.error,()=>{if(followingLatest.value)queueLiveBottomScroll()},{flush:`post`});watch(()=>props.visible,visible=>{if(visible)return;retainedReaderScrollSnapshot=null;const element=bodyElement.value;if(props.retainWhenHidden&&initialScrollSettled.value&&!followingLatest.value&&!loadMoreScrollSnapshot&&element?.clientHeight>0)retainedReaderScrollSnapshot={anchor:visibleHistoryAnchor(element),body:element,scrollHeight:element.scrollHeight,scrollKey:props.scrollKey,scrollTop:element.scrollTop}},{flush:`sync`});watch(()=>props.visible,visible=>{if(props.retainWhenHidden){if(!visible){clearLiveBottomScroll();clearScheduledScrolls();clearUserScrollIntent();initialScrollVersion+=1}else if(loadMoreScrollSnapshot?.completed)completeLoadMoreRequest(loadMoreScrollSnapshot.version,true);else if(!initialScrollSettled.value)queueInitialBottomScroll();else if(retainedReaderScrollSnapshot)restoreRetainedReaderScroll();else queueLiveBottomScroll();return}clearLoadMoreScrollSnapshot();if(visible)queueLiveBottomScroll({force:true})},{flush:`post`});return(_ctx,_cache)=>{return __props.visible||__props.retainWhenHidden?withDirectives((openBlock(),createElementBlock(`section`,{key:0,class:normalizeClass([`assistant-transcript`,[`assistant-transcript--${__props.variant}`,{"assistant-transcript--retained":__props.retainWhenHidden,"assistant-transcript--error":__props.error}]]),"aria-label":`Conversation history`},[__props.reloadable?(openBlock(),createBlock(VBtn,{key:0,"aria-label":__props.reloading?`Reloading chat`:`Reload chat`,class:`assistant-transcript__reload`,disabled:__props.reloading,icon:unref(mdiRefresh),size:`x-small`,title:__props.reloading?`Reloading chat`:`Reload chat`,type:`button`,variant:`text`,onClick:_cache[0]||(_cache[0]=$event=>emit(`reload`))},null,8,[`aria-label`,`disabled`,`icon`,`title`])):createCommentVNode(``,true),loadingIndicatorVisible.value&&!__props.reloadable?(openBlock(),createBlock(VSkeletonLoader,{key:1,"aria-label":`Loading conversation`,class:`assistant-transcript__loading-skeleton`,type:`list-item-avatar-two-line@3`})):createCommentVNode(``,true),initialScrollPending.value?(openBlock(),createElementBlock(`div`,_hoisted_1$9,[createVNode(VSkeletonLoader,{"aria-label":`Preparing conversation`,class:`assistant-transcript__settling-skeleton`,type:`list-item-avatar-two-line@3`})])):createCommentVNode(``,true),__props.error?(openBlock(),createBlock(VAlert,{key:3,class:`assistant-transcript__error`,icon:false,density:`compact`,type:`warning`,variant:`tonal`},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_2$9,[__props.errorReloadable&&!__props.reloadable?(openBlock(),createBlock(VBtn,{key:0,disabled:__props.reloading,"min-height":32,size:`small`,"aria-label":__props.reloading?`Reloading chat`:`Reload chat`,type:`button`,variant:`text`,onClick:_cache[1]||(_cache[1]=$event=>emit(`reload`))},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.reloading?`Reloading…`:`Reload chat`),1)]),_:1},8,[`disabled`,`aria-label`])):createCommentVNode(``,true),createBaseVNode(`span`,null,toDisplayString(__props.error),1)])]),_:1})):createCommentVNode(``,true),createBaseVNode(`div`,{ref_key:`bodyElement`,ref:bodyElement,"aria-label":`Conversation messages`,class:normalizeClass([`assistant-transcript__body`,{"assistant-transcript__body--settling":initialScrollPending.value}]),tabindex:`0`,onKeydownCapture:markKeyboardScrollIntent,onPointerdown:withModifiers(markUserScrollIntent,[`self`]),onScrollPassive:updateLatestFollowFromScroll,onTouchmovePassive:markUserScrollIntent,onWheelPassive:markUserScrollIntent},[__props.welcomeMessage?(openBlock(),createElementBlock(`div`,_hoisted_3$7,[createBaseVNode(`div`,_hoisted_4$6,[createBaseVNode(`span`,_hoisted_5$6,[createVNode(VIcon,{icon:unref(mdiRobotOutline),size:`16`},null,8,[`icon`])]),createBaseVNode(`div`,_hoisted_6$4,[createBaseVNode(`span`,null,toDisplayString(__props.assistantLabel),1)])]),renderSlot(_ctx.$slots,`welcome`,{},()=>[createBaseVNode(`p`,null,toDisplayString(__props.welcomeMessage),1)],true)])):createCommentVNode(``,true),__props.hasMoreBefore||__props.loadingMore||__props.loadMoreError?(openBlock(),createElementBlock(`div`,_hoisted_7$4,[createVNode(VBtn,{color:`primary`,disabled:__props.loadingMore||!__props.hasMoreBefore,size:`x-small`,type:`button`,variant:`tonal`,onClick:requestLoadMore},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.loadingMore?`Loading older messages…`:`Load older messages`),1)]),_:1},8,[`disabled`]),__props.loadMoreError?(openBlock(),createElementBlock(`div`,_hoisted_8$4,toDisplayString(__props.loadMoreError),1)):createCommentVNode(``,true)])):createCommentVNode(``,true),(openBlock(true),createElementBlock(Fragment,null,renderList(displayEntries.value,entry=>{return openBlock(),createElementBlock(`article`,{key:entry.key,class:`assistant-transcript__turn`},[entry.role===`system`?(openBlock(),createElementBlock(`div`,_hoisted_9$4,[createVNode(VIcon,{class:`assistant-transcript__system-icon`,icon:unref(mdiInformationOutline),size:`15`},null,8,[`icon`]),createBaseVNode(`div`,_hoisted_10$2,[createBaseVNode(`div`,_hoisted_11$2,[createBaseVNode(`span`,null,toDisplayString(__props.systemLabel),1),entry.message.displayAt?(openBlock(),createElementBlock(`time`,_hoisted_12$2,toDisplayString(entry.message.displayAt),1)):createCommentVNode(``,true)]),renderSlot(_ctx.$slots,`system-message`,{message:entry.message},()=>[createVNode(_sfc_main$11,{message:entry.message,onCheckDelivery:_cache[2]||(_cache[2]=$event=>emit(`check-delivery`,$event)),onLinkClick:handleLongTextLinkClick},null,8,[`message`])],true)])])):entry.role===`user`?(openBlock(),createElementBlock(`div`,_hoisted_13$2,[createBaseVNode(`div`,{class:normalizeClass([`assistant-transcript__message assistant-transcript__message--user`,{"assistant-transcript__message--pending":entry.turn.optimistic?.status===`pending`,"assistant-transcript__message--failed":entry.turn.optimistic?.status===`failed`}])},[createBaseVNode(`div`,_hoisted_14$1,[entry.turn.preview&&previewForTurn(entry.turn)?.actions?.editing?(openBlock(),createBlock(VTextarea,{key:0,class:`assistant-transcript__preview-editor`,"model-value":previewForTurn(entry.turn).text,label:`Review your message`,disabled:!previewForTurn(entry.turn).actions.canEdit,density:`compact`,rows:1,"max-rows":2,"auto-grow":``,"hide-details":``,"onUpdate:modelValue":$event=>previewForTurn(entry.turn).actions.update(entry.turn.turnId,$event)},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`])):__props.userMessageFormat===`plain`?(openBlock(),createElementBlock(`p`,_hoisted_15,toDisplayString(userMessageExpanded(entry.turn)?entry.message.text:userMessagePreviewText(entry.message.text)||entry.message.text),1)):(openBlock(),createBlock(LongTextPreviewBlocks_default,{key:2,blocks:userMessageExpanded(entry.turn)?entry.message.blocks:entry.message.previewBlocks||entry.message.blocks,onLinkClick:handleLongTextLinkClick},null,8,[`blocks`]))]),userMessageCollapsible(entry.message)?(openBlock(),createElementBlock(`button`,{key:0,"aria-expanded":userMessageExpanded(entry.turn),class:`assistant-transcript__user-content-toggle`,type:`button`,onClick:$event=>toggleUserMessage(entry.turn)},toDisplayString(userMessageExpanded(entry.turn)?`Show less`:`Read more`),9,_hoisted_16)):createCommentVNode(``,true),renderSlot(_ctx.$slots,`attachments`,{items:entry.message.attachments,message:entry.message},()=>[createVNode(AssistantMessageAttachments_default,{attachments:entry.message.attachments||[]},null,8,[`attachments`])],true),entry.message.displayAt||entry.turn.optimistic?.status===`pending`?(openBlock(),createElementBlock(`div`,_hoisted_17,[entry.message.displayAt?(openBlock(),createElementBlock(`time`,_hoisted_18,toDisplayString(entry.message.displayAt),1)):createCommentVNode(``,true),entry.turn.optimistic?.status===`pending`?(openBlock(),createElementBlock(`span`,_hoisted_19,`Pending`)):createCommentVNode(``,true)])):createCommentVNode(``,true),renderSlot(_ctx.$slots,`user-message-actions`,{message:entry.message,turn:entry.turn},void 0,true),entry.delivery||entry.turn.optimistic?.status===`failed`?(openBlock(),createElementBlock(`div`,_hoisted_20,[createBaseVNode(`span`,_hoisted_21,toDisplayString(entry.delivery?entry.delivery.delivery.error||`Delivery unconfirmed.`:`Failed: ${entry.turn.optimistic.error||`Message could not be sent.`}`),1),!entry.turn.preview?(openBlock(),createElementBlock(`div`,_hoisted_22,[createVNode(VBtn,{class:`assistant-transcript__delivery-action`,color:`error`,size:`x-small`,type:`button`,variant:`text`,disabled:entry.delivery?.delivery.checking,"aria-label":entry.delivery?`Retry delivery check`:void 0,title:entry.delivery?entry.delivery.delivery.error||`Check delivery before resending.`:void 0,onClick:$event=>entry.delivery?emit(`check-delivery`,entry.delivery.delivery.messageId):emit(`resend-turn`,entry.turn.optimistic.id)},{default:withCtx(()=>[createTextVNode(toDisplayString(entry.delivery?.delivery.checking?`Checking…`:`Retry`),1)]),_:2},1032,[`disabled`,`aria-label`,`title`,`onClick`]),!entry.delivery||__props.cancellableDelivery?(openBlock(),createBlock(VBtn,{key:0,class:`assistant-transcript__delivery-action`,size:`x-small`,type:`button`,variant:`text`,onClick:$event=>emit(`cancel-turn`,entry.delivery?.delivery.messageId||entry.turn.optimistic.id)},{default:withCtx(()=>[..._cache[3]||(_cache[3]=[createTextVNode(` Cancel `,-1)])]),_:1},8,[`onClick`])):createCommentVNode(``,true),!entry.delivery?(openBlock(),createBlock(VBtn,{key:1,class:`assistant-transcript__delivery-action`,size:`x-small`,type:`button`,variant:`text`,onClick:$event=>emit(`edit-turn`,entry.turn.optimistic.id)},{default:withCtx(()=>[..._cache[4]||(_cache[4]=[createTextVNode(` Edit `,-1)])]),_:1},8,[`onClick`])):createCommentVNode(``,true)])):createCommentVNode(``,true)])):createCommentVNode(``,true)],2),createBaseVNode(`span`,_hoisted_23,[createVNode(VIcon,{icon:unref(mdiAccountOutline),size:`15`},null,8,[`icon`])])])):entry.role===`thinking`?(openBlock(),createBlock(AssistantProgress_default,{key:`${__props.scrollKey}:${entry.key}`,class:`assistant-transcript__thinking`,messages:entry.messages,pending:isWorking.value&&entry===displayEntries.value.at(-1),"preview-limit":__props.progressPreviewLimit,"aria-label":`${entry.turn.assistantLabel||__props.assistantLabel} progress`},null,8,[`messages`,`pending`,`preview-limit`,`aria-label`])):(openBlock(),createElementBlock(`div`,{key:3,class:`assistant-transcript__message-row assistant-transcript__message-row--assistant`,"data-message-role":entry.role},[createBaseVNode(`div`,_hoisted_25,[createBaseVNode(`span`,_hoisted_26,[createVNode(VIcon,{icon:unref(mdiRobotOutline),size:`16`},null,8,[`icon`])]),createBaseVNode(`div`,_hoisted_27,[createBaseVNode(`span`,{title:entry.message.assistantDetails||entry.turn.assistantDetails||void 0},toDisplayString(entry.message.assistantLabel||entry.turn.assistantLabel||__props.assistantLabel),9,_hoisted_28)])]),createBaseVNode(`div`,_hoisted_29,[entry.message.blocks.length?(openBlock(),createBlock(LongTextPreviewBlocks_default,{key:0,blocks:entry.message.blocks,onLinkClick:handleLongTextLinkClick},null,8,[`blocks`])):createCommentVNode(``,true),entry.message.questions.length?(openBlock(),createElementBlock(`ol`,_hoisted_30,[(openBlock(true),createElementBlock(Fragment,null,renderList(entry.message.questions,question=>{return openBlock(),createElementBlock(`li`,{key:question.name,class:`assistant-transcript__question`},[createBaseVNode(`span`,_hoisted_31,toDisplayString(question.number),1),createBaseVNode(`div`,_hoisted_32,[createBaseVNode(`span`,_hoisted_33,[createVNode(LongTextInlineParts_default,{text:question.label,onLinkClick:handleLongTextLinkClick},null,8,[`text`])]),question.choices.length?(openBlock(),createElementBlock(`ul`,_hoisted_34,[(openBlock(true),createElementBlock(Fragment,null,renderList(question.choices,choice=>{return openBlock(),createElementBlock(`li`,{key:choice.value},[createVNode(LongTextInlineParts_default,{text:choice.label,onLinkClick:handleLongTextLinkClick},null,8,[`text`]),choice.recommended?(openBlock(),createElementBlock(`span`,_hoisted_35,` · Recommended`)):createCommentVNode(``,true)])}),128))])):createCommentVNode(``,true)])])}),128))])):createCommentVNode(``,true),entry.message.outroBlocks.length?(openBlock(),createBlock(LongTextPreviewBlocks_default,{key:2,blocks:entry.message.outroBlocks,onLinkClick:handleLongTextLinkClick},null,8,[`blocks`])):createCommentVNode(``,true),renderSlot(_ctx.$slots,`message-actions`,{message:entry.message,turn:entry.turn},void 0,true)]),entry.message.displayAt?(openBlock(),createElementBlock(`div`,_hoisted_36,[createBaseVNode(`time`,null,toDisplayString(entry.message.displayAt),1)])):createCommentVNode(``,true)],8,_hoisted_24))])}),128)),createBaseVNode(`div`,{ref_key:`bottomElement`,ref:bottomElement,class:`assistant-transcript__bottom`,"aria-hidden":`true`},null,512)],34)],2)),[[vShow,__props.visible]]):createCommentVNode(``,true)}}};var AssistantTranscript_default=_plugin_vue_export_helper_default(_sfc_main$9,[[`__scopeId`,`data-v-274f30ef`]]);var _hoisted_1$8={key:1,class:`assistant-prompt-input__input-start`};var _hoisted_2$8=[`aria-describedby`,`aria-label`,`disabled`,`placeholder`,`rows`,`value`];var _hoisted_3$6={key:2,class:`assistant-prompt-input__footer`};var _hoisted_4$5={key:0,class:`assistant-prompt-input__details`};var _hoisted_5$5={key:0,class:`assistant-prompt-input__hint`};var _sfc_main$8={__name:`AssistantPromptInput`,props:{submitOnModifierEnter:{type:Boolean,default:false},ariaLabel:{default:``,type:String},attachmentState:{default:()=>({canSubmit:true,count:0}),type:Object},dragging:{default:false,type:Boolean},autoGrow:{default:true,type:Boolean},disabled:{default:false,type:Boolean},describedBy:{default:``,type:String},errorMessages:{default:()=>[],type:[Array,String]},hint:{default:``,type:String},label:{default:``,type:String},modelValue:{default:``,type:String},persistentHint:{default:false,type:Boolean},placeholderAffectsHeight:{default:true,type:Boolean},placeholder:{default:``,type:String},rows:{default:4,type:[Number,String]},density:{default:`default`,type:String},submitOnEnter:{default:false,type:Boolean},submitEnabled:{default:true,type:Boolean},tabToSubmit:{default:false,type:Boolean},variant:{default:`outlined`,type:String}},emits:[`blur`,`escape`,`focus`,`input-activity`,`submit`,`tab-to-submit`,`update:modelValue`,`paste`],setup(__props,{expose:__expose,emit:__emit}){const emit=__emit;const props=__props;const textareaRef=ref(null);const textareaId=`assistant-prompt-${useId()}`;let resizeFrame=0;let resizeObserver=null;let preserveHeightForNextModelValueChange=false;const combinedErrorMessages=computed(()=>{return Array.isArray(props.errorMessages)?props.errorMessages:[props.errorMessages].filter(Boolean)});const hintVisible=computed(()=>Boolean(props.hint&&(props.persistentHint||combinedErrorMessages.value.length<1)));const detailsVisible=computed(()=>Boolean(combinedErrorMessages.value.length||hintVisible.value));const textareaAriaLabel=computed(()=>props.ariaLabel?props.ariaLabel:void 0);function resizeTextarea(){if(!props.autoGrow)return;const textarea=textareaRef.value;if(!textarea)return;if(!props.placeholderAffectsHeight&&!textarea.value)return;const style=window.getComputedStyle(textarea);const minHeight=Number.parseFloat(style.minHeight)||0;const maxHeight=Number.parseFloat(style.maxHeight)||Number.POSITIVE_INFINITY;textarea.style.height=`auto`;const contentHeight=Math.max(textarea.scrollHeight,minHeight);const targetHeight=Math.min(contentHeight,maxHeight);textarea.style.height=`${targetHeight}px`;textarea.style.overflowY=contentHeight>targetHeight+1?`auto`:`hidden`}function queueResizeTextarea(){if(!props.autoGrow||typeof window===`undefined`)return;if(resizeFrame)return;resizeFrame=window.requestAnimationFrame(()=>{resizeFrame=0;resizeTextarea()})}function preserveHeightForNextModelValue(){const textarea=textareaRef.value;if(!props.autoGrow||!textarea)return false;if(resizeFrame){window.cancelAnimationFrame(resizeFrame);resizeFrame=0}preserveHeightForNextModelValueChange=true;textarea.style.height=`${textarea.getBoundingClientRect().height}px`;textarea.style.overflowY=`auto`;return true}function handleTextareaInput(event={}){preserveHeightForNextModelValueChange=false;emit(`input-activity`);emit(`update:modelValue`,String(event?.target?.value||``));queueResizeTextarea()}function handleTextareaFocus(event={}){emit(`focus`,event)}function handleTextareaBlur(event={}){emit(`blur`,event)}function handleTextareaKeydown(event={}){if(props.disabled||event.isComposing)return;if(event.key===`Escape`){emit(`escape`,event);return}if(props.tabToSubmit&&props.submitEnabled&&String(props.modelValue||``).trim()&&props.attachmentState.canSubmit&&event.key===`Tab`&&!event.shiftKey&&!event.altKey&&!event.ctrlKey&&!event.metaKey){event.preventDefault();emit(`tab-to-submit`);return}if(props.submitOnModifierEnter&&event.key===`Enter`&&(event.ctrlKey||event.metaKey)&&!event.shiftKey&&!event.altKey&&!event.isComposing&&props.submitEnabled&&props.attachmentState.canSubmit){event.preventDefault();event.stopPropagation();emit(`submit`);return}if(event.key===`Enter`&&!props.submitOnEnter){event.stopPropagation();return}if(!props.submitOnEnter||event.key!==`Enter`||event.shiftKey||event.altKey||event.ctrlKey||event.metaKey||event.isComposing||!props.submitEnabled||!props.attachmentState.canSubmit)return;event.preventDefault();emit(`submit`)}function focusTextarea(options={preventScroll:true}){textareaRef.value?.focus?.(options)}onMounted(()=>{queueResizeTextarea();let lastWidth=0;resizeObserver=new ResizeObserver(([entry])=>{const width=entry.contentRect.width;if(width!==lastWidth){lastWidth=width;queueResizeTextarea()}});resizeObserver.observe(textareaRef.value)});onBeforeUnmount(()=>{resizeObserver?.disconnect();if(resizeFrame&&typeof window!==`undefined`){window.cancelAnimationFrame(resizeFrame);resizeFrame=0}});watch(()=>[props.autoGrow,props.modelValue,props.placeholder,props.placeholderAffectsHeight,props.rows,props.density],(values,previousValues=[])=>{const modelValueChanged=values[1]!==previousValues[1];if(preserveHeightForNextModelValueChange&&modelValueChanged){preserveHeightForNextModelValueChange=false;return}queueResizeTextarea()},{flush:`post`});__expose({inputElement:textareaRef,focus:focusTextarea,preserveHeightForNextModelValue,queueResizeTextarea});return(_ctx,_cache)=>{return openBlock(),createElementBlock(`div`,{class:normalizeClass([`assistant-prompt-input`,{"assistant-prompt-input--compact":__props.density===`compact`,"assistant-prompt-input--dragging":__props.dragging,"assistant-prompt-input--has-attachments":__props.attachmentState.count,"assistant-prompt-input--has-footer":_ctx.$slots.footer,"assistant-prompt-input--has-input-start":_ctx.$slots[`input-start`]}])},[renderSlot(_ctx.$slots,`attachments`,{},void 0,true),createBaseVNode(`div`,{class:normalizeClass([`assistant-prompt-input__field`,{"assistant-prompt-input__field--disabled":__props.disabled}])},[__props.label?(openBlock(),createElementBlock(`label`,{key:0,class:`assistant-prompt-input__label`,for:textareaId},toDisplayString(__props.label),1)):createCommentVNode(``,true),_ctx.$slots[`input-start`]?(openBlock(),createElementBlock(`div`,_hoisted_1$8,[renderSlot(_ctx.$slots,`input-start`,{},void 0,true)])):createCommentVNode(``,true),createBaseVNode(`textarea`,{id:textareaId,ref_key:`textareaRef`,ref:textareaRef,"aria-describedby":__props.describedBy||void 0,"aria-label":textareaAriaLabel.value,class:`assistant-prompt-input__input`,disabled:__props.disabled,placeholder:__props.placeholder,rows:__props.rows,value:__props.modelValue,onBlur:handleTextareaBlur,onFocus:handleTextareaFocus,onInput:handleTextareaInput,onKeydown:handleTextareaKeydown,onPaste:_cache[0]||(_cache[0]=$event=>emit(`paste`,$event))},null,40,_hoisted_2$8),_ctx.$slots.footer?(openBlock(),createElementBlock(`div`,_hoisted_3$6,[renderSlot(_ctx.$slots,`footer`,{attachmentState:__props.attachmentState},void 0,true)])):createCommentVNode(``,true)],2),detailsVisible.value?(openBlock(),createElementBlock(`div`,_hoisted_4$5,[(openBlock(true),createElementBlock(Fragment,null,renderList(combinedErrorMessages.value,message=>{return openBlock(),createElementBlock(`div`,{key:message,class:`assistant-prompt-input__error`},toDisplayString(message),1)}),128)),hintVisible.value?(openBlock(),createElementBlock(`div`,_hoisted_5$5,toDisplayString(__props.hint),1)):createCommentVNode(``,true)])):createCommentVNode(``,true)],2)}}};var AssistantPromptInput_default=_plugin_vue_export_helper_default(_sfc_main$8,[[`__scopeId`,`data-v-57d35b92`]]);var _hoisted_1$7={class:`assistant-composer-actions__tools`};var _hoisted_2$7={class:`assistant-composer-actions__delivery`};var _sfc_main$7={__name:`AssistantComposerActions`,props:{state:{type:Object,required:true}},emits:[`submit`,`stop`],setup(__props,{expose:__expose,emit:__emit}){const emit=__emit;const sendButton=ref(null);__expose({focus(){(sendButton.value?.$el||sendButton.value)?.focus?.()}});return(_ctx,_cache)=>{return openBlock(),createElementBlock(`div`,{class:normalizeClass([`assistant-composer-actions`,{"assistant-composer-actions--compact":__props.state.density===`compact`}])},[createBaseVNode(`div`,_hoisted_1$7,[renderSlot(_ctx.$slots,`default`,{},void 0,true)]),createBaseVNode(`div`,_hoisted_2$7,[__props.state.canStop?(openBlock(),createBlock(VBtn,{key:0,color:`error`,disabled:__props.state.stopDisabled||__props.state.stopPending,"aria-busy":__props.state.stopPending?`true`:void 0,"prepend-icon":unref(mdiStopCircleOutline),size:`small`,variant:`tonal`,onClick:_cache[0]||(_cache[0]=$event=>emit(`stop`))},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.state.stopPending?`Stopping…`:`Stop`),1)]),_:1},8,[`disabled`,`aria-busy`,`prepend-icon`])):createCommentVNode(``,true),createVNode(VBtn,{ref_key:`sendButton`,ref:sendButton,class:`assistant-composer-actions__send`,color:`primary`,disabled:!__props.state.canSend,"aria-busy":__props.state.pending&&!__props.state.canSend?`true`:void 0,"aria-label":__props.state.submitAriaLabel||__props.state.submitLabel||`Send message`,title:__props.state.submitTitle,"prepend-icon":__props.state.submitIcon||unref(`M2,21L23,12L2,3V10L17,12L2,14V21Z`),size:`small`,variant:`flat`,onClick:_cache[1]||(_cache[1]=$event=>emit(`submit`))},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.state.submitLabel||(__props.state.pending&&!__props.state.canSend?`Sending…`:`Send`)),1)]),_:1},8,[`disabled`,`aria-busy`,`aria-label`,`title`,`prepend-icon`])]),renderSlot(_ctx.$slots,`feedback`,{},void 0,true)],2)}}};var AssistantComposerActions_default=_plugin_vue_export_helper_default(_sfc_main$7,[[`__scopeId`,`data-v-41f59847`]]);var _hoisted_1$6=[`id`];var _hoisted_2$6={key:0,"aria-hidden":`true`,class:`assistant-composer-support__assistant-status`};var _hoisted_3$5={key:0,class:`assistant-composer-support__assistant-mark`};var _hoisted_4$4={key:0,"aria-hidden":`true`,class:`assistant-composer-support__loading`};var _hoisted_5$4={key:1,class:`assistant-composer-support__options`,"aria-label":`Suggested prompts`,"aria-orientation":`horizontal`,role:`group`};var _sfc_main$6={__name:`AssistantComposerSupport`,props:{activity:{type:Object,default:()=>({})},loading:{default:false,type:Boolean},statusId:{default:``,type:String},suggestions:{default:()=>[],type:Array}},emits:[`dismiss`,`focusout`,`preview`,`select`],setup(__props){const props=__props;const mode=computed(()=>{if(String(props.activity.label||``).trim())return`assistant`;if(props.loading)return`loading`;return props.suggestions.length>0?`ready`:`hidden`});const statusAnnouncement=computed(()=>{if(mode.value===`assistant`)return String(props.activity.label||``).trim();if(mode.value===`loading`)return`Thinking of a few ideas.`;if(mode.value===`ready`)return`${props.suggestions.length} suggested prompts are available before the message controls.`;return``});return(_ctx,_cache)=>{return openBlock(),createElementBlock(`section`,{class:normalizeClass([`assistant-composer-support`,`assistant-composer-support--${mode.value}`]),"data-assistant-composer-support":``,onFocusout:_cache[3]||(_cache[3]=$event=>_ctx.$emit(`focusout`,$event)),onKeydown:_cache[4]||(_cache[4]=withKeys(withModifiers($event=>_ctx.$emit(`dismiss`),[`stop`,`prevent`]),[`esc`]))},[createBaseVNode(`span`,{id:__props.statusId||void 0,"aria-atomic":`true`,"aria-live":`polite`,class:`assistant-composer-support__sr-status`,role:`status`},toDisplayString(statusAnnouncement.value),9,_hoisted_1$6),mode.value===`assistant`?(openBlock(),createElementBlock(`div`,_hoisted_2$6,[renderSlot(_ctx.$slots,`activity`,{activity:__props.activity},()=>[__props.activity.animated!==false?(openBlock(),createElementBlock(`span`,_hoisted_3$5)):createCommentVNode(``,true),createBaseVNode(`span`,null,toDisplayString(__props.activity.label),1)],true)])):mode.value!==`hidden`?(openBlock(),createElementBlock(Fragment,{key:1},[createVNode(VIcon,{"aria-hidden":`true`,class:`assistant-composer-support__marker`,icon:unref(mdiLightbulbOnOutline),size:`16`},null,8,[`icon`]),mode.value===`loading`?(openBlock(),createElementBlock(`div`,_hoisted_4$4,[..._cache[5]||(_cache[5]=[createBaseVNode(`span`,null,`Thinking of a few ideas`,-1)])])):(openBlock(),createElementBlock(`div`,_hoisted_5$4,[(openBlock(true),createElementBlock(Fragment,null,renderList(__props.suggestions,suggestion=>{return openBlock(),createBlock(VBtn,{key:suggestion.prompt,"aria-label":`Use suggestion: ${suggestion.prompt}`,class:`assistant-composer-support__option`,rounded:`xl`,size:`small`,type:`button`,variant:`tonal`,onBlur:_cache[0]||(_cache[0]=$event=>_ctx.$emit(`preview`,null)),onMousedown:_cache[1]||(_cache[1]=withModifiers(()=>{},[`prevent`])),onFocus:$event=>_ctx.$emit(`preview`,suggestion),onMouseenter:$event=>_ctx.$emit(`preview`,suggestion),onMouseleave:_cache[2]||(_cache[2]=$event=>_ctx.$emit(`preview`,null)),onClick:$event=>_ctx.$emit(`select`,suggestion)},{default:withCtx(()=>[createBaseVNode(`span`,null,toDisplayString(suggestion.label),1)]),_:2},1032,[`aria-label`,`onFocus`,`onMouseenter`,`onClick`])}),128))]))],64)):createCommentVNode(``,true)],34)}}};var AssistantComposerSupport_default=_plugin_vue_export_helper_default(_sfc_main$6,[[`__scopeId`,`data-v-2b078f41`]]);var _hoisted_1$5={class:`assistant-goal__label`};var _hoisted_2$5={key:1,class:`assistant-goal__elapsed`,"aria-hidden":`true`};var _hoisted_3$4={role:`status`};var _hoisted_4$3={key:3,class:`my-2`};var _hoisted_5$3={key:4,class:`text-body-small my-2`};var _hoisted_6$3={key:5,class:`text-body-small my-2`};var _hoisted_7$3={key:6,class:`text-body-small mt-2`};var _hoisted_8$3={key:7,class:`text-body-small mt-2`};var _hoisted_9$3={key:9,role:`alert`,class:`text-error text-body-small mt-2`};var _sfc_main$5={__name:`AssistantGoalControl`,props:{state:{type:Object,default:null}},setup(__props){const props=__props;const open=ref(false);const objective=ref(``);const tokenBudget=ref(``);const now=ref(Date.now());const goal=computed(()=>props.state?.loading||props.state?.available===false?null:props.state?.goal);const running=computed(()=>goal.value?.status===`active`);const working=computed(()=>running.value&&props.state?.working===true);const label=computed(()=>props.state?.loading?`Loading goal…`:props.state?.available===false?`Goal unavailable`:{active:`Goal running`,paused:`Goal paused`,blocked:`Goal blocked`,usageLimited:`Goal waiting for allowance`,budgetLimited:`Goal budget reached`,complete:`Goal complete`}[goal.value?.status]||`Set goal`);const nativeElapsed=computed(()=>Number.isFinite(goal.value?.elapsedSeconds));const createdAt=computed(()=>typeof goal.value?.createdAt===`string`?Date.parse(goal.value.createdAt):NaN);const elapsedLabel=computed(()=>nativeElapsed.value?`Running time`:`Elapsed since goal started (including pauses)`);const clockRunning=computed(()=>nativeElapsed.value?running.value&&Number.isFinite(goal.value?.sampledAt):Boolean(goal.value&&goal.value.status!==`complete`&&Number.isFinite(createdAt.value)));const elapsed=computed(()=>{let secondsUsed;if(nativeElapsed.value){const sinceSample=running.value&&Number.isFinite(goal.value.sampledAt)?Math.max(0,now.value-goal.value.sampledAt)/1e3:0;secondsUsed=goal.value.elapsedSeconds+sinceSample}else{const end=goal.value?.status===`complete`?goal.value.sampledAt:now.value;if(!Number.isFinite(createdAt.value)||!Number.isFinite(end))return``;secondsUsed=(end-createdAt.value)/1e3}const total=Math.max(0,Math.floor(secondsUsed));const seconds=String(total%60).padStart(2,`0`);const minutes=Math.floor(total/60);return minutes<60?`${minutes}:${seconds}`:`${Math.floor(minutes/60)}:${String(minutes%60).padStart(2,`0`)}:${seconds}`});const canSet=computed(()=>!props.state?.loading&&props.state?.available!==false&&typeof props.state?.set===`function`&&(!goal.value||goal.value.status===`complete`));const validBudget=computed(()=>props.state?.tokenBudgetSupported===false||tokenBudget.value===``||Number.isSafeInteger(Number(tokenBudget.value))&&Number(tokenBudget.value)>0);let timer;onMounted(()=>watch(()=>[props.state?.enabled,clockRunning.value,goal.value?.elapsedSeconds,goal.value?.sampledAt,createdAt.value],()=>{clearInterval(timer);now.value=Date.now();if(props.state?.enabled!==false&&clockRunning.value)timer=setInterval(()=>{now.value=Date.now()},1e3)},{immediate:true,flush:`sync`}));onScopeDispose(()=>clearInterval(timer));watch(()=>props.state?.enabled,enabled=>{if(enabled===false)open.value=false});async function setGoal(){if(!canSet.value||props.state.pending||!objective.value.trim()||!validBudget.value)return;const result=await props.state.set({objective:objective.value.trim(),...props.state.tokenBudgetSupported===false||tokenBudget.value===``?{}:{tokenBudget:Number(tokenBudget.value)}});if(result!==false&&result?.ok!==false&&!props.state.error){objective.value=``;tokenBudget.value=``;open.value=false}}return(_ctx,_cache)=>{return __props.state&&__props.state.enabled!==false?(openBlock(),createBlock(VMenu,{key:0,modelValue:open.value,"onUpdate:modelValue":_cache[5]||(_cache[5]=$event=>open.value=$event),location:`top`,"close-on-content-click":false},{activator:withCtx(({props:menuProps})=>[createVNode(VBtn,mergeProps(menuProps,{class:`assistant-goal`,size:`small`,variant:`text`,"aria-label":label.value,title:[label.value,elapsed.value&&`${elapsedLabel.value}: ${elapsed.value}`,goal.value?.objective].filter(Boolean).join(`
|
|
16
|
+
`)].slice(0,USER_MESSAGE_PREVIEW_MAX_CHARACTERS).join(``).trimEnd();return preview?`${preview}…`:``}function displayMessage(message=null,{allowNumberedQuestions=false,preserveParagraphLineBreaks=false,previewUserMessage=false}={},cacheKey=``){if(!message)return null;const normalizedCacheKey=String(cacheKey||``).trim();const cached=normalizedCacheKey?displayMessageCache.get(normalizedCacheKey):null;if(cached&&cached.allowNumberedQuestions===allowNumberedQuestions&&cached.attachments===message.attachments&&cached.at===message.at&&cached.messageId===message.messageId&&cached.preserveParagraphLineBreaks===preserveParagraphLineBreaks&&cached.previewUserMessage===previewUserMessage&&cached.role===message.role&&cached.text===message.text)return{...message,...cached.value};const messageText=message.text;const questionInput=allowNumberedQuestions?parseNumberedQuestionPrompt(messageText):{intro:``,outro:``,questions:[]};const hasQuestions=questionInput.questions.length>0;const previewText=previewUserMessage?userMessagePreviewText(message.text):``;const value={blocks:parseLongTextReviewBlocks(hasQuestions?questionInput.intro:messageText,{preserveParagraphLineBreaks}),outroBlocks:parseLongTextReviewBlocks(hasQuestions?questionInput.outro:``,{preserveParagraphLineBreaks}),previewBlocks:previewText?parseLongTextReviewBlocks(previewText,{preserveParagraphLineBreaks:true}):null,questions:hasQuestions?questionInput.questions:[],displayAt:displayTime(message.at)};if(normalizedCacheKey){if(displayMessageCache.size>=DISPLAY_MESSAGE_CACHE_LIMIT&&!displayMessageCache.has(normalizedCacheKey))displayMessageCache.delete(displayMessageCache.keys().next().value);displayMessageCache.set(normalizedCacheKey,{allowNumberedQuestions,attachments:message.attachments,at:message.at,messageId:message.messageId,preserveParagraphLineBreaks,previewUserMessage,role:message.role,text:message.text,value})}return{...message,...value}}function displayThinkingMessage(message=null){if(!message)return null;const text=normalizeThinkingMessageText(message.text);if(!text)return null;return{...message,text,displayAt:displayTime(message.at)}}function conversationAgentMessages(turn={}){if(Array.isArray(turn.messages))return turn.messages.filter(message=>[`assistant`,`commentary`,`thinking`].includes(String(message?.role||``).trim()));return[...Array.isArray(turn.thinking)?turn.thinking:[],...Array.isArray(turn.commentary)?turn.commentary:[],turn.assistant].filter(Boolean)}function conversationMessageKey(message={},index=0){return[String(message.messageId||``).trim(),String(message.role||``).trim(),String(message.at||``).trim(),index].join(`:`)}const displayEntries=computed(()=>{const candidates=[];for(const[index,turn]of props.turns.entries()){const turnId=String(turn.turnId||index+1);const userDelivery=turn.user&&turn.system?.delivery&&turn.system.delivery.messageId===turn.user.messageId?turn.system:null;const messages=[turn.system&&!userDelivery&&{...turn.system,role:`system`},turn.user&&{...turn.user,role:`user`},...conversationAgentMessages(turn)].filter(Boolean);for(const[messageIndex,message]of messages.entries()){const role=String(message.role||``).trim();const key=`${turnId}:${conversationMessageKey(message,messageIndex)}`;const displayed=role===`thinking`?displayThinkingMessage(message):displayMessage(message,{allowNumberedQuestions:role!==`user`&&role!==`system`,preserveParagraphLineBreaks:role===`user`,previewUserMessage:role===`user`},key);if(!displayed)continue;candidates.push({key,role,turn:{...turn,turnId},message:displayed,sortAt:turn.optimistic&&turn.optimistic.status!==`accepted`&&turn.optimistic.id===message.messageId?NaN:Date.parse(message.at),delivery:role===`user`?userDelivery:null})}}const dated=candidates.filter(entry=>Number.isFinite(entry.sortAt)).sort((a,b)=>a.sortAt-b.sortAt)[Symbol.iterator]();const entries=[];for(const candidate of candidates){const entry=Number.isFinite(candidate.sortAt)?dated.next().value:candidate;const previous=entries.at(-1);if(entry.role===`thinking`&&previous?.role===`thinking`)previous.messages.push({...entry.message,key:entry.key});else entries.push({...entry,...entry.role===`thinking`?{messages:[{...entry.message,key:entry.key}]}:{}})}for(const[index,entry]of entries.entries())if(entry.role===`thinking`)entry.key=`progress:${entries[index+1]?.key||`tail`}`;return entries});function handleLongTextLinkClick(payload){emit(`link-click`,payload)}function userMessageCollapsible(message=null){return Array.isArray(message?.previewBlocks)}function userMessageExpanded(turn={}){return expandedUserMessages.value.has(String(turn.turnId||``))}function toggleExpandedKey(expandedKeys,key){const next=new Set(expandedKeys.value);if(next.has(key))next.delete(key);else next.add(key);expandedKeys.value=next}function toggleUserMessage(turn={}){const key=String(turn.turnId||``);if(!key)return;toggleExpandedKey(expandedUserMessages,key)}const loadingIndicatorVisible=computed(()=>Boolean(props.loading&&!displayEntries.value.length));const initialScrollPending=computed(()=>Boolean(props.visible&&displayEntries.value.length&&!initialScrollSettled.value));function messageScrollKey(message=null){if(!message)return`empty`;return[message.messageId||``,message.role||``,message.at||``,String(message.text||``)].join(`/`)}const timelineScrollTrigger=computed(()=>[loadingIndicatorVisible.value?`loading`:`ready`,displayEntries.value.length?`has-messages`:`empty`,props.scrollKey].join(`:`));const latestRenderedTailKey=computed(()=>{const entry=displayEntries.value.at(-1);if(!entry)return``;return[entry.key,isWorking.value,entry.role===`thinking`?entry.messages.map(messageScrollKey).join(`+`):messageScrollKey(entry.message),entry.turn.optimistic?.status||``,entry.turn.optimistic?.error||``].join(`:`)});const autoScrollEnabled=computed(()=>Boolean(props.visible&&followingLatest.value));const{clearScheduledScrolls,scrollAfterLayout:scrollToLatestMessage,scrollNow:scrollToLatestMessageNow}=useScrollToBottom({anchor:bottomElement,enabled:autoScrollEnabled,scrollAnchorIntoView:false,target:bodyElement});function clearUserScrollIntent(){if(userScrollIntentTimer&&typeof window!==`undefined`&&typeof window.clearTimeout===`function`)window.clearTimeout(userScrollIntentTimer);userScrollIntentTimer=null;userScrollIntent.value=false}function resumePendingTailFollow(){const shouldResume=pendingTailFollow&&followingLatest.value;pendingTailFollow=false;if(shouldResume)queueLiveBottomScroll()}function markUserScrollIntent(){retainedReaderScrollSnapshot=null;userScrollIntent.value=true;clearLiveBottomScroll();clearScheduledScrolls();if(userScrollIntentTimer&&typeof window!==`undefined`&&typeof window.clearTimeout===`function`)window.clearTimeout(userScrollIntentTimer);if(typeof window===`undefined`||typeof window.setTimeout!==`function`)return;userScrollIntentTimer=window.setTimeout(()=>{userScrollIntentTimer=null;userScrollIntent.value=false;resumePendingTailFollow()},USER_SCROLL_INTENT_RESET_MS)}function markKeyboardScrollIntent(event={}){if(!KEYBOARD_SCROLL_KEYS.has(String(event.key||``))||event.defaultPrevented)return;const target=event.target;const tagName=String(target?.tagName||``).toLowerCase();if(target?.isContentEditable||[`input`,`select`,`textarea`].includes(tagName)||[` `,`Spacebar`].includes(event.key)&&[`a`,`button`].includes(tagName))return;markUserScrollIntent()}function scrollToLatestMessageAfterLayout({behavior=`auto`,force=false}={}){if(force){retainedReaderScrollSnapshot=null;followingLatest.value=true;clearUserScrollIntent()}return scrollToLatestMessage({behavior})}function queueInitialBottomScroll(){const version=initialScrollVersion+1;initialScrollVersion=version;initialScrollSettled.value=false;if(props.retainWhenHidden&&!props.visible)return;scrollToLatestMessageAfterLayout({behavior:`auto`,force:true}).finally(()=>{if(initialScrollVersion===version)initialScrollSettled.value=true})}function queueLiveBottomScroll({force=false}={}){if(userScrollIntent.value&&!force){pendingTailFollow=true;return}if(force){retainedReaderScrollSnapshot=null;pendingTailFollow=false;followingLatest.value=true;clearUserScrollIntent()}if(props.retainWhenHidden&&!props.visible)return;if(liveScrollFrame)return;if(typeof window===`undefined`||typeof window.requestAnimationFrame!==`function`){scrollToLatestMessageAfterLayout({behavior:`auto`});return}liveScrollFrame=window.requestAnimationFrame(()=>{liveScrollFrame=0;scrollToLatestMessageNow({behavior:`auto`})})}function clearLiveBottomScroll(){if(liveScrollFrame&&typeof window!==`undefined`&&typeof window.cancelAnimationFrame===`function`)window.cancelAnimationFrame(liveScrollFrame);liveScrollFrame=0}function updateLatestFollowFromScroll(event={}){if(props.retainWhenHidden&&!props.visible)return;const target=event?.currentTarget||bodyElement.value;if(retainedReaderScrollSnapshot?.restoring){previousScrollTop=target?.scrollTop||0;return}const scrollTop=target?.scrollTop||0;const scrolledUp=scrollTop<previousScrollTop;previousScrollTop=scrollTop;if(loadMoreScrollSnapshot&&!loadMoreScrollSnapshot.completed){loadMoreScrollSnapshot.scrollTop=scrollTop;loadMoreScrollSnapshot.anchor=visibleHistoryAnchor(target);loadMoreScrollSnapshot.scrollHeight=target.scrollHeight}const shouldFollow=scrollElementNearBottom(target);if(!shouldFollow&&!userScrollIntent.value&&followingLatest.value)return;followingLatest.value=shouldFollow;if(shouldFollow){clearUserScrollIntent();resumePendingTailFollow();return}clearLiveBottomScroll();clearScheduledScrolls();if(scrolledUp&&initialScrollSettled.value&&scrollTop<=LOAD_MORE_THRESHOLD_PX&&!props.loadMoreError)requestLoadMore()}function visibleHistoryAnchor(element){const top=element.getBoundingClientRect().top;for(const turn of element.querySelectorAll(`.assistant-transcript__turn`)){const bounds=turn.getBoundingClientRect();if(bounds.bottom>top)return{element:turn,offset:bounds.top-top}}return null}async function restoreRetainedReaderScroll(){const snapshot=retainedReaderScrollSnapshot;snapshot.restoring=true;await nextTick();for(let pass=0;pass<2;pass+=1){const element=bodyElement.value;if(retainedReaderScrollSnapshot!==snapshot||element!==snapshot.body||snapshot.scrollKey!==props.scrollKey||!props.retainWhenHidden||!props.visible||followingLatest.value||loadMoreScrollSnapshot){if(retainedReaderScrollSnapshot===snapshot)retainedReaderScrollSnapshot=null;return}const anchor=snapshot.anchor;if(anchor&&element.contains(anchor.element)){const offset=anchor.element.getBoundingClientRect().top-element.getBoundingClientRect().top;previousScrollTop=element.scrollTop+offset-anchor.offset}else previousScrollTop=snapshot.scrollTop+(element.scrollHeight-snapshot.scrollHeight);element.scrollTop=previousScrollTop;if(pass===0&&typeof window!==`undefined`&&typeof window.requestAnimationFrame===`function`)await new Promise(resolve=>window.requestAnimationFrame(()=>window.requestAnimationFrame(resolve)))}if(retainedReaderScrollSnapshot===snapshot)retainedReaderScrollSnapshot=null}function requestLoadMore(){if(props.retainWhenHidden&&!props.visible||!props.hasMoreBefore||props.loadingMore||loadMoreScrollSnapshot)return;followingLatest.value=false;pendingTailFollow=false;markUserScrollIntent();const element=bodyElement.value;const version=loadMoreRequestVersion+1;loadMoreRequestVersion=version;loadMoreScrollSnapshot=element?{anchor:visibleHistoryAnchor(element),scrollHeight:element.scrollHeight,scrollKey:props.scrollKey,scrollTop:element.scrollTop,version}:null;emit(`load-more`,{complete:({changed=false}={})=>{completeLoadMoreRequest(version,changed)}})}function clearLoadMoreScrollSnapshot(){loadMoreRequestVersion+=1;loadMoreScrollSnapshot=null}async function completeLoadMoreRequest(version,changed){const snapshot=loadMoreScrollSnapshot;if(!snapshot||snapshot.version!==version)return;if(!changed||snapshot.scrollKey!==props.scrollKey){clearLoadMoreScrollSnapshot();return}snapshot.completed=true;await nextTick();if(loadMoreScrollSnapshot?.version!==version)return;const passes=props.retainWhenHidden?2:1;for(let pass=0;pass<passes;pass+=1){if(props.retainWhenHidden&&!props.visible||loadMoreScrollSnapshot?.version!==version||snapshot.scrollKey!==props.scrollKey)return;const element=bodyElement.value;if(element){const anchor=snapshot.anchor;if(anchor&&element.contains(anchor.element)){const offset=anchor.element.getBoundingClientRect().top-element.getBoundingClientRect().top;previousScrollTop=element.scrollTop+offset-anchor.offset}else previousScrollTop=snapshot.scrollTop+(element.scrollHeight-snapshot.scrollHeight);element.scrollTop=previousScrollTop}if(pass+1<passes&&typeof window!==`undefined`&&typeof window.requestAnimationFrame===`function`)await new Promise(resolve=>window.requestAnimationFrame(()=>window.requestAnimationFrame(resolve)))}clearLoadMoreScrollSnapshot()}onBeforeUnmount(()=>{retainedReaderScrollSnapshot=null;clearLiveBottomScroll();clearUserScrollIntent();clearLoadMoreScrollSnapshot()});watch(()=>props.scrollKey,()=>{expandedUserMessages.value=new Set;displayMessageCache.clear()});watch(()=>[timelineScrollTrigger.value,latestRenderedTailKey.value],([timelineKey,value],[previousTimelineKey,previous]=[])=>{if(timelineKey!==previousTimelineKey)return;if(!value||value===previous)return;queueLiveBottomScroll({force:false})},{flush:`post`});watch(()=>[props.scrollKey,props.followLatestKey],([scrollKey,value],[previousScrollKey,previous]=[])=>{if(scrollKey!==previousScrollKey||value===previous)return;queueLiveBottomScroll({force:true})},{flush:`post`});watch(timelineScrollTrigger,()=>{retainedReaderScrollSnapshot=null;clearLoadMoreScrollSnapshot();queueInitialBottomScroll()},{flush:`post`,immediate:true});watch(()=>props.error,()=>{if(followingLatest.value)queueLiveBottomScroll()},{flush:`post`});watch(()=>props.visible,visible=>{if(visible)return;retainedReaderScrollSnapshot=null;const element=bodyElement.value;if(props.retainWhenHidden&&initialScrollSettled.value&&!followingLatest.value&&!loadMoreScrollSnapshot&&element?.clientHeight>0)retainedReaderScrollSnapshot={anchor:visibleHistoryAnchor(element),body:element,scrollHeight:element.scrollHeight,scrollKey:props.scrollKey,scrollTop:element.scrollTop}},{flush:`sync`});watch(()=>props.visible,visible=>{if(props.retainWhenHidden){if(!visible){clearLiveBottomScroll();clearScheduledScrolls();clearUserScrollIntent();initialScrollVersion+=1}else if(loadMoreScrollSnapshot?.completed)completeLoadMoreRequest(loadMoreScrollSnapshot.version,true);else if(!initialScrollSettled.value)queueInitialBottomScroll();else if(retainedReaderScrollSnapshot)restoreRetainedReaderScroll();else queueLiveBottomScroll();return}clearLoadMoreScrollSnapshot();if(visible)queueLiveBottomScroll({force:true})},{flush:`post`});return(_ctx,_cache)=>{return __props.visible||__props.retainWhenHidden?withDirectives((openBlock(),createElementBlock(`section`,{key:0,class:normalizeClass([`assistant-transcript`,[`assistant-transcript--${__props.variant}`,{"assistant-transcript--retained":__props.retainWhenHidden,"assistant-transcript--error":__props.error}]]),"aria-label":`Conversation history`},[__props.reloadable?(openBlock(),createBlock(VBtn,{key:0,"aria-label":__props.reloading?`Reloading chat`:`Reload chat`,class:`assistant-transcript__reload`,disabled:__props.reloading,icon:unref(mdiRefresh),size:`x-small`,title:__props.reloading?`Reloading chat`:`Reload chat`,type:`button`,variant:`text`,onClick:_cache[0]||(_cache[0]=$event=>emit(`reload`))},null,8,[`aria-label`,`disabled`,`icon`,`title`])):createCommentVNode(``,true),loadingIndicatorVisible.value&&!__props.reloadable?(openBlock(),createBlock(VSkeletonLoader,{key:1,"aria-label":`Loading conversation`,class:`assistant-transcript__loading-skeleton`,type:`list-item-avatar-two-line@3`})):createCommentVNode(``,true),initialScrollPending.value?(openBlock(),createElementBlock(`div`,_hoisted_1$9,[createVNode(VSkeletonLoader,{"aria-label":`Preparing conversation`,class:`assistant-transcript__settling-skeleton`,type:`list-item-avatar-two-line@3`})])):createCommentVNode(``,true),__props.error?(openBlock(),createBlock(VAlert,{key:3,class:`assistant-transcript__error`,icon:false,density:`compact`,type:`warning`,variant:`tonal`},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_2$9,[__props.errorReloadable&&!__props.reloadable?(openBlock(),createBlock(VBtn,{key:0,disabled:__props.reloading,"min-height":32,size:`small`,"aria-label":__props.reloading?`Reloading chat`:`Reload chat`,type:`button`,variant:`text`,onClick:_cache[1]||(_cache[1]=$event=>emit(`reload`))},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.reloading?`Reloading…`:`Reload chat`),1)]),_:1},8,[`disabled`,`aria-label`])):createCommentVNode(``,true),createBaseVNode(`span`,null,toDisplayString(__props.error),1)])]),_:1})):createCommentVNode(``,true),createBaseVNode(`div`,{ref_key:`bodyElement`,ref:bodyElement,"aria-label":`Conversation messages`,class:normalizeClass([`assistant-transcript__body`,{"assistant-transcript__body--settling":initialScrollPending.value}]),tabindex:`0`,onKeydownCapture:markKeyboardScrollIntent,onPointerdown:withModifiers(markUserScrollIntent,[`self`]),onScrollPassive:updateLatestFollowFromScroll,onTouchmovePassive:markUserScrollIntent,onWheelPassive:markUserScrollIntent},[__props.welcomeMessage?(openBlock(),createElementBlock(`div`,_hoisted_3$7,[createBaseVNode(`div`,_hoisted_4$6,[createBaseVNode(`span`,_hoisted_5$6,[createVNode(VIcon,{icon:unref(mdiRobotOutline),size:`16`},null,8,[`icon`])]),createBaseVNode(`div`,_hoisted_6$4,[createBaseVNode(`span`,null,toDisplayString(__props.assistantLabel),1)])]),renderSlot(_ctx.$slots,`welcome`,{},()=>[createBaseVNode(`p`,null,toDisplayString(__props.welcomeMessage),1)],true)])):createCommentVNode(``,true),__props.hasMoreBefore||__props.loadingMore||__props.loadMoreError?(openBlock(),createElementBlock(`div`,_hoisted_7$4,[createVNode(VBtn,{color:`primary`,disabled:__props.loadingMore||!__props.hasMoreBefore,size:`x-small`,type:`button`,variant:`tonal`,onClick:requestLoadMore},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.loadingMore?`Loading older messages…`:`Load older messages`),1)]),_:1},8,[`disabled`]),__props.loadMoreError?(openBlock(),createElementBlock(`div`,_hoisted_8$4,toDisplayString(__props.loadMoreError),1)):createCommentVNode(``,true)])):createCommentVNode(``,true),(openBlock(true),createElementBlock(Fragment,null,renderList(displayEntries.value,entry=>{return openBlock(),createElementBlock(`article`,{key:entry.key,class:`assistant-transcript__turn`},[entry.role===`system`?(openBlock(),createElementBlock(`div`,_hoisted_9$4,[createVNode(VIcon,{class:`assistant-transcript__system-icon`,icon:unref(mdiInformationOutline),size:`15`},null,8,[`icon`]),createBaseVNode(`div`,_hoisted_10$2,[createBaseVNode(`div`,_hoisted_11$2,[createBaseVNode(`span`,null,toDisplayString(__props.systemLabel),1),entry.message.displayAt?(openBlock(),createElementBlock(`time`,_hoisted_12$2,toDisplayString(entry.message.displayAt),1)):createCommentVNode(``,true)]),renderSlot(_ctx.$slots,`system-message`,{message:entry.message},()=>[createVNode(_sfc_main$11,{message:entry.message,onCheckDelivery:_cache[2]||(_cache[2]=$event=>emit(`check-delivery`,$event)),onLinkClick:handleLongTextLinkClick},null,8,[`message`])],true)])])):entry.role===`user`?(openBlock(),createElementBlock(`div`,_hoisted_13$2,[createBaseVNode(`div`,{class:normalizeClass([`assistant-transcript__message assistant-transcript__message--user`,{"assistant-transcript__message--pending":entry.turn.optimistic?.status===`pending`,"assistant-transcript__message--failed":entry.turn.optimistic?.status===`failed`}])},[createBaseVNode(`div`,_hoisted_14$1,[entry.turn.preview&&previewForTurn(entry.turn)?.actions?.editing?(openBlock(),createBlock(VTextarea,{key:0,class:`assistant-transcript__preview-editor`,"model-value":previewForTurn(entry.turn).text,label:`Review your message`,disabled:!previewForTurn(entry.turn).actions.canEdit,density:`compact`,rows:1,"max-rows":2,"auto-grow":``,"hide-details":``,"onUpdate:modelValue":$event=>previewForTurn(entry.turn).actions.update(entry.turn.turnId,$event)},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`])):__props.userMessageFormat===`plain`?(openBlock(),createElementBlock(`p`,_hoisted_15,toDisplayString(userMessageExpanded(entry.turn)?entry.message.text:userMessagePreviewText(entry.message.text)||entry.message.text),1)):(openBlock(),createBlock(LongTextPreviewBlocks_default,{key:2,blocks:userMessageExpanded(entry.turn)?entry.message.blocks:entry.message.previewBlocks||entry.message.blocks,onLinkClick:handleLongTextLinkClick},null,8,[`blocks`]))]),userMessageCollapsible(entry.message)?(openBlock(),createElementBlock(`button`,{key:0,"aria-expanded":userMessageExpanded(entry.turn),class:`assistant-transcript__user-content-toggle`,type:`button`,onClick:$event=>toggleUserMessage(entry.turn)},toDisplayString(userMessageExpanded(entry.turn)?`Show less`:`Read more`),9,_hoisted_16)):createCommentVNode(``,true),renderSlot(_ctx.$slots,`attachments`,{items:entry.message.attachments,message:entry.message},()=>[createVNode(AssistantMessageAttachments_default,{attachments:entry.message.attachments||[]},null,8,[`attachments`])],true),entry.message.displayAt||entry.turn.optimistic?.status===`pending`?(openBlock(),createElementBlock(`div`,_hoisted_17,[entry.message.displayAt?(openBlock(),createElementBlock(`time`,_hoisted_18,toDisplayString(entry.message.displayAt),1)):createCommentVNode(``,true),entry.turn.optimistic?.status===`pending`?(openBlock(),createElementBlock(`span`,_hoisted_19,toDisplayString(entry.turn.optimistic.waiting?`Pending: ${entry.turn.optimistic.waiting}`:`Pending`),1)):createCommentVNode(``,true)])):createCommentVNode(``,true),renderSlot(_ctx.$slots,`user-message-actions`,{message:entry.message,turn:entry.turn},void 0,true),entry.delivery||entry.turn.optimistic?.status===`failed`?(openBlock(),createElementBlock(`div`,_hoisted_20,[createBaseVNode(`span`,_hoisted_21,toDisplayString(entry.delivery?entry.delivery.delivery.error||`Delivery unconfirmed.`:`Failed: ${entry.turn.optimistic.error||`Message could not be sent.`}`),1),!entry.turn.preview?(openBlock(),createElementBlock(`div`,_hoisted_22,[createVNode(VBtn,{class:`assistant-transcript__delivery-action`,color:`error`,size:`x-small`,type:`button`,variant:`text`,disabled:entry.delivery?.delivery.checking,"aria-label":entry.delivery?`Retry delivery check`:void 0,title:entry.delivery?entry.delivery.delivery.error||`Check delivery before resending.`:void 0,onClick:$event=>entry.delivery?emit(`check-delivery`,entry.delivery.delivery.messageId):emit(`resend-turn`,entry.turn.optimistic.id)},{default:withCtx(()=>[createTextVNode(toDisplayString(entry.delivery?.delivery.checking?`Checking…`:`Retry`),1)]),_:2},1032,[`disabled`,`aria-label`,`title`,`onClick`]),!entry.delivery||__props.cancellableDelivery?(openBlock(),createBlock(VBtn,{key:0,class:`assistant-transcript__delivery-action`,size:`x-small`,type:`button`,variant:`text`,onClick:$event=>emit(`cancel-turn`,entry.delivery?.delivery.messageId||entry.turn.optimistic.id)},{default:withCtx(()=>[..._cache[3]||(_cache[3]=[createTextVNode(` Cancel `,-1)])]),_:1},8,[`onClick`])):createCommentVNode(``,true),!entry.delivery?(openBlock(),createBlock(VBtn,{key:1,class:`assistant-transcript__delivery-action`,size:`x-small`,type:`button`,variant:`text`,onClick:$event=>emit(`edit-turn`,entry.turn.optimistic.id)},{default:withCtx(()=>[..._cache[4]||(_cache[4]=[createTextVNode(` Edit `,-1)])]),_:1},8,[`onClick`])):createCommentVNode(``,true)])):createCommentVNode(``,true)])):createCommentVNode(``,true)],2),createBaseVNode(`span`,_hoisted_23,[createVNode(VIcon,{icon:unref(mdiAccountOutline),size:`15`},null,8,[`icon`])])])):entry.role===`thinking`?(openBlock(),createBlock(AssistantProgress_default,{key:`${__props.scrollKey}:${entry.key}`,class:`assistant-transcript__thinking`,messages:entry.messages,pending:isWorking.value&&entry===displayEntries.value.at(-1),"preview-limit":__props.progressPreviewLimit,"aria-label":`${entry.turn.assistantLabel||__props.assistantLabel} progress`},null,8,[`messages`,`pending`,`preview-limit`,`aria-label`])):(openBlock(),createElementBlock(`div`,{key:3,class:`assistant-transcript__message-row assistant-transcript__message-row--assistant`,"data-message-role":entry.role},[createBaseVNode(`div`,_hoisted_25,[createBaseVNode(`span`,_hoisted_26,[createVNode(VIcon,{icon:unref(mdiRobotOutline),size:`16`},null,8,[`icon`])]),createBaseVNode(`div`,_hoisted_27,[createBaseVNode(`span`,{title:entry.message.assistantDetails||entry.turn.assistantDetails||void 0},toDisplayString(entry.message.assistantLabel||entry.turn.assistantLabel||__props.assistantLabel),9,_hoisted_28)])]),createBaseVNode(`div`,_hoisted_29,[entry.message.blocks.length?(openBlock(),createBlock(LongTextPreviewBlocks_default,{key:0,blocks:entry.message.blocks,onLinkClick:handleLongTextLinkClick},null,8,[`blocks`])):createCommentVNode(``,true),entry.message.questions.length?(openBlock(),createElementBlock(`ol`,_hoisted_30,[(openBlock(true),createElementBlock(Fragment,null,renderList(entry.message.questions,question=>{return openBlock(),createElementBlock(`li`,{key:question.name,class:`assistant-transcript__question`},[createBaseVNode(`span`,_hoisted_31,toDisplayString(question.number),1),createBaseVNode(`div`,_hoisted_32,[createBaseVNode(`span`,_hoisted_33,[createVNode(LongTextInlineParts_default,{text:question.label,onLinkClick:handleLongTextLinkClick},null,8,[`text`])]),question.choices.length?(openBlock(),createElementBlock(`ul`,_hoisted_34,[(openBlock(true),createElementBlock(Fragment,null,renderList(question.choices,choice=>{return openBlock(),createElementBlock(`li`,{key:choice.value},[createVNode(LongTextInlineParts_default,{text:choice.label,onLinkClick:handleLongTextLinkClick},null,8,[`text`]),choice.recommended?(openBlock(),createElementBlock(`span`,_hoisted_35,` · Recommended`)):createCommentVNode(``,true)])}),128))])):createCommentVNode(``,true)])])}),128))])):createCommentVNode(``,true),entry.message.outroBlocks.length?(openBlock(),createBlock(LongTextPreviewBlocks_default,{key:2,blocks:entry.message.outroBlocks,onLinkClick:handleLongTextLinkClick},null,8,[`blocks`])):createCommentVNode(``,true),renderSlot(_ctx.$slots,`message-actions`,{message:entry.message,turn:entry.turn},void 0,true)]),entry.message.displayAt?(openBlock(),createElementBlock(`div`,_hoisted_36,[createBaseVNode(`time`,null,toDisplayString(entry.message.displayAt),1)])):createCommentVNode(``,true)],8,_hoisted_24))])}),128)),createBaseVNode(`div`,{ref_key:`bottomElement`,ref:bottomElement,class:`assistant-transcript__bottom`,"aria-hidden":`true`},null,512)],34)],2)),[[vShow,__props.visible]]):createCommentVNode(``,true)}}};var AssistantTranscript_default=_plugin_vue_export_helper_default(_sfc_main$9,[[`__scopeId`,`data-v-f9b9283c`]]);var _hoisted_1$8={key:1,class:`assistant-prompt-input__input-start`};var _hoisted_2$8=[`aria-describedby`,`aria-label`,`disabled`,`placeholder`,`rows`,`value`];var _hoisted_3$6={key:2,class:`assistant-prompt-input__footer`};var _hoisted_4$5={key:0,class:`assistant-prompt-input__details`};var _hoisted_5$5={key:0,class:`assistant-prompt-input__hint`};var _sfc_main$8={__name:`AssistantPromptInput`,props:{submitOnModifierEnter:{type:Boolean,default:false},ariaLabel:{default:``,type:String},attachmentState:{default:()=>({canSubmit:true,count:0}),type:Object},dragging:{default:false,type:Boolean},autoGrow:{default:true,type:Boolean},disabled:{default:false,type:Boolean},describedBy:{default:``,type:String},errorMessages:{default:()=>[],type:[Array,String]},hint:{default:``,type:String},label:{default:``,type:String},modelValue:{default:``,type:String},persistentHint:{default:false,type:Boolean},placeholderAffectsHeight:{default:true,type:Boolean},placeholder:{default:``,type:String},rows:{default:4,type:[Number,String]},density:{default:`default`,type:String},submitOnEnter:{default:false,type:Boolean},submitEnabled:{default:true,type:Boolean},tabToSubmit:{default:false,type:Boolean},variant:{default:`outlined`,type:String}},emits:[`blur`,`escape`,`focus`,`input-activity`,`submit`,`tab-to-submit`,`update:modelValue`,`paste`],setup(__props,{expose:__expose,emit:__emit}){const emit=__emit;const props=__props;const textareaRef=ref(null);const textareaId=`assistant-prompt-${useId()}`;let resizeFrame=0;let resizeObserver=null;let preserveHeightForNextModelValueChange=false;const combinedErrorMessages=computed(()=>{return Array.isArray(props.errorMessages)?props.errorMessages:[props.errorMessages].filter(Boolean)});const hintVisible=computed(()=>Boolean(props.hint&&(props.persistentHint||combinedErrorMessages.value.length<1)));const detailsVisible=computed(()=>Boolean(combinedErrorMessages.value.length||hintVisible.value));const textareaAriaLabel=computed(()=>props.ariaLabel?props.ariaLabel:void 0);function resizeTextarea(){if(!props.autoGrow)return;const textarea=textareaRef.value;if(!textarea)return;if(!props.placeholderAffectsHeight&&!textarea.value)return;const style=window.getComputedStyle(textarea);const minHeight=Number.parseFloat(style.minHeight)||0;const maxHeight=Number.parseFloat(style.maxHeight)||Number.POSITIVE_INFINITY;textarea.style.height=`auto`;const contentHeight=Math.max(textarea.scrollHeight,minHeight);const targetHeight=Math.min(contentHeight,maxHeight);textarea.style.height=`${targetHeight}px`;textarea.style.overflowY=contentHeight>targetHeight+1?`auto`:`hidden`}function queueResizeTextarea(){if(!props.autoGrow||typeof window===`undefined`)return;if(resizeFrame)return;resizeFrame=window.requestAnimationFrame(()=>{resizeFrame=0;resizeTextarea()})}function preserveHeightForNextModelValue(){const textarea=textareaRef.value;if(!props.autoGrow||!textarea)return false;if(resizeFrame){window.cancelAnimationFrame(resizeFrame);resizeFrame=0}preserveHeightForNextModelValueChange=true;textarea.style.height=`${textarea.getBoundingClientRect().height}px`;textarea.style.overflowY=`auto`;return true}function handleTextareaInput(event={}){preserveHeightForNextModelValueChange=false;emit(`input-activity`);emit(`update:modelValue`,String(event?.target?.value||``));queueResizeTextarea()}function handleTextareaFocus(event={}){emit(`focus`,event)}function handleTextareaBlur(event={}){emit(`blur`,event)}function handleTextareaKeydown(event={}){if(props.disabled||event.isComposing)return;if(event.key===`Escape`){emit(`escape`,event);return}if(props.tabToSubmit&&props.submitEnabled&&String(props.modelValue||``).trim()&&props.attachmentState.canSubmit&&event.key===`Tab`&&!event.shiftKey&&!event.altKey&&!event.ctrlKey&&!event.metaKey){event.preventDefault();emit(`tab-to-submit`);return}if(props.submitOnModifierEnter&&event.key===`Enter`&&(event.ctrlKey||event.metaKey)&&!event.shiftKey&&!event.altKey&&!event.isComposing&&props.submitEnabled&&props.attachmentState.canSubmit){event.preventDefault();event.stopPropagation();emit(`submit`);return}if(event.key===`Enter`&&!props.submitOnEnter){event.stopPropagation();return}if(!props.submitOnEnter||event.key!==`Enter`||event.shiftKey||event.altKey||event.ctrlKey||event.metaKey||event.isComposing||!props.submitEnabled||!props.attachmentState.canSubmit)return;event.preventDefault();emit(`submit`)}function focusTextarea(options={preventScroll:true}){textareaRef.value?.focus?.(options)}onMounted(()=>{queueResizeTextarea();let lastWidth=0;resizeObserver=new ResizeObserver(([entry])=>{const width=entry.contentRect.width;if(width!==lastWidth){lastWidth=width;queueResizeTextarea()}});resizeObserver.observe(textareaRef.value)});onBeforeUnmount(()=>{resizeObserver?.disconnect();if(resizeFrame&&typeof window!==`undefined`){window.cancelAnimationFrame(resizeFrame);resizeFrame=0}});watch(()=>[props.autoGrow,props.modelValue,props.placeholder,props.placeholderAffectsHeight,props.rows,props.density],(values,previousValues=[])=>{const modelValueChanged=values[1]!==previousValues[1];if(preserveHeightForNextModelValueChange&&modelValueChanged){preserveHeightForNextModelValueChange=false;return}queueResizeTextarea()},{flush:`post`});__expose({inputElement:textareaRef,focus:focusTextarea,preserveHeightForNextModelValue,queueResizeTextarea});return(_ctx,_cache)=>{return openBlock(),createElementBlock(`div`,{class:normalizeClass([`assistant-prompt-input`,{"assistant-prompt-input--compact":__props.density===`compact`,"assistant-prompt-input--dragging":__props.dragging,"assistant-prompt-input--has-attachments":__props.attachmentState.count,"assistant-prompt-input--has-footer":_ctx.$slots.footer,"assistant-prompt-input--has-input-start":_ctx.$slots[`input-start`]}])},[renderSlot(_ctx.$slots,`attachments`,{},void 0,true),createBaseVNode(`div`,{class:normalizeClass([`assistant-prompt-input__field`,{"assistant-prompt-input__field--disabled":__props.disabled}])},[__props.label?(openBlock(),createElementBlock(`label`,{key:0,class:`assistant-prompt-input__label`,for:textareaId},toDisplayString(__props.label),1)):createCommentVNode(``,true),_ctx.$slots[`input-start`]?(openBlock(),createElementBlock(`div`,_hoisted_1$8,[renderSlot(_ctx.$slots,`input-start`,{},void 0,true)])):createCommentVNode(``,true),createBaseVNode(`textarea`,{id:textareaId,ref_key:`textareaRef`,ref:textareaRef,"aria-describedby":__props.describedBy||void 0,"aria-label":textareaAriaLabel.value,class:`assistant-prompt-input__input`,disabled:__props.disabled,placeholder:__props.placeholder,rows:__props.rows,value:__props.modelValue,onBlur:handleTextareaBlur,onFocus:handleTextareaFocus,onInput:handleTextareaInput,onKeydown:handleTextareaKeydown,onPaste:_cache[0]||(_cache[0]=$event=>emit(`paste`,$event))},null,40,_hoisted_2$8),_ctx.$slots.footer?(openBlock(),createElementBlock(`div`,_hoisted_3$6,[renderSlot(_ctx.$slots,`footer`,{attachmentState:__props.attachmentState},void 0,true)])):createCommentVNode(``,true)],2),detailsVisible.value?(openBlock(),createElementBlock(`div`,_hoisted_4$5,[(openBlock(true),createElementBlock(Fragment,null,renderList(combinedErrorMessages.value,message=>{return openBlock(),createElementBlock(`div`,{key:message,class:`assistant-prompt-input__error`},toDisplayString(message),1)}),128)),hintVisible.value?(openBlock(),createElementBlock(`div`,_hoisted_5$5,toDisplayString(__props.hint),1)):createCommentVNode(``,true)])):createCommentVNode(``,true)],2)}}};var AssistantPromptInput_default=_plugin_vue_export_helper_default(_sfc_main$8,[[`__scopeId`,`data-v-57d35b92`]]);var _hoisted_1$7={class:`assistant-composer-actions__tools`};var _hoisted_2$7={class:`assistant-composer-actions__delivery`};var _sfc_main$7={__name:`AssistantComposerActions`,props:{state:{type:Object,required:true}},emits:[`submit`,`stop`],setup(__props,{expose:__expose,emit:__emit}){const emit=__emit;const sendButton=ref(null);__expose({focus(){(sendButton.value?.$el||sendButton.value)?.focus?.()}});return(_ctx,_cache)=>{return openBlock(),createElementBlock(`div`,{class:normalizeClass([`assistant-composer-actions`,{"assistant-composer-actions--compact":__props.state.density===`compact`}])},[createBaseVNode(`div`,_hoisted_1$7,[renderSlot(_ctx.$slots,`default`,{},void 0,true)]),createBaseVNode(`div`,_hoisted_2$7,[__props.state.canStop?(openBlock(),createBlock(VBtn,{key:0,color:`error`,disabled:__props.state.stopDisabled||__props.state.stopPending,"aria-busy":__props.state.stopPending?`true`:void 0,"prepend-icon":unref(mdiStopCircleOutline),size:`small`,variant:`tonal`,onClick:_cache[0]||(_cache[0]=$event=>emit(`stop`))},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.state.stopPending?`Stopping…`:`Stop`),1)]),_:1},8,[`disabled`,`aria-busy`,`prepend-icon`])):createCommentVNode(``,true),createVNode(VBtn,{ref_key:`sendButton`,ref:sendButton,class:`assistant-composer-actions__send`,color:`primary`,disabled:!__props.state.canSend,"aria-busy":__props.state.pending&&!__props.state.canSend?`true`:void 0,"aria-label":__props.state.submitAriaLabel||__props.state.submitLabel||`Send message`,title:__props.state.submitTitle,"prepend-icon":__props.state.submitIcon||unref(`M2,21L23,12L2,3V10L17,12L2,14V21Z`),size:`small`,variant:`flat`,onClick:_cache[1]||(_cache[1]=$event=>emit(`submit`))},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.state.submitLabel||(__props.state.pending&&!__props.state.canSend?`Sending…`:`Send`)),1)]),_:1},8,[`disabled`,`aria-busy`,`aria-label`,`title`,`prepend-icon`])]),renderSlot(_ctx.$slots,`feedback`,{},void 0,true)],2)}}};var AssistantComposerActions_default=_plugin_vue_export_helper_default(_sfc_main$7,[[`__scopeId`,`data-v-41f59847`]]);var _hoisted_1$6=[`id`];var _hoisted_2$6={key:0,"aria-hidden":`true`,class:`assistant-composer-support__assistant-status`};var _hoisted_3$5={key:0,class:`assistant-composer-support__assistant-mark`};var _hoisted_4$4={key:0,"aria-hidden":`true`,class:`assistant-composer-support__loading`};var _hoisted_5$4={key:1,class:`assistant-composer-support__options`,"aria-label":`Suggested prompts`,"aria-orientation":`horizontal`,role:`group`};var _sfc_main$6={__name:`AssistantComposerSupport`,props:{activity:{type:Object,default:()=>({})},loading:{default:false,type:Boolean},statusId:{default:``,type:String},suggestions:{default:()=>[],type:Array}},emits:[`dismiss`,`focusout`,`preview`,`select`],setup(__props){const props=__props;const mode=computed(()=>{if(String(props.activity.label||``).trim())return`assistant`;if(props.loading)return`loading`;return props.suggestions.length>0?`ready`:`hidden`});const statusAnnouncement=computed(()=>{if(mode.value===`assistant`)return String(props.activity.label||``).trim();if(mode.value===`loading`)return`Thinking of a few ideas.`;if(mode.value===`ready`)return`${props.suggestions.length} suggested prompts are available before the message controls.`;return``});return(_ctx,_cache)=>{return openBlock(),createElementBlock(`section`,{class:normalizeClass([`assistant-composer-support`,`assistant-composer-support--${mode.value}`]),"data-assistant-composer-support":``,onFocusout:_cache[3]||(_cache[3]=$event=>_ctx.$emit(`focusout`,$event)),onKeydown:_cache[4]||(_cache[4]=withKeys(withModifiers($event=>_ctx.$emit(`dismiss`),[`stop`,`prevent`]),[`esc`]))},[createBaseVNode(`span`,{id:__props.statusId||void 0,"aria-atomic":`true`,"aria-live":`polite`,class:`assistant-composer-support__sr-status`,role:`status`},toDisplayString(statusAnnouncement.value),9,_hoisted_1$6),mode.value===`assistant`?(openBlock(),createElementBlock(`div`,_hoisted_2$6,[renderSlot(_ctx.$slots,`activity`,{activity:__props.activity},()=>[__props.activity.animated!==false?(openBlock(),createElementBlock(`span`,_hoisted_3$5)):createCommentVNode(``,true),createBaseVNode(`span`,null,toDisplayString(__props.activity.label),1)],true)])):mode.value!==`hidden`?(openBlock(),createElementBlock(Fragment,{key:1},[createVNode(VIcon,{"aria-hidden":`true`,class:`assistant-composer-support__marker`,icon:unref(mdiLightbulbOnOutline),size:`16`},null,8,[`icon`]),mode.value===`loading`?(openBlock(),createElementBlock(`div`,_hoisted_4$4,[..._cache[5]||(_cache[5]=[createBaseVNode(`span`,null,`Thinking of a few ideas`,-1)])])):(openBlock(),createElementBlock(`div`,_hoisted_5$4,[(openBlock(true),createElementBlock(Fragment,null,renderList(__props.suggestions,suggestion=>{return openBlock(),createBlock(VBtn,{key:suggestion.prompt,"aria-label":`Use suggestion: ${suggestion.prompt}`,class:`assistant-composer-support__option`,rounded:`xl`,size:`small`,type:`button`,variant:`tonal`,onBlur:_cache[0]||(_cache[0]=$event=>_ctx.$emit(`preview`,null)),onMousedown:_cache[1]||(_cache[1]=withModifiers(()=>{},[`prevent`])),onFocus:$event=>_ctx.$emit(`preview`,suggestion),onMouseenter:$event=>_ctx.$emit(`preview`,suggestion),onMouseleave:_cache[2]||(_cache[2]=$event=>_ctx.$emit(`preview`,null)),onClick:$event=>_ctx.$emit(`select`,suggestion)},{default:withCtx(()=>[createBaseVNode(`span`,null,toDisplayString(suggestion.label),1)]),_:2},1032,[`aria-label`,`onFocus`,`onMouseenter`,`onClick`])}),128))]))],64)):createCommentVNode(``,true)],34)}}};var AssistantComposerSupport_default=_plugin_vue_export_helper_default(_sfc_main$6,[[`__scopeId`,`data-v-2b078f41`]]);var _hoisted_1$5={class:`assistant-goal__label`};var _hoisted_2$5={key:1,class:`assistant-goal__elapsed`,"aria-hidden":`true`};var _hoisted_3$4={role:`status`};var _hoisted_4$3={key:3,class:`my-2`};var _hoisted_5$3={key:4,class:`text-body-small my-2`};var _hoisted_6$3={key:5,class:`text-body-small my-2`};var _hoisted_7$3={key:6,class:`text-body-small mt-2`};var _hoisted_8$3={key:7,class:`text-body-small mt-2`};var _hoisted_9$3={key:9,role:`alert`,class:`text-error text-body-small mt-2`};var _sfc_main$5={__name:`AssistantGoalControl`,props:{state:{type:Object,default:null}},setup(__props){const props=__props;const open=ref(false);const objective=ref(``);const tokenBudget=ref(``);const now=ref(Date.now());const goal=computed(()=>props.state?.loading||props.state?.available===false?null:props.state?.goal);const running=computed(()=>goal.value?.status===`active`);const working=computed(()=>running.value&&props.state?.working===true);const label=computed(()=>props.state?.loading?`Loading goal…`:props.state?.available===false?`Goal unavailable`:{active:`Goal running`,paused:`Goal paused`,blocked:`Goal blocked`,usageLimited:`Goal waiting for allowance`,budgetLimited:`Goal budget reached`,complete:`Goal complete`}[goal.value?.status]||`Set goal`);const nativeElapsed=computed(()=>Number.isFinite(goal.value?.elapsedSeconds));const createdAt=computed(()=>typeof goal.value?.createdAt===`string`?Date.parse(goal.value.createdAt):NaN);const elapsedLabel=computed(()=>nativeElapsed.value?`Running time`:`Elapsed since goal started (including pauses)`);const clockRunning=computed(()=>nativeElapsed.value?running.value&&Number.isFinite(goal.value?.sampledAt):Boolean(goal.value&&goal.value.status!==`complete`&&Number.isFinite(createdAt.value)));const elapsed=computed(()=>{let secondsUsed;if(nativeElapsed.value){const sinceSample=running.value&&Number.isFinite(goal.value.sampledAt)?Math.max(0,now.value-goal.value.sampledAt)/1e3:0;secondsUsed=goal.value.elapsedSeconds+sinceSample}else{const end=goal.value?.status===`complete`?goal.value.sampledAt:now.value;if(!Number.isFinite(createdAt.value)||!Number.isFinite(end))return``;secondsUsed=(end-createdAt.value)/1e3}const total=Math.max(0,Math.floor(secondsUsed));const seconds=String(total%60).padStart(2,`0`);const minutes=Math.floor(total/60);return minutes<60?`${minutes}:${seconds}`:`${Math.floor(minutes/60)}:${String(minutes%60).padStart(2,`0`)}:${seconds}`});const canSet=computed(()=>!props.state?.loading&&props.state?.available!==false&&typeof props.state?.set===`function`&&(!goal.value||goal.value.status===`complete`));const validBudget=computed(()=>props.state?.tokenBudgetSupported===false||tokenBudget.value===``||Number.isSafeInteger(Number(tokenBudget.value))&&Number(tokenBudget.value)>0);let timer;onMounted(()=>watch(()=>[props.state?.enabled,clockRunning.value,goal.value?.elapsedSeconds,goal.value?.sampledAt,createdAt.value],()=>{clearInterval(timer);now.value=Date.now();if(props.state?.enabled!==false&&clockRunning.value)timer=setInterval(()=>{now.value=Date.now()},1e3)},{immediate:true,flush:`sync`}));onScopeDispose(()=>clearInterval(timer));watch(()=>props.state?.enabled,enabled=>{if(enabled===false)open.value=false});async function setGoal(){if(!canSet.value||props.state.pending||!objective.value.trim()||!validBudget.value)return;const result=await props.state.set({objective:objective.value.trim(),...props.state.tokenBudgetSupported===false||tokenBudget.value===``?{}:{tokenBudget:Number(tokenBudget.value)}});if(result!==false&&result?.ok!==false&&!props.state.error){objective.value=``;tokenBudget.value=``;open.value=false}}return(_ctx,_cache)=>{return __props.state&&__props.state.enabled!==false?(openBlock(),createBlock(VMenu,{key:0,modelValue:open.value,"onUpdate:modelValue":_cache[5]||(_cache[5]=$event=>open.value=$event),location:`top`,"close-on-content-click":false},{activator:withCtx(({props:menuProps})=>[createVNode(VBtn,mergeProps(menuProps,{class:`assistant-goal`,size:`small`,variant:`text`,"aria-label":label.value,title:[label.value,elapsed.value&&`${elapsedLabel.value}: ${elapsed.value}`,goal.value?.objective].filter(Boolean).join(`
|
|
17
17
|
`)}),{default:withCtx(()=>[goal.value?(openBlock(),createElementBlock(`span`,{key:0,class:normalizeClass([`assistant-goal__light`,{"assistant-goal__light--running":running.value,"assistant-goal__light--working":working.value,"assistant-goal__light--paused":goal.value.status===`paused`}]),"aria-hidden":`true`},null,2)):createCommentVNode(``,true),createBaseVNode(`span`,_hoisted_1$5,toDisplayString(__props.state.loading?`Loading goal…`:__props.state.available===false?`Goal unavailable`:goal.value?`Goal`:`Set goal`),1),elapsed.value?(openBlock(),createElementBlock(`span`,_hoisted_2$5,toDisplayString(elapsed.value),1)):createCommentVNode(``,true)]),_:1},16,[`aria-label`,`title`])]),default:withCtx(()=>[createVNode(VCard,{class:`assistant-goal__details pa-3`,"max-width":`360`},{default:withCtx(()=>[createBaseVNode(`strong`,_hoisted_3$4,toDisplayString(label.value),1),(running.value||__props.state.pauseBlocked&&goal.value?.status===`blocked`)&&__props.state.pause?(openBlock(),createBlock(VBtn,{key:0,size:`small`,disabled:__props.state.pending,onClick:_cache[0]||(_cache[0]=$event=>__props.state.pause())},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.state.action===`pause`?`Pausing…`:`Pause goal`),1)]),_:1},8,[`disabled`])):createCommentVNode(``,true),[`paused`,`blocked`,`usageLimited`].includes(goal.value?.status)&&__props.state.resume?(openBlock(),createBlock(VBtn,{key:1,size:`small`,disabled:__props.state.pending,onClick:_cache[1]||(_cache[1]=$event=>__props.state.resume())},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.state.action===`resume`?`Resuming…`:`Resume goal`),1)]),_:1},8,[`disabled`])):createCommentVNode(``,true),goal.value&&goal.value.status!==`complete`&&__props.state.cancel?(openBlock(),createBlock(VBtn,{key:2,color:`error`,size:`small`,variant:`text`,disabled:__props.state.pending,onClick:_cache[2]||(_cache[2]=$event=>__props.state.cancel())},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.state.action===`cancel`?`Cancelling…`:`Cancel goal`),1)]),_:1},8,[`disabled`])):createCommentVNode(``,true),goal.value?(openBlock(),createElementBlock(`p`,_hoisted_4$3,toDisplayString(goal.value.objective),1)):createCommentVNode(``,true),goal.value?.reason?(openBlock(),createElementBlock(`p`,_hoisted_5$3,toDisplayString(goal.value.reason),1)):createCommentVNode(``,true),elapsed.value?(openBlock(),createElementBlock(`p`,_hoisted_6$3,toDisplayString(elapsedLabel.value)+`: `+toDisplayString(elapsed.value),1)):createCommentVNode(``,true),running.value||goal.value?.status===`paused`?(openBlock(),createElementBlock(`p`,_hoisted_7$3,toDisplayString(__props.state.pauseInterruptsTurn?`Pause stops the current turn and keeps the goal for later.`:`Pausing prevents further automatic turns. Use Stop to interrupt the current turn.`),1)):createCommentVNode(``,true),goal.value&&goal.value.status!==`complete`&&__props.state.cancel?(openBlock(),createElementBlock(`p`,_hoisted_8$3,toDisplayString(__props.state.cancelInterruptsTurn?`Cancel stops the current turn and clears the goal.`:`Cancel removes this goal. Use Stop to interrupt a turn already running.`),1)):createCommentVNode(``,true),canSet.value?(openBlock(),createElementBlock(`form`,{key:8,class:`assistant-goal__form mt-2`,onSubmit:withModifiers(setGoal,[`prevent`])},[createVNode(VTextarea,{modelValue:objective.value,"onUpdate:modelValue":_cache[3]||(_cache[3]=$event=>objective.value=$event),label:`Goal objective`,rows:`2`,"max-rows":`4`,maxlength:`4000`,"auto-grow":``,disabled:__props.state.pending,"hide-details":``},null,8,[`modelValue`,`disabled`]),__props.state.tokenBudgetSupported!==false?(openBlock(),createBlock(VTextField,{key:0,modelValue:tokenBudget.value,"onUpdate:modelValue":_cache[4]||(_cache[4]=$event=>tokenBudget.value=$event),label:`Token budget (optional)`,type:`number`,min:`1`,step:`1`,disabled:__props.state.pending,error:!validBudget.value,"hide-details":``},null,8,[`modelValue`,`disabled`,`error`])):createCommentVNode(``,true),createVNode(VBtn,{type:`submit`,size:`small`,disabled:__props.state.pending||!objective.value.trim()||!validBudget.value},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.state.action===`set`?`Starting…`:`Start goal`),1)]),_:1},8,[`disabled`])],32)):createCommentVNode(``,true),__props.state.error?(openBlock(),createElementBlock(`p`,_hoisted_9$3,toDisplayString(__props.state.error),1)):createCommentVNode(``,true),renderSlot(_ctx.$slots,`default`,{goal:goal.value},void 0,true)]),_:3})]),_:3},8,[`modelValue`])):createCommentVNode(``,true)}}};var AssistantGoalControl_default=_plugin_vue_export_helper_default(_sfc_main$5,[[`__scopeId`,`data-v-21334735`]]);var _hoisted_1$4=[`aria-busy`];var _hoisted_2$4={class:`assistant-attachment-queue__summary`};var _hoisted_3$3={class:`assistant-attachment-queue__limit`};var _hoisted_4$2={class:`assistant-attachment-queue__items`};var _hoisted_5$2={class:`assistant-attachment-queue__content`};var _hoisted_6$2={class:`assistant-attachment-queue__primary`};var _hoisted_7$2={class:`assistant-attachment-queue__size`};var _hoisted_8$2={class:`assistant-attachment-queue__secondary`};var _hoisted_9$2={key:0};var _hoisted_10$1={key:0,"aria-hidden":`true`,class:`assistant-attachment-queue__progress assistant-attachment-queue__progress--stationary rounded-pill`};var _hoisted_11$1={key:2,class:`assistant-attachment-queue__error`,role:`alert`};var _hoisted_12$1={class:`assistant-attachment-queue__actions`};var _hoisted_13$1={class:`assistant-attachment-queue__announcement`,"aria-atomic":`true`,"aria-live":`polite`,role:`status`};var _sfc_main$4={__name:`AssistantAttachmentQueue`,props:{previewEnabled:Boolean,items:{default:()=>[],type:Array},joined:{default:true,type:Boolean},maximumFiles:{default:10,type:Number}},emits:[`cancel`,`remove`,`retry`,`preview`,`focus-input`],setup(__props,{emit:__emit}){const emit=__emit;const props=__props;const activePhases=new Set([`queued`,`preparing`,`uploading`,`delivering`]);const queueRoot=ref(null);const reducedMotion=ref(false);const actionElements=new Map;let reducedMotionMediaQuery=null;const retainedItems=computed(()=>props.items.filter(item=>itemPhase(item)!==`cancelled`));const completedCount=computed(()=>props.items.filter(item=>itemPhase(item)===`ready`).length);const hasUnresolved=computed(()=>props.items.some(item=>activePhases.has(itemPhase(item))));const aggregatePercent=computed(()=>{if(!retainedItems.value.length)return 0;const totalSize=retainedItems.value.reduce((sum,item)=>sum+Math.max(0,Number(item.size)||0),0);if(retainedItems.value.some(item=>activePhases.has(itemPhase(item))&&itemPercent(item)===null))return null;if(totalSize<1)return Math.round(completedCount.value/retainedItems.value.length*100);const sent=retainedItems.value.reduce((sum,item)=>{if(itemPhase(item)===`ready`)return sum+Math.max(0,Number(item.size)||0);return sum+Math.min(Math.max(0,Number(item.bytesSent)||0),Math.max(0,Number(item.size)||0))},0);return Math.min(100,Math.max(0,Math.round(sent/totalSize*100)))});const aggregateLabel=computed(()=>{const total=retainedItems.value.length;const active=props.items.filter(item=>activePhases.has(itemPhase(item))).length;const failed=props.items.filter(item=>itemPhase(item)===`failed`).length;const cancelled=props.items.filter(item=>itemPhase(item)===`cancelled`).length;if(active)return aggregatePercent.value===null?`${completedCount.value} of ${total} ready · in progress`:`${completedCount.value} of ${total} ready · ${aggregatePercent.value}%`;if(failed)return`${completedCount.value} of ${total} ready · ${failed} ${failed===1?`needs`:`need`} attention`;if(cancelled)return`${completedCount.value} ready · ${cancelled} cancelled`;return`${completedCount.value} of ${total} ready`});const announcement=computed(()=>{const messages=[];const failed=props.items.filter(item=>itemPhase(item)===`failed`).length;if(failed)messages.push(`${attachmentCountLabel(failed)} ${failed===1?`needs`:`need`} attention.`);const active=props.items.filter(item=>activePhases.has(itemPhase(item))).length;if(active)messages.push(`${attachmentCountLabel(active)} ${active===1?`is`:`are`} in progress.`);const cancelled=props.items.filter(item=>itemPhase(item)===`cancelled`).length;if(cancelled)messages.push(`${attachmentCountLabel(cancelled)} cancelled.`);if(completedCount.value)messages.push(`${attachmentCountLabel(completedCount.value)} ready.`);return messages.join(` `)});function attachmentCountLabel(count=0){return`${count} attachment${count===1?``:`s`}`}function itemKey(item={}){return String(item.clientId||item.id||item.attachmentId||item.fileName||`attachment`)}function itemName(item={}){return String(item.fileName||item.file?.name||`attachment`)}function itemPhase(item={}){return String(item.phase||item.status||`queued`)}function itemPercent(item={}){if(itemPhase(item)===`ready`)return 100;if(itemPhase(item)===`delivering`)return 100;if(itemPhase(item)===`queued`)return 0;const progressValue=item.percent??item.progress;const directPercent=progressValue===null||progressValue===void 0||progressValue===``?null:Number(progressValue);if(directPercent!==null&&Number.isFinite(directPercent))return Math.min(100,Math.max(0,Math.round(directPercent)));const size=Number(item.size)||0;return size>0&&Number(item.bytesSent)>0?Math.min(100,Math.max(0,Math.round((Number(item.bytesSent)||0)/size*100))):null}function itemProgressVisible(item={}){return activePhases.has(itemPhase(item))}function itemProgressIndeterminate(item={}){return itemProgressVisible(item)&&itemPercent(item)===null}function itemProgressValue(item={}){return itemPercent(item)??0}function itemProgressStationary(item={}){return reducedMotion.value&&itemProgressVisible(item)&&itemPercent(item)===null}function itemBytesLabel(item={}){const size=Math.max(0,Number(item.size)||0);const sent=Math.min(Math.max(0,Number(item.bytesSent)||0),size);const percent=itemPercent(item);return percent===null?`${attachmentSizeLabel(sent)} / ${attachmentSizeLabel(size)}`:`${attachmentSizeLabel(sent)} / ${attachmentSizeLabel(size)} · ${percent}%`}function itemStatusLabel(item={}){return{cancelled:`Cancelled`,delivering:`Sending to Codex`,failed:item.failureStage===`preparing`?`Preparation failed`:item.failureStage===`handoff`?`Sending failed`:`Upload failed`,preparing:`Preparing`,queued:`Queued`,ready:`Ready`,uploading:`Uploading`}[itemPhase(item)]||`Queued`}function itemCancelable(item={}){return[`preparing`,`queued`,`uploading`].includes(itemPhase(item))}function actionKey(item={},action=``){return`${itemKey(item)}:${action}`}function actionElement(element=null){return element?.$el||element||null}function setActionElement(item={},action=``,element=null){const key=actionKey(item,action);if(element){actionElements.set(key,element);return}actionElements.delete(key)}function focusItemAction(item={}){for(const action of[`cancel`,`retry`,`remove`]){const target=actionElement(actionElements.get(actionKey(item,action)));if(target&&!target.disabled){target.focus?.();return true}}return false}async function handleAction(action,item,index){emit(action,item);await nextTick();const retainedItem=props.items.find(candidate=>itemKey(candidate)===itemKey(item));if(retainedItem&&focusItemAction(retainedItem))return;const neighbour=props.items[index]||props.items[index-1];if(neighbour&&focusItemAction(neighbour))return;emit(`focus-input`)}function itemIcon(item={}){if(itemPhase(item)===`ready`)return mdiCheckCircleOutline;if(itemPhase(item)===`failed`)return mdiAlertCircleOutline;return mdiFileOutline}function itemColor(item={}){if(itemPhase(item)===`ready`)return`success`;if(itemPhase(item)===`failed`)return`error`;return`primary`}function updateReducedMotionPreference(){reducedMotion.value=reducedMotionMediaQuery?.matches===true}if(typeof window!==`undefined`&&typeof window.matchMedia===`function`){reducedMotionMediaQuery=window.matchMedia(`(prefers-reduced-motion: reduce)`);updateReducedMotionPreference()}onMounted(()=>{if(!reducedMotionMediaQuery)return;if(typeof reducedMotionMediaQuery.addEventListener===`function`)reducedMotionMediaQuery.addEventListener(`change`,updateReducedMotionPreference);else reducedMotionMediaQuery.addListener?.(updateReducedMotionPreference)});onBeforeUnmount(()=>{if(typeof reducedMotionMediaQuery?.removeEventListener===`function`)reducedMotionMediaQuery.removeEventListener(`change`,updateReducedMotionPreference);else reducedMotionMediaQuery?.removeListener?.(updateReducedMotionPreference);reducedMotionMediaQuery=null});return(_ctx,_cache)=>{return __props.items.length?(openBlock(),createElementBlock(`section`,{key:0,ref_key:`queueRoot`,ref:queueRoot,class:normalizeClass([`assistant-attachment-queue`,{"assistant-attachment-queue--standalone":!__props.joined}]),"aria-busy":hasUnresolved.value?`true`:void 0,"aria-label":`Message attachments`},[createBaseVNode(`header`,_hoisted_2$4,[createBaseVNode(`span`,null,toDisplayString(aggregateLabel.value),1),createBaseVNode(`span`,_hoisted_3$3,toDisplayString(retainedItems.value.length)+` / `+toDisplayString(__props.maximumFiles),1)]),createBaseVNode(`ol`,_hoisted_4$2,[(openBlock(true),createElementBlock(Fragment,null,renderList(__props.items,(item,index)=>{return openBlock(),createElementBlock(`li`,{key:itemKey(item),class:normalizeClass([`assistant-attachment-queue__item`,`assistant-attachment-queue__item--${itemPhase(item)}`])},[createVNode(VIcon,{class:`assistant-attachment-queue__icon`,color:itemColor(item),icon:itemIcon(item),size:`18`,"aria-hidden":`true`},null,8,[`color`,`icon`]),createBaseVNode(`div`,_hoisted_5$2,[createBaseVNode(`div`,_hoisted_6$2,[(openBlock(),createBlock(resolveDynamicComponent(item.attachmentId&&__props.previewEnabled?`button`:`span`),{type:item.attachmentId&&__props.previewEnabled?`button`:void 0,class:`assistant-attachment-queue__name`,title:itemName(item),onClick:$event=>item.attachmentId&&__props.previewEnabled&&emit(`preview`,item.receipt||item)},{default:withCtx(()=>[createTextVNode(toDisplayString(item.receipt?.reference)+` `+toDisplayString(itemName(item)),1)]),_:2},1032,[`type`,`title`,`onClick`])),createBaseVNode(`span`,_hoisted_7$2,toDisplayString(unref(attachmentSizeLabel)(item.size)),1)]),createBaseVNode(`div`,_hoisted_8$2,[createBaseVNode(`span`,null,toDisplayString(itemStatusLabel(item)),1),itemProgressVisible(item)?(openBlock(),createElementBlock(`span`,_hoisted_9$2,toDisplayString(itemBytesLabel(item)),1)):createCommentVNode(``,true)]),itemProgressStationary(item)?(openBlock(),createElementBlock(`div`,_hoisted_10$1)):itemProgressVisible(item)?(openBlock(),createBlock(VProgressLinear,{key:1,"aria-label":`Upload progress for ${itemName(item)}`,class:`assistant-attachment-queue__progress`,color:`primary`,height:`3`,indeterminate:itemProgressIndeterminate(item),"model-value":itemProgressValue(item),rounded:``},null,8,[`aria-label`,`indeterminate`,`model-value`])):createCommentVNode(``,true),item.error?(openBlock(),createElementBlock(`span`,_hoisted_11$1,toDisplayString(item.error),1)):createCommentVNode(``,true)]),createBaseVNode(`div`,_hoisted_12$1,[itemCancelable(item)?(openBlock(),createBlock(VBtn,{key:0,ref_for:true,ref:element=>setActionElement(item,`cancel`,element),"aria-label":`Cancel ${itemName(item)}`,class:`assistant-attachment-queue__action`,icon:unref(mdiCloseCircleOutline),size:`small`,title:`Cancel ${itemName(item)}`,type:`button`,variant:`text`,onClick:$event=>handleAction(`cancel`,item,index)},null,8,[`aria-label`,`icon`,`title`,`onClick`])):createCommentVNode(``,true),itemPhase(item)===`failed`||itemPhase(item)===`cancelled`?(openBlock(),createBlock(VBtn,{key:1,ref_for:true,ref:element=>setActionElement(item,`retry`,element),"aria-label":`Retry ${itemName(item)}`,class:`assistant-attachment-queue__action`,icon:unref(mdiRefresh),size:`small`,title:`Retry ${itemName(item)}`,type:`button`,variant:`text`,onClick:$event=>handleAction(`retry`,item,index)},null,8,[`aria-label`,`icon`,`title`,`onClick`])):createCommentVNode(``,true),itemPhase(item)===`ready`||itemPhase(item)===`failed`||itemPhase(item)===`cancelled`?(openBlock(),createBlock(VBtn,{key:2,ref_for:true,ref:element=>setActionElement(item,`remove`,element),"aria-label":`Remove ${itemName(item)}`,class:`assistant-attachment-queue__action`,icon:unref(mdiClose),size:`small`,title:`Remove ${itemName(item)}`,type:`button`,variant:`text`,onClick:$event=>handleAction(`remove`,item,index)},null,8,[`aria-label`,`icon`,`title`,`onClick`])):createCommentVNode(``,true)])],2)}),128))]),createBaseVNode(`span`,_hoisted_13$1,toDisplayString(announcement.value),1)],10,_hoisted_1$4)):createCommentVNode(``,true)}}};var AssistantAttachmentQueue_default=_plugin_vue_export_helper_default(_sfc_main$4,[[`__scopeId`,`data-v-a4040311`]]);var _hoisted_1$3={key:0,class:`assistant-questions__question-fields`,"aria-label":`Assistant questions`};var _hoisted_2$3={class:`assistant-questions__question-fields-header`};var _hoisted_3$2={key:1,class:`assistant-questions__answer-choices`,"aria-label":`Suggested answers`};var _sfc_main$3={__name:`AssistantQuestionInputs`,props:mergeModels({questions:{type:Array,default:()=>[]},selectItems:{type:Object,default:()=>({})},choices:{type:Array,default:()=>[]}},{"answers":{type:Object,default:()=>({})},"answersModifiers":{},"choice":{type:String,default:``},"choiceModifiers":{}}),emits:mergeModels([`dismiss`],[`update:answers`,`update:choice`]),setup(__props,{emit:__emit}){const answers=useModel(__props,`answers`);const choice=useModel(__props,`choice`);const emit=__emit;return(_ctx,_cache)=>{return __props.questions.length?(openBlock(),createElementBlock(`div`,_hoisted_1$3,[createBaseVNode(`div`,_hoisted_2$3,[createVNode(VBtn,{"aria-label":`Answer normally instead`,class:`ml-auto`,color:`primary`,"prepend-icon":unref(mdiPencilOutline),size:`small`,variant:`tonal`,onClick:_cache[0]||(_cache[0]=$event=>emit(`dismiss`))},{default:withCtx(()=>[..._cache[2]||(_cache[2]=[createTextVNode(` Answer normally instead `,-1)])]),_:1},8,[`prepend-icon`])]),(openBlock(true),createElementBlock(Fragment,null,renderList(__props.questions,question=>{return openBlock(),createElementBlock(`div`,{key:question.name,class:`assistant-questions__question-field`},[question.choices.length?(openBlock(),createBlock(VSelect,{key:0,"model-value":answers.value[question.name],"onUpdate:modelValue":$event=>answers.value={...answers.value,[question.name]:$event},class:`assistant-questions__question-select`,density:`compact`,"hide-details":`auto`,"item-title":`selectLabel`,"item-value":`value`,items:__props.selectItems[question.name]||question.choices,label:`[${question.number}] ${question.label}`,title:question.label,variant:`outlined`},null,8,[`model-value`,`onUpdate:modelValue`,`items`,`label`,`title`])):(openBlock(),createBlock(VTextField,{key:1,"model-value":answers.value[question.name],"onUpdate:modelValue":$event=>answers.value={...answers.value,[question.name]:$event},autocomplete:`off`,density:`compact`,"hide-details":`auto`,label:`[${question.number}] ${question.label}`,title:question.label,variant:`outlined`},null,8,[`model-value`,`onUpdate:modelValue`,`label`,`title`]))])}),128))])):__props.choices.length?(openBlock(),createElementBlock(`div`,_hoisted_3$2,[createVNode(VChipGroup,{modelValue:choice.value,"onUpdate:modelValue":_cache[1]||(_cache[1]=$event=>choice.value=$event),column:``,"selected-class":`text-primary`},{default:withCtx(()=>[(openBlock(true),createElementBlock(Fragment,null,renderList(__props.choices,option=>{return openBlock(),createBlock(VChip,{key:option.value,filter:``,value:option.value,variant:`outlined`},{default:withCtx(()=>[createTextVNode(toDisplayString(option.label),1)]),_:2},1032,[`value`])}),128))]),_:1},8,[`modelValue`])])):createCommentVNode(``,true)}}};var AssistantQuestionInputs_default=_plugin_vue_export_helper_default(_sfc_main$3,[[`__scopeId`,`data-v-957222c8`]]);var _hoisted_1$2={class:`assistant-model-control__header`};var _hoisted_2$2={class:`text-body-small`};var _hoisted_3$1={key:1,"aria-label":`Loading available AIs`,class:`assistant-model-control__loading`};var _hoisted_4$1={key:2,class:`assistant-model-control__state`,role:`alert`};var _hoisted_5$1={key:3,class:`assistant-model-control__state`,role:`status`};var _hoisted_6$1={key:4,class:`assistant-model-control__choices`};var _hoisted_7$1={key:0,"aria-label":`Provider`,class:`assistant-model-control__section`};var _hoisted_8$1={class:`assistant-model-control__options`};var _hoisted_9$1={"aria-label":`Model`,class:`assistant-model-control__section`};var _hoisted_10={key:1,class:`assistant-model-control__options`};var _hoisted_11={key:2,class:`assistant-model-control__empty`};var _hoisted_12={key:1,"aria-label":`Thinking`,class:`assistant-model-control__section`};var _hoisted_13={class:`assistant-model-control__options`};var _hoisted_14={class:`assistant-model-control__actions`};var _sfc_main$2={__name:`AssistantModelControl`,props:mergeModels({providerRows:{type:Array,default:()=>[]},modelRows:{type:Array,default:()=>[]},variantRows:{type:Array,default:()=>[]},modelProviderId:{type:String,default:``},modelId:{type:String,default:``},variantId:{type:String,default:``},selectionSummary:{type:String,default:``},buttonTitle:{type:String,default:`Choose AI`},changesDisabled:Boolean,saving:Boolean,canSave:Boolean,catalogLoading:Boolean,catalogError:{type:String,default:``}},{"modelValue":{type:Boolean,default:false},"modelModifiers":{}}),emits:mergeModels([`select-provider`,`select-model`,`select-variant`,`apply`,`reload`],[`update:modelValue`]),setup(__props,{emit:__emit}){const menuOpen=useModel(__props,`modelValue`);const props=__props;const emit=__emit;function selectProvider(value){if(!props.changesDisabled&&!props.saving)emit(`select-provider`,value)}function selectModel(value){if(!props.changesDisabled&&!props.saving)emit(`select-model`,value)}function selectVariant(value){if(!props.changesDisabled&&!props.saving)emit(`select-variant`,value)}return(_ctx,_cache)=>{return openBlock(),createBlock(VMenu,{modelValue:menuOpen.value,"onUpdate:modelValue":_cache[2]||(_cache[2]=$event=>menuOpen.value=$event),"close-on-content-click":false,location:`top start`,transition:`scale-transition`},{activator:withCtx(({props:menuProps})=>[createVNode(VBtn,mergeProps(menuProps,{"aria-label":`Choose AI`,class:`assistant-model-control__button`,density:`comfortable`,icon:unref(mdiCogOutline),rounded:`lg`,size:`small`,title:__props.buttonTitle,type:`button`,variant:`tonal`}),null,16,[`icon`,`title`])]),default:withCtx(()=>[createVNode(VSheet,{"aria-label":`AI session selector`,border:``,class:`assistant-model-control`,elevation:3,rounded:`xl`},{default:withCtx(()=>[createBaseVNode(`header`,_hoisted_1$2,[createVNode(VAvatar,{color:`primary`,size:`36`,variant:`tonal`},{default:withCtx(()=>[createVNode(VIcon,{icon:unref(mdiBrain),size:`20`},null,8,[`icon`])]),_:1}),createBaseVNode(`div`,null,[_cache[3]||(_cache[3]=createBaseVNode(`strong`,{class:`text-title-small`},`AI controls`,-1)),createBaseVNode(`span`,_hoisted_2$2,toDisplayString(__props.selectionSummary),1)])]),__props.changesDisabled?(openBlock(),createBlock(VSheet,{key:0,class:`assistant-model-control__view-only`,rounded:`lg`,role:`status`},{default:withCtx(()=>[createVNode(VIcon,{icon:unref(mdiClockOutline),size:`18`},null,8,[`icon`]),_cache[4]||(_cache[4]=createBaseVNode(`span`,null,`AI choices are view-only while the assistant is working.`,-1))]),_:1})):createCommentVNode(``,true),__props.catalogLoading?(openBlock(),createElementBlock(`div`,_hoisted_3$1,[createVNode(VSkeletonLoader,{type:`text, chip@4, text, chip@4`})])):__props.catalogError?(openBlock(),createElementBlock(`div`,_hoisted_4$1,[createBaseVNode(`span`,null,toDisplayString(__props.catalogError),1),createVNode(VBtn,{size:`small`,variant:`text`,onClick:_cache[0]||(_cache[0]=$event=>emit(`reload`))},{default:withCtx(()=>[..._cache[5]||(_cache[5]=[createTextVNode(`Try again`,-1)])]),_:1})])):!__props.providerRows.length?(openBlock(),createElementBlock(`div`,_hoisted_5$1,` No configured AIs are available for this session. `)):(openBlock(),createElementBlock(`div`,_hoisted_6$1,[renderSlot(_ctx.$slots,`before-choices`,{},void 0,true),__props.providerRows.length>1?(openBlock(),createElementBlock(`section`,_hoisted_7$1,[_cache[6]||(_cache[6]=createBaseVNode(`div`,{class:`assistant-model-control__label`},`Provider`,-1)),createBaseVNode(`div`,_hoisted_8$1,[(openBlock(true),createElementBlock(Fragment,null,renderList(__props.providerRows,provider=>{return openBlock(),createBlock(VBtn,{key:provider.id,active:__props.modelProviderId===provider.id,"aria-pressed":__props.modelProviderId===provider.id,class:`assistant-model-control__option`,color:__props.modelProviderId===provider.id?`primary`:void 0,disabled:__props.changesDisabled||__props.saving,rounded:`lg`,size:`small`,type:`button`,variant:__props.modelProviderId===provider.id?`tonal`:`outlined`,onClick:$event=>selectProvider(provider.id)},{default:withCtx(()=>[createBaseVNode(`span`,null,toDisplayString(provider.label),1),__props.modelProviderId===provider.id?(openBlock(),createBlock(VIcon,{key:0,icon:unref(mdiCheck),size:`15`},null,8,[`icon`])):createCommentVNode(``,true)]),_:2},1032,[`active`,`aria-pressed`,`color`,`disabled`,`variant`,`onClick`])}),128))])])):createCommentVNode(``,true),createBaseVNode(`section`,_hoisted_9$1,[_cache[7]||(_cache[7]=createBaseVNode(`div`,{class:`assistant-model-control__label`},`Model`,-1)),__props.modelRows.length>6?(openBlock(),createBlock(VAutocomplete,{key:0,"auto-select-first":`exact`,"hide-details":``,disabled:__props.changesDisabled||__props.saving,items:__props.modelRows,"item-title":`label`,"item-value":`id`,label:`Choose model`,"model-value":__props.modelId,"no-data-text":`No matching models`,variant:`outlined`,"onUpdate:modelValue":selectModel},null,8,[`disabled`,`items`,`model-value`])):__props.modelRows.length?(openBlock(),createElementBlock(`div`,_hoisted_10,[(openBlock(true),createElementBlock(Fragment,null,renderList(__props.modelRows,model=>{return openBlock(),createBlock(VBtn,{key:model.id,active:__props.modelId===model.id,"aria-label":model.label,"aria-pressed":__props.modelId===model.id,class:`assistant-model-control__option`,color:__props.modelId===model.id?`primary`:void 0,disabled:__props.changesDisabled||__props.saving,rounded:`lg`,size:`small`,title:__props.changesDisabled?`Wait for the active turn to finish before changing models.`:model.label,type:`button`,variant:__props.modelId===model.id?`tonal`:`outlined`,onClick:$event=>selectModel(model.id)},{default:withCtx(()=>[createBaseVNode(`span`,null,toDisplayString(model.label),1),__props.modelId===model.id?(openBlock(),createBlock(VIcon,{key:0,icon:unref(mdiCheck),size:`15`},null,8,[`icon`])):createCommentVNode(``,true)]),_:2},1032,[`active`,`aria-label`,`aria-pressed`,`color`,`disabled`,`title`,`variant`,`onClick`])}),128))])):(openBlock(),createElementBlock(`span`,_hoisted_11,`No available models.`)),renderSlot(_ctx.$slots,`model-note`,{},void 0,true)]),renderSlot(_ctx.$slots,`provider-controls`,{},void 0,true),__props.variantRows.length>1?(openBlock(),createElementBlock(`section`,_hoisted_12,[_cache[8]||(_cache[8]=createBaseVNode(`div`,{class:`assistant-model-control__label`},`Thinking`,-1)),createBaseVNode(`div`,_hoisted_13,[(openBlock(true),createElementBlock(Fragment,null,renderList(__props.variantRows,variant=>{return openBlock(),createBlock(VBtn,{key:variant.id||`automatic`,active:__props.variantId===variant.id,"aria-pressed":__props.variantId===variant.id,class:`assistant-model-control__option`,color:__props.variantId===variant.id?`primary`:void 0,disabled:__props.changesDisabled||__props.saving,rounded:`lg`,size:`small`,type:`button`,variant:__props.variantId===variant.id?`tonal`:`outlined`,onClick:$event=>selectVariant(variant.id)},{default:withCtx(()=>[createBaseVNode(`span`,null,toDisplayString(variant.label),1),__props.variantId===variant.id?(openBlock(),createBlock(VIcon,{key:0,icon:unref(mdiCheck),size:`15`},null,8,[`icon`])):createCommentVNode(``,true)]),_:2},1032,[`active`,`aria-pressed`,`color`,`disabled`,`variant`,`onClick`])}),128))])])):createCommentVNode(``,true)])),createBaseVNode(`footer`,_hoisted_14,[renderSlot(_ctx.$slots,`footer`,{},void 0,true),_cache[9]||(_cache[9]=createBaseVNode(`span`,null,null,-1)),createVNode(VBtn,{color:`primary`,disabled:!__props.canSave||__props.saving,size:`small`,variant:`flat`,onClick:_cache[1]||(_cache[1]=$event=>emit(`apply`))},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.saving?`Applying…`:`Apply`),1)]),_:1},8,[`disabled`])])]),_:3})]),_:3},8,[`modelValue`])}}};var AssistantModelControl_default=_plugin_vue_export_helper_default(_sfc_main$2,[[`__scopeId`,`data-v-91d3b1be`]]);var _hoisted_1$1=[`aria-label`];var _hoisted_2$1={class:`assistant-conversation__avatar-size-disc`};var _hoisted_3={class:`assistant-conversation__avatar-presentation`};var _hoisted_4={class:`assistant-conversation__avatar-tools`};var _hoisted_5={class:`assistant-conversation__avatar-size-disc assistant-conversation__avatar-size-disc--minimise`};var _hoisted_6={key:0,class:`assistant-conversation__preview-actions`};var _hoisted_7={key:1,class:`assistant-conversation__goal`};var _hoisted_8=[`accept`,`disabled`];var _hoisted_9={key:0,role:`alert`,class:`assistant-conversation__attachment-error`};var _sfc_main$1={__name:`AssistantConversationElement`,props:{adapter:{type:Object,required:true},avatarSize:{type:String,default:`compact`,validator:value=>[`hidden`,`compact`,`standard`,`large`].includes(value)},label:{type:String,default:`Assistant conversation`},configuration:{type:Object,default:()=>({})},configurationFields:{type:Array,default:()=>[]},configurationMode:{type:String,default:`hidden`,validator:value=>[`hidden`,`readonly`,`editable`].includes(value)}},emits:[`update:avatarSize`],setup(__props,{expose:__expose,emit:__emit}){const props=__props;const emit=__emit;const slots=useSlots();const container=ref(null);const avatarControls=ref(null);const visibleAvatarSize=ref(`compact`);watch(()=>props.avatarSize,size=>{if(size!==`hidden`)visibleAvatarSize.value=size},{immediate:true});function toggleAvatar(){emit(`update:avatarSize`,props.avatarSize===`hidden`?visibleAvatarSize.value:`hidden`)}const avatarSizes=[{value:`hidden`,height:0},{value:`compact`,height:96},{value:`standard`,height:112},{value:`large`,height:176}];const avatarSpace=ref(0);const avatarHeight=computed(()=>Math.min(avatarSpace.value,avatarSizes.find(size=>size.value===props.avatarSize).height));let avatarObserver;const observedAvatarElements=new Set;function measureAvatarSpace(){const root=container.value;if(!root||!slots.avatar)return;const warning=root.querySelector(`.assistant-transcript__error`);const warningBottom=warning?warning.getBoundingClientRect().bottom-root.getBoundingClientRect().top+root.scrollTop:0;root.style.setProperty(`--assistant-conversation-warning-bottom`,`${warningBottom}px`);const rootStyle=getComputedStyle(root);let occupied=parseFloat(rootStyle.paddingTop)+parseFloat(rootStyle.paddingBottom);for(const element of observedAvatarElements){if(element===root)continue;const style=getComputedStyle(element);occupied+=element.getBoundingClientRect().height+parseFloat(style.marginTop)+parseFloat(style.marginBottom)}avatarSpace.value=Math.max(0,root.clientHeight-occupied-120)}function observeAvatarSpace(){if(!container.value||!slots.avatar){avatarObserver?.disconnect();observedAvatarElements.clear();return}avatarObserver||=new ResizeObserver(measureAvatarSpace);const fixedElements=Array.from(container.value.children).filter(element=>!element.classList.contains(`assistant-conversation__avatar`)&&!element.classList.contains(`assistant-conversation__transcript`));const elements=new Set([container.value,...fixedElements]);if(avatarControls.value)elements.add(avatarControls.value);const warning=container.value.querySelector(`.assistant-transcript__error`);if(warning)elements.add(warning);for(const element of observedAvatarElements)if(!elements.has(element)){avatarObserver.unobserve(element);observedAvatarElements.delete(element)}for(const element of elements)if(!observedAvatarElements.has(element)){avatarObserver.observe(element);observedAvatarElements.add(element)}measureAvatarSpace()}onMounted(observeAvatarSpace);onUpdated(observeAvatarSpace);onBeforeUnmount(()=>avatarObserver?.disconnect());const transcriptSlots=computed(()=>[`welcome`,`attachments`,`system-message`,`message-actions`].filter(name=>slots[name]));const input=ref(null);const fileInput=ref(null);const modelsOpen=ref(false);const delivery=ref(null);const statusId=`assistant-status-${useId()}`;const conversation=computed(()=>{const saved=props.adapter.conversation;if(!props.adapter.delivery&&!saved.previewMessage&&!saved.previewMessages?.length&&!saved.interimReply)return saved;const{previewMessage,previewMessages,interimReply,...display}=saved;let turns=props.adapter.delivery?props.adapter.delivery.turns(saved.turns||[]):saved.turns||[];if(interimReply?.text&&interimReply.turnId){const assistant={...interimReply,messageId:interimReply.id,role:`assistant`};turns=turns.map(turn=>turn.turnId!==interimReply.turnId?turn:{...turn,assistant,commentary:(turn.commentary||[]).filter(message=>(message.outputId||message.messageId)!==(interimReply.outputId||interimReply.id)),...Array.isArray(turn.messages)?{messages:turn.messages.filter(message=>message.role!==`assistant`&&(message.outputId||message.messageId)!==(interimReply.outputId||interimReply.id)).concat(assistant)}:{}})}const previews=Array.isArray(previewMessages)?previewMessages:previewMessage?[previewMessage]:[];for(const preview of previews){const messageId=String(preview?.messageId||preview?.id||``).trim();const localDelivery=messageId&&props.adapter.delivery?.find?.(messageId);if((!localDelivery||localDelivery.status===`failed`)&&preview?.actions?.send)turns=turns.map(turn=>{const failed=turn.optimistic?.id===messageId&&turn.optimistic.status===`failed`;const unadmitted=turn.user?.receipt===false&&String(turn.user.messageId||turn.user.id||``)===messageId;if(!failed&&!unadmitted)return turn;return{...turn,preview:true,previewMessage:preview,user:{...turn.user,text:String(preview.text||``)}}});const alreadyShown=messageId&&(localDelivery||turns.some(turn=>[turn.system,turn.user,turn.assistant,...turn.thinking||[],...turn.commentary||[],...turn.messages||[]].some(message=>String(message?.messageId||message?.id||``)===messageId&&(message.receipt!==false||turn.preview))));if(messageId&&(preview?.text||preview?.actions?.editing)&&!alreadyShown){const user={messageId,role:`user`,text:String(preview.text||``)};turns=[...turns,{turnId:messageId,user,messages:[user],preview:true,previewMessage:preview,optimistic:{id:messageId,status:`pending`}}]}}return{...display,turns,welcomeMessage:turns.length?``:saved.welcomeMessage}});watch([()=>props.adapter.delivery,()=>props.adapter.conversation.turns],([controller,turns])=>{controller?.reconcile(turns||[])},{immediate:true});const pending=computed(()=>Boolean(props.adapter.delivery?.state.sending||props.adapter.composer?.pending));const queueWhileSending=computed(()=>props.adapter.composer?.queueWhileSending===true);const working=computed(()=>conversation.value.working??(!pending.value&&Boolean(props.adapter.composer?.canStop||conversation.value.turns?.some(turn=>turn.pending))));const activity=computed(()=>props.adapter.activity??{label:props.adapter.composer?.stopPending?`Stopping…`:pending.value?`Sending to assistant…`:working.value?`Assistant is working…`:``});const suggestionPreview=computed(()=>!props.adapter.composer?.draft&&props.adapter.suggestions?.visible?props.adapter.suggestions.preview:``);const attachmentsEnabled=computed(()=>props.adapter.attachments&&props.adapter.attachments.enabled!==false);const attachmentState=computed(()=>({count:attachmentsEnabled.value?props.adapter.attachments.queueItems?.length||0:0,canSubmit:!attachmentsEnabled.value||props.adapter.attachments.canSubmit!==false}));const canSend=computed(()=>(!pending.value||queueWhileSending.value&&attachmentState.value.count===0)&&props.adapter.composer?.canSend&&attachmentState.value.canSubmit);async function resend(id){if(props.adapter.actions?.resend)return props.adapter.actions.resend(id);const controller=props.adapter.delivery;const payload=controller?.find(id)?.payload;const attachments=props.adapter.attachments;try{const response=await controller?.resend(id,{queue:queueWhileSending.value});clearAcceptedAttachments(response,payload,attachments);return response}catch{}}function cancel(id){return props.adapter.actions?.cancel?props.adapter.actions.cancel(id):props.adapter.delivery?.cancel(id)}function edit(id){if(props.adapter.actions?.edit)return props.adapter.actions.edit(id);if(!props.adapter.actions?.setDraft)return;const draft=props.adapter.delivery?.edit(id,props.adapter.composer?.draft||``);if(draft!=null){props.adapter.actions.setDraft(draft);input.value?.focus()}}function attachmentEvent(method,event){if(attachmentsEnabled.value)return props.adapter.attachments[method]?.(event)}function attachSelectedFiles(event){const files=Array.from(event.target.files||[]);event.target.value=``;if(attachmentsEnabled.value&&props.adapter.attachments.canAddFiles)return props.adapter.attachments.uploadFiles(files)}async function applyModel(){if(await props.adapter.models.apply()!==false)modelsOpen.value=false}function selectSuggestion(value){if(props.adapter.suggestions?.select(value)!==false)input.value?.focus()}function dismissSuggestions(){props.adapter.suggestions?.dismiss();input.value?.focus()}function clearAcceptedAttachments(response,payload,attachments){if(response!==false&&response?.ok!==false&&payload?.attachmentIds?.length)attachments?.clearAttachments({accepted:true,attachmentIds:payload.attachmentIds})}async function submit(){if(!canSend.value)return;const attachments=props.adapter.attachments;const files=attachmentsEnabled.value?props.adapter.attachments.attachments.map(item=>({...item})):[];if(props.adapter.actions?.submit)return props.adapter.actions.submit({configuration:props.configuration,attachments:files});const controller=props.adapter.delivery;if(!controller||!props.adapter.actions?.setDraft)return;const message=String(props.adapter.composer.draft||``).trim()||(files.length?props.adapter.composer.attachmentMessage||`Please review the attached files.`:``);if(!message)return;const payload={...props.adapter.composer.payload,configuration:{...props.configuration},message,...files.length?{attachmentIds:files.map(file=>file.attachmentId),displayAttachments:files}:{}};props.adapter.actions.setDraft(``);try{const response=await controller.send(payload,{queue:queueWhileSending.value});clearAcceptedAttachments(response,payload,attachments);return response}catch{return false}}function stop(){const state=props.adapter.composer;if(!state?.canStop||state.stopDisabled||state.stopPending)return;return props.adapter.actions.stop()}function updateConfiguration(value){if(props.configurationMode!==`editable`||pending.value)return;return props.adapter.actions?.updateConfiguration?.(value)}__expose({focus:()=>input.value?.focus(),submit,stop});return(_ctx,_cache)=>{return openBlock(),createElementBlock(`section`,{ref_key:`container`,ref:container,class:normalizeClass([`assistant-conversation`,{"assistant-conversation--error":conversation.value.error}]),"aria-label":__props.label},[_ctx.$slots.avatar?(openBlock(),createElementBlock(`section`,{key:0,class:normalizeClass([`assistant-conversation__avatar`,{"assistant-conversation__avatar--hidden":__props.avatarSize===`hidden`}]),"aria-label":`Conversation avatar`},[withDirectives(createBaseVNode(`div`,{ref_key:`avatarControls`,ref:avatarControls,class:`assistant-conversation__avatar-controls`},[renderSlot(_ctx.$slots,`avatar-control`,{size:__props.avatarSize,height:avatarHeight.value},void 0,true),createVNode(VBtn,{icon:unref(mdiAccountCircleOutline),size:`small`,variant:`text`,width:44,"min-width":44,"min-height":44,class:`assistant-conversation__avatar-size`,"aria-label":`Show avatar`,title:`Show avatar`,"aria-expanded":__props.avatarSize!==`hidden`,onClick:toggleAvatar},{default:withCtx(()=>[createBaseVNode(`span`,_hoisted_2$1,[createVNode(VIcon,{size:`20`,icon:unref(mdiAccountCircleOutline)},null,8,[`icon`])])]),_:1},8,[`icon`,`aria-expanded`])],512),[[vShow,__props.avatarSize===`hidden`]]),withDirectives(createBaseVNode(`div`,_hoisted_3,[__props.avatarSize!==`hidden`?(openBlock(),createElementBlock(`div`,{key:0,class:`assistant-conversation__avatar-visual`,style:normalizeStyle({height:`${avatarHeight.value}px`,width:`${avatarHeight.value}px`})},[renderSlot(_ctx.$slots,`avatar`,{size:__props.avatarSize,height:avatarHeight.value},void 0,true)],4)):createCommentVNode(``,true),createBaseVNode(`div`,_hoisted_4,[renderSlot(_ctx.$slots,`avatar-tools`,{size:__props.avatarSize,height:avatarHeight.value},void 0,true),createVNode(VBtn,{icon:unref(mdiMinus),size:`small`,variant:`text`,color:`primary`,width:40,"min-width":40,"min-height":44,class:`assistant-conversation__avatar-size`,"aria-label":`Minimise avatar`,title:`Minimise avatar`,"aria-expanded":true,onClick:toggleAvatar},{default:withCtx(()=>[createBaseVNode(`span`,_hoisted_5,[createVNode(VIcon,{size:`20`,icon:unref(mdiMinus)},null,8,[`icon`])])]),_:1},8,[`icon`])])],512),[[vShow,__props.avatarSize!==`hidden`]])],2)):createCommentVNode(``,true),createVNode(AssistantTranscript_default,mergeProps(conversation.value,{"preview-message":__props.adapter.conversation.previewMessage||null,working:working.value,class:`assistant-conversation__transcript`,onLoadMore:_cache[0]||(_cache[0]=$event=>__props.adapter.actions?.loadMore?.($event)),onReload:_cache[1]||(_cache[1]=$event=>__props.adapter.actions?.reload?.()),onResendTurn:_cache[2]||(_cache[2]=$event=>resend($event)),onCancelTurn:_cache[3]||(_cache[3]=$event=>cancel($event)),onCheckDelivery:_cache[4]||(_cache[4]=$event=>__props.adapter.actions?.checkDelivery?.($event)),onEditTurn:_cache[5]||(_cache[5]=$event=>edit($event)),onLinkClick:_cache[6]||(_cache[6]=$event=>__props.adapter.actions?.openLink?.($event))}),createSlots({"user-message-actions":withCtx(scope=>[scope.turn.preview&&scope.turn.previewMessage?.actions?(openBlock(),createElementBlock(`div`,_hoisted_6,[scope.turn.previewMessage.actions.discard?(openBlock(),createBlock(VBtn,{key:0,icon:unref(mdiClose),size:`small`,variant:`text`,"aria-label":`Discard unsent message`,title:`Discard unsent message`,disabled:!scope.turn.previewMessage.actions.canDiscard,onClick:$event=>scope.turn.previewMessage.actions.discard(scope.turn.turnId)},null,8,[`icon`,`disabled`,`onClick`])):createCommentVNode(``,true),scope.turn.previewMessage.actions.edit?(openBlock(),createBlock(VBtn,{key:1,icon:unref(mdiPencil),size:`small`,variant:`text`,"aria-label":`Edit unsent message`,title:`Edit unsent message`,disabled:!scope.turn.previewMessage.actions.canEdit,onClick:$event=>scope.turn.previewMessage.actions.edit(scope.turn.turnId)},null,8,[`icon`,`disabled`,`onClick`])):createCommentVNode(``,true),scope.turn.previewMessage.actions.send?(openBlock(),createBlock(VBtn,{key:2,size:`small`,color:`primary`,disabled:!scope.turn.previewMessage.actions.canSend,onClick:$event=>scope.turn.previewMessage.actions.send(scope.turn.turnId)},{default:withCtx(()=>[createTextVNode(toDisplayString(scope.turn.previewMessage.actions.sending?`Sending…`:`Send`),1)]),_:2},1032,[`disabled`,`onClick`])):createCommentVNode(``,true)])):createCommentVNode(``,true),renderSlot(_ctx.$slots,`user-message-actions`,normalizeProps(guardReactiveProps(scope)),void 0,true)]),_:2},[renderList(transcriptSlots.value,name=>{return{name,fn:withCtx(scope=>[renderSlot(_ctx.$slots,name,normalizeProps(guardReactiveProps(scope)),void 0,true)])}})]),1040,[`preview-message`,`working`]),__props.adapter.goal&&__props.adapter.goal.enabled!==false?(openBlock(),createElementBlock(`div`,_hoisted_7,[createVNode(AssistantGoalControl_default,{state:__props.adapter.goal},null,8,[`state`])])):createCommentVNode(``,true),!_ctx.$slots.hints&&(__props.adapter.composer||activity.value.label||__props.adapter.suggestions)?(openBlock(),createBlock(AssistantComposerSupport_default,{key:2,activity:activity.value,"status-id":statusId,loading:__props.adapter.suggestions?.visible&&__props.adapter.suggestions.loading,suggestions:__props.adapter.suggestions?.visible?__props.adapter.suggestions.items:[],onPreview:_cache[7]||(_cache[7]=$event=>__props.adapter.suggestions?.previewSuggestion($event)),onSelect:selectSuggestion,onDismiss:dismissSuggestions},createSlots({_:2},[_ctx.$slots.activity?{name:`activity`,fn:withCtx(scope=>[renderSlot(_ctx.$slots,`activity`,normalizeProps(guardReactiveProps(scope)),void 0,true)]),key:`0`}:void 0]),1032,[`activity`,`loading`,`suggestions`])):createCommentVNode(``,true),renderSlot(_ctx.$slots,`hints`,{adapter:__props.adapter},void 0,true),renderSlot(_ctx.$slots,`composer`,{adapter:__props.adapter},()=>[__props.adapter.composer?(openBlock(),createBlock(AssistantPromptInput_default,mergeProps({key:0,ref_key:`input`,ref:input},__props.adapter.composer,{class:`assistant-conversation__composer`,"model-value":__props.adapter.composer.draft||``,"submit-enabled":canSend.value,"aria-label":__props.adapter.composer.ariaLabel||`Message AI assistant`,rows:__props.adapter.composer.rows||2,"described-by":activity.value.label||__props.adapter.suggestions?.visible?statusId:__props.adapter.composer.describedBy,placeholder:suggestionPreview.value||__props.adapter.composer.placeholder,"placeholder-affects-height":!suggestionPreview.value,"attachment-state":attachmentState.value,dragging:attachmentsEnabled.value&&__props.adapter.attachments.dragActive,"tab-to-submit":``,"onUpdate:modelValue":_cache[22]||(_cache[22]=$event=>__props.adapter.actions.setDraft($event)),onSubmit:submit,onTabToSubmit:_cache[23]||(_cache[23]=$event=>delivery.value?.focus()),onFocus:_cache[24]||(_cache[24]=$event=>__props.adapter.suggestions?.focus()),onBlur:_cache[25]||(_cache[25]=$event=>__props.adapter.suggestions?.blur()),onEscape:dismissSuggestions,onDragenter:_cache[26]||(_cache[26]=$event=>attachmentEvent(`handleDragEnter`,$event)),onDragover:_cache[27]||(_cache[27]=$event=>attachmentEvent(`handleDragOver`,$event)),onDragleave:_cache[28]||(_cache[28]=$event=>attachmentEvent(`handleDragLeave`,$event)),onDrop:_cache[29]||(_cache[29]=$event=>attachmentEvent(`handleDrop`,$event)),onPaste:_cache[30]||(_cache[30]=$event=>attachmentEvent(`handlePaste`,$event))}),createSlots({footer:withCtx(()=>[createVNode(AssistantComposerActions_default,{ref_key:`delivery`,ref:delivery,state:{...__props.adapter.composer,pending:pending.value,canSend:canSend.value},onSubmit:submit,onStop:stop},{feedback:withCtx(()=>[attachmentsEnabled.value&&__props.adapter.attachments.status?(openBlock(),createElementBlock(`p`,_hoisted_9,toDisplayString(__props.adapter.attachments.status),1)):createCommentVNode(``,true),renderSlot(_ctx.$slots,`composer-feedback`,{adapter:__props.adapter},void 0,true)]),default:withCtx(()=>[__props.adapter.models&&__props.adapter.models.enabled!==false?(openBlock(),createBlock(AssistantModelControl_default,mergeProps({key:0,modelValue:modelsOpen.value,"onUpdate:modelValue":_cache[16]||(_cache[16]=$event=>modelsOpen.value=$event)},__props.adapter.models,{onSelectProvider:_cache[17]||(_cache[17]=$event=>__props.adapter.models.selectProvider?.($event)),onSelectModel:_cache[18]||(_cache[18]=$event=>__props.adapter.models.selectModel?.($event)),onSelectVariant:_cache[19]||(_cache[19]=$event=>__props.adapter.models.selectVariant?.($event)),onApply:applyModel,onReload:_cache[20]||(_cache[20]=$event=>__props.adapter.models.reload?.())}),null,16,[`modelValue`])):createCommentVNode(``,true),attachmentsEnabled.value?(openBlock(),createBlock(VBtn,{key:1,"aria-label":`Attach files`,title:`Attach files`,size:`small`,variant:`text`,icon:unref(mdiPaperclip),disabled:!__props.adapter.attachments.canAddFiles,onClick:_cache[21]||(_cache[21]=$event=>fileInput.value?.click())},null,8,[`icon`,`disabled`])):createCommentVNode(``,true),__props.configurationMode!==`hidden`?renderSlot(_ctx.$slots,`configuration`,{configuration:__props.configuration,disabled:__props.configurationMode!==`editable`||pending.value,update:updateConfiguration},()=>[(openBlock(true),createElementBlock(Fragment,null,renderList(__props.configurationFields,field=>{return openBlock(),createBlock(VSelect,{key:field.name,"model-value":__props.configuration[field.name],label:field.label,items:field.items,disabled:__props.configurationMode!==`editable`||pending.value,density:`compact`,"hide-details":``,variant:`outlined`,class:`assistant-conversation__setting`,"onUpdate:modelValue":$event=>updateConfiguration({...__props.configuration,[field.name]:$event})},null,8,[`model-value`,`label`,`items`,`disabled`,`onUpdate:modelValue`])}),128))],true,2):createCommentVNode(``,true),renderSlot(_ctx.$slots,`composer-tools`,{adapter:__props.adapter},void 0,true)]),_:3},8,[`state`])]),_:2},[attachmentsEnabled.value?{name:`attachments`,fn:withCtx(()=>[createBaseVNode(`input`,{ref_key:`fileInput`,ref:fileInput,hidden:``,multiple:``,type:`file`,accept:__props.adapter.attachments.accept,disabled:!__props.adapter.attachments.canAddFiles,onChange:attachSelectedFiles},null,40,_hoisted_8),createVNode(AssistantAttachmentQueue_default,{items:__props.adapter.attachments.queueItems,"preview-enabled":Boolean(__props.adapter.attachments.open),"maximum-files":__props.adapter.attachments.maxItems,onCancel:_cache[8]||(_cache[8]=$event=>__props.adapter.attachments.cancelAttachment($event)),onRemove:_cache[9]||(_cache[9]=$event=>__props.adapter.attachments.removeAttachment($event)),onRetry:_cache[10]||(_cache[10]=$event=>__props.adapter.attachments.retryAttachment($event)),onPreview:_cache[11]||(_cache[11]=$event=>__props.adapter.attachments.open($event)),onFocusInput:_cache[12]||(_cache[12]=$event=>input.value?.focus())},null,8,[`items`,`preview-enabled`,`maximum-files`])]),key:`0`}:void 0,__props.adapter.questions||_ctx.$slots[`input-start`]?{name:`input-start`,fn:withCtx(()=>[renderSlot(_ctx.$slots,`input-start`,{adapter:__props.adapter},()=>[createVNode(AssistantQuestionInputs_default,mergeProps(__props.adapter.questions,{"onUpdate:answers":_cache[13]||(_cache[13]=$event=>__props.adapter.questions.setAnswers($event)),"onUpdate:choice":_cache[14]||(_cache[14]=$event=>__props.adapter.questions.setChoice($event)),onDismiss:_cache[15]||(_cache[15]=$event=>__props.adapter.questions.dismiss())}),null,16)],true)]),key:`1`}:void 0]),1040,[`model-value`,`submit-enabled`,`aria-label`,`rows`,`described-by`,`placeholder`,`placeholder-affects-height`,`attachment-state`,`dragging`])):createCommentVNode(``,true)],true)],10,_hoisted_1$1)}}};var AssistantConversationElement_default=_plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-f2694005`]]);var _hoisted_1=[`alt`,`src`];var _hoisted_2={key:1};var _sfc_main={__name:`AssistantAttachmentPreview`,props:{attachment:{type:Object,default:null},previewUrl:{type:String,default:``},downloadUrl:{type:String,required:true}},emits:[`close`],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;const imageFailed=ref(false);watch(()=>[props.attachment,props.previewUrl],()=>{imageFailed.value=false});return(_ctx,_cache)=>{return openBlock(),createBlock(VDialog,{"model-value":Boolean(__props.attachment),"max-width":`960`,"onUpdate:modelValue":_cache[2]||(_cache[2]=$event=>!$event&&emit(`close`))},{default:withCtx(()=>[__props.attachment?(openBlock(),createBlock(VCard,{key:0,title:__props.attachment.fileName},{default:withCtx(()=>[createVNode(VCardText,null,{default:withCtx(()=>[__props.previewUrl&&!imageFailed.value?(openBlock(),createElementBlock(`img`,{key:__props.previewUrl,alt:__props.attachment.fileName,class:`assistant-attachment-preview`,src:__props.previewUrl,onError:_cache[0]||(_cache[0]=$event=>imageFailed.value=true)},null,40,_hoisted_1)):(openBlock(),createElementBlock(`p`,_hoisted_2,`Preview is unavailable for this file. You can download it below.`))]),_:1}),createVNode(VCardActions,null,{default:withCtx(()=>[createVNode(VBtn,{href:__props.downloadUrl,download:__props.attachment.fileName,"prepend-icon":unref(mdiDownload),variant:`tonal`},{default:withCtx(()=>[..._cache[3]||(_cache[3]=[createTextVNode(`Download`,-1)])]),_:1},8,[`href`,`download`,`prepend-icon`]),createVNode(VSpacer),createVNode(VBtn,{onClick:_cache[1]||(_cache[1]=$event=>emit(`close`))},{default:withCtx(()=>[..._cache[4]||(_cache[4]=[createTextVNode(`Close`,-1)])]),_:1})]),_:1})]),_:1},8,[`title`])):createCommentVNode(``,true)]),_:1},8,[`model-value`])}}};var AssistantAttachmentPreview_default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-22b9fe01`]]);export{parseLongTextReviewBlocks as _,AssistantAttachmentQueue_default as a,AssistantPromptInput_default as c,numberedQuestionSubmissionText as d,parseNumberedQuestionPrompt as f,LongTextPreviewBlocks_default as g,_sfc_main$11 as h,AssistantQuestionInputs_default as i,AssistantTranscript_default as l,useScrollToBottom as m,AssistantConversationElement_default as n,AssistantGoalControl_default as o,parseAnswerChoicePrompt as p,AssistantModelControl_default as r,AssistantComposerSupport_default as s,AssistantAttachmentPreview_default as t,scrollElementNearBottom as u,AssistantMessageAttachments_default as v};
|