circuschief 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/server/src/api/projects-session-helpers.js +25 -0
- package/packages/server/src/api/projects.js +1 -0
- package/packages/server/src/api/sessions-draft.js +1 -0
- package/packages/server/src/api/settings.js +52 -4
- package/packages/server/src/db/ConversationRepository.js +16 -3
- package/packages/server/src/db/ProjectDefaultsRepository.js +47 -37
- package/packages/server/src/db/SessionRepository.js +12 -8
- package/packages/server/src/db/SettingsRepository.js +44 -16
- package/packages/server/src/db/conversation-helpers.js +1 -0
- package/packages/server/src/db/migrations/conversationsMigrations.js +4 -0
- package/packages/server/src/db/migrations/index.js +2 -0
- package/packages/server/src/db/migrations/sessionsMigrations.js +6 -1
- package/packages/server/src/db/session-helpers.js +3 -0
- package/packages/server/src/schema.sql +8 -0
- package/packages/server/src/services/agentCallLogger.js +1 -1
- package/packages/server/src/services/commandButtonPrompts.js +48 -0
- package/packages/server/src/services/draftSessionService.js +2 -0
- package/packages/server/src/services/sessionExecution.js +3 -1
- package/packages/server/src/services/sessionPrompts.js +4 -0
- package/packages/server/src/services/sessionProvider.js +6 -8
- package/packages/server/src/services/streamEventCallbacks.js +72 -40
- package/packages/server/src/services/streamEventHandler.js +13 -2
- package/packages/server/src/services/streamUsageHandler.js +6 -0
- package/packages/server/src/services/summaryClaudeClient.js +37 -12
- package/packages/server/src/services/summaryModelClient.js +154 -0
- package/packages/server/src/services/summaryModelResolver.js +148 -0
- package/packages/server/src/services/summaryService.js +6 -4
- package/packages/server/src/services/usageTracker.js +5 -1
- package/packages/server/src/services/visibleFinalErrorMessage.js +123 -0
- package/packages/shared/src/constants.js +1 -2
- package/packages/shared/src/contracts/projects.js +2 -0
- package/packages/shared/src/utils.js +9 -17
- package/packages/web/dist/assets/ActiveSessionsView-UJsCILDL.js +1 -0
- package/packages/web/dist/assets/{AgentLogsView-Cdw4nmvd.js → AgentLogsView-BGFPLjLa.js} +1 -1
- package/packages/web/dist/assets/ApiClient-B4YTtyY4.js +1 -0
- package/packages/web/dist/assets/{ArchiveConfirmModal-J48eh3zw.js → ArchiveConfirmModal-OFaj_uX5.js} +1 -1
- package/packages/web/dist/assets/{CommandButtonDetailView-DnFhJY5A.js → CommandButtonDetailView-D8S258uP.js} +1 -1
- package/packages/web/dist/assets/EffortLevelSelector-C2378L8e.js +1 -0
- package/packages/web/dist/assets/{GeneralSettingsView-CQkmdczf.js → GeneralSettingsView-DsHChEhv.js} +1 -1
- package/packages/web/dist/assets/{InputWithButton-XyM3k6lN.js → InputWithButton-Ci15ox0a.js} +1 -1
- package/packages/web/dist/assets/{InterpolationHelp-PfYR3KJo.js → InterpolationHelp-CIkOSkWX.js} +1 -1
- package/packages/web/dist/assets/MarkdownEditor-5-bexzUT.js +2 -0
- package/packages/web/dist/assets/ModelSelector-BMpR0DPr.js +1 -0
- package/packages/web/dist/assets/{ModelSelector-BZOT1Jc6.css → ModelSelector-D8hbTRIt.css} +1 -1
- package/packages/web/dist/assets/{NewSessionView-DkjFLvHU.js → NewSessionView-BCqtIgWH.js} +2 -2
- package/packages/web/dist/assets/{NewSessionView-D_Hi7M9g.css → NewSessionView-CUUdHkfv.css} +1 -1
- package/packages/web/dist/assets/ProjectEditView-D9sK0fdH.css +1 -0
- package/packages/web/dist/assets/ProjectEditView-RFaxHhAX.js +1 -0
- package/packages/web/dist/assets/{ProjectListView-CuYMmd3O.js → ProjectListView-B9FuWESY.js} +1 -1
- package/packages/web/dist/assets/{ProjectNewView-CNaA4Maf.js → ProjectNewView-D62jYlBL.js} +1 -1
- package/packages/web/dist/assets/ProvidersView-DDKMIQWZ.js +1 -0
- package/packages/web/dist/assets/QuickResponseSettings-CDm5vwP7.js +1 -0
- package/packages/web/dist/assets/{QuickResponsesPanel-DIBQFj0W.css → QuickResponsesPanel-BlFDvnZ2.css} +1 -1
- package/packages/web/dist/assets/{QuickResponsesPanel-BqMYSHb0.js → QuickResponsesPanel-DZ_Lre_l.js} +1 -1
- package/packages/web/dist/assets/{ResizableTextarea-wYF3K2RO.js → ResizableTextarea-DiIOEGjN.js} +1 -1
- package/packages/web/dist/assets/{SessionCard-bLaQEWWX.js → SessionCard-DmjnVYWn.js} +1 -1
- package/packages/web/dist/assets/SessionDetailView-CL7nmfiB.js +36 -0
- package/packages/web/dist/assets/SessionDetailView-CupIkI7u.css +1 -0
- package/packages/web/dist/assets/SessionFormOptions-BpUALRKn.css +1 -0
- package/packages/web/dist/assets/SessionFormOptions-DYUISplS.js +1 -0
- package/packages/web/dist/assets/SessionListView-BcxGz4aC.js +1 -0
- package/packages/web/dist/assets/{SessionLogStream-DTnDAF95.js → SessionLogStream-DpUE6Xsh.js} +1 -1
- package/packages/web/dist/assets/{SettingsView-DNLUSsHV.js → SettingsView-BC055tIA.js} +1 -1
- package/packages/web/dist/assets/{SlashCommandWizard-CRGFaO8t.js → SlashCommandWizard-DmTyNG9O.js} +1 -1
- package/packages/web/dist/assets/SummarySettingsView-BgnRCwlq.js +1 -0
- package/packages/web/dist/assets/SummarySettingsView-l2bxHmZZ.css +1 -0
- package/packages/web/dist/assets/TemplateDetailView-BlhOmLUX.js +1 -0
- package/packages/web/dist/assets/{commandButtons-Bbjf3fCt.js → commandButtons-D4RPpLiu.js} +1 -1
- package/packages/web/dist/assets/index-4rhEeO0B.js +1 -0
- package/packages/web/dist/assets/index-9vb2KaAd.js +1 -0
- package/packages/web/dist/assets/index-B0CvZXuN.js +7 -0
- package/packages/web/dist/assets/{index-BQL_L4gL.js → index-B6G18FqB.js} +14 -14
- package/packages/web/dist/assets/{index-Cf6vdW-B.js → index-BGwH4Cfn.js} +3 -3
- package/packages/web/dist/assets/index-BUhvkAdF.js +1 -0
- package/packages/web/dist/assets/index-BcnkUk2o.js +1 -0
- package/packages/web/dist/assets/{index-Bs7Qf5D6.js → index-Bn5xdGFM.js} +2 -2
- package/packages/web/dist/assets/index-CNwkdB0T.js +1 -0
- package/packages/web/dist/assets/index-CfL84oGW.js +1 -0
- package/packages/web/dist/assets/index-CkmxO8Mm.js +1 -0
- package/packages/web/dist/assets/index-Cpy4-yv3.js +1 -0
- package/packages/web/dist/assets/index-CrAQJmoZ.js +1 -0
- package/packages/web/dist/assets/{index-gmCCsCQ1.css → index-Cs2nxhrT.css} +1 -1
- package/packages/web/dist/assets/index-D6Ky9vJe.js +3 -0
- package/packages/web/dist/assets/index-DfrE0gAC.js +1 -0
- package/packages/web/dist/assets/index-KwEyz0F3.js +1 -0
- package/packages/web/dist/assets/index-OfCywayk.js +1 -0
- package/packages/web/dist/assets/index-PDesaJc6.js +1 -0
- package/packages/web/dist/assets/index-uB6nhSvz.js +1 -0
- package/packages/web/dist/assets/{projects-CPt3AB7U.js → projects-BUiOGmmb.js} +1 -1
- package/packages/web/dist/assets/{providers-ChfeMvUq.js → providers-Bh1ZiiJi.js} +1 -1
- package/packages/web/dist/assets/sessions-DH1R-NhV.js +1 -0
- package/packages/web/dist/assets/settings-Z4AVVmkJ.js +1 -0
- package/packages/web/dist/index.html +2 -2
- package/packages/web/dist/assets/ActiveSessionsView-UCbQrF1b.js +0 -1
- package/packages/web/dist/assets/ApiClient-CWbXWDUY.js +0 -1
- package/packages/web/dist/assets/EffortLevelSelector-bXbPo4Zw.js +0 -1
- package/packages/web/dist/assets/MarkdownEditor-P8F5kO-o.js +0 -2
- package/packages/web/dist/assets/ModelSelector-CowKfGMP.js +0 -1
- package/packages/web/dist/assets/ProjectEditView-CpeKj-_w.css +0 -1
- package/packages/web/dist/assets/ProjectEditView-embVT7NC.js +0 -1
- package/packages/web/dist/assets/ProvidersView-C7rydtOd.js +0 -1
- package/packages/web/dist/assets/QuickResponseSettings-BTQEKhwJ.js +0 -1
- package/packages/web/dist/assets/SessionDetailView-Cv-xMzXp.css +0 -1
- package/packages/web/dist/assets/SessionDetailView-CvQOUsW2.js +0 -36
- package/packages/web/dist/assets/SessionFormOptions-3pzbgI2Q.js +0 -1
- package/packages/web/dist/assets/SessionFormOptions-DhhIkjIS.css +0 -1
- package/packages/web/dist/assets/SessionListView-Dranfb72.js +0 -1
- package/packages/web/dist/assets/SummarySettingsView-C7G_suHp.js +0 -1
- package/packages/web/dist/assets/SummarySettingsView-DcsmSVJI.css +0 -1
- package/packages/web/dist/assets/TemplateDetailView-B78_DLMR.js +0 -1
- package/packages/web/dist/assets/index--V7c-VZf.js +0 -1
- package/packages/web/dist/assets/index-8Q04yd7H.js +0 -1
- package/packages/web/dist/assets/index-B47XRBDH.js +0 -1
- package/packages/web/dist/assets/index-BXbgZrhS.js +0 -1
- package/packages/web/dist/assets/index-CGhDVPen.js +0 -1
- package/packages/web/dist/assets/index-CKcRO1A6.js +0 -1
- package/packages/web/dist/assets/index-CTq-SLIW.js +0 -1
- package/packages/web/dist/assets/index-CYyos3iC.js +0 -1
- package/packages/web/dist/assets/index-CsCREAxF.js +0 -1
- package/packages/web/dist/assets/index-DJTTk_8T.js +0 -3
- package/packages/web/dist/assets/index-DPqUJ5JK.js +0 -1
- package/packages/web/dist/assets/index-EwAe1dKg.js +0 -1
- package/packages/web/dist/assets/index-JBA8axyA.js +0 -1
- package/packages/web/dist/assets/index-JkVHFtK5.js +0 -7
- package/packages/web/dist/assets/index-gMPUwT55.js +0 -1
- package/packages/web/dist/assets/index-wadc_0zT.js +0 -1
- package/packages/web/dist/assets/sessions-CwPsJOb1.js +0 -1
- package/packages/web/dist/assets/settings-BOj6wq6t.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.markdown-viewer[data-v-302edca0]{line-height:1.6;word-wrap:break-word}.markdown-viewer[data-v-302edca0] h1,.markdown-viewer[data-v-302edca0] h2,.markdown-viewer[data-v-302edca0] h3,.markdown-viewer[data-v-302edca0] h4,.markdown-viewer[data-v-302edca0] h5,.markdown-viewer[data-v-302edca0] h6{margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.25;color:var(--color-text)}.markdown-viewer[data-v-302edca0] h1{font-size:1.75em;border-bottom:1px solid var(--color-border);padding-bottom:.3em}.markdown-viewer[data-v-302edca0] h2{font-size:1.5em;border-bottom:1px solid var(--color-border);padding-bottom:.3em}.markdown-viewer[data-v-302edca0] h3{font-size:1.25em}.markdown-viewer[data-v-302edca0] h4{font-size:1em}.markdown-viewer[data-v-302edca0] h5{font-size:.875em}.markdown-viewer[data-v-302edca0] h6{font-size:.85em;color:var(--color-text-soft)}.markdown-viewer[data-v-302edca0]>h1:first-child,.markdown-viewer[data-v-302edca0]>h2:first-child,.markdown-viewer[data-v-302edca0]>h3:first-child,.markdown-viewer[data-v-302edca0]>h4:first-child,.markdown-viewer[data-v-302edca0]>h5:first-child,.markdown-viewer[data-v-302edca0]>h6:first-child{margin-top:0}.markdown-viewer[data-v-302edca0] p{margin-top:0;margin-bottom:1em}.markdown-viewer[data-v-302edca0] a{color:var(--color-primary);text-decoration:none}.markdown-viewer[data-v-302edca0] a:hover{text-decoration:underline}.markdown-viewer[data-v-302edca0] ul,.markdown-viewer[data-v-302edca0] ol{margin-top:0;margin-bottom:1em;padding-left:2em}.markdown-viewer[data-v-302edca0] ul{list-style-type:disc}.markdown-viewer[data-v-302edca0] ol{list-style-type:decimal}.markdown-viewer[data-v-302edca0] li{margin-bottom:.25em}.markdown-viewer[data-v-302edca0] li>ul,.markdown-viewer[data-v-302edca0] li>ol{margin-top:.25em;margin-bottom:0}.markdown-viewer[data-v-302edca0] blockquote{margin:0 0 1em;padding:.5em 1em;border-left:4px solid var(--color-border);background-color:var(--color-background-soft);color:var(--color-text-soft)}.markdown-viewer[data-v-302edca0] blockquote p:last-child{margin-bottom:0}.markdown-viewer[data-v-302edca0] code{font-family:var(--font-mono);font-size:.875em;padding:.2em .4em;background-color:var(--color-background-mute);border-radius:3px}.markdown-viewer[data-v-302edca0] pre{margin:0 0 1em;padding:1em;overflow-x:auto;background-color:var(--color-background-mute);border-radius:var(--border-radius);border:1px solid var(--color-border)}.markdown-viewer[data-v-302edca0] pre code{padding:0;background-color:transparent;border-radius:0;font-size:.8125em;line-height:1.5}.markdown-viewer[data-v-302edca0] table{width:100%;margin-bottom:1em;border-collapse:collapse;border-spacing:0}.markdown-viewer[data-v-302edca0] th,.markdown-viewer[data-v-302edca0] td{padding:.5em 1em;border:1px solid var(--color-border);text-align:left}.markdown-viewer[data-v-302edca0] th{font-weight:600;background-color:var(--color-background-soft)}.markdown-viewer[data-v-302edca0] tr:nth-child(2n){background-color:var(--color-background-soft)}.markdown-viewer[data-v-302edca0] hr{height:1px;margin:1.5em 0;background-color:var(--color-border);border:none}.markdown-viewer[data-v-302edca0] img{max-width:100%;height:auto;border-radius:var(--border-radius)}.markdown-viewer[data-v-302edca0] strong{font-weight:600}.markdown-viewer[data-v-302edca0] em{font-style:italic}.markdown-viewer[data-v-302edca0] del,.markdown-viewer[data-v-302edca0] s{text-decoration:line-through;color:var(--color-text-soft)}.markdown-viewer[data-v-302edca0] .hljs{color:#c9d1d9;background:var(--color-background-mute)}.markdown-viewer[data-v-302edca0] .hljs-comment,.markdown-viewer[data-v-302edca0] .hljs-punctuation{color:#8b949e}.markdown-viewer[data-v-302edca0] .hljs-attr,.markdown-viewer[data-v-302edca0] .hljs-attribute,.markdown-viewer[data-v-302edca0] .hljs-meta,.markdown-viewer[data-v-302edca0] .hljs-selector-attr,.markdown-viewer[data-v-302edca0] .hljs-selector-class,.markdown-viewer[data-v-302edca0] .hljs-selector-id{color:#79c0ff}.markdown-viewer[data-v-302edca0] .hljs-variable,.markdown-viewer[data-v-302edca0] .hljs-literal,.markdown-viewer[data-v-302edca0] .hljs-number,.markdown-viewer[data-v-302edca0] .hljs-doctag{color:#f2cc60}.markdown-viewer[data-v-302edca0] .hljs-params{color:#c9d1d9}.markdown-viewer[data-v-302edca0] .hljs-function{color:#d2a8ff}.markdown-viewer[data-v-302edca0] .hljs-class,.markdown-viewer[data-v-302edca0] .hljs-tag,.markdown-viewer[data-v-302edca0] .hljs-title,.markdown-viewer[data-v-302edca0] .hljs-built_in{color:#7ee787}.markdown-viewer[data-v-302edca0] .hljs-keyword,.markdown-viewer[data-v-302edca0] .hljs-type,.markdown-viewer[data-v-302edca0] .hljs-selector-tag,.markdown-viewer[data-v-302edca0] .hljs-addition,.markdown-viewer[data-v-302edca0] .hljs-template-tag,.markdown-viewer[data-v-302edca0] .hljs-template-variable{color:#ff7b72}.markdown-viewer[data-v-302edca0] .hljs-string,.markdown-viewer[data-v-302edca0] .hljs-bullet,.markdown-viewer[data-v-302edca0] .hljs-subst,.markdown-viewer[data-v-302edca0] .hljs-section,.markdown-viewer[data-v-302edca0] .hljs-link,.markdown-viewer[data-v-302edca0] .hljs-regexp{color:#a5d6ff}.markdown-viewer[data-v-302edca0] .hljs-name,.markdown-viewer[data-v-302edca0] .hljs-selector-pseudo,.markdown-viewer[data-v-302edca0] .hljs-symbol,.markdown-viewer[data-v-302edca0] .hljs-quote{color:#7ee787}.markdown-viewer[data-v-302edca0] .hljs-deletion{color:#ffa198;background-color:#ff818226}.markdown-viewer[data-v-302edca0] .hljs-emphasis{font-style:italic}.markdown-viewer[data-v-302edca0] .hljs-strong{font-weight:700}.diff-file-content[data-v-68865be7]{background-color:var(--color-background)}.diff-hunk[data-v-68865be7]{border-top:1px solid var(--color-border)}.diff-hunk-header[data-v-68865be7]{padding:.5rem .75rem;background-color:#58a6ff1a;color:var(--color-text-soft);font-size:.75rem}.diff-table-wrapper[data-v-68865be7]{overflow-x:auto}.diff-table[data-v-68865be7]{min-width:100%;border-collapse:collapse}.diff-line[data-v-68865be7]{height:1.5rem}.diff-line-context[data-v-68865be7]{background-color:var(--color-background)}.diff-line-addition[data-v-68865be7]{background-color:#3fb95026}.diff-line-deletion[data-v-68865be7]{background-color:#f8514926}.diff-line-num[data-v-68865be7]{width:3rem;min-width:3rem;padding:0 .5rem;text-align:right;color:var(--color-text-soft);background-color:var(--color-background-soft);border-right:1px solid var(--color-border);-webkit-user-select:none;user-select:none;vertical-align:top}.diff-line-addition .diff-line-num[data-v-68865be7]{background-color:#3fb95033}.diff-line-deletion .diff-line-num[data-v-68865be7]{background-color:#f8514933}.diff-line-prefix[data-v-68865be7]{width:1.5rem;min-width:1.5rem;text-align:center;-webkit-user-select:none;user-select:none;vertical-align:top}.diff-line-addition .diff-line-prefix[data-v-68865be7]{color:var(--color-success)}.diff-line-deletion .diff-line-prefix[data-v-68865be7]{color:var(--color-error)}.diff-line-content[data-v-68865be7]{padding:0 .5rem;white-space:pre;vertical-align:top}.markdown-preview-container[data-v-68865be7]{padding:1rem;background-color:var(--color-background);border-top:1px solid var(--color-border);font-family:var(--font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);font-size:.875rem}.markdown-preview-split[data-v-68865be7]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.markdown-preview-pane[data-v-68865be7]{border:1px solid var(--color-border);border-radius:var(--border-radius);overflow:hidden}.markdown-preview-pane[data-v-68865be7]>.markdown-viewer{padding:1rem;max-height:400px;overflow-y:auto}.markdown-preview-single[data-v-68865be7]{border:1px solid var(--color-border);border-radius:var(--border-radius);overflow:hidden}.markdown-preview-single[data-v-68865be7]>.markdown-viewer{padding:1rem;max-height:400px;overflow-y:auto}.markdown-preview-label[data-v-68865be7]{padding:.5rem 1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.markdown-preview-label-old[data-v-68865be7]{background-color:#f851491a;color:var(--color-error);border-bottom:1px solid rgba(248,81,73,.2)}.markdown-preview-label-new[data-v-68865be7]{background-color:#3fb9501a;color:var(--color-success);border-bottom:1px solid rgba(63,185,80,.2)}@media (max-width: 768px){.markdown-preview-split[data-v-68865be7]{grid-template-columns:1fr}}.binary-file-notice[data-v-68865be7]{display:flex;align-items:center;gap:1rem;padding:2rem;background-color:var(--color-background-soft);border:1px dashed var(--color-border);border-radius:var(--border-radius);text-align:center}.binary-icon[data-v-68865be7]{font-size:2rem;flex-shrink:0}.binary-message[data-v-68865be7]{flex:1}.binary-message p[data-v-68865be7]{margin:.25rem 0;color:var(--color-text-soft);font-family:var(--font-base);font-size:.9375rem}.binary-message p[data-v-68865be7]:first-child{font-weight:600;color:var(--color-text)}.image-preview-container[data-v-68865be7]{padding:1rem;background-color:var(--color-background-soft);border-radius:var(--border-radius);display:flex;justify-content:center;align-items:center;min-height:100px}.image-loading[data-v-68865be7],.image-error[data-v-68865be7],.image-deleted[data-v-68865be7]{display:flex;align-items:center;gap:.5rem;color:var(--color-text-soft);font-family:var(--font-base);font-size:.875rem}.image-error[data-v-68865be7]{color:var(--color-error)}.image-deleted[data-v-68865be7]{color:var(--color-text-soft);font-style:italic}.error-icon[data-v-68865be7],.deleted-icon[data-v-68865be7]{font-size:1.25rem}.image-wrapper[data-v-68865be7]{display:flex;justify-content:center;align-items:center;width:100%}.diff-image[data-v-68865be7]{max-width:100%;max-height:500px;height:auto;border-radius:var(--border-radius);box-shadow:0 2px 8px #0000004d}@media (max-width: 768px){.diff-image[data-v-68865be7]{max-height:300px}}@media (min-width: 1200px){.diff-image[data-v-68865be7]{max-height:600px}}.diff-viewer[data-v-2672650f]{font-family:var(--font-mono);font-size:.75rem;line-height:1.4}.diff-empty[data-v-2672650f]{color:var(--color-text-soft);padding:1rem;text-align:center}.diff-file[data-v-2672650f]{border:1px solid var(--color-border);border-radius:var(--border-radius);margin-bottom:1rem;overflow:hidden}.diff-file-header[data-v-2672650f]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background-color:var(--color-background-mute);cursor:pointer;-webkit-user-select:none;user-select:none}.diff-file-header[data-v-2672650f]:hover{background-color:var(--color-border)}.diff-file-toggle[data-v-2672650f]{color:var(--color-text-soft);font-size:.625rem;width:1rem}.diff-file-icon[data-v-2672650f]{display:flex;align-items:center}.file-badge[data-v-2672650f]{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:3px;font-size:.625rem;font-weight:600}.file-badge-new[data-v-2672650f]{background-color:#3fb95033;color:var(--color-success)}.file-badge-deleted[data-v-2672650f]{background-color:#f8514933;color:var(--color-error)}.file-badge-renamed[data-v-2672650f]{background-color:#d2992233;color:var(--color-warning)}.file-badge-modified[data-v-2672650f]{background-color:#58a6ff33;color:var(--color-primary)}.diff-file-path[data-v-2672650f]{flex:1;min-width:0;color:var(--color-text);word-break:break-word}.diff-file-stats[data-v-2672650f]{display:flex;gap:.5rem;font-size:.75rem}.stat-additions[data-v-2672650f]{color:var(--color-success)}.stat-deletions[data-v-2672650f]{color:var(--color-error)}.copy-button[data-v-2672650f]{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;padding:.25rem;margin:0 .25rem;border:none;background-color:transparent;color:var(--color-text-soft);cursor:pointer;border-radius:4px;transition:all .2s ease-out;flex-shrink:0}.copy-button[data-v-2672650f]:hover{color:var(--color-text);background-color:#ffffff0d}.copy-button[data-v-2672650f]:active{background-color:#ffffff1a}.copy-button.copied[data-v-2672650f]{color:var(--color-success);animation:copySuccess-2672650f .3s ease-out}.copy-button-icon[data-v-2672650f]{font-size:1rem;display:inline-block}@keyframes copySuccess-2672650f{0%{transform:scale(.8);opacity:.7}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.preview-toggle[data-v-2672650f]{margin-left:auto}.changes-tab[data-v-e3da4c75]{padding:1rem 0}.loading-state[data-v-e3da4c75]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:2rem}.error-message[data-v-e3da4c75]{color:var(--color-error);padding:1rem;background-color:#f851491a;border-radius:var(--border-radius)}.empty-state[data-v-e3da4c75]{text-align:center;padding:2rem;color:var(--color-text-soft)}.changes-toolbar[data-v-e3da4c75]{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.mode-toggle[data-v-e3da4c75]{display:flex;gap:.25rem;background-color:var(--color-background-soft);border-radius:4px;padding:.25rem}.toggle-button[data-v-e3da4c75]{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.5rem .75rem;border:1px solid transparent;background-color:transparent;color:var(--color-text-soft);cursor:pointer;font-size:.875rem;border-radius:3px;transition:all .2s ease-out;white-space:nowrap;flex-shrink:0}.toggle-button[data-v-e3da4c75]:hover:not(:disabled){background-color:#ffffff0d;color:var(--color-text)}.toggle-button[data-v-e3da4c75]:disabled{opacity:.6;cursor:not-allowed}.toggle-button.active[data-v-e3da4c75]{background-color:var(--color-primary);color:var(--color-background);border-color:var(--color-primary);font-weight:600}.toggle-button.active[data-v-e3da4c75]:hover:not(:disabled){background-color:var(--color-primary);filter:brightness(1.1)}.btn-link[data-v-e3da4c75]{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.875rem;padding:.25rem .5rem;min-height:2.75rem;display:flex;align-items:center}.btn-link[data-v-e3da4c75]:hover:not(:disabled){text-decoration:underline}.btn-link[data-v-e3da4c75]:disabled{opacity:.6;cursor:not-allowed}.diff-section[data-v-e3da4c75]{margin-bottom:1.5rem}.diff-section h3[data-v-e3da4c75]{font-size:.875rem;margin-bottom:.5rem;color:var(--color-text-soft)}.local-changes-header[data-v-e3da4c75]{margin-top:1.5rem;margin-bottom:.5rem;padding-top:1rem;border-top:1px solid var(--color-border)}.local-changes-header h3[data-v-e3da4c75]{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-soft);margin:0}.canvas-file-list[data-v-8223fdcb]{display:flex;flex-direction:column;gap:.25rem}.file-row[data-v-8223fdcb]{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;transition:background-color .15s;min-height:48px}.file-row[data-v-8223fdcb]:hover{background:var(--color-background-mute)}.file-row-top[data-v-8223fdcb]{width:100%;display:flex;align-items:center}.file-row-bottom[data-v-8223fdcb]{display:flex;align-items:center;gap:.75rem;width:100%}.file-name[data-v-8223fdcb]{font-weight:500;word-break:break-word;line-height:1.4}.version-badge[data-v-8223fdcb]{font-size:.7rem;padding:.15rem .4rem;background:var(--color-primary);color:#fff;border-radius:9999px;font-weight:600;flex-shrink:0}.file-time[data-v-8223fdcb]{font-size:.75rem;color:var(--color-text-soft);flex-shrink:0}.file-arrow[data-v-8223fdcb]{color:var(--color-text-soft);font-size:1.25rem;flex-shrink:0}.file-menu-container[data-v-8223fdcb]{position:relative;display:inline-block;flex-shrink:0}.btn-menu[data-v-8223fdcb]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:8px;border:none;background:transparent;color:var(--color-text-soft, #888);cursor:pointer;transition:background .15s ease,color .15s ease;font-size:1.25rem;line-height:1;flex-shrink:0}.btn-menu[data-v-8223fdcb]:hover{background:#ffffff1a;color:var(--color-text, #ccc)}.btn-menu[data-v-8223fdcb]:active{background:#ffffff26}.menu-overlay[data-v-8223fdcb]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.file-menu-items[data-v-8223fdcb]{position:absolute;top:100%;right:0;min-width:200px;margin-top:.5rem;padding:.25rem 0;list-style:none;background:var(--color-bg-secondary, #222);border:1px solid var(--color-border, #444);border-radius:6px;box-shadow:0 4px 6px #0000004d;z-index:100}.menu-item[data-v-8223fdcb]{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem 1rem;border:none;background:transparent;color:var(--color-text, #ccc);cursor:pointer;text-align:left;font-size:.875rem;transition:all .15s ease}.menu-item[data-v-8223fdcb]:hover{background:var(--color-bg-hover, #333)}.menu-item.is-danger[data-v-8223fdcb]{color:var(--color-error, #f87171)}.menu-item.is-danger[data-v-8223fdcb]:hover{background:#f871711a}.menu-item-icon[data-v-8223fdcb]{font-size:1rem;flex-shrink:0}.menu-item-text[data-v-8223fdcb]{flex:1;font-weight:500}.menu-divider[data-v-8223fdcb]{height:1px;background:var(--color-border, #444);margin:.25rem 0;list-style:none}.fade-enter-active[data-v-8223fdcb],.fade-leave-active[data-v-8223fdcb]{transition:opacity .15s ease}.fade-enter-from[data-v-8223fdcb],.fade-leave-to[data-v-8223fdcb]{opacity:0}.slide-enter-active[data-v-8223fdcb],.slide-leave-active[data-v-8223fdcb]{transition:all .15s ease}.slide-enter-from[data-v-8223fdcb],.slide-leave-to[data-v-8223fdcb]{opacity:0;transform:translateY(-4px)}.list-header[data-v-8223fdcb]{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);margin-bottom:.5rem;font-weight:600;font-size:.9rem}.select-all-checkbox[data-v-8223fdcb]{width:18px;height:18px;cursor:pointer;flex-shrink:0}.select-all-checkbox[data-v-8223fdcb]:disabled{opacity:.5;cursor:not-allowed}.header-label[data-v-8223fdcb]{flex:1}.selection-count[data-v-8223fdcb]{color:var(--color-text-soft);font-size:.85rem;font-weight:400;margin-left:auto}.item-checkbox[data-v-8223fdcb]{width:18px;height:18px;cursor:pointer;flex-shrink:0;margin:0}.item-checkbox[data-v-8223fdcb]:disabled{opacity:.5;cursor:not-allowed}.file-row.selected[data-v-8223fdcb]{background:#22c55e1a;border-color:#22c55e4d}.file-row.selected[data-v-8223fdcb]:hover{background:#22c55e26}@media (max-width: 640px){.file-row[data-v-8223fdcb]{padding:.875rem 1rem;gap:.5rem}.file-row-top[data-v-8223fdcb]{padding-bottom:.25rem}.file-row-bottom[data-v-8223fdcb]{gap:.5rem}.file-name[data-v-8223fdcb]{font-size:.95rem;word-break:break-word}.file-time[data-v-8223fdcb]{font-size:.6875rem}.btn-menu[data-v-8223fdcb]{width:44px;height:44px}.file-menu-items[data-v-8223fdcb]{min-width:180px}.item-checkbox[data-v-8223fdcb],.select-all-checkbox[data-v-8223fdcb]{width:16px;height:16px}}.viewer-header[data-v-0f0a432d]{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);margin-bottom:1rem}.viewer-header-top[data-v-0f0a432d],.viewer-header-bottom[data-v-0f0a432d]{width:100%;display:flex;align-items:center}.viewer-header-middle[data-v-0f0a432d]{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.breadcrumb-container[data-v-0f0a432d],.header-actions[data-v-0f0a432d]{display:flex;align-items:center;flex-shrink:0}.header-actions[data-v-0f0a432d]{gap:.5rem}.breadcrumb-back[data-v-0f0a432d]{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.9rem;font-weight:500;padding:0;white-space:nowrap;transition:text-decoration .15s ease}.breadcrumb-back[data-v-0f0a432d]:hover{text-decoration:underline}.viewer-filename[data-v-0f0a432d]{font-weight:600;font-size:1rem;word-break:break-word;line-height:1.4}.viewer-meta[data-v-0f0a432d]{color:var(--color-text-soft);font-size:.75rem;font-weight:400}.btn-edit-toggle[data-v-0f0a432d]{display:flex;align-items:center;justify-content:center;padding:.35rem .75rem;border-radius:6px;border:1px solid var(--color-border, #374151);background:transparent;color:var(--color-primary, #22d3ee);cursor:pointer;font-size:.8125rem;font-weight:500;transition:background .15s ease,border-color .15s ease;white-space:nowrap;min-height:28px}.btn-edit-toggle[data-v-0f0a432d]:hover{background:#22d3ee1a;border-color:var(--color-primary, #22d3ee)}.version-dropdown[data-v-0f0a432d]{position:relative}.version-dropdown summary[data-v-0f0a432d]{display:flex;align-items:center;gap:.25rem;padding:.35rem .6rem;background:var(--color-primary);color:#fff;border-radius:9999px;font-size:.75rem;font-weight:600;cursor:pointer;list-style:none;min-height:28px}.version-dropdown summary[data-v-0f0a432d]::-webkit-details-marker{display:none}.dropdown-arrow[data-v-0f0a432d]{font-size:.6rem}.version-list[data-v-0f0a432d]{position:absolute;top:100%;right:0;margin-top:.25rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);list-style:none;padding:.25rem 0;min-width:160px;z-index:100;box-shadow:0 4px 12px #0000004d}.version-list li[data-v-0f0a432d]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;font-size:.875rem}.version-list li[data-v-0f0a432d]:hover,.version-list li.active[data-v-0f0a432d]{background:var(--color-background-mute)}.version-number[data-v-0f0a432d]{font-weight:600}.version-time[data-v-0f0a432d]{color:var(--color-text-soft);font-size:.75rem}.version-current[data-v-0f0a432d]{color:var(--color-primary);font-size:.75rem}.file-menu-container[data-v-0f0a432d]{position:relative;display:inline-block;flex-shrink:0}.btn-menu[data-v-0f0a432d]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:8px;border:none;background:transparent;color:var(--color-text-soft, #888);cursor:pointer;transition:background .15s ease,color .15s ease;font-size:1.25rem;line-height:1;flex-shrink:0}.btn-menu[data-v-0f0a432d]:hover{background:#ffffff1a;color:var(--color-text, #ccc)}.btn-menu[data-v-0f0a432d]:active{background:#ffffff26}.menu-overlay[data-v-0f0a432d]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.file-menu-items[data-v-0f0a432d]{position:absolute;top:100%;right:0;min-width:200px;margin-top:.5rem;padding:.25rem 0;list-style:none;background:var(--color-bg-secondary, #222);border:1px solid var(--color-border, #444);border-radius:6px;box-shadow:0 4px 6px #0000004d;z-index:100}.menu-item[data-v-0f0a432d]{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem 1rem;border:none;background:transparent;color:var(--color-text, #ccc);cursor:pointer;text-align:left;font-size:.875rem;transition:all .15s ease}.menu-item[data-v-0f0a432d]:hover,.menu-item.is-highlighted[data-v-0f0a432d]{background:var(--color-bg-hover, #333)}.menu-item.is-danger[data-v-0f0a432d]{color:var(--color-error, #f87171)}.menu-item.is-danger[data-v-0f0a432d]:hover{background:#f871711a}.menu-item-icon[data-v-0f0a432d]{font-size:1rem;flex-shrink:0}.menu-item-text[data-v-0f0a432d]{flex:1;font-weight:500}.menu-divider[data-v-0f0a432d]{height:1px;background:var(--color-border, #444);margin:.25rem 0;list-style:none}.fade-enter-active[data-v-0f0a432d],.fade-leave-active[data-v-0f0a432d]{transition:opacity .15s ease}.fade-enter-from[data-v-0f0a432d],.fade-leave-to[data-v-0f0a432d]{opacity:0}.slide-enter-active[data-v-0f0a432d],.slide-leave-active[data-v-0f0a432d]{transition:all .15s ease}.slide-enter-from[data-v-0f0a432d],.slide-leave-to[data-v-0f0a432d]{opacity:0;transform:translateY(-4px)}@media (max-width: 640px){.viewer-header[data-v-0f0a432d]{padding:.75rem;gap:.5rem}.viewer-header-middle[data-v-0f0a432d]{flex-wrap:wrap;gap:.5rem}.breadcrumb-back[data-v-0f0a432d]{font-size:.875rem}.viewer-filename[data-v-0f0a432d]{font-size:.95rem}.viewer-meta[data-v-0f0a432d]{font-size:.6875rem}.header-actions[data-v-0f0a432d]{gap:.375rem}.version-dropdown summary[data-v-0f0a432d]{min-height:44px;padding:.5rem .75rem}.btn-menu[data-v-0f0a432d]{width:44px;height:44px}.file-menu-items[data-v-0f0a432d]{min-width:180px}}.canvas-file-viewer[data-v-622e16b5]{display:flex;flex-direction:column}.content-loading[data-v-622e16b5]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:2rem;color:var(--color-text-soft)}.loading-spinner[data-v-622e16b5]{display:inline-block;width:1rem;height:1rem;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin-622e16b5 .8s linear infinite}@keyframes spin-622e16b5{to{transform:rotate(360deg)}}.viewer-content[data-v-622e16b5]{flex:1;overflow:auto;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);padding:1rem}.viewer-content-editing[data-v-622e16b5]{padding:0;display:flex;flex-direction:column;min-height:400px}.viewer-image[data-v-622e16b5]{max-width:100%;height:auto;border-radius:var(--border-radius)}.viewer-markdown[data-v-622e16b5]{font-size:.9375rem;line-height:1.6}.viewer-markdown-raw[data-v-622e16b5]{font-size:.8125rem;margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:var(--font-mono)}.viewer-json[data-v-622e16b5]{font-size:.8125rem;margin:0;font-family:var(--font-mono)}.viewer-text[data-v-622e16b5]{white-space:pre-wrap;font-size:.9375rem}.viewer-code[data-v-622e16b5]{font-size:.8125rem;margin:0;font-family:var(--font-mono);overflow-x:auto;white-space:pre;line-height:1.5}.viewer-code code[data-v-622e16b5]{display:block}.canvas-trash[data-v-73524f88]{padding:1rem 0}.trash-header[data-v-73524f88]{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.trash-header h3[data-v-73524f88]{margin:0;font-size:1.125rem}.loading-state[data-v-73524f88],.empty-state[data-v-73524f88]{text-align:center;padding:2rem;color:var(--color-text-soft)}.empty-state-hint[data-v-73524f88]{font-size:.875rem;margin-top:.5rem;opacity:.8}.trash-list[data-v-73524f88]{display:flex;flex-direction:column;gap:.5rem}.trash-row[data-v-73524f88]{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);min-height:56px}.file-icon[data-v-73524f88]{font-size:1.25rem;flex-shrink:0}.file-info[data-v-73524f88]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.file-name[data-v-73524f88]{font-weight:500;word-break:break-word}.file-meta[data-v-73524f88]{font-size:.75rem;color:var(--color-text-soft)}.trash-actions[data-v-73524f88]{display:flex;gap:.5rem;flex-shrink:0}.btn[data-v-73524f88]{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;transition:all .2s ease-out;font-weight:500}.btn[data-v-73524f88]:disabled{opacity:.6;cursor:not-allowed}.btn-sm[data-v-73524f88]{padding:.375rem .75rem;font-size:.8125rem}.btn-success[data-v-73524f88]{background:var(--color-success);color:#fff}.btn-success[data-v-73524f88]:hover:not(:disabled){background:#2ea043}.btn-danger[data-v-73524f88]{background:transparent;border:1px solid var(--color-error);color:var(--color-error)}.btn-danger[data-v-73524f88]:hover:not(:disabled){background:#f851491a}.item-checkbox[data-v-73524f88]{width:18px;height:18px;cursor:pointer;flex-shrink:0;margin:0}.item-checkbox[data-v-73524f88]:disabled{opacity:.5;cursor:not-allowed}.trash-row.selected[data-v-73524f88]{background:#22c55e1a;border-color:#22c55e4d}.trash-row.selected[data-v-73524f88]:hover{background:#22c55e26}.bulk-action-toolbar[data-v-73524f88]{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:var(--border-radius);margin-bottom:1rem;flex-wrap:wrap}.toolbar-left[data-v-73524f88]{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.toolbar-right[data-v-73524f88]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.selection-info[data-v-73524f88]{color:var(--color-text);font-weight:500;font-size:.9rem;white-space:nowrap}.btn-secondary[data-v-73524f88]{background-color:var(--color-background-mute);color:var(--color-text-soft);border:1px solid var(--color-border)}.btn-secondary[data-v-73524f88]:hover:not(:disabled){background-color:var(--color-background-soft);color:var(--color-text)}@media (max-width: 640px){.trash-row[data-v-73524f88]{flex-wrap:wrap}.trash-actions[data-v-73524f88]{width:100%;margin-top:.5rem}.trash-actions .btn[data-v-73524f88]{flex:1;min-height:44px}.item-checkbox[data-v-73524f88]{width:16px;height:16px}.bulk-action-toolbar[data-v-73524f88]{flex-direction:column;align-items:stretch}.toolbar-left[data-v-73524f88],.toolbar-right[data-v-73524f88]{justify-content:center}.toolbar-right .btn[data-v-73524f88]{flex:1;min-height:44px}}.stale-badge[data-v-9c2aa874]{padding:.375rem .75rem;font-size:.75rem;font-weight:500;color:var(--color-warning);background-color:#d299221a;border:1px solid rgba(210,153,34,.25);border-radius:var(--border-radius);text-align:center;margin-bottom:.5rem}.canvas-tab[data-v-7d192f9a]{padding:1rem 0;min-height:200px;transition:background-color .2s,border-color .2s,opacity .3s ease}.canvas-tab.connection-stale[data-v-7d192f9a]{opacity:.5}.canvas-tab.drag-over[data-v-7d192f9a]{background-color:#58a6ff1a;border:2px dashed var(--color-primary);border-radius:var(--border-radius)}.canvas-header[data-v-7d192f9a]{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.canvas-header label.disabled[data-v-7d192f9a]{opacity:.6;cursor:not-allowed;pointer-events:none}.trash-toggle[data-v-7d192f9a]{background:var(--color-background-mute);border:1px solid var(--color-border);color:var(--color-text-soft);padding:.375rem .75rem;border-radius:var(--border-radius);cursor:pointer;font-size:.8125rem;display:flex;align-items:center;gap:.5rem;white-space:nowrap;transition:all .2s ease-out}.trash-toggle[data-v-7d192f9a]:hover{color:var(--color-text);background:var(--color-background-soft)}.trash-count[data-v-7d192f9a]{display:inline-block;background:var(--color-error);color:#fff;border-radius:9999px;padding:.125rem .4rem;font-size:.75rem;font-weight:600;min-width:1.25rem;text-align:center}.drag-hint[data-v-7d192f9a]{color:var(--color-primary);font-weight:500}.loading-state[data-v-7d192f9a]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:2rem}.empty-state[data-v-7d192f9a]{text-align:center;padding:2rem;color:var(--color-text-soft)}.empty-state-hint[data-v-7d192f9a]{font-size:.875rem;margin-top:.5rem;opacity:.8}.bulk-action-toolbar[data-v-7d192f9a]{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:var(--border-radius);margin-bottom:1rem;flex-wrap:wrap}.toolbar-left[data-v-7d192f9a]{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.toolbar-right[data-v-7d192f9a]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.toolbar-checkbox[data-v-7d192f9a]{width:18px;height:18px;cursor:pointer;flex-shrink:0;margin:0}.toolbar-checkbox[data-v-7d192f9a]:disabled{opacity:.5;cursor:not-allowed}.selection-info[data-v-7d192f9a]{color:var(--color-text);font-weight:500;font-size:.9rem;white-space:nowrap}.btn-danger[data-v-7d192f9a]{background-color:var(--color-error);color:#fff;border-color:var(--color-error)}.btn-danger[data-v-7d192f9a]:hover:not(:disabled){background-color:#dc2626;border-color:#dc2626}.btn-secondary[data-v-7d192f9a]{background-color:var(--color-background-mute);color:var(--color-text-soft);border-color:var(--color-border)}.btn-secondary[data-v-7d192f9a]:hover:not(:disabled){background-color:var(--color-background-soft);color:var(--color-text)}@media (max-width: 640px){.canvas-header[data-v-7d192f9a]{flex-wrap:wrap;gap:.5rem}.canvas-header .btn-primary[data-v-7d192f9a]{flex:1;min-height:44px}.drag-hint[data-v-7d192f9a]{display:none}.bulk-action-toolbar[data-v-7d192f9a]{flex-direction:column;align-items:stretch}.toolbar-left[data-v-7d192f9a],.toolbar-right[data-v-7d192f9a]{justify-content:center}.toolbar-right .btn[data-v-7d192f9a]{flex:1;min-height:44px}.toolbar-checkbox[data-v-7d192f9a]{width:16px;height:16px}}@media (hover: none){.drag-hint[data-v-7d192f9a]{display:none}}.summary-content[data-v-706ddd1a]{position:relative}.summary-updating[data-v-706ddd1a]{position:absolute;top:.5rem;right:.5rem;display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--color-text-soft)}.summary-section[data-v-706ddd1a]{margin-bottom:1.5rem}.summary-section[data-v-706ddd1a]:last-of-type{margin-bottom:0}.summary-section h3[data-v-706ddd1a]{font-size:.875rem;font-weight:600;color:var(--color-text-soft);margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.full-summary[data-v-706ddd1a]{margin:0;line-height:1.6}.summary-footer[data-v-706ddd1a]{display:flex;justify-content:space-between;align-items:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border)}.summary-date[data-v-706ddd1a]{font-size:.75rem;color:var(--color-text-soft)}.btn-link[data-v-706ddd1a]{background:none;border:none;color:var(--color-primary);font-size:.75rem;cursor:pointer;padding:0;display:flex;align-items:center;gap:.25rem}.btn-link[data-v-706ddd1a]:hover{text-decoration:underline}.btn-link[data-v-706ddd1a]:disabled{opacity:.5;cursor:not-allowed}.latest-response[data-v-c05bdd9e]{margin-bottom:1.5rem}.latest-response-header[data-v-c05bdd9e]{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.75rem}.latest-response-header h3[data-v-c05bdd9e]{margin:0;font-size:1rem;font-weight:600}.latest-response-meta[data-v-c05bdd9e]{display:flex;align-items:center;gap:.75rem;font-size:.75rem;color:var(--color-text-soft)}.response-model[data-v-c05bdd9e]{padding:.125rem .375rem;border-radius:4px;background:#63b3ed1a;color:var(--color-primary, #63b3ed);font-weight:500;font-size:.6875rem}.response-session-name[data-v-c05bdd9e]{opacity:.8}.latest-response-content[data-v-c05bdd9e]{position:relative;font-size:.875rem;line-height:1.5}.latest-response-content.collapsed[data-v-c05bdd9e]{max-height:300px;overflow:hidden}.latest-response-content.collapsed[data-v-c05bdd9e]:after{content:"";position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(transparent,var(--color-background-soft, #1e1e1e));pointer-events:none}.expand-toggle[data-v-c05bdd9e]{display:inline-block;margin-top:.5rem;padding:0;background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.8125rem;font-weight:500}.expand-toggle[data-v-c05bdd9e]:hover{text-decoration:underline}.session-overview[data-v-62418ea7]{margin-bottom:1.5rem}.overview-header[data-v-62418ea7]{margin-bottom:1rem}.overview-header h3[data-v-62418ea7]{margin:0;font-size:1rem;font-weight:600}.overview-summary[data-v-62418ea7]{padding:.75rem 0;border-top:1px solid var(--color-border)}.overview-summary-loading[data-v-62418ea7]{display:flex;align-items:center;gap:.5rem;color:var(--color-text-soft);font-size:.875rem}.overview-summary .summary-text[data-v-62418ea7]{margin:0 0 .5rem;font-size:.875rem;color:var(--color-text);line-height:1.4}.overview-metrics[data-v-62418ea7]{display:flex;gap:1.5rem;padding:.75rem 0;border-top:1px solid var(--color-border)}.metric[data-v-62418ea7]{display:flex;flex-direction:column;gap:.125rem}.metric-value[data-v-62418ea7]{font-size:.875rem;font-weight:600;color:var(--color-text)}.metric-label[data-v-62418ea7]{font-size:.6875rem;color:var(--color-text-soft);text-transform:uppercase;letter-spacing:.05em}.loading-spinner-small[data-v-62418ea7]{width:12px;height:12px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin-62418ea7 1s linear infinite}@keyframes spin-62418ea7{to{transform:rotate(360deg)}}.status-badge[data-v-62418ea7]{display:inline-block;padding:.25rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-badge.pr-merged[data-v-62418ea7]{background:#8250df26;color:#8250df}.status-badge.pr-open[data-v-62418ea7]{background:#2ea04326;color:var(--color-success)}.status-badge.pr-closed[data-v-62418ea7]{background:#6e778126;color:#6e7781}.status-badge.pr-draft[data-v-62418ea7]{background:#d2992226;color:var(--color-warning)}.status-badge.ci-success[data-v-62418ea7]{background:#2ea04326;color:var(--color-success)}.status-badge.ci-pending[data-v-62418ea7]{background:#d2992226;color:var(--color-warning)}.pr-section[data-v-62418ea7]{padding-top:.75rem;border-top:1px solid var(--color-border)}.overview-pr[data-v-62418ea7]{display:flex;align-items:center;gap:.75rem}.pr-warnings[data-v-62418ea7]{margin-top:.5rem;padding:.5rem .75rem;background:#cf222e14;border-radius:6px;font-size:.8125rem;color:var(--color-error, #cf222e)}.warning-item[data-v-62418ea7]{padding:.125rem 0}.ci-failure-list[data-v-62418ea7]{margin-top:.25rem;padding-left:1rem}.ci-failure-item[data-v-62418ea7]{font-size:.75rem;color:var(--color-text-secondary, #8b949e);padding:.0625rem 0}.pr-link[data-v-62418ea7]{color:var(--color-primary);text-decoration:none;font-weight:500}.pr-link[data-v-62418ea7]:hover{text-decoration:underline}.overview-scheduling[data-v-62418ea7]{display:flex;align-items:center;gap:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.overview-scheduling .scheduling-icon[data-v-62418ea7]{font-size:1.25rem;flex-shrink:0}.scheduling-details[data-v-62418ea7]{flex:1;min-width:0}.scheduling-time[data-v-62418ea7]{margin:0;font-size:.875rem;color:var(--color-text)}.scheduling-time strong[data-v-62418ea7]{color:var(--color-primary);font-weight:600}.scheduling-countdown[data-v-62418ea7]{margin:0;font-size:.8125rem;color:var(--color-text-soft)}.scheduling-edit-link[data-v-62418ea7]{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.8125rem;font-weight:500;white-space:nowrap;padding:0}.scheduling-edit-link[data-v-62418ea7]:hover{text-decoration:underline}.summary-tab[data-v-bf30e93f]{padding:1rem 0}.loading-state[data-v-bf30e93f],.generating-state[data-v-bf30e93f]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:2rem}.summary-empty-state[data-v-bf30e93f]{display:flex;align-items:center;justify-content:center;min-height:300px;text-align:center}.summary-empty-state-content[data-v-bf30e93f]{max-width:320px}.summary-empty-state-text[data-v-bf30e93f]{font-size:1rem;font-weight:500;color:var(--color-text);margin:0 0 .5rem}.summary-empty-state-hint[data-v-bf30e93f]{font-size:.875rem;color:var(--color-text-soft);margin:0;line-height:1.4}.action-menu-container[data-v-4b2ffa29]{position:relative;display:inline-block;flex-shrink:0}.btn-kebab[data-v-4b2ffa29]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:8px;border:none;background:transparent;color:var(--color-text-soft, #888);cursor:pointer;transition:background .15s ease,color .15s ease;font-size:1.25rem;line-height:1;flex-shrink:0}.btn-kebab[data-v-4b2ffa29]:hover{background:#ffffff1a;color:var(--color-text, #ccc)}.btn-kebab[data-v-4b2ffa29]:active{background:#ffffff26}.menu-overlay[data-v-4b2ffa29]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.menu-items[data-v-4b2ffa29]{position:absolute;top:100%;right:0;min-width:160px;margin-top:.5rem;padding:.25rem 0;list-style:none;background:var(--color-bg-secondary, #222);border:1px solid var(--color-border, #444);border-radius:6px;box-shadow:0 4px 6px #0000004d;z-index:100}.menu-item[data-v-4b2ffa29]{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem 1rem;border:none;background:transparent;color:var(--color-text, #ccc);cursor:pointer;text-align:left;font-size:.875rem;transition:all .15s ease}.menu-item[data-v-4b2ffa29]:hover,.menu-item.is-highlighted[data-v-4b2ffa29]{background:var(--color-bg-hover, #333)}.menu-item.is-danger[data-v-4b2ffa29]{color:var(--color-error, #f87171)}.menu-item.is-danger[data-v-4b2ffa29]:hover{background:#f871711a}.menu-item-icon[data-v-4b2ffa29]{font-size:1rem;flex-shrink:0}.menu-item-text[data-v-4b2ffa29]{flex:1;font-weight:500}.fade-enter-active[data-v-4b2ffa29],.fade-leave-active[data-v-4b2ffa29]{transition:opacity .15s ease}.fade-enter-from[data-v-4b2ffa29],.fade-leave-to[data-v-4b2ffa29]{opacity:0}.slide-enter-active[data-v-4b2ffa29],.slide-leave-active[data-v-4b2ffa29]{transition:all .15s ease}.slide-enter-from[data-v-4b2ffa29],.slide-leave-to[data-v-4b2ffa29]{opacity:0;transform:translateY(-4px)}.command-button-item[data-v-272badcf]{background-color:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);padding:1rem;display:flex;flex-direction:column;gap:1rem}.button-header[data-v-272badcf]{display:flex;justify-content:space-between;align-items:center;gap:1rem}.button-info[data-v-272badcf]{flex:1;display:flex;flex-direction:column;gap:.25rem}.button-label[data-v-272badcf]{font-weight:500;color:var(--color-text);font-size:1rem}.button-command[data-v-272badcf]{color:var(--color-text-soft);font-size:.85rem;font-family:var(--font-mono)}.button-actions[data-v-272badcf]{display:flex;align-items:center;gap:.75rem}.status-indicator[data-v-272badcf]{width:1.5rem;height:1.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center}.status-indicator[data-v-272badcf] svg{width:.875rem;height:.875rem}.status-success[data-v-272badcf]{background-color:#3fb95033;color:var(--color-success)}.status-success[data-v-272badcf] svg{animation:pop-in-272badcf .3s ease-out}.status-error[data-v-272badcf]{background-color:#f8514933;color:var(--color-error)}.status-error[data-v-272badcf] svg{animation:shake-272badcf .4s ease-in-out}.status-running[data-v-272badcf]{background-color:#d299224d;color:#d29922;border-color:#d29922;animation:hourglass-flip-272badcf 2s ease-in-out infinite}.output-section[data-v-272badcf]{border-top:1px solid var(--color-border);padding-top:.75rem}.output-header[data-v-272badcf]{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem;border-radius:4px;transition:background-color .2s;-webkit-user-select:none;user-select:none}.output-header[data-v-272badcf]:hover{background-color:#58a6ff1a}.expand-icon[data-v-272badcf]{color:var(--color-text-soft);font-size:.85rem}.output-label[data-v-272badcf]{color:var(--color-text);font-size:.9rem}.exit-code[data-v-272badcf]{color:var(--color-text-soft);font-size:.8rem;margin-left:.5rem}.output-content[data-v-272badcf]{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem;padding:.75rem;background-color:var(--color-background);border:1px solid var(--color-border);border-radius:4px;position:relative}.output-display-truncated[data-v-272badcf]{background-color:#58a6ff1a;border:1px solid rgba(88,166,255,.2);color:var(--color-text-soft);padding:.5rem .75rem;border-radius:4px;font-size:.8rem}.output-text[data-v-272badcf]{font-family:var(--font-mono);font-size:.8rem;color:var(--color-text-soft);white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto;line-height:1.4}.running-indicator[data-v-272badcf]{display:flex;align-items:center;gap:.5rem;color:var(--color-text-soft);font-size:.9rem;margin-top:.5rem}.elapsed-time[data-v-272badcf]{font-family:var(--font-mono);font-size:.85rem;color:var(--color-text);font-weight:500;min-width:2.5rem}.spinner[data-v-272badcf]{display:inline-block;width:1rem;height:1rem;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin-272badcf .8s linear infinite}.spinner-inline[data-v-272badcf]{display:inline-block;width:.75rem;height:.75rem;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-272badcf .8s linear infinite;margin-right:.5rem;opacity:.8}.btn.is-loading[data-v-272badcf]{opacity:.8;position:relative}@keyframes spin-272badcf{to{transform:rotate(360deg)}}@keyframes hourglass-flip-272badcf{0%,80%{transform:rotate(0)}90%{transform:rotate(180deg)}to{transform:rotate(180deg)}}@keyframes pop-in-272badcf{0%{transform:scale(0)}70%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes shake-272badcf{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@media (max-width: 640px){.button-header[data-v-272badcf]{flex-direction:column;align-items:stretch}.button-actions[data-v-272badcf]{width:100%;justify-content:space-between}.button-actions button[data-v-272badcf]{flex:1}}.commands-tab[data-v-3d607ed5]{display:flex;flex-direction:column;gap:1.5rem}.tab-header[data-v-3d607ed5]{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.tab-header h3[data-v-3d607ed5]{margin:0;font-size:1rem;color:var(--color-text)}.loading-state[data-v-3d607ed5],.empty-state[data-v-3d607ed5]{padding:2rem;text-align:center;background-color:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text-soft)}.error-banner[data-v-3d607ed5]{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background-color:#f851491a;border:1px solid var(--color-error);border-radius:var(--border-radius);color:var(--color-error)}.error-banner .dismiss-btn[data-v-3d607ed5]{background:none;border:1px solid var(--color-error);border-radius:4px;color:var(--color-error);padding:.25rem .5rem;font-size:.75rem;cursor:pointer;transition:background-color .2s}.error-banner .dismiss-btn[data-v-3d607ed5]:hover{background-color:#f8514933}.loading-state[data-v-3d607ed5]{display:flex;align-items:center;justify-content:center;gap:.75rem}.empty-state[data-v-3d607ed5]{display:flex;flex-direction:column;gap:1rem;align-items:center}.commands-list[data-v-3d607ed5]{display:flex;flex-direction:column;gap:1.5rem}@media (max-width: 640px){.tab-header[data-v-3d607ed5]{flex-direction:column;align-items:flex-start;gap:1rem}.commands-list[data-v-3d607ed5]{gap:1rem}}.overflow-menu-container[data-v-84c0a012]{position:relative;display:inline-block;margin-left:auto;flex-shrink:0}.btn-kebab[data-v-84c0a012]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:8px;border:none;background:transparent;color:var(--color-text-soft, #888);cursor:pointer;transition:background .15s ease,color .15s ease;font-size:1.25rem;line-height:1;flex-shrink:0}.btn-kebab[data-v-84c0a012]:hover{background:#ffffff1a;color:var(--color-text, #ccc)}.btn-kebab[data-v-84c0a012]:active{background:#ffffff26}.menu-overlay[data-v-84c0a012]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.menu-items[data-v-84c0a012]{position:absolute;top:100%;right:0;min-width:160px;margin-top:.5rem;padding:.25rem 0;list-style:none;background:var(--color-bg-secondary, #222);border:1px solid var(--color-border, #444);border-radius:6px;box-shadow:0 4px 6px #0000004d;z-index:100}.menu-item[data-v-84c0a012]{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem 1rem;border:none;background:transparent;color:var(--color-text, #ccc);cursor:pointer;text-align:left;font-size:.875rem;transition:all .15s ease}.menu-item[data-v-84c0a012]:hover,.menu-item.is-highlighted[data-v-84c0a012]{background:var(--color-bg-hover, #333)}.menu-item.is-danger[data-v-84c0a012]{color:var(--color-error, #f87171)}.menu-item.is-danger[data-v-84c0a012]:hover{background:#f871711a}.menu-item.is-disabled[data-v-84c0a012]{opacity:.5;cursor:not-allowed;pointer-events:none}.menu-item.is-disabled[data-v-84c0a012]:hover{background:transparent}.menu-item-icon[data-v-84c0a012]{font-size:1rem;flex-shrink:0}.menu-item-spinner[data-v-84c0a012]{display:inline-block;width:1rem;height:1rem;border:2px solid rgba(248,113,113,.3);border-top-color:#f87171;border-radius:50%;animation:spin-84c0a012 .6s linear infinite;flex-shrink:0}@keyframes spin-84c0a012{to{transform:rotate(360deg)}}.menu-item-text[data-v-84c0a012]{flex:1;font-weight:500}.menu-divider[data-v-84c0a012]{height:1px;background:var(--color-border, #444);margin:.25rem 0}.fade-enter-active[data-v-84c0a012],.fade-leave-active[data-v-84c0a012]{transition:opacity .15s ease}.fade-enter-from[data-v-84c0a012],.fade-leave-to[data-v-84c0a012]{opacity:0}.slide-enter-active[data-v-84c0a012],.slide-leave-active[data-v-84c0a012]{transition:all .15s ease}.slide-enter-from[data-v-84c0a012],.slide-leave-to[data-v-84c0a012]{opacity:0;transform:translateY(-4px)}.pr-edit-form[data-v-eeeebfa4]{display:flex;align-items:center;gap:.5rem}.pr-url-input[data-v-eeeebfa4]{background:var(--color-bg-input, #1e1e1e);border:1px solid var(--color-border, #333);border-radius:4px;padding:.375rem .5rem;font-size:.8125rem;color:var(--color-text, #e0e0e0);min-width:280px;max-width:400px}.pr-url-input[data-v-eeeebfa4]:focus{outline:none;border-color:var(--color-primary, #00bcd4)}.pr-url-input[data-v-eeeebfa4]::placeholder{color:var(--color-text-soft, #888)}.btn-icon[data-v-eeeebfa4]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:8px;border:none;background:transparent;color:var(--color-text-soft, #888);cursor:pointer;transition:background .15s ease,color .15s ease;flex-shrink:0}.btn-icon[data-v-eeeebfa4]:hover{background:#ffffff1a;color:var(--color-text, #ccc)}.btn-icon[data-v-eeeebfa4]:active{background:#ffffff26}.pr-edit-btn[data-v-eeeebfa4]{width:28px;height:28px;border-radius:4px}.pr-save-btn[data-v-eeeebfa4]{color:var(--color-success, #4caf50)}.pr-save-btn[data-v-eeeebfa4]:hover{background:#4caf501a}.pr-cancel-btn[data-v-eeeebfa4]{color:var(--color-text-soft, #888)}.pr-cancel-btn[data-v-eeeebfa4]:hover{background:#ffffff1a}.pr-clear-btn[data-v-eeeebfa4]{color:var(--color-error, #f44336)}.pr-clear-btn[data-v-eeeebfa4]:hover{background:#f443361a}.pr-edit-trigger[data-v-eeeebfa4]{display:inline-flex;align-items:center;gap:.25rem;background:none;border:none;color:var(--color-text-soft, #888);font-size:.75rem;cursor:pointer;padding:.25rem .375rem;border-radius:4px;transition:color .15s,background-color .15s}.pr-edit-trigger[data-v-eeeebfa4]:hover{color:var(--color-primary, #00bcd4);background:#00bcd41a}.btn-link[data-v-eeeebfa4]{background:none;border:none;cursor:pointer}@media (max-width: 480px){.pr-url-input[data-v-eeeebfa4]{min-width:180px;max-width:100%}.pr-edit-form[data-v-eeeebfa4]{flex-wrap:wrap}}.command-status-bar[data-v-564f9ea5]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex-shrink:0}.button-status-indicator[data-v-564f9ea5]{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;border:1px solid transparent}.button-status-indicator[data-v-564f9ea5] svg{width:.875rem;height:.875rem}.button-status-indicator[data-v-564f9ea5]:hover{transform:scale(1.15);box-shadow:0 0 8px #fff3}.button-status-running[data-v-564f9ea5]{background-color:#d299224d;color:#d29922;border-color:#d29922;animation:hourglass-flip-564f9ea5 2s ease-in-out infinite}.button-status-success[data-v-564f9ea5]{background-color:#3fb9504d;color:#3fb950;border-color:#3fb950}.button-status-success[data-v-564f9ea5] svg{animation:pop-in-564f9ea5 .3s ease-out}.button-status-error[data-v-564f9ea5]{background-color:#f851494d;color:#f85149;border-color:#f85149}.button-status-error[data-v-564f9ea5] svg{animation:shake-564f9ea5 .4s ease-in-out}.button-status-killed[data-v-564f9ea5]{background-color:#f851494d;color:#f85149;border-color:#f85149}@keyframes hourglass-flip-564f9ea5{0%,80%{transform:rotate(0)}90%{transform:rotate(180deg)}to{transform:rotate(180deg)}}@keyframes pop-in-564f9ea5{0%{transform:scale(0)}70%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes shake-564f9ea5{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@media (max-width: 768px){.command-status-bar[data-v-564f9ea5]{flex-wrap:wrap;gap:.5rem}.status-label[data-v-564f9ea5]{font-size:.8rem}.button-status-indicator[data-v-564f9ea5]{width:1.375rem;height:1.375rem}}.session-header[data-v-af066894]{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem;padding:0 .5rem}.session-header.is-archived[data-v-af066894]{border-left:3px solid #f59e0b;padding-left:calc(.5rem - 3px)}.session-header-row[data-v-af066894]{display:flex;align-items:center;gap:.5rem}.session-name-wrapper[data-v-af066894]{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.25rem;flex:1;min-width:0}.btn-icon[data-v-af066894]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:8px;border:none;background:transparent;color:var(--color-text-soft, #888);cursor:pointer;transition:background .15s ease,color .15s ease;flex-shrink:0}.btn-icon[data-v-af066894]:hover{background:#ffffff1a;color:var(--color-text, #ccc)}.btn-icon[data-v-af066894]:active{background:#ffffff26}.btn-star[data-v-af066894]{display:inline-flex;align-items:center;gap:.375rem}.btn-star svg[data-v-af066894]{flex-shrink:0}.btn-star.is-starred[data-v-af066894]{color:var(--color-warning, #f0ad4e)}.lane-chip[data-v-af066894]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:var(--color-bg-soft, rgba(255, 255, 255, .05));border:1px solid var(--color-border);border-radius:4px;font-size:.75rem;color:var(--color-text-soft)}.lane-chip-clickable[data-v-af066894]{cursor:pointer;transition:background-color .15s}.lane-chip-clickable[data-v-af066894]:hover{background:#ffffff1a}.lane-chip svg[data-v-af066894]{flex-shrink:0;opacity:.7}.session-name[data-v-af066894]{margin:0;font-size:1.25rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4;min-width:0}.archived-badge[data-v-af066894]{display:inline-flex;align-items:center;gap:.25rem;min-height:1.5rem;padding:.1875rem .5rem;border:1px solid rgba(245,158,11,.45);border-radius:4px;background:#f59e0b24;color:#fbbf24;font-size:.75rem;font-weight:600;line-height:1;text-transform:uppercase;white-space:nowrap}.archived-badge svg[data-v-af066894]{flex-shrink:0}.branch-pr-indicators[data-v-af066894]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.left-indicators[data-v-af066894]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex:1;min-width:0}@media (max-width: 768px){.session-header-row[data-v-af066894]{align-items:flex-start;min-height:auto;padding-top:.25rem}.session-name-wrapper[data-v-af066894]{grid-template-columns:minmax(0,1fr) auto;column-gap:.375rem;row-gap:.25rem}.name-edit-trigger[data-v-af066894]{grid-column:2;grid-row:1}.session-name[data-v-af066894]{font-size:1rem}.archived-badge[data-v-af066894]{grid-column:1 / -1;grid-row:2;justify-self:start;font-size:.6875rem;min-height:1.375rem}}.name-edit-form[data-v-af066894]{display:flex;align-items:center;gap:.5rem}.name-edit-input[data-v-af066894]{background:var(--color-bg-input, #1e1e1e);border:1px solid var(--color-border, #333);border-radius:4px;padding:.375rem .5rem;font-size:.8125rem;color:var(--color-text, #e0e0e0);min-width:200px;max-width:400px}.name-edit-input[data-v-af066894]:focus{outline:none;border-color:var(--color-primary, #00bcd4)}.name-edit-input[data-v-af066894]::placeholder{color:var(--color-text-soft, #888)}.pr-edit-btn[data-v-af066894]{width:28px;height:28px;border-radius:4px}.pr-save-btn[data-v-af066894]{color:var(--color-success, #4caf50)}.pr-save-btn[data-v-af066894]:hover{background:#4caf501a}.pr-cancel-btn[data-v-af066894]{color:var(--color-text-soft, #888)}.pr-cancel-btn[data-v-af066894]:hover{background:#ffffff1a}.pr-clear-btn[data-v-af066894]{color:var(--color-error, #f44336)}.pr-clear-btn[data-v-af066894]:hover{background:#f443361a}.name-edit-trigger[data-v-af066894]{display:inline-flex;align-items:center;gap:.25rem;background:none;border:none;color:var(--color-text-soft, #888);font-size:.75rem;cursor:pointer;padding:.25rem .375rem;border-radius:4px;transition:color .15s,background-color .15s}.name-edit-trigger[data-v-af066894]:hover{color:var(--color-primary, #00bcd4);background:#00bcd41a}.btn-link[data-v-af066894]{background:none;border:none;cursor:pointer}.changes-indicator[data-v-c78bf9e2],.canvas-indicator[data-v-c78bf9e2]{display:inline-block;width:6px;height:6px;background-color:var(--color-warning, #d29922);border-radius:50%;margin-left:4px;vertical-align:middle}.tabs-mobile[data-v-c78bf9e2]{align-items:center;gap:.5rem}.back-icon[data-v-c78bf9e2]{display:inline-flex;align-items:center;gap:.25rem}.back-icon svg[data-v-c78bf9e2]{display:inline-block;vertical-align:middle}.tabs-session-detail .tabs-desktop[data-v-c78bf9e2]{flex:1;min-width:0}.tabs-session-detail .tabs-desktop .tab[data-v-c78bf9e2]{flex:1 1 0;text-align:center;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-chat-handle[data-v-189ca246]{position:fixed;right:0;top:50%;transform:translateY(-50%);width:40px;height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:#374151cc;border-radius:8px 0 0 8px;cursor:pointer;z-index:900;transition:background-color .2s ease,transform .2s ease;min-width:44px;min-height:44px}.session-chat-handle[data-v-189ca246]:hover{background:#0891b2e6;transform:translateY(-50%) translate(-4px)}.session-chat-handle[data-v-189ca246]:focus-visible{outline:2px solid var(--color-primary, #06b6d4);outline-offset:2px}.handle-icon[data-v-189ca246]{color:var(--color-text-soft, #9ca3af);transition:color .2s ease}.session-chat-handle:hover .handle-icon[data-v-189ca246]{color:#fff}.active-spinner[data-v-189ca246]{width:.75rem;height:.75rem;border:2px solid rgba(6,182,212,.3);border-top-color:#06b6d4;border-radius:50%;animation:spin-189ca246 .8s linear infinite}@keyframes spin-189ca246{to{transform:rotate(360deg)}}.todo-drawer[data-v-88d56995]{border-top:1px solid var(--color-border);background-color:var(--color-background-soft)}.todo-header[data-v-88d56995]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;cursor:pointer;-webkit-user-select:none;user-select:none}.todo-header[data-v-88d56995]:hover{background-color:var(--color-background-mute)}.todo-label[data-v-88d56995]{font-weight:600;font-size:.875rem;color:var(--color-text)}.todo-summary[data-v-88d56995]{display:flex;align-items:center;gap:.75rem;flex:1;overflow:hidden}.todo-chip[data-v-88d56995]{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--color-text-soft);white-space:nowrap}.todo-text[data-v-88d56995]{max-width:150px;overflow:hidden;text-overflow:ellipsis}.todo-more[data-v-88d56995]{font-size:.75rem;color:var(--color-text-soft);white-space:nowrap}.todo-counts[data-v-88d56995]{display:flex;align-items:center;gap:.75rem;flex:1}.count[data-v-88d56995]{font-size:.75rem}.count.completed[data-v-88d56995]{color:var(--color-success, #10b981)}.count.in-progress[data-v-88d56995]{color:var(--color-accent, #22d3ee)}.count.pending[data-v-88d56995]{color:var(--color-text-soft)}.expand-toggle[data-v-88d56995]{background:none;border:none;color:var(--color-text-soft);cursor:pointer;padding:.25rem;font-size:.75rem;line-height:1}.expand-toggle[data-v-88d56995]:hover{color:var(--color-text)}.todo-list[data-v-88d56995]{padding:.5rem 1rem 1rem;display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.todo-item[data-v-88d56995]{display:flex;align-items:flex-start;gap:.5rem;font-size:.875rem;padding:.25rem 0}.todo-item.todo-completed[data-v-88d56995]{opacity:.6}.todo-item.todo-completed .todo-content[data-v-88d56995]{text-decoration:line-through}.todo-content[data-v-88d56995]{flex:1;color:var(--color-text)}.status-icon[data-v-88d56995]{width:14px;height:14px;border-radius:50%;flex-shrink:0;margin-top:2px}.status-icon.status-pending[data-v-88d56995]{border:2px solid var(--color-text-soft);background:transparent}.status-icon.status-in_progress[data-v-88d56995]{border:2px solid var(--color-accent, #22d3ee);background:linear-gradient(to right,var(--color-accent, #22d3ee) 50%,transparent 50%)}.status-icon.status-completed[data-v-88d56995]{border:2px solid var(--color-success, #10b981);background-color:var(--color-success, #10b981)}.tree-item[data-v-55317794]{-webkit-user-select:none;user-select:none}.tree-item-row[data-v-55317794]{display:flex;align-items:center;padding:.5rem .75rem;cursor:pointer;transition:background-color .15s;gap:.375rem;border-radius:.25rem;margin-bottom:1px}.tree-item-row[data-v-55317794]:hover{background:var(--color-background-soft)}.tree-item-row.active[data-v-55317794]{background:#58a6ff1a;border-left:3px solid var(--color-primary);padding-left:calc(.75rem - 3px)}.tree-indent[data-v-55317794]{flex-shrink:0}.branch-indicator[data-v-55317794]{display:flex;align-items:center;color:#8b5cf6b3;flex-shrink:0}.expand-toggle[data-v-55317794]{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:transparent;border:none;color:var(--color-text-soft);cursor:pointer;flex-shrink:0;border-radius:2px}.expand-toggle[data-v-55317794]:hover{background:var(--color-background-mute);color:var(--color-text)}.expand-icon[data-v-55317794]{font-size:.5rem;transition:transform .15s}.expand-icon.expanded[data-v-55317794]{transform:rotate(90deg)}.expand-placeholder[data-v-55317794]{width:16px;flex-shrink:0}.conv-name[data-v-55317794]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem}.conv-meta[data-v-55317794]{font-size:.75rem;color:var(--color-text-soft);white-space:nowrap;flex-shrink:0}.conv-tokens[data-v-55317794]{font-family:var(--font-mono)}.children-badge[data-v-55317794]{display:flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 .25rem;background:#8b5cf626;color:#8b5cf6e6;border-radius:9px;font-size:.6875rem;font-weight:600;flex-shrink:0}.delete-btn[data-v-55317794]{padding:.125rem .375rem;background:transparent;border:none;color:var(--color-text-soft);font-size:1rem;cursor:pointer;border-radius:.25rem;opacity:0;transition:opacity .15s,color .15s,background-color .15s;flex-shrink:0}.tree-item-row:hover .delete-btn[data-v-55317794]{opacity:1}.delete-btn[data-v-55317794]:hover{background:var(--color-danger, #ef4444);color:#fff}.tree-children[data-v-55317794]{margin-left:.25rem;border-left:1px solid var(--color-border);padding-left:.25rem}.conversation-panel[data-v-7e3a4507]{background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);margin-bottom:1rem}.panel-header[data-v-7e3a4507]{padding:.5rem .75rem}.header-row[data-v-7e3a4507]{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.dropdown-container[data-v-7e3a4507]{position:relative;flex:1;max-width:300px}.dropdown-trigger[data-v-7e3a4507]{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.4rem .6rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);font-size:.875rem;cursor:pointer;transition:border-color .15s}.dropdown-trigger[data-v-7e3a4507]:hover{border-color:var(--color-primary)}.dropdown-label[data-v-7e3a4507]{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-arrow[data-v-7e3a4507]{font-size:.5rem;color:var(--color-text-soft);margin-left:.5rem}.dropdown-menu[data-v-7e3a4507]{position:absolute;top:100%;left:0;min-width:100%;width:max-content;max-width:450px;margin-top:.25rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:0 4px 12px #00000026;z-index:100;max-height:350px;overflow-y:auto;padding:.25rem}.cost-display[data-v-7e3a4507]{display:flex;align-items:center;gap:.375rem;padding:.25rem .5rem;background:var(--color-background);border-radius:var(--border-radius);cursor:pointer;transition:background-color .15s}.cost-display[data-v-7e3a4507]:hover{background:var(--color-background-mute)}.cost-label[data-v-7e3a4507]{font-size:.75rem;color:var(--color-text-soft)}.cost-value[data-v-7e3a4507]{font-family:var(--font-mono);font-size:.875rem;font-weight:600;color:var(--color-accent, var(--color-primary))}.toggle-btn[data-v-7e3a4507]{background:none;border:none;color:var(--color-text-soft);font-size:.5rem;cursor:pointer;padding:.25rem}.toggle-btn[data-v-7e3a4507]:hover{color:var(--color-text)}.btn-new[data-v-7e3a4507]{display:flex;align-items:center;gap:.25rem;padding:.4rem .6rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);font-size:.8rem;font-weight:500;cursor:pointer;transition:border-color .15s,background-color .15s;white-space:nowrap;margin-left:auto}.btn-new[data-v-7e3a4507]:hover{border-color:var(--color-primary);background:var(--color-background-soft)}@media (max-width: 480px){.btn-new[data-v-7e3a4507]{margin-left:0;flex:1 0 100%;justify-content:center}}.token-breakdown[data-v-7e3a4507]{padding:.75rem;border-top:1px solid var(--color-border)}.token-header[data-v-7e3a4507]{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.token-label[data-v-7e3a4507]{font-size:.875rem;color:var(--color-text-soft)}.token-value[data-v-7e3a4507]{font-family:var(--font-mono);font-size:1.125rem;font-weight:700;color:var(--color-accent, var(--color-primary))}.token-grid[data-v-7e3a4507]{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:.75rem}@media (min-width: 640px){.token-grid[data-v-7e3a4507]{grid-template-columns:repeat(4,1fr)}}.token-item[data-v-7e3a4507]{display:flex;flex-direction:column;align-items:center;padding:.5rem;background:var(--color-background);border-radius:.25rem;text-align:center}.token-type[data-v-7e3a4507]{font-size:.625rem;text-transform:uppercase;color:var(--color-text-soft);margin-bottom:.25rem}.token-count[data-v-7e3a4507]{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--color-text)}.token-weight[data-v-7e3a4507]{font-size:.625rem;color:var(--color-text-soft)}.token-weighted[data-v-7e3a4507]{font-family:var(--font-mono);font-size:.625rem;color:var(--color-accent, var(--color-primary))}.breakdown-footer[data-v-7e3a4507]{display:flex;align-items:center;justify-content:flex-end}.settings-btn[data-v-7e3a4507]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid var(--color-border);border-radius:.25rem;color:var(--color-text-soft);cursor:pointer;transition:all .15s}.settings-btn[data-v-7e3a4507]:hover{border-color:var(--color-primary);color:var(--color-text);background:var(--color-background-soft)}.thinking-block[data-v-400b3f73]{background:#58a6ff14;border:1px solid rgba(88,166,255,.2);border-radius:6px;padding:.625rem;font-size:.8125rem}.thinking-header[data-v-400b3f73]{display:flex;align-items:center;gap:.375rem;margin-bottom:.5rem;color:var(--color-primary)}.thinking-icon[data-v-400b3f73]{display:flex;align-items:center;opacity:.8}.thinking-label[data-v-400b3f73]{font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.025em}.thinking-time[data-v-400b3f73]{margin-left:auto;font-size:.6875rem;color:var(--color-text-soft);font-weight:400}.thinking-content[data-v-400b3f73]{color:var(--color-text-soft);line-height:1.5}.thinking-text[data-v-400b3f73]{white-space:pre-wrap;word-break:break-word;font-style:italic}.show-more-btn[data-v-400b3f73]{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:.25rem 0;font-size:.75rem;text-decoration:underline;opacity:.8}.show-more-btn[data-v-400b3f73]:hover{opacity:1}.thinking-streaming[data-v-400b3f73]{border-style:dashed;animation:streamPulse-400b3f73 2s ease-in-out infinite}@keyframes streamPulse-400b3f73{0%,to{border-color:#58a6ff33}50%{border-color:#58a6ff80}}.streaming-dots[data-v-400b3f73]{display:flex;gap:.15rem;align-items:center;margin-left:.25rem}.streaming-dots .dot[data-v-400b3f73]{width:4px;height:4px;border-radius:50%;background-color:var(--color-primary);animation:pulse-400b3f73 1.4s ease-in-out infinite}.streaming-dots .dot[data-v-400b3f73]:nth-child(2){animation-delay:.2s}.streaming-dots .dot[data-v-400b3f73]:nth-child(3){animation-delay:.4s}@keyframes pulse-400b3f73{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.thinking-streaming[data-v-400b3f73]{animation:none}.streaming-dots .dot[data-v-400b3f73]{animation:none;opacity:.6}}.command-block[data-v-c3b9c4c5]{background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:6px;padding:.625rem;font-size:.8125rem}.command-tool_input[data-v-c3b9c4c5]{border-left:3px solid var(--color-warning, #d29922)}.command-tool_output[data-v-c3b9c4c5]{border-left:3px solid var(--color-success, #3fb950)}.command-header[data-v-c3b9c4c5]{display:flex;align-items:center;gap:.375rem;margin-bottom:.5rem}.command-icon[data-v-c3b9c4c5]{display:flex;align-items:center;opacity:.7}.command-tool_input .command-icon[data-v-c3b9c4c5]{color:var(--color-warning, #d29922)}.command-tool_output .command-icon[data-v-c3b9c4c5]{color:var(--color-success, #3fb950)}.command-label[data-v-c3b9c4c5]{font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.025em;color:var(--color-text-soft)}.command-tool-name[data-v-c3b9c4c5]{background:var(--color-background-mute);padding:.125rem .375rem;border-radius:3px;font-size:.6875rem;font-family:var(--font-mono, monospace);color:var(--color-text)}.command-time[data-v-c3b9c4c5]{margin-left:auto;font-size:.6875rem;color:var(--color-text-soft)}.command-content[data-v-c3b9c4c5]{position:relative}.command-summary[data-v-c3b9c4c5]{margin-bottom:.5rem}.command-summary code[data-v-c3b9c4c5]{display:block;padding:.5rem;background:var(--color-background);border-radius:4px;font-size:.8125rem;font-family:var(--font-mono, "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace);color:var(--color-text);word-break:break-word;white-space:pre-wrap}.raw-json-details[data-v-c3b9c4c5]{margin-top:.25rem}.raw-json-details summary[data-v-c3b9c4c5]{cursor:pointer;font-size:.75rem;color:var(--color-text-soft);-webkit-user-select:none;user-select:none;padding:.25rem 0}.raw-json-details summary[data-v-c3b9c4c5]:hover{color:var(--color-primary)}.raw-json-details[open] summary[data-v-c3b9c4c5]{margin-bottom:.375rem}.command-pre[data-v-c3b9c4c5]{margin:0;padding:.5rem;background:var(--color-background);border-radius:4px;font-size:.75rem;font-family:var(--font-mono, "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace);overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:var(--color-text);line-height:1.4;max-height:300px;overflow-y:auto}.command-pre.expanded[data-v-c3b9c4c5]{max-height:none}.show-more-btn[data-v-c3b9c4c5]{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:.25rem 0;font-size:.75rem;text-decoration:underline;opacity:.8}.show-more-btn[data-v-c3b9c4c5]:hover{opacity:1}.work-log-panel[data-v-5fda898d]{margin-top:.75rem;border-left:2px solid var(--color-border);padding-left:.75rem}.work-log-header[data-v-5fda898d]{cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--color-text-soft);padding:.25rem 0;-webkit-user-select:none;user-select:none;list-style:none}.work-log-header[data-v-5fda898d]::-webkit-details-marker{display:none}.work-log-header[data-v-5fda898d]:hover{color:var(--color-text)}.work-log-icon[data-v-5fda898d]{display:flex;align-items:center;opacity:.7}.work-log-title[data-v-5fda898d]{font-weight:500}.work-log-count[data-v-5fda898d]{opacity:.7}.work-log-chevron[data-v-5fda898d]{margin-left:auto;display:flex;align-items:center;transition:transform .15s ease}.work-log-chevron.expanded[data-v-5fda898d]{transform:rotate(90deg)}.work-log-content[data-v-5fda898d]{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.message[data-v-9372c109]{padding:1rem;margin-bottom:1rem;border-radius:var(--border-radius);background-color:var(--color-background-soft);border:1px solid var(--color-border)}.message-user[data-v-9372c109]{background-color:#58a6ff1a;border-color:#58a6ff4d}.message-assistant[data-v-9372c109]{background-color:var(--color-background-soft)}.message-system[data-v-9372c109]{background-color:#8b949e1a;border-color:#8b949e4d}.message-header[data-v-9372c109]{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.message-role[data-v-9372c109]{font-weight:600;font-size:.875rem;text-transform:capitalize}.message-time[data-v-9372c109]{margin-left:auto;font-size:.75rem;color:var(--color-text-soft)}.message-model[data-v-9372c109]{font-size:.75rem;color:var(--color-text-soft);padding:.125rem .375rem;background:var(--color-background-mute);border-radius:.25rem;font-family:ui-monospace,monospace}.message-content[data-v-9372c109]{white-space:pre-wrap;word-break:break-word}.message-content[data-v-9372c109] .markdown-viewer{white-space:normal}.message-tools[data-v-9372c109]{margin-top:.75rem}.message-tools details[data-v-9372c109]{margin-top:.5rem}.message-tools summary[data-v-9372c109]{cursor:pointer;font-size:.875rem;color:var(--color-text-soft)}.message-tools pre[data-v-9372c109]{margin-top:.5rem;font-size:.75rem}.message-attachments[data-v-9372c109]{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;padding-top:.5rem;border-top:1px dashed var(--color-border)}.attachment-chip[data-v-9372c109]{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:.375rem;font-size:.75rem}.attachment-icon[data-v-9372c109]{font-size:.875rem}.attachment-name[data-v-9372c109]{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.attachment-size[data-v-9372c109]{color:var(--color-text-soft);font-size:.625rem}.message[data-v-b4ae019c]{padding:1rem;margin-bottom:1rem;border-radius:var(--border-radius);background-color:var(--color-background-soft);border:1px solid var(--color-border)}.message-assistant[data-v-b4ae019c]{background-color:var(--color-background-soft)}.message-streaming[data-v-b4ae019c]{border-color:var(--color-accent);border-style:dashed}.message-header[data-v-b4ae019c]{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.message-role[data-v-b4ae019c]{font-weight:600;font-size:.875rem;text-transform:capitalize}.message-content[data-v-b4ae019c]{white-space:pre-wrap;word-break:break-word}.message-content[data-v-b4ae019c] .markdown-viewer{white-space:normal}.streaming-indicator[data-v-b4ae019c]{display:flex;gap:.25rem;align-items:center}.streaming-indicator .dot[data-v-b4ae019c]{width:6px;height:6px;border-radius:50%;background-color:var(--color-accent);animation:pulse-b4ae019c 1.4s ease-in-out infinite}.streaming-indicator .dot[data-v-b4ae019c]:nth-child(2){animation-delay:.2s}.streaming-indicator .dot[data-v-b4ae019c]:nth-child(3){animation-delay:.4s}@keyframes pulse-b4ae019c{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.token-usage-panel[data-v-1f28bdb7]{display:flex;align-items:center;gap:.5rem;position:relative}.token-display[data-v-1f28bdb7]{display:flex;align-items:center;gap:.375rem;padding:.25rem .5rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;transition:background-color .15s}.token-display[data-v-1f28bdb7]:hover{background:var(--color-background-mute)}.token-label[data-v-1f28bdb7]{font-size:.75rem;color:var(--color-text-soft)}.token-value[data-v-1f28bdb7]{font-family:var(--font-mono);font-size:.875rem;font-weight:600;color:var(--color-accent, var(--color-primary))}.token-value.clickable[data-v-1f28bdb7]{cursor:pointer;transition:opacity .15s}.token-value.clickable[data-v-1f28bdb7]:hover{opacity:.8}.token-breakdown[data-v-1f28bdb7]{position:absolute;top:100%;left:0;z-index:100;padding:.75rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);min-width:400px}.token-header[data-v-1f28bdb7]{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.token-grid[data-v-1f28bdb7]{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}@media (min-width: 640px){.token-grid[data-v-1f28bdb7]{grid-template-columns:repeat(5,1fr)}}.token-item[data-v-1f28bdb7]{display:flex;flex-direction:column;align-items:center;padding:.5rem;background:var(--color-background);border-radius:.25rem;text-align:center}.token-type[data-v-1f28bdb7]{font-size:.625rem;text-transform:uppercase;color:var(--color-text-soft);margin-bottom:.25rem}.token-count[data-v-1f28bdb7]{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--color-text)}.messages[data-v-87b2eefd]{padding:.25rem 0;position:relative;max-height:65vh;overflow-y:auto;scroll-behavior:smooth}.conversation-controls-row[data-v-87b2eefd]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.25rem 0;position:relative;min-height:32px}.conversation-scroll-actions[data-v-87b2eefd]{display:flex;align-items:center;gap:.5rem}.conversation-scroll-btn[data-v-87b2eefd]{padding:.5rem .75rem;background:#1f2937d9;border:1px solid rgba(75,85,99,.5);border-radius:6px;color:#9ca3afe6;cursor:pointer;transition:all .15s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 2px 4px #0003;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;line-height:1}.conversation-scroll-btn[data-v-87b2eefd]:hover{background:#374151f2;color:#d1d5db}.conversation-scroll-btn[data-v-87b2eefd]:active{transform:scale(.95)}.scroll-to-claude-btn[data-v-87b2eefd]{font-size:1rem;white-space:nowrap;font-weight:500}@media (min-width: 1200px){.messages[data-v-87b2eefd]{max-height:70vh}}@media (max-height: 700px){.messages[data-v-87b2eefd]{max-height:50vh}}@media (max-height: 500px){.messages[data-v-87b2eefd]{max-height:40vh}}@media (max-width: 600px){.conversation-scroll-btn[data-v-87b2eefd]{padding:.5rem .75rem;min-width:44px;min-height:44px}}.orchestration-panel[data-v-0493d7fd]{background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);padding:.5rem .75rem;margin-bottom:.5rem}.panel-header[data-v-0493d7fd]{display:flex;align-items:center;justify-content:space-between;margin-bottom:0;gap:.5rem}.panel-header.cursor-pointer[data-v-0493d7fd]{cursor:pointer}.header-left[data-v-0493d7fd]{display:flex;align-items:center;gap:.5rem;flex:1}.toggle-button[data-v-0493d7fd]{background:none;border:none;padding:.25rem;cursor:pointer;color:var(--color-text-soft);display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .15s,background .15s,transform .2s ease;flex-shrink:0}.toggle-button[data-v-0493d7fd]:hover{color:var(--color-text);background:var(--color-background-mute)}.chevron-icon[data-v-0493d7fd]{width:1rem;height:1rem;transition:transform .2s ease}.toggle-button[aria-expanded=true] .chevron-icon[data-v-0493d7fd]{transform:rotate(180deg)}.panel-title[data-v-0493d7fd]{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--color-text-soft);letter-spacing:.05em}.orchestration-content[data-v-0493d7fd]{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.schedule-row[data-v-0493d7fd]{display:flex;flex-direction:column;justify-content:flex-start}.template-row[data-v-0493d7fd]{padding-top:.75rem;border-top:1px solid var(--color-border);margin-top:.75rem}.btn-secondary[data-v-0493d7fd]{background-color:var(--color-background-soft);border:1px solid var(--color-border);color:var(--color-text-soft)}.btn-secondary[data-v-0493d7fd]:hover{background-color:var(--color-background-mute)}.btn-schedule[data-v-0493d7fd]{min-width:48px;min-height:48px;padding:.75rem;display:flex;align-items:center;justify-content:center;transition:background-color .15s,border-color .15s,color .15s}.btn-schedule[data-v-0493d7fd]:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.btn-schedule[data-v-0493d7fd]:disabled{opacity:.5;cursor:not-allowed}.schedule-disabled-hint[data-v-0493d7fd]{margin:.5rem 0 0;padding-top:.5rem;font-size:.75rem;color:var(--color-text-soft);font-style:italic}.auto-reschedule-row[data-v-0493d7fd]{padding-top:.75rem;border-top:1px solid var(--color-border);margin-top:.75rem}.auto-reschedule-content[data-v-0493d7fd]{display:flex;align-items:center;gap:.5rem}.reschedule-icon[data-v-0493d7fd]{font-size:1rem;flex-shrink:0}.reschedule-label[data-v-0493d7fd]{font-size:.9rem;color:var(--color-text);flex:1}.btn-status[data-v-0493d7fd]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;background:#22c5ff1a;border:1px solid rgba(34,197,255,.3);border-radius:.375rem;color:var(--color-text-soft);cursor:pointer;transition:all .15s}.btn-status[data-v-0493d7fd]:hover{background:#22c5ff26;border-color:#22c5ff80;color:var(--color-text)}.status-badge[data-v-0493d7fd]{font-size:.8rem;color:var(--color-text-soft)}.edit-link[data-v-0493d7fd]{font-size:.8rem;text-decoration:underline;opacity:.7;transition:opacity .15s}.btn-status:hover .edit-link[data-v-0493d7fd]{opacity:1}.btn-configure[data-v-0493d7fd]{padding:.5rem .75rem;font-size:.85rem;background:var(--color-background-soft);border:1px solid var(--color-border);color:var(--color-text-soft);cursor:pointer;border-radius:.375rem;transition:all .15s}.btn-configure[data-v-0493d7fd]:hover{background:var(--color-background-mute);border-color:#22c5ff80;color:var(--color-text)}.input-form[data-v-cb4672a1]{display:flex;flex-direction:column;gap:.5rem}.input-form textarea[data-v-cb4672a1]{width:100%}.input-controls[data-v-cb4672a1]{display:flex;align-items:center;gap:1rem}.session-options[data-v-cb4672a1]{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;flex:1}.thinking-toggle[data-v-cb4672a1]{display:flex;align-items:center;gap:.5rem}.toggle-label[data-v-cb4672a1]{font-size:.875rem;color:var(--color-text-soft)}.mode-switcher[data-v-cb4672a1]{display:flex;align-items:center;gap:.5rem}.toggle-switch[data-v-cb4672a1]{position:relative;display:inline-block;width:40px;height:22px}.toggle-switch input[data-v-cb4672a1]{opacity:0;width:0;height:0}.toggle-slider[data-v-cb4672a1]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-background-mute);border:1px solid var(--color-border);border-radius:22px;transition:.2s}.toggle-slider[data-v-cb4672a1]:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:var(--color-text-soft);border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider[data-v-cb4672a1]{background-color:var(--color-primary);border-color:var(--color-primary)}.toggle-switch input:checked+.toggle-slider[data-v-cb4672a1]:before{transform:translate(18px);background-color:#fff}.toggle-switch input:disabled+.toggle-slider[data-v-cb4672a1]{opacity:.5;cursor:not-allowed}.auto-send-row[data-v-cb4672a1]{padding:.5rem 0}.auto-send-label[data-v-cb4672a1]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:var(--color-text-soft, #9ca3af)}.auto-send-checkbox[data-v-cb4672a1]{width:1rem;height:1rem;cursor:pointer;accent-color:var(--color-primary, #06b6d4)}.auto-send-text[data-v-cb4672a1]{-webkit-user-select:none;user-select:none}.send-button-row[data-v-cb4672a1]{padding-top:.75rem;margin-bottom:14px;display:flex;justify-content:center}.btn-send-full[data-v-cb4672a1]{width:100%;min-height:52px;padding:1rem 1.5rem;font-size:1.1rem;font-weight:600;text-align:center;display:flex;align-items:center;justify-content:center;gap:.5rem}.draft-actions[data-v-cb4672a1]{width:100%}@media (max-width: 600px){.input-controls[data-v-cb4672a1]{flex-wrap:wrap}.session-options[data-v-cb4672a1]{width:100%;justify-content:flex-start}}@media (max-width: 400px){.mode-label[data-v-cb4672a1]{display:none}}.live-work-log-panel[data-v-6fa2cf53]{border-top:1px solid var(--color-border);padding:.75rem 0}.live-work-log-panel[data-v-6fa2cf53]:not(:has(.live-header)){border-top:none;padding-top:0}.live-header[data-v-6fa2cf53]{display:flex;align-items:center;gap:.5rem;color:var(--color-text-soft);font-size:.875rem}.live-title[data-v-6fa2cf53]{font-weight:500}.live-count[data-v-6fa2cf53]{opacity:.7;font-size:.8125rem}.live-logs[data-v-6fa2cf53]{margin-top:.75rem;max-height:250px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding-right:.25rem;border-left:2px solid var(--color-primary);padding-left:.75rem}.live-log-item[data-v-6fa2cf53]{animation:slideIn-6fa2cf53 .2s ease}@keyframes slideIn-6fa2cf53{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.live-logs[data-v-6fa2cf53]::-webkit-scrollbar{width:6px}.live-logs[data-v-6fa2cf53]::-webkit-scrollbar-track{background:var(--color-background-soft);border-radius:3px}.live-logs[data-v-6fa2cf53]::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.live-logs[data-v-6fa2cf53]::-webkit-scrollbar-thumb:hover{background:var(--color-text-soft)}@media (prefers-reduced-motion: reduce){.live-log-item[data-v-6fa2cf53]{animation:none}}@media (max-width: 360px){.live-title[data-v-6fa2cf53]{display:none}}.running-state[data-v-99a76c95]{border-top:1px solid var(--color-border);padding-top:1rem}.running-header[data-v-99a76c95]{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem}.running-status[data-v-99a76c95]{display:flex;align-items:center;gap:.5rem;color:var(--color-text-soft);font-size:.875rem}.running-title[data-v-99a76c95]{font-weight:500}.btn-stop[data-v-99a76c95]{min-height:36px;padding:.5rem 1rem;font-size:.875rem;flex-shrink:0}.running-actions[data-v-99a76c95]{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.running-model-label[data-v-99a76c95]{font-size:.75rem;color:var(--color-text-soft, #888);white-space:nowrap}.template-pending[data-v-99a76c95]{display:flex;align-items:center;gap:.5rem;padding:.75rem;margin-top:.75rem;background:var(--color-bg-soft);border-radius:.375rem;border:1px solid var(--color-border);font-size:.875rem}.template-pending-label[data-v-99a76c95]{color:var(--color-text-soft);font-weight:500}.template-pending-link[data-v-99a76c95]{color:var(--color-accent);text-decoration:none;font-weight:500;transition:color .15s}.template-pending-link[data-v-99a76c95]:hover{color:var(--color-accent);text-decoration:underline}.template-pending-description[data-v-99a76c95]{color:var(--color-text-soft);font-size:.75rem;font-style:italic}@media (max-width: 360px){.running-title[data-v-99a76c95]{display:none}}.modal-backdrop[data-v-9bc8b873]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-9bc8b873]{background:var(--color-background-secondary, #1f2937);border-radius:.5rem;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;border:1px solid var(--color-border)}.modal-header[data-v-9bc8b873]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.modal-title[data-v-9bc8b873]{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text)}.close-btn[data-v-9bc8b873]{background:none;border:none;font-size:1.5rem;color:var(--color-text-soft);cursor:pointer;padding:0;line-height:1}.close-btn[data-v-9bc8b873]:hover{color:var(--color-text)}.modal-body[data-v-9bc8b873]{padding:1.5rem}.modal-footer[data-v-9bc8b873]{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--color-border)}.form-group[data-v-9bc8b873]{margin-bottom:1rem}.form-label[data-v-9bc8b873]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}.form-input[data-v-9bc8b873]{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:.25rem;background:var(--color-background);color:var(--color-text);font-size:.95rem}.form-input[data-v-9bc8b873]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #22c5ff1a}textarea.form-input[data-v-9bc8b873]{resize:vertical;min-height:80px}.form-help[data-v-9bc8b873]{margin-top:.25rem;font-size:.875rem;color:var(--color-text-soft)}.btn[data-v-9bc8b873]{padding:.5rem 1rem;border-radius:.25rem;font-weight:500;cursor:pointer;border:none;font-size:.9rem;transition:opacity .2s,background-color .2s}.btn-primary[data-v-9bc8b873]{background:var(--color-primary);color:#fff}.btn-primary[data-v-9bc8b873]:hover:not(:disabled){opacity:.9}.btn-primary[data-v-9bc8b873]:disabled{opacity:.5;cursor:not-allowed}.btn-secondary[data-v-9bc8b873]{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary[data-v-9bc8b873]:hover{background:var(--color-background-secondary)}.modal-backdrop[data-v-fccb3328]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-fccb3328]{display:flex;flex-direction:column;background:var(--color-background-secondary, #1f2937);border-radius:.5rem;width:100%;max-width:500px;max-height:90vh;overflow:hidden;border:1px solid var(--color-border)}.modal-header[data-v-fccb3328]{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.modal-title[data-v-fccb3328]{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text)}.close-btn[data-v-fccb3328]{background:none;border:none;font-size:1.5rem;color:var(--color-text-soft);cursor:pointer;padding:0;line-height:1}.close-btn[data-v-fccb3328]:hover{color:var(--color-text)}.modal-body[data-v-fccb3328]{flex:1;overflow-y:auto;min-height:0;padding:1.5rem}.error-message[data-v-fccb3328]{padding:.75rem;margin-bottom:1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:.25rem;color:#fca5a5;font-size:.9rem}.modal-footer[data-v-fccb3328]{flex-shrink:0;display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--color-border)}.form-group[data-v-fccb3328]{margin-bottom:1rem}.form-label[data-v-fccb3328]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}.form-input[data-v-fccb3328]{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:.25rem;background:var(--color-background);color:var(--color-text);font-size:.95rem}.form-input[data-v-fccb3328]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #22c5ff1a}.form-help[data-v-fccb3328]{margin-top:.25rem;font-size:.875rem;color:var(--color-text-soft)}.toggle-switch[data-v-fccb3328]{display:flex;align-items:center;cursor:pointer;gap:.75rem}.toggle-switch input[data-v-fccb3328]{display:none}.toggle-slider[data-v-fccb3328]{position:relative;display:inline-block;width:2.5rem;height:1.25rem;background-color:var(--color-border);border-radius:1rem;transition:background-color .2s;flex-shrink:0}.toggle-slider[data-v-fccb3328]:after{content:"";position:absolute;width:1rem;height:1rem;border-radius:50%;background-color:#fff;top:.125rem;left:.125rem;transition:transform .2s}.toggle-switch input:checked+.toggle-slider[data-v-fccb3328]{background-color:var(--color-primary)}.toggle-switch input:checked+.toggle-slider[data-v-fccb3328]:after{transform:translate(1.25rem)}.toggle-label[data-v-fccb3328]{color:var(--color-text);font-weight:500}.reschedule-settings[data-v-fccb3328]{padding:1rem;margin-top:1rem;border-left:2px solid var(--color-primary);background:var(--color-background, rgba(255, 255, 255, .02));border-radius:0 .25rem .25rem 0}.settings-label[data-v-fccb3328]{margin-bottom:.75rem;font-weight:500;font-size:.95rem;color:var(--color-text)}.checkbox-option[data-v-fccb3328]{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;cursor:pointer;color:var(--color-text)}.checkbox-option input[data-v-fccb3328]{width:1rem;height:1rem;cursor:pointer}.btn[data-v-fccb3328]{padding:.5rem 1rem;border-radius:.25rem;font-weight:500;cursor:pointer;border:none;font-size:.9rem;transition:opacity .2s,background-color .2s}.btn-primary[data-v-fccb3328]{background:var(--color-primary);color:#fff}.btn-primary[data-v-fccb3328]:hover:not(:disabled){opacity:.9}.btn-primary[data-v-fccb3328]:disabled{opacity:.5;cursor:not-allowed}.btn-secondary[data-v-fccb3328]{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary[data-v-fccb3328]:hover{background:var(--color-background-secondary)}.scheduling-info[data-v-8e40f1e4]{border-radius:var(--border-radius, 6px);padding:1.5rem;margin-bottom:1rem}.scheduled-panel[data-v-8e40f1e4]{background:linear-gradient(135deg,#22c5ff1a,#22c5ff0d);border:1px solid rgba(34,197,255,.3);border-left:4px solid var(--color-primary)}.configure-reschedule-panel[data-v-8e40f1e4]{margin-bottom:1rem}.configure-btn[data-v-8e40f1e4]{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:var(--color-background, rgba(255, 255, 255, .02));border:1px dashed rgba(34,197,255,.3);border-radius:var(--border-radius, 6px);color:var(--color-text-soft);cursor:pointer;transition:all .2s ease;font-size:.9rem}.configure-btn[data-v-8e40f1e4]:hover{background:#22c5ff14;border-color:#22c5ff80;color:var(--color-text)}.configure-icon[data-v-8e40f1e4]{font-size:1rem;opacity:.7}.configure-btn:hover .configure-icon[data-v-8e40f1e4]{opacity:1}.configure-text[data-v-8e40f1e4]{flex:1;text-align:left}.configure-arrow[data-v-8e40f1e4]{opacity:.5;transition:transform .2s ease,opacity .2s ease}.configure-btn:hover .configure-arrow[data-v-8e40f1e4]{opacity:1;transform:translate(2px)}.info-header[data-v-8e40f1e4]{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.info-icon[data-v-8e40f1e4]{font-size:1.5rem;flex-shrink:0}.info-title[data-v-8e40f1e4]{margin:0;font-size:1.1rem;font-weight:600;color:var(--color-text);flex:1}.info-content[data-v-8e40f1e4]{display:flex;flex-direction:column;gap:1rem}.countdown-section[data-v-8e40f1e4]{background:var(--color-background, rgba(255, 255, 255, .05));padding:1rem;border-radius:var(--border-radius, 4px)}.countdown-text[data-v-8e40f1e4]{margin:0 0 .25rem;font-size:1rem;color:var(--color-text);line-height:1.4}.countdown-text strong[data-v-8e40f1e4]{color:var(--color-primary);font-weight:600}.absolute-time[data-v-8e40f1e4]{margin:0;font-size:.875rem;color:var(--color-text-soft)}.reschedule-info[data-v-8e40f1e4]{display:flex;flex-direction:column;gap:.5rem}.reschedule-badge[data-v-8e40f1e4]{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#22c5ff26;border:1px solid rgba(34,197,255,.3);border-radius:.375rem;width:fit-content}.badge-icon[data-v-8e40f1e4]{font-size:1rem}.badge-label[data-v-8e40f1e4]{font-size:.875rem;color:var(--color-text);font-weight:500}.actions[data-v-8e40f1e4]{display:flex;gap:.75rem;flex-wrap:wrap}.btn[data-v-8e40f1e4]{padding:.625rem 1.25rem;border-radius:var(--border-radius, 4px);font-size:.9rem;font-weight:500;cursor:pointer;border:none;transition:all .2s}.btn-primary[data-v-8e40f1e4]{background:var(--color-primary);color:#fff;border:1px solid var(--color-primary)}.btn-primary[data-v-8e40f1e4]:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:0 4px 8px #22c5ff33}.btn-primary[data-v-8e40f1e4]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-8e40f1e4]{background:var(--color-background);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary[data-v-8e40f1e4]:hover{background:var(--color-background-secondary)}.btn-danger[data-v-8e40f1e4]{background:var(--color-error, #dc2626);color:#fff;border:1px solid var(--color-error, #dc2626)}.btn-danger[data-v-8e40f1e4]:hover:not(:disabled){opacity:.9}.btn-danger[data-v-8e40f1e4]:disabled{opacity:.6;cursor:not-allowed}.btn-sm[data-v-8e40f1e4]{padding:.5rem 1rem;font-size:.85rem}@media (max-width: 640px){.scheduling-info[data-v-8e40f1e4]{padding:1rem}.info-header[data-v-8e40f1e4]{gap:.5rem;margin-bottom:1rem}.info-icon[data-v-8e40f1e4]{font-size:1.25rem}.info-title[data-v-8e40f1e4]{font-size:1rem}}.conversation-tab[data-v-37ed6507]{display:flex;flex-direction:column;transition:opacity .3s ease}.conversation-tab.connection-stale[data-v-37ed6507]{opacity:.5}.session-chat-picker[data-v-56c3e102]{position:absolute;top:100%;left:0;width:100%;z-index:50;margin-top:.25rem;background:var(--color-background-secondary, #1f2937);border:1px solid var(--color-border, rgba(255, 255, 255, .1));border-radius:6px;max-height:50vh;overflow-y:auto}.picker-item[data-v-56c3e102]{padding:.5rem;border-radius:var(--border-radius, 6px);cursor:pointer;transition:background-color .15s}.picker-item[data-v-56c3e102]:hover{background-color:#ffffff0d}.picker-item--active[data-v-56c3e102]{background-color:#374151}.picker-item[data-v-56c3e102]:focus-visible{outline:2px solid var(--color-primary, #06b6d4);outline-offset:-2px}.picker-item-label[data-v-56c3e102]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.picker-item-role[data-v-56c3e102]{font-size:.65rem;font-weight:600;color:var(--color-text-soft, #9ca3af);letter-spacing:.05em}.picker-item-status[data-v-56c3e102]{font-size:.7rem;display:inline-flex;align-items:center;gap:.25rem}.picker-item-status.status-running[data-v-56c3e102],.picker-item-status.status-starting[data-v-56c3e102]{color:var(--color-success, #3fb950)}.picker-item-status.status-scheduled[data-v-56c3e102]{color:var(--color-primary, #06b6d4)}.picker-item-name[data-v-56c3e102]{font-size:.875rem;font-weight:500;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text, #e5e7eb)}.picker-item-meta[data-v-56c3e102]{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--color-text-soft, #9ca3af)}.picker-item-summary[data-v-56c3e102]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:.5rem}.picker-item-date[data-v-56c3e102]{flex-shrink:0}.slide-left-enter-active,.slide-left-leave-active{transition:transform .4s cubic-bezier(.4,0,.2,1)}.slide-left-enter-from{transform:translate(100%)}.slide-left-enter-to,.slide-left-leave-from{transform:translate(0)}.slide-left-leave-to{transform:translate(100%)}@media (prefers-reduced-motion: reduce){.slide-left-enter-active,.slide-left-leave-active{transition:transform .15s ease}}.session-switch-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:.75rem;flex:1}.session-switch-spinner{display:inline-block;width:1.5rem;height:1.5rem;border:2px solid rgba(6,182,212,.2);border-top-color:#06b6d4;border-radius:50%;animation:session-switch-spin .8s linear infinite}@keyframes session-switch-spin{to{transform:rotate(360deg)}}.session-switch-text{color:#9ca3af;font-size:.8125rem}.overlay-backdrop[data-v-cfbd12d6]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#111827;display:block;overflow:hidden;overflow-y:hidden;overscroll-behavior:none}.overlay-panel-wrapper[data-v-cfbd12d6]{position:absolute;inset:0 0 0 auto;height:100%;display:flex;min-height:0;max-width:900px;width:100%;overflow:visible;overscroll-behavior:none}.overlay-close-handle[data-v-cfbd12d6]{position:absolute;left:0;top:50%;transform:translateY(-50%);width:44px;height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:#37415166;border-radius:8px;cursor:pointer;z-index:30;transition:background-color .2s ease;min-width:44px;min-height:44px;border:none}.overlay-close-handle[data-v-cfbd12d6]:hover{background:#0891b2b3}.overlay-close-handle[data-v-cfbd12d6]:focus-visible{outline:2px solid var(--color-primary, #06b6d4);outline-offset:2px}.overlay-close-handle .handle-icon[data-v-cfbd12d6]{color:var(--color-text-soft, #9ca3af);transition:color .2s ease}.overlay-close-handle:hover .handle-icon[data-v-cfbd12d6]{color:#fff}.overlay-close-handle .active-spinner[data-v-cfbd12d6]{width:.75rem;height:.75rem;border:2px solid rgba(6,182,212,.3);border-top-color:#06b6d4;border-radius:50%;animation:spin-cfbd12d6 .8s linear infinite}@keyframes spin-cfbd12d6{to{transform:rotate(360deg)}}.overlay-content[data-v-cfbd12d6]{flex:1;width:100%;display:flex;flex-direction:column;overflow:clip;padding:0;box-shadow:-4px 0 20px #00000080;position:relative;background:#111827}.overlay-body[data-v-cfbd12d6]{padding:0 1rem;padding-bottom:max(0px,env(safe-area-inset-bottom));flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:#111827}.overlay-header[data-v-cfbd12d6]{position:sticky;top:0;display:flex;flex-direction:column;gap:.375rem;padding:.75rem 1rem .375rem;padding-top:max(.75rem,env(safe-area-inset-top));background:var(--color-background-secondary, #1f2937);border-radius:0;border-bottom:1px solid var(--color-border, rgba(255, 255, 255, .1));flex-shrink:0;z-index:20;width:100%}.overlay-header-row[data-v-cfbd12d6]{display:flex;align-items:center;width:100%;min-width:0}.overlay-header-selector[data-v-cfbd12d6]{position:relative}.overlay-header-actions[data-v-cfbd12d6]{justify-content:space-between}.overlay-root-name[data-v-cfbd12d6]{font-size:1rem;font-weight:600;color:var(--color-primary, #06b6d4);word-break:break-word}.dropdown-trigger[data-v-cfbd12d6]{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.625rem .75rem;background:#ffffff0d;border:1px solid var(--color-border, rgba(255, 255, 255, .1));border-radius:var(--border-radius, 6px);color:var(--color-text, #e5e7eb);cursor:pointer;font-size:.8125rem;transition:background-color .15s}.dropdown-trigger[data-v-cfbd12d6]:hover{background:#ffffff1a}.dropdown-name[data-v-cfbd12d6]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-chevron[data-v-cfbd12d6]{color:var(--color-text-soft, #9ca3af);margin-left:.5rem;flex-shrink:0}.session-chat-overlay[data-v-cfbd12d6] .messages{max-height:none!important;overflow-y:visible!important;flex:1}.session-chat-overlay[data-v-cfbd12d6] .conversation-controls-row{position:sticky;bottom:0;z-index:10;background:#111827;pointer-events:none}.session-chat-overlay[data-v-cfbd12d6] .conversation-controls-row>*{pointer-events:auto}@media (max-width: 768px){.overlay-body[data-v-cfbd12d6]{padding-left:.5rem;padding-right:.5rem}.overlay-header[data-v-cfbd12d6]{padding-right:.5rem;padding-bottom:.375rem;padding-left:.5rem;padding-top:max(1rem,env(safe-area-inset-top))}}@media (min-width: 769px) and (max-width: 1024px){.overlay-panel-wrapper[data-v-cfbd12d6]{max-width:700px}}.session-name-wrapper[data-v-cfbd12d6]{display:inline-flex;align-items:center;gap:.25rem;flex:1;min-width:0}.name-edit-form[data-v-cfbd12d6]{display:flex;align-items:center;gap:.5rem;flex:1}.name-edit-input[data-v-cfbd12d6]{background:var(--color-bg-input, #1e1e1e);border:1px solid var(--color-border, #333);border-radius:4px;padding:.375rem .5rem;font-size:.8125rem;color:var(--color-text, #e0e0e0);min-width:200px;max-width:400px;flex:1}.name-edit-input[data-v-cfbd12d6]:focus{outline:none;border-color:var(--color-primary, #00bcd4)}.name-edit-input[data-v-cfbd12d6]::placeholder{color:var(--color-text-soft, #888)}.btn-icon[data-v-cfbd12d6]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:8px;border:none;background:transparent;color:var(--color-text-soft, #888);cursor:pointer;transition:background .15s ease,color .15s ease;flex-shrink:0}.btn-icon[data-v-cfbd12d6]:hover{background:#ffffff1a;color:var(--color-text, #ccc)}.btn-icon[data-v-cfbd12d6]:active{background:#ffffff26}.pr-edit-btn[data-v-cfbd12d6]{width:28px;height:28px}.pr-save-btn[data-v-cfbd12d6]{color:var(--color-success, #4caf50)}.pr-save-btn[data-v-cfbd12d6]:hover{background:#4caf501a}.pr-cancel-btn[data-v-cfbd12d6]{color:var(--color-text-soft, #888)}.pr-cancel-btn[data-v-cfbd12d6]:hover{background:#ffffff1a}.pr-clear-btn[data-v-cfbd12d6]{color:var(--color-error, #f44336)}.pr-clear-btn[data-v-cfbd12d6]:hover{background:#f443361a}.name-edit-trigger[data-v-cfbd12d6]{display:inline-flex;align-items:center;gap:.25rem;background:none;border:none;color:var(--color-text-soft, #888);font-size:.75rem;cursor:pointer;padding:.25rem .375rem;border-radius:4px;transition:color .15s,background-color .15s}.name-edit-trigger[data-v-cfbd12d6]:hover{color:var(--color-primary, #00bcd4);background:#00bcd41a}.add-session-btn[data-v-cfbd12d6]{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:#ffffff0d;border:1px solid var(--color-border, rgba(255, 255, 255, .1));border-radius:var(--border-radius, 6px);color:var(--color-text-soft, #9ca3af);font-size:.8125rem;white-space:nowrap;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}.add-session-btn[data-v-cfbd12d6]:hover:not(:disabled){background:#06b6d41a;color:var(--color-primary, #06b6d4);border-color:#06b6d44d}.add-session-btn[data-v-cfbd12d6]:disabled{opacity:.5;cursor:not-allowed}.btn-link[data-v-cfbd12d6]{background:none;border:none;cursor:pointer}.back-to-sessions-link[data-v-cfbd12d6]{display:inline-flex;align-items:center;gap:.25rem;color:var(--color-text-soft, #9ca3af);text-decoration:none;transition:color .15s,background-color .15s;flex-shrink:0;margin-right:1.5rem;padding:.25rem .75rem;min-height:44px;min-width:44px;border-radius:6px}.back-to-sessions-link[data-v-cfbd12d6]:hover{color:var(--color-primary, #06b6d4);background:#06b6d41a}.back-to-sessions-text[data-v-cfbd12d6]{font-size:.8125rem;margin-left:.25rem}.loading-state[data-v-b60912a5]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:3rem}.tab-content[data-v-b60912a5]{min-height:400px}.delete-overlay[data-v-b60912a5]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;display:flex;align-items:center;justify-content:center}.delete-overlay-content[data-v-b60912a5]{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--color-text, #e0e0e0);font-size:1.125rem}.delete-spinner[data-v-b60912a5]{display:inline-block;width:3rem;height:3rem;border:3px solid rgba(0,188,212,.2);border-top-color:var(--color-primary, #00bcd4);border-radius:50%;animation:spin-b60912a5 .8s linear infinite}@keyframes spin-b60912a5{to{transform:rotate(360deg)}}.fade-enter-active[data-v-b60912a5],.fade-leave-active[data-v-b60912a5]{transition:opacity .2s ease}.fade-enter-from[data-v-b60912a5],.fade-leave-to[data-v-b60912a5]{opacity:0}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.options-row[data-v-76871ccb]{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-start}.thinking-toggle[data-v-76871ccb]{display:flex;align-items:center;gap:.5rem}.toggle-label[data-v-76871ccb]{font-size:.875rem;color:var(--color-text-soft)}.mode-selector-wrapper[data-v-76871ccb],.model-selector-wrapper[data-v-76871ccb]{display:flex;align-items:center;gap:.5rem}.option-disabled[data-v-76871ccb]{opacity:.5;pointer-events:none}.effort-selector-wrapper[data-v-76871ccb],.field-with-badge[data-v-76871ccb]{display:flex;align-items:center;gap:.5rem}.toggle-switch[data-v-76871ccb]{position:relative;display:inline-block;width:40px;height:22px}.toggle-switch input[data-v-76871ccb]{opacity:0;width:0;height:0}.toggle-slider[data-v-76871ccb]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-background-mute);border:1px solid var(--color-border);border-radius:22px;transition:.2s}.toggle-slider[data-v-76871ccb]:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:var(--color-text-soft);border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider[data-v-76871ccb]{background-color:var(--color-primary);border-color:var(--color-primary)}.toggle-switch input:checked+.toggle-slider[data-v-76871ccb]:before{transform:translate(18px);background-color:#fff}@media (max-width: 480px){.options-row[data-v-76871ccb]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.options-row[data-v-76871ccb]>:last-child{grid-column:1 / -1}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{M as T}from"./ModelSelector-BMpR0DPr.js";import{M as w,u as M}from"./SlashCommandWizard-DmTyNG9O.js";import{E as V}from"./EffortLevelSelector-C2378L8e.js";import{_ as B,o as C,a as g,c as v,b as t,d as p,E as c,i as L,n as b,x as a}from"./index-B6G18FqB.js";const $={class:"form-group"},U={class:"options-row"},N={class:"mode-selector-wrapper"},O={class:"model-selector-wrapper"},x=["title"],D=["title"],F={class:"field-with-badge"},R={class:"toggle-switch"},z=["checked","disabled"],A={key:0,class:"thinking-toggle"},j={class:"field-with-badge"},q={class:"toggle-switch"},G=["checked"],H={__name:"SessionFormOptions",props:{mode:{type:String,default:"yolo"},model:{type:String,default:null},providerId:{type:String,default:null},effortLevel:{type:String,default:null},thinkingEnabled:{type:Boolean,default:!0},startImmediately:{type:Boolean,default:!0},hideStartImmediately:{type:Boolean,default:!1}},emits:["update:mode","update:model","update:providerId","update:effortLevel","update:thinkingEnabled","update:startImmediately"],setup(s){const i=s,{getModelInfo:m,fetchAgentCapabilities:h}=M(),d=b(!1),f=b(0);C(async()=>{await h(),d.value=!0,f.value+=1});const n=a(()=>(f.value<0,m(i.model))),k=a(()=>i.model?n.value.agentType==="codex":!1),y=a(()=>{var l;return d.value?((l=n.value.capabilities)==null?void 0:l.thinking)===!0:!1}),I=a(()=>{var l;return d.value?((l=n.value.capabilities)==null?void 0:l.reasoningEffort)===!0:!1}),r=a(()=>k.value||!y.value),u=a(()=>!I.value),S=a(()=>r.value?"Thinking toggle is not supported for this agent":""),E=a(()=>u.value?"Reasoning effort is not supported for this agent":"");return(l,e)=>(g(),v("div",$,[e[10]||(e[10]=t("label",{class:"form-label"},"Options",-1)),t("div",U,[t("div",N,[p(w,{"model-value":s.mode,"onUpdate:modelValue":e[0]||(e[0]=o=>l.$emit("update:mode",o))},null,8,["model-value"])]),t("div",O,[p(T,{"model-value":s.model,"provider-id":s.providerId,"onUpdate:modelValue":e[1]||(e[1]=o=>l.$emit("update:model",o)),"onUpdate:providerId":e[2]||(e[2]=o=>l.$emit("update:providerId",o))},null,8,["model-value","provider-id"])]),t("div",{class:c(["effort-selector-wrapper",{"option-disabled":u.value}]),title:E.value},[p(V,{"model-value":s.effortLevel,disabled:u.value,"onUpdate:modelValue":e[3]||(e[3]=o=>l.$emit("update:effortLevel",o))},null,8,["model-value","disabled"])],10,x),t("div",{class:c(["thinking-toggle",{"option-disabled":r.value}]),title:S.value},[t("div",F,[t("label",R,[t("input",{type:"checkbox",checked:s.thinkingEnabled,disabled:r.value,onChange:e[4]||(e[4]=o=>l.$emit("update:thinkingEnabled",o.target.checked))},null,40,z),e[6]||(e[6]=t("span",{class:"toggle-slider"},null,-1))]),e[7]||(e[7]=t("span",{class:"toggle-label"},"Enable Thinking",-1))])],10,D),s.hideStartImmediately?L("",!0):(g(),v("div",A,[t("div",j,[t("label",q,[t("input",{type:"checkbox",checked:s.startImmediately,onChange:e[5]||(e[5]=o=>l.$emit("update:startImmediately",o.target.checked))},null,40,G),e[8]||(e[8]=t("span",{class:"toggle-slider"},null,-1))]),e[9]||(e[9]=t("span",{class:"toggle-label"},"Start Immediately",-1))])]))])]))}},W=B(H,[["__scopeId","data-v-76871ccb"]]);export{W as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as me,y as Re,x as V,z as Ie,A as Be,n as R,B as Qe,C as Xe,_ as Ce,a as t,c as o,b as e,F as X,r as Z,u as v,E as ie,t as F,i as w,G as oe,k as Fe,g as Me,d as Q,w as ye,o as Pe,m as K,v as ke,p as Ee,f as de,j as ce,h as Ge,e as Ue,H as xe,q as Le,I as Ze,J as Ve,s as et}from"./index-B6G18FqB.js";import{u as De}from"./projects-BUiOGmmb.js";import{u as we}from"./sessions-DH1R-NhV.js";import{u as Ae,a as Ke,f as tt,b as st}from"./SessionLogStream-DpUE6Xsh.js";import{a as Oe}from"./ApiClient-B4YTtyY4.js";import{u as He}from"./commandButtons-D4RPpLiu.js";import{S as qe}from"./SessionCard-DmjnVYWn.js";import{S as nt,M as ot,A as at}from"./ArchiveConfirmModal-OFaj_uX5.js";import{u as We}from"./EffortLevelSelector-C2378L8e.js";import{u as lt}from"./providers-Bh1ZiiJi.js";import{M as rt}from"./ModelSelector-BMpR0DPr.js";import{I as ze}from"./InterpolationHelp-CIkOSkWX.js";import{R as it}from"./ResizableTextarea-DiIOEGjN.js";import{S as dt}from"./SessionFormOptions-DYUISplS.js";import{S as ut,a as ct}from"./SlashCommandWizard-DmTyNG9O.js";function mt(){const d=Re({}),u=Re({}),m=Re({});async function p(c){const a=c.filter(f=>!d[f.id]&&!u[f.id]).map(f=>f.id);if(a.length!==0){for(const f of a)u[f]=!0,m[f]=!1;try{const f=await Oe.getSessionSummariesBatch(a);for(const l of a)f[l]&&(d[l]=f[l]),u[l]=!1}catch(f){console.warn("Failed to fetch summaries batch:",f.message);for(const l of a)m[l]=!0,u[l]=!1}}}async function r(c){var a;u[c]=!0,m[c]=!1;try{const f=await Oe.getSessionSummary(c);f&&(d[c]=f)}catch(f){((a=f.response)==null?void 0:a.status)!==404&&(console.warn(`Failed to fetch summary for session ${c}:`,f.message),m[c]=!0)}finally{u[c]=!1}}async function T(c){m[c]=!1,await r(c)}function A(c,a){d[c]=a,u[c]=!1,m[c]=!1}function j(c){delete d[c],delete u[c],delete m[c]}function $(c,a=400){let f=null;const l=me(c,()=>{clearTimeout(f),f=setTimeout(()=>{const C=c();p(C)},a)});return()=>{clearTimeout(f),l()}}return{summaries:d,loadingSummaries:u,summaryErrors:m,fetchSummariesBatch:p,fetchSummary:r,retryFetchSummary:T,updateSummary:A,cleanupSummary:j,watchSessionsForSummaries:$}}function Ye(){const d=we();function u(c){d.statusFilter===c?d.setStatusFilter(null):d.setStatusFilter(c)}function m(c){d.starredFilter===c?d.setStarredFilter(null):d.setStarredFilter(c)}function p(){d.starredFilter===null?d.setStarredFilter("starred"):d.starredFilter==="starred"?d.setStarredFilter("unstarred"):d.setStarredFilter(null)}const r=V(()=>d.starredFilter==="starred"?"Showing starred sessions only. Click to filter unstarred.":d.starredFilter==="unstarred"?"Showing unstarred sessions only. Click to show all.":"Showing all sessions. Click to filter by starred.");function T(){d.scheduledFilter===null?d.setScheduledFilter("scheduled"):d.scheduledFilter==="scheduled"?d.setScheduledFilter("not-scheduled"):d.setScheduledFilter(null)}const A=V(()=>d.scheduledFilter==="scheduled"?"Showing workflows with scheduled sessions. Click to filter non-scheduled.":d.scheduledFilter==="not-scheduled"?"Showing workflows without scheduled sessions. Click to show all.":"Showing all workflows. Click to filter by scheduled."),j=V(()=>{let c=d.groupedSessions;d.starredFilter==="starred"?c=c.filter(y=>y.parent.starred):d.starredFilter==="unstarred"&&(c=c.filter(y=>!y.parent.starred));const a=c.map(y=>({group:y,status:d.getWorkflowAggregatedStatus(y.parent.id)}));let f=a;d.scheduledFilter&&(f=a.filter(({status:y})=>{const E=y.scheduledCount>0;return d.scheduledFilter==="scheduled"?E:!E}));let l=0,C=0;for(const{status:y}of f)y.effectiveStatus==="running"?l++:C++;return{running:l,idle:C}}),$=V(()=>{const c=d.groupedSessions,a=new Map(c.map((l,C)=>[l.parent.id,C]));let f=c;return d.statusFilter&&(f=f.filter(l=>{const y=d.getWorkflowAggregatedStatus(l.parent.id).effectiveStatus;return d.statusFilter==="running"&&y==="running"||d.statusFilter==="idle"&&y==="idle"})),d.starredFilter==="starred"?f=f.filter(l=>l.parent.starred):d.starredFilter==="unstarred"&&(f=f.filter(l=>!l.parent.starred)),d.scheduledFilter&&(f=f.filter(l=>{const y=d.getWorkflowAggregatedStatus(l.parent.id).scheduledCount>0;return!!(d.scheduledFilter==="scheduled"&&y||d.scheduledFilter==="not-scheduled"&&!y)})),f.slice().sort((l,C)=>{const y=a.get(l.parent.id)??999999,E=a.get(C.parent.id)??999999;return y-E})});return{toggleFilter:u,toggleStarredFilter:m,toggleStarFilterIcon:p,starFilterTooltip:r,toggleScheduledFilterIcon:T,scheduledFilterTooltip:A,filteredGroupedSessions:$,statusFilterCounts:j}}function pt(d,u){const m=De(),p=we(),r=He(),T=Ae(),{fetchSummariesBatch:A,updateSummary:j,cleanupSummary:$}=u,{onReconnect:c}=Ie();function a(h,n,B,g){var ue;const q=r.runs[h],H=p.sessions.find(ae=>ae.id===n),ee=(ue=H==null?void 0:H.latestCommandRuns)==null?void 0:ue.find(ae=>ae.runId===h),te=(q==null?void 0:q.startedAt)||(ee==null?void 0:ee.startedAt)||Date.now();r.runs[h]||(r.runs[h]={runId:h,buttonId:B,sessionId:n,status:"running",output:"",exitCode:null,startedAt:te,outputTruncated:!1}),r.appendOutput(h,g),p.updateSessionCommandRun(n,B,{buttonId:B,status:"running",runId:h,startedAt:te})}function f({runId:h,sessionId:n,buttonId:B,exitCode:g,output:q}){r.runs[h]||(r.runs[h]={runId:h,buttonId:B,sessionId:n,status:"running",output:"",exitCode:null,startedAt:Date.now(),outputTruncated:!1}),r.completeRun(h,g,q);const J=g===0?"success":"error";p.updateSessionCommandRun(n,B,{buttonId:B,status:J,exitCode:g,runId:h,completedAt:Date.now()})}function l(h,n,B,g){r.runs[h]||(r.runs[h]={runId:h,buttonId:B,sessionId:n,status:"running",output:"",exitCode:null,startedAt:Date.now(),outputTruncated:!1}),r.errorRun(h,g),p.updateSessionCommandRun(n,B,{buttonId:B,status:"error",runId:h,completedAt:Date.now()})}function C(h,n,B){const{onSessionCreated:g,onSessionUpdated:q,onSessionDeleted:J,onSessionSummaryUpdated:H,onCommandRunOutput:ee,onCommandRunComplete:te,onCommandRunError:ue,onCommandRunDeleted:ae,onKanbanBoardUpdated:pe,onKanbanCardMoved:le,onKanbanCardAdded:ve,onKanbanCardRemoved:fe}=h,D=[];return D.push(g(P=>{n.sessionsStore.addSessionToList(P)})),D.push(q(P=>{n.sessionsStore.updateSession(P)})),D.push(J(P=>{n.sessionsStore.removeSessionFromList(P),B.cleanupSummary(P)})),D.push(H((P,i)=>{B.updateSummary(P,i)})),D.push(ee(a)),D.push(te(f)),D.push(ue(l)),D.push(ae((P,i,s)=>{n.commandButtonsStore.clearRun(P),n.sessionsStore.removeSessionCommandRun(i,s)})),D.push(pe(P=>{n.kanbanStore.handleBoardUpdated(P)})),D.push(le((P,i,s,k)=>{n.kanbanStore.handleCardMoved(P,i,s,k)})),D.push(ve((P,i)=>{n.kanbanStore.handleCardAdded(P,i)})),D.push(fe((P,i)=>{n.kanbanStore.handleCardRemoved(P,i)})),D}const y=[];let E=null;const b=R(!1);let I=0;const Y=3e4,O=async()=>{if(document.visibilityState!=="visible")return;const h=Date.now();if(h-I<Y)return;I=h;const n=d.value;n&&(await p.fetchSessions(n,{silent:!0}),A(p.sessions))};return document.addEventListener("visibilitychange",O),me(d,async h=>{if(!h)return;b.value=!1,y.forEach(D=>D()),y.length=0,E&&(E(),E=null),await m.fetchProject(h),await p.fetchSessions(h),await r.fetchButtons(h),A(p.sessions),I=Date.now();const{subscribe:n,unsubscribe:B,onSessionCreated:g,onSessionUpdated:q,onSessionDeleted:J,onSessionSummaryUpdated:H,onCommandRunOutput:ee,onCommandRunComplete:te,onCommandRunError:ue,onCommandRunDeleted:ae,onKanbanBoardUpdated:pe,onKanbanCardMoved:le,onKanbanCardAdded:ve,onKanbanCardRemoved:fe}=Qe(h);E=B,n(),y.push(...C({onSessionCreated:g,onSessionUpdated:q,onSessionDeleted:J,onSessionSummaryUpdated:H,onCommandRunOutput:ee,onCommandRunComplete:te,onCommandRunError:ue,onCommandRunDeleted:ae,onKanbanBoardUpdated:pe,onKanbanCardMoved:le,onKanbanCardAdded:ve,onKanbanCardRemoved:fe},{sessionsStore:p,commandButtonsStore:r,kanbanStore:T},{updateSummary:j,cleanupSummary:$})),y.push(c(async()=>{const D=d.value;D&&(I=Date.now(),await p.fetchSessions(D,{silent:!0}),A(p.sessions))}))},{immediate:!0}),Be(()=>{y.forEach(h=>h()),E&&E(),document.removeEventListener("visibilitychange",O)}),{archivedLoaded:b}}function vt(){const d=we(),u=Ke(),m=R({}),p={},r=new Map,T=4;function A(l,C=0){fetch(`/api/sessions/${l}/streaming-state`).then(y=>y.ok?y.json():null).then(y=>{var E;if(y&&((E=y.workLogs)!=null&&E.length||y.partialText||y.thinking)){u.hydrateSessionState(l,y);const b=r.get(l);b&&(clearTimeout(b.timeout),r.delete(l))}else j(l,C)}).catch(()=>{j(l,C)})}function j(l,C=0){if(C>=T||!m.value[l])return;const y=d.sessions.find(I=>I.id===l);if(!y||!["running","starting"].includes(y.status))return;const E=1500*Math.pow(2,C),b=setTimeout(()=>{r.delete(l),A(l,C+1)},E);r.set(l,{count:C,timeout:b})}function $(l){if(m.value[l])return;const C=Xe(l),y=[];y.push(C.onWorkLog(E=>{u.addSessionWorkLog(l,E)})),y.push(C.onPartial(E=>{E&&u.setSessionPartialText(l,E)})),y.push(C.onThinkingPartial(E=>{E&&u.setPartialThinking(E,l)})),y.push(C.onChangesUpdate(E=>{u.setSessionFileCount(l,E)})),y.push(C.onStatus(E=>{["running","starting"].includes(E)?p[l]&&(clearTimeout(p[l]),delete p[l]):p[l]=setTimeout(()=>{delete p[l],u.clearSessionEphemeralState(l)},2e3)})),C.subscribe(),m.value[l]={subscription:C,cleanup:()=>{y.forEach(E=>E&&E()),C.unsubscribe()}},A(l)}function c(l){const C=m.value[l];C&&(C.cleanup(),delete m.value[l]),p[l]&&(clearTimeout(p[l]),delete p[l]);const y=r.get(l);y&&(clearTimeout(y.timeout),r.delete(l))}me(()=>d.sessions.filter(l=>["running","starting"].includes(l.status)).map(l=>l.id),(l,C=[])=>{const y=l.filter(b=>!C.includes(b)),E=C.filter(b=>!l.includes(b));y.forEach(b=>$(b)),E.forEach(b=>c(b))},{immediate:!0});const{onReconnect:a}=Ie(),f=a(()=>{for(const l of Object.keys(m.value))A(l)});return Be(()=>{Object.keys(m.value).forEach(l=>c(l)),f()}),{activeSubscriptions:m}}const ft={class:"filters-container"},ht={class:"status-filters"},bt=["aria-label","onClick"],gt={class:"filter-label"},yt={class:"filter-count"},kt=["title"],St={key:0,class:"star-icon"},$t={key:1,class:"star-icon star-crossed"},Ct={key:2,class:"star-icon"},wt=["title"],Et={key:0,class:"schedule-icon"},_t={key:1,class:"schedule-icon schedule-crossed"},Tt={key:2,class:"schedule-icon"},jt={__name:"SessionFiltersPanel",props:{showStatusFilters:{type:Boolean,default:!0},showScheduledFilter:{type:Boolean,default:!0}},setup(d){const u=we(),{toggleFilter:m,toggleStarFilterIcon:p,starFilterTooltip:r,toggleScheduledFilterIcon:T,scheduledFilterTooltip:A,statusFilterCounts:j}=Ye();return($,c)=>(t(),o("div",ft,[e("div",ht,[d.showStatusFilters?(t(),o(X,{key:0},Z(["running","idle"],a=>e("button",{key:a,class:ie(["filter-btn",{active:v(u).statusFilter===a,"filter-btn-empty":v(j)[a]===0}]),"aria-label":`${a} (${v(j)[a]})`,onClick:f=>v(m)(a)},[e("span",gt,F(a),1),e("span",yt,F(v(j)[a]),1)],10,bt)),64)):w("",!0),e("button",{class:ie(["filter-btn star-btn",{"star-filter-active":v(u).starredFilter==="starred","star-filter-unstarred":v(u).starredFilter==="unstarred","star-filter-all":v(u).starredFilter===null}]),title:v(r),onClick:c[0]||(c[0]=(...a)=>v(p)&&v(p)(...a))},[v(u).starredFilter==="starred"?(t(),o("span",St,"⭐")):v(u).starredFilter==="unstarred"?(t(),o("span",$t,"⭐")):(t(),o("span",Ct,"☆"))],10,kt),d.showScheduledFilter?(t(),o("button",{key:1,class:ie(["filter-btn schedule-btn",{"schedule-filter-active":v(u).scheduledFilter==="scheduled","schedule-filter-not-scheduled":v(u).scheduledFilter==="not-scheduled","schedule-filter-all":v(u).scheduledFilter===null}]),title:v(A),onClick:c[1]||(c[1]=(...a)=>v(T)&&v(T)(...a))},[v(u).scheduledFilter==="scheduled"?(t(),o("span",Et,"⏰")):v(u).scheduledFilter==="not-scheduled"?(t(),o("span",_t,"⏰")):(t(),o("span",Tt,"⏰"))],10,wt)):w("",!0)])]))}},Ne=Ce(jt,[["__scopeId","data-v-2c9a63d9"]]),Ft={key:0,class:"skeleton-list"},Mt={key:1,class:"error-message"},At={key:2,class:"empty-state"},Rt={key:3,class:"session-list"},xt={key:0,class:"load-more-container"},Lt=["disabled"],Ot={key:0},Bt={key:1},Pt={__name:"ArchivedTabContent",props:{summaries:{type:Object,required:!0},loadingSummaries:{type:Object,required:!0},summaryErrors:{type:Object,required:!0}},emits:["retrySummary","unarchive","loadMore"],setup(d){const u=we(),m=V(()=>{const{total:p,offset:r}=u.archivedPagination;return Math.max(0,p-r)});return(p,r)=>(t(),o("div",null,[v(u).archivedPagination.loading&&v(u).archivedSessions.length===0?(t(),o("div",Ft,[(t(),o(X,null,Z(3,T=>e("div",{key:T,class:"skeleton card",style:{height:"120px"}})),64))])):v(u).error?(t(),o("div",Mt,F(v(u).error),1)):v(u).archivedSessions.length===0?(t(),o("div",At,[...r[3]||(r[3]=[e("p",null,"No archived sessions. Archive completed sessions to keep your session list tidy.",-1)])])):(t(),o("div",Rt,[(t(!0),o(X,null,Z(v(u).archivedSessions,T=>(t(),oe(qe,{key:T.id,session:T,"show-summary":!0,summary:d.summaries[T.id],"summary-loading":d.loadingSummaries[T.id],"summary-error":d.summaryErrors[T.id],"show-unarchive":!0,"kanban-enabled":!1,"pr-url":T.prUrl,"pr-summary":d.summaries[T.id],onRetrySummary:r[0]||(r[0]=A=>p.$emit("retrySummary",A)),onUnarchive:r[1]||(r[1]=A=>p.$emit("unarchive",A))},null,8,["session","summary","summary-loading","summary-error","pr-url","pr-summary"]))),128)),v(u).archivedPagination.hasMore?(t(),o("div",xt,[e("button",{class:"btn btn-secondary",disabled:v(u).archivedPagination.loading,onClick:r[2]||(r[2]=T=>p.$emit("loadMore"))},[v(u).archivedPagination.loading?(t(),o("span",Ot,"Loading...")):(t(),o("span",Bt,"Load More ("+F(m.value)+" remaining)",1))],8,Lt)])):w("",!0)]))]))}},Ut=Ce(Pt,[["__scopeId","data-v-c0906664"]]),Dt={class:"scheduled-session-card card"},Vt={class:"card-header"},Nt={class:"session-info"},It={class:"session-name"},Gt={class:"timing-info"},Kt={class:"timing-item"},Ht={class:"timing-details"},qt={class:"timing-text"},Wt={class:"timing-absolute"},zt={key:0,class:"timing-item"},Yt={class:"timing-details"},Jt={class:"timing-absolute"},Qt={class:"card-actions"},Xt=["disabled"],Zt=["disabled"],es={__name:"ScheduledSessionCard",props:{session:{type:Object,required:!0}},setup(d){const u=d,m=we(),p=Fe(),r=R(!1),T=R(!1),A=V(()=>{const a=new Date(u.session.scheduledAt);return tt(a,{addSuffix:!0})}),j=V(()=>{const a=new Date(u.session.scheduledAt);return st(a,"MMM d, h:mm a")});async function $(){if(confirm("Cancel this scheduled session?")){r.value=!0;try{await m.updateSessionFields(u.session.id,{status:"stopped"}),p.success("Session cancelled")}catch(a){console.error("Failed to cancel session:",a),p.error(`Failed to cancel session: ${a.message}`)}finally{r.value=!1}}}function c(){}return(a,f)=>{const l=Me("router-link");return t(),o("div",Dt,[e("div",Vt,[e("div",Nt,[Q(l,{to:`/sessions/${d.session.id}`,class:"session-name-link"},{default:ye(()=>[e("h3",It,F(d.session.name),1)]),_:1},8,["to"])]),f[2]||(f[2]=e("div",{class:"status-badge-container"},[e("span",{class:"status-badge status-scheduled"},"scheduled")],-1))]),e("div",Gt,[e("div",Kt,[f[3]||(f[3]=e("span",{class:"timing-icon"},"⏰",-1)),e("div",Ht,[e("span",qt,F(A.value),1),e("span",Wt,F(j.value),1)])]),d.session.autoRescheduleEnabled?(t(),o("div",zt,[f[5]||(f[5]=e("span",{class:"timing-icon"},"🔄",-1)),e("div",Yt,[f[4]||(f[4]=e("span",{class:"timing-text"},"Auto-reschedule",-1)),e("span",Jt," Attempt "+F(d.session.rescheduleCount)+"/"+F(d.session.maxRescheduleCount||"∞"),1)])])):w("",!0)]),e("div",Qt,[e("button",{class:"btn btn-secondary btn-small",disabled:r.value,onClick:f[0]||(f[0]=C=>T.value=!0)}," Edit Schedule ",8,Xt),e("button",{class:"btn btn-danger btn-small",disabled:r.value,onClick:$}," Cancel ",8,Zt)]),Q(nt,{"is-open":T.value,session:d.session,onClose:f[1]||(f[1]=C=>T.value=!1),onSaved:c},null,8,["is-open","session"])])}}},ts=Ce(es,[["__scopeId","data-v-d41e6b57"]]),ss={key:0,class:"skeleton-list"},ns={key:1,class:"empty-state"},os={key:2,class:"session-list"},as={__name:"ScheduledTabContent",props:{sessions:{type:Array,required:!0},loading:{type:Boolean,default:!1}},setup(d){return(u,m)=>(t(),o("div",null,[d.loading?(t(),o("div",ss,[(t(),o(X,null,Z(3,p=>e("div",{key:p,class:"skeleton card",style:{height:"120px"}})),64))])):d.sessions.length===0?(t(),o("div",ns,[...m[0]||(m[0]=[e("p",null,"No scheduled sessions. Use scheduling options when creating a new session to schedule it for later.",-1)])])):(t(),o("div",os,[(t(!0),o(X,null,Z(d.sessions,p=>(t(),oe(ts,{key:p.id,session:p},null,8,["session"]))),128))]))]))}},ls=Ce(as,[["__scopeId","data-v-75cf4e60"]]),rs={class:"templates-panel"},is={class:"templates-header"},ds={key:0,class:"template-form card","data-testid":"template-form"},us={class:"form-group"},cs={class:"form-group"},ms={class:"form-group"},ps=["disabled"],vs={class:"form-group"},fs=["value"],hs={class:"form-group"},bs={class:"form-group"},gs={class:"form-group"},ys={class:"form-group"},ks={class:"form-actions"},Ss=["disabled"],$s={key:0,class:"loading-spinner"},Cs={key:1,class:"loading-state"},ws={key:2},Es={key:0,class:"template-section"},_s={class:"templates-list"},Ts={class:"template-header"},js={class:"template-name"},Fs={class:"template-prompt"},Ms={class:"template-meta"},As={key:0,class:"meta-badge"},Rs={key:1,class:"meta-badge"},xs={key:2,class:"meta-badge"},Ls={key:3,class:"meta-badge"},Os={key:4,class:"meta-badge meta-badge-chain"},Bs={key:1,class:"template-section"},Ps={class:"templates-list"},Us={class:"template-header"},Ds={class:"template-name"},Vs={class:"template-prompt"},Ns={class:"template-meta"},Is={key:0,class:"meta-badge"},Gs={key:1,class:"meta-badge"},Ks={key:2,class:"meta-badge"},Hs={key:3,class:"meta-badge"},qs={key:4,class:"meta-badge meta-badge-chain"},Ws={key:2,class:"empty-state"},zs={__name:"TemplatesPanel",props:{projectId:{type:String,required:!0}},setup(d,{expose:u}){const m=d,p=We(),r=Fe(),T=lt(),A=R(!1),j=R(!1),$=R({name:"",prompt:"",isGlobal:!1,nextTemplateId:null,thinkingEnabled:null,gitBranch:"",model:null,mode:null}),c=V(()=>p.loading),a=V(()=>p.projectTemplates),f=V(()=>p.globalTemplates),l=V(()=>[...p.projectTemplates,...p.globalTemplates]);Pe(async()=>{T.providers.length===0&&await T.fetchProviders(),p.fetchProjectTemplates(m.projectId)}),me(()=>m.projectId,h=>{p.fetchProjectTemplates(h)});function C(h,n=100){return h.length<=n?h:`${h.substring(0,n)}...`}function y(h){const n=p.getTemplateById(h);return(n==null?void 0:n.name)||"Unknown"}function E(h){var n;for(const B of T.providers){const g=(n=B.models)==null?void 0:n.find(q=>q.modelId===h);if(g)return B.isBuiltIn?g.displayName:g.modelId}return h}function b(){$.value={name:"",prompt:"",isGlobal:!1,nextTemplateId:null,thinkingEnabled:null,gitBranch:"",model:null,mode:null}}function I(){A.value=!0}function Y(){A.value=!1,b()}async function O(){if(!j.value){j.value=!0;try{const h={name:$.value.name,prompt:$.value.prompt,nextTemplateId:$.value.nextTemplateId||void 0,thinkingEnabled:$.value.thinkingEnabled,gitBranch:$.value.gitBranch||void 0,model:$.value.model,mode:$.value.mode};$.value.isGlobal?(await p.createGlobalTemplate(h),r.success("Global template created")):(await p.createProjectTemplate(m.projectId,h),r.success("Template created")),Y()}catch(h){r.error(h.message)}finally{j.value=!1}}}return u({formData:$,getModelName:E,resetForm:b}),(h,n)=>{const B=Me("router-link");return t(),o("div",rs,[e("div",is,[n[8]||(n[8]=e("h2",null,"Session Templates",-1)),A.value?w("",!0):(t(),o("button",{key:0,class:"btn btn-primary btn-sm","data-testid":"new-template-btn",onClick:I}," New Template "))]),A.value?(t(),o("div",ds,[n[23]||(n[23]=e("h3",null,"Create Template",-1)),e("form",{onSubmit:ce(O,["prevent"])},[e("div",us,[n[9]||(n[9]=e("label",{class:"form-label"},"Name",-1)),K(e("input",{"onUpdate:modelValue":n[0]||(n[0]=g=>$.value.name=g),type:"text",class:"form-input",placeholder:"Template name",required:""},null,512),[[ke,$.value.name]])]),e("div",cs,[n[10]||(n[10]=e("label",{class:"form-label"},"Prompt",-1)),K(e("textarea",{"onUpdate:modelValue":n[1]||(n[1]=g=>$.value.prompt=g),class:"form-input form-textarea",placeholder:"Session prompt. Use {{rootSession.summary}} to reference root session data.",rows:"4",required:""},null,512),[[ke,$.value.prompt]]),Q(ze)]),e("div",ms,[n[12]||(n[12]=e("label",{class:"form-label"},"Scope",-1)),K(e("select",{"onUpdate:modelValue":n[2]||(n[2]=g=>$.value.isGlobal=g),class:"form-input",disabled:h.editingTemplate},[...n[11]||(n[11]=[e("option",{value:!1}," Project Only ",-1),e("option",{value:!0}," Global (all projects) ",-1)])],8,ps),[[Ee,$.value.isGlobal]])]),e("div",vs,[n[14]||(n[14]=e("label",{class:"form-label"},"Next Template (Optional)",-1)),K(e("select",{"onUpdate:modelValue":n[3]||(n[3]=g=>$.value.nextTemplateId=g),class:"form-input"},[n[13]||(n[13]=e("option",{value:null}," None ",-1)),(t(!0),o(X,null,Z(l.value,g=>(t(),o("option",{key:g.id,value:g.id},F(g.name)+" "+F(g.projectId?"":"(Global)"),9,fs))),128))],512),[[Ee,$.value.nextTemplateId]]),n[15]||(n[15]=e("p",{class:"form-help"}," Chain another template to run after this one completes. ",-1))]),e("div",hs,[n[16]||(n[16]=e("label",{class:"form-label"},"Model",-1)),Q(rt,{modelValue:$.value.model,"onUpdate:modelValue":n[4]||(n[4]=g=>$.value.model=g),"allow-empty":!0,"empty-label":"Inherit from root session"},null,8,["modelValue"])]),e("div",bs,[n[18]||(n[18]=e("label",{class:"form-label",for:"create-mode"},"Mode",-1)),K(e("select",{id:"create-mode","onUpdate:modelValue":n[5]||(n[5]=g=>$.value.mode=g),class:"form-input","data-testid":"mode-select"},[...n[17]||(n[17]=[e("option",{value:null}," Inherit from root session ",-1),e("option",{value:"plan"}," Plan ",-1),e("option",{value:"standard"}," Standard ",-1),e("option",{value:"yolo"}," YOLO ",-1)])],512),[[Ee,$.value.mode]])]),e("div",gs,[n[20]||(n[20]=e("label",{class:"form-label",for:"create-thinking"},"Extended Thinking",-1)),K(e("select",{id:"create-thinking","onUpdate:modelValue":n[6]||(n[6]=g=>$.value.thinkingEnabled=g),class:"form-input","data-testid":"thinking-select"},[...n[19]||(n[19]=[e("option",{value:null}," Inherit from root session ",-1),e("option",{value:!0}," Enabled ",-1),e("option",{value:!1}," Disabled ",-1)])],512),[[Ee,$.value.thinkingEnabled]])]),e("div",ys,[n[21]||(n[21]=e("label",{class:"form-label"},"Git Branch (Optional)",-1)),K(e("input",{"onUpdate:modelValue":n[7]||(n[7]=g=>$.value.gitBranch=g),type:"text",class:"form-input",placeholder:"Leave empty to inherit from root session"},null,512),[[ke,$.value.gitBranch]])]),e("div",ks,[e("button",{type:"button",class:"btn","data-testid":"cancel-btn",onClick:Y}," Cancel "),e("button",{type:"submit",class:"btn btn-primary",disabled:j.value,"data-testid":"submit-btn"},[j.value?(t(),o("span",$s)):w("",!0),n[22]||(n[22]=de(" Create ",-1))],8,Ss)])],32)])):w("",!0),c.value?(t(),o("div",Cs,[...n[24]||(n[24]=[e("span",{class:"loading-spinner"},null,-1),de(" Loading templates... ",-1)])])):(t(),o("div",ws,[a.value.length>0?(t(),o("div",Es,[n[25]||(n[25]=e("h3",{class:"section-title"}," Project Templates ",-1)),e("div",_s,[(t(!0),o(X,null,Z(a.value,g=>(t(),oe(B,{key:g.id,to:`/projects/${d.projectId}/templates/${g.id}`,class:"template-card card","data-testid":`template-card-${g.id}`},{default:ye(()=>[e("div",Ts,[e("h4",js,F(g.name),1)]),e("p",Fs,F(C(g.prompt)),1),e("div",Ms,[g.thinkingEnabled?(t(),o("span",As,"Thinking")):w("",!0),g.gitBranch?(t(),o("span",Rs,F(g.gitBranch),1)):w("",!0),g.model?(t(),o("span",xs,F(E(g.model)),1)):w("",!0),g.mode?(t(),o("span",Ls,F(g.mode),1)):w("",!0),g.nextTemplateId?(t(),o("span",Os," Chains to: "+F(y(g.nextTemplateId)),1)):w("",!0)])]),_:2},1032,["to","data-testid"]))),128))])])):w("",!0),f.value.length>0?(t(),o("div",Bs,[n[27]||(n[27]=e("h3",{class:"section-title"}," Global Templates ",-1)),e("div",Ps,[(t(!0),o(X,null,Z(f.value,g=>(t(),oe(B,{key:g.id,to:`/projects/${d.projectId}/templates/${g.id}`,class:"template-card card","data-testid":`template-card-${g.id}`},{default:ye(()=>[e("div",Us,[e("h4",Ds,F(g.name),1)]),e("p",Vs,F(C(g.prompt)),1),e("div",Ns,[n[26]||(n[26]=e("span",{class:"meta-badge meta-badge-global"},"Global",-1)),g.thinkingEnabled?(t(),o("span",Is,"Thinking")):w("",!0),g.gitBranch?(t(),o("span",Gs,F(g.gitBranch),1)):w("",!0),g.model?(t(),o("span",Ks,F(E(g.model)),1)):w("",!0),g.mode?(t(),o("span",Hs,F(g.mode),1)):w("",!0),g.nextTemplateId?(t(),o("span",qs," Chains to: "+F(y(g.nextTemplateId)),1)):w("",!0)])]),_:2},1032,["to","data-testid"]))),128))])])):w("",!0),a.value.length===0&&f.value.length===0&&!A.value?(t(),o("div",Ws,[n[28]||(n[28]=e("p",null,"No templates yet. Create a template to automate session workflows.",-1)),e("button",{class:"btn btn-primary","data-testid":"create-template-btn",onClick:I}," Create Template ")])):w("",!0)]))])}}},Ys=Ce(zs,[["__scopeId","data-v-d08b4ac0"]]),Js={class:"command-buttons-panel"},Qs={class:"panel-header"},Xs={key:0,class:"loading-state"},Zs={key:1,class:"error-message"},en={key:2,class:"empty-state"},tn={key:3,class:"buttons-table"},sn=["onClick"],nn={class:"col-label"},on={class:"col-command"},an={class:"col-order"},ln=["onClick"],rn={class:"modal-body"},dn={class:"modal-footer"},un={__name:"CommandButtonsPanel",props:{projectId:{type:String,required:!0}},setup(d){const u=d,m=Ge(),p=He(),r=R(null),T=c=>c.length>50?`${c.substring(0,50)}...`:c,A=c=>{m.push(`/projects/${u.projectId}/command-buttons/${c.id}`)},j=c=>{r.value=c},$=async()=>{if(r.value)try{await p.deleteButton(u.projectId,r.value.id),r.value=null}catch(c){console.error("Failed to delete button:",c)}};return(c,a)=>{const f=Me("router-link");return t(),o("div",Js,[e("div",Qs,[a[5]||(a[5]=e("h3",null,"Command Buttons",-1)),Q(f,{to:`/projects/${d.projectId}/command-buttons/new`,class:"btn btn-primary btn-sm"},{default:ye(()=>[...a[4]||(a[4]=[de(" + New Command Button ",-1)])]),_:1},8,["to"])]),v(p).loading?(t(),o("div",Xs,[...a[6]||(a[6]=[e("span",{class:"loading-spinner"},null,-1),de(" Loading command buttons... ",-1)])])):v(p).error?(t(),o("div",Zs,F(v(p).error),1)):v(p).buttons.length===0?(t(),o("div",en,[a[8]||(a[8]=e("p",null,"No command buttons configured yet.",-1)),Q(f,{to:`/projects/${d.projectId}/command-buttons/new`,class:"btn btn-primary"},{default:ye(()=>[...a[7]||(a[7]=[de(" Create First Button ",-1)])]),_:1},8,["to"])])):(t(),o("div",tn,[a[9]||(a[9]=Ue('<div class="table-header" data-v-990a48bf><div class="col-label" data-v-990a48bf> Label </div><div class="col-command" data-v-990a48bf> Command </div><div class="col-order" data-v-990a48bf> Sort Order </div><div class="col-actions" data-v-990a48bf> Actions </div></div>',1)),(t(!0),o(X,null,Z(v(p).buttons,l=>(t(),o("div",{key:l.id,class:"table-row",onClick:C=>A(l)},[e("div",nn,F(l.label),1),e("div",on,[e("code",null,F(T(l.command)),1)]),e("div",an,F(l.sortOrder),1),e("div",{class:"col-actions",onClick:a[0]||(a[0]=ce(()=>{},["stop"]))},[e("button",{class:"btn btn-sm btn-outline-danger",onClick:C=>j(l)}," Delete ",8,ln)])],8,sn))),128))])),r.value?(t(),o("div",{key:4,class:"modal-overlay",onClick:a[3]||(a[3]=l=>r.value=null)},[e("div",{class:"modal-dialog",onClick:a[2]||(a[2]=ce(()=>{},["stop"]))},[a[12]||(a[12]=e("div",{class:"modal-header"},[e("h4",null,"Delete Command Button")],-1)),e("div",rn,[e("p",null,[a[10]||(a[10]=de('Are you sure you want to delete the command button "',-1)),e("strong",null,F(r.value.label),1),a[11]||(a[11]=de('"?',-1))])]),e("div",dn,[e("button",{class:"btn btn-outline-secondary",onClick:a[1]||(a[1]=l=>r.value=null)}," Cancel "),e("button",{class:"btn btn-danger",onClick:$}," Delete ")])])])):w("",!0)])}}},cn=Ce(un,[["__scopeId","data-v-990a48bf"]]),mn={class:"modal-content"},pn={class:"modal-header"},vn={class:"modal-title"},fn={class:"modal-body"},hn={class:"form-group"},bn={class:"sessions-list"},gn={key:0,class:"loading-state"},yn={key:1,class:"empty-state"},kn={key:0},Sn={key:1},$n=["onClick"],Cn={class:"session-info"},wn={class:"session-name"},En={class:"session-meta"},_n={key:0,class:"session-mode"},Tn=["title"],jn={class:"modal-footer"},Fn=["disabled"],Mn={__name:"AddSessionToLaneModal",props:{isOpen:{type:Boolean,default:!1},projectId:{type:String,default:""},laneId:{type:String,default:""},laneName:{type:String,default:""}},emits:["close","update:isOpen","added"],setup(d,{emit:u}){const m=d,p=u;we();const r=Ae(),T=Fe(),A=R(!1),j=R(!1),$=R(""),c=R(null),a=R([]),f=V(()=>{let O=a.value.filter(h=>!r.isSessionOnBoard(h.id));if(O=O.filter(h=>!h.parentSessionId),$.value.trim()){const h=$.value.toLowerCase();O=O.filter(n=>{var B;return(B=n.name)==null?void 0:B.toLowerCase().includes(h)})}return O});function l(O){switch(O){case"running":case"starting":return"●";case"waiting":return"◐";case"completed":return"✓";case"error":return"✕";case"stopped":return"■";case"scheduled":return"⏰";default:return"○"}}function C(O){return O?new Date(O).toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}function y(O){c.value=O}function E(){}function b(){p("update:isOpen",!1),p("close"),$.value="",c.value=null}async function I(){if(m.projectId){A.value=!0;try{const O=await Oe.getProjectSessions(m.projectId,!1,null);a.value=Array.isArray(O)?O:(O==null?void 0:O.sessions)||[]}catch(O){console.error("Failed to load sessions:",O),T.error("Failed to load sessions"),a.value=[]}finally{A.value=!1}}}async function Y(){if(!(!c.value||!m.laneId)){j.value=!0;try{await r.addSessionToBoard(m.projectId,c.value,m.laneId),T.success("Session added to board"),p("added",c.value),b()}catch(O){console.error("Failed to add session to board:",O),T.error(O.message||"Failed to add session to board")}finally{j.value=!1}}}return me(()=>m.isOpen,O=>{O&&I()},{immediate:!0}),(O,h)=>d.isOpen?(t(),o("div",{key:0,class:"modal-backdrop",onClick:ce(b,["self"])},[e("div",mn,[e("div",pn,[e("h2",vn," Add Session to "+F(d.laneName),1),e("button",{class:"close-btn","aria-label":"Close",onClick:b}," × ")]),e("div",fn,[e("div",hn,[h[1]||(h[1]=e("label",{for:"session-search",class:"form-label"},"Search Sessions",-1)),K(e("input",{id:"session-search","onUpdate:modelValue":h[0]||(h[0]=n=>$.value=n),type:"text",class:"form-input",placeholder:"Search by name...",onInput:E},null,544),[[ke,$.value]])]),e("div",bn,[A.value?(t(),o("div",gn,[...h[2]||(h[2]=[e("span",{class:"loading-spinner"},null,-1),de(" Loading sessions... ",-1)])])):f.value.length===0?(t(),o("div",yn,[$.value?(t(),o("p",kn,' No sessions matching "'+F($.value)+'" ',1)):(t(),o("p",Sn," No available sessions to add. "))])):(t(!0),o(X,{key:2},Z(f.value,n=>(t(),o("div",{key:n.id,class:ie(["session-item",{selected:c.value===n.id}]),onClick:B=>y(n.id)},[e("div",{class:ie(["session-status",`status-${n.status}`])},F(l(n.status)),3),e("div",Cn,[e("div",wn,F(n.name),1),e("div",En,[n.mode?(t(),o("span",_n,F(n.mode),1)):w("",!0),e("span",{class:"session-date",title:n.lastActivityAt?"Last activity":"No activity yet"},F(C(n.lastActivityAt||n.updatedAt||n.createdAt)),9,Tn)])])],10,$n))),128))])]),e("div",jn,[e("button",{class:"btn btn-secondary",onClick:b}," Cancel "),e("button",{class:"btn btn-primary",disabled:!c.value||j.value,onClick:Y},F(j.value?"Adding...":"Add to Lane"),9,Fn)])])])):w("",!0)}},Je=Ce(Mn,[["__scopeId","data-v-ab9b7c57"]]),An={class:"modal-content"},Rn={class:"modal-body"},xn={class:"form-group"},Ln={key:0,class:"form-group"},On={class:"lane-position-controls"},Bn=["disabled"],Pn={class:"lane-position-label"},Un=["disabled"],Dn={class:"form-group"},Vn={class:"automation-options"},Nn={class:"radio-option"},In={class:"radio-option"},Gn={class:"radio-option"},Kn={key:1,class:"form-group"},Hn={key:0,label:"Project Templates"},qn=["value"],Wn={key:1,label:"Global Templates"},zn=["value"],Yn={key:2,class:"form-group"},Jn={class:"prompt-actions-row"},Qn={key:4,class:"agent-settings-section"},Xn={key:0,class:"agent-settings-body"},Zn={class:"form-group"},eo={class:"toggle-switch-row"},to={class:"toggle-switch"},so={key:0,class:"reschedule-settings"},no={class:"form-group"},oo={class:"checkbox-option"},ao={class:"checkbox-option"},lo={class:"form-group"},ro={class:"form-group"},io={class:"form-group"},uo={class:"form-group"},co={class:"danger-zone"},mo=["disabled"],po={class:"modal-footer"},vo=["disabled"],fo={__name:"LaneSettingsModal",props:{isOpen:{type:Boolean,default:!1},projectId:{type:String,default:""},lane:{type:Object,default:null}},emits:["close","update:isOpen","updated","deleted"],setup(d,{emit:u}){const m=d,p=u,r=Ae(),T=We(),A=Fe(),j=De(),$=R(!1),c=R(!1),a=R("none"),f=R(!1),l=R(!1),C=R(null),y=R(-1),E=R(-1),b=Re({name:"",onEnterTemplateId:null,onEnterPrompt:"",onEnterMode:null,onEnterModel:null,onEnterEffortLevel:null,onEnterThinkingEnabled:null,onEnterAutoRescheduleEnabled:!1,onEnterRescheduleDelayMinutes:15,onEnterRescheduleOnTokenLimit:!0,onEnterRescheduleOnServiceError:!0,onEnterMaxRescheduleCount:null,onEnterMaxTotalTokens:null,onEnterRescheduleAtTokenCount:null}),I=V(()=>T.projectTemplates),Y=V(()=>T.globalTemplates),O=V(()=>{const i=j.getProjectById(m.projectId);return(i==null?void 0:i.workingDirectory)||null}),h=V(()=>E.value),n=V(()=>{var i,s;return((s=(i=r.board)==null?void 0:i.lanes)==null?void 0:s.length)||0}),B=V(()=>!(!b.name.trim()||a.value==="template"&&!b.onEnterTemplateId||a.value==="prompt"&&!b.onEnterPrompt.trim()));function g(i){return{onEnterAutoRescheduleEnabled:i.onEnterAutoRescheduleEnabled||!1,onEnterRescheduleDelayMinutes:i.onEnterRescheduleDelayMinutes||15,onEnterRescheduleOnTokenLimit:i.onEnterRescheduleOnTokenLimit??!0,onEnterRescheduleOnServiceError:i.onEnterRescheduleOnServiceError??!0,onEnterMaxRescheduleCount:i.onEnterMaxRescheduleCount||null,onEnterMaxTotalTokens:i.onEnterMaxTotalTokens||null,onEnterRescheduleAtTokenCount:i.onEnterRescheduleAtTokenCount||null}}function q(i){return{name:i.name||"",onEnterTemplateId:i.onEnterTemplateId||null,onEnterPrompt:i.onEnterPrompt||"",onEnterMode:i.onEnterMode||null,onEnterModel:i.onEnterModel||null,onEnterEffortLevel:i.onEnterEffortLevel||null,onEnterThinkingEnabled:i.onEnterThinkingEnabled??null,...g(i)}}function J(i){return i.onEnterTemplateId?"template":i.onEnterPrompt?"prompt":"none"}function H(i){return!!(i.onEnterMode||i.onEnterModel||i.onEnterEffortLevel||i.onEnterThinkingEnabled!==null||i.onEnterAutoRescheduleEnabled)}function ee(){var i,s;if(m.lane){const k=q(m.lane);Object.assign(b,k),a.value=J(m.lane),f.value=H(b);const be=((s=(i=r.board)==null?void 0:i.lanes)==null?void 0:s.findIndex(L=>L.id===m.lane.id))??-1;y.value=be,E.value=be}else{const k=q({});Object.assign(b,k),a.value="none",f.value=!1,y.value=-1,E.value=-1}}function te(){E.value=y.value,p("update:isOpen",!1),p("close")}function ue({text:i}){const s=C.value;if(s){const k=s.selectionStart,be=s.selectionEnd,L=b.onEnterPrompt.substring(0,k),S=b.onEnterPrompt.substring(be);b.onEnterPrompt=L+i+S,Ze(()=>{s.selectionStart=s.selectionEnd=k+i.length,s.focus()})}}function ae(i){const s=E.value;s<0||s===i||(E.value=i)}function pe(){return{onEnterTemplateId:null,onEnterPrompt:null,onEnterMode:null,onEnterModel:null,onEnterEffortLevel:null,onEnterThinkingEnabled:null,onEnterAutoRescheduleEnabled:!1,onEnterRescheduleDelayMinutes:15,onEnterRescheduleOnTokenLimit:!0,onEnterRescheduleOnServiceError:!0,onEnterMaxRescheduleCount:null,onEnterMaxTotalTokens:null,onEnterRescheduleAtTokenCount:null}}function le(i){return{...pe(),onEnterTemplateId:i.onEnterTemplateId,onEnterPrompt:null}}function ve(i){return{onEnterTemplateId:null,onEnterPrompt:i.onEnterPrompt.trim(),onEnterMode:i.onEnterMode,onEnterModel:i.onEnterModel,onEnterEffortLevel:i.onEnterEffortLevel,onEnterThinkingEnabled:i.onEnterThinkingEnabled,onEnterAutoRescheduleEnabled:i.onEnterAutoRescheduleEnabled,onEnterRescheduleDelayMinutes:i.onEnterRescheduleDelayMinutes,onEnterRescheduleOnTokenLimit:i.onEnterRescheduleOnTokenLimit,onEnterRescheduleOnServiceError:i.onEnterRescheduleOnServiceError,onEnterMaxRescheduleCount:i.onEnterMaxRescheduleCount,onEnterMaxTotalTokens:i.onEnterMaxTotalTokens,onEnterRescheduleAtTokenCount:i.onEnterRescheduleAtTokenCount}}async function fe(i,s,k,be){var M;if(k===s||k<0)return;const L=(M=r.board)==null?void 0:M.lanes;if(!L||L.length<=1)return;const S=L.map(_=>_.id);S.splice(s,1),S.splice(k,0,i.id),await r.reorderLanes(be,S)}async function D(){if(!(!m.lane||!B.value)){$.value=!0;try{const i={name:b.name.trim()};a.value==="template"?Object.assign(i,le(b)):a.value==="prompt"?Object.assign(i,ve(b)):Object.assign(i,pe()),await fe(m.lane,y.value,E.value,m.projectId),await r.updateLane(m.projectId,m.lane.id,i),A.success("Lane settings saved"),p("updated"),te()}catch(i){console.error("Failed to save lane settings:",i),A.error(i.message||"Failed to save lane settings")}finally{$.value=!1}}}async function P(){if(m.lane&&confirm(`Are you sure you want to delete the "${m.lane.name}" lane? This cannot be undone.`)){c.value=!0;try{await r.deleteLane(m.projectId,m.lane.id),A.success("Lane deleted"),p("deleted"),te()}catch(i){console.error("Failed to delete lane:",i),A.error(i.message||"Failed to delete lane")}finally{c.value=!1}}}return me(()=>m.isOpen,i=>{i&&(ee(),m.projectId&&T.projectTemplates.length===0&&T.globalTemplates.length===0&&T.fetchProjectTemplates(m.projectId))},{immediate:!0}),me(()=>m.lane,()=>{m.isOpen&&ee()}),me(()=>{var i;return(i=r.board)==null?void 0:i.lanes},i=>{if(m.isOpen&&m.lane&&i){const s=i.findIndex(k=>k.id===m.lane.id);s>=0&&(y.value=s,E.value=s)}},{deep:!0}),(i,s)=>d.isOpen?(t(),o("div",{key:0,class:"modal-backdrop",onClick:ce(te,["self"])},[e("div",An,[e("div",{class:"modal-header"},[s[22]||(s[22]=e("h2",{class:"modal-title"}," Lane Settings ",-1)),e("button",{class:"close-btn","aria-label":"Close",onClick:te}," × ")]),e("div",Rn,[e("div",xn,[s[23]||(s[23]=e("label",{for:"lane-name",class:"form-label"},"Lane Name",-1)),K(e("input",{id:"lane-name","onUpdate:modelValue":s[0]||(s[0]=k=>b.name=k),type:"text",class:"form-input",placeholder:"Enter lane name"},null,512),[[ke,b.name]])]),n.value>1?(t(),o("div",Ln,[s[26]||(s[26]=e("label",{class:"form-label"},"Position",-1)),e("div",On,[e("button",{class:"btn btn-icon",disabled:h.value<=0,title:"Move left",onClick:s[1]||(s[1]=k=>ae(h.value-1))},[...s[24]||(s[24]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[e("polyline",{points:"15 18 9 12 15 6"})],-1)])],8,Bn),e("span",Pn,F(h.value+1)+" of "+F(n.value),1),e("button",{class:"btn btn-icon",disabled:h.value>=n.value-1,title:"Move right",onClick:s[2]||(s[2]=k=>ae(h.value+1))},[...s[25]||(s[25]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[e("polyline",{points:"9 18 15 12 9 6"})],-1)])],8,Un)])])):w("",!0),e("div",Dn,[s[30]||(s[30]=e("label",{class:"form-label"},"On-Enter Automation",-1)),e("div",Vn,[e("label",Nn,[K(e("input",{"onUpdate:modelValue":s[3]||(s[3]=k=>a.value=k),type:"radio",value:"none",name:"automation"},null,512),[[xe,a.value]]),s[27]||(s[27]=e("span",null,"None",-1))]),e("label",In,[K(e("input",{"onUpdate:modelValue":s[4]||(s[4]=k=>a.value=k),type:"radio",value:"template",name:"automation"},null,512),[[xe,a.value]]),s[28]||(s[28]=e("span",null,"Run a template",-1))]),e("label",Gn,[K(e("input",{"onUpdate:modelValue":s[5]||(s[5]=k=>a.value=k),type:"radio",value:"prompt",name:"automation"},null,512),[[xe,a.value]]),s[29]||(s[29]=e("span",null,"Run a custom prompt",-1))])])]),a.value==="template"?(t(),o("div",Kn,[s[32]||(s[32]=e("label",{for:"template-select",class:"form-label"},"Select Template",-1)),K(e("select",{id:"template-select","onUpdate:modelValue":s[6]||(s[6]=k=>b.onEnterTemplateId=k),class:"form-input"},[s[31]||(s[31]=e("option",{value:null}," Select a template... ",-1)),I.value.length?(t(),o("optgroup",Hn,[(t(!0),o(X,null,Z(I.value,k=>(t(),o("option",{key:k.id,value:k.id},F(k.name),9,qn))),128))])):w("",!0),Y.value.length?(t(),o("optgroup",Wn,[(t(!0),o(X,null,Z(Y.value,k=>(t(),o("option",{key:k.id,value:k.id},F(k.name),9,zn))),128))])):w("",!0)],512),[[Ee,b.onEnterTemplateId]]),s[33]||(s[33]=e("p",{class:"form-help"}," When a session enters this lane, the selected template will automatically run. ",-1))])):w("",!0),a.value==="prompt"?(t(),o("div",Yn,[s[34]||(s[34]=e("label",{for:"custom-prompt",class:"form-label"},"Custom Prompt",-1)),Q(it,{id:"custom-prompt",ref_key:"promptTextareaRef",ref:C,modelValue:b.onEnterPrompt,"onUpdate:modelValue":s[7]||(s[7]=k=>b.onEnterPrompt=k),class:"form-input form-textarea",placeholder:"Enter the prompt to run when a session enters this lane...",rows:"4","min-height":80},null,8,["modelValue"]),e("div",Jn,[Q(ze),O.value?(t(),oe(ut,{key:0,onOpen:s[8]||(s[8]=k=>l.value=!0)})):w("",!0)])])):w("",!0),a.value==="prompt"?(t(),oe(ct,{key:3,"is-open":l.value,"onUpdate:isOpen":s[9]||(s[9]=k=>l.value=k),"working-directory":O.value||"",mode:"insert","hide-builtin":!0,onInsert:ue},null,8,["is-open","working-directory"])):w("",!0),a.value==="prompt"?(t(),o("div",Qn,[e("button",{type:"button",class:"section-toggle",onClick:s[10]||(s[10]=k=>f.value=!f.value)},[e("span",{class:ie(["toggle-chevron",{open:f.value}])},"▶",2),s[35]||(s[35]=de(" Session Settings ",-1))]),f.value?(t(),o("div",Xn,[Q(dt,{mode:b.onEnterMode||"standard",model:b.onEnterModel,"effort-level":b.onEnterEffortLevel,"thinking-enabled":b.onEnterThinkingEnabled??!1,"hide-start-immediately":!0,"onUpdate:mode":s[11]||(s[11]=k=>b.onEnterMode=k),"onUpdate:model":s[12]||(s[12]=k=>b.onEnterModel=k),"onUpdate:effortLevel":s[13]||(s[13]=k=>b.onEnterEffortLevel=k),"onUpdate:thinkingEnabled":s[14]||(s[14]=k=>b.onEnterThinkingEnabled=k)},null,8,["mode","model","effort-level","thinking-enabled"]),e("div",Zn,[e("label",eo,[e("label",to,[K(e("input",{"onUpdate:modelValue":s[15]||(s[15]=k=>b.onEnterAutoRescheduleEnabled=k),type:"checkbox"},null,512),[[Le,b.onEnterAutoRescheduleEnabled]]),s[36]||(s[36]=e("span",{class:"toggle-slider"},null,-1))]),s[37]||(s[37]=e("span",{class:"toggle-label"},"Auto-reschedule on errors",-1))])]),b.onEnterAutoRescheduleEnabled?(t(),o("div",so,[e("div",no,[s[40]||(s[40]=e("p",{class:"settings-label"}," Reschedule Triggers ",-1)),e("label",oo,[K(e("input",{"onUpdate:modelValue":s[16]||(s[16]=k=>b.onEnterRescheduleOnTokenLimit=k),type:"checkbox"},null,512),[[Le,b.onEnterRescheduleOnTokenLimit]]),s[38]||(s[38]=e("span",null,"Token limit errors",-1))]),e("label",ao,[K(e("input",{"onUpdate:modelValue":s[17]||(s[17]=k=>b.onEnterRescheduleOnServiceError=k),type:"checkbox"},null,512),[[Le,b.onEnterRescheduleOnServiceError]]),s[39]||(s[39]=e("span",null,"Service unavailability",-1))])]),e("div",lo,[s[42]||(s[42]=e("label",{class:"form-label"},"Reschedule Delay",-1)),K(e("select",{"onUpdate:modelValue":s[18]||(s[18]=k=>b.onEnterRescheduleDelayMinutes=k),class:"form-input"},[...s[41]||(s[41]=[e("option",{value:5}," 5 minutes ",-1),e("option",{value:15}," 15 minutes ",-1),e("option",{value:30}," 30 minutes ",-1),e("option",{value:60}," 1 hour ",-1),e("option",{value:120}," 2 hours ",-1)])],512),[[Ee,b.onEnterRescheduleDelayMinutes,void 0,{number:!0}]])]),e("div",ro,[s[43]||(s[43]=e("label",{class:"form-label"},"Max Reschedule Count",-1)),K(e("input",{"onUpdate:modelValue":s[19]||(s[19]=k=>b.onEnterMaxRescheduleCount=k),type:"number",min:"1",max:"100",class:"form-input",placeholder:"Unlimited"},null,512),[[ke,b.onEnterMaxRescheduleCount,void 0,{number:!0}]])]),e("div",io,[s[44]||(s[44]=e("label",{class:"form-label"},"Max Total Tokens",-1)),K(e("input",{"onUpdate:modelValue":s[20]||(s[20]=k=>b.onEnterMaxTotalTokens=k),type:"number",min:"1000",step:"1000",class:"form-input",placeholder:"Unlimited"},null,512),[[ke,b.onEnterMaxTotalTokens,void 0,{number:!0}]])]),e("div",uo,[s[45]||(s[45]=e("label",{class:"form-label"},"Reschedule At Token Count",-1)),K(e("input",{"onUpdate:modelValue":s[21]||(s[21]=k=>b.onEnterRescheduleAtTokenCount=k),type:"number",min:"10000",step:"10000",class:"form-input",placeholder:"None"},null,512),[[ke,b.onEnterRescheduleAtTokenCount,void 0,{number:!0}]])])])):w("",!0)])):w("",!0)])):w("",!0),e("div",co,[s[46]||(s[46]=e("h4",{class:"danger-title"}," Danger Zone ",-1)),s[47]||(s[47]=e("p",{class:"danger-description"}," Deleting this lane will remove all cards from it. Sessions will remain in the project. ",-1)),e("button",{class:"btn btn-danger",disabled:c.value,onClick:P},F(c.value?"Deleting...":"Delete Lane"),9,mo)])]),e("div",po,[e("button",{class:"btn btn-secondary",onClick:te}," Cancel "),e("button",{class:"btn btn-primary",disabled:$.value||!B.value,onClick:D},F($.value?"Saving...":"Save Changes"),9,vo)])])])):w("",!0)}},ho=Ce(fo,[["__scopeId","data-v-93f5604f"]]),bo={class:"kanban-board"},go={key:0,class:"kanban-loading"},yo={key:1,class:"kanban-error"},ko={key:2,class:"kanban-empty"},So={key:3,class:"kanban-lanes-container"},$o=["onDragover","onDrop"],Co={class:"lane-header"},wo={class:"lane-title-row"},Eo={class:"lane-title"},_o={key:0,class:"lane-automation-indicator",title:"Automation enabled"},To={class:"lane-header-actions"},jo={class:"lane-count"},Fo=["onClick"],Mo={class:"lane-cards"},Ao={key:0,class:"card-drop-indicator"},Ro=["onDragstart","onDragover"],xo={class:"card-header"},Lo={class:"card-title"},Oo={class:"card-meta"},Bo={key:0,class:"card-mode"},Po={class:"card-reorder-arrows"},Uo=["onClick"],Do=["onClick"],Vo=["onClick"],No=["onClick"],Io={key:0,class:"card-drop-indicator"},Go={key:1,class:"lane-empty"},Ko={class:"lane-footer"},Ho={key:0,class:"lane-automation"},qo={key:1,class:"lane-automation"},Wo=["onClick"],zo={class:"add-lane-container"},Yo={key:1,class:"add-lane-form"},Jo={__name:"KanbanBoard",props:{projectId:{type:String,required:!0}},setup(d){const u=d,m=Ae(),p=R(!1),r=R(""),T=R(null),A=R(null),j=R(null),$=R(-1),c=R(null),a=R(-1),f=R(!1),l=R(null),C=R(!1),y=R(null),E=R(!1),b=R(null),I=R(null),Y=V(()=>m.board),O=V(()=>m.loading),h=V(()=>m.error),n=async()=>{try{await m.fetchBoard(u.projectId)}catch(M){console.error("Failed to fetch kanban board:",M)}},B=M=>{switch(M){case"running":case"starting":return"●";case"waiting":return"◐";case"completed":return"✓";case"error":return"✕";case"stopped":return"■";case"scheduled":return"⏰";default:return"○"}},g=(M,_,W,N)=>{T.value="card",A.value=_,j.value=W,$.value=N;const z=M.dataTransfer;z.effectAllowed="move",z.setData("text/plain",_.id)},q=(M,_,W)=>{if(T.value!=="card")return;const N=M.currentTarget.getBoundingClientRect(),z=N.top+N.height/2,se=M.clientY<z?W:W+1;_===j.value&&(se===$.value||se===$.value+1)?(c.value=null,a.value=-1):(c.value=_,a.value=se)},J=()=>{T.value=null,A.value=null,j.value=null,$.value=-1,c.value=null,a.value=-1},H=async(M,_,W)=>{var he,re;const N=(re=(he=Y.value)==null?void 0:he.lanes)==null?void 0:re.find(x=>x.id===M);if(!(N!=null&&N.cards))return;let z=W>=0?W:N.cards.length;if(z>_&&z--,z===_)return;const se=N.cards.map(x=>x.id),[ge]=se.splice(_,1);se.splice(z,0,ge);try{await m.reorderCards(u.projectId,M,se)}catch(x){console.error("Failed to reorder cards:",x)}},ee=async(M,_)=>{try{await m.moveCard(u.projectId,M,_,{runOnEnterTemplate:!0})}catch(W){console.error("Failed to move card:",W)}},te=async(M,_)=>{if(M.preventDefault(),T.value!=="card"||!A.value){J();return}const W=M.dataTransfer.getData("text/plain");if(!W){J();return}j.value===_?await H(_,$.value,a.value):await ee(W,_),J()},ue=async(M,_,W)=>{var ge,he;const N=(he=(ge=Y.value)==null?void 0:ge.lanes)==null?void 0:he.find(re=>re.id===M);if(!(N!=null&&N.cards))return;const z=N.cards.map(re=>re.id),[se]=z.splice(_,1);z.splice(W,0,se);try{await m.reorderCards(u.projectId,M,z)}catch(re){console.error("Failed to reorder cards:",re)}},ae=async M=>{if(confirm("Remove this session from the board?"))try{await m.removeCard(u.projectId,M)}catch(_){console.error("Failed to remove card:",_)}},pe=async()=>{if(r.value.trim())try{await m.createLane(u.projectId,{name:r.value.trim()}),le()}catch(M){console.error("Failed to add lane:",M)}},le=()=>{p.value=!1,r.value=""},ve=M=>{l.value=M,f.value=!0},fe=()=>{f.value=!1,l.value=null},D=()=>{},P=M=>{y.value=M,C.value=!0},i=()=>{C.value=!1,y.value=null},s=()=>{},k=()=>{i()},be=(M,_)=>{b.value=M,I.value=_,E.value=!0},L=()=>{E.value=!1,b.value=null,I.value=null},S=()=>{L()};return me(()=>u.projectId,M=>{M&&n()},{immediate:!0}),Pe(()=>{u.projectId&&n()}),(M,_)=>{var N,z,se,ge,he,re;const W=Me("router-link");return t(),o("div",bo,[O.value?(t(),o("div",go,[..._[5]||(_[5]=[e("span",{class:"loading-spinner"},null,-1),de(" Loading board... ",-1)])])):h.value?(t(),o("div",yo,[_[6]||(_[6]=e("span",{class:"error-icon"},"!",-1)),de(" "+F(h.value)+" ",1),e("button",{class:"retry-btn",onClick:n}," Retry ")])):Y.value?(t(),o("div",So,[(t(!0),o(X,null,Z(Y.value.lanes,x=>{var _e,Te,je;return t(),o("div",{key:x.id,class:"kanban-lane",onDragover:ce(G=>{var ne;return q(G,x.id,((ne=x.cards)==null?void 0:ne.length)||0)},["prevent"]),onDrop:G=>te(G,x.id)},[e("div",Co,[e("div",wo,[e("h3",Eo,F(x.name),1),x.onEnterTemplateId||x.onEnterPrompt?(t(),o("span",_o,[..._[8]||(_[8]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor"},[e("path",{d:"M13 10V3L4 14h7v7l9-11h-7z"})],-1)])])):w("",!0)]),e("div",To,[e("span",jo,F(((_e=x.cards)==null?void 0:_e.length)||0),1),e("button",{class:"lane-settings-btn",title:"Lane settings",onClick:G=>P(x)},[..._[9]||(_[9]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e("circle",{cx:"12",cy:"12",r:"3"}),e("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)])],8,Fo)])]),e("div",Mo,[(t(!0),o(X,null,Z(x.cards,(G,ne)=>{var U,Se;return t(),o(X,{key:G.id},[T.value==="card"&&c.value===x.id&&a.value===ne?(t(),o("div",Ao)):w("",!0),e("div",{class:ie(["kanban-card",{dragging:T.value==="card"&&((U=A.value)==null?void 0:U.id)===G.id}]),draggable:"true",onDragstart:ce($e=>g($e,G,x.id,ne),["stop"]),onDragover:ce($e=>q($e,x.id,ne),["prevent","stop"]),onDragend:J},[(Se=G.sessions)!=null&&Se[0]?(t(),oe(W,{key:0,to:`/sessions/${G.sessions[0].id}`,class:"card-link"},{default:ye(()=>[e("div",xo,[e("span",{class:ie(["card-status",`status-${G.sessions[0].status}`])},F(B(G.sessions[0].status)),3),e("h4",Lo,F(G.sessions[0].name),1)]),e("div",Oo,[G.sessions[0].mode?(t(),o("span",Bo,F(G.sessions[0].mode),1)):w("",!0)])]),_:2},1032,["to"])):w("",!0),e("div",Po,[ne>0?(t(),o("button",{key:0,class:"card-reorder-btn",title:"Move card up",onClick:ce($e=>ue(x.id,ne,ne-1),["prevent"])},[..._[10]||(_[10]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[e("polyline",{points:"18 15 12 9 6 15"})],-1)])],8,Uo)):w("",!0),ne<x.cards.length-1?(t(),o("button",{key:1,class:"card-reorder-btn",title:"Move card down",onClick:ce($e=>ue(x.id,ne,ne+1),["prevent"])},[..._[11]||(_[11]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[e("polyline",{points:"6 9 12 15 18 9"})],-1)])],8,Do)):w("",!0)]),e("button",{class:"card-move-btn",title:"Move to lane",onClick:ce($e=>be(G,x.id),["prevent"])},[..._[12]||(_[12]=[Ue('<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 4 19 4 19 8"></polyline><line x1="14" y1="10" x2="19" y2="4"></line><polyline points="9 20 5 20 5 16"></polyline><line x1="10" y1="14" x2="5" y2="20"></line></svg>',1)])],8,Vo),e("button",{class:"card-remove-btn",title:"Remove from board",onClick:ce($e=>ae(G.id),["prevent"])}," × ",8,No)],42,Ro)],64)}),128)),T.value==="card"&&c.value===x.id&&a.value===(((Te=x.cards)==null?void 0:Te.length)||0)?(t(),o("div",Io)):w("",!0),(je=x.cards)!=null&&je.length?w("",!0):(t(),o("div",Go,[..._[13]||(_[13]=[e("span",null,"Drop sessions here",-1)])]))]),e("div",Ko,[x.onEnterTemplateId?(t(),o("span",Ho," Auto: triggers template on entry ")):x.onEnterPrompt?(t(),o("span",qo," Auto: runs custom prompt on entry ")):w("",!0),e("button",{class:"add-session-btn",onClick:G=>ve(x)}," + Add Session ",8,Wo)])],40,$o)}),128)),e("div",zo,[p.value?(t(),o("div",Yo,[K(e("input",{"onUpdate:modelValue":_[1]||(_[1]=x=>r.value=x),type:"text",placeholder:"Lane name...",class:"add-lane-input",onKeyup:[Ve(pe,["enter"]),Ve(le,["escape"])]},null,544),[[ke,r.value]]),e("div",{class:"add-lane-actions"},[e("button",{class:"add-lane-confirm",onClick:pe}," Add "),e("button",{class:"add-lane-cancel",onClick:le}," Cancel ")])])):(t(),o("button",{key:0,class:"add-lane-btn",onClick:_[0]||(_[0]=x=>p.value=!0)}," + Add Lane "))])])):(t(),o("div",ko,[..._[7]||(_[7]=[e("p",null,"Kanban board is not available for this project.",-1)])])),Q(Je,{"is-open":f.value,"project-id":d.projectId,"lane-id":(N=l.value)==null?void 0:N.id,"lane-name":(z=l.value)==null?void 0:z.name,"onUpdate:isOpen":_[2]||(_[2]=x=>f.value=x),onClose:fe,onAdded:D},null,8,["is-open","project-id","lane-id","lane-name"]),Q(ho,{"is-open":C.value,"project-id":d.projectId,lane:y.value,"onUpdate:isOpen":_[3]||(_[3]=x=>C.value=x),onClose:i,onUpdated:s,onDeleted:k},null,8,["is-open","project-id","lane"]),Q(ot,{"is-open":E.value,"project-id":d.projectId,"card-id":(se=b.value)==null?void 0:se.id,"current-lane-id":I.value,"session-name":(re=(he=(ge=b.value)==null?void 0:ge.sessions)==null?void 0:he[0])==null?void 0:re.name,"onUpdate:isOpen":_[4]||(_[4]=x=>E.value=x),onClose:L,onMoved:S},null,8,["is-open","project-id","card-id","current-lane-id","session-name"])])}}},Qo={class:"container"},Xo={class:"page-header"},Zo={class:"project-title"},ea=["href"],ta={class:"tabs"},sa={class:"tabs-desktop"},na={class:"tabs-left"},oa={class:"tabs-mobile"},aa=["value"],la={key:0,value:"kanban"},ra={key:2,class:"tab-spacer"},ia={key:3},da={key:0,class:"skeleton-list"},ua={key:1,class:"error-message"},ca={key:2,class:"empty-state"},ma={key:3,class:"empty-state"},pa={key:4,class:"session-list"},va={key:5},fa={key:6},ha={class:"modal-content lane-selector-modal"},ba={class:"modal-body"},ga={class:"modal-description"},ya={class:"lane-options"},ka=["onClick"],Sa={class:"lane-option-name"},$a={class:"lane-option-count"},Ca={key:0,class:"empty-lanes"},Da={__name:"SessionListView",setup(d){const u=et(),m=Ge(),p=De(),r=we(),T=Ae(),A=Ke();vt(),A.restoreCollapsedLogState();const j=V(()=>{switch(u.name){case"ArchivedSessions":return"archived";case"ProjectTemplates":return"templates";case"ProjectCommands":return"commands";case"ScheduledSessions":return"scheduled";case"ProjectKanban":return"kanban";default:return"sessions"}});function $(L){const S=u.params.id,M={sessions:`/projects/${S}/sessions`,archived:`/projects/${S}/archived`,templates:`/projects/${S}/templates`,commands:`/projects/${S}/commands`,scheduled:`/projects/${S}/scheduled`,kanban:`/projects/${S}/kanban`};m.push(M[L])}const c=V(()=>u.params.id),{summaries:a,loadingSummaries:f,summaryErrors:l,fetchSummariesBatch:C,retryFetchSummary:y,updateSummary:E,cleanupSummary:b}=mt(),{filteredGroupedSessions:I}=Ye(),{archivedLoaded:Y}=pt(c,{fetchSummariesBatch:C,updateSummary:E,cleanupSummary:b}),O=V(()=>r.scheduledSessions||[]),h=V(()=>r.loadingScheduled||!1);let n=null;me(()=>r.sessions,()=>{clearTimeout(n),n=setTimeout(()=>{C(r.sessions)},400)}),me(()=>u.name,async L=>{L==="ArchivedSessions"?await B():L==="ScheduledSessions"&&await q()},{immediate:!0}),me([j,()=>{var L;return(L=p.currentProject)==null?void 0:L.kanbanEnabled}],([L,S])=>{L==="kanban"&&S===!1&&m.replace(`/projects/${u.params.id}/sessions`)},{immediate:!0}),me(()=>r.starredFilter,async(L,S)=>{j.value==="archived"&&Y.value&&L!==S&&(await r.fetchArchivedSessions(c.value,{reset:!0}),C(r.archivedSessions))});async function B(){Y.value||(await r.fetchArchivedSessions(c.value,{reset:!0}),Y.value=!0,C(r.archivedSessions))}async function g(){await r.loadMoreArchivedSessions(c.value),C(r.archivedSessions)}async function q(){await r.fetchScheduledSessions(c.value)}const J=R(!1),H=R(null),ee=R(!1);function te(L){const S=r.sessions.find(M=>M.id===L);H.value=S||{id:L},J.value=!0}async function ue(L){if(H.value){ee.value=!0;try{await r.archiveSession(H.value.id,{cleanup:L}),le.success("Session archived")}catch(S){le.error(S.message||"Failed to archive session")}finally{ee.value=!1,J.value=!1,H.value=null}}}function ae(){J.value=!1,H.value=null}async function pe(L){try{await r.unarchiveSession(L)}catch(S){console.error("Failed to unarchive session:",S)}}const le=Fe(),ve=R(!1),fe=R(null),D=R(!1),P=R(null);function i(L){P.value=L,D.value=!0}function s(){D.value=!1,P.value=null}async function k(L){if(!(!P.value||!L))try{await T.addSessionToBoard(u.params.id,P.value.id,L.id),le.success(`Session added to "${L.name}"`),s()}catch(S){console.error("Failed to add session to board:",S),le.error(S.message||"Failed to add session to board")}}function be(){ve.value=!1,fe.value=null}return Pe(()=>{r.restoreStatusFilter(),r.restoreStarredFilter(),r.restoreScheduledFilter();const L=u.params.id;L&&T.fetchBoard(L).catch(S=>{console.warn("Failed to fetch kanban board:",S)})}),Be(()=>{clearTimeout(n)}),(L,S)=>{var _,W,N,z,se,ge,he,re,x,_e,Te,je,G,ne;const M=Me("router-link");return t(),o("div",Qo,[e("div",Xo,[e("div",null,[e("div",Zo,[e("h1",null,F(((_=v(p).currentProject)==null?void 0:_.name)||"Sessions"),1),(W=v(p).currentProject)!=null&&W.repoUrl?(t(),o("a",{key:0,href:v(p).currentProject.repoUrl,target:"_blank",rel:"noopener noreferrer",class:"repo-link",title:"Open repository"},[...S[8]||(S[8]=[e("svg",{class:"repo-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6m4-3l6 6m0 0l-6 6m6-6H9"})],-1)])],8,ea)):w("",!0),Q(M,{to:`/projects/${v(u).params.id}/edit`,class:"settings-link",title:"Project settings"},{default:ye(()=>[...S[9]||(S[9]=[e("svg",{class:"settings-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M12.22 2h-.44a2 2 0 00-2 2v.18a2 2 0 01-1 1.73l-.43.25a2 2 0 01-2 0l-.15-.08a2 2 0 00-2.73.73l-.22.38a2 2 0 00.73 2.73l.15.1a2 2 0 011 1.72v.51a2 2 0 01-1 1.74l-.15.09a2 2 0 00-.73 2.73l.22.38a2 2 0 002.73.73l.15-.08a2 2 0 012 0l.43.25a2 2 0 011 1.73V20a2 2 0 002 2h.44a2 2 0 002-2v-.18a2 2 0 011-1.73l.43-.25a2 2 0 012 0l.15.08a2 2 0 002.73-.73l.22-.39a2 2 0 00-.73-2.73l-.15-.08a2 2 0 01-1-1.74v-.5a2 2 0 011-1.74l.15-.09a2 2 0 00.73-2.73l-.22-.38a2 2 0 00-2.73-.73l-.15.08a2 2 0 01-2 0l-.43-.25a2 2 0 01-1-1.73V4a2 2 0 00-2-2z"}),e("circle",{cx:"12",cy:"12",r:"3"})],-1)])]),_:1},8,["to"])])]),j.value==="sessions"?(t(),oe(M,{key:0,to:`/projects/${v(u).params.id}/sessions/new`,class:"btn btn-primary mobile-only"},{default:ye(()=>[...S[10]||(S[10]=[de(" + Session ",-1)])]),_:1},8,["to"])):w("",!0)]),e("div",ta,[e("div",sa,[e("div",na,[e("button",{class:ie(["tab",{active:j.value==="sessions"}]),onClick:S[0]||(S[0]=U=>v(m).push(`/projects/${v(u).params.id}/sessions`))}," Sessions ",2),e("button",{class:ie(["tab",{active:j.value==="archived"}]),onClick:S[1]||(S[1]=U=>v(m).push(`/projects/${v(u).params.id}/archived`))}," Archived ",2),e("button",{class:ie(["tab",{active:j.value==="templates"}]),onClick:S[2]||(S[2]=U=>v(m).push(`/projects/${v(u).params.id}/templates`))}," Templates ",2),e("button",{class:ie(["tab",{active:j.value==="commands"}]),onClick:S[3]||(S[3]=U=>v(m).push(`/projects/${v(u).params.id}/commands`))}," Commands ",2),e("button",{class:ie(["tab",{active:j.value==="scheduled"}]),onClick:S[4]||(S[4]=U=>v(m).push(`/projects/${v(u).params.id}/scheduled`))}," Scheduled ",2),(N=v(p).currentProject)!=null&&N.kanbanEnabled?(t(),o("button",{key:0,class:ie(["tab",{active:j.value==="kanban"}]),onClick:S[5]||(S[5]=U=>v(m).push(`/projects/${v(u).params.id}/kanban`))},[...S[11]||(S[11]=[de(" Kanban ",-1),e("span",{class:"ml-1 rounded bg-amber-900/50 px-1.5 py-0.5 text-[10px] font-semibold uppercase text-amber-300"}," Experimental ",-1)])],2)):w("",!0)]),j.value==="sessions"?(t(),oe(M,{key:0,to:`/projects/${v(u).params.id}/sessions/new`,class:"btn btn-primary desktop-only","aria-label":"New Session"},{default:ye(()=>[...S[12]||(S[12]=[e("span",{class:"add-session-label-full"},"+ Session",-1),e("span",{class:"add-session-label-short"},"+",-1)])]),_:1},8,["to"])):w("",!0)]),e("div",oa,[e("select",{value:j.value,class:"tab-select",onChange:S[6]||(S[6]=U=>$(U.target.value))},[S[13]||(S[13]=Ue('<option value="sessions"> Sessions </option><option value="archived"> Archived </option><option value="templates"> Templates </option><option value="commands"> Commands </option><option value="scheduled"> Scheduled </option>',5)),(z=v(p).currentProject)!=null&&z.kanbanEnabled?(t(),o("option",la," Kanban (experimental) ")):w("",!0)],40,aa)])]),j.value==="sessions"?(t(),oe(Ne,{key:0,"show-status-filters":!0,"show-scheduled-filter":!0})):j.value==="archived"?(t(),oe(Ne,{key:1,"show-status-filters":!1,"show-scheduled-filter":!1})):(t(),o("div",ra)),j.value==="sessions"?(t(),o("div",ia,[v(r).loading?(t(),o("div",da,[(t(),o(X,null,Z(3,U=>e("div",{key:U,class:"skeleton card",style:{height:"120px"}})),64))])):v(r).error?(t(),o("div",ua,F(v(r).error),1)):v(r).sessions.length===0?(t(),o("div",ca,[S[15]||(S[15]=e("p",null,"No sessions yet. Start a new session to interact with the agent.",-1)),Q(M,{to:`/projects/${v(u).params.id}/sessions/new`,class:"btn btn-primary"},{default:ye(()=>[...S[14]||(S[14]=[de(" New Session ",-1)])]),_:1},8,["to"])])):v(I).length===0?(t(),o("div",ma,[...S[16]||(S[16]=[e("p",null,"No sessions match the current filter.",-1)])])):(t(),o("div",pa,[(t(!0),o(X,null,Z(v(I),U=>{var Se;return t(),oe(qe,{key:U.parent.id,session:U.parent,"show-summary":!0,summary:v(a)[U.parent.id],"summary-loading":v(f)[U.parent.id],"summary-error":v(l)[U.parent.id],"show-archive":!0,"kanban-enabled":((Se=v(p).currentProject)==null?void 0:Se.kanbanEnabled)??!1,"pr-url":U.parent.prUrl,"pr-summary":v(a)[U.parent.id],onRetrySummary:v(y),onArchive:te,onAddToBoard:i},null,8,["session","summary","summary-loading","summary-error","kanban-enabled","pr-url","pr-summary","onRetrySummary"])}),128))]))])):w("",!0),j.value==="archived"?(t(),oe(Ut,{key:4,summaries:v(a),"loading-summaries":v(f),"summary-errors":v(l),onRetrySummary:v(y),onUnarchive:pe,onLoadMore:g},null,8,["summaries","loading-summaries","summary-errors","onRetrySummary"])):w("",!0),j.value==="templates"?(t(),o("div",va,[Q(Ys,{"project-id":v(u).params.id},null,8,["project-id"])])):w("",!0),j.value==="commands"?(t(),o("div",fa,[Q(cn,{"project-id":v(u).params.id},null,8,["project-id"])])):w("",!0),j.value==="scheduled"?(t(),oe(ls,{key:7,sessions:O.value,loading:h.value},null,8,["sessions","loading"])):w("",!0),j.value==="kanban"?(t(),oe(Jo,{key:8,"project-id":v(u).params.id},null,8,["project-id"])):w("",!0),Q(Je,{"is-open":ve.value,"project-id":v(u).params.id,"lane-id":(se=fe.value)==null?void 0:se.id,"lane-name":(ge=fe.value)==null?void 0:ge.name,"onUpdate:isOpen":S[7]||(S[7]=U=>ve.value=U),onClose:be},null,8,["is-open","project-id","lane-id","lane-name"]),D.value?(t(),o("div",{key:9,class:"modal-backdrop",onClick:ce(s,["self"])},[e("div",ha,[e("div",{class:"modal-header"},[S[17]||(S[17]=e("h2",{class:"modal-title"}," Add to Kanban Board ",-1)),e("button",{class:"close-btn","aria-label":"Close",onClick:s}," × ")]),e("div",ba,[e("p",ga,' Select a lane to add "'+F((he=P.value)==null?void 0:he.name)+'" to: ',1),e("div",ya,[(t(!0),o(X,null,Z((re=v(T).board)==null?void 0:re.lanes,U=>{var Se;return t(),o("button",{key:U.id,class:"lane-option-btn",onClick:$e=>k(U)},[e("span",Sa,F(U.name),1),e("span",$a,F(((Se=U.cards)==null?void 0:Se.length)||0)+" cards",1)],8,ka)}),128))]),(_e=(x=v(T).board)==null?void 0:x.lanes)!=null&&_e.length?w("",!0):(t(),o("p",Ca," No lanes available. Go to the Kanban tab to create lanes first. "))]),e("div",{class:"modal-footer"},[e("button",{class:"btn btn-secondary",onClick:s}," Cancel ")])])])):w("",!0),Q(at,{"is-open":J.value,"session-name":((Te=H.value)==null?void 0:Te.name)||"this session","has-cleanup-script":!!((je=v(p).currentProject)!=null&&je.onSessionDeleted&&((G=H.value)!=null&&G.gitWorktree)&&!((ne=H.value)!=null&&ne.parentSessionId)),loading:ee.value,onConfirm:ue,onCancel:ae},null,8,["is-open","session-name","has-cleanup-script","loading"])])}}};export{Da as default};
|