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
|
-
.options-row[data-v-cbbbb3d9]{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-start}.thinking-toggle[data-v-cbbbb3d9]{display:flex;align-items:center;gap:.5rem}.toggle-label[data-v-cbbbb3d9]{font-size:.875rem;color:var(--color-text-soft)}.mode-selector-wrapper[data-v-cbbbb3d9],.model-selector-wrapper[data-v-cbbbb3d9],.effort-selector-wrapper[data-v-cbbbb3d9],.field-with-badge[data-v-cbbbb3d9]{display:flex;align-items:center;gap:.5rem}.toggle-switch[data-v-cbbbb3d9]{position:relative;display:inline-block;width:40px;height:22px}.toggle-switch input[data-v-cbbbb3d9]{opacity:0;width:0;height:0}.toggle-slider[data-v-cbbbb3d9]{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-cbbbb3d9]: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-cbbbb3d9]{background-color:var(--color-primary);border-color:var(--color-primary)}.toggle-switch input:checked+.toggle-slider[data-v-cbbbb3d9]:before{transform:translate(18px);background-color:#fff}@media (max-width: 480px){.options-row[data-v-cbbbb3d9]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.options-row[data-v-cbbbb3d9]>:last-child{grid-column:1 / -1}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{M as n}from"./ModelSelector-B0RdlCHT.js";import{M as r}from"./SlashCommandWizard-C_cSgF-P.js";import{E as m}from"./EffortLevelSelector-xE3gidpq.js";import{_ as p,a,c as i,b as t,d as s,i as u}from"./index-BGAW2Nqa.js";const g={class:"form-group"},f={class:"options-row"},v={class:"mode-selector-wrapper"},b={class:"model-selector-wrapper"},c={class:"effort-selector-wrapper"},k={class:"thinking-toggle"},y={class:"field-with-badge"},h={class:"toggle-switch"},S=["checked"],I={key:0,class:"thinking-toggle"},w={class:"field-with-badge"},E={class:"toggle-switch"},B=["checked"],V={__name:"SessionFormOptions",props:{mode:{type:String,default:"yolo"},model:{type:String,default:null},effortLevel:{type:String,default:null},thinkingEnabled:{type:Boolean,default:!0},startImmediately:{type:Boolean,default:!0},hideStartImmediately:{type:Boolean,default:!1}},emits:["update:mode","update:model","update:providerId","update:effortLevel","update:thinkingEnabled","update:startImmediately"],setup(o){return(d,e)=>(a(),i("div",g,[e[10]||(e[10]=t("label",{class:"form-label"},"Options",-1)),t("div",f,[t("div",v,[s(r,{"model-value":o.mode,"onUpdate:modelValue":e[0]||(e[0]=l=>d.$emit("update:mode",l))},null,8,["model-value"])]),t("div",b,[s(n,{"model-value":o.model,"onUpdate:modelValue":e[1]||(e[1]=l=>d.$emit("update:model",l)),"onUpdate:providerId":e[2]||(e[2]=l=>d.$emit("update:providerId",l))},null,8,["model-value"])]),t("div",c,[s(m,{"model-value":o.effortLevel,"onUpdate:modelValue":e[3]||(e[3]=l=>d.$emit("update:effortLevel",l))},null,8,["model-value"])]),t("div",k,[t("div",y,[t("label",h,[t("input",{type:"checkbox",checked:o.thinkingEnabled,onChange:e[4]||(e[4]=l=>d.$emit("update:thinkingEnabled",l.target.checked))},null,40,S),e[6]||(e[6]=t("span",{class:"toggle-slider"},null,-1))]),e[7]||(e[7]=t("span",{class:"toggle-label"},"Enable Thinking",-1))])]),o.hideStartImmediately?u("",!0):(a(),i("div",I,[t("div",w,[t("label",E,[t("input",{type:"checkbox",checked:o.startImmediately,onChange:e[5]||(e[5]=l=>d.$emit("update:startImmediately",l.target.checked))},null,40,B),e[8]||(e[8]=t("span",{class:"toggle-slider"},null,-1))]),e[9]||(e[9]=t("span",{class:"toggle-label"},"Start Immediately",-1))])]))])]))}},C=p(V,[["__scopeId","data-v-cbbbb3d9"]]);export{C as S};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as me,y as Ae,x as V,z as Ie,A as Be,n as A,B as Qe,C as Xe,_ as Ce,a as t,c as o,b as e,F as X,r as Z,u as v,E as ie,t as F,i as C,G as oe,k as Fe,g as Me,d as Q,w as ye,o as Pe,m as G,v as ke,p as Ee,f as de,j as ce,h as Ke,e as Ue,H as xe,q as Le,I as Ze,J as Ve,s as et}from"./index-BGAW2Nqa.js";import{u as De}from"./projects-D_C9dE9s.js";import{u as we}from"./sessions-Bs5FA6JZ.js";import{u as Re,a as Ge,f as tt,b as st}from"./SessionLogStream-DIndOyFR.js";import{a as Oe}from"./ApiClient-CcqJ-GAv.js";import{u as He}from"./commandButtons-D74TkPNU.js";import{S as qe}from"./SessionCard-CCapYVjy.js";import{S as nt,M as ot,A as at}from"./ArchiveConfirmModal-fgoEQhfq.js";import{u as We}from"./EffortLevelSelector-xE3gidpq.js";import{u as lt}from"./providers-BdvbPVdE.js";import{M as rt}from"./ModelSelector-B0RdlCHT.js";import{I as ze}from"./InterpolationHelp-0GoSBPgf.js";import{R as it}from"./ResizableTextarea-Cw6aL4rp.js";import{S as dt}from"./SessionFormOptions-Em7sQCGb.js";import{S as ut,a as ct}from"./SlashCommandWizard-C_cSgF-P.js";import"./settings-6Rw9xt-G.js";function mt(){const u=Ae({}),c=Ae({}),m=Ae({});async function p(r){const a=r.filter(g=>!u[g.id]&&!c[g.id]).map(g=>g.id);if(a.length!==0){for(const g of a)c[g]=!0,m[g]=!1;try{const g=await Oe.getSessionSummariesBatch(a);for(const i of a)g[i]&&(u[i]=g[i]),c[i]=!1}catch(g){console.warn("Failed to fetch summaries batch:",g.message);for(const i of a)m[i]=!0,c[i]=!1}}}async function l(r){var a;c[r]=!0,m[r]=!1;try{const g=await Oe.getSessionSummary(r);g&&(u[r]=g)}catch(g){((a=g.response)==null?void 0:a.status)!==404&&(console.warn(`Failed to fetch summary for session ${r}:`,g.message),m[r]=!0)}finally{c[r]=!1}}async function E(r){m[r]=!1,await l(r)}function R(r,a){u[r]=a,c[r]=!1,m[r]=!1}function _(r){delete u[r],delete c[r],delete m[r]}function S(r,a=400){let g=null;const i=me(r,()=>{clearTimeout(g),g=setTimeout(()=>{const j=r();p(j)},a)});return()=>{clearTimeout(g),i()}}return{summaries:u,loadingSummaries:c,summaryErrors:m,fetchSummariesBatch:p,fetchSummary:l,retryFetchSummary:E,updateSummary:R,cleanupSummary:_,watchSessionsForSummaries:S}}function Ye(){const u=we();function c(r){u.statusFilter===r?u.setStatusFilter(null):u.setStatusFilter(r)}function m(r){u.starredFilter===r?u.setStarredFilter(null):u.setStarredFilter(r)}function p(){u.starredFilter===null?u.setStarredFilter("starred"):u.starredFilter==="starred"?u.setStarredFilter("unstarred"):u.setStarredFilter(null)}const l=V(()=>u.starredFilter==="starred"?"Showing starred sessions only. Click to filter unstarred.":u.starredFilter==="unstarred"?"Showing unstarred sessions only. Click to show all.":"Showing all sessions. Click to filter by starred.");function E(){u.scheduledFilter===null?u.setScheduledFilter("scheduled"):u.scheduledFilter==="scheduled"?u.setScheduledFilter("not-scheduled"):u.setScheduledFilter(null)}const R=V(()=>u.scheduledFilter==="scheduled"?"Showing workflows with scheduled sessions. Click to filter non-scheduled.":u.scheduledFilter==="not-scheduled"?"Showing workflows without scheduled sessions. Click to show all.":"Showing all workflows. Click to filter by scheduled."),_=V(()=>{let r=u.groupedSessions;u.starredFilter==="starred"?r=r.filter($=>$.parent.starred):u.starredFilter==="unstarred"&&(r=r.filter($=>!$.parent.starred));const a=r.map($=>({group:$,status:u.getWorkflowAggregatedStatus($.parent.id)}));let g=a;u.scheduledFilter&&(g=a.filter(({status:$})=>{const T=$.scheduledCount>0;return u.scheduledFilter==="scheduled"?T:!T}));let i=0,j=0;for(const{status:$}of g)$.effectiveStatus==="running"?i++:j++;return{running:i,idle:j}}),S=V(()=>{let r=u.groupedSessions;return u.statusFilter&&(r=r.filter(a=>{const i=u.getWorkflowAggregatedStatus(a.parent.id).effectiveStatus;return u.statusFilter==="running"&&i==="running"||u.statusFilter==="idle"&&i==="idle"})),u.starredFilter==="starred"?r=r.filter(a=>a.parent.starred):u.starredFilter==="unstarred"&&(r=r.filter(a=>!a.parent.starred)),u.scheduledFilter&&(r=r.filter(a=>{const i=u.getWorkflowAggregatedStatus(a.parent.id).scheduledCount>0;return!!(u.scheduledFilter==="scheduled"&&i||u.scheduledFilter==="not-scheduled"&&!i)})),r});return{toggleFilter:c,toggleStarredFilter:m,toggleStarFilterIcon:p,starFilterTooltip:l,toggleScheduledFilterIcon:E,scheduledFilterTooltip:R,filteredGroupedSessions:S,statusFilterCounts:_}}function pt(u,c){const m=De(),p=we(),l=He(),E=Re(),{fetchSummariesBatch:R,updateSummary:_,cleanupSummary:S}=c,{onReconnect:r}=Ie();function a(f,n,B,b){var ue;const q=l.runs[f],H=p.sessions.find(ae=>ae.id===n),ee=(ue=H==null?void 0:H.latestCommandRuns)==null?void 0:ue.find(ae=>ae.runId===f),te=(q==null?void 0:q.startedAt)||(ee==null?void 0:ee.startedAt)||Date.now();l.runs[f]||(l.runs[f]={runId:f,buttonId:B,sessionId:n,status:"running",output:"",exitCode:null,startedAt:te,outputTruncated:!1}),l.appendOutput(f,b),p.updateSessionCommandRun(n,B,{buttonId:B,status:"running",runId:f,startedAt:te})}function g({runId:f,sessionId:n,buttonId:B,exitCode:b,output:q}){l.runs[f]||(l.runs[f]={runId:f,buttonId:B,sessionId:n,status:"running",output:"",exitCode:null,startedAt:Date.now(),outputTruncated:!1}),l.completeRun(f,b,q);const J=b===0?"success":"error";p.updateSessionCommandRun(n,B,{buttonId:B,status:J,exitCode:b,runId:f,completedAt:Date.now()})}function i(f,n,B,b){l.runs[f]||(l.runs[f]={runId:f,buttonId:B,sessionId:n,status:"running",output:"",exitCode:null,startedAt:Date.now(),outputTruncated:!1}),l.errorRun(f,b),p.updateSessionCommandRun(n,B,{buttonId:B,status:"error",runId:f,completedAt:Date.now()})}function j(f,n,B){const{onSessionCreated:b,onSessionUpdated:q,onSessionDeleted:J,onSessionSummaryUpdated:H,onCommandRunOutput:ee,onCommandRunComplete:te,onCommandRunError:ue,onCommandRunDeleted:ae,onKanbanBoardUpdated:pe,onKanbanCardMoved:le,onKanbanCardAdded:ve,onKanbanCardRemoved:fe}=f,D=[];return D.push(b(P=>{n.sessionsStore.addSessionToList(P)})),D.push(q(P=>{n.sessionsStore.updateSession(P)})),D.push(J(P=>{n.sessionsStore.removeSessionFromList(P),B.cleanupSummary(P)})),D.push(H((P,d)=>{B.updateSummary(P,d)})),D.push(ee(a)),D.push(te(g)),D.push(ue(i)),D.push(ae((P,d,s)=>{n.commandButtonsStore.clearRun(P),n.sessionsStore.removeSessionCommandRun(d,s)})),D.push(pe(P=>{n.kanbanStore.handleBoardUpdated(P)})),D.push(le((P,d,s,y)=>{n.kanbanStore.handleCardMoved(P,d,s,y)})),D.push(ve((P,d)=>{n.kanbanStore.handleCardAdded(P,d)})),D.push(fe((P,d)=>{n.kanbanStore.handleCardRemoved(P,d)})),D}const $=[];let T=null;const h=A(!1);let I=0;const Y=3e4,O=async()=>{if(document.visibilityState!=="visible")return;const f=Date.now();if(f-I<Y)return;I=f;const n=u.value;n&&(await p.fetchSessions(n,{silent:!0}),R(p.sessions))};return document.addEventListener("visibilitychange",O),me(u,async f=>{if(!f)return;h.value=!1,$.forEach(D=>D()),$.length=0,T&&(T(),T=null),await m.fetchProject(f),await p.fetchSessions(f),await l.fetchButtons(f),R(p.sessions),I=Date.now();const{subscribe:n,unsubscribe:B,onSessionCreated:b,onSessionUpdated:q,onSessionDeleted:J,onSessionSummaryUpdated:H,onCommandRunOutput:ee,onCommandRunComplete:te,onCommandRunError:ue,onCommandRunDeleted:ae,onKanbanBoardUpdated:pe,onKanbanCardMoved:le,onKanbanCardAdded:ve,onKanbanCardRemoved:fe}=Qe(f);T=B,n(),$.push(...j({onSessionCreated:b,onSessionUpdated:q,onSessionDeleted:J,onSessionSummaryUpdated:H,onCommandRunOutput:ee,onCommandRunComplete:te,onCommandRunError:ue,onCommandRunDeleted:ae,onKanbanBoardUpdated:pe,onKanbanCardMoved:le,onKanbanCardAdded:ve,onKanbanCardRemoved:fe},{sessionsStore:p,commandButtonsStore:l,kanbanStore:E},{updateSummary:_,cleanupSummary:S})),$.push(r(async()=>{const D=u.value;D&&(I=Date.now(),await p.fetchSessions(D,{silent:!0}),R(p.sessions))}))},{immediate:!0}),Be(()=>{$.forEach(f=>f()),T&&T(),document.removeEventListener("visibilitychange",O)}),{archivedLoaded:h}}function vt(){const u=we(),c=Ge(),m=A({}),p={},l=new Map,E=4;function R(i,j=0){fetch(`/api/sessions/${i}/streaming-state`).then($=>$.ok?$.json():null).then($=>{var T;if($&&((T=$.workLogs)!=null&&T.length||$.partialText||$.thinking)){c.hydrateSessionState(i,$);const h=l.get(i);h&&(clearTimeout(h.timeout),l.delete(i))}else _(i,j)}).catch(()=>{_(i,j)})}function _(i,j=0){if(j>=E||!m.value[i])return;const $=u.sessions.find(I=>I.id===i);if(!$||!["running","starting"].includes($.status))return;const T=1500*Math.pow(2,j),h=setTimeout(()=>{l.delete(i),R(i,j+1)},T);l.set(i,{count:j,timeout:h})}function S(i){if(m.value[i])return;const j=Xe(i),$=[];$.push(j.onWorkLog(T=>{c.addSessionWorkLog(i,T)})),$.push(j.onPartial(T=>{T&&c.setSessionPartialText(i,T)})),$.push(j.onThinkingPartial(T=>{T&&c.setPartialThinking(T,i)})),$.push(j.onChangesUpdate(T=>{c.setSessionFileCount(i,T)})),$.push(j.onStatus(T=>{["running","starting"].includes(T)?p[i]&&(clearTimeout(p[i]),delete p[i]):p[i]=setTimeout(()=>{delete p[i],c.clearSessionEphemeralState(i)},2e3)})),j.subscribe(),m.value[i]={subscription:j,cleanup:()=>{$.forEach(T=>T&&T()),j.unsubscribe()}},R(i)}function r(i){const j=m.value[i];j&&(j.cleanup(),delete m.value[i]),p[i]&&(clearTimeout(p[i]),delete p[i]);const $=l.get(i);$&&(clearTimeout($.timeout),l.delete(i))}me(()=>u.sessions.filter(i=>["running","starting"].includes(i.status)).map(i=>i.id),(i,j=[])=>{const $=i.filter(h=>!j.includes(h)),T=j.filter(h=>!i.includes(h));$.forEach(h=>S(h)),T.forEach(h=>r(h))},{immediate:!0});const{onReconnect:a}=Ie(),g=a(()=>{for(const i of Object.keys(m.value))R(i)});return Be(()=>{Object.keys(m.value).forEach(i=>r(i)),g()}),{activeSubscriptions:m}}const ft={class:"filters-container"},ht={class:"status-filters"},bt=["aria-label","onClick"],gt={class:"filter-label"},yt={class:"filter-count"},kt=["title"],St={key:0,class:"star-icon"},$t={key:1,class:"star-icon star-crossed"},Ct={key:2,class:"star-icon"},wt=["title"],Et={key:0,class:"schedule-icon"},_t={key:1,class:"schedule-icon schedule-crossed"},Tt={key:2,class:"schedule-icon"},jt={__name:"SessionFiltersPanel",props:{showStatusFilters:{type:Boolean,default:!0},showScheduledFilter:{type:Boolean,default:!0}},setup(u){const c=we(),{toggleFilter:m,toggleStarFilterIcon:p,starFilterTooltip:l,toggleScheduledFilterIcon:E,scheduledFilterTooltip:R,statusFilterCounts:_}=Ye();return(S,r)=>(t(),o("div",ft,[e("div",ht,[u.showStatusFilters?(t(),o(X,{key:0},Z(["running","idle"],a=>e("button",{key:a,class:ie(["filter-btn",{active:v(c).statusFilter===a,"filter-btn-empty":v(_)[a]===0}]),"aria-label":`${a} (${v(_)[a]})`,onClick:g=>v(m)(a)},[e("span",gt,F(a),1),e("span",yt,F(v(_)[a]),1)],10,bt)),64)):C("",!0),e("button",{class:ie(["filter-btn star-btn",{"star-filter-active":v(c).starredFilter==="starred","star-filter-unstarred":v(c).starredFilter==="unstarred","star-filter-all":v(c).starredFilter===null}]),title:v(l),onClick:r[0]||(r[0]=(...a)=>v(p)&&v(p)(...a))},[v(c).starredFilter==="starred"?(t(),o("span",St,"⭐")):v(c).starredFilter==="unstarred"?(t(),o("span",$t,"⭐")):(t(),o("span",Ct,"☆"))],10,kt),u.showScheduledFilter?(t(),o("button",{key:1,class:ie(["filter-btn schedule-btn",{"schedule-filter-active":v(c).scheduledFilter==="scheduled","schedule-filter-not-scheduled":v(c).scheduledFilter==="not-scheduled","schedule-filter-all":v(c).scheduledFilter===null}]),title:v(R),onClick:r[1]||(r[1]=(...a)=>v(E)&&v(E)(...a))},[v(c).scheduledFilter==="scheduled"?(t(),o("span",Et,"⏰")):v(c).scheduledFilter==="not-scheduled"?(t(),o("span",_t,"⏰")):(t(),o("span",Tt,"⏰"))],10,wt)):C("",!0)])]))}},Ne=Ce(jt,[["__scopeId","data-v-2c9a63d9"]]),Ft={key:0,class:"skeleton-list"},Mt={key:1,class:"error-message"},Rt={key:2,class:"empty-state"},At={key:3,class:"session-list"},xt={key:0,class:"load-more-container"},Lt=["disabled"],Ot={key:0},Bt={key:1},Pt={__name:"ArchivedTabContent",props:{summaries:{type:Object,required:!0},loadingSummaries:{type:Object,required:!0},summaryErrors:{type:Object,required:!0}},emits:["retrySummary","unarchive","loadMore"],setup(u){const c=we(),m=V(()=>{const{total:p,offset:l}=c.archivedPagination;return Math.max(0,p-l)});return(p,l)=>(t(),o("div",null,[v(c).archivedPagination.loading&&v(c).archivedSessions.length===0?(t(),o("div",Ft,[(t(),o(X,null,Z(3,E=>e("div",{key:E,class:"skeleton card",style:{height:"120px"}})),64))])):v(c).error?(t(),o("div",Mt,F(v(c).error),1)):v(c).archivedSessions.length===0?(t(),o("div",Rt,[...l[3]||(l[3]=[e("p",null,"No archived sessions. Archive completed sessions to keep your session list tidy.",-1)])])):(t(),o("div",At,[(t(!0),o(X,null,Z(v(c).archivedSessions,E=>(t(),oe(qe,{key:E.id,session:E,"show-summary":!0,summary:u.summaries[E.id],"summary-loading":u.loadingSummaries[E.id],"summary-error":u.summaryErrors[E.id],"show-unarchive":!0,"kanban-enabled":!1,"pr-url":E.prUrl,"pr-summary":u.summaries[E.id],onRetrySummary:l[0]||(l[0]=R=>p.$emit("retrySummary",R)),onUnarchive:l[1]||(l[1]=R=>p.$emit("unarchive",R))},null,8,["session","summary","summary-loading","summary-error","pr-url","pr-summary"]))),128)),v(c).archivedPagination.hasMore?(t(),o("div",xt,[e("button",{class:"btn btn-secondary",disabled:v(c).archivedPagination.loading,onClick:l[2]||(l[2]=E=>p.$emit("loadMore"))},[v(c).archivedPagination.loading?(t(),o("span",Ot,"Loading...")):(t(),o("span",Bt,"Load More ("+F(m.value)+" remaining)",1))],8,Lt)])):C("",!0)]))]))}},Ut=Ce(Pt,[["__scopeId","data-v-c0906664"]]),Dt={class:"scheduled-session-card card"},Vt={class:"card-header"},Nt={class:"session-info"},It={class:"session-name"},Kt={class:"timing-info"},Gt={class:"timing-item"},Ht={class:"timing-details"},qt={class:"timing-text"},Wt={class:"timing-absolute"},zt={key:0,class:"timing-item"},Yt={class:"timing-details"},Jt={class:"timing-absolute"},Qt={class:"card-actions"},Xt=["disabled"],Zt=["disabled"],es={__name:"ScheduledSessionCard",props:{session:{type:Object,required:!0}},setup(u){const c=u,m=we(),p=Fe(),l=A(!1),E=A(!1),R=V(()=>{const a=new Date(c.session.scheduledAt);return tt(a,{addSuffix:!0})}),_=V(()=>{const a=new Date(c.session.scheduledAt);return st(a,"MMM d, h:mm a")});async function S(){if(confirm("Cancel this scheduled session?")){l.value=!0;try{await m.updateSessionFields(c.session.id,{status:"stopped"}),p.success("Session cancelled")}catch(a){console.error("Failed to cancel session:",a),p.error(`Failed to cancel session: ${a.message}`)}finally{l.value=!1}}}function r(){}return(a,g)=>{const i=Me("router-link");return t(),o("div",Dt,[e("div",Vt,[e("div",Nt,[Q(i,{to:`/sessions/${u.session.id}`,class:"session-name-link"},{default:ye(()=>[e("h3",It,F(u.session.name),1)]),_:1},8,["to"])]),g[2]||(g[2]=e("div",{class:"status-badge-container"},[e("span",{class:"status-badge status-scheduled"},"scheduled")],-1))]),e("div",Kt,[e("div",Gt,[g[3]||(g[3]=e("span",{class:"timing-icon"},"⏰",-1)),e("div",Ht,[e("span",qt,F(R.value),1),e("span",Wt,F(_.value),1)])]),u.session.autoRescheduleEnabled?(t(),o("div",zt,[g[5]||(g[5]=e("span",{class:"timing-icon"},"🔄",-1)),e("div",Yt,[g[4]||(g[4]=e("span",{class:"timing-text"},"Auto-reschedule",-1)),e("span",Jt," Attempt "+F(u.session.rescheduleCount)+"/"+F(u.session.maxRescheduleCount||"∞"),1)])])):C("",!0)]),e("div",Qt,[e("button",{class:"btn btn-secondary btn-small",disabled:l.value,onClick:g[0]||(g[0]=j=>E.value=!0)}," Edit Schedule ",8,Xt),e("button",{class:"btn btn-danger btn-small",disabled:l.value,onClick:S}," Cancel ",8,Zt)]),Q(nt,{"is-open":E.value,session:u.session,onClose:g[1]||(g[1]=j=>E.value=!1),onSaved:r},null,8,["is-open","session"])])}}},ts=Ce(es,[["__scopeId","data-v-d41e6b57"]]),ss={key:0,class:"skeleton-list"},ns={key:1,class:"empty-state"},os={key:2,class:"session-list"},as={__name:"ScheduledTabContent",props:{sessions:{type:Array,required:!0},loading:{type:Boolean,default:!1}},setup(u){return(c,m)=>(t(),o("div",null,[u.loading?(t(),o("div",ss,[(t(),o(X,null,Z(3,p=>e("div",{key:p,class:"skeleton card",style:{height:"120px"}})),64))])):u.sessions.length===0?(t(),o("div",ns,[...m[0]||(m[0]=[e("p",null,"No scheduled sessions. Use scheduling options when creating a new session to schedule it for later.",-1)])])):(t(),o("div",os,[(t(!0),o(X,null,Z(u.sessions,p=>(t(),oe(ts,{key:p.id,session:p},null,8,["session"]))),128))]))]))}},ls=Ce(as,[["__scopeId","data-v-75cf4e60"]]),rs={class:"templates-panel"},is={class:"templates-header"},ds={key:0,class:"template-form card","data-testid":"template-form"},us={class:"form-group"},cs={class:"form-group"},ms={class:"form-group"},ps=["disabled"],vs={class:"form-group"},fs=["value"],hs={class:"form-group"},bs={class:"form-group"},gs={class:"form-group"},ys={class:"form-group"},ks={class:"form-actions"},Ss=["disabled"],$s={key:0,class:"loading-spinner"},Cs={key:1,class:"loading-state"},ws={key:2},Es={key:0,class:"template-section"},_s={class:"templates-list"},Ts={class:"template-header"},js={class:"template-name"},Fs={class:"template-prompt"},Ms={class:"template-meta"},Rs={key:0,class:"meta-badge"},As={key:1,class:"meta-badge"},xs={key:2,class:"meta-badge"},Ls={key:3,class:"meta-badge"},Os={key:4,class:"meta-badge meta-badge-chain"},Bs={key:1,class:"template-section"},Ps={class:"templates-list"},Us={class:"template-header"},Ds={class:"template-name"},Vs={class:"template-prompt"},Ns={class:"template-meta"},Is={key:0,class:"meta-badge"},Ks={key:1,class:"meta-badge"},Gs={key:2,class:"meta-badge"},Hs={key:3,class:"meta-badge"},qs={key:4,class:"meta-badge meta-badge-chain"},Ws={key:2,class:"empty-state"},zs={__name:"TemplatesPanel",props:{projectId:{type:String,required:!0}},setup(u,{expose:c}){const m=u,p=We(),l=Fe(),E=lt(),R=A(!1),_=A(!1),S=A({name:"",prompt:"",isGlobal:!1,nextTemplateId:null,thinkingEnabled:null,gitBranch:"",model:null,mode:null}),r=V(()=>p.loading),a=V(()=>p.projectTemplates),g=V(()=>p.globalTemplates),i=V(()=>[...p.projectTemplates,...p.globalTemplates]);Pe(async()=>{E.providers.length===0&&await E.fetchProviders(),p.fetchProjectTemplates(m.projectId)}),me(()=>m.projectId,f=>{p.fetchProjectTemplates(f)});function j(f,n=100){return f.length<=n?f:`${f.substring(0,n)}...`}function $(f){const n=p.getTemplateById(f);return(n==null?void 0:n.name)||"Unknown"}function T(f){var n;for(const B of E.providers){const b=(n=B.models)==null?void 0:n.find(q=>q.modelId===f);if(b)return B.isBuiltIn?b.displayName:b.modelId}return f}function h(){S.value={name:"",prompt:"",isGlobal:!1,nextTemplateId:null,thinkingEnabled:null,gitBranch:"",model:null,mode:null}}function I(){R.value=!0}function Y(){R.value=!1,h()}async function O(){if(!_.value){_.value=!0;try{const f={name:S.value.name,prompt:S.value.prompt,nextTemplateId:S.value.nextTemplateId||void 0,thinkingEnabled:S.value.thinkingEnabled,gitBranch:S.value.gitBranch||void 0,model:S.value.model,mode:S.value.mode};S.value.isGlobal?(await p.createGlobalTemplate(f),l.success("Global template created")):(await p.createProjectTemplate(m.projectId,f),l.success("Template created")),Y()}catch(f){l.error(f.message)}finally{_.value=!1}}}return c({formData:S,getModelName:T,resetForm:h}),(f,n)=>{const B=Me("router-link");return t(),o("div",rs,[e("div",is,[n[8]||(n[8]=e("h2",null,"Session Templates",-1)),R.value?C("",!0):(t(),o("button",{key:0,class:"btn btn-primary btn-sm","data-testid":"new-template-btn",onClick:I}," New Template "))]),R.value?(t(),o("div",ds,[n[23]||(n[23]=e("h3",null,"Create Template",-1)),e("form",{onSubmit:ce(O,["prevent"])},[e("div",us,[n[9]||(n[9]=e("label",{class:"form-label"},"Name",-1)),G(e("input",{"onUpdate:modelValue":n[0]||(n[0]=b=>S.value.name=b),type:"text",class:"form-input",placeholder:"Template name",required:""},null,512),[[ke,S.value.name]])]),e("div",cs,[n[10]||(n[10]=e("label",{class:"form-label"},"Prompt",-1)),G(e("textarea",{"onUpdate:modelValue":n[1]||(n[1]=b=>S.value.prompt=b),class:"form-input form-textarea",placeholder:"Session prompt. Use {{rootSession.summary}} to reference root session data.",rows:"4",required:""},null,512),[[ke,S.value.prompt]]),Q(ze)]),e("div",ms,[n[12]||(n[12]=e("label",{class:"form-label"},"Scope",-1)),G(e("select",{"onUpdate:modelValue":n[2]||(n[2]=b=>S.value.isGlobal=b),class:"form-input",disabled:f.editingTemplate},[...n[11]||(n[11]=[e("option",{value:!1}," Project Only ",-1),e("option",{value:!0}," Global (all projects) ",-1)])],8,ps),[[Ee,S.value.isGlobal]])]),e("div",vs,[n[14]||(n[14]=e("label",{class:"form-label"},"Next Template (Optional)",-1)),G(e("select",{"onUpdate:modelValue":n[3]||(n[3]=b=>S.value.nextTemplateId=b),class:"form-input"},[n[13]||(n[13]=e("option",{value:null}," None ",-1)),(t(!0),o(X,null,Z(i.value,b=>(t(),o("option",{key:b.id,value:b.id},F(b.name)+" "+F(b.projectId?"":"(Global)"),9,fs))),128))],512),[[Ee,S.value.nextTemplateId]]),n[15]||(n[15]=e("p",{class:"form-help"}," Chain another template to run after this one completes. ",-1))]),e("div",hs,[n[16]||(n[16]=e("label",{class:"form-label"},"Model",-1)),Q(rt,{modelValue:S.value.model,"onUpdate:modelValue":n[4]||(n[4]=b=>S.value.model=b),"allow-empty":!0,"empty-label":"Inherit from root session"},null,8,["modelValue"])]),e("div",bs,[n[18]||(n[18]=e("label",{class:"form-label",for:"create-mode"},"Mode",-1)),G(e("select",{id:"create-mode","onUpdate:modelValue":n[5]||(n[5]=b=>S.value.mode=b),class:"form-input","data-testid":"mode-select"},[...n[17]||(n[17]=[e("option",{value:null}," Inherit from root session ",-1),e("option",{value:"plan"}," Plan ",-1),e("option",{value:"standard"}," Standard ",-1),e("option",{value:"yolo"}," YOLO ",-1)])],512),[[Ee,S.value.mode]])]),e("div",gs,[n[20]||(n[20]=e("label",{class:"form-label",for:"create-thinking"},"Extended Thinking",-1)),G(e("select",{id:"create-thinking","onUpdate:modelValue":n[6]||(n[6]=b=>S.value.thinkingEnabled=b),class:"form-input","data-testid":"thinking-select"},[...n[19]||(n[19]=[e("option",{value:null}," Inherit from root session ",-1),e("option",{value:!0}," Enabled ",-1),e("option",{value:!1}," Disabled ",-1)])],512),[[Ee,S.value.thinkingEnabled]])]),e("div",ys,[n[21]||(n[21]=e("label",{class:"form-label"},"Git Branch (Optional)",-1)),G(e("input",{"onUpdate:modelValue":n[7]||(n[7]=b=>S.value.gitBranch=b),type:"text",class:"form-input",placeholder:"Leave empty to inherit from root session"},null,512),[[ke,S.value.gitBranch]])]),e("div",ks,[e("button",{type:"button",class:"btn","data-testid":"cancel-btn",onClick:Y}," Cancel "),e("button",{type:"submit",class:"btn btn-primary",disabled:_.value,"data-testid":"submit-btn"},[_.value?(t(),o("span",$s)):C("",!0),n[22]||(n[22]=de(" Create ",-1))],8,Ss)])],32)])):C("",!0),r.value?(t(),o("div",Cs,[...n[24]||(n[24]=[e("span",{class:"loading-spinner"},null,-1),de(" Loading templates... ",-1)])])):(t(),o("div",ws,[a.value.length>0?(t(),o("div",Es,[n[25]||(n[25]=e("h3",{class:"section-title"}," Project Templates ",-1)),e("div",_s,[(t(!0),o(X,null,Z(a.value,b=>(t(),oe(B,{key:b.id,to:`/projects/${u.projectId}/templates/${b.id}`,class:"template-card card","data-testid":`template-card-${b.id}`},{default:ye(()=>[e("div",Ts,[e("h4",js,F(b.name),1)]),e("p",Fs,F(j(b.prompt)),1),e("div",Ms,[b.thinkingEnabled?(t(),o("span",Rs,"Thinking")):C("",!0),b.gitBranch?(t(),o("span",As,F(b.gitBranch),1)):C("",!0),b.model?(t(),o("span",xs,F(T(b.model)),1)):C("",!0),b.mode?(t(),o("span",Ls,F(b.mode),1)):C("",!0),b.nextTemplateId?(t(),o("span",Os," Chains to: "+F($(b.nextTemplateId)),1)):C("",!0)])]),_:2},1032,["to","data-testid"]))),128))])])):C("",!0),g.value.length>0?(t(),o("div",Bs,[n[27]||(n[27]=e("h3",{class:"section-title"}," Global Templates ",-1)),e("div",Ps,[(t(!0),o(X,null,Z(g.value,b=>(t(),oe(B,{key:b.id,to:`/projects/${u.projectId}/templates/${b.id}`,class:"template-card card","data-testid":`template-card-${b.id}`},{default:ye(()=>[e("div",Us,[e("h4",Ds,F(b.name),1)]),e("p",Vs,F(j(b.prompt)),1),e("div",Ns,[n[26]||(n[26]=e("span",{class:"meta-badge meta-badge-global"},"Global",-1)),b.thinkingEnabled?(t(),o("span",Is,"Thinking")):C("",!0),b.gitBranch?(t(),o("span",Ks,F(b.gitBranch),1)):C("",!0),b.model?(t(),o("span",Gs,F(T(b.model)),1)):C("",!0),b.mode?(t(),o("span",Hs,F(b.mode),1)):C("",!0),b.nextTemplateId?(t(),o("span",qs," Chains to: "+F($(b.nextTemplateId)),1)):C("",!0)])]),_:2},1032,["to","data-testid"]))),128))])])):C("",!0),a.value.length===0&&g.value.length===0&&!R.value?(t(),o("div",Ws,[n[28]||(n[28]=e("p",null,"No templates yet. Create a template to automate session workflows.",-1)),e("button",{class:"btn btn-primary","data-testid":"create-template-btn",onClick:I}," Create Template ")])):C("",!0)]))])}}},Ys=Ce(zs,[["__scopeId","data-v-d08b4ac0"]]),Js={class:"command-buttons-panel"},Qs={class:"panel-header"},Xs={key:0,class:"loading-state"},Zs={key:1,class:"error-message"},en={key:2,class:"empty-state"},tn={key:3,class:"buttons-table"},sn=["onClick"],nn={class:"col-label"},on={class:"col-command"},an={class:"col-order"},ln=["onClick"],rn={class:"modal-body"},dn={class:"modal-footer"},un={__name:"CommandButtonsPanel",props:{projectId:{type:String,required:!0}},setup(u){const c=u,m=Ke(),p=He(),l=A(null),E=r=>r.length>50?`${r.substring(0,50)}...`:r,R=r=>{m.push(`/projects/${c.projectId}/command-buttons/${r.id}`)},_=r=>{l.value=r},S=async()=>{if(l.value)try{await p.deleteButton(c.projectId,l.value.id),l.value=null}catch(r){console.error("Failed to delete button:",r)}};return(r,a)=>{const g=Me("router-link");return t(),o("div",Js,[e("div",Qs,[a[5]||(a[5]=e("h3",null,"Command Buttons",-1)),Q(g,{to:`/projects/${u.projectId}/command-buttons/new`,class:"btn btn-primary btn-sm"},{default:ye(()=>[...a[4]||(a[4]=[de(" + New Command Button ",-1)])]),_:1},8,["to"])]),v(p).loading?(t(),o("div",Xs,[...a[6]||(a[6]=[e("span",{class:"loading-spinner"},null,-1),de(" Loading command buttons... ",-1)])])):v(p).error?(t(),o("div",Zs,F(v(p).error),1)):v(p).buttons.length===0?(t(),o("div",en,[a[8]||(a[8]=e("p",null,"No command buttons configured yet.",-1)),Q(g,{to:`/projects/${u.projectId}/command-buttons/new`,class:"btn btn-primary"},{default:ye(()=>[...a[7]||(a[7]=[de(" Create First Button ",-1)])]),_:1},8,["to"])])):(t(),o("div",tn,[a[9]||(a[9]=Ue('<div class="table-header" data-v-990a48bf><div class="col-label" data-v-990a48bf> Label </div><div class="col-command" data-v-990a48bf> Command </div><div class="col-order" data-v-990a48bf> Sort Order </div><div class="col-actions" data-v-990a48bf> Actions </div></div>',1)),(t(!0),o(X,null,Z(v(p).buttons,i=>(t(),o("div",{key:i.id,class:"table-row",onClick:j=>R(i)},[e("div",nn,F(i.label),1),e("div",on,[e("code",null,F(E(i.command)),1)]),e("div",an,F(i.sortOrder),1),e("div",{class:"col-actions",onClick:a[0]||(a[0]=ce(()=>{},["stop"]))},[e("button",{class:"btn btn-sm btn-outline-danger",onClick:j=>_(i)}," Delete ",8,ln)])],8,sn))),128))])),l.value?(t(),o("div",{key:4,class:"modal-overlay",onClick:a[3]||(a[3]=i=>l.value=null)},[e("div",{class:"modal-dialog",onClick:a[2]||(a[2]=ce(()=>{},["stop"]))},[a[12]||(a[12]=e("div",{class:"modal-header"},[e("h4",null,"Delete Command Button")],-1)),e("div",rn,[e("p",null,[a[10]||(a[10]=de('Are you sure you want to delete the command button "',-1)),e("strong",null,F(l.value.label),1),a[11]||(a[11]=de('"?',-1))])]),e("div",dn,[e("button",{class:"btn btn-outline-secondary",onClick:a[1]||(a[1]=i=>l.value=null)}," Cancel "),e("button",{class:"btn btn-danger",onClick:S}," Delete ")])])])):C("",!0)])}}},cn=Ce(un,[["__scopeId","data-v-990a48bf"]]),mn={class:"modal-content"},pn={class:"modal-header"},vn={class:"modal-title"},fn={class:"modal-body"},hn={class:"form-group"},bn={class:"sessions-list"},gn={key:0,class:"loading-state"},yn={key:1,class:"empty-state"},kn={key:0},Sn={key:1},$n=["onClick"],Cn={class:"session-info"},wn={class:"session-name"},En={class:"session-meta"},_n={key:0,class:"session-mode"},Tn={class:"session-date"},jn={class:"modal-footer"},Fn=["disabled"],Mn={__name:"AddSessionToLaneModal",props:{isOpen:{type:Boolean,default:!1},projectId:{type:String,default:""},laneId:{type:String,default:""},laneName:{type:String,default:""}},emits:["close","update:isOpen","added"],setup(u,{emit:c}){const m=u,p=c;we();const l=Re(),E=Fe(),R=A(!1),_=A(!1),S=A(""),r=A(null),a=A([]),g=V(()=>{let O=a.value.filter(f=>!l.isSessionOnBoard(f.id));if(O=O.filter(f=>!f.parentSessionId),S.value.trim()){const f=S.value.toLowerCase();O=O.filter(n=>{var B;return(B=n.name)==null?void 0:B.toLowerCase().includes(f)})}return O});function i(O){switch(O){case"running":case"starting":return"●";case"waiting":return"◐";case"completed":return"✓";case"error":return"✕";case"stopped":return"■";case"scheduled":return"⏰";default:return"○"}}function j(O){return O?new Date(O).toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}function $(O){r.value=O}function T(){}function h(){p("update:isOpen",!1),p("close"),S.value="",r.value=null}async function I(){if(m.projectId){R.value=!0;try{const O=await Oe.getProjectSessions(m.projectId,!1,null);a.value=Array.isArray(O)?O:(O==null?void 0:O.sessions)||[]}catch(O){console.error("Failed to load sessions:",O),E.error("Failed to load sessions"),a.value=[]}finally{R.value=!1}}}async function Y(){if(!(!r.value||!m.laneId)){_.value=!0;try{await l.addSessionToBoard(m.projectId,r.value,m.laneId),E.success("Session added to board"),p("added",r.value),h()}catch(O){console.error("Failed to add session to board:",O),E.error(O.message||"Failed to add session to board")}finally{_.value=!1}}}return me(()=>m.isOpen,O=>{O&&I()},{immediate:!0}),(O,f)=>u.isOpen?(t(),o("div",{key:0,class:"modal-backdrop",onClick:ce(h,["self"])},[e("div",mn,[e("div",pn,[e("h2",vn," Add Session to "+F(u.laneName),1),e("button",{class:"close-btn","aria-label":"Close",onClick:h}," × ")]),e("div",fn,[e("div",hn,[f[1]||(f[1]=e("label",{for:"session-search",class:"form-label"},"Search Sessions",-1)),G(e("input",{id:"session-search","onUpdate:modelValue":f[0]||(f[0]=n=>S.value=n),type:"text",class:"form-input",placeholder:"Search by name...",onInput:T},null,544),[[ke,S.value]])]),e("div",bn,[R.value?(t(),o("div",gn,[...f[2]||(f[2]=[e("span",{class:"loading-spinner"},null,-1),de(" Loading sessions... ",-1)])])):g.value.length===0?(t(),o("div",yn,[S.value?(t(),o("p",kn,' No sessions matching "'+F(S.value)+'" ',1)):(t(),o("p",Sn," No available sessions to add. "))])):(t(!0),o(X,{key:2},Z(g.value,n=>(t(),o("div",{key:n.id,class:ie(["session-item",{selected:r.value===n.id}]),onClick:B=>$(n.id)},[e("div",{class:ie(["session-status",`status-${n.status}`])},F(i(n.status)),3),e("div",Cn,[e("div",wn,F(n.name),1),e("div",En,[n.mode?(t(),o("span",_n,F(n.mode),1)):C("",!0),e("span",Tn,F(j(n.updatedAt||n.createdAt)),1)])])],10,$n))),128))])]),e("div",jn,[e("button",{class:"btn btn-secondary",onClick:h}," Cancel "),e("button",{class:"btn btn-primary",disabled:!r.value||_.value,onClick:Y},F(_.value?"Adding...":"Add to Lane"),9,Fn)])])])):C("",!0)}},Je=Ce(Mn,[["__scopeId","data-v-916a53c8"]]),Rn={class:"modal-content"},An={class:"modal-body"},xn={class:"form-group"},Ln={key:0,class:"form-group"},On={class:"lane-position-controls"},Bn=["disabled"],Pn={class:"lane-position-label"},Un=["disabled"],Dn={class:"form-group"},Vn={class:"automation-options"},Nn={class:"radio-option"},In={class:"radio-option"},Kn={class:"radio-option"},Gn={key:1,class:"form-group"},Hn={key:0,label:"Project Templates"},qn=["value"],Wn={key:1,label:"Global Templates"},zn=["value"],Yn={key:2,class:"form-group"},Jn={class:"prompt-actions-row"},Qn={key:4,class:"agent-settings-section"},Xn={key:0,class:"agent-settings-body"},Zn={class:"form-group"},eo={class:"toggle-switch-row"},to={class:"toggle-switch"},so={key:0,class:"reschedule-settings"},no={class:"form-group"},oo={class:"checkbox-option"},ao={class:"checkbox-option"},lo={class:"form-group"},ro={class:"form-group"},io={class:"form-group"},uo={class:"form-group"},co={class:"danger-zone"},mo=["disabled"],po={class:"modal-footer"},vo=["disabled"],fo={__name:"LaneSettingsModal",props:{isOpen:{type:Boolean,default:!1},projectId:{type:String,default:""},lane:{type:Object,default:null}},emits:["close","update:isOpen","updated","deleted"],setup(u,{emit:c}){const m=u,p=c,l=Re(),E=We(),R=Fe(),_=De(),S=A(!1),r=A(!1),a=A("none"),g=A(!1),i=A(!1),j=A(null),$=A(-1),T=A(-1),h=Ae({name:"",onEnterTemplateId:null,onEnterPrompt:"",onEnterMode:null,onEnterModel:null,onEnterEffortLevel:null,onEnterThinkingEnabled:null,onEnterAutoRescheduleEnabled:!1,onEnterRescheduleDelayMinutes:15,onEnterRescheduleOnTokenLimit:!0,onEnterRescheduleOnServiceError:!0,onEnterMaxRescheduleCount:null,onEnterMaxTotalTokens:null,onEnterRescheduleAtTokenCount:null}),I=V(()=>E.projectTemplates),Y=V(()=>E.globalTemplates),O=V(()=>{const d=_.getProjectById(m.projectId);return(d==null?void 0:d.workingDirectory)||null}),f=V(()=>T.value),n=V(()=>{var d,s;return((s=(d=l.board)==null?void 0:d.lanes)==null?void 0:s.length)||0}),B=V(()=>!(!h.name.trim()||a.value==="template"&&!h.onEnterTemplateId||a.value==="prompt"&&!h.onEnterPrompt.trim()));function b(d){return{onEnterAutoRescheduleEnabled:d.onEnterAutoRescheduleEnabled||!1,onEnterRescheduleDelayMinutes:d.onEnterRescheduleDelayMinutes||15,onEnterRescheduleOnTokenLimit:d.onEnterRescheduleOnTokenLimit??!0,onEnterRescheduleOnServiceError:d.onEnterRescheduleOnServiceError??!0,onEnterMaxRescheduleCount:d.onEnterMaxRescheduleCount||null,onEnterMaxTotalTokens:d.onEnterMaxTotalTokens||null,onEnterRescheduleAtTokenCount:d.onEnterRescheduleAtTokenCount||null}}function q(d){return{name:d.name||"",onEnterTemplateId:d.onEnterTemplateId||null,onEnterPrompt:d.onEnterPrompt||"",onEnterMode:d.onEnterMode||null,onEnterModel:d.onEnterModel||null,onEnterEffortLevel:d.onEnterEffortLevel||null,onEnterThinkingEnabled:d.onEnterThinkingEnabled??null,...b(d)}}function J(d){return d.onEnterTemplateId?"template":d.onEnterPrompt?"prompt":"none"}function H(d){return!!(d.onEnterMode||d.onEnterModel||d.onEnterEffortLevel||d.onEnterThinkingEnabled!==null||d.onEnterAutoRescheduleEnabled)}function ee(){var d,s;if(m.lane){const y=q(m.lane);Object.assign(h,y),a.value=J(m.lane),g.value=H(h);const be=((s=(d=l.board)==null?void 0:d.lanes)==null?void 0:s.findIndex(L=>L.id===m.lane.id))??-1;$.value=be,T.value=be}else{const y=q({});Object.assign(h,y),a.value="none",g.value=!1,$.value=-1,T.value=-1}}function te(){T.value=$.value,p("update:isOpen",!1),p("close")}function ue({text:d}){const s=j.value;if(s){const y=s.selectionStart,be=s.selectionEnd,L=h.onEnterPrompt.substring(0,y),k=h.onEnterPrompt.substring(be);h.onEnterPrompt=L+d+k,Ze(()=>{s.selectionStart=s.selectionEnd=y+d.length,s.focus()})}}function ae(d){const s=T.value;s<0||s===d||(T.value=d)}function pe(){return{onEnterTemplateId:null,onEnterPrompt:null,onEnterMode:null,onEnterModel:null,onEnterEffortLevel:null,onEnterThinkingEnabled:null,onEnterAutoRescheduleEnabled:!1,onEnterRescheduleDelayMinutes:15,onEnterRescheduleOnTokenLimit:!0,onEnterRescheduleOnServiceError:!0,onEnterMaxRescheduleCount:null,onEnterMaxTotalTokens:null,onEnterRescheduleAtTokenCount:null}}function le(d){return{...pe(),onEnterTemplateId:d.onEnterTemplateId,onEnterPrompt:null}}function ve(d){return{onEnterTemplateId:null,onEnterPrompt:d.onEnterPrompt.trim(),onEnterMode:d.onEnterMode,onEnterModel:d.onEnterModel,onEnterEffortLevel:d.onEnterEffortLevel,onEnterThinkingEnabled:d.onEnterThinkingEnabled,onEnterAutoRescheduleEnabled:d.onEnterAutoRescheduleEnabled,onEnterRescheduleDelayMinutes:d.onEnterRescheduleDelayMinutes,onEnterRescheduleOnTokenLimit:d.onEnterRescheduleOnTokenLimit,onEnterRescheduleOnServiceError:d.onEnterRescheduleOnServiceError,onEnterMaxRescheduleCount:d.onEnterMaxRescheduleCount,onEnterMaxTotalTokens:d.onEnterMaxTotalTokens,onEnterRescheduleAtTokenCount:d.onEnterRescheduleAtTokenCount}}async function fe(d,s,y,be){var M;if(y===s||y<0)return;const L=(M=l.board)==null?void 0:M.lanes;if(!L||L.length<=1)return;const k=L.map(w=>w.id);k.splice(s,1),k.splice(y,0,d.id),await l.reorderLanes(be,k)}async function D(){if(!(!m.lane||!B.value)){S.value=!0;try{const d={name:h.name.trim()};a.value==="template"?Object.assign(d,le(h)):a.value==="prompt"?Object.assign(d,ve(h)):Object.assign(d,pe()),await fe(m.lane,$.value,T.value,m.projectId),await l.updateLane(m.projectId,m.lane.id,d),R.success("Lane settings saved"),p("updated"),te()}catch(d){console.error("Failed to save lane settings:",d),R.error(d.message||"Failed to save lane settings")}finally{S.value=!1}}}async function P(){if(m.lane&&confirm(`Are you sure you want to delete the "${m.lane.name}" lane? This cannot be undone.`)){r.value=!0;try{await l.deleteLane(m.projectId,m.lane.id),R.success("Lane deleted"),p("deleted"),te()}catch(d){console.error("Failed to delete lane:",d),R.error(d.message||"Failed to delete lane")}finally{r.value=!1}}}return me(()=>m.isOpen,d=>{d&&(ee(),m.projectId&&E.projectTemplates.length===0&&E.globalTemplates.length===0&&E.fetchProjectTemplates(m.projectId))},{immediate:!0}),me(()=>m.lane,()=>{m.isOpen&&ee()}),me(()=>{var d;return(d=l.board)==null?void 0:d.lanes},d=>{if(m.isOpen&&m.lane&&d){const s=d.findIndex(y=>y.id===m.lane.id);s>=0&&($.value=s,T.value=s)}},{deep:!0}),(d,s)=>u.isOpen?(t(),o("div",{key:0,class:"modal-backdrop",onClick:ce(te,["self"])},[e("div",Rn,[e("div",{class:"modal-header"},[s[22]||(s[22]=e("h2",{class:"modal-title"}," Lane Settings ",-1)),e("button",{class:"close-btn","aria-label":"Close",onClick:te}," × ")]),e("div",An,[e("div",xn,[s[23]||(s[23]=e("label",{for:"lane-name",class:"form-label"},"Lane Name",-1)),G(e("input",{id:"lane-name","onUpdate:modelValue":s[0]||(s[0]=y=>h.name=y),type:"text",class:"form-input",placeholder:"Enter lane name"},null,512),[[ke,h.name]])]),n.value>1?(t(),o("div",Ln,[s[26]||(s[26]=e("label",{class:"form-label"},"Position",-1)),e("div",On,[e("button",{class:"btn btn-icon",disabled:f.value<=0,title:"Move left",onClick:s[1]||(s[1]=y=>ae(f.value-1))},[...s[24]||(s[24]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[e("polyline",{points:"15 18 9 12 15 6"})],-1)])],8,Bn),e("span",Pn,F(f.value+1)+" of "+F(n.value),1),e("button",{class:"btn btn-icon",disabled:f.value>=n.value-1,title:"Move right",onClick:s[2]||(s[2]=y=>ae(f.value+1))},[...s[25]||(s[25]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[e("polyline",{points:"9 18 15 12 9 6"})],-1)])],8,Un)])])):C("",!0),e("div",Dn,[s[30]||(s[30]=e("label",{class:"form-label"},"On-Enter Automation",-1)),e("div",Vn,[e("label",Nn,[G(e("input",{"onUpdate:modelValue":s[3]||(s[3]=y=>a.value=y),type:"radio",value:"none",name:"automation"},null,512),[[xe,a.value]]),s[27]||(s[27]=e("span",null,"None",-1))]),e("label",In,[G(e("input",{"onUpdate:modelValue":s[4]||(s[4]=y=>a.value=y),type:"radio",value:"template",name:"automation"},null,512),[[xe,a.value]]),s[28]||(s[28]=e("span",null,"Run a template",-1))]),e("label",Kn,[G(e("input",{"onUpdate:modelValue":s[5]||(s[5]=y=>a.value=y),type:"radio",value:"prompt",name:"automation"},null,512),[[xe,a.value]]),s[29]||(s[29]=e("span",null,"Run a custom prompt",-1))])])]),a.value==="template"?(t(),o("div",Gn,[s[32]||(s[32]=e("label",{for:"template-select",class:"form-label"},"Select Template",-1)),G(e("select",{id:"template-select","onUpdate:modelValue":s[6]||(s[6]=y=>h.onEnterTemplateId=y),class:"form-input"},[s[31]||(s[31]=e("option",{value:null}," Select a template... ",-1)),I.value.length?(t(),o("optgroup",Hn,[(t(!0),o(X,null,Z(I.value,y=>(t(),o("option",{key:y.id,value:y.id},F(y.name),9,qn))),128))])):C("",!0),Y.value.length?(t(),o("optgroup",Wn,[(t(!0),o(X,null,Z(Y.value,y=>(t(),o("option",{key:y.id,value:y.id},F(y.name),9,zn))),128))])):C("",!0)],512),[[Ee,h.onEnterTemplateId]]),s[33]||(s[33]=e("p",{class:"form-help"}," When a session enters this lane, the selected template will automatically run. ",-1))])):C("",!0),a.value==="prompt"?(t(),o("div",Yn,[s[34]||(s[34]=e("label",{for:"custom-prompt",class:"form-label"},"Custom Prompt",-1)),Q(it,{id:"custom-prompt",ref_key:"promptTextareaRef",ref:j,modelValue:h.onEnterPrompt,"onUpdate:modelValue":s[7]||(s[7]=y=>h.onEnterPrompt=y),class:"form-input form-textarea",placeholder:"Enter the prompt to run when a session enters this lane...",rows:"4","min-height":80},null,8,["modelValue"]),e("div",Jn,[Q(ze),O.value?(t(),oe(ut,{key:0,onOpen:s[8]||(s[8]=y=>i.value=!0)})):C("",!0)])])):C("",!0),a.value==="prompt"?(t(),oe(ct,{key:3,"is-open":i.value,"onUpdate:isOpen":s[9]||(s[9]=y=>i.value=y),"working-directory":O.value||"",mode:"insert","hide-builtin":!0,onInsert:ue},null,8,["is-open","working-directory"])):C("",!0),a.value==="prompt"?(t(),o("div",Qn,[e("button",{type:"button",class:"section-toggle",onClick:s[10]||(s[10]=y=>g.value=!g.value)},[e("span",{class:ie(["toggle-chevron",{open:g.value}])},"▶",2),s[35]||(s[35]=de(" Session Settings ",-1))]),g.value?(t(),o("div",Xn,[Q(dt,{mode:h.onEnterMode||"standard",model:h.onEnterModel,"effort-level":h.onEnterEffortLevel,"thinking-enabled":h.onEnterThinkingEnabled??!1,"hide-start-immediately":!0,"onUpdate:mode":s[11]||(s[11]=y=>h.onEnterMode=y),"onUpdate:model":s[12]||(s[12]=y=>h.onEnterModel=y),"onUpdate:effortLevel":s[13]||(s[13]=y=>h.onEnterEffortLevel=y),"onUpdate:thinkingEnabled":s[14]||(s[14]=y=>h.onEnterThinkingEnabled=y)},null,8,["mode","model","effort-level","thinking-enabled"]),e("div",Zn,[e("label",eo,[e("label",to,[G(e("input",{"onUpdate:modelValue":s[15]||(s[15]=y=>h.onEnterAutoRescheduleEnabled=y),type:"checkbox"},null,512),[[Le,h.onEnterAutoRescheduleEnabled]]),s[36]||(s[36]=e("span",{class:"toggle-slider"},null,-1))]),s[37]||(s[37]=e("span",{class:"toggle-label"},"Auto-reschedule on errors",-1))])]),h.onEnterAutoRescheduleEnabled?(t(),o("div",so,[e("div",no,[s[40]||(s[40]=e("p",{class:"settings-label"}," Reschedule Triggers ",-1)),e("label",oo,[G(e("input",{"onUpdate:modelValue":s[16]||(s[16]=y=>h.onEnterRescheduleOnTokenLimit=y),type:"checkbox"},null,512),[[Le,h.onEnterRescheduleOnTokenLimit]]),s[38]||(s[38]=e("span",null,"Token limit errors",-1))]),e("label",ao,[G(e("input",{"onUpdate:modelValue":s[17]||(s[17]=y=>h.onEnterRescheduleOnServiceError=y),type:"checkbox"},null,512),[[Le,h.onEnterRescheduleOnServiceError]]),s[39]||(s[39]=e("span",null,"Service unavailability",-1))])]),e("div",lo,[s[42]||(s[42]=e("label",{class:"form-label"},"Reschedule Delay",-1)),G(e("select",{"onUpdate:modelValue":s[18]||(s[18]=y=>h.onEnterRescheduleDelayMinutes=y),class:"form-input"},[...s[41]||(s[41]=[e("option",{value:5}," 5 minutes ",-1),e("option",{value:15}," 15 minutes ",-1),e("option",{value:30}," 30 minutes ",-1),e("option",{value:60}," 1 hour ",-1),e("option",{value:120}," 2 hours ",-1)])],512),[[Ee,h.onEnterRescheduleDelayMinutes,void 0,{number:!0}]])]),e("div",ro,[s[43]||(s[43]=e("label",{class:"form-label"},"Max Reschedule Count",-1)),G(e("input",{"onUpdate:modelValue":s[19]||(s[19]=y=>h.onEnterMaxRescheduleCount=y),type:"number",min:"1",max:"100",class:"form-input",placeholder:"Unlimited"},null,512),[[ke,h.onEnterMaxRescheduleCount,void 0,{number:!0}]])]),e("div",io,[s[44]||(s[44]=e("label",{class:"form-label"},"Max Total Tokens",-1)),G(e("input",{"onUpdate:modelValue":s[20]||(s[20]=y=>h.onEnterMaxTotalTokens=y),type:"number",min:"1000",step:"1000",class:"form-input",placeholder:"Unlimited"},null,512),[[ke,h.onEnterMaxTotalTokens,void 0,{number:!0}]])]),e("div",uo,[s[45]||(s[45]=e("label",{class:"form-label"},"Reschedule At Token Count",-1)),G(e("input",{"onUpdate:modelValue":s[21]||(s[21]=y=>h.onEnterRescheduleAtTokenCount=y),type:"number",min:"10000",step:"10000",class:"form-input",placeholder:"None"},null,512),[[ke,h.onEnterRescheduleAtTokenCount,void 0,{number:!0}]])])])):C("",!0)])):C("",!0)])):C("",!0),e("div",co,[s[46]||(s[46]=e("h4",{class:"danger-title"}," Danger Zone ",-1)),s[47]||(s[47]=e("p",{class:"danger-description"}," Deleting this lane will remove all cards from it. Sessions will remain in the project. ",-1)),e("button",{class:"btn btn-danger",disabled:r.value,onClick:P},F(r.value?"Deleting...":"Delete Lane"),9,mo)])]),e("div",po,[e("button",{class:"btn btn-secondary",onClick:te}," Cancel "),e("button",{class:"btn btn-primary",disabled:S.value||!B.value,onClick:D},F(S.value?"Saving...":"Save Changes"),9,vo)])])])):C("",!0)}},ho=Ce(fo,[["__scopeId","data-v-93f5604f"]]),bo={class:"kanban-board"},go={key:0,class:"kanban-loading"},yo={key:1,class:"kanban-error"},ko={key:2,class:"kanban-empty"},So={key:3,class:"kanban-lanes-container"},$o=["onDragover","onDrop"],Co={class:"lane-header"},wo={class:"lane-title-row"},Eo={class:"lane-title"},_o={key:0,class:"lane-automation-indicator",title:"Automation enabled"},To={class:"lane-header-actions"},jo={class:"lane-count"},Fo=["onClick"],Mo={class:"lane-cards"},Ro={key:0,class:"card-drop-indicator"},Ao=["onDragstart","onDragover"],xo={class:"card-header"},Lo={class:"card-title"},Oo={class:"card-meta"},Bo={key:0,class:"card-mode"},Po={class:"card-reorder-arrows"},Uo=["onClick"],Do=["onClick"],Vo=["onClick"],No=["onClick"],Io={key:0,class:"card-drop-indicator"},Ko={key:1,class:"lane-empty"},Go={class:"lane-footer"},Ho={key:0,class:"lane-automation"},qo={key:1,class:"lane-automation"},Wo=["onClick"],zo={class:"add-lane-container"},Yo={key:1,class:"add-lane-form"},Jo={__name:"KanbanBoard",props:{projectId:{type:String,required:!0}},setup(u){const c=u,m=Re(),p=A(!1),l=A(""),E=A(null),R=A(null),_=A(null),S=A(-1),r=A(null),a=A(-1),g=A(!1),i=A(null),j=A(!1),$=A(null),T=A(!1),h=A(null),I=A(null),Y=V(()=>m.board),O=V(()=>m.loading),f=V(()=>m.error),n=async()=>{try{await m.fetchBoard(c.projectId)}catch(M){console.error("Failed to fetch kanban board:",M)}},B=M=>{switch(M){case"running":case"starting":return"●";case"waiting":return"◐";case"completed":return"✓";case"error":return"✕";case"stopped":return"■";case"scheduled":return"⏰";default:return"○"}},b=(M,w,W,N)=>{E.value="card",R.value=w,_.value=W,S.value=N;const z=M.dataTransfer;z.effectAllowed="move",z.setData("text/plain",w.id)},q=(M,w,W)=>{if(E.value!=="card")return;const N=M.currentTarget.getBoundingClientRect(),z=N.top+N.height/2,se=M.clientY<z?W:W+1;w===_.value&&(se===S.value||se===S.value+1)?(r.value=null,a.value=-1):(r.value=w,a.value=se)},J=()=>{E.value=null,R.value=null,_.value=null,S.value=-1,r.value=null,a.value=-1},H=async(M,w,W)=>{var he,re;const N=(re=(he=Y.value)==null?void 0:he.lanes)==null?void 0:re.find(x=>x.id===M);if(!(N!=null&&N.cards))return;let z=W>=0?W:N.cards.length;if(z>w&&z--,z===w)return;const se=N.cards.map(x=>x.id),[ge]=se.splice(w,1);se.splice(z,0,ge);try{await m.reorderCards(c.projectId,M,se)}catch(x){console.error("Failed to reorder cards:",x)}},ee=async(M,w)=>{try{await m.moveCard(c.projectId,M,w,{runOnEnterTemplate:!0})}catch(W){console.error("Failed to move card:",W)}},te=async(M,w)=>{if(M.preventDefault(),E.value!=="card"||!R.value){J();return}const W=M.dataTransfer.getData("text/plain");if(!W){J();return}_.value===w?await H(w,S.value,a.value):await ee(W,w),J()},ue=async(M,w,W)=>{var ge,he;const N=(he=(ge=Y.value)==null?void 0:ge.lanes)==null?void 0:he.find(re=>re.id===M);if(!(N!=null&&N.cards))return;const z=N.cards.map(re=>re.id),[se]=z.splice(w,1);z.splice(W,0,se);try{await m.reorderCards(c.projectId,M,z)}catch(re){console.error("Failed to reorder cards:",re)}},ae=async M=>{if(confirm("Remove this session from the board?"))try{await m.removeCard(c.projectId,M)}catch(w){console.error("Failed to remove card:",w)}},pe=async()=>{if(l.value.trim())try{await m.createLane(c.projectId,{name:l.value.trim()}),le()}catch(M){console.error("Failed to add lane:",M)}},le=()=>{p.value=!1,l.value=""},ve=M=>{i.value=M,g.value=!0},fe=()=>{g.value=!1,i.value=null},D=()=>{},P=M=>{$.value=M,j.value=!0},d=()=>{j.value=!1,$.value=null},s=()=>{},y=()=>{d()},be=(M,w)=>{h.value=M,I.value=w,T.value=!0},L=()=>{T.value=!1,h.value=null,I.value=null},k=()=>{L()};return me(()=>c.projectId,M=>{M&&n()},{immediate:!0}),Pe(()=>{c.projectId&&n()}),(M,w)=>{var N,z,se,ge,he,re;const W=Me("router-link");return t(),o("div",bo,[O.value?(t(),o("div",go,[...w[5]||(w[5]=[e("span",{class:"loading-spinner"},null,-1),de(" Loading board... ",-1)])])):f.value?(t(),o("div",yo,[w[6]||(w[6]=e("span",{class:"error-icon"},"!",-1)),de(" "+F(f.value)+" ",1),e("button",{class:"retry-btn",onClick:n}," Retry ")])):Y.value?(t(),o("div",So,[(t(!0),o(X,null,Z(Y.value.lanes,x=>{var _e,Te,je;return t(),o("div",{key:x.id,class:"kanban-lane",onDragover:ce(K=>{var ne;return q(K,x.id,((ne=x.cards)==null?void 0:ne.length)||0)},["prevent"]),onDrop:K=>te(K,x.id)},[e("div",Co,[e("div",wo,[e("h3",Eo,F(x.name),1),x.onEnterTemplateId||x.onEnterPrompt?(t(),o("span",_o,[...w[8]||(w[8]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor"},[e("path",{d:"M13 10V3L4 14h7v7l9-11h-7z"})],-1)])])):C("",!0)]),e("div",To,[e("span",jo,F(((_e=x.cards)==null?void 0:_e.length)||0),1),e("button",{class:"lane-settings-btn",title:"Lane settings",onClick:K=>P(x)},[...w[9]||(w[9]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e("circle",{cx:"12",cy:"12",r:"3"}),e("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)])],8,Fo)])]),e("div",Mo,[(t(!0),o(X,null,Z(x.cards,(K,ne)=>{var U,Se;return t(),o(X,{key:K.id},[E.value==="card"&&r.value===x.id&&a.value===ne?(t(),o("div",Ro)):C("",!0),e("div",{class:ie(["kanban-card",{dragging:E.value==="card"&&((U=R.value)==null?void 0:U.id)===K.id}]),draggable:"true",onDragstart:ce($e=>b($e,K,x.id,ne),["stop"]),onDragover:ce($e=>q($e,x.id,ne),["prevent","stop"]),onDragend:J},[(Se=K.sessions)!=null&&Se[0]?(t(),oe(W,{key:0,to:`/sessions/${K.sessions[0].id}`,class:"card-link"},{default:ye(()=>[e("div",xo,[e("span",{class:ie(["card-status",`status-${K.sessions[0].status}`])},F(B(K.sessions[0].status)),3),e("h4",Lo,F(K.sessions[0].name),1)]),e("div",Oo,[K.sessions[0].mode?(t(),o("span",Bo,F(K.sessions[0].mode),1)):C("",!0)])]),_:2},1032,["to"])):C("",!0),e("div",Po,[ne>0?(t(),o("button",{key:0,class:"card-reorder-btn",title:"Move card up",onClick:ce($e=>ue(x.id,ne,ne-1),["prevent"])},[...w[10]||(w[10]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[e("polyline",{points:"18 15 12 9 6 15"})],-1)])],8,Uo)):C("",!0),ne<x.cards.length-1?(t(),o("button",{key:1,class:"card-reorder-btn",title:"Move card down",onClick:ce($e=>ue(x.id,ne,ne+1),["prevent"])},[...w[11]||(w[11]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[e("polyline",{points:"6 9 12 15 18 9"})],-1)])],8,Do)):C("",!0)]),e("button",{class:"card-move-btn",title:"Move to lane",onClick:ce($e=>be(K,x.id),["prevent"])},[...w[12]||(w[12]=[Ue('<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 4 19 4 19 8"></polyline><line x1="14" y1="10" x2="19" y2="4"></line><polyline points="9 20 5 20 5 16"></polyline><line x1="10" y1="14" x2="5" y2="20"></line></svg>',1)])],8,Vo),e("button",{class:"card-remove-btn",title:"Remove from board",onClick:ce($e=>ae(K.id),["prevent"])}," × ",8,No)],42,Ao)],64)}),128)),E.value==="card"&&r.value===x.id&&a.value===(((Te=x.cards)==null?void 0:Te.length)||0)?(t(),o("div",Io)):C("",!0),(je=x.cards)!=null&&je.length?C("",!0):(t(),o("div",Ko,[...w[13]||(w[13]=[e("span",null,"Drop sessions here",-1)])]))]),e("div",Go,[x.onEnterTemplateId?(t(),o("span",Ho," Auto: triggers template on entry ")):x.onEnterPrompt?(t(),o("span",qo," Auto: runs custom prompt on entry ")):C("",!0),e("button",{class:"add-session-btn",onClick:K=>ve(x)}," + Add Session ",8,Wo)])],40,$o)}),128)),e("div",zo,[p.value?(t(),o("div",Yo,[G(e("input",{"onUpdate:modelValue":w[1]||(w[1]=x=>l.value=x),type:"text",placeholder:"Lane name...",class:"add-lane-input",onKeyup:[Ve(pe,["enter"]),Ve(le,["escape"])]},null,544),[[ke,l.value]]),e("div",{class:"add-lane-actions"},[e("button",{class:"add-lane-confirm",onClick:pe}," Add "),e("button",{class:"add-lane-cancel",onClick:le}," Cancel ")])])):(t(),o("button",{key:0,class:"add-lane-btn",onClick:w[0]||(w[0]=x=>p.value=!0)}," + Add Lane "))])])):(t(),o("div",ko,[...w[7]||(w[7]=[e("p",null,"Kanban board is not available for this project.",-1)])])),Q(Je,{"is-open":g.value,"project-id":u.projectId,"lane-id":(N=i.value)==null?void 0:N.id,"lane-name":(z=i.value)==null?void 0:z.name,"onUpdate:isOpen":w[2]||(w[2]=x=>g.value=x),onClose:fe,onAdded:D},null,8,["is-open","project-id","lane-id","lane-name"]),Q(ho,{"is-open":j.value,"project-id":u.projectId,lane:$.value,"onUpdate:isOpen":w[3]||(w[3]=x=>j.value=x),onClose:d,onUpdated:s,onDeleted:y},null,8,["is-open","project-id","lane"]),Q(ot,{"is-open":T.value,"project-id":u.projectId,"card-id":(se=h.value)==null?void 0:se.id,"current-lane-id":I.value,"session-name":(re=(he=(ge=h.value)==null?void 0:ge.sessions)==null?void 0:he[0])==null?void 0:re.name,"onUpdate:isOpen":w[4]||(w[4]=x=>T.value=x),onClose:L,onMoved:k},null,8,["is-open","project-id","card-id","current-lane-id","session-name"])])}}},Qo={class:"container"},Xo={class:"page-header"},Zo={class:"project-title"},ea=["href"],ta={class:"tabs"},sa={class:"tabs-desktop"},na={class:"tabs-left"},oa={class:"tabs-mobile"},aa=["value"],la={key:0,value:"kanban"},ra={key:2,class:"tab-spacer"},ia={key:3},da={key:0,class:"skeleton-list"},ua={key:1,class:"error-message"},ca={key:2,class:"empty-state"},ma={key:3,class:"empty-state"},pa={key:4,class:"session-list"},va={key:5},fa={key:6},ha={class:"modal-content lane-selector-modal"},ba={class:"modal-body"},ga={class:"modal-description"},ya={class:"lane-options"},ka=["onClick"],Sa={class:"lane-option-name"},$a={class:"lane-option-count"},Ca={key:0,class:"empty-lanes"},Va={__name:"SessionListView",setup(u){const c=et(),m=Ke(),p=De(),l=we(),E=Re(),R=Ge();vt(),R.restoreCollapsedLogState();const _=V(()=>{switch(c.name){case"ArchivedSessions":return"archived";case"ProjectTemplates":return"templates";case"ProjectCommands":return"commands";case"ScheduledSessions":return"scheduled";case"ProjectKanban":return"kanban";default:return"sessions"}});function S(L){const k=c.params.id,M={sessions:`/projects/${k}/sessions`,archived:`/projects/${k}/archived`,templates:`/projects/${k}/templates`,commands:`/projects/${k}/commands`,scheduled:`/projects/${k}/scheduled`,kanban:`/projects/${k}/kanban`};m.push(M[L])}const r=V(()=>c.params.id),{summaries:a,loadingSummaries:g,summaryErrors:i,fetchSummariesBatch:j,retryFetchSummary:$,updateSummary:T,cleanupSummary:h}=mt(),{filteredGroupedSessions:I}=Ye(),{archivedLoaded:Y}=pt(r,{fetchSummariesBatch:j,updateSummary:T,cleanupSummary:h}),O=V(()=>l.scheduledSessions||[]),f=V(()=>l.loadingScheduled||!1);let n=null;me(()=>l.sessions,()=>{clearTimeout(n),n=setTimeout(()=>{j(l.sessions)},400)}),me(()=>c.name,async L=>{L==="ArchivedSessions"?await B():L==="ScheduledSessions"&&await q()},{immediate:!0}),me([_,()=>{var L;return(L=p.currentProject)==null?void 0:L.kanbanEnabled}],([L,k])=>{L==="kanban"&&k===!1&&m.replace(`/projects/${c.params.id}/sessions`)},{immediate:!0}),me(()=>l.starredFilter,async(L,k)=>{_.value==="archived"&&Y.value&&L!==k&&(await l.fetchArchivedSessions(r.value,{reset:!0}),j(l.archivedSessions))});async function B(){Y.value||(await l.fetchArchivedSessions(r.value,{reset:!0}),Y.value=!0,j(l.archivedSessions))}async function b(){await l.loadMoreArchivedSessions(r.value),j(l.archivedSessions)}async function q(){await l.fetchScheduledSessions(r.value)}const J=A(!1),H=A(null),ee=A(!1);function te(L){const k=l.sessions.find(M=>M.id===L);H.value=k||{id:L},J.value=!0}async function ue(L){if(H.value){ee.value=!0;try{await l.archiveSession(H.value.id,{cleanup:L}),le.success("Session archived")}catch(k){le.error(k.message||"Failed to archive session")}finally{ee.value=!1,J.value=!1,H.value=null}}}function ae(){J.value=!1,H.value=null}async function pe(L){try{await l.unarchiveSession(L)}catch(k){console.error("Failed to unarchive session:",k)}}const le=Fe(),ve=A(!1),fe=A(null),D=A(!1),P=A(null);function d(L){P.value=L,D.value=!0}function s(){D.value=!1,P.value=null}async function y(L){if(!(!P.value||!L))try{await E.addSessionToBoard(c.params.id,P.value.id,L.id),le.success(`Session added to "${L.name}"`),s()}catch(k){console.error("Failed to add session to board:",k),le.error(k.message||"Failed to add session to board")}}function be(){ve.value=!1,fe.value=null}return Pe(()=>{l.restoreStatusFilter(),l.restoreStarredFilter(),l.restoreScheduledFilter();const L=c.params.id;L&&E.fetchBoard(L).catch(k=>{console.warn("Failed to fetch kanban board:",k)})}),Be(()=>{clearTimeout(n)}),(L,k)=>{var w,W,N,z,se,ge,he,re,x,_e,Te,je,K,ne;const M=Me("router-link");return t(),o("div",Qo,[e("div",Xo,[e("div",null,[e("div",Zo,[e("h1",null,F(((w=v(p).currentProject)==null?void 0:w.name)||"Sessions"),1),(W=v(p).currentProject)!=null&&W.repoUrl?(t(),o("a",{key:0,href:v(p).currentProject.repoUrl,target:"_blank",rel:"noopener noreferrer",class:"repo-link",title:"Open repository"},[...k[8]||(k[8]=[e("svg",{class:"repo-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6m4-3l6 6m0 0l-6 6m6-6H9"})],-1)])],8,ea)):C("",!0),Q(M,{to:`/projects/${v(c).params.id}/edit`,class:"settings-link",title:"Project settings"},{default:ye(()=>[...k[9]||(k[9]=[e("svg",{class:"settings-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M12.22 2h-.44a2 2 0 00-2 2v.18a2 2 0 01-1 1.73l-.43.25a2 2 0 01-2 0l-.15-.08a2 2 0 00-2.73.73l-.22.38a2 2 0 00.73 2.73l.15.1a2 2 0 011 1.72v.51a2 2 0 01-1 1.74l-.15.09a2 2 0 00-.73 2.73l.22.38a2 2 0 002.73.73l.15-.08a2 2 0 012 0l.43.25a2 2 0 011 1.73V20a2 2 0 002 2h.44a2 2 0 002-2v-.18a2 2 0 011-1.73l.43-.25a2 2 0 012 0l.15.08a2 2 0 002.73-.73l.22-.39a2 2 0 00-.73-2.73l-.15-.08a2 2 0 01-1-1.74v-.5a2 2 0 011-1.74l.15-.09a2 2 0 00.73-2.73l-.22-.38a2 2 0 00-2.73-.73l-.15.08a2 2 0 01-2 0l-.43-.25a2 2 0 01-1-1.73V4a2 2 0 00-2-2z"}),e("circle",{cx:"12",cy:"12",r:"3"})],-1)])]),_:1},8,["to"])])]),_.value==="sessions"?(t(),oe(M,{key:0,to:`/projects/${v(c).params.id}/sessions/new`,class:"btn btn-primary mobile-only"},{default:ye(()=>[...k[10]||(k[10]=[de(" + Session ",-1)])]),_:1},8,["to"])):C("",!0)]),e("div",ta,[e("div",sa,[e("div",na,[e("button",{class:ie(["tab",{active:_.value==="sessions"}]),onClick:k[0]||(k[0]=U=>v(m).push(`/projects/${v(c).params.id}/sessions`))}," Sessions ",2),e("button",{class:ie(["tab",{active:_.value==="archived"}]),onClick:k[1]||(k[1]=U=>v(m).push(`/projects/${v(c).params.id}/archived`))}," Archived ",2),e("button",{class:ie(["tab",{active:_.value==="templates"}]),onClick:k[2]||(k[2]=U=>v(m).push(`/projects/${v(c).params.id}/templates`))}," Templates ",2),e("button",{class:ie(["tab",{active:_.value==="commands"}]),onClick:k[3]||(k[3]=U=>v(m).push(`/projects/${v(c).params.id}/commands`))}," Commands ",2),e("button",{class:ie(["tab",{active:_.value==="scheduled"}]),onClick:k[4]||(k[4]=U=>v(m).push(`/projects/${v(c).params.id}/scheduled`))}," Scheduled ",2),(N=v(p).currentProject)!=null&&N.kanbanEnabled?(t(),o("button",{key:0,class:ie(["tab",{active:_.value==="kanban"}]),onClick:k[5]||(k[5]=U=>v(m).push(`/projects/${v(c).params.id}/kanban`))},[...k[11]||(k[11]=[de(" Kanban ",-1),e("span",{class:"ml-1 rounded bg-amber-900/50 px-1.5 py-0.5 text-[10px] font-semibold uppercase text-amber-300"}," Experimental ",-1)])],2)):C("",!0)]),_.value==="sessions"?(t(),oe(M,{key:0,to:`/projects/${v(c).params.id}/sessions/new`,class:"btn btn-primary desktop-only","aria-label":"New Session"},{default:ye(()=>[...k[12]||(k[12]=[e("span",{class:"add-session-label-full"},"+ Session",-1),e("span",{class:"add-session-label-short"},"+",-1)])]),_:1},8,["to"])):C("",!0)]),e("div",oa,[e("select",{value:_.value,class:"tab-select",onChange:k[6]||(k[6]=U=>S(U.target.value))},[k[13]||(k[13]=Ue('<option value="sessions"> Sessions </option><option value="archived"> Archived </option><option value="templates"> Templates </option><option value="commands"> Commands </option><option value="scheduled"> Scheduled </option>',5)),(z=v(p).currentProject)!=null&&z.kanbanEnabled?(t(),o("option",la," Kanban (experimental) ")):C("",!0)],40,aa)])]),_.value==="sessions"?(t(),oe(Ne,{key:0,"show-status-filters":!0,"show-scheduled-filter":!0})):_.value==="archived"?(t(),oe(Ne,{key:1,"show-status-filters":!1,"show-scheduled-filter":!1})):(t(),o("div",ra)),_.value==="sessions"?(t(),o("div",ia,[v(l).loading?(t(),o("div",da,[(t(),o(X,null,Z(3,U=>e("div",{key:U,class:"skeleton card",style:{height:"120px"}})),64))])):v(l).error?(t(),o("div",ua,F(v(l).error),1)):v(l).sessions.length===0?(t(),o("div",ca,[k[15]||(k[15]=e("p",null,"No sessions yet. Start a new session to interact with the agent.",-1)),Q(M,{to:`/projects/${v(c).params.id}/sessions/new`,class:"btn btn-primary"},{default:ye(()=>[...k[14]||(k[14]=[de(" New Session ",-1)])]),_:1},8,["to"])])):v(I).length===0?(t(),o("div",ma,[...k[16]||(k[16]=[e("p",null,"No sessions match the current filter.",-1)])])):(t(),o("div",pa,[(t(!0),o(X,null,Z(v(I),U=>{var Se;return t(),oe(qe,{key:U.parent.id,session:U.parent,"show-summary":!0,summary:v(a)[U.parent.id],"summary-loading":v(g)[U.parent.id],"summary-error":v(i)[U.parent.id],"show-archive":!0,"kanban-enabled":((Se=v(p).currentProject)==null?void 0:Se.kanbanEnabled)??!1,"pr-url":U.parent.prUrl,"pr-summary":v(a)[U.parent.id],onRetrySummary:v($),onArchive:te,onAddToBoard:d},null,8,["session","summary","summary-loading","summary-error","kanban-enabled","pr-url","pr-summary","onRetrySummary"])}),128))]))])):C("",!0),_.value==="archived"?(t(),oe(Ut,{key:4,summaries:v(a),"loading-summaries":v(g),"summary-errors":v(i),onRetrySummary:v($),onUnarchive:pe,onLoadMore:b},null,8,["summaries","loading-summaries","summary-errors","onRetrySummary"])):C("",!0),_.value==="templates"?(t(),o("div",va,[Q(Ys,{"project-id":v(c).params.id},null,8,["project-id"])])):C("",!0),_.value==="commands"?(t(),o("div",fa,[Q(cn,{"project-id":v(c).params.id},null,8,["project-id"])])):C("",!0),_.value==="scheduled"?(t(),oe(ls,{key:7,sessions:O.value,loading:f.value},null,8,["sessions","loading"])):C("",!0),_.value==="kanban"?(t(),oe(Jo,{key:8,"project-id":v(c).params.id},null,8,["project-id"])):C("",!0),Q(Je,{"is-open":ve.value,"project-id":v(c).params.id,"lane-id":(se=fe.value)==null?void 0:se.id,"lane-name":(ge=fe.value)==null?void 0:ge.name,"onUpdate:isOpen":k[7]||(k[7]=U=>ve.value=U),onClose:be},null,8,["is-open","project-id","lane-id","lane-name"]),D.value?(t(),o("div",{key:9,class:"modal-backdrop",onClick:ce(s,["self"])},[e("div",ha,[e("div",{class:"modal-header"},[k[17]||(k[17]=e("h2",{class:"modal-title"}," Add to Kanban Board ",-1)),e("button",{class:"close-btn","aria-label":"Close",onClick:s}," × ")]),e("div",ba,[e("p",ga,' Select a lane to add "'+F((he=P.value)==null?void 0:he.name)+'" to: ',1),e("div",ya,[(t(!0),o(X,null,Z((re=v(E).board)==null?void 0:re.lanes,U=>{var Se;return t(),o("button",{key:U.id,class:"lane-option-btn",onClick:$e=>y(U)},[e("span",Sa,F(U.name),1),e("span",$a,F(((Se=U.cards)==null?void 0:Se.length)||0)+" cards",1)],8,ka)}),128))]),(_e=(x=v(E).board)==null?void 0:x.lanes)!=null&&_e.length?C("",!0):(t(),o("p",Ca," No lanes available. Go to the Kanban tab to create lanes first. "))]),e("div",{class:"modal-footer"},[e("button",{class:"btn btn-secondary",onClick:s}," Cancel ")])])])):C("",!0),Q(at,{"is-open":J.value,"session-name":((Te=H.value)==null?void 0:Te.name)||"this session","has-cleanup-script":!!((je=v(p).currentProject)!=null&&je.onSessionDeleted&&((K=H.value)!=null&&K.gitWorktree)&&!((ne=H.value)!=null&&ne.parentSessionId)),loading:ee.value,onConfirm:ue,onCancel:ae},null,8,["is-open","session-name","has-cleanup-script","loading"])])}}};export{Va as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.mode-selector[data-v-224ea1e6]{display:flex;align-items:center;gap:.5rem}.mode-select[data-v-224ea1e6]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:.375rem 2rem .375rem .5rem;font-size:.75rem;font-weight:500;background-color:var(--color-background);border:1px solid var(--color-border);border-radius:.375rem;color:var(--color-text-soft);cursor:pointer;transition:all .15s;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='%239ca3af' d='M1.5 4.5l4.5 4 4.5-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;background-size:12px}.mode-select[data-v-224ea1e6]:hover:not(:disabled){border-color:var(--color-border-hover);background-color:var(--color-bg-hover)}.mode-select[data-v-224ea1e6]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #06b6d41a}.mode-select[data-v-224ea1e6]:disabled{opacity:.5;cursor:not-allowed}.mode-select option[data-v-224ea1e6]{background-color:var(--color-background);color:var(--color-text)}.slash-command-btn[data-v-63f59216]{display:flex;align-items:center;gap:.25rem;padding:.375rem .625rem;font-size:.875rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:.375rem;color:var(--color-text-soft);cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}.slash-command-btn[data-v-63f59216]:hover{background:var(--color-bg-hover);border-color:var(--color-accent);color:var(--color-accent)}.slash-icon[data-v-63f59216]{font-size:1rem;font-weight:600;font-family:ui-monospace,monospace}.slash-text[data-v-63f59216]{font-size:.75rem}@media (max-width: 480px){.slash-text[data-v-63f59216]{display:none}.slash-command-btn[data-v-63f59216]{padding:.375rem}}.command-grid[data-v-5da1571d]{display:flex;flex-direction:column;gap:1rem;max-height:60vh;overflow-y:auto}.search-box[data-v-5da1571d]{position:sticky;top:0;z-index:1;background:var(--color-background);padding-bottom:.5rem}.search-input[data-v-5da1571d]{width:100%;padding:.75rem 1rem;font-size:.875rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:.5rem;color:var(--color-text);outline:none;transition:border-color .15s}.search-input[data-v-5da1571d]:focus{border-color:var(--color-accent)}.search-input[data-v-5da1571d]::placeholder{color:var(--color-text-soft)}.loading-state[data-v-5da1571d],.error-state[data-v-5da1571d],.empty-state[data-v-5da1571d]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:var(--color-text-soft);text-align:center}.error-state[data-v-5da1571d]{color:var(--color-danger, #ef4444)}.loading-spinner[data-v-5da1571d]{width:1.25rem;height:1.25rem;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin-5da1571d .6s linear infinite}@keyframes spin-5da1571d{to{transform:rotate(360deg)}}.command-sections[data-v-5da1571d]{display:flex;flex-direction:column;gap:1.5rem}.command-section[data-v-5da1571d]{display:flex;flex-direction:column;gap:.5rem}.section-title[data-v-5da1571d]{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-soft);margin:0;padding:0 .25rem}.command-cards[data-v-5da1571d]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}.command-card[data-v-5da1571d]{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:.5rem;text-align:left;cursor:pointer;transition:background-color .15s,border-color .15s,transform .1s}.command-card[data-v-5da1571d]:hover{background:var(--color-bg-hover);border-color:var(--color-accent)}.command-card[data-v-5da1571d]:active{transform:scale(.98)}.command-name[data-v-5da1571d]{font-size:.875rem;font-weight:600;color:var(--color-accent);font-family:ui-monospace,monospace}.command-description[data-v-5da1571d]{font-size:.75rem;color:var(--color-text-soft);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.command-args-badge[data-v-5da1571d]{display:inline-block;margin-top:.25rem;padding:.125rem .375rem;font-size:.625rem;font-weight:500;text-transform:uppercase;background:rgba(var(--color-accent-rgb, 88, 166, 255),.15);color:var(--color-accent);border-radius:.25rem;width:fit-content}@media (max-width: 480px){.command-cards[data-v-5da1571d]{grid-template-columns:1fr}}.arguments-form[data-v-e56eba15]{display:flex;flex-direction:column;gap:1.5rem}.form-header[data-v-e56eba15]{display:flex;flex-direction:column;gap:.25rem}.command-title[data-v-e56eba15]{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-accent);font-family:ui-monospace,monospace}.command-description[data-v-e56eba15]{margin:0;font-size:.875rem;color:var(--color-text-soft)}.form-fields[data-v-e56eba15]{display:flex;flex-direction:column;gap:1rem}.form-field[data-v-e56eba15]{display:flex;flex-direction:column;gap:.375rem}.field-label[data-v-e56eba15]{font-size:.875rem;font-weight:500;color:var(--color-text)}.required-indicator[data-v-e56eba15]{color:var(--color-danger, #ef4444);margin-left:.125rem}.hint[data-v-e56eba15]{margin-left:.5rem;font-size:.75rem;font-weight:400;color:var(--color-text-soft);font-family:ui-monospace,monospace}.field-input[data-v-e56eba15],.field-select[data-v-e56eba15],.field-textarea[data-v-e56eba15]{padding:.625rem .875rem;font-size:.875rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:.5rem;color:var(--color-text);outline:none;transition:border-color .15s}.field-input[data-v-e56eba15]:focus,.field-select[data-v-e56eba15]:focus,.field-textarea[data-v-e56eba15]:focus{border-color:var(--color-accent)}.field-input[data-v-e56eba15]::placeholder,.field-textarea[data-v-e56eba15]::placeholder{color:var(--color-text-soft)}.field-textarea[data-v-e56eba15]{resize:vertical;min-height:100px}.field-select[data-v-e56eba15]{cursor:pointer;-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='%236b7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem}.form-actions[data-v-e56eba15]{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--color-border)}.btn[data-v-e56eba15]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;border-radius:.5rem;cursor:pointer;transition:background-color .15s,border-color .15s}.btn-primary[data-v-e56eba15]{background:var(--color-primary, #3b82f6);border:1px solid var(--color-primary, #3b82f6);color:#fff}.btn-primary[data-v-e56eba15]:hover:not(:disabled){background:var(--color-primary-hover, #2563eb);border-color:var(--color-primary-hover, #2563eb)}.btn-primary[data-v-e56eba15]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-e56eba15]{background:var(--color-background-soft);border:1px solid var(--color-border);color:var(--color-text-soft)}.btn-secondary[data-v-e56eba15]:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}.loading-spinner[data-v-e56eba15]{width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-e56eba15 .6s linear infinite}@keyframes spin-e56eba15{to{transform:rotate(360deg)}}@media (max-width: 480px){.form-actions[data-v-e56eba15]{flex-direction:column-reverse}.btn[data-v-e56eba15]{width:100%}}.wizard-overlay[data-v-138fa079]{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000}.wizard-modal[data-v-138fa079]{width:100%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;background:var(--color-background);border:1px solid var(--color-border);border-radius:.75rem;box-shadow:0 20px 50px #0006;overflow:hidden}.wizard-header[data-v-138fa079]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.wizard-title[data-v-138fa079]{margin:0;font-size:1.125rem;font-weight:600;color:var(--color-text)}.close-btn[data-v-138fa079]{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;font-size:1.5rem;font-weight:400;background:transparent;border:none;border-radius:.375rem;color:var(--color-text-soft);cursor:pointer;transition:background-color .15s,color .15s}.close-btn[data-v-138fa079]:hover{background:var(--color-background-soft);color:var(--color-text)}.wizard-content[data-v-138fa079]{flex:1;padding:1.25rem;overflow-y:auto}.modal-enter-active[data-v-138fa079],.modal-leave-active[data-v-138fa079]{transition:opacity .2s ease}.modal-enter-active .wizard-modal[data-v-138fa079],.modal-leave-active .wizard-modal[data-v-138fa079]{transition:transform .2s ease}.modal-enter-from[data-v-138fa079],.modal-leave-to[data-v-138fa079]{opacity:0}.modal-enter-from .wizard-modal[data-v-138fa079]{transform:scale(.95) translateY(-10px)}.modal-leave-to .wizard-modal[data-v-138fa079]{transform:scale(.95) translateY(10px)}@media (max-width: 640px){.wizard-modal[data-v-138fa079]{margin:1rem;max-height:calc(100vh - 2rem)}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as R}from"./EffortLevelSelector-xE3gidpq.js";import{_ as L,k as K,n as j,l as T,a as s,c as o,b as a,F as B,r as V,t as d,x as v,$ as J,L as Q,o as G,I as Y,m as F,v as M,J as W,i as g,f as O,j as A,p as X,G as P,d as Z,w as ee,u as E,T as te,V as se}from"./index-BGAW2Nqa.js";import{a as H}from"./ApiClient-CcqJ-GAv.js";const ne={class:"mode-selector"},ae=["value","disabled"],oe=["value"],le={__name:"ModeSelector",props:{sessionId:{type:String,default:null},modelValue:{type:String,default:null},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,{emit:n}){const l=e,y=n,r=R(),b=K(),_=j(!1),p=[{value:"plan",label:"Plan",description:"Agent plans before implementing"},{value:"standard",label:"Standard",description:"Balanced approach"},{value:"yolo",label:"YOLO",description:"Auto-approve mode"}],$=v(()=>{var m;return l.sessionId?(m=r.currentSession)==null?void 0:m.mode:l.modelValue}),k=j($.value),u=J(l,"modelValue");T([$,u],([m])=>{k.value=m},{flush:"sync"});async function i(m){if(!_.value&&k.value!==m)if(k.value=m,l.sessionId){_.value=!0;try{await r.updateSessionMode(l.sessionId,m)}catch(C){k.value=$.value,b.error(C.message)}finally{_.value=!1}}else y("update:modelValue",m)}return(m,C)=>(s(),o("div",ne,[a("select",{id:"mode-select",value:k.value,disabled:e.disabled||_.value,class:"mode-select",onChange:C[0]||(C[0]=x=>i(x.target.value))},[(s(),o(B,null,V(p,x=>a("option",{key:x.value,value:x.value},d(x.label),9,oe)),64))],40,ae)]))}},Dt=L(le,[["__scopeId","data-v-224ea1e6"]]),ie={__name:"SlashCommandButton",emits:["open"],setup(e,{emit:n}){const l=n;return(y,r)=>(s(),o("button",{type:"button",class:"slash-command-btn",title:"Slash Commands","data-testid":"slash-command-button",onClick:r[0]||(r[0]=b=>l("open"))},[...r[1]||(r[1]=[a("span",{class:"slash-icon"},"/",-1),a("span",{class:"slash-text"},"Commands",-1)])]))}},qt=L(ie,[["__scopeId","data-v-63f59216"]]),de=Q("slashCommands",{state:()=>({commands:[],loading:!1,error:null,lastFetchedDirectory:null,executing:!1}),getters:{builtinCommands:e=>e.commands.filter(n=>n.source==="builtin"),projectCommands:e=>e.commands.filter(n=>n.source==="project"),userCommands:e=>e.commands.filter(n=>n.source==="user"),pluginCommands:e=>e.commands.filter(n=>n.source==="plugin"),customCommands:e=>e.commands.filter(n=>n.source!=="builtin"),projectSkills:e=>e.commands.filter(n=>n.source==="project-skill"),userSkills:e=>e.commands.filter(n=>n.source==="user-skill"),pluginSkills:e=>e.commands.filter(n=>n.source==="plugin-skill"),allSkills:e=>e.commands.filter(n=>n.isSkill===!0),hasSkills:e=>e.commands.some(n=>n.isSkill===!0),allProjectItems:e=>e.commands.filter(n=>n.source==="project"||n.source==="project-skill"),allUserItems:e=>e.commands.filter(n=>n.source==="user"||n.source==="user-skill"),hasCommands:e=>e.commands.length>0,hasCustomCommands:e=>e.commands.some(n=>n.source==="project"||n.source==="user")},actions:{async fetchCommandsFromSession(e){this.loading=!0,this.error=null;try{const n=await H.getSession(e),l=n.slashCommands?JSON.parse(n.slashCommands):[];return this.commands=l,l}catch(n){throw this.error=n.message,n}finally{this.loading=!1}},async fetchCommands(e,n=!1){if(!n&&this.lastFetchedDirectory===e&&this.commands.length>0)return this.commands;this.loading=!0,this.error=null;try{const l=await H.getSlashCommands(e);return this.commands=l,this.lastFetchedDirectory=e,l}catch(l){throw this.error=l.message,l}finally{this.loading=!1}},async executeCommand(e,n,l={}){this.executing=!0,this.error=null;try{return await H.executeSlashCommand(e,n,l)}catch(y){throw this.error=y.message,y}finally{this.executing=!1}},getCommandByName(e){return this.commands.find(n=>n.name===e)||null},searchCommands(e){if(!e||!e.trim())return this.commands;const n=e.toLowerCase();return this.commands.filter(l=>l.name.toLowerCase().includes(n)||l.description&&l.description.toLowerCase().includes(n))},clearCommands(){this.commands=[],this.lastFetchedDirectory=null,this.error=null}}}),re={class:"command-grid"},ce={class:"search-box"},me={key:0,class:"loading-state"},ue={key:1,class:"error-state"},he={key:2,class:"empty-state"},pe={key:0},fe={key:1},ve={key:3,class:"command-sections"},ge={key:0,class:"command-section"},_e={class:"command-cards"},ye=["data-testid","onClick"],ke={class:"command-name"},Ce={class:"command-description"},be={key:1,class:"command-section"},Se={class:"command-cards"},$e=["data-testid","onClick"],xe={class:"command-name"},we={class:"command-description"},Be={key:0,class:"command-args-badge"},Ve={key:2,class:"command-section"},je={class:"command-cards"},Ie=["data-testid","onClick"],Ne={class:"command-name"},ze={class:"command-description"},De={key:0,class:"command-args-badge"},qe={key:3,class:"command-section"},Ue={class:"command-cards"},Fe=["data-testid","onClick"],Le={class:"command-name"},Me={class:"command-description"},Oe={key:0,class:"command-args-badge"},Pe={key:4,class:"command-section"},He={class:"command-cards"},Ae=["data-testid","onClick"],Te={class:"command-name"},We={class:"command-description"},Ee={key:0,class:"command-args-badge"},Ke={key:5,class:"command-section"},Ge={class:"command-cards"},Re=["data-testid","onClick"],Je={class:"command-name"},Qe={class:"command-description"},Ye={key:0,class:"command-args-badge"},Xe={key:6,class:"command-section"},Ze={class:"command-cards"},et=["data-testid","onClick"],tt={class:"command-name"},st={class:"command-description"},nt={key:0,class:"command-args-badge"},at={__name:"CommandGrid",props:{commands:{type:Array,required:!0},loading:{type:Boolean,default:!1},error:{type:String,default:null},hideBuiltin:{type:Boolean,default:!1}},emits:["select","close"],setup(e,{emit:n}){const l=e,y=n,r=j(""),b=j(null),_=v(()=>l.commands.filter(h=>h.source==="builtin")),p=v(()=>l.commands.filter(h=>h.source==="project")),$=v(()=>l.commands.filter(h=>h.source==="user")),k=v(()=>l.commands.filter(h=>h.source==="plugin")),u=v(()=>l.commands.filter(h=>h.source==="project-skill")),i=v(()=>l.commands.filter(h=>h.source==="user-skill")),m=v(()=>l.commands.filter(h=>h.source==="plugin-skill"));function C(h){if(!r.value.trim())return h;const c=r.value.toLowerCase();return h.filter(t=>t.name.toLowerCase().includes(c)||t.description&&t.description.toLowerCase().includes(c))}const x=v(()=>C(_.value)),U=v(()=>C(p.value)),f=v(()=>C($.value)),S=v(()=>C(k.value)),w=v(()=>C(u.value)),I=v(()=>C(i.value)),N=v(()=>C(m.value)),z=v(()=>[...x.value,...U.value,...f.value,...S.value,...w.value,...I.value,...N.value]);function D(h){y("select",h)}return G(()=>{Y(()=>{var h;(h=b.value)==null||h.focus()})}),(h,c)=>(s(),o("div",re,[a("div",ce,[F(a("input",{ref_key:"searchInput",ref:b,"onUpdate:modelValue":c[0]||(c[0]=t=>r.value=t),type:"text",placeholder:"Search commands...",class:"search-input","data-testid":"command-search",onKeydown:c[1]||(c[1]=W(t=>y("close"),["escape"]))},null,544),[[M,r.value]])]),e.loading?(s(),o("div",me,[...c[2]||(c[2]=[a("span",{class:"loading-spinner"},null,-1),a("span",null,"Loading commands...",-1)])])):e.error?(s(),o("div",ue,[c[3]||(c[3]=a("span",{class:"error-icon"},"⚠️",-1)),a("span",null,d(e.error),1)])):z.value.length===0?(s(),o("div",he,[r.value?(s(),o("span",pe,'No commands match "'+d(r.value)+'"',1)):(s(),o("span",fe,"No slash commands available"))])):(s(),o("div",ve,[x.value.length>0&&!e.hideBuiltin?(s(),o("div",ge,[c[4]||(c[4]=a("h3",{class:"section-title"}," Built-in Commands ",-1)),a("div",_e,[(s(!0),o(B,null,V(x.value,t=>(s(),o("button",{key:t.name,type:"button",class:"command-card","data-testid":`command-${t.name}`,onClick:q=>D(t)},[a("span",ke,"/"+d(t.name),1),a("span",Ce,d(t.description||"No description"),1)],8,ye))),128))])])):g("",!0),U.value.length>0?(s(),o("div",be,[c[5]||(c[5]=a("h3",{class:"section-title"}," Project Commands ",-1)),a("div",Se,[(s(!0),o(B,null,V(U.value,t=>(s(),o("button",{key:t.name,type:"button",class:"command-card","data-testid":`command-${t.name}`,onClick:q=>D(t)},[a("span",xe,"/"+d(t.name),1),a("span",we,d(t.description||"No description"),1),t.arguments.length>0?(s(),o("span",Be,d(t.arguments.length)+" arg"+d(t.arguments.length>1?"s":""),1)):g("",!0)],8,$e))),128))])])):g("",!0),f.value.length>0?(s(),o("div",Ve,[c[6]||(c[6]=a("h3",{class:"section-title"}," User Commands ",-1)),a("div",je,[(s(!0),o(B,null,V(f.value,t=>(s(),o("button",{key:t.name,type:"button",class:"command-card","data-testid":`command-${t.name}`,onClick:q=>D(t)},[a("span",Ne,"/"+d(t.name),1),a("span",ze,d(t.description||"No description"),1),t.arguments.length>0?(s(),o("span",De,d(t.arguments.length)+" arg"+d(t.arguments.length>1?"s":""),1)):g("",!0)],8,Ie))),128))])])):g("",!0),S.value.length>0?(s(),o("div",qe,[c[7]||(c[7]=a("h3",{class:"section-title"}," Plugin Commands ",-1)),a("div",Ue,[(s(!0),o(B,null,V(S.value,t=>(s(),o("button",{key:t.name,type:"button",class:"command-card","data-testid":`command-${t.name}`,onClick:q=>D(t)},[a("span",Le,"/"+d(t.name),1),a("span",Me,d(t.description||"No description"),1),t.arguments.length>0?(s(),o("span",Oe,d(t.arguments.length)+" arg"+d(t.arguments.length>1?"s":""),1)):g("",!0)],8,Fe))),128))])])):g("",!0),w.value.length>0?(s(),o("div",Pe,[c[8]||(c[8]=a("h3",{class:"section-title"}," Project Skills ",-1)),a("div",He,[(s(!0),o(B,null,V(w.value,t=>(s(),o("button",{key:t.name,type:"button",class:"command-card","data-testid":`skill-${t.name}`,onClick:q=>D(t)},[a("span",Te,"/"+d(t.name),1),a("span",We,d(t.description||"No description"),1),t.argumentHint?(s(),o("span",Ee,d(t.argumentHint),1)):g("",!0)],8,Ae))),128))])])):g("",!0),I.value.length>0?(s(),o("div",Ke,[c[9]||(c[9]=a("h3",{class:"section-title"}," User Skills ",-1)),a("div",Ge,[(s(!0),o(B,null,V(I.value,t=>(s(),o("button",{key:t.name,type:"button",class:"command-card","data-testid":`skill-${t.name}`,onClick:q=>D(t)},[a("span",Je,"/"+d(t.name),1),a("span",Qe,d(t.description||"No description"),1),t.argumentHint?(s(),o("span",Ye,d(t.argumentHint),1)):g("",!0)],8,Re))),128))])])):g("",!0),N.value.length>0?(s(),o("div",Xe,[c[10]||(c[10]=a("h3",{class:"section-title"}," Plugin Skills ",-1)),a("div",Ze,[(s(!0),o(B,null,V(N.value,t=>(s(),o("button",{key:t.name,type:"button",class:"command-card","data-testid":`skill-${t.name}`,onClick:q=>D(t)},[a("span",tt,"/"+d(t.name),1),a("span",st,d(t.description||"No description"),1),t.argumentHint?(s(),o("span",nt,d(t.argumentHint),1)):g("",!0)],8,et))),128))])])):g("",!0)]))]))}},ot=L(at,[["__scopeId","data-v-5da1571d"]]),lt={class:"arguments-form"},it={class:"form-header"},dt={class:"command-title"},rt={key:0,class:"command-description"},ct={key:0,class:"form-field"},mt={for:"skill-args",class:"field-label"},ut={key:0,class:"hint"},ht=["placeholder","onKeydown"],pt=["for"],ft={key:0,class:"required-indicator"},vt=["id","onUpdate:modelValue","required","data-testid"],gt=["value"],_t=["id","onUpdate:modelValue","required","placeholder","data-testid"],yt=["id","onUpdate:modelValue","required","placeholder","data-testid"],kt={class:"form-actions"},Ct=["disabled"],bt={key:0,class:"loading-spinner"},St={__name:"ArgumentsForm",props:{command:{type:Object,required:!0},executing:{type:Boolean,default:!1},executeLabel:{type:String,default:"Execute Command"}},emits:["back","submit"],setup(e,{emit:n}){const l=e,y=n,r=j({}),b=j("");function _(){const k={};for(const u of l.command.arguments||[])k[u.name]=u.default!==void 0?u.default:"";r.value=k}G(()=>{_()}),T(()=>l.command,()=>{_()});const p=v(()=>{if(l.command.isSkill)return!0;for(const k of l.command.arguments||[])if(k.required){const u=r.value[k.name];if(u==null||u==="")return!1}return!0});function $(){if(!(!p.value||l.executing)){if(l.command.isSkill){y("submit",{_raw:b.value});return}y("submit",r.value)}}return(k,u)=>(s(),o("div",lt,[a("div",it,[a("h3",dt," /"+d(e.command.name),1),e.command.description?(s(),o("p",rt,d(e.command.description),1)):g("",!0)]),a("form",{class:"form-fields",onSubmit:A($,["prevent"])},[e.command.isSkill?(s(),o("div",ct,[a("label",mt,[u[2]||(u[2]=O(" Arguments ",-1)),e.command.argumentHint?(s(),o("span",ut,d(e.command.argumentHint),1)):g("",!0)]),F(a("input",{id:"skill-args","onUpdate:modelValue":u[0]||(u[0]=i=>b.value=i),type:"text",placeholder:e.command.argumentHint||"Enter arguments...",class:"field-input","data-testid":"skill-args-input",onKeydown:W(A($,["prevent"]),["enter"])},null,40,ht),[[M,b.value]])])):(s(!0),o(B,{key:1},V(e.command.arguments,i=>(s(),o("div",{key:i.name,class:"form-field"},[a("label",{for:`arg-${i.name}`,class:"field-label"},[O(d(i.label)+" ",1),i.required?(s(),o("span",ft,"*")):g("",!0)],8,pt),i.type==="select"?F((s(),o("select",{key:0,id:`arg-${i.name}`,"onUpdate:modelValue":m=>r.value[i.name]=m,required:i.required,class:"field-select","data-testid":`arg-${i.name}`},[u[3]||(u[3]=a("option",{value:"",disabled:""}," Select an option... ",-1)),(s(!0),o(B,null,V(i.options||[],m=>(s(),o("option",{key:m.value,value:m.value},d(m.label),9,gt))),128))],8,vt)),[[X,r.value[i.name]]]):i.type==="multiline"?F((s(),o("textarea",{key:1,id:`arg-${i.name}`,"onUpdate:modelValue":m=>r.value[i.name]=m,required:i.required,placeholder:i.placeholder||"",class:"field-textarea",rows:"4","data-testid":`arg-${i.name}`},null,8,_t)),[[M,r.value[i.name]]]):F((s(),o("input",{key:2,id:`arg-${i.name}`,"onUpdate:modelValue":m=>r.value[i.name]=m,type:"text",required:i.required,placeholder:i.placeholder||"",class:"field-input","data-testid":`arg-${i.name}`},null,8,yt)),[[M,r.value[i.name]]])]))),128)),a("div",kt,[a("button",{type:"button",class:"btn btn-secondary",onClick:u[1]||(u[1]=i=>y("back"))}," Back "),a("button",{type:"submit",class:"btn btn-primary",disabled:!p.value||e.executing,"data-testid":"execute-command-btn"},[e.executing?(s(),o("span",bt)):g("",!0),O(" "+d(e.executeLabel),1)],8,Ct)])],32)]))}},$t=L(St,[["__scopeId","data-v-e56eba15"]]),xt={class:"wizard-modal",role:"dialog","aria-labelledby":"wizard-title"},wt={class:"wizard-header"},Bt={id:"wizard-title",class:"wizard-title"},Vt={class:"wizard-content"},jt={__name:"SlashCommandWizard",props:{isOpen:{type:Boolean,required:!0},sessionId:{type:String,default:null},workingDirectory:{type:String,default:null},hideBuiltin:{type:Boolean,default:!1},mode:{type:String,default:"execute",validator:e=>["execute","insert"].includes(e)}},emits:["update:isOpen","executed","insert"],setup(e,{emit:n}){const l=e,y=n,r=de(),b=K(),_=j(1),p=j(null),$=j(!1),k=v(()=>l.hideBuiltin?r.customCommands:r.commands),u=v(()=>l.mode==="insert"?"Insert Command":"Execute Command");T(()=>l.isOpen,async f=>{if(f){_.value=1,p.value=null,console.log("[SlashCommandWizard] Opening wizard, workingDirectory:",l.workingDirectory);try{l.workingDirectory?(await r.fetchCommands(l.workingDirectory),console.log("[SlashCommandWizard] Fetched commands:",r.commands.length,"commands")):console.warn("[SlashCommandWizard] No workingDirectory provided, skipping command fetch")}catch(S){console.error("[SlashCommandWizard] Failed to fetch commands:",S)}}});function i(){y("update:isOpen",!1),_.value=1,p.value=null}function m(f){if(p.value=f,f.isSkill){_.value=2;return}!f.arguments||f.arguments.length===0?x({}):_.value=2}function C(){_.value=1,p.value=null}async function x(f){if(p.value){if(l.mode==="insert"){const S=U(p.value,f);y("insert",{command:p.value,args:f,text:S}),i();return}if(!l.sessionId){b.error("No session available to execute command");return}$.value=!0;try{await r.executeCommand(l.sessionId,p.value.name,f),y("executed",{command:p.value,args:f}),b.success(`Command /${p.value.name} executed`),i()}catch(S){b.error(`Failed to execute command: ${S.message}`)}finally{$.value=!1}}}function U(f,S){let w=`/${f.name}`;if(f.isSkill){const N=S._raw||"";return N&&(w+=` ${N}`),w}const I=[];for(const N of f.arguments||[]){const z=S[N.name];z!==void 0&&z!==""&&(typeof z=="string"&&z.includes(" ")?I.push(`"${z}"`):I.push(String(z)))}return I.length>0&&(w+=` ${I.join(" ")}`),w}return(f,S)=>(s(),P(se,{to:"body"},[Z(te,{name:"modal"},{default:ee(()=>{var w;return[e.isOpen?(s(),o("div",{key:0,class:"wizard-overlay","data-testid":"slash-command-wizard",onClick:A(i,["self"]),onKeydown:W(i,["escape"])},[a("div",xt,[a("header",wt,[a("h2",Bt,d(_.value===1?"Slash Commands":`Configure /${(w=p.value)==null?void 0:w.name}`),1),a("button",{type:"button",class:"close-btn","aria-label":"Close wizard",onClick:i}," × ")]),a("div",Vt,[_.value===1?(s(),P(ot,{key:0,commands:k.value,loading:E(r).loading,error:E(r).error,"hide-builtin":e.hideBuiltin,onSelect:m,onClose:i},null,8,["commands","loading","error","hide-builtin"])):_.value===2&&p.value?(s(),P($t,{key:1,command:p.value,executing:$.value,"execute-label":u.value,onBack:C,onSubmit:x},null,8,["command","executing","execute-label"])):g("",!0)])])],32)):g("",!0)]}),_:1})]))}},Ut=L(jt,[["__scopeId","data-v-138fa079"]]);export{Dt as M,qt as S,Ut as a};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as g,k as y,o as h,l as _,u as w,a as r,c as u,b as s,f as c,m as k,q as x,d as V,t as f,i as v,j as T,n as m}from"./index-BGAW2Nqa.js";import{u as P}from"./settings-6Rw9xt-G.js";import{R as C}from"./ResizableTextarea-Cw6aL4rp.js";import"./ApiClient-CcqJ-GAv.js";const R={key:0,class:"loading-state"},D={class:"form-group"},N={class:"checkbox-label"},B={class:"form-group"},M={key:0,class:"error-message"},U={class:"form-actions"},z=["disabled"],j={key:0,class:"loading-spinner"},q=["disabled"],E={__name:"SummarySettingsView",setup(I){const l=P(),p=y(),i=m(!1),n=m(""),a=m(!1),o=m(null);h(()=>{l.fetchSummarySettings()}),_(()=>l.summarySettings,t=>{t&&(i.value=t.disableSessionSummaries,n.value=t.sessionTitlePrompt||t.defaultSessionTitlePrompt||"")},{immediate:!0});async function S(){a.value=!0,o.value=null;try{await l.updateSummarySettings({disableSessionSummaries:i.value,sessionTitlePrompt:n.value}),p.success("Summary settings saved successfully")}catch(t){o.value=t.message}finally{a.value=!1}}async function b(){if(confirm("Reset all summary settings to defaults?")){a.value=!0,o.value=null;try{await l.resetSummarySettings(),p.success("Summary settings reset to defaults")}catch(t){o.value=t.message}finally{a.value=!1}}}return(t,e)=>w(l).loading?(r(),u("div",R,[...e[2]||(e[2]=[s("span",{class:"loading-spinner"},null,-1),c(" Loading... ",-1)])])):(r(),u("form",{key:1,class:"form card",onSubmit:T(S,["prevent"])},[s("div",D,[s("label",N,[k(s("input",{"onUpdate:modelValue":e[0]||(e[0]=d=>i.value=d),type:"checkbox"},null,512),[[x,i.value]]),e[3]||(e[3]=c(" Disable session summaries ",-1))]),e[4]||(e[4]=s("p",{class:"form-help"}," When enabled, automatic session summaries will not be generated. Session summaries provide an overview of what was accomplished. ",-1))]),s("div",B,[e[5]||(e[5]=s("label",{class:"form-label",for:"sessionTitlePrompt"},"Custom Session Title Prompt",-1)),V(C,{id:"sessionTitlePrompt",modelValue:n.value,"onUpdate:modelValue":e[1]||(e[1]=d=>n.value=d),class:"form-input form-textarea-small","min-height":120,"max-height":400},null,8,["modelValue"]),e[6]||(e[6]=s("p",{class:"form-help"}," Customize how session titles are generated. ",-1))]),o.value?(r(),u("div",M,f(o.value),1)):v("",!0),s("div",U,[s("button",{type:"submit",class:"btn btn-primary",disabled:a.value},[a.value?(r(),u("span",j)):v("",!0),c(" "+f(a.value?"Saving...":"Save Settings"),1)],8,z),s("button",{type:"button",class:"btn btn-secondary",disabled:a.value,onClick:b}," Reset to Defaults ",8,q)])],32))}},G=g(E,[["__scopeId","data-v-f7c13593"]]);export{G as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.loading-state[data-v-f7c13593]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:3rem}.form[data-v-f7c13593]{max-width:600px}.form-actions[data-v-f7c13593]{display:flex;justify-content:flex-end;gap:.75rem}.error-message[data-v-f7c13593]{color:var(--color-error);margin-bottom:1rem}.form-textarea-small[data-v-f7c13593]{min-height:120px;font-family:monospace;font-size:.875rem;line-height:1.5}.form-help[data-v-f7c13593]{margin-top:.5rem;font-size:.875rem;color:var(--color-text-muted)}.checkbox-label[data-v-f7c13593]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500}.checkbox-label input[type=checkbox][data-v-f7c13593]{width:1rem;height:1rem;cursor:pointer}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as N,k as $,o as G,a as s,c as r,b as t,f as y,d as p,w as O,m as v,v as S,p as V,F as R,r as F,t as i,i as B,j as C,n as d,x as I,g as q,h as P,s as z}from"./index-BGAW2Nqa.js";import{u as A,E as H}from"./EffortLevelSelector-xE3gidpq.js";import{a as Y}from"./ApiClient-CcqJ-GAv.js";import{M as J}from"./ModelSelector-B0RdlCHT.js";import{I as K}from"./InterpolationHelp-0GoSBPgf.js";import{R as Q}from"./ResizableTextarea-Cw6aL4rp.js";import"./sessions-Bs5FA6JZ.js";import"./settings-6Rw9xt-G.js";import"./providers-BdvbPVdE.js";const W={class:"container template-detail"},X={key:0,class:"loading-state"},Z={key:1,class:"form-container"},_={class:"form-header"},ee={class:"form-group"},te={class:"form-group"},le={class:"form-group"},oe=["value"],ae={class:"form-group"},ne={class:"form-group"},se={class:"form-group"},re={class:"form-group"},ie={class:"form-group"},de={class:"form-actions"},ue=["disabled"],me={key:0,class:"form-error-message"},pe={class:"modal-body"},ve={class:"modal-footer"},fe=["disabled"],be={__name:"TemplateDetailView",setup(ge){const E=z(),T=P(),f=A(),u=$(),k=d(!1),b=d(!1),g=d(!1),m=d(!1),n=d(null),l=d({name:"",prompt:"",isGlobal:!1,nextTemplateId:null,thinkingEnabled:null,gitBranch:"",model:null,mode:null,effortLevel:null}),x=I(()=>E.params.projectId),c=I(()=>E.params.templateId),D=I(()=>[...f.projectTemplates,...f.globalTemplates].filter(e=>e.id!==c.value)),L=async()=>{k.value=!0,n.value=null;try{const o=await Y.getTemplate(c.value);o&&(l.value={name:o.name,prompt:o.prompt,isGlobal:!o.projectId,nextTemplateId:o.nextTemplateId||null,thinkingEnabled:o.thinkingEnabled,gitBranch:o.gitBranch||"",model:o.model,mode:o.mode,effortLevel:o.effortLevel??null})}catch(o){n.value=`Failed to load template: ${o.message}`,u.error(o.message)}finally{k.value=!1}},w=async()=>{n.value=null,b.value=!0;try{const o={name:l.value.name,prompt:l.value.prompt,nextTemplateId:l.value.nextTemplateId||void 0,thinkingEnabled:l.value.thinkingEnabled,gitBranch:l.value.gitBranch||void 0,model:l.value.model,mode:l.value.mode,effortLevel:l.value.effortLevel};await f.updateTemplate(c.value,o),u.success("Template updated"),T.push(`/projects/${x.value}/templates`)}catch(o){n.value=o.message,u.error(o.message)}finally{b.value=!1}},U=()=>{T.back()},j=()=>{m.value=!0},h=async()=>{g.value=!0,n.value=null;try{await f.deleteTemplate(c.value),u.success("Template deleted"),m.value=!1,T.push(`/projects/${x.value}/templates`)}catch(o){n.value=o.message,u.error(o.message)}finally{g.value=!1}};return G(async()=>{await L()}),(o,e)=>{const M=q("router-link");return s(),r("div",W,[k.value?(s(),r("div",X,[...e[11]||(e[11]=[t("span",{class:"loading-spinner"},null,-1),y(" Loading... ",-1)])])):(s(),r("div",Z,[t("div",_,[p(M,{to:`/projects/${x.value}/templates`,class:"btn btn-outline-secondary"},{default:O(()=>[...e[12]||(e[12]=[y(" ← Back ",-1)])]),_:1},8,["to"]),e[13]||(e[13]=t("h2",null,"Edit Template",-1))]),t("form",{class:"template-form",onSubmit:C(w,["prevent"])},[t("div",ee,[e[14]||(e[14]=t("label",{for:"name"},"Name",-1)),v(t("input",{id:"name","onUpdate:modelValue":e[0]||(e[0]=a=>l.value.name=a),type:"text",class:"form-input",placeholder:"Template name",required:""},null,512),[[S,l.value.name]])]),t("div",te,[e[15]||(e[15]=t("label",{for:"prompt"},"Prompt",-1)),p(Q,{id:"prompt",modelValue:l.value.prompt,"onUpdate:modelValue":e[1]||(e[1]=a=>l.value.prompt=a),class:"form-input form-textarea",placeholder:"Session prompt. Use {{rootSession.summary}} to reference root session data.","min-height":120,required:""},null,8,["modelValue"]),p(K)]),t("div",le,[e[17]||(e[17]=t("label",{for:"nextTemplate"},"Next Template (Optional)",-1)),v(t("select",{id:"nextTemplate","onUpdate:modelValue":e[2]||(e[2]=a=>l.value.nextTemplateId=a),class:"form-input"},[e[16]||(e[16]=t("option",{value:null}," None ",-1)),(s(!0),r(R,null,F(D.value,a=>(s(),r("option",{key:a.id,value:a.id},i(a.name)+" "+i(a.projectId?"":"(Global)"),9,oe))),128))],512),[[V,l.value.nextTemplateId]]),e[18]||(e[18]=t("p",{class:"form-help"}," Chain another template to run after this one completes. ",-1))]),t("div",ae,[e[20]||(e[20]=t("label",{for:"thinkingEnabled"},"Extended Thinking",-1)),v(t("select",{id:"thinkingEnabled","onUpdate:modelValue":e[3]||(e[3]=a=>l.value.thinkingEnabled=a),class:"form-input"},[...e[19]||(e[19]=[t("option",{value:null}," Inherit from root session ",-1),t("option",{value:!0}," Enabled ",-1),t("option",{value:!1}," Disabled ",-1)])],512),[[V,l.value.thinkingEnabled]])]),t("div",ne,[e[21]||(e[21]=t("label",{for:"model"},"Model",-1)),p(J,{modelValue:l.value.model,"onUpdate:modelValue":e[4]||(e[4]=a=>l.value.model=a),"allow-empty":!0,"empty-label":"Inherit from root session"},null,8,["modelValue"])]),t("div",se,[e[23]||(e[23]=t("label",{for:"mode"},"Mode",-1)),v(t("select",{id:"mode","onUpdate:modelValue":e[5]||(e[5]=a=>l.value.mode=a),class:"form-input"},[...e[22]||(e[22]=[t("option",{value:null}," Inherit from root session ",-1),t("option",{value:"plan"}," Plan ",-1),t("option",{value:"standard"}," Standard ",-1),t("option",{value:"yolo"}," YOLO ",-1)])],512),[[V,l.value.mode]])]),t("div",re,[e[24]||(e[24]=t("label",{for:"effort-level"},"Effort Level",-1)),p(H,{modelValue:l.value.effortLevel,"onUpdate:modelValue":e[6]||(e[6]=a=>l.value.effortLevel=a)},null,8,["modelValue"])]),t("div",ie,[e[25]||(e[25]=t("label",{for:"gitBranch"},"Git Branch (Optional)",-1)),v(t("input",{id:"gitBranch","onUpdate:modelValue":e[7]||(e[7]=a=>l.value.gitBranch=a),type:"text",class:"form-input",placeholder:"Leave empty to inherit from root session"},null,512),[[S,l.value.gitBranch]])]),t("div",de,[t("button",{type:"button",class:"btn btn-outline-secondary",onClick:U}," Cancel "),t("button",{type:"button",class:"btn btn-outline-danger",onClick:j}," Delete "),t("button",{type:"submit",class:"btn btn-primary",disabled:b.value},i(b.value?"Saving...":"Save"),9,ue)]),n.value?(s(),r("div",me,i(n.value),1)):B("",!0)],32)])),m.value?(s(),r("div",{key:2,class:"modal-overlay",onClick:e[10]||(e[10]=a=>m.value=!1)},[t("div",{class:"modal-dialog",onClick:e[9]||(e[9]=C(()=>{},["stop"]))},[e[29]||(e[29]=t("div",{class:"modal-header"},[t("h4",null,"Delete Template")],-1)),t("div",pe,[t("p",null,[e[26]||(e[26]=y('Are you sure you want to delete "',-1)),t("strong",null,i(l.value.name),1),e[27]||(e[27]=y('"?',-1))]),e[28]||(e[28]=t("p",null,"This action cannot be undone.",-1))]),t("div",ve,[t("button",{class:"btn btn-outline-secondary",onClick:e[8]||(e[8]=a=>m.value=!1)}," Cancel "),t("button",{class:"btn btn-danger",disabled:g.value,onClick:h},i(g.value?"Deleting...":"Delete"),9,fe)])])])):B("",!0)])}}},Be=N(be,[["__scopeId","data-v-f2f40f55"]]);export{Be as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as v,E as i,C as _,s as W,t as e,a as g,r as x,L as V,f as k,l as E,i as U,c as N}from"./index-DMZZCi2u.js";import"./index-BGAW2Nqa.js";import"./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 j=168,X=169,C=170,I=1,D=2,w=3,L=171,F=172,Y=4,z=173,K=5,A=174,p=175,T=176,s=177,Z=6,G=7,B=8,H=9,c=0,R=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],M=58,J=40,m=95,OO=91,l=45,$O=46,f=35,eO=37,u=123,QO=125,d=47,S=42,r=10,q=61,tO=43,aO=38;function o(O){return O>=65&&O<=90||O>=97&&O<=122||O>=161}function y(O){return O>=48&&O<=57}function h(O){let $;return O.next==d&&(($=O.peek(1))==d||$==S)}const nO=new i((O,$)=>{if($.dialectEnabled(c)){let Q;if(O.next<0&&$.canShift(T))O.acceptToken(T);else if(((Q=O.peek(-1))==r||Q<0)&&$.canShift(p)){let t=0;for(;O.next!=r&&R.includes(O.next);)O.advance(),t++;O.next==r||h(O)?O.acceptToken(p,-t):t&&O.acceptToken(s)}else if(O.next==r)O.acceptToken(A,1);else if(R.includes(O.next)){for(O.advance();O.next!=r&&R.includes(O.next);)O.advance();O.acceptToken(s)}}else{let Q=0;for(;R.includes(O.next);)O.advance(),Q++;Q&&O.acceptToken(s)}},{contextual:!0}),rO=new i((O,$)=>{if(h(O)){if(O.advance(),$.dialectEnabled(c)){let Q=-1;for(let t=1;;t++){let a=O.peek(-t-1);if(a==r||a<0){Q=t+1;break}else if(!R.includes(a))break}if(Q>-1){let t=O.next==S,a=0;for(O.advance();O.next>=0;)if(O.next==r){O.advance();let n=0;for(;O.next!=r&&R.includes(O.next);)n++,O.advance();if(n<Q){a=-n-1;break}}else if(t&&O.next==S&&O.peek(1)==d){a=2;break}else O.advance();O.acceptToken(t?G:Z,a);return}}if(O.next==d){for(;O.next!=r&&O.next>=0;)O.advance();O.acceptToken(Z)}else{for(O.advance();O.next>=0;){let{next:Q}=O;if(O.advance(),Q==S&&O.next==d){O.advance();break}}O.acceptToken(G)}}}),RO=new i((O,$)=>{(O.next==tO||O.next==q)&&$.dialectEnabled(c)&&O.acceptToken(O.next==q?B:H,1)}),iO=new i((O,$)=>{if(!$.dialectEnabled(c))return;let Q=$.context.depth;if(O.next<0&&Q){O.acceptToken(X);return}if(O.peek(-1)==r){let a=0;for(;O.next!=r&&R.includes(O.next);)O.advance(),a++;a!=Q&&O.next!=r&&!h(O)&&(a<Q?O.acceptToken(X,-a):O.acceptToken(j))}}),oO=new i((O,$)=>{for(let Q=!1,t=0,a=0;;a++){let{next:n}=O;if(o(n)||n==l||n==m||Q&&y(n))!Q&&(n!=l||a>0)&&(Q=!0),t===a&&n==l&&t++,O.advance();else if(n==f&&O.peek(1)==u){O.acceptToken(K,2);break}else{Q&&O.acceptToken(t==2&&$.canShift(Y)?Y:$.canShift(z)?z:n==J?L:F);break}}}),lO=new i(O=>{if(O.next==QO){for(O.advance();o(O.next)||O.next==l||O.next==m||y(O.next);)O.advance();O.next==f&&O.peek(1)==u?O.acceptToken(D,2):O.acceptToken(I)}}),dO=new i(O=>{if(R.includes(O.peek(-1))){let{next:$}=O;(o($)||$==m||$==f||$==$O||$==OO||$==M&&o(O.peek(1))||$==l||$==aO||$==S)&&O.acceptToken(C)}}),SO=new i(O=>{if(!R.includes(O.peek(-1))){let{next:$}=O;if($==eO&&(O.advance(),O.acceptToken(w)),o($)){do O.advance();while(o(O.next)||y(O.next));O.acceptToken(w)}}});function b(O,$){this.parent=O,this.depth=$,this.hash=(O?O.hash+O.hash<<8:0)+$+($<<4)}const cO=new b(null,0),sO=new _({start:cO,shift(O,$,Q,t){return $==j?new b(O,Q.pos-t.pos):$==X?O.parent:O},hash(O){return O.hash}}),XO=W({"AtKeyword import charset namespace keyframes media supports include mixin use forward extend at-root":e.definitionKeyword,"Keyword selector":e.keyword,ControlKeyword:e.controlKeyword,NamespaceName:e.namespace,KeyframeName:e.labelName,KeyframeRangeName:e.operatorKeyword,TagName:e.tagName,"ClassName Suffix":e.className,PseudoClassName:e.constant(e.className),IdName:e.labelName,"FeatureName PropertyName":e.propertyName,AttributeName:e.attributeName,NumberLiteral:e.number,KeywordQuery:e.keyword,UnaryQueryOp:e.operatorKeyword,"CallTag ValueName":e.atom,VariableName:e.variableName,SassVariableName:e.special(e.variableName),Callee:e.operatorKeyword,Unit:e.unit,"UniversalSelector NestingSelector IndentedMixin IndentedInclude":e.definitionOperator,MatchOp:e.compareOperator,"ChildOp SiblingOp, LogicOp":e.logicOperator,BinOp:e.arithmeticOperator,"Important Global Default":e.modifier,Comment:e.blockComment,LineComment:e.lineComment,ColorLiteral:e.color,"ParenthesizedContent StringLiteral":e.string,"InterpolationStart InterpolationContinue InterpolationEnd":e.meta,': "..."':e.punctuation,"PseudoOp #":e.derefOperator,"; ,":e.separator,"( )":e.paren,"[ ]":e.squareBracket,"{ }":e.brace}),PO={__proto__:null,not:62,using:197,as:207,with:211,without:211,hide:225,show:225,if:263,from:269,to:271,through:273,in:279},mO={__proto__:null,url:82,"url-prefix":82,domain:82,regexp:82,lang:104,"nth-child":104,"nth-last-child":104,"nth-of-type":104,"nth-last-of-type":104,dir:104,"host-context":104},fO={__proto__:null,"@import":162,"@include":194,"@mixin":200,"@function":200,"@use":204,"@extend":214,"@at-root":218,"@forward":222,"@media":228,"@charset":232,"@namespace":236,"@keyframes":242,"@supports":254,"@if":258,"@else":260,"@for":266,"@each":276,"@while":282,"@debug":286,"@warn":286,"@error":286,"@return":286},yO={__proto__:null,layer:166,not:184,only:184,selector:190},hO=v.deserialize({version:14,states:"!$WQ`Q+tOOO#fQ+tOOP#mOpOOOOQ#U'#Ch'#ChO#rQ(pO'#CjOOQ#U'#Ci'#CiO%_Q)QO'#GXO%rQ.jO'#CnO&mQ#dO'#D]O'dQ(pO'#CgO'kQ)OO'#D_O'vQ#dO'#DfO'{Q#dO'#DiO(QQ#dO'#DqOOQ#U'#GX'#GXO(VQ(pO'#GXO(^Q(nO'#DuO%rQ.jO'#D}O%rQ.jO'#E`O%rQ.jO'#EcO%rQ.jO'#EeO(cQ)OO'#EjO)TQ)OO'#ElO%rQ.jO'#EnO)bQ)OO'#EqO%rQ.jO'#EsO)|Q)OO'#EuO*XQ)OO'#ExO*aQ)OO'#FOO*uQ)OO'#FbOOQ&Z'#GW'#GWOOQ&Y'#Fe'#FeO+PQ(nO'#FeQ`Q+tOOO%rQ.jO'#FQO+[Q(nO'#FUO+aQ)OO'#FZO%rQ.jO'#F^O%rQ.jO'#F`OOQ&Z'#Fm'#FmO+iQ+uO'#GaO+vQ(oO'#GaQOQ#SOOP,XO#SO'#GVPOOO)CAz)CAzOOQ#U'#Cm'#CmOOQ#U,59W,59WOOQ#i'#Cp'#CpO%rQ.jO'#CsO,xQ.wO'#CuO/dQ.^O,59YO%rQ.jO'#CzOOQ#S'#DP'#DPO/uQ(nO'#DUO/zQ)OO'#DZOOQ#i'#GZ'#GZO0SQ(nO'#DOOOQ#U'#D^'#D^OOQ#U,59w,59wO&mQ#dO,59wO0XQ)OO,59yO'vQ#dO,5:QO'{Q#dO,5:TO(cQ)OO,5:WO(cQ)OO,5:YO(cQ)OO,5:ZO(cQ)OO'#FlO0dQ(nO,59RO0oQ+tO'#DsO0vQ#TO'#DsOOQ&Z,59R,59ROOQ#U'#Da'#DaOOQ#S'#Dd'#DdOOQ#U,59y,59yO0{Q(nO,59yO1QQ(nO,59yOOQ#U'#Dh'#DhOOQ#U,5:Q,5:QOOQ#S'#Dj'#DjO1VQ9`O,5:TOOQ#U'#Dr'#DrOOQ#U,5:],5:]O2YQ.jO,5:aO2dQ.jO,5:iO3`Q.jO,5:zO3mQ.YO,5:}O4OQ.jO,5;POOQ#U'#Cj'#CjO4wQ(pO,5;UO5UQ(pO,5;WOOQ&Z,5;W,5;WO5]Q)OO,5;WO5bQ.jO,5;YOOQ#S'#ET'#ETO6TQ.jO'#E]O6kQ(nO'#GcO*aQ)OO'#EZO7PQ(nO'#E^OOQ#S'#Gd'#GdO0gQ(nO,5;]O4UQ.YO,5;_OOQ#d'#Ew'#EwO+PQ(nO,5;aO7UQ)OO,5;aOOQ#S'#Ez'#EzO7^Q(nO,5;dO7cQ(nO,5;jO7nQ(nO,5;|OOQ&Z'#Gf'#GfOOQ&Y,5<P,5<POOQ&Y-E9c-E9cO3mQ.YO,5;lO7|Q)OO,5;pO8RQ)OO'#GhO8ZQ)OO,5;uO3mQ.YO,5;xO4UQ.YO,5;zOOQ&Z-E9k-E9kO8`Q(oO,5<{OOQ&Z'#Gb'#GbO8qQ+uO'#FpO8`Q(oO,5<{POO#S'#Fd'#FdP9UO#SO,5<qPOOO,5<q,5<qO9dQ.YO,59_OOQ#i,59a,59aO%rQ.jO,59cO%rQ.jO,59hO%rQ.jO'#FiO9rQ#WO1G.tOOQ#k1G.t1G.tO9zQ.oO,59fO<pQ! lO,59pOOQ#d'#D['#D[OOQ#d'#Fh'#FhO<{Q)OO,59uOOQ#i,59u,59uO={Q.jO'#DQOOQ#i,59j,59jOOQ#U1G/c1G/cOOQ#U1G/e1G/eO0{Q(nO1G/eO1QQ(nO1G/eOOQ#U1G/l1G/lO>VQ9`O1G/oO>pQ(pO1G/rO?dQ(pO1G/tO@WQ(pO1G/uO@zQ(pO,5<WOOQ#S-E9j-E9jOOQ&Z1G.m1G.mOAXQ(nO,5:_OA^Q+uO,5:_OAeQ)OO'#DeOAlQ.jO'#DcOOQ#U1G/o1G/oO%rQ.jO1G/oOBkQ.jO'#DwOBuQ.kO1G/{OOQ#T1G/{1G/{OCrQ)OO'#EQO+PQ(nO1G0TO2pQ)OO1G0TODaQ+uO'#GfOOQ&Z1G0f1G0fO0SQ(nO1G0fOOQ&Z1G0i1G0iOOQ&Z1G0k1G0kO0SQ(nO1G0kOFyQ)OO1G0kOOQ&Z1G0p1G0pOOQ&Z1G0r1G0rOGRQ)OO1G0rOGWQ(nO1G0rOG]Q)OO1G0tOOQ&Z1G0t1G0tOGkQ.jO'#FsOG{Q#dO1G0tOHQQ!N^O'#CuOH]Q!NUO'#ETOHkQ!NUO,5:pOHsQ(nO,5:wOOQ#S'#Ge'#GeOHnQ!NUO,5:sO*aQ)OO,5:rOH{Q)OO'#FrOI`Q(nO,5<}OIqQ(nO,5:uO(cQ)OO,5:xOOQ&Z1G0w1G0wOOQ&Z1G0y1G0yOOQ&Z1G0{1G0{O+PQ(nO1G0{OJYQ)OO'#E{OOQ&Z1G1O1G1OOOQ&Z1G1U1G1UOOQ&Z1G1h1G1hOJeQ+uO1G1WO%rQ.jO1G1[OL}Q)OO'#FxOMYQ)OO,5=SO%rQ.jO1G1aOOQ&Z1G1d1G1dOOQ&Z1G1f1G1fOMbQ(oO1G2gOMsQ+uO,5<[OOQ#T,5<[,5<[OOQ#T-E9n-E9nPOO#S-E9b-E9bPOOO1G2]1G2]OOQ#i1G.y1G.yONWQ.oO1G.}OOQ#i1G/S1G/SO!!|Q.^O,5<TOOQ#W-E9g-E9gOOQ#k7+$`7+$`OOQ#i1G/[1G/[O!#_Q(nO1G/[OOQ#d-E9f-E9fOOQ#i1G/a1G/aO!#dQ.jO'#FfO!$qQ.jO'#G]O!&]Q.jO'#GZO!&dQ(nO,59lOOQ#U7+%P7+%POOQ#U7+%Z7+%ZO%rQ.jO7+%ZOOQ&Z1G/y1G/yO!&iQ#TO1G/yO!&nQ(pO'#G_O!&xQ(nO,5:PO!&}Q.jO'#G^O!'XQ(nO,59}O!'^Q.YO7+%ZO!'lQ.YO'#GZO!'}Q(nO,5:cOOQ#T,5:c,5:cO!(VQ.kO'#FoO%rQ.jO'#FoO!)yQ.kO7+%gOOQ#T7+%g7+%gO!*mQ#dO,5:lOOQ&Z7+%o7+%oO+PQ(nO7+%oO7nQ(nO7+&QO+PQ(nO7+&VOOQ#d'#Eh'#EhO!*rQ)OO7+&VO!+QQ(nO7+&^O*aQ)OO7+&^OOQ#d-E9q-E9qOOQ&Z7+&`7+&`O!+VQ.jO'#GgOOQ#d,5<_,5<_OF|Q(nO7+&`O%rQ.jO1G0[O!+qQ.jO1G0_OOQ#S1G0c1G0cOOQ#S1G0^1G0^O!+xQ(nO,5<^OOQ#S-E9p-E9pO!,^Q(pO1G0dOOQ&Z7+&g7+&gO,gQ(vO'#CuOOQ#S'#E}'#E}O!,eQ(nO'#E|OOQ#S'#E|'#E|O!,sQ(nO'#FuO!-OQ)OO,5;gOOQ&Z,5;g,5;gO!-ZQ+uO7+&rO!/sQ)OO7+&rO!0OQ.jO7+&vOOQ#d,5<d,5<dOOQ#d-E9v-E9vO3mQ.YO7+&{OOQ#T1G1v1G1vOOQ#i7+$v7+$vOOQ#d-E9d-E9dO!0aQ.jO'#FgO!0nQ(nO,5<wO!0nQ(nO,5<wO%rQ.jO,5<wOOQ#i1G/W1G/WO!0vQ.YO<<HuOOQ&Z7+%e7+%eO!1UQ)OO'#FkO!1`Q(nO,5<yOOQ#U1G/k1G/kO!1hQ.jO'#FjO!1rQ(nO,5<xOOQ#U1G/i1G/iOOQ#U<<Hu<<HuO1_Q.jO,5<YO!1zQ(nO'#FnOOQ#S-E9l-E9lOOQ#T1G/}1G/}O!2PQ.kO,5<ZOOQ#e-E9m-E9mOOQ#T<<IR<<IROOQ#S'#ES'#ESO!3sQ(nO1G0WOOQ&Z<<IZ<<IZOOQ&Z<<Il<<IlOOQ&Z<<Iq<<IqO0SQ(nO<<IqO*aQ)OO<<IxO!3{Q(nO<<IxO!4TQ.jO'#FtO!4hQ)OO,5=ROG]Q)OO<<IzO!4yQ.jO7+%vOOQ#S'#EV'#EVO!5QQ!NUO7+%yOOQ#S7+&O7+&OOOQ#S,5;h,5;hOJ]Q)OO'#FvO!,sQ(nO,5<aOOQ#d,5<a,5<aOOQ#d-E9s-E9sOOQ&Z1G1R1G1ROOQ&Z-E9u-E9uO!/sQ)OO<<J^O%rQ.jO,5<cOOQ&Z<<J^<<J^O%rQ.jO<<JbOOQ&Z<<Jg<<JgO!5YQ.jO,5<RO!5gQ.jO,5<ROOQ#S-E9e-E9eO!5nQ(nO1G2cO!5vQ.jO1G2cOOQ#UAN>aAN>aO!6QQ(pO,5<VOOQ#S-E9i-E9iO!6[Q.jO,5<UOOQ#S-E9h-E9hO!6fQ.YO1G1tO!6oQ(nO1G1tO!*mQ#dO'#FqO!6zQ(nO7+%rOOQ#d7+%r7+%rO+PQ(nOAN?]O!7SQ(nOAN?dO0gQ(nOAN?dO!7[Q.jO,5<`OOQ#d-E9r-E9rOG]Q)OOAN?fOOQ&ZAN?fAN?fOOQ#S<<Ib<<IbOOQ#S<<Ie<<IeO!7vQ.jO<<IeOOQ#S,5<b,5<bOOQ#S-E9t-E9tOOQ#d1G1{1G1{P!8_Q)OO'#FwOOQ&ZAN?xAN?xO3mQ.YO1G1}O3mQ.YOAN?|OOQ#S1G1m1G1mO%rQ.jO1G1mO!8dQ(nO7+'}OOQ#S7+'`7+'`OOQ#S,5<],5<]OOQ#S-E9o-E9oOOQ#d<<I^<<I^OOQ&ZG24wG24wO0gQ(nOG25OOOQ&ZG25OG25OOOQ&ZG25QG25QO!8lQ(nOAN?POOQ&Z7+'i7+'iOOQ&ZG25hG25hO!8qQ.jO7+'XOOQ&ZLD*jLD*jOOQ#SG24kG24k",stateData:"!9R~O$wOSVOSUOS$uQQ~OS`OTVOWcOXbO_UOc`OqWOuYO|[O!SYO!ZZO!rmO!saO#TbO#WcO#YdO#_eO#afO#cgO#fhO#hiO#jjO#mkO#slO#urO#ysO$OtO$RuO$TvO$rSO$|RO%S]O~O$m%TP~P`O$u{O~Oq^Xu^Xu!jXw^X|^X!S^X!Z^X!a^X!d^X!h^X$p^X$t^X~Oq${Xu${Xw${X|${X!S${X!Z${X!a${X!d${X!h${X$p${X$t${X~O$r}O!o${X$v${Xf${Xe${X~P$jOS!XOTVO_!XOc!XOf!QOh!XOj!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~O$r!ZO~Oq!]Ou!^O|!`O!S!^O!Z!_O!a!aO!d!cO!h!fO$p!bO$t!gO~Ow!dO~P&rO!U!mO$q!jO$r!iO~O$r!nO~O$r!pO~O$r!rO~Ou!tO~P$jOu!tO~OTVO_UOqWOuYO|[O!SYO!ZZO$r!yO$|RO%S]O~Of!}O!h!fO$t!gO~P(cOTVOc#UOf#QO#O#SO#R#TO$s#PO!h%VP$t%VP~Oj#YOy!VO$r#XO~Oj#[O$r#[O~OTVOc#UOf#QO#O#SO#R#TO$s#PO~O!o%VP$v%VP~P)bO!o#`O$t#`O$v#`O~Oc#dO~Oc#eO$P%[P~O$m%TX!p%TX$o%TX~P`O!o#kO$t#kO$m%TX!p%TX$o%TX~OU#nOV#nO$t#pO$w#nO~OR#rO$tiX!hiXeiXwiX~OPiXQiXliXmiXqiXTiXciXfiX!oiX!uiX#OiX#RiX$siX$viX#UiX#ZiX#]iX#diXSiX_iXhiXjiXoiXyiX|iX!liX!miX!niX$qiX$riX%OiX$miXviX{iX#{iX#|iX!piX$oiX~P,gOP#wOQ#uOl#sOm#sOq#tO~Of#yO~O{#}O$r#zO~Of$OO~O!U$TO$q!jO$r!iO~Ow!dO!h!fO$t!gO~O!p%TP~P`O$n$_O~Of$`O~Of$aO~O{$bO!_$cO~OS!XOTVO_!XOc!XOf$dOh!XOj!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~O!h!fO$t!gO~P1_Ol#sOm#sOq#tO!u$gO!o%VP$t%VP$v%VP~P*aOl#sOm#sOq#tO!o#`O$v#`O~O!h!fO#U$lO$t$jO~P2}Ol#sOm#sOq#tO!h!fO$t!gO~O#Z$pO#]$oO$t#`O~P2}Oq!]Ou!^O|!`O!S!^O!Z!_O!a!aO!d!cO$p!bO~O!o#`O$t#`O$v#`O~P4]Of$sO~P&rO#]$tO~O#Z$xO#d$wO$t#`O~P2}OS$}Oh$}Oj$}Oy!VO$q!UO%O$yO~OTVOc#UOf#QO#O#SO#R#TO$s$zO~P5oOm%POw%QO!h%VX$t%VX!o%VX$v%VX~Of%TO~Oj%XOy!VO~O!h%YO~Om%PO!h!fO$t!gO~O!h!fO!o#`O$t$jO$v#`O~O#z%_O~Ow%`O$P%[X~O$P%bO~O!o#kO$t#kO$m%Ta!p%Ta$o%Ta~O!o$dX$m$dX$t$dX!p$dX$o$dX~P`OU#nOV#nO$t%jO$w#nO~Oe%kOl#sOm#sOq#tO~OP%pOQ#uO~Ol#sOm#sOq#tOPnaQnaTnacnafna!ona!una#Ona#Rna$sna$tna$vna!hna#Una#Zna#]na#dnaenaSna_nahnajnaonawnayna|na!lna!mna!nna$qna$rna%Ona$mnavna{na#{na#|na!pna$ona~Oe%qOj%rOz%rO~O{%tO$r#zO~OS!XOTVO_!XOf!QOh!XOj!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~Oc%wOe%PP~P=TO{%zO!_%{O~Oq!]Ou!^O|!`O!S!^O!Z!_O~Ow!`i!a!`i!d!`i!h!`i$p!`i$t!`i!o!`i$v!`if!`ie!`i~P>_Ow!bi!a!bi!d!bi!h!bi$p!bi$t!bi!o!bi$v!bif!bie!bi~P>_Ow!ci!a!ci!d!ci!h!ci$p!ci$t!ci!o!ci$v!cif!cie!ci~P>_Ow$`a!h$`a$t$`a~P4]O!p%|O~O$o%TP~P`Oe%RP~P(cOe%QP~P%rOS!XOTVO_!XOc!XOf!QOh!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~Oe&VOj&TO~PAsOl#sOm#sOq#tOw&XO!l&ZO!m&ZO!n&ZO!o!ii$t!ii$v!ii$m!ii!p!ii$o!ii~P%rOf&[OT!tXc!tX!o!tX#O!tX#R!tX$s!tX$t!tX$v!tX~O$n$_OS%YXT%YXW%YXX%YX_%YXc%YXq%YXu%YX|%YX!S%YX!Z%YX!r%YX!s%YX#T%YX#W%YX#Y%YX#_%YX#a%YX#c%YX#f%YX#h%YX#j%YX#m%YX#s%YX#u%YX#y%YX$O%YX$R%YX$T%YX$m%YX$r%YX$|%YX%S%YX!p%YX!o%YX$t%YX$o%YX~O$r!PO$|&aO~O#]&cO~Ou&dO~O!o#`O#d$wO$t#`O$v#`O~O!o%ZP#d%ZP$t%ZP$v%ZP~P%rO$r!PO~OR#rO!|iXeiX~Oe!wXm!wXu!yX!|!yX~Ou&jO!|&kO~Oe&lOm%PO~Ow$fX!h$fX$t$fX!o$fX$v$fX~P*aOw%QO!h%Va$t%Va!o%Va$v%Va~Om%POw!}a!h!}a$t!}a!o!}a$v!}ae!}a~O!p&xO$r&sO%O&rO~O#v&zOS#tiT#tiW#tiX#ti_#tic#tiq#tiu#ti|#ti!S#ti!Z#ti!r#ti!s#ti#T#ti#W#ti#Y#ti#_#ti#a#ti#c#ti#f#ti#h#ti#j#ti#m#ti#s#ti#u#ti#y#ti$O#ti$R#ti$T#ti$m#ti$r#ti$|#ti%S#ti!p#ti!o#ti$t#ti$o#ti~Oc&|Ow$lX$P$lX~Ow%`O$P%[a~O!o#kO$t#kO$m%Ti!p%Ti$o%Ti~O!o$da$m$da$t$da!p$da$o$da~P`Oq#tOPkiQkilkimkiTkickifki!oki!uki#Oki#Rki$ski$tki$vki!hki#Uki#Zki#]ki#dkiekiSki_kihkijkiokiwkiyki|ki!lki!mki!nki$qki$rki%Oki$mkivki{ki#{ki#|ki!pki$oki~Ol#sOm#sOq#tOP$]aQ$]a~Oe'QO~Ol#sOm#sOq#tOS$YXT$YX_$YXc$YXe$YXf$YXh$YXj$YXo$YXv$YXw$YXy$YX|$YX$q$YX$r$YX%O$YX~Ov'UOw'SOe%PX~P%rOS$}XT$}X_$}Xc$}Xe$}Xf$}Xh$}Xj$}Xl$}Xm$}Xo$}Xq$}Xv$}Xw$}Xy$}X|$}X$q$}X$r$}X%O$}X~Ou'VO~P!%OOe'WO~O$o'YO~Ow'ZOe%RX~P4]Oe']O~Ow'^Oe%QX~P%rOe'`O~Ol#sOm#sOq#tO{'aO~Ou'bOe$}Xl$}Xm$}Xq$}X~Oe'eOj'cO~Ol#sOm#sOq#tOS$cXT$cX_$cXc$cXf$cXh$cXj$cXo$cXw$cXy$cX|$cX!l$cX!m$cX!n$cX!o$cX$q$cX$r$cX$t$cX$v$cX%O$cX$m$cX!p$cX$o$cX~Ow&XO!l'hO!m'hO!n'hO!o!iq$t!iq$v!iq$m!iq!p!iq$o!iq~P%rO$r'iO~O!o#`O#]'nO$t#`O$v#`O~Ou'oO~Ol#sOm#sOq#tOw'qO!o%ZX#d%ZX$t%ZX$v%ZX~O$s'uO~P5oOm%POw$fa!h$fa$t$fa!o$fa$v$fa~Oe'wO~P4]O%O&rOw#pX!h#pX$t#pX~Ow'yO!h!fO$t!gO~O!p'}O$r&sO%O&rO~O#v(POS#tqT#tqW#tqX#tq_#tqc#tqq#tqu#tq|#tq!S#tq!Z#tq!r#tq!s#tq#T#tq#W#tq#Y#tq#_#tq#a#tq#c#tq#f#tq#h#tq#j#tq#m#tq#s#tq#u#tq#y#tq$O#tq$R#tq$T#tq$m#tq$r#tq$|#tq%S#tq!p#tq!o#tq$t#tq$o#tq~O!h!fO#w(QO$t!gO~Ol#sOm#sOq#tO#{(SO#|(SO~Oc(VOe$ZXw$ZX~P=TOw'SOe%Pa~Ol#sOm#sOq#tO{(ZO~Oe$_Xw$_X~P(cOw'ZOe%Ra~Oe$^Xw$^X~P%rOw'^Oe%Qa~Ou'bO~Ol#sOm#sOq#tOS$caT$ca_$cac$caf$cah$caj$cao$caw$cay$ca|$ca!l$ca!m$ca!n$ca!o$ca$q$ca$r$ca$t$ca$v$ca%O$ca$m$ca!p$ca$o$ca~Oe(dOq(bO~Oe(gOm%PO~Ow$hX!o$hX#d$hX$t$hX$v$hX~P%rOw'qO!o%Za#d%Za$t%Za$v%Za~Oe(lO~P%rOe(mO!|(nO~Ov(vOe$Zaw$Za~P%rOu(wO~P!%OOw'SOe%Pi~Ow'SOe%Pi~P%rOe$_aw$_a~P4]Oe$^aw$^a~P%rOl#sOm#sOq#tOw(yOe$bij$bi~Oe(|Oq(bO~Oe)OOm%PO~Ol#sOm#sOq#tOw$ha!o$ha#d$ha$t$ha$v$ha~OS$}Oh$}Oj$}Oy!VO$q!UO$s'uO%O&rO~O#w(QO~Ow'SOe%Pq~Oe)WO~Oe$Zqw$Zq~P%rO%Oql!dl~",goto:"=Y%]PPPPPPPPPPP%^%h%h%{P%h&`&cP(UPP)ZP*YP)ZPP)ZP)ZP+f,j-lPPP-xPPPP)Z/S%h/W%hP/^P/d/j/p%hP/v%h/|P%hP%h%hP%h0S0VP1k1}2XPPPPP%^PP2_P2b'w'w2h'w'wP'wP'w'wP%^PP%^P%^PP2qP%^P%^P%^PP%^P%^P%^P2w%^P2z2}3Q3X%^P%^PPP%^PPPP%^PP%^P%^P%^P3^3d3j4Y4h4n4t4z5Q5W5d5j5p5z6Q6W6b6h6n6t6zPPPPPPPPPPPP7Q7T7aP8WP:_:b:eP:h:q:w;T;p;y=S=VanOPqx!f#l$_%fs^OPefqx!a!b!c!d!f#l$_$`%T%f'ZsTOPefqx!a!b!c!d!f#l$_$`%T%f'ZR!OUb^ef!a!b!c!d$`%T'Z`_OPqx!f#l$_%f!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)Ug#Uhlm!u#Q#S$i%P%Q&d'o!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UQ&b$pR&i$x!y!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)U!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UU$}#Q&k(nU&u%Y&w'yR'x&t!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UV$}#Q&k(n#P!YVabcdgiruv!Q!T!t#Q#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j&k'S'V'^'b'q't(Q(S(U(Y(^(n(w)UQ$P!YQ&_$lQ&`$oR(e'n!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UQ#YjU$}#Q&k(nR%X#ZT#{!W#|Q![WR$Q!]Q!kYR$R!^Q$R!mR%y$TQ!lYR$S!^Q$R!lR%y$SQ!oZR$U!_Q!q[R$V!`R!s]Q!hXQ!|fQ$]!eQ$f!tQ$k!vQ$m!wQ$r!{Q%U#VQ%[#^Q%]#_Q%^#cQ%c#gQ'l&_Q'{&vQ(R&zQ(T'OQ(q'zQ(s(PQ)P(gQ)S(tQ)T(uR)V)OSpOqUyP!f$_Q#jxQ%g#lR'P%fa`OPqx!f#l$_%fQ$f!tR(a'bR$i!uQ'j&[R(z(bQ${#QQ'v&kR)R(nQ&b$pR's&iR#ZjR#]kR%Z#]S&v%Y&wR(o'yV&t%Y&w'yQ#o{R%i#oQqOR#bqQ%v$OQ&Q$a^'R%v&Q't(U(Y(^)UQ't&jQ(U'SQ(Y'VQ(^'^R)U(wQ'T%vU(W'T(X(xQ(X'UR(x(YQ#|!WR%s#|Q#v!SR%o#vQ'_&QR(_'_Q'[&OR(]'[Q!eXR$[!eUxP!f$_S#ix%fR%f#lQ&U$dR'd&UQ&Y$eR'g&YQ#myQ%e#jT%h#m%eQ(c'jR({(cQ%R#RR&o%RQ$u#OS&e$u(jR(j'sQ'r&gR(i'rQ&w%YR'|&wQ'z&vR(p'zQ&y%^R(O&yQ%a#eR&}%aR|QSoOq]wPx!f#l$_%f`XOPqx!f#l$_%fQ!zeQ!{fQ$W!aQ$X!bQ$Y!cQ$Z!dQ&O$`Q&p%TR(['ZQ!SVQ!uaQ!vbQ!wcQ!xdQ#OgQ#WiQ#crQ#guQ#hvS#q!Q$dQ#x!TQ$e!tQ%l#sQ%m#tQ%n#ul%u$O$a%v&Q&j'S'V'^'t(U(Y(^(w)UQ&S$cS&W$e&YQ&g$wQ&{%_Q'O%bQ'X%{Q'f&XQ(`'bQ(h'qQ(t(QR(u(SR%x$OR&R$aR&P$`QzPQ$^!fR%}$_X#ly#j#m%eQ#VhQ#_mQ$h!uR&^$iW#Rhm!u$iQ#^lQ$|#QQ%S#SQ&m%PQ&n%QQ'p&dR(f'oQ%O#QQ'v&kR)R(nQ#apQ$k!vQ$n!xQ$q!zQ$v#OQ%V#WQ%W#YQ%]#_Q%d#hQ&]$hQ&f$uQ&q%XQ'k&^Q'l&_S'm&`&bQ(k'sQ(}(eR)Q(jR&h$wR#ft",nodeNames:"⚠ InterpolationEnd InterpolationContinue Unit VariableName InterpolationStart LineComment Comment IndentedMixin IndentedInclude StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector SuffixedSelector Suffix Interpolation SassVariableName ValueName ) ( ParenthesizedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp LogicOp UnaryExpression LogicOp NamespacedValue . CallExpression Callee ArgList : ... , CallLiteral CallTag ParenthesizedContent ] [ LineNames LineName ClassSelector ClassName PseudoClassSelector :: PseudoClassName PseudoClassName ArgList PseudoClassName ArgList IdSelector # IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp PlaceholderSelector ClassName Block { Declaration PropertyName Map Important Global Default ; } ImportStatement AtKeyword import Layer layer LayerName KeywordQuery FeatureQuery FeatureName BinaryQuery ComparisonQuery CompareOp UnaryQuery LogicOp ParenthesizedQuery SelectorQuery selector IncludeStatement include Keyword MixinStatement mixin UseStatement use Keyword Star Keyword ExtendStatement extend RootStatement at-root ForwardStatement forward Keyword MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports IfStatement ControlKeyword ControlKeyword Keyword ForStatement ControlKeyword Keyword Keyword Keyword EachStatement ControlKeyword Keyword WhileStatement ControlKeyword OutputStatement ControlKeyword AtRule Styles",maxTerm:196,context:sO,nodeProps:[["openedBy",1,"InterpolationStart",5,"InterpolationEnd",21,"(",43,"[",78,"{"],["isolate",-3,6,7,26,""],["closedBy",22,")",44,"]",70,"}"]],propSources:[XO],skippedNodes:[0,6,7,146],repeatNodeCount:21,tokenData:"!$Q~RyOq#rqr$jrs0jst2^tu8{uv;hvw;{wx<^xy={yz>^z{>c{|>||}Co}!ODQ!O!PDo!P!QFY!Q![Fk![!]Gf!]!^Hb!^!_Hs!_!`Is!`!aJ^!a!b#r!b!cKa!c!}#r!}#OMn#O#P#r#P#QNP#Q#RNb#R#T#r#T#UNw#U#c#r#c#d!!Y#d#o#r#o#p!!o#p#qNb#q#r!#Q#r#s!#c#s;'S#r;'S;=`!#z<%lO#rW#uSOy$Rz;'S$R;'S;=`$d<%lO$RW$WSzWOy$Rz;'S$R;'S;=`$d<%lO$RW$gP;=`<%l$RY$m[Oy$Rz!_$R!_!`%c!`#W$R#W#X%v#X#Z$R#Z#[)Z#[#]$R#]#^,V#^;'S$R;'S;=`$d<%lO$RY%jSzWlQOy$Rz;'S$R;'S;=`$d<%lO$RY%{UzWOy$Rz#X$R#X#Y&_#Y;'S$R;'S;=`$d<%lO$RY&dUzWOy$Rz#Y$R#Y#Z&v#Z;'S$R;'S;=`$d<%lO$RY&{UzWOy$Rz#T$R#T#U'_#U;'S$R;'S;=`$d<%lO$RY'dUzWOy$Rz#i$R#i#j'v#j;'S$R;'S;=`$d<%lO$RY'{UzWOy$Rz#`$R#`#a(_#a;'S$R;'S;=`$d<%lO$RY(dUzWOy$Rz#h$R#h#i(v#i;'S$R;'S;=`$d<%lO$RY(}S!nQzWOy$Rz;'S$R;'S;=`$d<%lO$RY)`UzWOy$Rz#`$R#`#a)r#a;'S$R;'S;=`$d<%lO$RY)wUzWOy$Rz#c$R#c#d*Z#d;'S$R;'S;=`$d<%lO$RY*`UzWOy$Rz#U$R#U#V*r#V;'S$R;'S;=`$d<%lO$RY*wUzWOy$Rz#T$R#T#U+Z#U;'S$R;'S;=`$d<%lO$RY+`UzWOy$Rz#`$R#`#a+r#a;'S$R;'S;=`$d<%lO$RY+yS!mQzWOy$Rz;'S$R;'S;=`$d<%lO$RY,[UzWOy$Rz#a$R#a#b,n#b;'S$R;'S;=`$d<%lO$RY,sUzWOy$Rz#d$R#d#e-V#e;'S$R;'S;=`$d<%lO$RY-[UzWOy$Rz#c$R#c#d-n#d;'S$R;'S;=`$d<%lO$RY-sUzWOy$Rz#f$R#f#g.V#g;'S$R;'S;=`$d<%lO$RY.[UzWOy$Rz#h$R#h#i.n#i;'S$R;'S;=`$d<%lO$RY.sUzWOy$Rz#T$R#T#U/V#U;'S$R;'S;=`$d<%lO$RY/[UzWOy$Rz#b$R#b#c/n#c;'S$R;'S;=`$d<%lO$RY/sUzWOy$Rz#h$R#h#i0V#i;'S$R;'S;=`$d<%lO$RY0^S!lQzWOy$Rz;'S$R;'S;=`$d<%lO$R~0mWOY0jZr0jrs1Vs#O0j#O#P1[#P;'S0j;'S;=`2W<%lO0j~1[Oj~~1_RO;'S0j;'S;=`1h;=`O0j~1kXOY0jZr0jrs1Vs#O0j#O#P1[#P;'S0j;'S;=`2W;=`<%l0j<%lO0j~2ZP;=`<%l0jZ2cY!ZPOy$Rz!Q$R!Q![3R![!c$R!c!i3R!i#T$R#T#Z3R#Z;'S$R;'S;=`$d<%lO$RY3WYzWOy$Rz!Q$R!Q![3v![!c$R!c!i3v!i#T$R#T#Z3v#Z;'S$R;'S;=`$d<%lO$RY3{YzWOy$Rz!Q$R!Q![4k![!c$R!c!i4k!i#T$R#T#Z4k#Z;'S$R;'S;=`$d<%lO$RY4rYhQzWOy$Rz!Q$R!Q![5b![!c$R!c!i5b!i#T$R#T#Z5b#Z;'S$R;'S;=`$d<%lO$RY5iYhQzWOy$Rz!Q$R!Q![6X![!c$R!c!i6X!i#T$R#T#Z6X#Z;'S$R;'S;=`$d<%lO$RY6^YzWOy$Rz!Q$R!Q![6|![!c$R!c!i6|!i#T$R#T#Z6|#Z;'S$R;'S;=`$d<%lO$RY7TYhQzWOy$Rz!Q$R!Q![7s![!c$R!c!i7s!i#T$R#T#Z7s#Z;'S$R;'S;=`$d<%lO$RY7xYzWOy$Rz!Q$R!Q![8h![!c$R!c!i8h!i#T$R#T#Z8h#Z;'S$R;'S;=`$d<%lO$RY8oShQzWOy$Rz;'S$R;'S;=`$d<%lO$R_9O`Oy$Rz}$R}!O:Q!O!Q$R!Q![:Q![!_$R!_!`;T!`!c$R!c!}:Q!}#R$R#R#S:Q#S#T$R#T#o:Q#o;'S$R;'S;=`$d<%lO$RZ:X^zWcROy$Rz}$R}!O:Q!O!Q$R!Q![:Q![!c$R!c!}:Q!}#R$R#R#S:Q#S#T$R#T#o:Q#o;'S$R;'S;=`$d<%lO$R[;[S!_SzWOy$Rz;'S$R;'S;=`$d<%lO$RZ;oS%SPlQOy$Rz;'S$R;'S;=`$d<%lO$RZ<QS_ROy$Rz;'S$R;'S;=`$d<%lO$R~<aWOY<^Zw<^wx1Vx#O<^#O#P<y#P;'S<^;'S;=`=u<%lO<^~<|RO;'S<^;'S;=`=V;=`O<^~=YXOY<^Zw<^wx1Vx#O<^#O#P<y#P;'S<^;'S;=`=u;=`<%l<^<%lO<^~=xP;=`<%l<^Z>QSfROy$Rz;'S$R;'S;=`$d<%lO$R~>cOe~_>jU$|PlQOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RZ?TWlQ!dPOy$Rz!O$R!O!P?m!P!Q$R!Q![Br![;'S$R;'S;=`$d<%lO$RZ?rUzWOy$Rz!Q$R!Q![@U![;'S$R;'S;=`$d<%lO$RZ@]YzW%OROy$Rz!Q$R!Q![@U![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RZAQYzWOy$Rz{$R{|Ap|}$R}!OAp!O!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZAuUzWOy$Rz!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZB`UzW%OROy$Rz!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZBy[zW%OROy$Rz!O$R!O!P@U!P!Q$R!Q![Br![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RZCtSwROy$Rz;'S$R;'S;=`$d<%lO$RZDVWlQOy$Rz!O$R!O!P?m!P!Q$R!Q![Br![;'S$R;'S;=`$d<%lO$RZDtWqROy$Rz!O$R!O!PE^!P!Q$R!Q![@U![;'S$R;'S;=`$d<%lO$RYEcUzWOy$Rz!O$R!O!PEu!P;'S$R;'S;=`$d<%lO$RYE|SvQzWOy$Rz;'S$R;'S;=`$d<%lO$RYF_SlQOy$Rz;'S$R;'S;=`$d<%lO$RZFp[%OROy$Rz!O$R!O!P@U!P!Q$R!Q![Br![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RkGkUucOy$Rz![$R![!]G}!];'S$R;'S;=`$d<%lO$RXHUS!SPzWOy$Rz;'S$R;'S;=`$d<%lO$RZHgS!oROy$Rz;'S$R;'S;=`$d<%lO$RjHzU!|`lQOy$Rz!_$R!_!`I^!`;'S$R;'S;=`$d<%lO$RjIgS!|`zWlQOy$Rz;'S$R;'S;=`$d<%lO$RnIzU!|`!_SOy$Rz!_$R!_!`%c!`;'S$R;'S;=`$d<%lO$RkJgV!aP!|`lQOy$Rz!_$R!_!`I^!`!aJ|!a;'S$R;'S;=`$d<%lO$RXKTS!aPzWOy$Rz;'S$R;'S;=`$d<%lO$RXKdYOy$Rz}$R}!OLS!O!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RXLXWzWOy$Rz!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RXLx[!rPzWOy$Rz}$R}!OLq!O!Q$R!Q![Lq![!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RZMsS|ROy$Rz;'S$R;'S;=`$d<%lO$R_NUS{VOy$Rz;'S$R;'S;=`$d<%lO$R[NeUOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RkNzUOy$Rz#b$R#b#c! ^#c;'S$R;'S;=`$d<%lO$Rk! cUzWOy$Rz#W$R#W#X! u#X;'S$R;'S;=`$d<%lO$Rk! |SmczWOy$Rz;'S$R;'S;=`$d<%lO$Rk!!]UOy$Rz#f$R#f#g! u#g;'S$R;'S;=`$d<%lO$RZ!!tS!hROy$Rz;'S$R;'S;=`$d<%lO$RZ!#VS!pROy$Rz;'S$R;'S;=`$d<%lO$R]!#hU!dPOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RW!#}P;=`<%l#r",tokenizers:[iO,dO,lO,SO,oO,nO,rO,RO,0,1,2,3,4],topRules:{StyleSheet:[0,10],Styles:[1,145]},dialects:{indented:0},specialized:[{term:172,get:O=>PO[O]||-1},{term:171,get:O=>mO[O]||-1},{term:80,get:O=>fO[O]||-1},{term:173,get:O=>yO[O]||-1}],tokenPrec:3217}),P=V.define({name:"sass",parser:hO.configure({props:[k.add({Block:E,Comment(O,$){return{from:O.from+2,to:$.sliceDoc(O.to-2,O.to)=="*/"?O.to-2:O.to}}}),U.add({Declaration:N()})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/,wordChars:"$-"}}),wO=P.configure({dialect:"indented",props:[U.add({"Block RuleSet":O=>O.baseIndent+O.unit}),k.add({Block:O=>({from:O.from,to:O.to})})]}),YO=x(O=>O.name=="VariableName"||O.name=="SassVariableName");function NO(O){return new g(O!=null&&O.indented?wO:P,P.data.of({autocomplete:YO}))}export{NO as sass,YO as sassCompletionSource,P as sassLanguage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as s,a as m,p as u,q as n,s as l,t as e,v as b,e as S,h as r}from"./index-DMZZCi2u.js";import"./index-BGAW2Nqa.js";import"./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 c=S.deserialize({version:14,states:"%pOVOWOOObQPOOOpOSO'#C_OOOO'#Cp'#CpQVOWOOQxQPOOO!TQQOOQ!YQPOOOOOO,58y,58yO!_OSO,58yOOOO-E6n-E6nO!dQQO'#CqQ{QPOOO!iQPOOQ{QPOOO!qQPOOOOOO1G.e1G.eOOQO,59],59]OOQO-E6o-E6oO!yOpO'#CiO#RO`O'#CiQOQPOOO#ZO#tO'#CmO#fO!bO'#CmOOQO,59T,59TO#qOpO,59TO#vO`O,59TOOOO'#Cr'#CrO#{O#tO,59XOOQO,59X,59XOOOO'#Cs'#CsO$WO!bO,59XOOQO1G.o1G.oOOOO-E6p-E6pOOQO1G.s1G.sOOOO-E6q-E6q",stateData:"$g~OjOS~OQROUROkQO~OWTOXUOZUO`VO~OSXOTWO~OXUO[]OlZO~OY^O~O[_O~OT`O~OYaO~OmcOodO~OmfOogO~O^iOnhO~O_jOphO~ObkOqkOrmO~OcnOsnOtmO~OnpO~OppO~ObkOqkOrrO~OcnOsnOtrO~OWX`~",goto:"!^hPPPiPPPPPPPPPmPPPpPPsy!Q!WTROSRe]Re_QSORYSS[T^Rb[QlfRqlQogRso",nodeNames:"⚠ Content Text Interpolation InterpolationContent }} Entity Attribute VueAttributeName : Identifier @ Is ScriptAttributeValue AttributeScript AttributeScript AttributeName AttributeValue Entity Entity",maxTerm:36,nodeProps:[["isolate",-3,3,13,17,""]],skippedNodes:[0],repeatNodeCount:4,tokenData:"'y~RdXY!aYZ!a]^!apq!ars!rwx!w}!O!|!O!P#t!Q![#y![!]$s!_!`%g!b!c%l!c!}#y#R#S#y#T#j#y#j#k%q#k#o#y%W;'S#y;'S;:j$m<%lO#y~!fSj~XY!aYZ!a]^!apq!a~!wOm~~!|Oo~!b#RX`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|!b#qP;=`<%l!|~#yOl~%W$QXY#t`!b}!O!|!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y%W$pP;=`<%l#y~$zXX~`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|~%lO[~~%qOZ~%W%xXY#t`!b}!O&e!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y!b&jX`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|!b'^XW!b`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|",tokenizers:[6,7,new r("b~RP#q#rU~XP#q#r[~aOT~~",17,4),new r("!k~RQvwX#o#p!_~^TU~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOU~~![P;=`<%lm~!bP#o#p!e~!jOk~~",72,2),new r("[~RPwxU~ZOp~~",11,15),new r("[~RPrsU~ZOn~~",11,14),new r("!e~RQvwXwx!_~^Tc~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOc~~![P;=`<%lm~!dOt~~",66,35),new r("!e~RQrsXvw^~^Or~~cTb~Oprq!]r!^;'Sr;'S;=`!^<%lOr~uUOprq!]r!]!^!X!^;'Sr;'S;=`!^<%lOr~!^Ob~~!aP;=`<%lr~",66,33)],topRules:{Content:[0,1],Attribute:[1,7]},tokenPrec:157}),P=b.parser.configure({top:"SingleExpression"}),o=c.configure({props:[l({Text:e.content,Is:e.definitionOperator,AttributeName:e.attributeName,VueAttributeName:e.keyword,Identifier:e.variableName,"AttributeValue ScriptAttributeValue":e.attributeValue,Entity:e.character,"{{ }}":e.brace,"@ :":e.punctuation})]}),i={parser:P},Q=o.configure({wrap:n((O,t)=>O.name=="InterpolationContent"?i:null)}),g=o.configure({wrap:n((O,t)=>O.name=="AttributeScript"?i:null),top:"Attribute"}),y={parser:Q},R={parser:g},a=u();function p(O){return O.configure({dialect:"selfClosing",wrap:n(X)},"vue")}const T=p(a.language);function X(O,t){switch(O.name){case"Attribute":return/^(@|:|v-)/.test(t.read(O.from,O.from+2))?R:null;case"Text":return y}return null}function $(O={}){let t=a;if(O.base){if(O.base.language.name!="html"||!(O.base.language instanceof s))throw new RangeError("The base option must be the result of calling html(...)");t=O.base}return new m(t.language==a.language?T:p(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:["{",'"']}})])}export{$ as vue,T as vueLanguage};
|