circuschief 0.5.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 +2 -1
- package/packages/server/src/agents/AgentGateway.js +36 -3
- package/packages/server/src/agents/BaseAgent.js +15 -1
- package/packages/server/src/agents/LoggingAgentWrapper.js +4 -0
- package/packages/server/src/agents/adapters/ClaudeCodeAdapter.js +9 -6
- package/packages/server/src/agents/adapters/CodexAdapter.js +262 -14
- package/packages/server/src/agents/adapters/codexCliRunner.js +185 -0
- package/packages/server/src/agents/adapters/codexEventMapper.js +235 -0
- package/packages/server/src/agents/types.js +1 -0
- package/packages/server/src/agents/vcr/VCRAgentAdapter.js +8 -0
- package/packages/server/src/api/agents.js +27 -0
- package/packages/server/src/api/canvas.js +20 -0
- package/packages/server/src/api/index.js +2 -0
- package/packages/server/src/api/projects-session-helpers.js +25 -0
- package/packages/server/src/api/projects.js +8 -0
- package/packages/server/src/api/providers.js +1 -0
- package/packages/server/src/api/sessions-draft.js +1 -0
- package/packages/server/src/api/sessions-messages.js +6 -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/ProviderRepository.js +62 -6
- package/packages/server/src/db/SessionRepository.js +74 -14
- 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 +4 -0
- package/packages/server/src/db/migrations/miscMigrations.js +53 -3
- package/packages/server/src/db/migrations/sessionsMigrations.js +6 -1
- package/packages/server/src/db/session-helpers.js +8 -0
- package/packages/server/src/schema.sql +9 -0
- package/packages/server/src/services/agentCallLogger.js +1 -1
- package/packages/server/src/services/codexSpawnHelper.js +37 -0
- package/packages/server/src/services/commandButtonPrompts.js +48 -0
- package/packages/server/src/services/conversationContext.js +27 -0
- package/packages/server/src/services/draftSessionService.js +15 -2
- package/packages/server/src/services/kanbanTriggers.js +3 -0
- package/packages/server/src/services/providerTestService.js +115 -15
- package/packages/server/src/services/sessionAgentGuard.js +38 -0
- package/packages/server/src/services/sessionExecution.js +127 -33
- package/packages/server/src/services/sessionManager.js +45 -8
- package/packages/server/src/services/sessionPrompts.js +29 -0
- package/packages/server/src/services/sessionProvider.js +160 -41
- package/packages/server/src/services/streamEventCallbacks.js +72 -40
- package/packages/server/src/services/streamEventHandler.js +16 -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/templateTriggerService.js +2 -0
- 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/contracts/providers.js +24 -7
- package/packages/shared/src/contracts/sessions.js +1 -1
- package/packages/shared/src/index.js +1 -0
- package/packages/shared/src/types.js +28 -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-DCF2WvP2.js → AgentLogsView-BGFPLjLa.js} +1 -1
- package/packages/web/dist/assets/ApiClient-B4YTtyY4.js +1 -0
- package/packages/web/dist/assets/{ArchiveConfirmModal-fgoEQhfq.js → ArchiveConfirmModal-OFaj_uX5.js} +1 -1
- package/packages/web/dist/assets/{CommandButtonDetailView-DAg07cDQ.js → CommandButtonDetailView-D8S258uP.js} +1 -1
- package/packages/web/dist/assets/EffortLevelSelector-C2378L8e.js +1 -0
- package/packages/web/dist/assets/{GeneralSettingsView-Cn9VI2du.js → GeneralSettingsView-DsHChEhv.js} +1 -1
- package/packages/web/dist/assets/{InputWithButton-BvboBGbz.js → InputWithButton-Ci15ox0a.js} +1 -1
- package/packages/web/dist/assets/{InterpolationHelp-0GoSBPgf.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-DPPD-92R.css → ModelSelector-D8hbTRIt.css} +1 -1
- package/packages/web/dist/assets/{NewSessionView-C77YVqgY.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-CLwtuJ0J.js → ProjectListView-B9FuWESY.js} +1 -1
- package/packages/web/dist/assets/{ProjectNewView-CzDtVibO.js → ProjectNewView-D62jYlBL.js} +1 -1
- package/packages/web/dist/assets/ProvidersView-DDKMIQWZ.js +1 -0
- package/packages/web/dist/assets/ProvidersView-DE82G_5W.css +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-CTXYjMF-.js → QuickResponsesPanel-DZ_Lre_l.js} +1 -1
- package/packages/web/dist/assets/{ResizableTextarea-Cw6aL4rp.js → ResizableTextarea-DiIOEGjN.js} +1 -1
- package/packages/web/dist/assets/ResizableTextarea-DsU3TVwF.css +1 -0
- package/packages/web/dist/assets/SessionCard-BMGC2HqI.css +1 -0
- package/packages/web/dist/assets/SessionCard-DmjnVYWn.js +1 -0
- 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/{SessionListView-DVhoZHN9.css → SessionListView-fHlQyecX.css} +1 -1
- package/packages/web/dist/assets/{SessionLogStream-DIndOyFR.js → SessionLogStream-DpUE6Xsh.js} +1 -1
- package/packages/web/dist/assets/{SettingsView-CmJ5JPd5.js → SettingsView-BC055tIA.js} +1 -1
- package/packages/web/dist/assets/SlashCommandWizard-DmTyNG9O.js +1 -0
- package/packages/web/dist/assets/SlashCommandWizard-Dn7sNaBd.css +1 -0
- 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-D74TkPNU.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-B6G18FqB.js +82 -0
- package/packages/web/dist/assets/{index-DMZZCi2u.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-DQMHi05L.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-D_C9dE9s.js → projects-BUiOGmmb.js} +1 -1
- package/packages/web/dist/assets/providers-Bh1ZiiJi.js +1 -0
- 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-BafIafEu.js +0 -1
- package/packages/web/dist/assets/ApiClient-CcqJ-GAv.js +0 -1
- package/packages/web/dist/assets/EffortLevelSelector-xE3gidpq.js +0 -1
- package/packages/web/dist/assets/MarkdownEditor-HCKnwRye.js +0 -2
- package/packages/web/dist/assets/ModelSelector-B0RdlCHT.js +0 -1
- package/packages/web/dist/assets/ProjectEditView-BBHOsgBV.js +0 -1
- package/packages/web/dist/assets/ProjectEditView-CpeKj-_w.css +0 -1
- package/packages/web/dist/assets/ProvidersView-Eg93KbyC.js +0 -1
- package/packages/web/dist/assets/ProvidersView-uD8SKWpA.css +0 -1
- package/packages/web/dist/assets/QuickResponseSettings-BBHMapcA.js +0 -1
- package/packages/web/dist/assets/ResizableTextarea-B5nAA0RV.css +0 -1
- package/packages/web/dist/assets/SessionCard-CCapYVjy.js +0 -1
- package/packages/web/dist/assets/SessionCard-CcqIjL8q.css +0 -1
- package/packages/web/dist/assets/SessionDetailView-BL83oPiI.css +0 -1
- package/packages/web/dist/assets/SessionDetailView-CrZvMb3j.js +0 -36
- package/packages/web/dist/assets/SessionFormOptions-BuLlDF-7.css +0 -1
- package/packages/web/dist/assets/SessionFormOptions-Em7sQCGb.js +0 -1
- package/packages/web/dist/assets/SessionListView-3zdDtqhw.js +0 -1
- package/packages/web/dist/assets/SlashCommandWizard-BB30cSvo.css +0 -1
- package/packages/web/dist/assets/SlashCommandWizard-C_cSgF-P.js +0 -1
- package/packages/web/dist/assets/SummarySettingsView-DQM1n3bc.js +0 -1
- package/packages/web/dist/assets/SummarySettingsView-DcsmSVJI.css +0 -1
- package/packages/web/dist/assets/TemplateDetailView-B8clSBPk.js +0 -1
- package/packages/web/dist/assets/index-B5ocUoPf.js +0 -1
- package/packages/web/dist/assets/index-BELtFs3n.js +0 -1
- package/packages/web/dist/assets/index-BGAW2Nqa.js +0 -82
- package/packages/web/dist/assets/index-BsDR4w2c.js +0 -1
- package/packages/web/dist/assets/index-CVozYqQ-.js +0 -3
- package/packages/web/dist/assets/index-CefzeYRE.js +0 -1
- package/packages/web/dist/assets/index-CrLh8vw5.js +0 -1
- package/packages/web/dist/assets/index-DIvveuSK.js +0 -1
- package/packages/web/dist/assets/index-DPt6qBRK.js +0 -1
- package/packages/web/dist/assets/index-DYWZ8lD-.js +0 -1
- package/packages/web/dist/assets/index-DrlwE0Zo.js +0 -7
- package/packages/web/dist/assets/index-DuXChAe-.js +0 -1
- package/packages/web/dist/assets/index-Dz7jFUYU.js +0 -1
- package/packages/web/dist/assets/index-Gre8tUfC.js +0 -1
- package/packages/web/dist/assets/index-_Lv79l46.js +0 -1
- package/packages/web/dist/assets/index-f315nDFm.js +0 -1
- package/packages/web/dist/assets/index-rjbX81sm.js +0 -1
- package/packages/web/dist/assets/providers-BdvbPVdE.js +0 -1
- package/packages/web/dist/assets/sessions-Bs5FA6JZ.js +0 -1
- package/packages/web/dist/assets/settings-6Rw9xt-G.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var b=n=>{throw TypeError(n)};var g=(n,e,s)=>e.has(n)||b("Cannot "+s);var h=(n,e,s)=>(g(n,e,"read from private field"),s?s.call(n):e.get(n)),y=(n,e,s)=>e.has(n)?b("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(n):e.set(n,s),C=(n,e,s,t)=>(g(n,e,"write to private field"),t?t.call(n,s):e.set(n,s),s),l=(n,e,s)=>(g(n,e,"access private method"),s);function j(n){Object.assign(n.prototype,{async getProjects(){return this._get("/projects")},async getProject(e){return this._get(`/projects/${e}`)},async createProject(e){return this._post("/projects",e)},async updateProject(e,s){return this._put(`/projects/${e}`,s)},async deleteProject(e){return this._delete(`/projects/${e}`)}})}function S(n,e,s){for(const t of s)e[t]!==void 0&&e[t]!==null&&n.append(t,e[t])}function k(n,e,s){for(const t of s)e[t]!==void 0&&e[t]!==null&&n.append(t,String(e[t]))}function P(n,e){const s=new FormData;s.append("prompt",n.prompt),S(s,n,["name","mode","model","effortLevel","gitBranch","gitMode","templateId","parentSessionId"]),k(s,n,["thinkingEnabled","startImmediately","autoRescheduleEnabled","rescheduleOnTokenLimit","rescheduleOnServiceError"]),S(s,n,["scheduledAt","rescheduleDelayMinutes","maxRescheduleCount","maxTotalTokens","rescheduleAtTokenCount"]);for(const t of e)s.append("files",t);return s}function T(n){Object.assign(n.prototype,{async getActiveSessions(){return this._get("/sessions")},async getScheduledSessions(e=null){return this._get(this._buildQueryPath("/sessions/scheduled",{projectId:e||void 0}))},async getProjectSessions(e,s=null,t=null,{limit:r=null,offset:a=0}={}){const o={};return s!==null&&(o.archived=s),t==="starred"?o.starred=!0:t==="unstarred"&&(o.starred=!1),r!==null&&(o.limit=r,o.offset=a),this._get(this._buildQueryPath(`/projects/${e}/sessions`,o))},async createSession(e,s){const{files:t,...r}=s;if(t&&t.length>0){const a=P(r,t);return this._uploadFormData(`/projects/${e}/sessions`,a)}return this._post(`/projects/${e}/sessions`,r)},async getSession(e){return this._get(`/sessions/${e}`)},async getSessionMessages(e){return this._get(`/sessions/${e}/messages`)},async getSessionWorkLogs(e){return this._get(`/sessions/${e}/work-logs`)},async sendMessage(e,s,t=[],r=null){if(console.log(`[MODEL AUDIT - ApiClient] sendMessage called with model: "${r}"`),t&&t.length>0){const a=new FormData;a.append("content",s),r&&a.append("model",r);for(const o of t)a.append("files",o);return this._uploadFormData(`/sessions/${e}/message`,a)}return this._post(`/sessions/${e}/message`,{content:s,model:r})},async stopSession(e){return this._post(`/sessions/${e}/stop`)},async getSessionChanges(e,s="local",t=null){const r={};return s==="branch"&&(r.compareMode="branch",t&&(r.branch=t)),this._get(this._buildQueryPath(`/sessions/${e}/changes`,r))},async getSessionDefaultBranch(e){return this._get(`/sessions/${e}/default-branch`)},async getSessionFilesCount(e){return this._get(`/sessions/${e}/files-count`)},async getSessionFile(e,s){return this._get(`/sessions/${e}/file?path=${encodeURIComponent(s)}`)},async restartSession(e){return this._post(`/sessions/${e}/restart`)},async startSession(e,s,t){const r={};return s!==void 0&&(r.prompt=s),t!==void 0&&(r.model=t),this._post(`/sessions/${e}/start`,Object.keys(r).length>0?r:void 0)},async updateSessionInitialPrompt(e,s){return this._put(`/sessions/${e}/initial-prompt`,{prompt:s})},async updateSession(e,s){return this._patch(`/sessions/${e}`,s)},async updateSessionPendingPrompt(e,s){return this._patch(`/sessions/${e}/pending-prompt`,{pendingPrompt:s})},async deleteSession(e){return this._delete(`/sessions/${e}`)},async archiveSession(e,{cleanup:s=!1}={}){return this._post(`/sessions/${e}/archive`,{cleanup:s})},async unarchiveSession(e){return this._post(`/sessions/${e}/unarchive`)},async toggleSessionStar(e){return this._post(`/sessions/${e}/star`)},async duplicateSession(e,s={}){return this._post(`/sessions/${e}/duplicate`,s)},async scheduleSession(e,s){return this._post(`/sessions/${e}/schedule`,s)}})}function w(n){Object.assign(n.prototype,{async getCanvasItems(e){return this._get(`/sessions/${e}/canvas`)},async getCanvasFileContent(e,s){return this._get(`/sessions/${e}/canvas/file/${encodeURIComponent(s)}/content`)},async getAllCanvasItems(e){return this._get(`/sessions/${e}/canvas/all`)},async uploadCanvasItem(e,s){const t=new FormData;return t.append("file",s),this._uploadFormData(`/sessions/${e}/canvas`,t)},async createCanvasItem(e,s){return this._post(`/sessions/${e}/canvas`,s)},async updateCanvasItem(e,s,t){return this._put(`/sessions/${e}/canvas/${s}`,t)},async deleteCanvasItem(e,s){return this._delete(`/sessions/${e}/canvas/${s}`)},async getCanvasTrash(e){return this._get(`/sessions/${e}/canvas-trash`)},async recoverCanvasItem(e,s){return this._post(`/sessions/${e}/canvas/${s}/recover`)},async recoverCanvasFile(e,s){return this._post(`/sessions/${e}/canvas-trash/recover-file/${encodeURIComponent(s)}`)},async permanentlyDeleteCanvasItem(e,s){return this._delete(`/sessions/${e}/canvas/${s}/permanent`)},async bulkDeleteCanvasItems(e,s){return this._post(`/sessions/${e}/canvas/bulk-delete`,{itemIds:s})},async bulkRecoverCanvasItems(e,s){return this._post(`/sessions/${e}/canvas/bulk-recover`,{itemIds:s})},async bulkPermanentlyDeleteCanvasItems(e,s){return this._delete(`/sessions/${e}/canvas/bulk-delete-permanent`,{itemIds:s})}})}function R(n){Object.assign(n.prototype,{async getProviders(){return this._get("/providers")},async getProvider(e){return this._get(`/providers/${e}`)},async createProvider(e){return this._post("/providers",e)},async updateProvider(e,s){return this._patch(`/providers/${e}`,s)},async deleteProvider(e){return this._delete(`/providers/${e}`)},async testProviderConnection(e){return this._post("/providers/test",e)},async testExistingProvider(e){return this._post(`/providers/${e}/test`)},async getProviderModels(e){return this._get(`/providers/${e}/models`)},async addProviderModel(e,s){return this._post(`/providers/${e}/models`,s)},async updateProviderModel(e,s,t){return this._patch(`/providers/${e}/models/${s}`,t)},async removeProviderModel(e,s){return this._delete(`/providers/${e}/models/${s}`)}})}function A(n){Object.assign(n.prototype,{async getCommandButtons(e){return this._get(`/projects/${e}/command-buttons`)},async createCommandButton(e,s){return this._post(`/projects/${e}/command-buttons`,s)},async getCommandButton(e,s){return this._get(`/projects/${e}/command-buttons/${s}`)},async updateCommandButton(e,s,t){return this._patch(`/projects/${e}/command-buttons/${s}`,t)},async deleteCommandButton(e,s){return this._delete(`/projects/${e}/command-buttons/${s}`)},async runCommandButton(e,s){return this._post(`/sessions/${e}/command-buttons/${s}/run`)},async getActiveRuns(e){return this._get(`/sessions/${e}/command-buttons/runs`)},async getCommandRun(e,s){return this._get(`/sessions/${e}/command-buttons/runs/${s}`)},async getLatestRunsForProject(e){return this._get(`/projects/${e}/command-buttons/latest-runs`)},async killCommandRun(e,s){return this._post(`/sessions/${e}/command-buttons/runs/${s}/kill`)},async deleteCommandRun(e,s){return this._delete(`/sessions/${e}/command-buttons/runs/${s}`)},async deleteAllRunsForButton(e,s){return this._delete(`/sessions/${e}/command-buttons/${s}/runs/all`)}})}function I(n){Object.assign(n.prototype,{async getTokenCostWeights(){return this._get("/settings/token-weights")},async updateTokenCostWeights(e){return this._put("/settings/token-weights",e)},async resetTokenCostWeights(){return this._delete("/settings/token-weights")},async getSummarySettings(){return this._get("/settings/summary")},async updateSummarySettings(e){return this._put("/settings/summary",e)},async resetSummarySettings(){return this._delete("/settings/summary")},async getGeneralSettings(){return this._get("/settings/general")},async updateGeneralSettings(e){return this._put("/settings/general",e)},async resetGeneralSettings(){return this._delete("/settings/general")}})}function O(n){Object.assign(n.prototype,{async getConversations(e){return this._get(`/sessions/${e}/conversations`)},async createConversation(e,s=null){return this._post(`/sessions/${e}/conversations`,{name:s})},async getConversation(e,s){return this._get(`/sessions/${e}/conversations/${s}`)},async updateConversation(e,s,t){return this._patch(`/sessions/${e}/conversations/${s}`,t)},async deleteConversation(e,s){return this._delete(`/sessions/${e}/conversations/${s}`)},async branchConversation(e,s,t){return this._post(`/sessions/${e}/conversations/${s}/branch`,t)},async getConversationMessages(e,s){return this._get(`/sessions/${e}/messages?conversation_id=${s}`)}})}function D(n){Object.assign(n.prototype,{async getGlobalTemplates(){return this._get("/templates")},async createGlobalTemplate(e){return this._post("/templates",e)},async getTemplate(e){return this._get(`/templates/${e}`)},async updateTemplate(e,s){return this._patch(`/templates/${e}`,s)},async deleteTemplate(e){return this._delete(`/templates/${e}`)},async getProjectTemplates(e){return this._get(`/projects/${e}/templates`)},async createProjectTemplate(e,s){return this._post(`/projects/${e}/templates`,s)}})}function F(n){Object.assign(n.prototype,{async getQuickResponses(e){return this._get(`/projects/${e}/quick-responses`)},async getGlobalQuickResponses(){return this._get("/quick-responses/global")},async createQuickResponse(e,s){return this._post(`/projects/${e}/quick-responses`,s)},async updateQuickResponse(e,s){return this._patch(`/quick-responses/${e}`,s)},async deleteQuickResponse(e){return this._delete(`/quick-responses/${e}`)},async reorderQuickResponses(e,s){return this._post(`/projects/${e}/quick-responses/reorder`,s)},async reorderGlobalQuickResponses(e){return this._post("/quick-responses/global/reorder",e)}})}function Q(n){Object.assign(n.prototype,{async getGitStatus(e){return this._get(`/git/projects/${e}/status`)},async getWorktrees(e){return this._get(`/git/projects/${e}/worktrees`)},async detectWorktreePath(e){return this._get(this._buildQueryPath("/git/detect-worktree-path",{directory:e}))},async getSessionTodos(e,s=null){return this._get(this._buildQueryPath(`/sessions/${e}/todos`,{conversation_id:s||void 0}))},async getSessionSummary(e,s=!1){const t=s?this._buildQueryPath(`/sessions/${e}/summary`,{generate:"true"}):`/sessions/${e}/summary`;try{return await this._get(t)}catch(r){if(r.message.includes("404")||r.message.includes("not found"))return null;throw r}},async getSessionSummariesBatch(e){return!e||e.length===0?{}:this._post("/sessions/summaries/batch",{ids:e})},async generateSessionSummary(e){return this._post(`/sessions/${e}/summary`)},async getWorkflowLatestResponse(e){try{return await this._get(`/sessions/${e}/workflow-latest-response`)}catch(s){if(s.message.includes("404"))return null;throw s}},async getSessionNotes(e){return this._get(`/sessions/${e}/notes`)},async createNote(e,s){return this._post(`/sessions/${e}/notes`,{content:s})},async updateNote(e,s,t){return this._put(`/sessions/${e}/notes/${s}`,{content:t})},async deleteNote(e,s){return this._delete(`/sessions/${e}/notes/${s}`)},async browseDirectory(e=""){return this._get(this._buildQueryPath("/filesystem/browse",{path:e||void 0}))},async getSlashCommands(e){return this._get(`/commands?directory=${encodeURIComponent(e)}`)},async getSlashCommand(e,s){return this._get(`/commands/${encodeURIComponent(s)}?directory=${encodeURIComponent(e)}`)},async executeSlashCommand(e,s,t={}){return this._post(`/commands/${encodeURIComponent(s)}/execute`,{sessionId:e,args:t})},async getAgentCallLogs({limit:e,offset:s,agentType:t,callType:r,status:a,startDate:o,endDate:m,sessionId:_,model:$,sortBy:f,sortOrder:v}={}){const i={};return e!=null&&(i.limit=e),s!=null&&(i.offset=s),t&&(i.agentType=t),r&&(i.callType=r),a&&(i.status=a),o&&(i.startDate=o),m&&(i.endDate=m),_&&(i.sessionId=_),$&&(i.model=$),f&&(i.sortBy=f),v&&(i.sortOrder=v),this._get(this._buildQueryPath("/agent-calls",i))},async getAgentCallFilterOptions(){return this._get("/agent-calls/filter-options")},async deleteAllAgentCallLogs(){return this._delete("/agent-calls")},async getProjectSessionDefaults(e){return this._get(`/projects/${e}/session-defaults`)},async updateProjectSessionDefaults(e,s){return this._post(`/projects/${e}/session-defaults`,s)},async resetProjectSessionDefaults(e){return this._delete(`/projects/${e}/session-defaults`)}})}function B(n){Object.assign(n.prototype,{async getKanbanBoard(e){return this._get(`/projects/${e}/kanban`)},async deleteKanbanBoard(e){return this._delete(`/projects/${e}/kanban`)},async createKanbanLane(e,s){return this._post(`/projects/${e}/kanban/lanes`,s)},async updateKanbanLane(e,s,t){return this._patch(`/projects/${e}/kanban/lanes/${s}`,t)},async deleteKanbanLane(e,s){return this._delete(`/projects/${e}/kanban/lanes/${s}`)},async reorderKanbanLanes(e,s){return this._put(`/projects/${e}/kanban/lanes/reorder`,s)},async createKanbanCard(e,s){return this._post(`/projects/${e}/kanban/cards`,s)},async moveKanbanCard(e,s,t){return this._patch(`/projects/${e}/kanban/cards/${s}/move`,t)},async deleteKanbanCard(e,s){return this._delete(`/projects/${e}/kanban/cards/${s}`)},async reorderKanbanCards(e,s,t){return this._put(`/projects/${e}/kanban/lanes/${s}/cards/reorder`,t)}})}var p,u,d;class c{constructor(e="/api"){y(this,u);y(this,p);C(this,p,e)}get baseUrl(){return h(this,p)}async _uploadFormData(e,s){const t=await fetch(`${h(this,p)}${e}`,{method:"POST",body:s});if(!t.ok){const r=await t.json().catch(()=>({}));throw new Error(r.error||`HTTP ${t.status}`)}return t.json()}_buildQueryPath(e,s){const t=new URLSearchParams;for(const[a,o]of Object.entries(s))o!=null&&t.append(a,o);const r=t.toString();return r?`${e}?${r}`:e}_get(e){return l(this,u,d).call(this,"GET",e)}_post(e,s){return l(this,u,d).call(this,"POST",e,s)}_put(e,s){return l(this,u,d).call(this,"PUT",e,s)}_patch(e,s){return l(this,u,d).call(this,"PATCH",e,s)}_delete(e,s){return l(this,u,d).call(this,"DELETE",e,s)}}p=new WeakMap,u=new WeakSet,d=async function(e,s,t=null){const r={method:e,headers:{"Content-Type":"application/json"}};t&&e!=="GET"&&(r.body=JSON.stringify(t));const a=await fetch(`${h(this,p)}${s}`,r);if(!a.ok){const o=await a.json().catch(()=>({}));throw new Error(o.error||`HTTP ${a.status}`)}return a.status===204?null:a.json()};j(c);T(c);w(c);R(c);A(c);I(c);O(c);D(c);F(c);Q(c);B(c);const M=new c;export{M as a};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as f,a0 as g,_ as b,k as _,n as m,l as E,a as p,c as h,b as j,F as L,r as x,t as w,u as I,x as C,$ as O}from"./index-BGAW2Nqa.js";import{a as r}from"./ApiClient-CcqJ-GAv.js";import{u as V}from"./sessions-Bs5FA6JZ.js";const D=["low","medium","high","max","auto"],$=[{id:"claude-haiku-4-5-20251001",name:"Haiku 4.5",description:"Fast & lightweight"},{id:"claude-sonnet-4-6",name:"Sonnet 4.6",description:"Balanced"},{id:"claude-opus-4-6",name:"Opus 4.6",description:"Previous generation"},{id:"claude-opus-4-7",name:"Opus 4.7",description:"Most capable (default)"}],H="claude-opus-4-7",F=f("todos",{state:()=>({items:[],loading:!1,error:null,expanded:!1,currentConversationId:null}),getters:{hasTodos:t=>t.items.length>0,pendingCount:t=>t.items.filter(e=>e.status==="pending").length,inProgressCount:t=>t.items.filter(e=>e.status==="in_progress").length,completedCount:t=>t.items.filter(e=>e.status==="completed").length},actions:{async fetchTodos(t,e=null){this.loading=!0,this.error=null,this.currentConversationId=e;try{this.items=await r.getSessionTodos(t,e)}catch(s){this.error=s.message}finally{this.loading=!1}},updateTodos(t,e=null){(e===null||this.currentConversationId===null||e===this.currentConversationId)&&(this.items=t)},clearTodos(){this.items=[],this.loading=!1,this.error=null,this.currentConversationId=null,this.expanded=!1},toggleExpanded(){this.expanded=!this.expanded},setExpanded(t){this.expanded=t}}}),k=Symbol("overlay-sessions-store"),B=Symbol("overlay-todos-store");function P(){return g(k,V())}function q(){return g(B,F())}const z=f("templates",{state:()=>({projectTemplates:[],globalTemplates:[],loading:!1,error:null}),getters:{allTemplates:t=>[...t.projectTemplates,...t.globalTemplates],getTemplateById:t=>e=>t.projectTemplates.find(s=>s.id===e)||t.globalTemplates.find(s=>s.id===e)},actions:{async fetchProjectTemplates(t){this.loading=!0,this.error=null;try{const e=await r.getProjectTemplates(t);this.projectTemplates=e.project||[],this.globalTemplates=e.global||[]}catch(e){this.error=e.message}finally{this.loading=!1}},async createProjectTemplate(t,e){this.loading=!0,this.error=null;try{const s=await r.createProjectTemplate(t,e);return this.projectTemplates.unshift(s),s}catch(s){throw this.error=s.message,s}finally{this.loading=!1}},async createGlobalTemplate(t){this.loading=!0,this.error=null;try{const e=await r.createGlobalTemplate(t);return this.globalTemplates.unshift(e),e}catch(e){throw this.error=e.message,e}finally{this.loading=!1}},async updateTemplate(t,e){this.loading=!0,this.error=null;try{const s=await r.updateTemplate(t,e);let l=this.projectTemplates.findIndex(o=>o.id===t);return l!==-1?this.projectTemplates[l]=s:(l=this.globalTemplates.findIndex(o=>o.id===t),l!==-1&&(this.globalTemplates[l]=s)),s}catch(s){throw this.error=s.message,s}finally{this.loading=!1}},async deleteTemplate(t){this.loading=!0,this.error=null;try{await r.deleteTemplate(t),this.projectTemplates=this.projectTemplates.filter(e=>e.id!==t),this.globalTemplates=this.globalTemplates.filter(e=>e.id!==t)}catch(e){throw this.error=e.message,e}finally{this.loading=!1}}}}),R={class:"effort-selector"},U=["value","disabled"],A=["value"],M={__name:"EffortLevelSelector",props:{sessionId:{type:String,default:null},modelValue:{type:String,default:null},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{emit:e}){const s=t,l=e,o=P(),T=_(),u=m(!1),y=["auto",...D.filter(a=>a!=="auto")].map(a=>({value:a,label:`${a.charAt(0).toUpperCase()+a.slice(1)} Effort`})),c=C(()=>{var a;return s.sessionId?((a=o.currentSession)==null?void 0:a.effortLevel)||"auto":s.modelValue||"auto"}),n=m(c.value),S=O(s,"modelValue");E([c,S],([a])=>{n.value=a||"auto"},{flush:"sync"});async function v(a){if(!u.value&&n.value!==a)if(n.value=a,s.sessionId){u.value=!0;try{await o.updateSessionFields(s.sessionId,{effortLevel:a==="auto"?null:a})}catch(d){n.value=c.value,T.error(d.message)}finally{u.value=!1}}else l("update:modelValue",a==="auto"?null:a)}return(a,d)=>(p(),h("div",R,[j("select",{id:"effort-select",value:n.value,disabled:t.disabled||u.value,class:"effort-select","aria-label":"Effort level",onChange:d[0]||(d[0]=i=>v(i.target.value))},[(p(!0),h(L,null,x(I(y),i=>(p(),h("option",{key:i.value,value:i.value},w(i.label),9,A))),128))],40,U)]))}},J=b(M,[["__scopeId","data-v-8bc1fe64"]]);export{$ as C,H as D,J as E,k as S,B as T,F as a,P as b,q as c,z as u};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DMZZCi2u.js","assets/index-BGAW2Nqa.js","assets/index-gmCCsCQ1.css","assets/SessionDetailView-CrZvMb3j.js","assets/sessions-Bs5FA6JZ.js","assets/ApiClient-CcqJ-GAv.js","assets/settings-6Rw9xt-G.js","assets/projects-D_C9dE9s.js","assets/EffortLevelSelector-xE3gidpq.js","assets/EffortLevelSelector-BQaQmU2d.css","assets/SessionLogStream-DIndOyFR.js","assets/commandButtons-D74TkPNU.js","assets/SessionLogStream-zPUTiGbe.css","assets/ArchiveConfirmModal-fgoEQhfq.js","assets/ModelSelector-B0RdlCHT.js","assets/providers-BdvbPVdE.js","assets/ModelSelector-DPPD-92R.css","assets/SlashCommandWizard-C_cSgF-P.js","assets/SlashCommandWizard-BB30cSvo.css","assets/ArchiveConfirmModal-BQ-4gI0R.css","assets/useSummaryHelpers-GVg7sMWF.js","assets/QuickResponseSettings-BBHMapcA.js","assets/QuickResponseSettings-B8188A1D.css","assets/QuickResponsesPanel-CTXYjMF-.js","assets/QuickResponsesPanel-DIBQFj0W.css","assets/ResizableTextarea-Cw6aL4rp.js","assets/ResizableTextarea-B5nAA0RV.css","assets/SessionDetailView-BL83oPiI.css","assets/style-BTin-zR_.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as E,l as d,A as w,a as l,c as y,G as T,w as u,b as m,f as V,d as k,u as h,a3 as x,O as A,P as p}from"./index-BGAW2Nqa.js";import{u as P}from"./SessionDetailView-CrZvMb3j.js";import"./sessions-Bs5FA6JZ.js";import"./ApiClient-CcqJ-GAv.js";import"./settings-6Rw9xt-G.js";import"./projects-D_C9dE9s.js";import"./EffortLevelSelector-xE3gidpq.js";import"./SessionLogStream-DIndOyFR.js";import"./commandButtons-D74TkPNU.js";import"./ArchiveConfirmModal-fgoEQhfq.js";import"./ModelSelector-B0RdlCHT.js";import"./providers-BdvbPVdE.js";import"./SlashCommandWizard-C_cSgF-P.js";import"./useSummaryHelpers-GVg7sMWF.js";import"./QuickResponseSettings-BBHMapcA.js";import"./QuickResponsesPanel-CTXYjMF-.js";import"./ResizableTextarea-Cw6aL4rp.js";const b={class:"canvas-md-editor"},K={__name:"MarkdownEditor",props:{content:{type:String,default:""},sessionId:{type:String,required:!0},filename:{type:String,required:!0},itemId:{type:String,required:!0}},emits:["save"],setup(c,{expose:f,emit:v}){const _=A(()=>p(()=>import("./index-DMZZCi2u.js").then(e=>e.w),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27])).then(async e=>(await p(()=>Promise.resolve({}),__vite__mapDeps([28])),e.MdEditor))),r=c,n=v,g=P(),t=E(r.content||"");let o=null,i=r.content||"";d(t,e=>{o&&clearTimeout(o),o=setTimeout(()=>{i=e,n("save",e)},1e3)});function s(){o&&(clearTimeout(o),o=null),t.value!==i&&n("save",t.value)}return f({flushPendingSave:s}),d(()=>r.content,e=>{e!==t.value&&(t.value=e||"")}),w(()=>{s(),g.endEditing(r.filename)}),(e,a)=>(l(),y("div",b,[(l(),T(x,null,{default:u(()=>[k(h(_),{modelValue:t.value,"onUpdate:modelValue":a[0]||(a[0]=S=>t.value=S),theme:"dark",preview:!1,language:"en-US","no-upload-img":!0,"show-code-row-number":!0},null,8,["modelValue"])]),fallback:u(()=>[...a[1]||(a[1]=[m("div",{class:"editor-loading"},[m("span",{class:"loading-spinner"}),V(" Loading editor... ")],-1)])]),_:1}))]))}};export{K as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as x}from"./providers-BdvbPVdE.js";import{_ as L,o as N,n as M,l as V,a as n,c as r,b as z,t as _,i as F,F as I,r as S,u as R,E as D,x as f,$ as H}from"./index-BGAW2Nqa.js";const P=["data-model"],U=["value","disabled"],$={key:0,value:""},j=["label"],q=["value","data-provider-id"],A={__name:"ModelSelector",props:{modelValue:{type:String,default:null},disabled:{type:Boolean,default:!1},allowEmpty:{type:Boolean,default:!1},emptyLabel:{type:String,default:"Use system default"},selectClass:{type:String,default:""}},emits:["update:modelValue"],setup(i,{emit:b}){const d=i,v=b,s=x(),h=f(()=>s.providers.length>0&&s.providers.some(e=>e.models&&e.models.length>0)),B=f(()=>{const e=new Set;for(const t of s.providers)if(t.models)for(const l of t.models)e.add(l.modelId);return e});function g(e){return e&&B.value.has(e)}const u=f(()=>{var l,o,m;const e=s.providers.find(c=>c.isBuiltIn);if((l=e==null?void 0:e.models)!=null&&l.length){const c=e.models.find(k=>k.tier==="sonnet");return(c==null?void 0:c.modelId)||e.models[0].modelId}const t=s.providers[0];return((m=(o=t==null?void 0:t.models)==null?void 0:o[0])==null?void 0:m.modelId)||null}),w=M(!1);N(async()=>{(s.providers.length===0||!h.value)&&await s.fetchProviders(),w.value=!0});function p(e){var l;if(!e)return null;if(e.includes("claude-"))return e;const t=s.providers.find(o=>o.isBuiltIn);if((l=t==null?void 0:t.models)!=null&&l.length){const o=t.models.find(m=>m.tier===e);if(o)return o.modelId}return e}const a=M(p(d.modelValue)),y=f(()=>d.allowEmpty&&(!a.value||a.value==="")?"":a.value&&g(a.value)?a.value:u.value?u.value:a.value),C=H(d,"modelValue");V(C,e=>{a.value=p(e)},{flush:"sync"}),V(()=>s.providers,()=>{if(!h.value)return;if(d.allowEmpty&&(!d.modelValue||d.modelValue==="")){a.value="";return}let e=null;d.modelValue&&(e=p(d.modelValue)),e&&g(e)?a.value!==e&&(a.value=e,e!==d.modelValue&&v("update:modelValue",e)):u.value&&a.value!==u.value&&(a.value=u.value,v("update:modelValue",u.value))},{deep:!0,immediate:!0});function E(e){y.value!==e&&(a.value=e,v("update:modelValue",e))}return(e,t)=>(n(),r("div",{class:"model-selector","data-model":y.value},[z("select",{id:"model-select",value:y.value,disabled:i.disabled,class:D(i.selectClass||"model-select"),onChange:t[0]||(t[0]=l=>E(l.target.value))},[i.allowEmpty?(n(),r("option",$,_(i.emptyLabel),1)):F("",!0),(n(!0),r(I,null,S(R(s).providers,l=>(n(),r("optgroup",{key:l.id,label:l.name},[(n(!0),r(I,null,S(l.models,o=>(n(),r("option",{key:o.id,value:o.modelId,"data-provider-id":l.id},_(l.isBuiltIn?o.displayName:o.modelId),9,q))),128))],8,j))),128))],42,U)],8,P))}},K=L(A,[["__scopeId","data-v-ea265eb4"]]);export{K as M};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as z,k as J,o as X,l as H,a as p,c as m,b as t,u as S,f as r,j as Z,m as a,v as f,d as L,D as _,i as E,p as B,q as G,e as ee,t as te,w as se,s as oe,n as l,g as le,h as ae}from"./index-BGAW2Nqa.js";import{u as ne}from"./projects-D_C9dE9s.js";import{u as re,a as ie,Q as ue}from"./QuickResponseSettings-BBHMapcA.js";import{P as de}from"./InputWithButton-BvboBGbz.js";import{M as pe}from"./ModelSelector-B0RdlCHT.js";import{a as me}from"./ApiClient-CcqJ-GAv.js";import"./providers-BdvbPVdE.js";const fe={class:"container"},ve={key:0,class:"loading-state"},be={class:"form-group"},ge={class:"form-group"},ce={class:"form-group"},ye={class:"input-with-button"},ke=["placeholder"],Se=["disabled"],we={class:"form-group"},Ce={class:"form-group"},he={class:"form-label",for:"systemPrompt"},Ee={class:"advanced-settings"},Pe={class:"form-group"},De={class:"form-group"},xe={class:"advanced-settings"},Ue={class:"form-group"},Me={class:"form-group"},Re={class:"checkbox-label"},Ve={class:"form-group"},Ie={class:"form-group"},je={class:"checkbox-label"},Le={class:"form-group"},Ne={class:"form-group"},Oe={class:"form-group"},Te=["disabled"],Be={key:0,class:"loading-spinner"},Ge={class:"advanced-settings"},Fe={class:"advanced-settings"},He={class:"form-group"},We={class:"checkbox-label"},Ae={key:0,class:"error-message"},Qe={class:"form-actions"},$e={class:"form-actions-right"},qe=["disabled"],Ke={key:0,class:"loading-spinner"},Ye={__name:"ProjectEditView",setup(ze){const P=_,n=oe(),F=ae(),v=ne(),D=re(),W=ie(),N=J(),x=l(""),i=l(""),w=l(""),U=l(""),u=l(""),M=l(""),R=l(""),V=l(!1),O=l(!1),b=l(""),C=l(!1),g=l(""),h=l(!0),c=l(""),y=l(""),k=l(""),I=l(!1),j=l(!1),d=l(null),T=l(!1);X(()=>{v.fetchProject(n.params.id),D.fetchDefaults(n.params.id),W.fetchForProject(n.params.id)}),H(()=>v.currentProject,s=>{s&&(x.value=s.name,i.value=s.workingDirectory,w.value=s.worktreePath||"",U.value=s.repoUrl||"",u.value=s.systemPrompt||P,M.value=s.onSessionCreated||"",R.value=s.onSessionDeleted||"",V.value=s.kanbanEnabled||!1)},{immediate:!0}),H(()=>D.getDefaultsForProject(n.params.id),s=>{s&&(b.value=s.mode||"",C.value=s.thinkingEnabled||!1,g.value=s.effortLevel??"",h.value=s.startImmediately!==!1,c.value=s.gitMode||"",y.value=s.gitBranch||"",k.value=s.model||"")},{immediate:!0});async function A(){if(i.value){O.value=!0;try{const s=await me.detectWorktreePath(i.value);w.value=s.worktreePath}catch{}finally{O.value=!1}}}function Q(){const s={};return b.value&&(s.mode=b.value),C.value&&(s.thinkingEnabled=!0),g.value&&(s.effortLevel=g.value),h.value||(s.startImmediately=!1),c.value&&(s.gitMode=c.value),y.value&&(s.gitBranch=y.value),k.value&&(s.model=k.value),s}async function $(){I.value=!0,d.value=null;try{await v.updateProject(n.params.id,{name:x.value,workingDirectory:i.value,worktreePath:w.value||null,repoUrl:U.value||null,systemPrompt:u.value===P?null:u.value,onSessionCreated:M.value||null,onSessionDeleted:R.value||null,kanbanEnabled:V.value});const s=Q();Object.keys(s).length>0&&await D.updateDefaults(n.params.id,s),N.success("Repository updated"),F.push(`/projects/${n.params.id}/sessions`)}catch(s){d.value=s.message}finally{I.value=!1}}async function q(){if(confirm("Reset all session defaults to system defaults?")){j.value=!0,d.value=null;try{await D.resetDefaults(n.params.id),b.value="",C.value=!1,g.value="",h.value=!0,c.value="",y.value="",k.value="",N.success("Session defaults reset to system defaults")}catch(s){d.value=s.message}finally{j.value=!1}}}async function K(){if(confirm("Are you sure you want to delete this project?"))try{await v.deleteProject(n.params.id),N.success("Repository removed"),F.push("/")}catch(s){d.value=s.message}}return(s,e)=>{const Y=le("router-link");return p(),m("div",fe,[e[58]||(e[58]=t("h1",null,"Edit Project",-1)),S(v).loading?(p(),m("div",ve,[...e[18]||(e[18]=[t("span",{class:"loading-spinner"},null,-1),r(" Loading... ",-1)])])):S(v).currentProject?(p(),m("form",{key:1,class:"form card",onSubmit:Z($,["prevent"])},[t("div",be,[e[19]||(e[19]=t("label",{class:"form-label",for:"name"},"Project Name",-1)),a(t("input",{id:"name","onUpdate:modelValue":e[0]||(e[0]=o=>x.value=o),type:"text",class:"form-input",required:""},null,512),[[f,x.value]])]),t("div",ge,[e[20]||(e[20]=t("label",{class:"form-label",for:"workingDirectory"},"Working Directory",-1)),L(de,{modelValue:i.value,"onUpdate:modelValue":e[1]||(e[1]=o=>i.value=o)},null,8,["modelValue"])]),t("div",ce,[e[21]||(e[21]=t("label",{class:"form-label",for:"worktreePath"},"Worktree Path",-1)),t("div",ye,[a(t("input",{id:"worktreePath","onUpdate:modelValue":e[2]||(e[2]=o=>w.value=o),type:"text",class:"form-input",placeholder:i.value+"/.worktrees"},null,8,ke),[[f,w.value]]),t("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:!i.value||O.value,onClick:A}," Detect ",8,Se)]),e[22]||(e[22]=t("p",{class:"form-help"}," Where git worktrees are created for sessions. Changing this only affects new sessions. ",-1))]),t("div",we,[e[23]||(e[23]=t("label",{class:"form-label",for:"repoUrl"},"Repository URL",-1)),a(t("input",{id:"repoUrl","onUpdate:modelValue":e[3]||(e[3]=o=>U.value=o),type:"url",class:"form-input",placeholder:"https://github.com/username/repo"},null,512),[[f,U.value]]),e[24]||(e[24]=t("p",{class:"form-help"}," Link to the project's repository (e.g., GitHub, GitLab). This can be automatically populated from session summaries. ",-1))]),t("div",Ce,[t("label",he,[e[25]||(e[25]=r(" System Prompt ",-1)),u.value!==S(P)?(p(),m("button",{key:0,type:"button",class:"btn-link",onClick:e[4]||(e[4]=o=>u.value=S(P))}," Reset to Default ")):E("",!0)]),a(t("textarea",{id:"systemPrompt","onUpdate:modelValue":e[5]||(e[5]=o=>u.value=o),class:"form-input form-textarea",rows:"8"},null,512),[[f,u.value]]),e[26]||(e[26]=t("p",{class:"form-help"}," Customize the system prompt for the AI agent. The default prompt is pre-filled above. ",-1))]),t("details",Ee,[e[31]||(e[31]=t("summary",null,"Session Lifecycle Hooks",-1)),t("div",Pe,[e[27]||(e[27]=t("label",{class:"form-label",for:"onSessionCreated"},"On Session Created",-1)),a(t("textarea",{id:"onSessionCreated","onUpdate:modelValue":e[6]||(e[6]=o=>M.value=o),class:"form-input form-textarea-small",rows:"3",placeholder:"Shell command to run when a session is created..."},null,512),[[f,M.value]]),e[28]||(e[28]=t("p",{class:"form-help"}," Runs in the background after session creation. Environment variables: CIRCUSCHIEF_SESSION_ID, CIRCUSCHIEF_PROJECT_ID, CIRCUSCHIEF_SESSION_NAME ",-1))]),t("div",De,[e[29]||(e[29]=t("label",{class:"form-label",for:"onSessionDeleted"},"On Session Deleted",-1)),a(t("textarea",{id:"onSessionDeleted","onUpdate:modelValue":e[7]||(e[7]=o=>R.value=o),class:"form-input form-textarea-small",rows:"3",placeholder:"Shell command to run when a session is deleted..."},null,512),[[f,R.value]]),e[30]||(e[30]=t("p",{class:"form-help"}," Runs in the background after session deletion. Environment variables: CIRCUSCHIEF_SESSION_ID, CIRCUSCHIEF_PROJECT_ID, CIRCUSCHIEF_SESSION_NAME ",-1))])]),t("details",xe,[e[49]||(e[49]=t("summary",null,"Session Defaults",-1)),e[50]||(e[50]=t("p",{class:"form-help"}," Set default values for new sessions created in this project. These values can be overridden when creating individual sessions. ",-1)),t("div",Ue,[e[33]||(e[33]=t("label",{class:"form-label",for:"defaultMode"},"Mode",-1)),a(t("select",{id:"defaultMode","onUpdate:modelValue":e[8]||(e[8]=o=>b.value=o),class:"form-input"},[...e[32]||(e[32]=[t("option",{value:""}," Use system default (standard) ",-1),t("option",{value:"plan"}," Plan ",-1),t("option",{value:"standard"}," Standard ",-1),t("option",{value:"yolo"}," YOLO ",-1)])],512),[[B,b.value]])]),t("div",Me,[t("label",Re,[a(t("input",{"onUpdate:modelValue":e[9]||(e[9]=o=>C.value=o),type:"checkbox"},null,512),[[G,C.value]]),e[34]||(e[34]=r(" Enable thinking (extended thinking) by default ",-1))]),e[35]||(e[35]=t("p",{class:"form-help"}," Enable the agent's extended thinking capability for new sessions. ",-1))]),t("div",Ve,[e[37]||(e[37]=t("label",{class:"form-label",for:"defaultEffortLevel"},"Default Effort Level",-1)),a(t("select",{id:"defaultEffortLevel","onUpdate:modelValue":e[10]||(e[10]=o=>g.value=o),class:"form-input"},[...e[36]||(e[36]=[ee('<option value="" data-v-23028e3b> Auto (default) </option><option value="low" data-v-23028e3b> Low </option><option value="medium" data-v-23028e3b> Medium </option><option value="high" data-v-23028e3b> High </option><option value="max" data-v-23028e3b> Max </option>',5)])],512),[[B,g.value]]),e[38]||(e[38]=t("p",{class:"form-help"}," Set the default effort level for new sessions. Controls how much effort the agent puts into responses. ",-1))]),t("div",Ie,[t("label",je,[a(t("input",{"onUpdate:modelValue":e[11]||(e[11]=o=>h.value=o),type:"checkbox"},null,512),[[G,h.value]]),e[39]||(e[39]=r(" Start sessions immediately ",-1))]),e[40]||(e[40]=t("p",{class:"form-help"},' When enabled, sessions will start automatically. When disabled, sessions will be created in "waiting" state. ',-1))]),t("div",Le,[e[42]||(e[42]=t("label",{class:"form-label",for:"defaultGitMode"},"Git Mode",-1)),a(t("select",{id:"defaultGitMode","onUpdate:modelValue":e[12]||(e[12]=o=>c.value=o),class:"form-input"},[...e[41]||(e[41]=[t("option",{value:""}," No git isolation ",-1),t("option",{value:"branch"}," Create branch for each session ",-1),t("option",{value:"worktree"}," Create worktree for each session ",-1)])],512),[[B,c.value]]),e[43]||(e[43]=t("p",{class:"form-help"}," Controls how git changes are isolated for each session. ",-1))]),t("div",Ne,[e[44]||(e[44]=t("label",{class:"form-label",for:"defaultGitBranch"},"Default Git Branch",-1)),a(t("input",{id:"defaultGitBranch","onUpdate:modelValue":e[13]||(e[13]=o=>y.value=o),type:"text",class:"form-input",placeholder:"e.g., feature/ai-implementation"},null,512),[[f,y.value]]),e[45]||(e[45]=t("p",{class:"form-help"}," When using git branch mode, this is the branch name pattern for new sessions. ",-1))]),t("div",Oe,[e[46]||(e[46]=t("label",{class:"form-label",for:"defaultModel"},"Model",-1)),L(pe,{modelValue:k.value,"onUpdate:modelValue":e[14]||(e[14]=o=>k.value=o),"allow-empty":!0,"empty-label":"Use system default","select-class":"form-input"},null,8,["modelValue"]),e[47]||(e[47]=t("p",{class:"form-help"}," Choose the default model for new sessions in this project. ",-1))]),t("button",{type:"button",class:"btn btn-secondary",disabled:j.value,onClick:q},[j.value?(p(),m("span",Be)):E("",!0),e[48]||(e[48]=r(" Reset to System Defaults ",-1))],8,Te)]),t("details",Ge,[e[51]||(e[51]=t("summary",null,"Quick Responses",-1)),e[52]||(e[52]=t("p",{class:"form-help"}," Quick responses are shortcuts that can be inserted into the chat input. You can create project-specific or global responses. ",-1)),t("button",{type:"button",class:"btn btn-secondary",onClick:e[15]||(e[15]=o=>T.value=!0)}," Manage Quick Responses ")]),t("details",Fe,[e[55]||(e[55]=t("summary",null,[r("Kanban Board "),t("span",{class:"inline-block rounded bg-amber-900/50 px-1.5 py-0.5 text-[10px] font-semibold uppercase text-amber-300 ml-2"},"Experimental")],-1)),t("div",He,[t("label",We,[a(t("input",{"onUpdate:modelValue":e[16]||(e[16]=o=>V.value=o),type:"checkbox"},null,512),[[G,V.value]]),e[53]||(e[53]=r(" Enable Kanban board ",-1))]),e[54]||(e[54]=t("p",{class:"form-help"},[t("strong",null,"Experimental."),r(" This feature is in active development and may change or be removed. Enable a Kanban board to visually organize sessions into lanes. Sessions can be dragged between lanes, and lanes can trigger automated workflows. ")],-1))])]),d.value?(p(),m("div",Ae,te(d.value),1)):E("",!0),t("div",Qe,[t("button",{type:"button",class:"btn btn-danger",onClick:K}," Delete "),t("div",$e,[L(Y,{to:`/projects/${S(n).params.id}/sessions`,class:"btn"},{default:se(()=>[...e[56]||(e[56]=[r(" Cancel ",-1)])]),_:1},8,["to"]),t("button",{type:"submit",class:"btn btn-primary",disabled:I.value},[I.value?(p(),m("span",Ke)):E("",!0),e[57]||(e[57]=r(" Save ",-1))],8,qe)])])],32)):E("",!0),L(ue,{"is-open":T.value,"project-id":S(n).params.id,onClose:e[17]||(e[17]=o=>T.value=!1)},null,8,["is-open","project-id"])])}}},ot=z(Ye,[["__scopeId","data-v-23028e3b"]]);export{ot as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
h1[data-v-23028e3b]{margin-bottom:2rem}.loading-state[data-v-23028e3b]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:3rem}.form[data-v-23028e3b]{max-width:500px}.form-actions[data-v-23028e3b]{display:flex;justify-content:space-between;align-items:center}.form-actions-right[data-v-23028e3b]{display:flex;gap:.5rem}.error-message[data-v-23028e3b]{color:var(--color-error);margin-bottom:1rem}.form-textarea[data-v-23028e3b]{resize:vertical;min-height:120px;font-family:monospace;font-size:.875rem;line-height:1.5}.form-help[data-v-23028e3b]{margin-top:.5rem;font-size:.875rem;color:var(--color-text-muted)}.advanced-settings[data-v-23028e3b]{margin-bottom:1rem}.advanced-settings summary[data-v-23028e3b]{cursor:pointer;color:var(--color-primary);font-weight:500;margin-bottom:1rem}.advanced-settings[open] summary[data-v-23028e3b]{margin-bottom:1rem}.form-textarea-small[data-v-23028e3b]{resize:vertical;min-height:60px;font-family:monospace;font-size:.875rem;line-height:1.5}.checkbox-label[data-v-23028e3b]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500}.checkbox-label input[type=checkbox][data-v-23028e3b]{width:1rem;height:1rem;cursor:pointer}.form-input[type=select][data-v-23028e3b],select.form-input[data-v-23028e3b]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23999' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem}.btn-link[data-v-23028e3b]{background:none;border:none;color:var(--color-primary);font-size:.75rem;padding:0;margin-left:.5rem;cursor:pointer;text-decoration:underline}.btn-link[data-v-23028e3b]:hover{color:var(--color-primary-hover)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k as Q,l as te,x as q,n as M,_ as W,a as n,c as i,b as e,e as se,F as R,r as K,m as P,v as N,p as oe,t as k,u as t,j as z,f as B,a1 as le,d as X,i as $,E as ae,$ as J,o as ne}from"./index-BGAW2Nqa.js";import{u as Z}from"./providers-BdvbPVdE.js";import"./ApiClient-CcqJ-GAv.js";function ee(){return{name:"",baseUrl:null,authToken:null,apiTimeoutMs:null,additionalEnvVars:{}}}function ie(_){const v={name:_.name,baseUrl:_.baseUrl,authToken:_.authToken==="••••••••"?null:_.authToken,apiTimeoutMs:_.apiTimeoutMs,additionalEnvVars:_.additionalEnvVars?{..._.additionalEnvVars}:{}},m=Object.keys(v.additionalEnvVars),u=(_.models||[]).map(d=>({_serverId:d.id,modelId:d.modelId,displayName:d.displayName,tier:d.tier||"custom"}));return{formData:v,envKeys:m,models:u,authModified:!1}}function de(){return{form:M(ee()),localModels:M([]),envVarKeys:M([]),showAuthToken:M(!1),saving:M(!1),testing:M(!1),error:M(null),testResult:M(null),authTokenModified:M(!1)}}function re(_,v,m){const u=Z(),d=Q(),b=de(),{form:a,localModels:y,envVarKeys:g,showAuthToken:S,saving:w,testing:h,error:C,testResult:U,authTokenModified:I}=b,V=q(()=>!!v.value),l=q(()=>a.value.name.trim().length>0),r=q(()=>a.value.baseUrl||a.value.authToken);te(()=>[_.value,v.value],([s,c])=>{if(s){if(c){const p=ie(c);a.value=p.formData,g.value=p.envKeys,y.value=p.models,I.value=p.authModified}else a.value=ee(),g.value=[],y.value=[],I.value=!0;S.value=!1,C.value=null,U.value=null}},{deep:!0});function A(){y.value.push({modelId:"",displayName:"",tier:"custom"})}function H(s){y.value.splice(s,1)}function j(){const s=`ENV_VAR_${Object.keys(a.value.additionalEnvVars).length+1}`;a.value.additionalEnvVars[s]="",g.value.push(s)}function L(s){delete a.value.additionalEnvVars[s],g.value=g.value.filter(c=>c!==s)}function D(s,c){const p=g.value[s];if(p!==c&&p.trim()){const E=a.value.additionalEnvVars[c];delete a.value.additionalEnvVars[c],a.value.additionalEnvVars[p]=E}}async function F(){h.value=!0,C.value=null,U.value=null;try{const s=y.value.find(p=>p.tier==="sonnet"),c={baseUrl:a.value.baseUrl||void 0,authToken:a.value.authToken||void 0,defaultSonnetModel:(s==null?void 0:s.modelId)||void 0,apiTimeoutMs:a.value.apiTimeoutMs||void 0};U.value=await u.testConnection(c)}catch(s){C.value=s.message}finally{h.value=!1}}function Y(s,c){return s.modelId.trim()!==c.modelId||s.displayName.trim()!==c.displayName||s.tier!==c.tier}function o(s){return{modelId:s.modelId.trim(),displayName:s.displayName.trim()||s.modelId.trim(),tier:s.tier||"custom"}}async function f(s,c,p){if(!s._serverId&&s.modelId.trim()){await u.addModel(c,o(s));return}const E=p.get(s._serverId);E&&Y(s,E)&&await u.updateModel(c,s._serverId,o(s))}async function x(s){var G;const c=new Set(y.value.filter(T=>T._serverId).map(T=>T._serverId)),p=((G=v.value)==null?void 0:G.models)||[],E=new Map(p.map(T=>[T.id,T]));for(const T of p)c.has(T.id)||await u.removeModel(s,T.id);for(const T of y.value)await f(T,s,E);await u.fetchProviders()}async function O(){var s,c;w.value=!0,C.value=null;try{const p={name:a.value.name.trim(),baseUrl:((s=a.value.baseUrl)==null?void 0:s.trim())||null,apiTimeoutMs:a.value.apiTimeoutMs||null,additionalEnvVars:Object.keys(a.value.additionalEnvVars).length>0?a.value.additionalEnvVars:null};I.value&&(p.authToken=((c=a.value.authToken)==null?void 0:c.trim())||null);let E;V.value?(E=await u.updateProvider(v.value.id,p),d.success("Provider updated successfully")):(E=await u.createProvider(p),d.success("Provider created successfully")),await x(E.id),m()}catch(p){C.value=p.message}finally{w.value=!1}}return{form:a,localModels:y,envVarKeys:g,showAuthToken:S,saving:w,testing:h,error:C,testResult:U,authTokenModified:I,isEditing:V,isValid:l,canTest:r,addLocalModel:A,removeLocalModel:H,addEnvVar:j,removeEnvVar:L,updateEnvVarKey:D,testConnection:F,save:O}}const ue={class:"models-section"},ce={key:0,class:"models-list"},ve=["onUpdate:modelValue"],me=["onUpdate:modelValue"],pe=["onUpdate:modelValue"],fe=["onClick"],be={key:1,class:"models-empty"},ye={__name:"ProviderModelsList",props:{models:{type:Array,required:!0}},emits:["add","remove"],setup(_){return(v,m)=>(n(),i("div",ue,[m[3]||(m[3]=e("div",{class:"models-header"},[e("span",{class:"models-title"},"Models"),e("span",{class:"models-hint"},"Assign tiers to map provider models to Opus / Sonnet / Haiku roles")],-1)),_.models.length>0?(n(),i("div",ce,[m[2]||(m[2]=se('<div class="model-row model-row-header" data-v-3aa7217a><span class="col-model-id" data-v-3aa7217a>Model ID</span><span class="col-display-name" data-v-3aa7217a>Display Name</span><span class="col-tier" data-v-3aa7217a>Tier</span><span class="col-actions" data-v-3aa7217a></span></div>',1)),(n(!0),i(R,null,K(_.models,(u,d)=>(n(),i("div",{key:d,class:"model-row"},[P(e("input",{"onUpdate:modelValue":b=>u.modelId=b,type:"text",placeholder:"anthropic.claude-3-sonnet-…",class:"col-model-id model-input"},null,8,ve),[[N,u.modelId]]),P(e("input",{"onUpdate:modelValue":b=>u.displayName=b,type:"text",placeholder:"My Sonnet",class:"col-display-name model-input"},null,8,me),[[N,u.displayName]]),P(e("select",{"onUpdate:modelValue":b=>u.tier=b,class:"col-tier model-input tier-select"},[...m[1]||(m[1]=[e("option",{value:"opus"}," Opus ",-1),e("option",{value:"sonnet"}," Sonnet ",-1),e("option",{value:"haiku"}," Haiku ",-1),e("option",{value:"custom"}," Custom ",-1)])],8,pe),[[oe,u.tier]]),e("button",{type:"button",class:"col-actions remove-model-btn",title:"Remove model",onClick:b=>v.$emit("remove",d)}," × ",8,fe)]))),128))])):(n(),i("div",be," No models added yet. ")),e("button",{type:"button",class:"btn btn-sm btn-secondary add-model-btn",onClick:m[0]||(m[0]=u=>v.$emit("add"))}," + Add Model ")]))}},_e=W(ye,[["__scopeId","data-v-3aa7217a"]]),ke={class:"modal"},he={class:"modal-header"},ge={class:"modal-body"},Ve={class:"form-group"},Me={class:"form-group"},$e={class:"form-group"},Te={class:"token-input-wrapper"},Ce=["type"],Ee=["title"],we={class:"expandable-section"},Pe={class:"section-content"},Ue={class:"form-group"},Ie={class:"form-group"},Se={class:"env-vars-list"},Ae=["onUpdate:modelValue","onBlur"],Ne=["onUpdate:modelValue"],Be=["onClick"],De={key:0,class:"error-message"},xe={class:"test-result-header"},Oe={class:"test-icon"},Fe={class:"test-message"},Le={key:0,class:"test-details"},Re={key:0,class:"test-detail"},Ke={key:1,class:"test-detail"},He={class:"modal-footer"},je=["disabled"],qe={class:"footer-actions"},ze=["disabled"],We=["disabled"],Ye={__name:"ProviderForm",props:{isOpen:{type:Boolean,default:!1},provider:{type:Object,default:null}},emits:["close","saved"],setup(_,{emit:v}){const m=_,u=v,{form:d,localModels:b,envVarKeys:a,showAuthToken:y,saving:g,testing:S,error:w,testResult:h,authTokenModified:C,isEditing:U,isValid:I,canTest:V,addLocalModel:l,removeLocalModel:r,addEnvVar:A,removeEnvVar:H,updateEnvVarKey:j,testConnection:L,save:D}=re(J(m,"isOpen"),J(m,"provider"),()=>u("saved"));function F(){u("close")}return(Y,o)=>_.isOpen?(n(),i("div",{key:0,class:"modal-overlay",onClick:z(F,["self"])},[e("div",ke,[e("div",he,[e("h2",null,k(t(U)?"Edit Provider":"Add Provider"),1),e("button",{type:"button",class:"close-btn",title:"Close",onClick:F}," × ")]),e("div",ge,[e("form",{onSubmit:o[7]||(o[7]=z((...f)=>t(D)&&t(D)(...f),["prevent"]))},[e("div",Ve,[o[10]||(o[10]=e("label",{for:"provider-name"},"Provider Name*",-1)),P(e("input",{id:"provider-name","onUpdate:modelValue":o[0]||(o[0]=f=>t(d).name=f),type:"text",placeholder:"e.g., AWS Bedrock",required:"",maxlength:"100"},null,512),[[N,t(d).name]])]),e("div",Me,[o[11]||(o[11]=e("label",{for:"base-url"},[B(" Base URL "),e("span",{class:"label-hint"},"(ANTHROPIC_BASE_URL)")],-1)),P(e("input",{id:"base-url","onUpdate:modelValue":o[1]||(o[1]=f=>t(d).baseUrl=f),type:"url",placeholder:"https://bedrock-runtime.us-east-1.amazonaws.com"},null,512),[[N,t(d).baseUrl]])]),e("div",$e,[o[12]||(o[12]=e("label",{for:"auth-token"},[B(" Auth Token "),e("span",{class:"label-hint"},"(ANTHROPIC_AUTH_TOKEN)")],-1)),e("div",Te,[P(e("input",{id:"auth-token","onUpdate:modelValue":o[2]||(o[2]=f=>t(d).authToken=f),type:t(y)?"text":"password",placeholder:"Your authentication token",onInput:o[3]||(o[3]=f=>C.value=!0)},null,40,Ce),[[le,t(d).authToken]]),e("button",{type:"button",class:"toggle-visibility-btn",title:t(y)?"Hide":"Show",onClick:o[4]||(o[4]=f=>y.value=!t(y))},k(t(y)?"Hide":"Show"),9,Ee)])]),X(_e,{models:t(b),onAdd:t(l),onRemove:t(r)},null,8,["models","onAdd","onRemove"]),e("details",we,[o[15]||(o[15]=e("summary",{class:"section-header"}," Advanced Settings ",-1)),e("div",Pe,[e("div",Ue,[o[13]||(o[13]=e("label",{for:"api-timeout"},"API Timeout (ms)",-1)),P(e("input",{id:"api-timeout","onUpdate:modelValue":o[5]||(o[5]=f=>t(d).apiTimeoutMs=f),type:"number",placeholder:"120000",min:"1000",step:"1000"},null,512),[[N,t(d).apiTimeoutMs,void 0,{number:!0}]])]),e("div",Ie,[o[14]||(o[14]=e("label",null,"Additional Environment Variables",-1)),e("div",Se,[(n(!0),i(R,null,K(t(d).additionalEnvVars,(f,x,O)=>(n(),i("div",{key:O,class:"env-var-row"},[P(e("input",{"onUpdate:modelValue":s=>t(a)[O]=s,type:"text",placeholder:"KEY",class:"env-key",onBlur:s=>t(j)(O,x)},null,40,Ae),[[N,t(a)[O]]]),P(e("input",{"onUpdate:modelValue":s=>t(d).additionalEnvVars[x]=s,type:"text",placeholder:"value",class:"env-value"},null,8,Ne),[[N,t(d).additionalEnvVars[x]]]),e("button",{type:"button",class:"remove-env-btn",title:"Remove",onClick:s=>t(H)(x)}," × ",8,Be)]))),128)),e("button",{type:"button",class:"btn btn-sm btn-secondary",onClick:o[6]||(o[6]=(...f)=>t(A)&&t(A)(...f))}," + Add Variable ")])])])]),t(w)?(n(),i("div",De,k(t(w)),1)):$("",!0),t(h)?(n(),i("div",{key:1,class:ae(["test-result",t(h).success?"success":"failure"])},[e("div",xe,[e("span",Oe,k(t(h).success?"✓":"✗"),1),e("span",Fe,k(t(h).message),1)]),t(h).details?(n(),i("div",Le,[t(h).details.model?(n(),i("div",Re,[o[16]||(o[16]=B(" Model: ",-1)),e("code",null,k(t(h).details.model),1)])):$("",!0),t(h).details.code?(n(),i("div",Ke,[o[17]||(o[17]=B(" Error Code: ",-1)),e("code",null,k(t(h).details.code),1)])):$("",!0)])):$("",!0)],2)):$("",!0)],32)]),e("div",He,[e("button",{type:"button",class:"btn btn-secondary",disabled:t(g)||t(S)||!t(V),onClick:o[8]||(o[8]=(...f)=>t(L)&&t(L)(...f))},k(t(S)?"Testing...":"Test Connection"),9,je),e("div",qe,[e("button",{type:"button",class:"btn btn-secondary",disabled:t(g),onClick:F}," Cancel ",8,ze),e("button",{type:"button",class:"btn btn-primary",disabled:t(g)||!t(I),onClick:o[9]||(o[9]=(...f)=>t(D)&&t(D)(...f))},k(t(g)?"Saving...":"Save"),9,We)])])])])):$("",!0)}},Ge=W(Ye,[["__scopeId","data-v-a4048df1"]]),Je={class:"container"},Qe={key:0,class:"skeleton-list"},Xe={key:1,class:"error-message"},Ze={key:2,class:"provider-list"},et={class:"provider-header"},tt={class:"provider-title"},st={key:0,class:"built-in-badge"},ot={class:"provider-actions"},lt=["disabled","onClick"],at=["onClick"],nt=["onClick"],it={class:"provider-details"},dt={key:0,class:"provider-detail"},rt={class:"detail-value"},ut={key:1,class:"provider-detail"},ct={class:"detail-value"},vt={key:2,class:"provider-detail"},mt={class:"modal confirm-modal"},pt={class:"modal-header"},ft={class:"modal-body"},bt={class:"modal-footer"},yt=["disabled"],_t={__name:"ProvidersView",setup(_){const v=Z(),m=Q(),u=M(!1),d=M(null),b=M(null),a=M(!1),y=M(null);ne(()=>{v.fetchProviders()});function g(){d.value=null,u.value=!0}function S(V){d.value=V,u.value=!0}function w(){u.value=!1,d.value=null}function h(){w(),v.fetchProviders()}async function C(V){y.value=V;try{const l=await v.testExistingProvider(V);l.success?m.success(`Connection successful (model: ${l.details.model})`):m.error(`Connection failed: ${l.message}`)}catch(l){m.error(`Test failed: ${l.message}`)}finally{y.value=null}}function U(V){b.value=V}async function I(){a.value=!0;try{await v.deleteProvider(b.value.id),m.success("Provider deleted"),b.value=null}catch(V){m.error(`Failed to delete provider: ${V.message}`)}finally{a.value=!1}}return(V,l)=>(n(),i("div",Je,[e("div",{class:"page-header"},[e("button",{class:"btn btn-primary",onClick:g},[...l[3]||(l[3]=[e("span",null,"+ Add Provider",-1)])])]),l[11]||(l[11]=e("p",{class:"page-description"}," Configure custom model providers to use the agent through alternative endpoints like AWS Bedrock, Google Vertex AI, or self-hosted proxies. ",-1)),t(v).loading?(n(),i("div",Qe,[(n(),i(R,null,K(3,r=>e("div",{key:r,class:"skeleton card",style:{height:"120px"}})),64))])):t(v).error?(n(),i("div",Xe,k(t(v).error),1)):(n(),i("div",Ze,[(n(!0),i(R,null,K(t(v).providers,r=>(n(),i("div",{key:r.id,class:"provider-card card"},[e("div",et,[e("div",tt,[e("h3",null,[B(k(r.name)+" ",1),r.isBuiltIn?(n(),i("span",st,"Built-in")):$("",!0)])]),e("div",ot,[r.isBuiltIn?$("",!0):(n(),i("button",{key:0,class:"btn btn-sm",disabled:y.value===r.id,title:"Test Connection",onClick:A=>C(r.id)},k(y.value===r.id?"Testing...":"Test"),9,lt)),r.isBuiltIn?$("",!0):(n(),i("button",{key:1,class:"btn btn-sm",onClick:A=>S(r)}," Edit ",8,at)),r.isBuiltIn?$("",!0):(n(),i("button",{key:2,class:"btn btn-sm btn-danger",onClick:A=>U(r)}," Delete ",8,nt))])]),e("div",it,[r.baseUrl?(n(),i("div",dt,[l[4]||(l[4]=e("span",{class:"detail-label"},"Base URL:",-1)),e("code",rt,k(r.baseUrl),1)])):$("",!0),r.defaultSonnetModel?(n(),i("div",ut,[l[5]||(l[5]=e("span",{class:"detail-label"},"Default Sonnet Model:",-1)),e("code",ct,k(r.defaultSonnetModel),1)])):$("",!0),!r.baseUrl&&r.isBuiltIn?(n(),i("div",vt,[...l[6]||(l[6]=[e("span",{class:"detail-value"},"Uses official Anthropic API",-1)])])):$("",!0)])]))),128))])),X(Ge,{"is-open":u.value,provider:d.value,onClose:w,onSaved:h},null,8,["is-open","provider"]),b.value?(n(),i("div",{key:3,class:"modal-overlay",onClick:l[2]||(l[2]=z(r=>b.value=null,["self"]))},[e("div",mt,[e("div",pt,[l[7]||(l[7]=e("h2",null,"Delete Provider",-1)),e("button",{type:"button",class:"close-btn",onClick:l[0]||(l[0]=r=>b.value=null)}," × ")]),e("div",ft,[e("p",null,[l[8]||(l[8]=B("Are you sure you want to delete ",-1)),e("strong",null,k(b.value.name),1),l[9]||(l[9]=B("?",-1))]),l[10]||(l[10]=e("p",{class:"warning-text"}," This action cannot be undone. ",-1))]),e("div",bt,[e("button",{type:"button",class:"btn btn-secondary",onClick:l[1]||(l[1]=r=>b.value=null)}," Cancel "),e("button",{type:"button",class:"btn btn-danger",disabled:a.value,onClick:I},k(a.value?"Deleting...":"Delete"),9,yt)])])])):$("",!0)]))}},Vt=W(_t,[["__scopeId","data-v-0bdb2dfd"]]);export{Vt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.models-section[data-v-3aa7217a]{margin-bottom:1.25rem;border:1px solid var(--color-border);border-radius:.25rem;overflow:hidden}.models-header[data-v-3aa7217a]{display:flex;align-items:baseline;gap:.75rem;padding:.75rem 1rem;background:var(--color-background-soft);border-bottom:1px solid var(--color-border)}.models-title[data-v-3aa7217a]{font-weight:500;font-size:.875rem;color:var(--color-text)}.models-hint[data-v-3aa7217a]{font-size:.8125rem;color:var(--color-text-soft)}.models-list[data-v-3aa7217a]{padding:.5rem .75rem}.model-row[data-v-3aa7217a]{display:grid;grid-template-columns:1fr 10rem 6.5rem 2rem;gap:.5rem;align-items:center;margin-bottom:.375rem}.model-row-header[data-v-3aa7217a]{font-size:.75rem;font-weight:500;color:var(--color-text-soft);margin-bottom:.25rem}.model-row-header span[data-v-3aa7217a]{padding:0 .25rem}.model-input[data-v-3aa7217a]{padding:.4rem .6rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:.25rem;color:var(--color-text);font-size:.8125rem}.model-input[data-v-3aa7217a]:focus{outline:none;border-color:var(--color-primary)}.tier-select[data-v-3aa7217a]{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;cursor:pointer}.remove-model-btn[data-v-3aa7217a]{background:none;border:1px solid var(--color-border);color:var(--color-text-soft);font-size:1.125rem;cursor:pointer;padding:.2rem .4rem;line-height:1;border-radius:.25rem;text-align:center}.remove-model-btn[data-v-3aa7217a]:hover{color:var(--color-danger, #ef4444);border-color:var(--color-danger, #ef4444)}.models-empty[data-v-3aa7217a]{padding:.75rem 1rem;font-size:.8125rem;color:var(--color-text-soft);font-style:italic}.add-model-btn[data-v-3aa7217a]{margin:.5rem .75rem .75rem}.btn[data-v-3aa7217a]{padding:.5rem 1rem;border-radius:.25rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-sm[data-v-3aa7217a]{padding:.375rem .75rem;font-size:.8125rem}.btn-secondary[data-v-3aa7217a]{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary[data-v-3aa7217a]:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-background-soft)}.modal-overlay[data-v-a4048df1]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-a4048df1]{background:var(--color-background);border:1px solid var(--color-border);border-radius:.5rem;width:100%;max-width:680px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000004d}.modal-header[data-v-a4048df1]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.modal-header h2[data-v-a4048df1]{margin:0;font-size:1.125rem;font-weight:600}.close-btn[data-v-a4048df1]{background:none;border:none;color:var(--color-text-soft);font-size:1.5rem;cursor:pointer;padding:.25rem;line-height:1;border-radius:.25rem}.close-btn[data-v-a4048df1]:hover{color:var(--color-text);background:var(--color-background-soft)}.modal-body[data-v-a4048df1]{padding:1.25rem;overflow-y:auto}.form-group[data-v-a4048df1]{margin-bottom:1.25rem}.form-group label[data-v-a4048df1]{display:block;margin-bottom:.5rem;font-weight:500;font-size:.875rem;color:var(--color-text)}.label-hint[data-v-a4048df1]{font-weight:400;color:var(--color-text-soft);font-size:.8125rem}.form-group input[type=text][data-v-a4048df1],.form-group input[type=url][data-v-a4048df1],.form-group input[type=password][data-v-a4048df1],.form-group input[type=number][data-v-a4048df1]{width:100%;padding:.5rem .75rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:.25rem;color:var(--color-text);font-size:.875rem}.form-group input[data-v-a4048df1]:focus{outline:none;border-color:var(--color-primary)}.token-input-wrapper[data-v-a4048df1]{display:flex;gap:.5rem}.token-input-wrapper input[data-v-a4048df1]{flex:1}.toggle-visibility-btn[data-v-a4048df1]{padding:.5rem 1rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:.25rem;color:var(--color-text);font-size:.8125rem;cursor:pointer;white-space:nowrap}.toggle-visibility-btn[data-v-a4048df1]:hover{background:var(--color-background-soft)}.expandable-section[data-v-a4048df1]{margin-bottom:1.25rem;border:1px solid var(--color-border);border-radius:.25rem}.section-header[data-v-a4048df1]{padding:.75rem 1rem;background:var(--color-background-soft);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500;font-size:.875rem;color:var(--color-text)}.section-header[data-v-a4048df1]:hover{background:var(--color-background-mute)}.section-content[data-v-a4048df1]{padding:1rem}.env-vars-list[data-v-a4048df1]{display:flex;flex-direction:column;gap:.5rem}.env-var-row[data-v-a4048df1]{display:flex;gap:.5rem}.env-key[data-v-a4048df1],.env-value[data-v-a4048df1]{padding:.5rem .75rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:.25rem;color:var(--color-text);font-size:.875rem;font-family:var(--font-mono)}.env-key[data-v-a4048df1]{flex:0 0 150px}.env-value[data-v-a4048df1]{flex:1}.env-key[data-v-a4048df1]:focus,.env-value[data-v-a4048df1]:focus{outline:none;border-color:var(--color-primary)}.remove-env-btn[data-v-a4048df1]{background:none;border:1px solid var(--color-border);color:var(--color-text-soft);font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;line-height:1;border-radius:.25rem}.remove-env-btn[data-v-a4048df1]:hover{color:var(--color-danger, #ef4444);border-color:var(--color-danger, #ef4444)}.error-message[data-v-a4048df1]{margin-top:1rem;padding:.75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:.25rem;color:var(--color-danger, #ef4444);font-size:.875rem}.test-result[data-v-a4048df1]{margin-top:1rem;padding:.75rem;border-radius:.25rem;font-size:.875rem}.test-result.success[data-v-a4048df1]{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:var(--color-success, #22c55e)}.test-result.failure[data-v-a4048df1]{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--color-danger, #ef4444)}.test-result-header[data-v-a4048df1]{display:flex;align-items:center;gap:.5rem;font-weight:500}.test-icon[data-v-a4048df1]{font-size:1.125rem}.test-details[data-v-a4048df1]{margin-top:.5rem;padding-top:.5rem;border-top:1px solid currentColor;opacity:.8}.test-detail[data-v-a4048df1]{margin-top:.25rem}.test-detail code[data-v-a4048df1]{font-family:var(--font-mono);font-size:.8125rem}.modal-footer[data-v-a4048df1]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-top:1px solid var(--color-border);background:var(--color-background-soft)}.footer-actions[data-v-a4048df1]{display:flex;gap:.75rem}.btn[data-v-a4048df1]{padding:.5rem 1rem;border-radius:.25rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.btn[data-v-a4048df1]:disabled{opacity:.5;cursor:not-allowed}.btn-sm[data-v-a4048df1]{padding:.375rem .75rem;font-size:.8125rem}.btn-secondary[data-v-a4048df1]{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary[data-v-a4048df1]:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-background-soft)}.btn-primary[data-v-a4048df1]{background:var(--color-primary);border:1px solid var(--color-primary);color:#fff}.btn-primary[data-v-a4048df1]:hover:not(:disabled){filter:brightness(1.1)}.page-header[data-v-0bdb2dfd]{display:flex;justify-content:flex-end;align-items:center;margin-bottom:.5rem}.page-description[data-v-0bdb2dfd]{color:var(--color-text-soft);margin:0 0 1.5rem;font-size:.875rem;line-height:1.5}.skeleton-list[data-v-0bdb2dfd]{display:flex;flex-direction:column;gap:1rem}.error-message[data-v-0bdb2dfd]{color:var(--color-error);padding:1rem;background-color:#f851491a;border-radius:var(--border-radius)}.provider-list[data-v-0bdb2dfd]{display:flex;flex-direction:column;gap:1rem}.provider-card[data-v-0bdb2dfd]{padding:1.25rem}.provider-header[data-v-0bdb2dfd]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;gap:1rem}.provider-title h3[data-v-0bdb2dfd]{margin:0;font-size:1rem;display:flex;align-items:center;gap:.5rem}.built-in-badge[data-v-0bdb2dfd]{display:inline-block;padding:.125rem .5rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:.25rem;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em;color:var(--color-text-soft)}.provider-actions[data-v-0bdb2dfd]{display:flex;gap:.5rem;flex-shrink:0}.provider-details[data-v-0bdb2dfd]{display:flex;flex-direction:column;gap:.5rem}.provider-detail[data-v-0bdb2dfd]{display:flex;gap:.5rem;font-size:.875rem}.detail-label[data-v-0bdb2dfd]{color:var(--color-text-soft);font-weight:500}.detail-value[data-v-0bdb2dfd]{color:var(--color-text);font-family:var(--font-mono);font-size:.8125rem}.btn-sm[data-v-0bdb2dfd]{padding:.375rem .75rem;font-size:.8125rem}.btn-danger[data-v-0bdb2dfd]{background:var(--color-danger, #ef4444);border:1px solid var(--color-danger, #ef4444);color:#fff}.btn-danger[data-v-0bdb2dfd]:hover:not(:disabled){filter:brightness(1.1)}.modal-overlay[data-v-0bdb2dfd]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-0bdb2dfd]{background:var(--color-background);border:1px solid var(--color-border);border-radius:.5rem;width:100%;max-width:450px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000004d}.confirm-modal[data-v-0bdb2dfd]{max-width:400px}.modal-header[data-v-0bdb2dfd]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.modal-header h2[data-v-0bdb2dfd]{margin:0;font-size:1.125rem;font-weight:600}.close-btn[data-v-0bdb2dfd]{background:none;border:none;color:var(--color-text-soft);font-size:1.5rem;cursor:pointer;padding:.25rem;line-height:1;border-radius:.25rem}.close-btn[data-v-0bdb2dfd]:hover{color:var(--color-text);background:var(--color-background-soft)}.modal-body[data-v-0bdb2dfd]{padding:1.25rem}.modal-body p[data-v-0bdb2dfd]{margin:0 0 .75rem}.warning-text[data-v-0bdb2dfd]{color:var(--color-warning, #f59e0b);font-size:.875rem;font-weight:500}.modal-footer[data-v-0bdb2dfd]{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--color-border);background:var(--color-background-soft)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as F,_ as T,l as L,a as r,G as M,c as d,b as e,t as y,j as G,m as I,v as q,i as R,q as z,H as O,V,x as w,n as j,I as H,F as E,r as A,d as K}from"./index-BGAW2Nqa.js";import{a as k}from"./ApiClient-CcqJ-GAv.js";const Je=F("projectDefaults",{state:()=>({defaultsByProjectId:{},loading:!1,error:null}),getters:{getDefaultsForProject:l=>o=>l.defaultsByProjectId[o]||null},actions:{async fetchDefaults(l){this.loading=!0,this.error=null;try{const o=await k.getProjectSessionDefaults(l);return this.defaultsByProjectId[l]=o,o}catch(o){throw this.error=o.message,o}finally{this.loading=!1}},async updateDefaults(l,o){this.loading=!0,this.error=null;try{const s=await k.updateProjectSessionDefaults(l,o);return this.defaultsByProjectId[l]=s,s}catch(s){throw this.error=s.message,s}finally{this.loading=!1}},async resetDefaults(l){this.loading=!0,this.error=null;try{return await k.resetProjectSessionDefaults(l),this.defaultsByProjectId[l]={mode:null,thinkingEnabled:null,effortLevel:null,startImmediately:null,gitMode:null,gitBranch:null,model:null},this.defaultsByProjectId[l]}catch(o){throw this.error=o.message,o}finally{this.loading=!1}},clearProjectDefaults(l){delete this.defaultsByProjectId[l]},clearAllDefaults(){this.defaultsByProjectId={}}}}),U=F("quickResponses",{state:()=>({projectResponses:[],globalResponses:[],loading:!1,error:null,currentProjectId:null}),getters:{allResponses:l=>[...l.projectResponses,...l.globalResponses],hasResponses:l=>l.projectResponses.length>0||l.globalResponses.length>0},actions:{async fetchForProject(l){this.loading=!0,this.error=null,this.currentProjectId=l;try{const o=await k.getQuickResponses(l);return this.projectResponses=o.project,this.globalResponses=o.global,o}catch(o){throw this.error=o.message,o}finally{this.loading=!1}},async createResponse(l,o){this.loading=!0,this.error=null;try{const s=await k.createQuickResponse(l,o);return s.projectId===null?this.globalResponses.push(s):this.projectResponses.push(s),s}catch(s){throw this.error=s.message,s}finally{this.loading=!1}},async updateResponse(l,o){this.loading=!0,this.error=null;try{const s=await k.updateQuickResponse(l,o),c=this.projectResponses.findIndex(p=>p.id===l);if(c!==-1)this.projectResponses[c]=s;else{const p=this.globalResponses.findIndex(_=>_.id===l);p!==-1&&(this.globalResponses[p]=s)}return s}catch(s){throw this.error=s.message,s}finally{this.loading=!1}},async deleteResponse(l){this.loading=!0,this.error=null;try{await k.deleteQuickResponse(l);const o=this.projectResponses.findIndex(s=>s.id===l);if(o!==-1)this.projectResponses.splice(o,1);else{const s=this.globalResponses.findIndex(c=>c.id===l);s!==-1&&this.globalResponses.splice(s,1)}}catch(o){throw this.error=o.message,o}finally{this.loading=!1}},async reorderResponses(l,o){this.loading=!0,this.error=null;try{const s=o.map((c,p)=>({id:c,sortOrder:p}));if(l){const c=await k.reorderQuickResponses(l,s);this.projectResponses=c.project,this.globalResponses=c.global}else{const c=await k.reorderGlobalQuickResponses(s);this.globalResponses=c}}catch(s){throw this.error=s.message,s}finally{this.loading=!1}},clearResponses(){this.projectResponses=[],this.globalResponses=[],this.currentProjectId=null,this.error=null}}}),Y={class:"dialog-header"},J={class:"dialog-content"},W={class:"form-group"},X={key:0,class:"form-error"},Z={class:"form-group"},ee={key:0,class:"form-error"},se={class:"form-group"},te={class:"form-group"},le={class:"checkbox-label"},oe={key:0,class:"form-group"},ne={class:"radio-group"},ae={class:"radio-label"},ie={class:"radio-label"},re={key:1,class:"error-message"},ue={class:"dialog-footer"},ce=["disabled"],de={__name:"QuickResponseDialog",props:{isOpen:{type:Boolean,default:!1},projectId:{type:String,required:!0},editingResponse:{type:Object,default:null},defaultIsGlobal:{type:Boolean,default:!1}},emits:["close","saved"],setup(l,{emit:o}){const s=l,c=o,p=U(),_=j(null),v=`dialog-title-${Math.random().toString(36).slice(2)}`,n=j({label:"",content:"",category:"",autoSubmit:!1,isGlobal:!1}),g=j(!1),h=j(null),C=w(()=>!!s.editingResponse),S=w(()=>n.value.label&&n.value.label.length>50?"Label must be 50 characters or less":null),x=w(()=>n.value.content&&n.value.content.length>1e4?"Content must be 10,000 characters or less":null),P=w(()=>n.value.label.trim().length>0&&n.value.label.length<=50&&n.value.content.trim().length>0&&n.value.content.length<=1e4);L(()=>s.isOpen,b=>{b&&(s.editingResponse?n.value={label:s.editingResponse.label||"",content:s.editingResponse.content||"",category:s.editingResponse.category||"",autoSubmit:s.editingResponse.autoSubmit||!1,isGlobal:s.editingResponse.projectId===null}:n.value={label:"",content:"",category:"",autoSubmit:!1,isGlobal:s.defaultIsGlobal},h.value=null,H(()=>{var t;(t=_.value)==null||t.focus()}))}),L(()=>s.isOpen,b=>{if(b){const t=a=>{a.key==="Escape"&&$()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)}});function $(){c("close")}async function B(){if(!(!P.value||g.value)){g.value=!0,h.value=null;try{const b={label:n.value.label.trim(),content:n.value.content,category:n.value.category.trim()||null,autoSubmit:n.value.autoSubmit};C.value?await p.updateResponse(s.editingResponse.id,b):(b.isGlobal=n.value.isGlobal,await p.createResponse(s.projectId,b)),c("saved"),c("close")}catch(b){h.value=b.message||"Failed to save quick response"}finally{g.value=!1}}}return(b,t)=>(r(),M(V,{to:"body"},[l.isOpen?(r(),d("div",{key:0,class:"dialog-overlay",onClick:G($,["self"])},[e("div",{class:"dialog",role:"dialog","aria-modal":"true","aria-labelledby":v},[e("div",Y,[e("h2",{id:v,class:"dialog-title"},y(C.value?"Edit Quick Response":"Add Quick Response"),1),e("button",{class:"close-button","aria-label":"Close dialog",onClick:$}," × ")]),e("form",{class:"dialog-form",onSubmit:G(B,["prevent"])},[e("div",J,[e("div",W,[t[7]||(t[7]=e("label",{for:"qr-label",class:"form-label"},"Label *",-1)),I(e("input",{id:"qr-label",ref_key:"labelInput",ref:_,"onUpdate:modelValue":t[0]||(t[0]=a=>n.value.label=a),type:"text",class:"form-input",placeholder:"e.g., Yes, LGTM, Run tests",maxlength:"50",required:"",onBlur:t[1]||(t[1]=a=>n.value.label=n.value.label.trim())},null,544),[[q,n.value.label]]),t[8]||(t[8]=e("span",{class:"form-help"},"Short text shown on the button (max 50 characters)",-1)),S.value?(r(),d("span",X,y(S.value),1)):R("",!0)]),e("div",Z,[t[9]||(t[9]=e("label",{for:"qr-content",class:"form-label"},"Content *",-1)),I(e("textarea",{id:"qr-content","onUpdate:modelValue":t[2]||(t[2]=a=>n.value.content=a),class:"form-textarea",placeholder:"The full message that will be inserted into the prompt",rows:"4",maxlength:"10000",required:""},null,512),[[q,n.value.content]]),t[10]||(t[10]=e("span",{class:"form-help"},"The full message that will be inserted (max 10,000 characters)",-1)),x.value?(r(),d("span",ee,y(x.value),1)):R("",!0)]),e("div",se,[t[11]||(t[11]=e("label",{for:"qr-category",class:"form-label"},"Category (optional)",-1)),I(e("input",{id:"qr-category","onUpdate:modelValue":t[3]||(t[3]=a=>n.value.category=a),type:"text",class:"form-input",placeholder:"e.g., feedback, commands",maxlength:"50"},null,512),[[q,n.value.category]]),t[12]||(t[12]=e("span",{class:"form-help"},"Optional grouping for organization",-1))]),e("div",te,[e("label",le,[I(e("input",{"onUpdate:modelValue":t[4]||(t[4]=a=>n.value.autoSubmit=a),type:"checkbox",class:"checkbox-input"},null,512),[[z,n.value.autoSubmit]]),t[13]||(t[13]=e("span",{class:"checkbox-text"},"Auto-submit",-1))]),t[14]||(t[14]=e("span",{class:"form-help indent"},"Send immediately when clicked (no confirmation)",-1))]),C.value?R("",!0):(r(),d("div",oe,[t[17]||(t[17]=e("span",{class:"form-label"},"Scope",-1)),e("div",ne,[e("label",ae,[I(e("input",{"onUpdate:modelValue":t[5]||(t[5]=a=>n.value.isGlobal=a),type:"radio",value:!1,class:"radio-input"},null,512),[[O,n.value.isGlobal]]),t[15]||(t[15]=e("span",{class:"radio-text"},"Project-specific",-1))]),e("label",ie,[I(e("input",{"onUpdate:modelValue":t[6]||(t[6]=a=>n.value.isGlobal=a),type:"radio",value:!0,class:"radio-input"},null,512),[[O,n.value.isGlobal]]),t[16]||(t[16]=e("span",{class:"radio-text"},"Global (all projects)",-1))])])])),h.value?(r(),d("div",re,y(h.value),1)):R("",!0)]),e("div",ue,[e("button",{type:"button",class:"btn btn-secondary",onClick:$}," Cancel "),e("button",{type:"submit",class:"btn btn-primary",disabled:!P.value||g.value},y(g.value?"Saving...":C.value?"Save Changes":"Save Quick Response"),9,ce)])],32)])])):R("",!0)]))}},pe=T(de,[["__scopeId","data-v-f2c13fd9"]]),be={class:"settings-panel",role:"dialog","aria-modal":"true"},fe={class:"settings-header"},ve={class:"settings-content"},ge={class:"section"},he={class:"section-header"},me={key:0,class:"loading-state"},ye={key:1,class:"empty-state"},ke={key:2,class:"response-list"},Re={class:"response-info"},_e={class:"response-label"},je={class:"response-content"},Ce={key:0,class:"auto-badge"},we={class:"response-actions"},$e=["disabled","onClick"],Ie=["disabled","onClick"],Se=["onClick"],xe=["onClick"],De={class:"section"},Pe={class:"section-header"},Be={key:0,class:"loading-state"},Ge={key:1,class:"empty-state"},Qe={key:2,class:"response-list"},qe={class:"response-info"},Ee={class:"response-label"},Me={class:"response-content"},Ve={key:0,class:"auto-badge"},Le={class:"response-actions"},Oe=["disabled","onClick"],Ae=["disabled","onClick"],Fe=["onClick"],Te=["onClick"],Ue={class:"confirm-dialog"},Ne={class:"confirm-message"},ze={class:"confirm-actions"},He={__name:"QuickResponseSettings",props:{isOpen:{type:Boolean,default:!1},projectId:{type:String,required:!0}},emits:["close"],setup(l,{expose:o}){const s=U(),c=j(!1),p=j(null),_=j(!1),v=j(null),n=w(()=>s.loading),g=w(()=>s.projectResponses),h=w(()=>s.globalResponses);function C(a){return a.length<=60?a:`${a.substring(0,60)}...`}function S(a){p.value=null,_.value=a,c.value=!0}function x(a){p.value=a,_.value=a.projectId===null,c.value=!0}function P(){c.value=!1,p.value=null}function $(){}function B(a){v.value=a}async function b(){if(v.value)try{await s.deleteResponse(v.value.id),v.value=null}catch(a){console.error("Failed to delete response:",a)}}async function t(a,u,i,m){const f=i+m;if(f<0||f>=u.length)return;const D=[...u];[D[i],D[f]]=[D[f],D[i]];const N=D.map(Q=>Q.id);try{await s.reorderResponses(a,N)}catch(Q){console.error("Failed to reorder responses:",Q)}}return o({moveResponse:t}),(a,u)=>(r(),d(E,null,[(r(),M(V,{to:"body"},[l.isOpen?(r(),d("div",{key:0,class:"settings-overlay",onClick:u[3]||(u[3]=G(i=>a.$emit("close"),["self"]))},[e("div",be,[e("div",fe,[u[6]||(u[6]=e("h2",{class:"settings-title"}," Quick Responses ",-1)),e("button",{class:"close-button","aria-label":"Close settings",onClick:u[0]||(u[0]=i=>a.$emit("close"))}," × ")]),e("div",ve,[e("div",ge,[e("div",he,[u[7]||(u[7]=e("h3",{class:"section-title"}," Project Responses ",-1)),e("button",{class:"add-button",onClick:u[1]||(u[1]=i=>S(!1))}," + Add ")]),n.value?(r(),d("div",me," Loading... ")):g.value.length===0?(r(),d("div",ye," No project-specific quick responses yet. ")):(r(),d("ul",ke,[(r(!0),d(E,null,A(g.value,(i,m)=>(r(),d("li",{key:i.id,class:"response-item"},[e("div",Re,[e("span",_e,y(i.label),1),e("span",je,y(C(i.content)),1),i.autoSubmit?(r(),d("span",Ce,"Auto-submit")):R("",!0)]),e("div",we,[e("button",{class:"action-button",disabled:m===0,title:"Move up",onClick:f=>t(l.projectId,g.value,m,-1)}," ↑ ",8,$e),e("button",{class:"action-button",disabled:m===g.value.length-1,title:"Move down",onClick:f=>t(l.projectId,g.value,m,1)}," ↓ ",8,Ie),e("button",{class:"action-button",title:"Edit","aria-label":"Edit",onClick:f=>x(i)}," ✏️ ",8,Se),e("button",{class:"action-button action-danger",title:"Delete",onClick:f=>B(i)}," 🗑️ ",8,xe)])]))),128))]))]),e("div",De,[e("div",Pe,[u[8]||(u[8]=e("h3",{class:"section-title"}," Global Responses ",-1)),e("button",{class:"add-button",onClick:u[2]||(u[2]=i=>S(!0))}," + Add ")]),n.value?(r(),d("div",Be," Loading... ")):h.value.length===0?(r(),d("div",Ge," No global quick responses yet. Global responses appear in all projects. ")):(r(),d("ul",Qe,[(r(!0),d(E,null,A(h.value,(i,m)=>(r(),d("li",{key:i.id,class:"response-item"},[e("div",qe,[e("span",Ee,y(i.label),1),e("span",Me,y(C(i.content)),1),i.autoSubmit?(r(),d("span",Ve,"Auto-submit")):R("",!0)]),e("div",Le,[e("button",{class:"action-button",disabled:m===0,title:"Move up",onClick:f=>t(null,h.value,m,-1)}," ↑ ",8,Oe),e("button",{class:"action-button",disabled:m===h.value.length-1,title:"Move down",onClick:f=>t(null,h.value,m,1)}," ↓ ",8,Ae),e("button",{class:"action-button",title:"Edit","aria-label":"Edit",onClick:f=>x(i)}," ✏️ ",8,Fe),e("button",{class:"action-button action-danger",title:"Delete",onClick:f=>B(i)}," 🗑️ ",8,Te)])]))),128))]))])])])])):R("",!0)])),K(pe,{"is-open":c.value,"project-id":l.projectId,"editing-response":p.value,"default-is-global":_.value,onClose:P,onSaved:$},null,8,["is-open","project-id","editing-response","default-is-global"]),(r(),M(V,{to:"body"},[v.value?(r(),d("div",{key:0,class:"confirm-overlay",onClick:u[5]||(u[5]=G(i=>v.value=null,["self"]))},[e("div",Ue,[e("p",Ne,' Are you sure you want to delete "'+y(v.value.label)+'"? ',1),e("div",ze,[e("button",{class:"btn btn-secondary",onClick:u[4]||(u[4]=i=>v.value=null)}," Cancel "),e("button",{class:"btn btn-danger",onClick:b}," Delete ")])])])):R("",!0)]))],64))}},We=T(He,[["__scopeId","data-v-9fffa8ff"]]);export{We as Q,U as a,Je as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.resizable-textarea-wrapper[data-v-4771ec67]{position:relative;display:flex;flex-direction:column}.resizable-textarea-wrapper textarea[data-v-4771ec67]{resize:none;padding-bottom:24px;width:100%;box-sizing:border-box}.resize-handle[data-v-4771ec67]{position:absolute;bottom:4px;right:4px;width:24px;height:24px;cursor:ns-resize;display:flex;align-items:center;justify-content:center;color:var(--color-text-soft, #6b7280);opacity:.5;transition:opacity .15s;touch-action:none;user-select:none;-webkit-user-select:none;border-radius:4px}.resize-handle[data-v-4771ec67]:hover,.resize-handle[data-v-4771ec67]:active{opacity:1;background:#ffffff0d}@media (pointer: coarse){.resize-handle[data-v-4771ec67]{width:32px;height:32px;bottom:2px;right:2px;opacity:.6}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as j,o as H,a as t,c as o,b as e,t as S,i as c,j as k,n as R,u as q,e as W,x as y,g as z,d as D,w as G,f as K,G as C,F as E,r as J,E as L}from"./index-BGAW2Nqa.js";import{u as Q}from"./sessions-Bs5FA6JZ.js";import{u as X}from"./commandButtons-D74TkPNU.js";import{u as Y,P as Z,S as _,B as ss,g as es,f as ts,b as ns}from"./SessionLogStream-DIndOyFR.js";import{a as os}from"./ApiClient-CcqJ-GAv.js";const as={key:0,class:"session-summary"},is={class:"summary-text"},rs={class:"summary-meta"},ls={key:0,class:"summary-files"},us={key:1,class:"session-summary session-summary-loading"},ds={key:2,class:"session-summary session-summary-error"},cs={__name:"SessionCardSummary",props:{sessionId:{type:String,required:!0},summary:{type:Object,default:null},summaryLoading:{type:Boolean,default:!1},summaryError:{type:Boolean,default:!1}},emits:["retrySummary"],setup(s){const g=s,m=R(0);return H(async()=>{var f,l;try{const u=await os.getSessionFilesCount(g.sessionId);m.value=u.count||0}catch(u){console.warn("Failed to fetch files count:",u),(l=(f=g.summary)==null?void 0:f.filesModified)!=null&&l.length&&(m.value=g.summary.filesModified.length)}}),(f,l)=>s.summary?(t(),o("div",as,[e("p",is,S(s.summary.shortSummary),1),e("div",rs,[m.value>0?(t(),o("span",ls,S(m.value)+" "+S(m.value===1?"file":"files")+" modified ",1)):c("",!0)])])):s.summaryLoading?(t(),o("div",us,[...l[1]||(l[1]=[e("span",{class:"loading-spinner-small"},null,-1),e("span",null,"Loading summary...",-1)])])):s.summaryError?(t(),o("div",ds,[l[2]||(l[2]=e("span",{class:"error-icon"},"!",-1)),l[3]||(l[3]=e("span",null,"Summary unavailable",-1)),e("button",{class:"retry-btn",onClick:l[0]||(l[0]=k(u=>f.$emit("retrySummary"),["prevent"]))}," Retry ")])):c("",!0)}},ms=j(cs,[["__scopeId","data-v-a9b445b6"]]);function hs(s){return new Date(s).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}const vs={class:"session-header-actions"},ys={class:"session-date"},fs={key:0,class:"archive-actions"},ws=["title"],gs={key:0,xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},ks={key:1,xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Ss={__name:"SessionCardHeaderActions",props:{dateToShow:{type:String,default:null},isChild:{type:Boolean,default:!1},isOnBoard:{type:Boolean,default:!1},kanbanEnabled:{type:Boolean,default:!0},showArchive:{type:Boolean,default:!1},showUnarchive:{type:Boolean,default:!1},sessionStatus:{type:String,default:""},starred:{type:Boolean,default:!1}},emits:["archive","unarchive","star","addToBoard"],setup(s,{emit:g}){const m=s,f=g,l=y(()=>m.sessionStatus!=="running"&&m.sessionStatus!=="starting"),u=()=>{f("archive")},i=()=>{confirm("Restore this session to active?")&&f("unarchive")};return(b,r)=>(t(),o("div",vs,[e("div",ys,S(q(hs)(s.dateToShow)),1),s.isChild?c("",!0):(t(),o("div",fs,[s.kanbanEnabled&&!s.isOnBoard?(t(),o("button",{key:0,class:"add-to-board-btn",title:"Add to kanban board",onClick:r[0]||(r[0]=k(B=>b.$emit("addToBoard"),["stop","prevent"]))},[...r[2]||(r[2]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),e("line",{x1:"9",y1:"3",x2:"9",y2:"21"}),e("line",{x1:"15",y1:"3",x2:"15",y2:"21"})],-1)])])):c("",!0),s.showArchive&&l.value?(t(),o("button",{key:1,class:"archive-btn",title:"Archive session",onClick:k(u,["stop","prevent"])},[...r[3]||(r[3]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e("rect",{x:"2",y:"4",width:"20",height:"5",rx:"1",ry:"1"}),e("path",{d:"M4 9v9a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9"}),e("path",{d:"M10 13h4"})],-1)])])):c("",!0),s.showUnarchive?(t(),o("button",{key:2,class:"archive-btn",title:"Unarchive session",onClick:k(i,["stop","prevent"])},[...r[4]||(r[4]=[W('<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-c4a198a4><rect x="2" y="4" width="20" height="5" rx="1" ry="1" data-v-c4a198a4></rect><path d="M4 9v9a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9" data-v-c4a198a4></path><path d="M12 11v6" data-v-c4a198a4></path><path d="M9 14l3-3 3 3" data-v-c4a198a4></path></svg>',1)])])):c("",!0),e("button",{class:"star-btn star-btn-mobile",title:s.starred?"Unstar session":"Star session",onClick:r[1]||(r[1]=k(B=>b.$emit("star"),["stop","prevent"]))},[s.starred?(t(),o("svg",gs,[...r[5]||(r[5]=[e("polygon",{points:"12 2 15.09 10.26 24 10.5 17.18 16.34 19.34 24.5 12 18.92 4.66 24.5 6.82 16.34 0 10.5 8.91 10.26 12 2"},null,-1)])])):(t(),o("svg",ks,[...r[6]||(r[6]=[e("polygon",{points:"12 2 15.09 10.26 24 10.5 17.18 16.34 19.34 24.5 12 18.92 4.66 24.5 6.82 16.34 0 10.5 8.91 10.26 12 2"},null,-1)])]))],8,ws)]))]))}},bs=j(Ss,[["__scopeId","data-v-c4a198a4"]]),ps={class:"workflow-card-wrapper"},Cs={class:"session-header-row"},Bs=["title"],xs={key:0,xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},$s={key:1,xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},js={class:"session-info"},As={class:"session-name"},Is={class:"session-meta"},Ms={key:0,class:"status-badge status-running"},Ts={key:1,class:"status-badge status-scheduled"},Us=["title"],Ds=["title","aria-label","onClick","innerHTML"],Es={key:0,class:"session-project"},Ls={class:"project-name"},Rs={__name:"SessionCard",props:{session:{type:Object,required:!0},showSummary:{type:Boolean,default:!1},showProject:{type:Boolean,default:!1},summary:{type:Object,default:null},summaryLoading:{type:Boolean,default:!1},summaryError:{type:Boolean,default:!1},isChild:{type:Boolean,default:!1},showArchive:{type:Boolean,default:!1},showUnarchive:{type:Boolean,default:!1},prUrl:{type:String,default:null},prSummary:{type:Object,default:null},kanbanEnabled:{type:Boolean,default:!0}},emits:["retrySummary","archive","unarchive","addToBoard"],setup(s,{emit:g}){const m=Q(),f=X(),l=Y(),u=R(null),i=s,b=g,r=y(()=>l.isSessionOnBoard(i.session.id)),B=()=>{b("addToBoard",i.session)},O=y(()=>i.session.lastActivityAt||i.session.updatedAt||i.session.createdAt);function x(){return m.getWorkflowSessions(i.session.id)}const A=y(()=>{const d=x(),n=["running","starting"];let h=0,a=0;for(const w of d)n.includes(w.status)&&h++,w.status==="scheduled"&&a++;return{runningCount:h,scheduledCount:a,totalCount:d.length,effectiveStatus:i.session.status}}),I=y(()=>{const d=["running","starting"];return x().filter(n=>d.includes(n.status)).map(n=>n.id)}),N=y(()=>I.value.length>0),p=y(()=>{const d=Date.now();if(i.session.status==="scheduled"&&i.session.scheduledAt)return i.session.scheduledAt;const n=x();let h=null;for(const a of n)if(a.id!==i.session.id&&a.status==="scheduled"&&a.scheduledAt){const w=new Date(a.scheduledAt).getTime();w>=d&&(h===null||w<h)&&(h=w)}return h}),M=y(()=>p.value?ts(new Date(p.value),{addSuffix:!0}):null),V=y(()=>p.value?ns(new Date(p.value),"MMM d, h:mm a"):null),F=y(()=>{const d=i.session.projectId;if(!d)return[];m.commandRunVersion;const n=f.getButtonsByProjectId(d),h=Object.fromEntries(n.map(v=>[v.id,v])),a=i.session.id,$=m.sessions.find(v=>v.id===a);return(($==null?void 0:$.latestCommandRuns)||i.session.latestCommandRuns||[]).filter(v=>{var U;return(U=h[v.buttonId])==null?void 0:U.showOnList}).map(v=>({buttonId:v.buttonId,label:h[v.buttonId].label,command:h[v.buttonId].command,status:v.status,latestRun:v}))}),P=d=>es(d),T=()=>{m.toggleSessionStar(i.session.id)};return(d,n)=>{const h=z("router-link");return t(),o(E,null,[e("div",ps,[D(h,{to:`/sessions/${s.session.id}`,class:L(["session-card card",{"is-child":s.isChild}])},{default:G(()=>[e("div",Cs,[s.isChild?c("",!0):(t(),o("button",{key:0,class:"star-btn",title:s.session.starred?"Unstar session":"Star session",onClick:k(T,["stop","prevent"])},[s.session.starred?(t(),o("svg",xs,[...n[4]||(n[4]=[e("polygon",{points:"12 2 15.09 10.26 24 10.5 17.18 16.34 19.34 24.5 12 18.92 4.66 24.5 6.82 16.34 0 10.5 8.91 10.26 12 2"},null,-1)])])):(t(),o("svg",$s,[...n[5]||(n[5]=[e("polygon",{points:"12 2 15.09 10.26 24 10.5 17.18 16.34 19.34 24.5 12 18.92 4.66 24.5 6.82 16.34 0 10.5 8.91 10.26 12 2"},null,-1)])]))],8,Bs)),e("div",js,[e("h3",As,S(s.session.name),1),e("p",Is,[A.value.runningCount>0?(t(),o("span",Ms," ● running ")):c("",!0),A.value.scheduledCount>0?(t(),o("span",Ts,[...n[6]||(n[6]=[e("svg",{class:"schedule-icon-inline",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",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:"10"}),e("polyline",{points:"12 6 12 12 16 14"})],-1),K(" scheduled ",-1)])])):c("",!0),M.value?(t(),o("span",{key:2,class:"scheduled-time",title:V.value},S(M.value),9,Us)):c("",!0),s.prUrl&&!s.isChild?(t(),C(Z,{key:3,"pr-url":s.prUrl,summary:s.prSummary,"data-testid":"session-card-pr-indicators"},null,8,["pr-url","summary"])):c("",!0),(t(!0),o(E,null,J(F.value,a=>(t(),o("span",{key:a.buttonId,class:L(["button-status-indicator",`button-status-${a.status}`]),title:a.label,"aria-label":a.status,onClick:k(w=>u.value=a,["stop","prevent"]),innerHTML:P(a.status)},null,10,Ds))),128))]),s.showProject&&s.session.projectName?(t(),o("p",Es,[e("span",Ls,S(s.session.projectName),1)])):c("",!0)]),D(bs,{"date-to-show":O.value,"is-child":s.isChild,"is-on-board":r.value,"kanban-enabled":s.kanbanEnabled,"show-archive":s.showArchive,"show-unarchive":s.showUnarchive,"session-status":s.session.status,starred:!!s.session.starred,onArchive:n[0]||(n[0]=a=>d.$emit("archive",s.session.id)),onUnarchive:n[1]||(n[1]=a=>d.$emit("unarchive",s.session.id)),onStar:T,onAddToBoard:B},null,8,["date-to-show","is-child","is-on-board","kanban-enabled","show-archive","show-unarchive","session-status","starred"])]),s.showSummary?(t(),C(ms,{key:0,"session-id":s.session.id,summary:s.summary,"summary-loading":s.summaryLoading,"summary-error":s.summaryError,onRetrySummary:n[2]||(n[2]=a=>d.$emit("retrySummary",s.session.id))},null,8,["session-id","summary","summary-loading","summary-error"])):c("",!0),N.value?(t(),C(_,{key:1,"session-ids":I.value,"data-testid":"session-log-stream"},null,8,["session-ids"])):c("",!0)]),_:1},8,["to","class"])]),u.value?(t(),C(ss,{key:0,button:{id:u.value.buttonId,label:u.value.label,command:u.value.command},"latest-run":u.value.latestRun,"is-open":!!u.value,"session-id":s.session.id,onClose:n[3]||(n[3]=a=>u.value=null)},null,8,["button","latest-run","is-open","session-id"])):c("",!0)],64)}}},qs=j(Rs,[["__scopeId","data-v-01177dae"]]);export{qs as S};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.session-summary[data-v-a9b445b6]{padding-top:.5rem;border-top:1px solid var(--color-border)}.session-summary-loading[data-v-a9b445b6],.session-summary-error[data-v-a9b445b6]{display:flex;align-items:center;gap:.5rem;color:var(--color-text-soft);font-size:.75rem}.error-icon[data-v-a9b445b6]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;background-color:var(--color-warning);color:#fff;border-radius:50%;font-size:.625rem;font-weight:700}.retry-btn[data-v-a9b445b6]{background:none;border:none;color:var(--color-primary);font-size:.75rem;cursor:pointer;padding:0;margin-left:auto}.retry-btn[data-v-a9b445b6]:hover{text-decoration:underline}.summary-text[data-v-a9b445b6]{margin:0 0 .5rem;font-size:.875rem;color:var(--color-text-soft);line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.summary-meta[data-v-a9b445b6]{display:flex;gap:1rem;font-size:.75rem;color:var(--color-text-soft)}.summary-files[data-v-a9b445b6]{opacity:.8}.loading-spinner-small[data-v-a9b445b6]{width:12px;height:12px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin-a9b445b6 1s linear infinite}@keyframes spin-a9b445b6{to{transform:rotate(360deg)}}.session-header-actions[data-v-c4a198a4]{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;flex-shrink:0}.session-date[data-v-c4a198a4]{font-size:.875rem;color:var(--color-text-soft)}.archive-actions[data-v-c4a198a4]{display:flex;gap:.25rem}.archive-btn[data-v-c4a198a4]{background:none;border:none;padding:.25rem;cursor:pointer;color:var(--color-text-soft);border-radius:var(--border-radius);transition:color .15s,background-color .15s;display:flex;align-items:center;justify-content:center}.archive-btn[data-v-c4a198a4]:hover{color:var(--color-primary);background-color:var(--color-bg-soft)}.add-to-board-btn[data-v-c4a198a4]{background:none;border:none;padding:.25rem;cursor:pointer;color:var(--color-text-soft);border-radius:var(--border-radius);transition:color .15s,background-color .15s;display:flex;align-items:center;justify-content:center}.add-to-board-btn[data-v-c4a198a4]:hover{color:var(--color-primary);background-color:var(--color-bg-soft)}.star-btn[data-v-c4a198a4]{background:none;border:none;padding:.25rem;cursor:pointer;color:var(--color-text-soft);border-radius:var(--border-radius);transition:color .15s,background-color .15s;display:flex;align-items:center;justify-content:center}.star-btn[data-v-c4a198a4]:hover{color:var(--color-primary);background-color:var(--color-bg-soft)}.star-btn-mobile[data-v-c4a198a4]{display:none}@media (max-width: 480px){.archive-actions[data-v-c4a198a4]{display:flex;align-items:center;gap:.25rem}.star-btn-mobile[data-v-c4a198a4]{display:flex!important}.session-date[data-v-c4a198a4]{font-size:.75rem}.session-header-actions[data-v-c4a198a4]{flex-direction:row;align-items:center;width:100%;justify-content:space-between}}.workflow-card-wrapper[data-v-01177dae]{display:flex;flex-direction:column}.session-card[data-v-01177dae]{display:flex;flex-direction:column;gap:.75rem;color:var(--color-text);text-decoration:none;transition:border-color .2s}.session-card[data-v-01177dae]:hover{border-color:var(--color-primary);text-decoration:none}.session-card.is-child[data-v-01177dae]{margin-left:1rem;opacity:.9;background:var(--color-background-secondary, rgba(0, 0, 0, .2))}.session-header-row[data-v-01177dae]{display:flex;gap:.75rem;justify-content:space-between;align-items:flex-start}.session-info[data-v-01177dae]{flex:1;min-width:0}.session-name[data-v-01177dae]{margin:0 0 .5rem;font-size:1rem;overflow:auto;word-break:break-word;line-height:1.4}.session-meta[data-v-01177dae]{margin:0;display:flex;align-items:center;gap:.75rem}.session-project[data-v-01177dae]{margin:.5rem 0 0}.project-name[data-v-01177dae]{font-size:.75rem;color:var(--color-text-soft)}.star-btn[data-v-01177dae]{background:none;border:none;padding:.25rem;cursor:pointer;color:var(--color-text-soft);border-radius:var(--border-radius);transition:color .15s,background-color .15s;display:flex;align-items:center;justify-content:center}.star-btn[data-v-01177dae]:hover{color:var(--color-primary);background-color:var(--color-bg-soft)}.schedule-icon-inline[data-v-01177dae]{display:inline-block;vertical-align:middle;margin-right:.25rem}.scheduled-time[data-v-01177dae]{font-size:.75rem;color:var(--color-text-soft)}.button-status-indicator[data-v-01177dae]{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:50%;margin-left:.5rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;border:1px solid transparent}.button-status-indicator[data-v-01177dae] svg{width:.75rem;height:.75rem}.button-status-indicator[data-v-01177dae]:hover{transform:scale(1.15);box-shadow:0 0 8px #fff3}.button-status-running[data-v-01177dae]{background-color:#d299224d;color:#d29922;border-color:#d29922;animation:hourglass-flip-01177dae 2s ease-in-out infinite}.button-status-success[data-v-01177dae]{background-color:#3fb9504d;color:#3fb950;border-color:#3fb950}.button-status-success[data-v-01177dae] svg{animation:pop-in-01177dae .3s ease-out}.button-status-error[data-v-01177dae]{background-color:#f851494d;color:#f85149;border-color:#f85149}.button-status-error[data-v-01177dae] svg{animation:shake-01177dae .4s ease-in-out}.button-status-killed[data-v-01177dae]{background-color:#f851494d;color:#f85149;border-color:#f85149}@keyframes hourglass-flip-01177dae{0%,80%{transform:rotate(0)}90%{transform:rotate(180deg)}to{transform:rotate(180deg)}}@keyframes pop-in-01177dae{0%{transform:scale(0)}70%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes shake-01177dae{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@media (max-width: 480px){.session-header-row[data-v-01177dae]{flex-wrap:wrap;gap:.5rem}.session-header-row>.star-btn[data-v-01177dae]{display:none}.session-card[data-v-01177dae]{padding:.75rem;gap:.5rem}.session-meta[data-v-01177dae]{flex-wrap:wrap;gap:.5rem}.status-badge[data-v-01177dae]{font-size:.7rem}.session-info[data-v-01177dae]{min-width:0;flex:1 1 100%}.summary-text[data-v-01177dae]{-webkit-line-clamp:3}.session-card.is-child[data-v-01177dae]{margin-left:.5rem}}
|
|
@@ -1 +0,0 @@
|
|
|
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-669e970d]{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-669e970d],.viewer-header-bottom[data-v-669e970d]{width:100%;display:flex;align-items:center}.viewer-header-middle[data-v-669e970d]{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.breadcrumb-container[data-v-669e970d],.header-actions[data-v-669e970d]{display:flex;align-items:center;flex-shrink:0}.header-actions[data-v-669e970d]{gap:.5rem}.breadcrumb-back[data-v-669e970d]{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-669e970d]:hover{text-decoration:underline}.viewer-filename[data-v-669e970d]{font-weight:600;font-size:1rem;word-break:break-word;line-height:1.4}.viewer-meta[data-v-669e970d]{color:var(--color-text-soft);font-size:.75rem;font-weight:400}.btn-edit-toggle[data-v-669e970d]{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-669e970d]:hover{background:#22d3ee1a;border-color:var(--color-primary, #22d3ee)}.version-dropdown[data-v-669e970d]{position:relative}.version-dropdown summary[data-v-669e970d]{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-669e970d]::-webkit-details-marker{display:none}.dropdown-arrow[data-v-669e970d]{font-size:.6rem}.version-list[data-v-669e970d]{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-669e970d]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;font-size:.875rem}.version-list li[data-v-669e970d]:hover,.version-list li.active[data-v-669e970d]{background:var(--color-background-mute)}.version-number[data-v-669e970d]{font-weight:600}.version-time[data-v-669e970d]{color:var(--color-text-soft);font-size:.75rem}.version-current[data-v-669e970d]{color:var(--color-primary);font-size:.75rem}.file-menu-container[data-v-669e970d]{position:relative;display:inline-block;flex-shrink:0}.btn-menu[data-v-669e970d]{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-669e970d]:hover{background:#ffffff1a;color:var(--color-text, #ccc)}.btn-menu[data-v-669e970d]:active{background:#ffffff26}.menu-overlay[data-v-669e970d]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.file-menu-items[data-v-669e970d]{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-669e970d]{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-669e970d]:hover,.menu-item.is-highlighted[data-v-669e970d]{background:var(--color-bg-hover, #333)}.menu-item.is-danger[data-v-669e970d]{color:var(--color-error, #f87171)}.menu-item.is-danger[data-v-669e970d]:hover{background:#f871711a}.menu-item-icon[data-v-669e970d]{font-size:1rem;flex-shrink:0}.menu-item-text[data-v-669e970d]{flex:1;font-weight:500}.menu-divider[data-v-669e970d]{height:1px;background:var(--color-border, #444);margin:.25rem 0;list-style:none}.fade-enter-active[data-v-669e970d],.fade-leave-active[data-v-669e970d]{transition:opacity .15s ease}.fade-enter-from[data-v-669e970d],.fade-leave-to[data-v-669e970d]{opacity:0}.slide-enter-active[data-v-669e970d],.slide-leave-active[data-v-669e970d]{transition:all .15s ease}.slide-enter-from[data-v-669e970d],.slide-leave-to[data-v-669e970d]{opacity:0;transform:translateY(-4px)}@media (max-width: 640px){.viewer-header[data-v-669e970d]{padding:.75rem;gap:.5rem}.viewer-header-middle[data-v-669e970d]{flex-wrap:wrap;gap:.5rem}.breadcrumb-back[data-v-669e970d]{font-size:.875rem}.viewer-filename[data-v-669e970d]{font-size:.95rem}.viewer-meta[data-v-669e970d]{font-size:.6875rem}.header-actions[data-v-669e970d]{gap:.375rem}.version-dropdown summary[data-v-669e970d]{min-height:44px;padding:.5rem .75rem}.btn-menu[data-v-669e970d]{width:44px;height:44px}.file-menu-items[data-v-669e970d]{min-width:180px}}.canvas-file-viewer[data-v-c8506dba]{display:flex;flex-direction:column}.content-loading[data-v-c8506dba]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:2rem;color:var(--color-text-soft)}.loading-spinner[data-v-c8506dba]{display:inline-block;width:1rem;height:1rem;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin-c8506dba .8s linear infinite}@keyframes spin-c8506dba{to{transform:rotate(360deg)}}.viewer-content[data-v-c8506dba]{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-c8506dba]{padding:0;display:flex;flex-direction:column;min-height:400px}.viewer-image[data-v-c8506dba]{max-width:100%;height:auto;border-radius:var(--border-radius)}.viewer-markdown[data-v-c8506dba]{font-size:.9375rem;line-height:1.6}.viewer-markdown-raw[data-v-c8506dba]{font-size:.8125rem;margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:var(--font-mono)}.viewer-json[data-v-c8506dba]{font-size:.8125rem;margin:0;font-family:var(--font-mono)}.viewer-text[data-v-c8506dba]{white-space:pre-wrap;font-size:.9375rem}.viewer-code[data-v-c8506dba]{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-c8506dba]{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-ff96b944]{padding:1rem 0;min-height:200px;transition:background-color .2s,border-color .2s,opacity .3s ease}.canvas-tab.connection-stale[data-v-ff96b944]{opacity:.5}.canvas-tab.drag-over[data-v-ff96b944]{background-color:#58a6ff1a;border:2px dashed var(--color-primary);border-radius:var(--border-radius)}.canvas-header[data-v-ff96b944]{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.canvas-header label.disabled[data-v-ff96b944]{opacity:.6;cursor:not-allowed;pointer-events:none}.trash-toggle[data-v-ff96b944]{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-ff96b944]:hover{color:var(--color-text);background:var(--color-background-soft)}.trash-count[data-v-ff96b944]{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-ff96b944]{color:var(--color-primary);font-weight:500}.loading-state[data-v-ff96b944]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:2rem}.empty-state[data-v-ff96b944]{text-align:center;padding:2rem;color:var(--color-text-soft)}.empty-state-hint[data-v-ff96b944]{font-size:.875rem;margin-top:.5rem;opacity:.8}.bulk-action-toolbar[data-v-ff96b944]{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-ff96b944]{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.toolbar-right[data-v-ff96b944]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.toolbar-checkbox[data-v-ff96b944]{width:18px;height:18px;cursor:pointer;flex-shrink:0;margin:0}.toolbar-checkbox[data-v-ff96b944]:disabled{opacity:.5;cursor:not-allowed}.selection-info[data-v-ff96b944]{color:var(--color-text);font-weight:500;font-size:.9rem;white-space:nowrap}.btn-danger[data-v-ff96b944]{background-color:var(--color-error);color:#fff;border-color:var(--color-error)}.btn-danger[data-v-ff96b944]:hover:not(:disabled){background-color:#dc2626;border-color:#dc2626}.btn-secondary[data-v-ff96b944]{background-color:var(--color-background-mute);color:var(--color-text-soft);border-color:var(--color-border)}.btn-secondary[data-v-ff96b944]:hover:not(:disabled){background-color:var(--color-background-soft);color:var(--color-text)}@media (max-width: 640px){.canvas-header[data-v-ff96b944]{flex-wrap:wrap;gap:.5rem}.canvas-header .btn-primary[data-v-ff96b944]{flex:1;min-height:44px}.drag-hint[data-v-ff96b944]{display:none}.bulk-action-toolbar[data-v-ff96b944]{flex-direction:column;align-items:stretch}.toolbar-left[data-v-ff96b944],.toolbar-right[data-v-ff96b944]{justify-content:center}.toolbar-right .btn[data-v-ff96b944]{flex:1;min-height:44px}.toolbar-checkbox[data-v-ff96b944]{width:16px;height:16px}}@media (hover: none){.drag-hint[data-v-ff96b944]{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-855f7818]{margin-bottom:1.5rem}.overview-header[data-v-855f7818]{margin-bottom:1rem}.overview-header h3[data-v-855f7818]{margin:0;font-size:1rem;font-weight:600}.overview-summary[data-v-855f7818]{padding:.75rem 0;border-top:1px solid var(--color-border)}.overview-summary-loading[data-v-855f7818]{display:flex;align-items:center;gap:.5rem;color:var(--color-text-soft);font-size:.875rem}.overview-summary .summary-text[data-v-855f7818]{margin:0 0 .5rem;font-size:.875rem;color:var(--color-text);line-height:1.4}.overview-metrics[data-v-855f7818]{display:flex;gap:1.5rem;padding:.75rem 0;border-top:1px solid var(--color-border)}.metric[data-v-855f7818]{display:flex;flex-direction:column;gap:.125rem}.metric-value[data-v-855f7818]{font-size:.875rem;font-weight:600;color:var(--color-text)}.metric-label[data-v-855f7818]{font-size:.6875rem;color:var(--color-text-soft);text-transform:uppercase;letter-spacing:.05em}.loading-spinner-small[data-v-855f7818]{width:12px;height:12px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin-855f7818 1s linear infinite}@keyframes spin-855f7818{to{transform:rotate(360deg)}}.status-badge[data-v-855f7818]{display:inline-block;padding:.25rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-badge.pr-merged[data-v-855f7818]{background:#8250df26;color:#8250df}.status-badge.pr-open[data-v-855f7818]{background:#2ea04326;color:var(--color-success)}.status-badge.pr-closed[data-v-855f7818]{background:#6e778126;color:#6e7781}.status-badge.pr-draft[data-v-855f7818]{background:#d2992226;color:var(--color-warning)}.status-badge.ci-success[data-v-855f7818]{background:#2ea04326;color:var(--color-success)}.status-badge.ci-pending[data-v-855f7818]{background:#d2992226;color:var(--color-warning)}.pr-section[data-v-855f7818]{padding-top:.75rem;border-top:1px solid var(--color-border)}.overview-pr[data-v-855f7818]{display:flex;align-items:center;gap:.75rem}.pr-warnings[data-v-855f7818]{margin-top:.5rem;padding:.5rem .75rem;background:#cf222e14;border-radius:6px;font-size:.8125rem;color:var(--color-error, #cf222e)}.warning-item[data-v-855f7818]{padding:.125rem 0}.ci-failure-list[data-v-855f7818]{margin-top:.25rem;padding-left:1rem}.ci-failure-item[data-v-855f7818]{font-size:.75rem;color:var(--color-text-secondary, #8b949e);padding:.0625rem 0}.pr-link[data-v-855f7818]{color:var(--color-primary);text-decoration:none;font-weight:500}.pr-link[data-v-855f7818]:hover{text-decoration:underline}.overview-scheduling[data-v-855f7818]{display:flex;align-items:center;gap:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.overview-scheduling .scheduling-icon[data-v-855f7818]{font-size:1.25rem;flex-shrink:0}.scheduling-details[data-v-855f7818]{flex:1;min-width:0}.scheduling-time[data-v-855f7818]{margin:0;font-size:.875rem;color:var(--color-text)}.scheduling-time strong[data-v-855f7818]{color:var(--color-primary);font-weight:600}.scheduling-countdown[data-v-855f7818]{margin:0;font-size:.8125rem;color:var(--color-text-soft)}.scheduling-edit-link[data-v-855f7818]{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-855f7818]:hover{text-decoration:underline}.summary-tab[data-v-d6f79b11]{padding:1rem 0}.loading-state[data-v-d6f79b11],.generating-state[data-v-d6f79b11]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:2rem}.summary-empty-state[data-v-d6f79b11]{display:flex;align-items:center;justify-content:center;min-height:300px;text-align:center}.summary-empty-state-content[data-v-d6f79b11]{max-width:320px}.summary-empty-state-text[data-v-d6f79b11]{font-size:1rem;font-weight:500;color:var(--color-text);margin:0 0 .5rem}.summary-empty-state-hint[data-v-d6f79b11]{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-d3c541e5]{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem;padding:0 .5rem}.session-header-row[data-v-d3c541e5]{display:flex;align-items:center;gap:.5rem}.session-name-wrapper[data-v-d3c541e5]{display:inline-flex;align-items:center;gap:.25rem;flex:1;min-width:0}.btn-icon[data-v-d3c541e5]{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-d3c541e5]:hover{background:#ffffff1a;color:var(--color-text, #ccc)}.btn-icon[data-v-d3c541e5]:active{background:#ffffff26}.btn-star[data-v-d3c541e5]{display:inline-flex;align-items:center;gap:.375rem}.btn-star svg[data-v-d3c541e5]{flex-shrink:0}.btn-star.is-starred[data-v-d3c541e5]{color:var(--color-warning, #f0ad4e)}.lane-chip[data-v-d3c541e5]{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-d3c541e5]{cursor:pointer;transition:background-color .15s}.lane-chip-clickable[data-v-d3c541e5]:hover{background:#ffffff1a}.lane-chip svg[data-v-d3c541e5]{flex-shrink:0;opacity:.7}.session-name[data-v-d3c541e5]{margin:0;font-size:1.25rem;font-weight:600;overflow:hidden;word-break:break-word;line-height:1.4}.branch-pr-indicators[data-v-d3c541e5]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.left-indicators[data-v-d3c541e5]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex:1;min-width:0}@media (max-width: 768px){.session-header-row[data-v-d3c541e5]{align-items:flex-start;min-height:auto;padding-top:.25rem}.session-name[data-v-d3c541e5]{font-size:1rem}}.name-edit-form[data-v-d3c541e5]{display:flex;align-items:center;gap:.5rem}.name-edit-input[data-v-d3c541e5]{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-d3c541e5]:focus{outline:none;border-color:var(--color-primary, #00bcd4)}.name-edit-input[data-v-d3c541e5]::placeholder{color:var(--color-text-soft, #888)}.pr-edit-btn[data-v-d3c541e5]{width:28px;height:28px;border-radius:4px}.pr-save-btn[data-v-d3c541e5]{color:var(--color-success, #4caf50)}.pr-save-btn[data-v-d3c541e5]:hover{background:#4caf501a}.pr-cancel-btn[data-v-d3c541e5]{color:var(--color-text-soft, #888)}.pr-cancel-btn[data-v-d3c541e5]:hover{background:#ffffff1a}.pr-clear-btn[data-v-d3c541e5]{color:var(--color-error, #f44336)}.pr-clear-btn[data-v-d3c541e5]:hover{background:#f443361a}.name-edit-trigger[data-v-d3c541e5]{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-d3c541e5]:hover{color:var(--color-primary, #00bcd4);background:#00bcd41a}.btn-link[data-v-d3c541e5]{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-breadcrumb[data-v-b1e60718]{margin-bottom:.75rem;padding:.5rem .75rem;background:var(--color-background-secondary, rgba(0, 0, 0, .1));border-radius:var(--border-radius, 6px);border:1px solid var(--color-border)}.breadcrumb-list[data-v-b1e60718]{display:flex;align-items:center;gap:.25rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}.breadcrumb-item[data-v-b1e60718]{display:flex;align-items:center;gap:.25rem;font-size:.8rem}.breadcrumb-link[data-v-b1e60718]{color:var(--color-primary);text-decoration:none;transition:color .15s}.breadcrumb-link[data-v-b1e60718]:hover{color:var(--color-primary-bright, #06ffff);text-decoration:underline}.breadcrumb-current[data-v-b1e60718]{color:var(--color-text);font-weight:500}.breadcrumb-separator[data-v-b1e60718]{color:var(--color-text-soft);margin:0 .25rem}.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-b0423493]{-webkit-user-select:none;user-select:none}.tree-item-row[data-v-b0423493]{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-b0423493]:hover{background:var(--color-background-soft)}.tree-item-row.active[data-v-b0423493]{background:#58a6ff1a;border-left:3px solid var(--color-primary);padding-left:calc(.75rem - 3px)}.tree-indent[data-v-b0423493]{flex-shrink:0}.branch-indicator[data-v-b0423493]{display:flex;align-items:center;color:#8b5cf6b3;flex-shrink:0}.expand-toggle[data-v-b0423493]{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-b0423493]:hover{background:var(--color-background-mute);color:var(--color-text)}.expand-icon[data-v-b0423493]{font-size:.5rem;transition:transform .15s}.expand-icon.expanded[data-v-b0423493]{transform:rotate(90deg)}.expand-placeholder[data-v-b0423493]{width:16px;flex-shrink:0}.conv-name[data-v-b0423493]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem}.conv-meta[data-v-b0423493]{font-size:.75rem;color:var(--color-text-soft);white-space:nowrap;flex-shrink:0}.conv-tokens[data-v-b0423493]{font-family:var(--font-mono)}.children-badge[data-v-b0423493]{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-b0423493]{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-b0423493]{opacity:1}.delete-btn[data-v-b0423493]:hover{background:var(--color-danger, #ef4444);color:#fff}.tree-children[data-v-b0423493]{margin-left:.25rem;border-left:1px solid var(--color-border);padding-left:.25rem}.conversation-panel[data-v-be8a2309]{background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);margin-bottom:1rem}.panel-header[data-v-be8a2309]{padding:.5rem .75rem}.header-row[data-v-be8a2309]{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.dropdown-container[data-v-be8a2309]{position:relative;flex:1;max-width:300px}.dropdown-trigger[data-v-be8a2309]{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-be8a2309]:hover{border-color:var(--color-primary)}.dropdown-label[data-v-be8a2309]{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-arrow[data-v-be8a2309]{font-size:.5rem;color:var(--color-text-soft);margin-left:.5rem}.dropdown-menu[data-v-be8a2309]{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-be8a2309]{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-be8a2309]:hover{background:var(--color-background-mute)}.cost-label[data-v-be8a2309]{font-size:.75rem;color:var(--color-text-soft)}.cost-value[data-v-be8a2309]{font-family:var(--font-mono);font-size:.875rem;font-weight:600;color:var(--color-accent, var(--color-primary))}.toggle-btn[data-v-be8a2309]{background:none;border:none;color:var(--color-text-soft);font-size:.5rem;cursor:pointer;padding:.25rem}.toggle-btn[data-v-be8a2309]:hover{color:var(--color-text)}.btn-new[data-v-be8a2309]{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-be8a2309]:hover{border-color:var(--color-primary);background:var(--color-background-soft)}@media (max-width: 480px){.btn-new[data-v-be8a2309]{margin-left:0;flex:1 0 100%;justify-content:center}}.token-breakdown[data-v-be8a2309]{padding:.75rem;border-top:1px solid var(--color-border)}.bte-header[data-v-be8a2309]{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.bte-label[data-v-be8a2309]{font-size:.875rem;color:var(--color-text-soft)}.bte-value[data-v-be8a2309]{font-family:var(--font-mono);font-size:1.125rem;font-weight:700;color:var(--color-accent, var(--color-primary))}.token-grid[data-v-be8a2309]{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:.75rem}@media (min-width: 640px){.token-grid[data-v-be8a2309]{grid-template-columns:repeat(4,1fr)}}.token-item[data-v-be8a2309]{display:flex;flex-direction:column;align-items:center;padding:.5rem;background:var(--color-background);border-radius:.25rem;text-align:center}.token-type[data-v-be8a2309]{font-size:.625rem;text-transform:uppercase;color:var(--color-text-soft);margin-bottom:.25rem}.token-count[data-v-be8a2309]{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--color-text)}.token-weight[data-v-be8a2309]{font-size:.625rem;color:var(--color-text-soft)}.token-weighted[data-v-be8a2309]{font-family:var(--font-mono);font-size:.625rem;color:var(--color-accent, var(--color-primary))}.breakdown-footer[data-v-be8a2309]{display:flex;align-items:center;justify-content:flex-end}.settings-btn[data-v-be8a2309]{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-be8a2309]: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)}}.modal-overlay[data-v-dc502987]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-dc502987]{background:var(--color-background);border:1px solid var(--color-border);border-radius:.5rem;width:100%;max-width:450px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000004d}.modal-header[data-v-dc502987]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.modal-header h2[data-v-dc502987]{margin:0;font-size:1.125rem;font-weight:600;color:var(--color-text)}.close-btn[data-v-dc502987]{background:none;border:none;color:var(--color-text-soft);font-size:1.5rem;cursor:pointer;padding:.25rem;line-height:1;border-radius:.25rem}.close-btn[data-v-dc502987]:hover{color:var(--color-text);background:var(--color-background-soft)}.modal-body[data-v-dc502987]{padding:1.25rem;overflow-y:auto}.description[data-v-dc502987]{color:var(--color-text-soft);font-size:.875rem;margin:0 0 1.5rem;line-height:1.5}.weights-form[data-v-dc502987]{display:flex;flex-direction:column;gap:1.25rem}.weight-field[data-v-dc502987]{display:flex;flex-direction:column;gap:.5rem}.weight-field label[data-v-dc502987]{font-weight:500;font-size:.875rem;color:var(--color-text)}.input-row[data-v-dc502987]{display:flex;align-items:center;gap:.75rem}.weight-input[data-v-dc502987]{width:100px;padding:.5rem .75rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:.25rem;color:var(--color-text);font-family:var(--font-mono);font-size:.875rem}.weight-input[data-v-dc502987]:focus{outline:none;border-color:var(--color-primary)}.hint[data-v-dc502987]{font-size:.75rem;color:var(--color-text-soft)}.error-message[data-v-dc502987]{margin-top:1rem;padding:.75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:.25rem;color:var(--color-danger, #ef4444);font-size:.875rem}.modal-footer[data-v-dc502987]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-top:1px solid var(--color-border);background:var(--color-background-soft)}.footer-actions[data-v-dc502987]{display:flex;gap:.75rem}.btn[data-v-dc502987]{padding:.5rem 1rem;border-radius:.25rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.btn[data-v-dc502987]:disabled{opacity:.5;cursor:not-allowed}.btn-secondary[data-v-dc502987]{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary[data-v-dc502987]:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-background-soft)}.btn-primary[data-v-dc502987]{background:var(--color-primary);border:1px solid var(--color-primary);color:#fff}.btn-primary[data-v-dc502987]:hover:not(:disabled){filter:brightness(1.1)}.token-cost-panel[data-v-9629abd3]{display:flex;align-items:center;gap:.5rem;position:relative}.cost-display[data-v-9629abd3]{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}.cost-display[data-v-9629abd3]:hover{background:var(--color-background-mute)}.cost-label[data-v-9629abd3]{font-size:.75rem;color:var(--color-text-soft)}.cost-value[data-v-9629abd3]{font-family:var(--font-mono);font-size:.875rem;font-weight:600;color:var(--color-accent, var(--color-primary))}.toggle-btn[data-v-9629abd3]{background:none;border:none;color:var(--color-text-soft);font-size:.5rem;cursor:pointer;padding:.25rem}.toggle-btn[data-v-9629abd3]:hover{color:var(--color-text)}.token-breakdown[data-v-9629abd3]{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}.bte-header[data-v-9629abd3]{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.bte-label[data-v-9629abd3]{font-size:.875rem;color:var(--color-text-soft)}.bte-value[data-v-9629abd3]{font-family:var(--font-mono);font-size:1.125rem;font-weight:700;color:var(--color-accent, var(--color-primary))}.bte-value.clickable[data-v-9629abd3]{cursor:pointer;transition:opacity .15s}.bte-value.clickable[data-v-9629abd3]:hover{opacity:.8}.token-grid[data-v-9629abd3]{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:.75rem}@media (min-width: 640px){.token-grid[data-v-9629abd3]{grid-template-columns:repeat(4,1fr)}}.token-item[data-v-9629abd3]{display:flex;flex-direction:column;align-items:center;padding:.5rem;background:var(--color-background);border-radius:.25rem;text-align:center}.token-type[data-v-9629abd3]{font-size:.625rem;text-transform:uppercase;color:var(--color-text-soft);margin-bottom:.25rem}.token-count[data-v-9629abd3]{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--color-text)}.token-weight[data-v-9629abd3]{font-size:.625rem;color:var(--color-text-soft)}.token-weighted[data-v-9629abd3]{font-family:var(--font-mono);font-size:.625rem;color:var(--color-accent, var(--color-primary))}.breakdown-footer[data-v-9629abd3]{display:flex;align-items:center;justify-content:flex-end}.settings-btn[data-v-9629abd3]{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-9629abd3]:hover{border-color:var(--color-primary);color:var(--color-text);background:var(--color-background-soft)}.messages[data-v-084e35ef]{padding:.25rem 0;position:relative;max-height:65vh;overflow-y:auto;scroll-behavior:smooth}.conversation-controls-row[data-v-084e35ef]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.25rem 0;position:relative;min-height:32px}.conversation-scroll-actions[data-v-084e35ef]{display:flex;align-items:center;gap:.5rem}.conversation-scroll-btn[data-v-084e35ef]{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-084e35ef]:hover{background:#374151f2;color:#d1d5db}.conversation-scroll-btn[data-v-084e35ef]:active{transform:scale(.95)}.scroll-to-claude-btn[data-v-084e35ef]{font-size:1rem;white-space:nowrap;font-weight:500}@media (min-width: 1200px){.messages[data-v-084e35ef]{max-height:70vh}}@media (max-height: 700px){.messages[data-v-084e35ef]{max-height:50vh}}@media (max-height: 500px){.messages[data-v-084e35ef]{max-height:40vh}}@media (max-width: 600px){.conversation-scroll-btn[data-v-084e35ef]{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-39c5095a]{display:flex;flex-direction:column;gap:.5rem}.input-form textarea[data-v-39c5095a]{width:100%}.input-controls[data-v-39c5095a]{display:flex;align-items:center;gap:1rem}.session-options[data-v-39c5095a]{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;flex:1}.thinking-toggle[data-v-39c5095a]{display:flex;align-items:center;gap:.5rem}.toggle-label[data-v-39c5095a]{font-size:.875rem;color:var(--color-text-soft)}.mode-switcher[data-v-39c5095a]{display:flex;align-items:center;gap:.5rem}.toggle-switch[data-v-39c5095a]{position:relative;display:inline-block;width:40px;height:22px}.toggle-switch input[data-v-39c5095a]{opacity:0;width:0;height:0}.toggle-slider[data-v-39c5095a]{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-39c5095a]: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-39c5095a]{background-color:var(--color-primary);border-color:var(--color-primary)}.toggle-switch input:checked+.toggle-slider[data-v-39c5095a]:before{transform:translate(18px);background-color:#fff}.toggle-switch input:disabled+.toggle-slider[data-v-39c5095a]{opacity:.5;cursor:not-allowed}.auto-send-row[data-v-39c5095a]{padding:.5rem 0}.auto-send-label[data-v-39c5095a]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:var(--color-text-soft, #9ca3af)}.auto-send-checkbox[data-v-39c5095a]{width:1rem;height:1rem;cursor:pointer;accent-color:var(--color-primary, #06b6d4)}.auto-send-text[data-v-39c5095a]{-webkit-user-select:none;user-select:none}.send-button-row[data-v-39c5095a]{padding-top:.75rem;margin-bottom:14px;display:flex;justify-content:center}.btn-send-full[data-v-39c5095a]{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-39c5095a]{width:100%}@media (max-width: 600px){.input-controls[data-v-39c5095a]{flex-wrap:wrap}.session-options[data-v-39c5095a]{width:100%;justify-content:flex-start}}@media (max-width: 400px){.mode-label[data-v-39c5095a]{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-4bb408a6]{display:flex;flex-direction:column;transition:opacity .3s ease}.conversation-tab.connection-stale[data-v-4bb408a6]{opacity:.5}.session-chat-picker[data-v-11e80c77]{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-11e80c77]{padding:.5rem;border-radius:var(--border-radius, 6px);cursor:pointer;transition:background-color .15s}.picker-item[data-v-11e80c77]:hover{background-color:#ffffff0d}.picker-item--active[data-v-11e80c77]{background-color:#374151}.picker-item[data-v-11e80c77]:focus-visible{outline:2px solid var(--color-primary, #06b6d4);outline-offset:-2px}.picker-item-label[data-v-11e80c77]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.picker-item-role[data-v-11e80c77]{font-size:.65rem;font-weight:600;color:var(--color-text-soft, #9ca3af);letter-spacing:.05em}.picker-item-status[data-v-11e80c77]{font-size:.7rem;display:inline-flex;align-items:center;gap:.25rem}.picker-item-status.status-running[data-v-11e80c77],.picker-item-status.status-starting[data-v-11e80c77]{color:var(--color-success, #3fb950)}.picker-item-status.status-scheduled[data-v-11e80c77]{color:var(--color-primary, #06b6d4)}.picker-item-name[data-v-11e80c77]{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-11e80c77]{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--color-text-soft, #9ca3af)}.picker-item-summary[data-v-11e80c77]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:.5rem}.picker-item-date[data-v-11e80c77]{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-38074461]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#111827;display:flex;justify-content:flex-end;align-items:stretch;overflow:hidden;overflow-y:hidden;overscroll-behavior:none}.overlay-panel-wrapper[data-v-38074461]{position:relative;display:flex;min-height:0;max-width:900px;width:100%;overflow:visible;overscroll-behavior:none}.overlay-close-handle[data-v-38074461]{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-38074461]:hover{background:#0891b2b3}.overlay-close-handle[data-v-38074461]:focus-visible{outline:2px solid var(--color-primary, #06b6d4);outline-offset:2px}.overlay-close-handle .handle-icon[data-v-38074461]{color:var(--color-text-soft, #9ca3af);transition:color .2s ease}.overlay-close-handle:hover .handle-icon[data-v-38074461]{color:#fff}.overlay-close-handle .active-spinner[data-v-38074461]{width:.75rem;height:.75rem;border:2px solid rgba(6,182,212,.3);border-top-color:#06b6d4;border-radius:50%;animation:spin-38074461 .8s linear infinite}@keyframes spin-38074461{to{transform:rotate(360deg)}}.overlay-content[data-v-38074461]{flex:1;width:100%;display:flex;flex-direction:column;overflow:clip;padding:0;box-shadow:-4px 0 20px #00000080;position:relative}.overlay-body[data-v-38074461]{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}.overlay-header[data-v-38074461]{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%;transition:padding .2s ease,gap .2s ease}.overlay-header.header-compact[data-v-38074461]{flex-direction:row;align-items:center;gap:.5rem;padding:.375rem .5rem}.overlay-header.header-compact .overlay-header-selector[data-v-38074461],.overlay-header.header-compact .overlay-header-actions[data-v-38074461]{display:none}.overlay-header.header-compact .overlay-root-name[data-v-38074461]{font-size:.8125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overlay-header.header-compact .name-edit-trigger[data-v-38074461]{display:none}.overlay-header-row[data-v-38074461]{display:flex;align-items:center;width:100%;min-width:0}.overlay-header-selector[data-v-38074461]{position:relative}.overlay-header-actions[data-v-38074461]{justify-content:space-between}.overlay-root-name[data-v-38074461]{font-size:1rem;font-weight:600;color:var(--color-primary, #06b6d4);word-break:break-word}.dropdown-trigger[data-v-38074461]{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-38074461]:hover{background:#ffffff1a}.dropdown-name[data-v-38074461]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-chevron[data-v-38074461]{color:var(--color-text-soft, #9ca3af);margin-left:.5rem;flex-shrink:0}.session-chat-overlay[data-v-38074461] .messages{max-height:none!important;overflow-y:visible!important;flex:1}.session-chat-overlay[data-v-38074461] .conversation-controls-row{position:sticky;bottom:0;z-index:10;background:#111827;pointer-events:none}.session-chat-overlay[data-v-38074461] .conversation-controls-row>*{pointer-events:auto}@media (max-width: 768px){.overlay-body[data-v-38074461]{padding-left:.5rem;padding-right:.5rem}.overlay-header[data-v-38074461]{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-38074461]{max-width:700px}}.session-name-wrapper[data-v-38074461]{display:inline-flex;align-items:center;gap:.25rem;flex:1;min-width:0}.name-edit-form[data-v-38074461]{display:flex;align-items:center;gap:.5rem;flex:1}.name-edit-input[data-v-38074461]{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-38074461]:focus{outline:none;border-color:var(--color-primary, #00bcd4)}.name-edit-input[data-v-38074461]::placeholder{color:var(--color-text-soft, #888)}.btn-icon[data-v-38074461]{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-38074461]:hover{background:#ffffff1a;color:var(--color-text, #ccc)}.btn-icon[data-v-38074461]:active{background:#ffffff26}.pr-edit-btn[data-v-38074461]{width:28px;height:28px}.pr-save-btn[data-v-38074461]{color:var(--color-success, #4caf50)}.pr-save-btn[data-v-38074461]:hover{background:#4caf501a}.pr-cancel-btn[data-v-38074461]{color:var(--color-text-soft, #888)}.pr-cancel-btn[data-v-38074461]:hover{background:#ffffff1a}.pr-clear-btn[data-v-38074461]{color:var(--color-error, #f44336)}.pr-clear-btn[data-v-38074461]:hover{background:#f443361a}.name-edit-trigger[data-v-38074461]{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-38074461]:hover{color:var(--color-primary, #00bcd4);background:#00bcd41a}.add-session-btn[data-v-38074461]{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-38074461]:hover:not(:disabled){background:#06b6d41a;color:var(--color-primary, #06b6d4);border-color:#06b6d44d}.add-session-btn[data-v-38074461]:disabled{opacity:.5;cursor:not-allowed}.btn-link[data-v-38074461]{background:none;border:none;cursor:pointer}.back-to-sessions-link[data-v-38074461]{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-38074461]:hover{color:var(--color-primary, #06b6d4);background:#06b6d41a}.back-to-sessions-text[data-v-38074461]{font-size:.8125rem;margin-left:.25rem}.loading-state[data-v-64b4adcc]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:3rem}.tab-content[data-v-64b4adcc]{min-height:400px}.delete-overlay[data-v-64b4adcc]{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-64b4adcc]{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--color-text, #e0e0e0);font-size:1.125rem}.delete-spinner[data-v-64b4adcc]{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-64b4adcc .8s linear infinite}@keyframes spin-64b4adcc{to{transform:rotate(360deg)}}.fade-enter-active[data-v-64b4adcc],.fade-leave-active[data-v-64b4adcc]{transition:opacity .2s ease}.fade-enter-from[data-v-64b4adcc],.fade-leave-to[data-v-64b4adcc]{opacity:0}
|