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.
Files changed (169) hide show
  1. package/package.json +2 -1
  2. package/packages/server/src/agents/AgentGateway.js +36 -3
  3. package/packages/server/src/agents/BaseAgent.js +15 -1
  4. package/packages/server/src/agents/LoggingAgentWrapper.js +4 -0
  5. package/packages/server/src/agents/adapters/ClaudeCodeAdapter.js +9 -6
  6. package/packages/server/src/agents/adapters/CodexAdapter.js +262 -14
  7. package/packages/server/src/agents/adapters/codexCliRunner.js +185 -0
  8. package/packages/server/src/agents/adapters/codexEventMapper.js +235 -0
  9. package/packages/server/src/agents/types.js +1 -0
  10. package/packages/server/src/agents/vcr/VCRAgentAdapter.js +8 -0
  11. package/packages/server/src/api/agents.js +27 -0
  12. package/packages/server/src/api/canvas.js +20 -0
  13. package/packages/server/src/api/index.js +2 -0
  14. package/packages/server/src/api/projects-session-helpers.js +25 -0
  15. package/packages/server/src/api/projects.js +8 -0
  16. package/packages/server/src/api/providers.js +1 -0
  17. package/packages/server/src/api/sessions-draft.js +1 -0
  18. package/packages/server/src/api/sessions-messages.js +6 -0
  19. package/packages/server/src/api/settings.js +52 -4
  20. package/packages/server/src/db/ConversationRepository.js +16 -3
  21. package/packages/server/src/db/ProjectDefaultsRepository.js +47 -37
  22. package/packages/server/src/db/ProviderRepository.js +62 -6
  23. package/packages/server/src/db/SessionRepository.js +74 -14
  24. package/packages/server/src/db/SettingsRepository.js +44 -16
  25. package/packages/server/src/db/conversation-helpers.js +1 -0
  26. package/packages/server/src/db/migrations/conversationsMigrations.js +4 -0
  27. package/packages/server/src/db/migrations/index.js +4 -0
  28. package/packages/server/src/db/migrations/miscMigrations.js +53 -3
  29. package/packages/server/src/db/migrations/sessionsMigrations.js +6 -1
  30. package/packages/server/src/db/session-helpers.js +8 -0
  31. package/packages/server/src/schema.sql +9 -0
  32. package/packages/server/src/services/agentCallLogger.js +1 -1
  33. package/packages/server/src/services/codexSpawnHelper.js +37 -0
  34. package/packages/server/src/services/commandButtonPrompts.js +48 -0
  35. package/packages/server/src/services/conversationContext.js +27 -0
  36. package/packages/server/src/services/draftSessionService.js +15 -2
  37. package/packages/server/src/services/kanbanTriggers.js +3 -0
  38. package/packages/server/src/services/providerTestService.js +115 -15
  39. package/packages/server/src/services/sessionAgentGuard.js +38 -0
  40. package/packages/server/src/services/sessionExecution.js +127 -33
  41. package/packages/server/src/services/sessionManager.js +45 -8
  42. package/packages/server/src/services/sessionPrompts.js +29 -0
  43. package/packages/server/src/services/sessionProvider.js +160 -41
  44. package/packages/server/src/services/streamEventCallbacks.js +72 -40
  45. package/packages/server/src/services/streamEventHandler.js +16 -2
  46. package/packages/server/src/services/streamUsageHandler.js +6 -0
  47. package/packages/server/src/services/summaryClaudeClient.js +37 -12
  48. package/packages/server/src/services/summaryModelClient.js +154 -0
  49. package/packages/server/src/services/summaryModelResolver.js +148 -0
  50. package/packages/server/src/services/summaryService.js +6 -4
  51. package/packages/server/src/services/templateTriggerService.js +2 -0
  52. package/packages/server/src/services/usageTracker.js +5 -1
  53. package/packages/server/src/services/visibleFinalErrorMessage.js +123 -0
  54. package/packages/shared/src/constants.js +1 -2
  55. package/packages/shared/src/contracts/projects.js +2 -0
  56. package/packages/shared/src/contracts/providers.js +24 -7
  57. package/packages/shared/src/contracts/sessions.js +1 -1
  58. package/packages/shared/src/index.js +1 -0
  59. package/packages/shared/src/types.js +28 -0
  60. package/packages/shared/src/utils.js +9 -17
  61. package/packages/web/dist/assets/ActiveSessionsView-UJsCILDL.js +1 -0
  62. package/packages/web/dist/assets/{AgentLogsView-DCF2WvP2.js → AgentLogsView-BGFPLjLa.js} +1 -1
  63. package/packages/web/dist/assets/ApiClient-B4YTtyY4.js +1 -0
  64. package/packages/web/dist/assets/{ArchiveConfirmModal-fgoEQhfq.js → ArchiveConfirmModal-OFaj_uX5.js} +1 -1
  65. package/packages/web/dist/assets/{CommandButtonDetailView-DAg07cDQ.js → CommandButtonDetailView-D8S258uP.js} +1 -1
  66. package/packages/web/dist/assets/EffortLevelSelector-C2378L8e.js +1 -0
  67. package/packages/web/dist/assets/{GeneralSettingsView-Cn9VI2du.js → GeneralSettingsView-DsHChEhv.js} +1 -1
  68. package/packages/web/dist/assets/{InputWithButton-BvboBGbz.js → InputWithButton-Ci15ox0a.js} +1 -1
  69. package/packages/web/dist/assets/{InterpolationHelp-0GoSBPgf.js → InterpolationHelp-CIkOSkWX.js} +1 -1
  70. package/packages/web/dist/assets/MarkdownEditor-5-bexzUT.js +2 -0
  71. package/packages/web/dist/assets/ModelSelector-BMpR0DPr.js +1 -0
  72. package/packages/web/dist/assets/{ModelSelector-DPPD-92R.css → ModelSelector-D8hbTRIt.css} +1 -1
  73. package/packages/web/dist/assets/{NewSessionView-C77YVqgY.js → NewSessionView-BCqtIgWH.js} +2 -2
  74. package/packages/web/dist/assets/{NewSessionView-D_Hi7M9g.css → NewSessionView-CUUdHkfv.css} +1 -1
  75. package/packages/web/dist/assets/ProjectEditView-D9sK0fdH.css +1 -0
  76. package/packages/web/dist/assets/ProjectEditView-RFaxHhAX.js +1 -0
  77. package/packages/web/dist/assets/{ProjectListView-CLwtuJ0J.js → ProjectListView-B9FuWESY.js} +1 -1
  78. package/packages/web/dist/assets/{ProjectNewView-CzDtVibO.js → ProjectNewView-D62jYlBL.js} +1 -1
  79. package/packages/web/dist/assets/ProvidersView-DDKMIQWZ.js +1 -0
  80. package/packages/web/dist/assets/ProvidersView-DE82G_5W.css +1 -0
  81. package/packages/web/dist/assets/QuickResponseSettings-CDm5vwP7.js +1 -0
  82. package/packages/web/dist/assets/{QuickResponsesPanel-DIBQFj0W.css → QuickResponsesPanel-BlFDvnZ2.css} +1 -1
  83. package/packages/web/dist/assets/{QuickResponsesPanel-CTXYjMF-.js → QuickResponsesPanel-DZ_Lre_l.js} +1 -1
  84. package/packages/web/dist/assets/{ResizableTextarea-Cw6aL4rp.js → ResizableTextarea-DiIOEGjN.js} +1 -1
  85. package/packages/web/dist/assets/ResizableTextarea-DsU3TVwF.css +1 -0
  86. package/packages/web/dist/assets/SessionCard-BMGC2HqI.css +1 -0
  87. package/packages/web/dist/assets/SessionCard-DmjnVYWn.js +1 -0
  88. package/packages/web/dist/assets/SessionDetailView-CL7nmfiB.js +36 -0
  89. package/packages/web/dist/assets/SessionDetailView-CupIkI7u.css +1 -0
  90. package/packages/web/dist/assets/SessionFormOptions-BpUALRKn.css +1 -0
  91. package/packages/web/dist/assets/SessionFormOptions-DYUISplS.js +1 -0
  92. package/packages/web/dist/assets/SessionListView-BcxGz4aC.js +1 -0
  93. package/packages/web/dist/assets/{SessionListView-DVhoZHN9.css → SessionListView-fHlQyecX.css} +1 -1
  94. package/packages/web/dist/assets/{SessionLogStream-DIndOyFR.js → SessionLogStream-DpUE6Xsh.js} +1 -1
  95. package/packages/web/dist/assets/{SettingsView-CmJ5JPd5.js → SettingsView-BC055tIA.js} +1 -1
  96. package/packages/web/dist/assets/SlashCommandWizard-DmTyNG9O.js +1 -0
  97. package/packages/web/dist/assets/SlashCommandWizard-Dn7sNaBd.css +1 -0
  98. package/packages/web/dist/assets/SummarySettingsView-BgnRCwlq.js +1 -0
  99. package/packages/web/dist/assets/SummarySettingsView-l2bxHmZZ.css +1 -0
  100. package/packages/web/dist/assets/TemplateDetailView-BlhOmLUX.js +1 -0
  101. package/packages/web/dist/assets/{commandButtons-D74TkPNU.js → commandButtons-D4RPpLiu.js} +1 -1
  102. package/packages/web/dist/assets/index-4rhEeO0B.js +1 -0
  103. package/packages/web/dist/assets/index-9vb2KaAd.js +1 -0
  104. package/packages/web/dist/assets/index-B0CvZXuN.js +7 -0
  105. package/packages/web/dist/assets/index-B6G18FqB.js +82 -0
  106. package/packages/web/dist/assets/{index-DMZZCi2u.js → index-BGwH4Cfn.js} +3 -3
  107. package/packages/web/dist/assets/index-BUhvkAdF.js +1 -0
  108. package/packages/web/dist/assets/index-BcnkUk2o.js +1 -0
  109. package/packages/web/dist/assets/{index-DQMHi05L.js → index-Bn5xdGFM.js} +2 -2
  110. package/packages/web/dist/assets/index-CNwkdB0T.js +1 -0
  111. package/packages/web/dist/assets/index-CfL84oGW.js +1 -0
  112. package/packages/web/dist/assets/index-CkmxO8Mm.js +1 -0
  113. package/packages/web/dist/assets/index-Cpy4-yv3.js +1 -0
  114. package/packages/web/dist/assets/index-CrAQJmoZ.js +1 -0
  115. package/packages/web/dist/assets/{index-gmCCsCQ1.css → index-Cs2nxhrT.css} +1 -1
  116. package/packages/web/dist/assets/index-D6Ky9vJe.js +3 -0
  117. package/packages/web/dist/assets/index-DfrE0gAC.js +1 -0
  118. package/packages/web/dist/assets/index-KwEyz0F3.js +1 -0
  119. package/packages/web/dist/assets/index-OfCywayk.js +1 -0
  120. package/packages/web/dist/assets/index-PDesaJc6.js +1 -0
  121. package/packages/web/dist/assets/index-uB6nhSvz.js +1 -0
  122. package/packages/web/dist/assets/{projects-D_C9dE9s.js → projects-BUiOGmmb.js} +1 -1
  123. package/packages/web/dist/assets/providers-Bh1ZiiJi.js +1 -0
  124. package/packages/web/dist/assets/sessions-DH1R-NhV.js +1 -0
  125. package/packages/web/dist/assets/settings-Z4AVVmkJ.js +1 -0
  126. package/packages/web/dist/index.html +2 -2
  127. package/packages/web/dist/assets/ActiveSessionsView-BafIafEu.js +0 -1
  128. package/packages/web/dist/assets/ApiClient-CcqJ-GAv.js +0 -1
  129. package/packages/web/dist/assets/EffortLevelSelector-xE3gidpq.js +0 -1
  130. package/packages/web/dist/assets/MarkdownEditor-HCKnwRye.js +0 -2
  131. package/packages/web/dist/assets/ModelSelector-B0RdlCHT.js +0 -1
  132. package/packages/web/dist/assets/ProjectEditView-BBHOsgBV.js +0 -1
  133. package/packages/web/dist/assets/ProjectEditView-CpeKj-_w.css +0 -1
  134. package/packages/web/dist/assets/ProvidersView-Eg93KbyC.js +0 -1
  135. package/packages/web/dist/assets/ProvidersView-uD8SKWpA.css +0 -1
  136. package/packages/web/dist/assets/QuickResponseSettings-BBHMapcA.js +0 -1
  137. package/packages/web/dist/assets/ResizableTextarea-B5nAA0RV.css +0 -1
  138. package/packages/web/dist/assets/SessionCard-CCapYVjy.js +0 -1
  139. package/packages/web/dist/assets/SessionCard-CcqIjL8q.css +0 -1
  140. package/packages/web/dist/assets/SessionDetailView-BL83oPiI.css +0 -1
  141. package/packages/web/dist/assets/SessionDetailView-CrZvMb3j.js +0 -36
  142. package/packages/web/dist/assets/SessionFormOptions-BuLlDF-7.css +0 -1
  143. package/packages/web/dist/assets/SessionFormOptions-Em7sQCGb.js +0 -1
  144. package/packages/web/dist/assets/SessionListView-3zdDtqhw.js +0 -1
  145. package/packages/web/dist/assets/SlashCommandWizard-BB30cSvo.css +0 -1
  146. package/packages/web/dist/assets/SlashCommandWizard-C_cSgF-P.js +0 -1
  147. package/packages/web/dist/assets/SummarySettingsView-DQM1n3bc.js +0 -1
  148. package/packages/web/dist/assets/SummarySettingsView-DcsmSVJI.css +0 -1
  149. package/packages/web/dist/assets/TemplateDetailView-B8clSBPk.js +0 -1
  150. package/packages/web/dist/assets/index-B5ocUoPf.js +0 -1
  151. package/packages/web/dist/assets/index-BELtFs3n.js +0 -1
  152. package/packages/web/dist/assets/index-BGAW2Nqa.js +0 -82
  153. package/packages/web/dist/assets/index-BsDR4w2c.js +0 -1
  154. package/packages/web/dist/assets/index-CVozYqQ-.js +0 -3
  155. package/packages/web/dist/assets/index-CefzeYRE.js +0 -1
  156. package/packages/web/dist/assets/index-CrLh8vw5.js +0 -1
  157. package/packages/web/dist/assets/index-DIvveuSK.js +0 -1
  158. package/packages/web/dist/assets/index-DPt6qBRK.js +0 -1
  159. package/packages/web/dist/assets/index-DYWZ8lD-.js +0 -1
  160. package/packages/web/dist/assets/index-DrlwE0Zo.js +0 -7
  161. package/packages/web/dist/assets/index-DuXChAe-.js +0 -1
  162. package/packages/web/dist/assets/index-Dz7jFUYU.js +0 -1
  163. package/packages/web/dist/assets/index-Gre8tUfC.js +0 -1
  164. package/packages/web/dist/assets/index-_Lv79l46.js +0 -1
  165. package/packages/web/dist/assets/index-f315nDFm.js +0 -1
  166. package/packages/web/dist/assets/index-rjbX81sm.js +0 -1
  167. package/packages/web/dist/assets/providers-BdvbPVdE.js +0 -1
  168. package/packages/web/dist/assets/sessions-Bs5FA6JZ.js +0 -1
  169. package/packages/web/dist/assets/settings-6Rw9xt-G.js +0 -1
@@ -1 +1 @@
1
- .status-filters[data-v-2c9a63d9]{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.filter-btn[data-v-2c9a63d9]{display:inline-flex;align-items:center;gap:.5rem;background:none;border:1px solid var(--color-border);padding:.375rem .75rem;font-size:.8rem;color:var(--color-text-soft);cursor:pointer;border-radius:var(--border-radius);transition:all .15s;text-transform:capitalize}.filter-count[data-v-2c9a63d9]{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;padding:0 .375rem;border-radius:999px;background:var(--color-background-mute);color:var(--color-text-soft);font-size:.7rem;font-weight:600;line-height:1.25rem;text-transform:none}.filter-btn.active .filter-count[data-v-2c9a63d9]{background:var(--color-background);color:var(--color-primary)}.filter-btn-empty[data-v-2c9a63d9]{opacity:.55}.filter-btn[data-v-2c9a63d9]:hover{border-color:var(--color-primary);color:var(--color-text)}.star-icon[data-v-2c9a63d9]{position:relative;display:inline-block}.filter-btn.star-filter-all[data-v-2c9a63d9]{background:transparent;border-color:var(--color-border);color:var(--color-text-soft)}.filter-btn.star-filter-all[data-v-2c9a63d9]:hover{border-color:var(--color-primary);color:var(--color-text)}.filter-btn.star-filter-active[data-v-2c9a63d9],.filter-btn.active[data-v-2c9a63d9]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.filter-btn.star-filter-unstarred[data-v-2c9a63d9]{background:transparent;border-color:#f97316;color:#f97316}.star-crossed[data-v-2c9a63d9]:after{content:"";position:absolute;top:50%;left:-10%;right:-10%;height:2px;background:currentColor;transform:translateY(-50%) rotate(-45deg);pointer-events:none}.schedule-icon[data-v-2c9a63d9]{position:relative;display:inline-block}.filter-btn.schedule-filter-all[data-v-2c9a63d9]{background:transparent;border-color:var(--color-border);color:var(--color-text-soft)}.filter-btn.schedule-filter-all[data-v-2c9a63d9]:hover{border-color:var(--color-primary);color:var(--color-text)}.filter-btn.schedule-filter-active[data-v-2c9a63d9]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.filter-btn.schedule-filter-not-scheduled[data-v-2c9a63d9]{background:transparent;border-color:#f97316;color:#f97316}.schedule-crossed[data-v-2c9a63d9]:after{content:"";position:absolute;top:50%;left:-10%;right:-10%;height:2px;background:currentColor;transform:translateY(-50%) rotate(-45deg);pointer-events:none}.skeleton-list[data-v-c0906664]{display:flex;flex-direction:column;gap:1rem}.error-message[data-v-c0906664]{color:var(--color-error);padding:1rem;background-color:#f851491a;border-radius:var(--border-radius)}.empty-state[data-v-c0906664]{text-align:center;padding:3rem;color:var(--color-text-soft)}.empty-state p[data-v-c0906664]{margin-bottom:1rem}.session-list[data-v-c0906664]{display:flex;flex-direction:column;gap:1rem}.load-more-container[data-v-c0906664]{display:flex;justify-content:center;padding:1.5rem}.scheduled-session-card[data-v-d41e6b57]{display:flex;flex-direction:column;gap:1rem;border:1px solid var(--color-border);border-left:3px solid var(--color-primary)}.card-header[data-v-d41e6b57]{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.session-info[data-v-d41e6b57]{flex:1;min-width:0}.session-name-link[data-v-d41e6b57]{text-decoration:none;color:inherit;transition:color .2s}.session-name-link:hover .session-name[data-v-d41e6b57]{color:var(--color-primary, #22c5ff)}.session-name[data-v-d41e6b57]{margin:0 0 .25rem;font-size:1.1rem;font-weight:600;color:var(--color-text);word-break:break-word;transition:color .2s}.status-badge-container[data-v-d41e6b57]{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.status-badge[data-v-d41e6b57]{display:inline-block;padding:.375rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.status-scheduled[data-v-d41e6b57]{background:#22c5ff33;color:#22c5ff;border:1px solid rgba(34,197,255,.3)}.timing-info[data-v-d41e6b57]{display:flex;flex-direction:column;gap:.75rem;padding:.75rem;background:var(--color-background, rgba(255, 255, 255, .02));border-radius:var(--border-radius, 4px)}.timing-item[data-v-d41e6b57]{display:flex;align-items:center;gap:.75rem;font-size:.95rem}.timing-icon[data-v-d41e6b57]{font-size:1.2rem;flex-shrink:0}.timing-details[data-v-d41e6b57]{display:flex;flex-direction:column;gap:.125rem;min-width:0}.timing-text[data-v-d41e6b57]{color:var(--color-text);font-weight:500}.timing-absolute[data-v-d41e6b57]{font-size:.825rem;color:var(--color-text-soft)}.card-actions[data-v-d41e6b57]{display:flex;gap:.75rem;flex-wrap:wrap}.btn-small[data-v-d41e6b57]{padding:.5rem 1rem;font-size:.875rem}.btn-primary[data-v-d41e6b57]{background:var(--color-primary);color:#fff;border:1px solid var(--color-primary);border-radius:var(--border-radius, 4px);cursor:pointer;transition:opacity .2s}.btn-primary[data-v-d41e6b57]:hover:not(:disabled){opacity:.9}.btn-primary[data-v-d41e6b57]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-d41e6b57]{background:transparent;color:var(--color-text-soft);border:1px solid var(--color-border);border-radius:var(--border-radius, 4px);cursor:pointer;transition:color .2s,border-color .2s}.btn-secondary[data-v-d41e6b57]:hover:not(:disabled){color:var(--color-text);border-color:var(--color-text)}.btn-secondary[data-v-d41e6b57]:disabled{opacity:.6;cursor:not-allowed}.btn-danger[data-v-d41e6b57]{background:#dc2626;color:#fff;border:1px solid #dc2626;border-radius:var(--border-radius, 4px);cursor:pointer;transition:opacity .2s}.btn-danger[data-v-d41e6b57]:hover:not(:disabled){opacity:.9}.btn-danger[data-v-d41e6b57]:disabled{opacity:.6;cursor:not-allowed}.skeleton-list[data-v-75cf4e60]{display:flex;flex-direction:column;gap:1rem}.empty-state[data-v-75cf4e60]{text-align:center;padding:3rem;color:var(--color-text-soft)}.empty-state p[data-v-75cf4e60]{margin-bottom:1rem}.session-list[data-v-75cf4e60]{display:flex;flex-direction:column;gap:1rem}.templates-panel[data-v-d08b4ac0]{padding:1rem 0}.templates-header[data-v-d08b4ac0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.templates-header h2[data-v-d08b4ac0]{margin:0;font-size:1.25rem}.template-form[data-v-d08b4ac0]{margin-bottom:1.5rem}.template-form h3[data-v-d08b4ac0]{margin:0 0 1rem;font-size:1rem}.form-group[data-v-d08b4ac0]{margin-bottom:1rem}.form-label[data-v-d08b4ac0]{display:block;margin-bottom:.25rem;font-weight:500;font-size:.875rem}.form-help[data-v-d08b4ac0]{margin:.25rem 0 0;font-size:.75rem;color:var(--color-text-soft)}.form-help code[data-v-d08b4ac0]{background:var(--color-bg-soft);padding:.1rem .3rem;border-radius:3px;font-size:.7rem}.form-check[data-v-d08b4ac0]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem}.form-check input[data-v-d08b4ac0]{cursor:pointer}.form-row[data-v-d08b4ac0]{display:flex;gap:1rem}.form-actions[data-v-d08b4ac0]{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.loading-state[data-v-d08b4ac0]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:2rem}.template-section[data-v-d08b4ac0]{margin-bottom:1.5rem}.section-title[data-v-d08b4ac0]{font-size:.875rem;color:var(--color-text-soft);margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.templates-list[data-v-d08b4ac0]{display:flex;flex-direction:column;gap:.75rem}.template-card[data-v-d08b4ac0]{padding:1rem;text-decoration:none;color:inherit;display:block;transition:transform .15s ease,box-shadow .15s ease}.template-card[data-v-d08b4ac0]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.template-header[data-v-d08b4ac0]{margin-bottom:.5rem}.template-name[data-v-d08b4ac0]{margin:0;font-size:1rem;font-weight:600;color:var(--color-text)}.template-prompt[data-v-d08b4ac0]{margin:0 0 .75rem;font-size:.875rem;color:var(--color-text-soft);line-height:1.4}.template-meta[data-v-d08b4ac0]{display:flex;flex-wrap:wrap;gap:.5rem}.meta-badge[data-v-d08b4ac0]{font-size:.7rem;padding:.15rem .4rem;background:var(--color-bg-soft);border-radius:4px;color:var(--color-text-soft)}.meta-badge-global[data-v-d08b4ac0]{background:var(--color-primary);color:#fff}.meta-badge-chain[data-v-d08b4ac0]{background:var(--color-warning, #f0ad4e);color:#333}.empty-state[data-v-d08b4ac0]{text-align:center;padding:2rem;color:var(--color-text-soft)}.empty-state p[data-v-d08b4ac0]{margin-bottom:1rem}.btn-sm[data-v-d08b4ac0]{padding:.35rem .75rem;font-size:.875rem}@media (max-width: 480px){.templates-header[data-v-d08b4ac0]{flex-direction:column;align-items:flex-start;gap:.75rem}.form-row[data-v-d08b4ac0]{flex-direction:column}}.command-buttons-panel[data-v-990a48bf]{display:flex;flex-direction:column;gap:1rem}.panel-header[data-v-990a48bf]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.panel-header h3[data-v-990a48bf]{margin:0;font-size:1.25rem;color:var(--color-text)}.loading-state[data-v-990a48bf],.error-message[data-v-990a48bf],.empty-state[data-v-990a48bf]{padding:2rem;text-align:center;background-color:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text-soft)}.error-message[data-v-990a48bf]{color:var(--color-error);background-color:#f851491a}.loading-state[data-v-990a48bf]{display:flex;align-items:center;justify-content:center;gap:.75rem}.empty-state[data-v-990a48bf]{display:flex;flex-direction:column;gap:1rem;align-items:center}.buttons-table[data-v-990a48bf]{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--border-radius);overflow:hidden}.table-header[data-v-990a48bf]{display:grid;grid-template-columns:200px 1fr 100px 100px;gap:1rem;padding:1rem;background-color:var(--color-background-mute);border-bottom:1px solid var(--color-border);font-weight:500;color:var(--color-text);font-size:.875rem;text-transform:uppercase}.table-row[data-v-990a48bf]{display:grid;grid-template-columns:200px 1fr 100px 100px;gap:1rem;padding:1rem;border-bottom:1px solid var(--color-border);background-color:var(--color-background);cursor:pointer;transition:background-color .2s}.table-row[data-v-990a48bf]:last-child{border-bottom:none}.table-row[data-v-990a48bf]:hover{background-color:var(--color-background-soft)}.col-label[data-v-990a48bf]{color:var(--color-text);font-weight:500;word-break:break-word}.col-command[data-v-990a48bf]{color:var(--color-text-soft);font-size:.875rem;word-break:break-all}.col-command code[data-v-990a48bf]{background-color:#0003;padding:.25rem .5rem;border-radius:3px;font-family:var(--font-mono);font-size:.8rem}.col-order[data-v-990a48bf]{color:var(--color-text-soft);font-size:.875rem}.col-actions[data-v-990a48bf]{display:flex;justify-content:flex-end}.modal-overlay[data-v-990a48bf]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-dialog[data-v-990a48bf]{background-color:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);max-width:400px;width:90%;overflow:hidden}.modal-header[data-v-990a48bf]{padding:1rem;border-bottom:1px solid var(--color-border)}.modal-header h4[data-v-990a48bf]{margin:0;color:var(--color-text)}.modal-body[data-v-990a48bf]{padding:1.5rem 1rem;color:var(--color-text-soft)}.modal-footer[data-v-990a48bf]{padding:1rem;border-top:1px solid var(--color-border);display:flex;gap:.5rem;justify-content:flex-end}@media (max-width: 640px){.table-header[data-v-990a48bf],.table-row[data-v-990a48bf]{grid-template-columns:1fr;gap:.5rem}.col-label[data-v-990a48bf]:before{content:"Label: ";font-weight:700;color:var(--color-text-soft)}.col-command[data-v-990a48bf]:before{content:"Command: ";font-weight:700;color:var(--color-text-soft)}.col-order[data-v-990a48bf]:before{content:"Order: ";font-weight:700;color:var(--color-text-soft)}.col-actions[data-v-990a48bf]:before{content:"Actions: ";font-weight:700;color:var(--color-text-soft)}.col-label[data-v-990a48bf],.col-command[data-v-990a48bf],.col-order[data-v-990a48bf],.col-actions[data-v-990a48bf]{display:block}}.modal-backdrop[data-v-916a53c8]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-916a53c8]{background:var(--color-background-secondary, #1f2937);border-radius:.5rem;width:100%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--color-border)}.modal-header[data-v-916a53c8]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.modal-title[data-v-916a53c8]{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text)}.close-btn[data-v-916a53c8]{background:none;border:none;font-size:1.5rem;color:var(--color-text-soft);cursor:pointer;padding:0;line-height:1}.close-btn[data-v-916a53c8]:hover{color:var(--color-text)}.modal-body[data-v-916a53c8]{padding:1.5rem;flex:1;overflow-y:auto}.modal-footer[data-v-916a53c8]{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--color-border)}.form-group[data-v-916a53c8]{margin-bottom:1rem}.form-label[data-v-916a53c8]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}.form-input[data-v-916a53c8]{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:.25rem;background:var(--color-background);color:var(--color-text);font-size:.95rem}.form-input[data-v-916a53c8]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #22c5ff1a}.sessions-list[data-v-916a53c8]{max-height:300px;overflow-y:auto;border:1px solid var(--color-border);border-radius:.25rem}.loading-state[data-v-916a53c8],.empty-state[data-v-916a53c8]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:var(--color-text-soft)}.session-item[data-v-916a53c8]{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;cursor:pointer;border-bottom:1px solid var(--color-border);transition:background-color .15s}.session-item[data-v-916a53c8]:last-child{border-bottom:none}.session-item[data-v-916a53c8]:hover{background:var(--color-bg-soft)}.session-item.selected[data-v-916a53c8]{background:#22c5ff1a;border-color:var(--color-primary)}.session-status[data-v-916a53c8]{flex-shrink:0;font-size:.875rem;line-height:1.5}.session-status.status-running[data-v-916a53c8],.session-status.status-starting[data-v-916a53c8]{color:#10b981}.session-status.status-waiting[data-v-916a53c8]{color:#f59e0b}.session-status.status-completed[data-v-916a53c8]{color:#3b82f6}.session-status.status-error[data-v-916a53c8],.session-status.status-stopped[data-v-916a53c8]{color:#ef4444}.session-status.status-scheduled[data-v-916a53c8]{color:#6b7280}.session-info[data-v-916a53c8]{flex:1;min-width:0}.session-name[data-v-916a53c8]{font-size:.875rem;font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-meta[data-v-916a53c8]{display:flex;gap:.5rem;font-size:.75rem;color:var(--color-text-soft);margin-top:.25rem}.session-mode[data-v-916a53c8]{text-transform:capitalize}.btn[data-v-916a53c8]{padding:.5rem 1rem;border-radius:.25rem;font-weight:500;cursor:pointer;border:none;font-size:.9rem;transition:opacity .2s,background-color .2s}.btn-primary[data-v-916a53c8]{background:var(--color-primary);color:#fff}.btn-primary[data-v-916a53c8]:hover:not(:disabled){opacity:.9}.btn-primary[data-v-916a53c8]:disabled{opacity:.5;cursor:not-allowed}.btn-secondary[data-v-916a53c8]{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary[data-v-916a53c8]:hover{background:var(--color-background-secondary)}.loading-spinner[data-v-916a53c8]{width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin-916a53c8 1s linear infinite}@keyframes spin-916a53c8{to{transform:rotate(360deg)}}.modal-backdrop[data-v-93f5604f]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-93f5604f]{background:var(--color-background-secondary, #1f2937);border-radius:.5rem;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;border:1px solid var(--color-border)}.modal-header[data-v-93f5604f]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.modal-title[data-v-93f5604f]{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text)}.close-btn[data-v-93f5604f]{background:none;border:none;font-size:1.5rem;color:var(--color-text-soft);cursor:pointer;padding:0;line-height:1}.close-btn[data-v-93f5604f]:hover{color:var(--color-text)}.modal-body[data-v-93f5604f]{padding:1.5rem}.modal-footer[data-v-93f5604f]{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--color-border)}.form-group[data-v-93f5604f]{margin-bottom:1.25rem}.form-label[data-v-93f5604f]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}.form-input[data-v-93f5604f]{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:.25rem;background:var(--color-background);color:var(--color-text);font-size:.95rem}.form-input[data-v-93f5604f]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #22c5ff1a}.form-textarea[data-v-93f5604f]{min-height:80px;font-family:var(--font-mono, monospace);font-size:.875rem}.form-help[data-v-93f5604f]{margin-top:.25rem;font-size:.875rem;color:var(--color-text-soft)}.automation-options[data-v-93f5604f]{display:flex;flex-direction:column;gap:.5rem}.radio-option[data-v-93f5604f]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;color:var(--color-text)}.radio-option input[data-v-93f5604f]{cursor:pointer}.prompt-actions-row[data-v-93f5604f]{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem}.agent-settings-section[data-v-93f5604f]{margin-bottom:1.25rem}.section-toggle[data-v-93f5604f]{display:flex;align-items:center;gap:.5rem;background:none;border:none;color:var(--color-text-soft);font-size:.9rem;font-weight:500;cursor:pointer;padding:.5rem 0;transition:color .15s}.section-toggle[data-v-93f5604f]:hover{color:var(--color-text)}.toggle-chevron[data-v-93f5604f]{display:inline-block;font-size:.65rem;transition:transform .2s}.toggle-chevron.open[data-v-93f5604f]{transform:rotate(90deg)}.agent-settings-body[data-v-93f5604f]{padding:1rem;margin-top:.5rem;border:1px solid var(--color-border);border-radius:.375rem;background:var(--color-background, rgba(255, 255, 255, .02))}.toggle-switch-row[data-v-93f5604f]{display:flex;align-items:center;cursor:pointer;gap:.75rem}.toggle-switch[data-v-93f5604f]{position:relative;display:inline-block;width:40px;height:22px}.toggle-switch input[data-v-93f5604f]{opacity:0;width:0;height:0}.toggle-slider[data-v-93f5604f]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-border);border-radius:22px;transition:.2s}.toggle-slider[data-v-93f5604f]:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:3px;background-color:#fff;border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider[data-v-93f5604f]{background-color:var(--color-primary)}.toggle-switch input:checked+.toggle-slider[data-v-93f5604f]:before{transform:translate(18px)}.toggle-label[data-v-93f5604f]{font-size:.875rem;font-weight:500;color:var(--color-text)}.reschedule-settings[data-v-93f5604f]{padding:1rem;margin-top:1rem;border-left:2px solid var(--color-primary);background:var(--color-background, rgba(255, 255, 255, .02));border-radius:0 .25rem .25rem 0}.settings-label[data-v-93f5604f]{margin-bottom:.75rem;font-weight:500;font-size:.95rem;color:var(--color-text)}.checkbox-option[data-v-93f5604f]{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;cursor:pointer;color:var(--color-text)}.checkbox-option input[data-v-93f5604f]{width:1rem;height:1rem;cursor:pointer}.danger-zone[data-v-93f5604f]{margin-top:2rem;padding:1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:.5rem}.danger-title[data-v-93f5604f]{margin:0 0 .5rem;font-size:.875rem;font-weight:600;color:#ef4444}.danger-description[data-v-93f5604f]{margin:0 0 1rem;font-size:.8rem;color:var(--color-text-soft)}.btn[data-v-93f5604f]{padding:.5rem 1rem;border-radius:.25rem;font-weight:500;cursor:pointer;border:none;font-size:.9rem;transition:opacity .2s,background-color .2s}.btn-primary[data-v-93f5604f]{background:var(--color-primary);color:#fff}.btn-primary[data-v-93f5604f]:hover:not(:disabled){opacity:.9}.btn-primary[data-v-93f5604f]:disabled{opacity:.5;cursor:not-allowed}.btn-secondary[data-v-93f5604f]{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary[data-v-93f5604f]:hover{background:var(--color-background-secondary)}.btn-danger[data-v-93f5604f]{background:#ef4444;color:#fff}.btn-danger[data-v-93f5604f]:hover:not(:disabled){background:#dc2626}.btn-danger[data-v-93f5604f]:disabled{opacity:.5;cursor:not-allowed}.lane-position-controls[data-v-93f5604f]{display:flex;align-items:center;gap:.75rem}.lane-position-label[data-v-93f5604f]{font-size:.875rem;color:var(--color-text-soft);min-width:3.5rem;text-align:center}.btn-icon[data-v-93f5604f]{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;background:var(--color-background);border:1px solid var(--color-border);border-radius:.25rem;color:var(--color-text);cursor:pointer;transition:border-color .15s,color .15s,background-color .15s}.btn-icon[data-v-93f5604f]:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn-icon[data-v-93f5604f]:disabled{opacity:.3;cursor:not-allowed}.kanban-board{height:100%;display:flex;flex-direction:column}.kanban-loading,.kanban-error,.kanban-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--color-text-soft);gap:1rem}.loading-spinner{width:24px;height:24px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background-color:var(--color-warning);color:#fff;border-radius:50%;font-weight:700}.retry-btn{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:.5rem 1rem}.retry-btn:hover{text-decoration:underline}.kanban-lanes-container{display:flex;gap:1rem;padding:1rem;overflow-x:auto;flex:1;align-items:flex-start}.kanban-lane{flex-shrink:0;width:280px;background:var(--color-bg-soft, rgba(255, 255, 255, .05));border-radius:8px;display:flex;flex-direction:column;max-height:calc(100vh - 200px)}.lane-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}.lane-title-row{display:flex;align-items:center;gap:.375rem;flex:1;min-width:0}.lane-title{margin:0;font-size:.875rem;font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lane-automation-indicator{color:#f59e0b;flex-shrink:0}.lane-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.lane-count{font-size:.75rem;color:var(--color-text-soft);background:var(--color-border);padding:.125rem .5rem;border-radius:10px}.lane-settings-btn{background:none;border:none;color:var(--color-text-soft);cursor:pointer;padding:.25rem;border-radius:4px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .15s,color .15s,background-color .15s}.kanban-lane:hover .lane-settings-btn{opacity:1}.lane-settings-btn:hover{color:var(--color-primary);background:var(--color-bg-soft)}.lane-cards{flex:1;overflow-y:auto;padding:.5rem;display:flex;flex-direction:column;gap:.5rem;min-height:100px}.lane-empty{display:flex;align-items:center;justify-content:center;padding:2rem 1rem;color:var(--color-text-soft);font-size:.75rem;border:2px dashed var(--color-border);border-radius:6px;opacity:.6}.kanban-card{position:relative;background:var(--color-background);border:1px solid var(--color-border);border-radius:6px;cursor:grab;transition:border-color .2s,box-shadow .2s}.kanban-card:hover{border-color:var(--color-primary)}.kanban-card:active{cursor:grabbing}.card-link{display:block;padding:.75rem;color:var(--color-text);text-decoration:none}.card-header{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.5rem}.card-status{flex-shrink:0;font-size:.75rem}.card-status.status-running,.card-status.status-starting{color:#10b981}.card-status.status-waiting{color:#f59e0b}.card-status.status-completed{color:#3b82f6}.card-status.status-error,.card-status.status-stopped{color:#ef4444}.card-status.status-scheduled{color:#6b7280}.card-title{margin:0;font-size:.875rem;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-meta{display:flex;gap:.5rem;font-size:.75rem;color:var(--color-text-soft)}.card-mode{text-transform:capitalize}.card-move-btn{position:absolute;top:.25rem;right:1.75rem;background:none;border:none;color:var(--color-text-soft);cursor:pointer;opacity:0;padding:.25rem;display:flex;align-items:center;justify-content:center;transition:opacity .2s,color .2s}.kanban-card:hover .card-move-btn{opacity:1}.card-move-btn:hover{color:var(--color-primary)}.card-remove-btn{position:absolute;top:.25rem;right:.25rem;background:none;border:none;color:var(--color-text-soft);cursor:pointer;opacity:0;padding:.25rem;font-size:1rem;line-height:1;transition:opacity .2s,color .2s}.kanban-card:hover .card-remove-btn{opacity:1}.card-remove-btn:hover{color:var(--color-danger, #ef4444)}.lane-footer{padding:.5rem;border-top:1px solid var(--color-border);font-size:.7rem;color:var(--color-text-soft);display:flex;flex-direction:column;gap:.5rem}.lane-automation{display:flex;align-items:center;gap:.25rem;padding:0 .5rem}.add-session-btn{width:100%;padding:.5rem;background:transparent;border:1px dashed var(--color-border);border-radius:4px;color:var(--color-text-soft);cursor:pointer;font-size:.75rem;transition:border-color .15s,color .15s,background-color .15s}.add-session-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:#22c5ff0d}.add-lane-container{flex-shrink:0;min-width:200px}.add-lane-btn{width:100%;padding:.75rem 1rem;background:var(--color-bg-soft, rgba(255, 255, 255, .05));border:2px dashed var(--color-border);border-radius:8px;color:var(--color-text-soft);cursor:pointer;transition:border-color .2s,color .2s}.add-lane-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.add-lane-form{background:var(--color-bg-soft, rgba(255, 255, 255, .05));border:1px solid var(--color-border);border-radius:8px;padding:.75rem}.add-lane-input{width:100%;padding:.5rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-size:.875rem;margin-bottom:.5rem}.add-lane-input:focus{outline:none;border-color:var(--color-primary)}.add-lane-actions{display:flex;gap:.5rem}.add-lane-confirm,.add-lane-cancel{flex:1;padding:.375rem .75rem;border:none;border-radius:4px;cursor:pointer;font-size:.75rem}.add-lane-confirm{background:var(--color-primary);color:#fff}.add-lane-cancel{background:var(--color-border);color:var(--color-text)}.card-reorder-arrows{position:absolute;bottom:.25rem;right:.25rem;display:flex;flex-direction:column;gap:1px;opacity:0;transition:opacity .2s}.kanban-card:hover .card-reorder-arrows{opacity:1}.card-reorder-btn{background:none;border:none;color:var(--color-text-soft);cursor:pointer;padding:.125rem;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:color .15s,background-color .15s}.card-reorder-btn:hover{color:var(--color-primary);background:var(--color-bg-soft)}.kanban-card.dragging{opacity:.4}.card-drop-indicator{height:3px;background:var(--color-primary);border-radius:2px;margin:-.125rem 0}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.page-header h1{margin:0}.project-title{display:flex;align-items:center;gap:.75rem}.repo-link{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;color:var(--color-primary);transition:color .15s,transform .15s;padding:.25rem}.repo-link:hover{color:var(--color-primary-bright, #06ffff);transform:scale(1.1)}.repo-icon{width:100%;height:100%;stroke-linecap:round;stroke-linejoin:round}.settings-link{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;color:var(--color-primary);transition:color .15s,transform .15s;padding:.25rem}.settings-link:hover{color:var(--color-primary-bright, #06ffff);transform:scale(1.1)}.settings-icon{width:100%;height:100%;stroke-linecap:round;stroke-linejoin:round}.tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);margin-bottom:1.5rem;position:-webkit-sticky;position:sticky;top:calc(var(--header-height-computed, 51px) + var(--viewport-offset-top, 0px));background-color:var(--color-background);z-index:99;padding:.5rem .5rem 0}@media (min-width: 768px){.tabs{top:calc(var(--header-height-computed, 80px) + var(--viewport-offset-top, 0px))}}.tabs-desktop{display:flex;align-items:center;justify-content:space-between;width:100%}.tabs-mobile{display:none;width:100%}.tabs-left{display:flex;gap:0}.tab{background:none;border:none;padding:.75rem 1.25rem;font-size:.9rem;color:var(--color-text-soft);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.tab:hover{color:var(--color-text)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:500}.skeleton-list{display:flex;flex-direction:column;gap:1rem}.error-message{color:var(--color-error);padding:1rem;background-color:#f851491a;border-radius:var(--border-radius)}.empty-state{text-align:center;padding:3rem;color:var(--color-text-soft)}.empty-state p{margin-bottom:1rem}.session-list{display:flex;flex-direction:column;gap:1rem}.tab-spacer{height:1rem}@media (max-width: 700px){.page-header{flex-direction:column;gap:1rem}.page-header .btn{width:100%;justify-content:center}.tabs-desktop{display:none!important}.tabs-mobile{display:block}.desktop-only{display:none!important}}.mobile-only{display:block}.desktop-only{display:none}@media (min-width: 701px){.mobile-only{display:none!important}}@media (min-width: 701px){.desktop-only{display:inline-flex!important}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--color-background-secondary, #1f2937);border-radius:.5rem;width:100%;max-width:400px;max-height:90vh;overflow-y:auto;border:1px solid var(--color-border)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.modal-title{margin:0;font-size:1.125rem;font-weight:600;color:var(--color-text)}.close-btn{background:none;border:none;font-size:1.5rem;color:var(--color-text-soft);cursor:pointer;padding:0;line-height:1}.close-btn:hover{color:var(--color-text)}.modal-body{padding:1.5rem}.modal-description{margin:0 0 1rem;font-size:.9rem;color:var(--color-text-soft)}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--color-border)}.lane-options{display:flex;flex-direction:column;gap:.5rem}.lane-option-btn{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:.375rem;color:var(--color-text);cursor:pointer;transition:border-color .15s,background-color .15s}.lane-option-btn:hover{border-color:var(--color-primary);background:#22c5ff0d}.lane-option-name{font-weight:500}.lane-option-count{font-size:.75rem;color:var(--color-text-soft)}.empty-lanes{text-align:center;color:var(--color-text-soft);font-size:.875rem}.btn{padding:.5rem 1rem;border-radius:.25rem;font-weight:500;cursor:pointer;border:none;font-size:.9rem}.add-session-label-short{display:none}.add-session-label-full{display:inline}@media (max-width: 768px){.add-session-label-full{display:none}.add-session-label-short{display:inline}}.tabs-desktop .btn-primary{flex-shrink:0;white-space:nowrap}.btn-secondary{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary:hover{background:var(--color-background-secondary)}
1
+ .status-filters[data-v-2c9a63d9]{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.filter-btn[data-v-2c9a63d9]{display:inline-flex;align-items:center;gap:.5rem;background:none;border:1px solid var(--color-border);padding:.375rem .75rem;font-size:.8rem;color:var(--color-text-soft);cursor:pointer;border-radius:var(--border-radius);transition:all .15s;text-transform:capitalize}.filter-count[data-v-2c9a63d9]{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;padding:0 .375rem;border-radius:999px;background:var(--color-background-mute);color:var(--color-text-soft);font-size:.7rem;font-weight:600;line-height:1.25rem;text-transform:none}.filter-btn.active .filter-count[data-v-2c9a63d9]{background:var(--color-background);color:var(--color-primary)}.filter-btn-empty[data-v-2c9a63d9]{opacity:.55}.filter-btn[data-v-2c9a63d9]:hover{border-color:var(--color-primary);color:var(--color-text)}.star-icon[data-v-2c9a63d9]{position:relative;display:inline-block}.filter-btn.star-filter-all[data-v-2c9a63d9]{background:transparent;border-color:var(--color-border);color:var(--color-text-soft)}.filter-btn.star-filter-all[data-v-2c9a63d9]:hover{border-color:var(--color-primary);color:var(--color-text)}.filter-btn.star-filter-active[data-v-2c9a63d9],.filter-btn.active[data-v-2c9a63d9]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.filter-btn.star-filter-unstarred[data-v-2c9a63d9]{background:transparent;border-color:#f97316;color:#f97316}.star-crossed[data-v-2c9a63d9]:after{content:"";position:absolute;top:50%;left:-10%;right:-10%;height:2px;background:currentColor;transform:translateY(-50%) rotate(-45deg);pointer-events:none}.schedule-icon[data-v-2c9a63d9]{position:relative;display:inline-block}.filter-btn.schedule-filter-all[data-v-2c9a63d9]{background:transparent;border-color:var(--color-border);color:var(--color-text-soft)}.filter-btn.schedule-filter-all[data-v-2c9a63d9]:hover{border-color:var(--color-primary);color:var(--color-text)}.filter-btn.schedule-filter-active[data-v-2c9a63d9]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.filter-btn.schedule-filter-not-scheduled[data-v-2c9a63d9]{background:transparent;border-color:#f97316;color:#f97316}.schedule-crossed[data-v-2c9a63d9]:after{content:"";position:absolute;top:50%;left:-10%;right:-10%;height:2px;background:currentColor;transform:translateY(-50%) rotate(-45deg);pointer-events:none}.skeleton-list[data-v-c0906664]{display:flex;flex-direction:column;gap:1rem}.error-message[data-v-c0906664]{color:var(--color-error);padding:1rem;background-color:#f851491a;border-radius:var(--border-radius)}.empty-state[data-v-c0906664]{text-align:center;padding:3rem;color:var(--color-text-soft)}.empty-state p[data-v-c0906664]{margin-bottom:1rem}.session-list[data-v-c0906664]{display:flex;flex-direction:column;gap:1rem}.load-more-container[data-v-c0906664]{display:flex;justify-content:center;padding:1.5rem}.scheduled-session-card[data-v-d41e6b57]{display:flex;flex-direction:column;gap:1rem;border:1px solid var(--color-border);border-left:3px solid var(--color-primary)}.card-header[data-v-d41e6b57]{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.session-info[data-v-d41e6b57]{flex:1;min-width:0}.session-name-link[data-v-d41e6b57]{text-decoration:none;color:inherit;transition:color .2s}.session-name-link:hover .session-name[data-v-d41e6b57]{color:var(--color-primary, #22c5ff)}.session-name[data-v-d41e6b57]{margin:0 0 .25rem;font-size:1.1rem;font-weight:600;color:var(--color-text);word-break:break-word;transition:color .2s}.status-badge-container[data-v-d41e6b57]{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.status-badge[data-v-d41e6b57]{display:inline-block;padding:.375rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.status-scheduled[data-v-d41e6b57]{background:#22c5ff33;color:#22c5ff;border:1px solid rgba(34,197,255,.3)}.timing-info[data-v-d41e6b57]{display:flex;flex-direction:column;gap:.75rem;padding:.75rem;background:var(--color-background, rgba(255, 255, 255, .02));border-radius:var(--border-radius, 4px)}.timing-item[data-v-d41e6b57]{display:flex;align-items:center;gap:.75rem;font-size:.95rem}.timing-icon[data-v-d41e6b57]{font-size:1.2rem;flex-shrink:0}.timing-details[data-v-d41e6b57]{display:flex;flex-direction:column;gap:.125rem;min-width:0}.timing-text[data-v-d41e6b57]{color:var(--color-text);font-weight:500}.timing-absolute[data-v-d41e6b57]{font-size:.825rem;color:var(--color-text-soft)}.card-actions[data-v-d41e6b57]{display:flex;gap:.75rem;flex-wrap:wrap}.btn-small[data-v-d41e6b57]{padding:.5rem 1rem;font-size:.875rem}.btn-primary[data-v-d41e6b57]{background:var(--color-primary);color:#fff;border:1px solid var(--color-primary);border-radius:var(--border-radius, 4px);cursor:pointer;transition:opacity .2s}.btn-primary[data-v-d41e6b57]:hover:not(:disabled){opacity:.9}.btn-primary[data-v-d41e6b57]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-d41e6b57]{background:transparent;color:var(--color-text-soft);border:1px solid var(--color-border);border-radius:var(--border-radius, 4px);cursor:pointer;transition:color .2s,border-color .2s}.btn-secondary[data-v-d41e6b57]:hover:not(:disabled){color:var(--color-text);border-color:var(--color-text)}.btn-secondary[data-v-d41e6b57]:disabled{opacity:.6;cursor:not-allowed}.btn-danger[data-v-d41e6b57]{background:#dc2626;color:#fff;border:1px solid #dc2626;border-radius:var(--border-radius, 4px);cursor:pointer;transition:opacity .2s}.btn-danger[data-v-d41e6b57]:hover:not(:disabled){opacity:.9}.btn-danger[data-v-d41e6b57]:disabled{opacity:.6;cursor:not-allowed}.skeleton-list[data-v-75cf4e60]{display:flex;flex-direction:column;gap:1rem}.empty-state[data-v-75cf4e60]{text-align:center;padding:3rem;color:var(--color-text-soft)}.empty-state p[data-v-75cf4e60]{margin-bottom:1rem}.session-list[data-v-75cf4e60]{display:flex;flex-direction:column;gap:1rem}.templates-panel[data-v-d08b4ac0]{padding:1rem 0}.templates-header[data-v-d08b4ac0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.templates-header h2[data-v-d08b4ac0]{margin:0;font-size:1.25rem}.template-form[data-v-d08b4ac0]{margin-bottom:1.5rem}.template-form h3[data-v-d08b4ac0]{margin:0 0 1rem;font-size:1rem}.form-group[data-v-d08b4ac0]{margin-bottom:1rem}.form-label[data-v-d08b4ac0]{display:block;margin-bottom:.25rem;font-weight:500;font-size:.875rem}.form-help[data-v-d08b4ac0]{margin:.25rem 0 0;font-size:.75rem;color:var(--color-text-soft)}.form-help code[data-v-d08b4ac0]{background:var(--color-bg-soft);padding:.1rem .3rem;border-radius:3px;font-size:.7rem}.form-check[data-v-d08b4ac0]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem}.form-check input[data-v-d08b4ac0]{cursor:pointer}.form-row[data-v-d08b4ac0]{display:flex;gap:1rem}.form-actions[data-v-d08b4ac0]{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.loading-state[data-v-d08b4ac0]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:2rem}.template-section[data-v-d08b4ac0]{margin-bottom:1.5rem}.section-title[data-v-d08b4ac0]{font-size:.875rem;color:var(--color-text-soft);margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.templates-list[data-v-d08b4ac0]{display:flex;flex-direction:column;gap:.75rem}.template-card[data-v-d08b4ac0]{padding:1rem;text-decoration:none;color:inherit;display:block;transition:transform .15s ease,box-shadow .15s ease}.template-card[data-v-d08b4ac0]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.template-header[data-v-d08b4ac0]{margin-bottom:.5rem}.template-name[data-v-d08b4ac0]{margin:0;font-size:1rem;font-weight:600;color:var(--color-text)}.template-prompt[data-v-d08b4ac0]{margin:0 0 .75rem;font-size:.875rem;color:var(--color-text-soft);line-height:1.4}.template-meta[data-v-d08b4ac0]{display:flex;flex-wrap:wrap;gap:.5rem}.meta-badge[data-v-d08b4ac0]{font-size:.7rem;padding:.15rem .4rem;background:var(--color-bg-soft);border-radius:4px;color:var(--color-text-soft)}.meta-badge-global[data-v-d08b4ac0]{background:var(--color-primary);color:#fff}.meta-badge-chain[data-v-d08b4ac0]{background:var(--color-warning, #f0ad4e);color:#333}.empty-state[data-v-d08b4ac0]{text-align:center;padding:2rem;color:var(--color-text-soft)}.empty-state p[data-v-d08b4ac0]{margin-bottom:1rem}.btn-sm[data-v-d08b4ac0]{padding:.35rem .75rem;font-size:.875rem}@media (max-width: 480px){.templates-header[data-v-d08b4ac0]{flex-direction:column;align-items:flex-start;gap:.75rem}.form-row[data-v-d08b4ac0]{flex-direction:column}}.command-buttons-panel[data-v-990a48bf]{display:flex;flex-direction:column;gap:1rem}.panel-header[data-v-990a48bf]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.panel-header h3[data-v-990a48bf]{margin:0;font-size:1.25rem;color:var(--color-text)}.loading-state[data-v-990a48bf],.error-message[data-v-990a48bf],.empty-state[data-v-990a48bf]{padding:2rem;text-align:center;background-color:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text-soft)}.error-message[data-v-990a48bf]{color:var(--color-error);background-color:#f851491a}.loading-state[data-v-990a48bf]{display:flex;align-items:center;justify-content:center;gap:.75rem}.empty-state[data-v-990a48bf]{display:flex;flex-direction:column;gap:1rem;align-items:center}.buttons-table[data-v-990a48bf]{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--border-radius);overflow:hidden}.table-header[data-v-990a48bf]{display:grid;grid-template-columns:200px 1fr 100px 100px;gap:1rem;padding:1rem;background-color:var(--color-background-mute);border-bottom:1px solid var(--color-border);font-weight:500;color:var(--color-text);font-size:.875rem;text-transform:uppercase}.table-row[data-v-990a48bf]{display:grid;grid-template-columns:200px 1fr 100px 100px;gap:1rem;padding:1rem;border-bottom:1px solid var(--color-border);background-color:var(--color-background);cursor:pointer;transition:background-color .2s}.table-row[data-v-990a48bf]:last-child{border-bottom:none}.table-row[data-v-990a48bf]:hover{background-color:var(--color-background-soft)}.col-label[data-v-990a48bf]{color:var(--color-text);font-weight:500;word-break:break-word}.col-command[data-v-990a48bf]{color:var(--color-text-soft);font-size:.875rem;word-break:break-all}.col-command code[data-v-990a48bf]{background-color:#0003;padding:.25rem .5rem;border-radius:3px;font-family:var(--font-mono);font-size:.8rem}.col-order[data-v-990a48bf]{color:var(--color-text-soft);font-size:.875rem}.col-actions[data-v-990a48bf]{display:flex;justify-content:flex-end}.modal-overlay[data-v-990a48bf]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-dialog[data-v-990a48bf]{background-color:var(--color-background-soft);border:1px solid var(--color-border);border-radius:var(--border-radius);max-width:400px;width:90%;overflow:hidden}.modal-header[data-v-990a48bf]{padding:1rem;border-bottom:1px solid var(--color-border)}.modal-header h4[data-v-990a48bf]{margin:0;color:var(--color-text)}.modal-body[data-v-990a48bf]{padding:1.5rem 1rem;color:var(--color-text-soft)}.modal-footer[data-v-990a48bf]{padding:1rem;border-top:1px solid var(--color-border);display:flex;gap:.5rem;justify-content:flex-end}@media (max-width: 640px){.table-header[data-v-990a48bf],.table-row[data-v-990a48bf]{grid-template-columns:1fr;gap:.5rem}.col-label[data-v-990a48bf]:before{content:"Label: ";font-weight:700;color:var(--color-text-soft)}.col-command[data-v-990a48bf]:before{content:"Command: ";font-weight:700;color:var(--color-text-soft)}.col-order[data-v-990a48bf]:before{content:"Order: ";font-weight:700;color:var(--color-text-soft)}.col-actions[data-v-990a48bf]:before{content:"Actions: ";font-weight:700;color:var(--color-text-soft)}.col-label[data-v-990a48bf],.col-command[data-v-990a48bf],.col-order[data-v-990a48bf],.col-actions[data-v-990a48bf]{display:block}}.modal-backdrop[data-v-ab9b7c57]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-ab9b7c57]{background:var(--color-background-secondary, #1f2937);border-radius:.5rem;width:100%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--color-border)}.modal-header[data-v-ab9b7c57]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.modal-title[data-v-ab9b7c57]{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text)}.close-btn[data-v-ab9b7c57]{background:none;border:none;font-size:1.5rem;color:var(--color-text-soft);cursor:pointer;padding:0;line-height:1}.close-btn[data-v-ab9b7c57]:hover{color:var(--color-text)}.modal-body[data-v-ab9b7c57]{padding:1.5rem;flex:1;overflow-y:auto}.modal-footer[data-v-ab9b7c57]{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--color-border)}.form-group[data-v-ab9b7c57]{margin-bottom:1rem}.form-label[data-v-ab9b7c57]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}.form-input[data-v-ab9b7c57]{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:.25rem;background:var(--color-background);color:var(--color-text);font-size:.95rem}.form-input[data-v-ab9b7c57]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #22c5ff1a}.sessions-list[data-v-ab9b7c57]{max-height:300px;overflow-y:auto;border:1px solid var(--color-border);border-radius:.25rem}.loading-state[data-v-ab9b7c57],.empty-state[data-v-ab9b7c57]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:var(--color-text-soft)}.session-item[data-v-ab9b7c57]{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;cursor:pointer;border-bottom:1px solid var(--color-border);transition:background-color .15s}.session-item[data-v-ab9b7c57]:last-child{border-bottom:none}.session-item[data-v-ab9b7c57]:hover{background:var(--color-bg-soft)}.session-item.selected[data-v-ab9b7c57]{background:#22c5ff1a;border-color:var(--color-primary)}.session-status[data-v-ab9b7c57]{flex-shrink:0;font-size:.875rem;line-height:1.5}.session-status.status-running[data-v-ab9b7c57],.session-status.status-starting[data-v-ab9b7c57]{color:#10b981}.session-status.status-waiting[data-v-ab9b7c57]{color:#f59e0b}.session-status.status-completed[data-v-ab9b7c57]{color:#3b82f6}.session-status.status-error[data-v-ab9b7c57],.session-status.status-stopped[data-v-ab9b7c57]{color:#ef4444}.session-status.status-scheduled[data-v-ab9b7c57]{color:#6b7280}.session-info[data-v-ab9b7c57]{flex:1;min-width:0}.session-name[data-v-ab9b7c57]{font-size:.875rem;font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-meta[data-v-ab9b7c57]{display:flex;gap:.5rem;font-size:.75rem;color:var(--color-text-soft);margin-top:.25rem}.session-mode[data-v-ab9b7c57]{text-transform:capitalize}.btn[data-v-ab9b7c57]{padding:.5rem 1rem;border-radius:.25rem;font-weight:500;cursor:pointer;border:none;font-size:.9rem;transition:opacity .2s,background-color .2s}.btn-primary[data-v-ab9b7c57]{background:var(--color-primary);color:#fff}.btn-primary[data-v-ab9b7c57]:hover:not(:disabled){opacity:.9}.btn-primary[data-v-ab9b7c57]:disabled{opacity:.5;cursor:not-allowed}.btn-secondary[data-v-ab9b7c57]{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary[data-v-ab9b7c57]:hover{background:var(--color-background-secondary)}.loading-spinner[data-v-ab9b7c57]{width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin-ab9b7c57 1s linear infinite}@keyframes spin-ab9b7c57{to{transform:rotate(360deg)}}.modal-backdrop[data-v-93f5604f]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-93f5604f]{background:var(--color-background-secondary, #1f2937);border-radius:.5rem;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;border:1px solid var(--color-border)}.modal-header[data-v-93f5604f]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.modal-title[data-v-93f5604f]{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text)}.close-btn[data-v-93f5604f]{background:none;border:none;font-size:1.5rem;color:var(--color-text-soft);cursor:pointer;padding:0;line-height:1}.close-btn[data-v-93f5604f]:hover{color:var(--color-text)}.modal-body[data-v-93f5604f]{padding:1.5rem}.modal-footer[data-v-93f5604f]{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--color-border)}.form-group[data-v-93f5604f]{margin-bottom:1.25rem}.form-label[data-v-93f5604f]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}.form-input[data-v-93f5604f]{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:.25rem;background:var(--color-background);color:var(--color-text);font-size:.95rem}.form-input[data-v-93f5604f]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #22c5ff1a}.form-textarea[data-v-93f5604f]{min-height:80px;font-family:var(--font-mono, monospace);font-size:.875rem}.form-help[data-v-93f5604f]{margin-top:.25rem;font-size:.875rem;color:var(--color-text-soft)}.automation-options[data-v-93f5604f]{display:flex;flex-direction:column;gap:.5rem}.radio-option[data-v-93f5604f]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;color:var(--color-text)}.radio-option input[data-v-93f5604f]{cursor:pointer}.prompt-actions-row[data-v-93f5604f]{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem}.agent-settings-section[data-v-93f5604f]{margin-bottom:1.25rem}.section-toggle[data-v-93f5604f]{display:flex;align-items:center;gap:.5rem;background:none;border:none;color:var(--color-text-soft);font-size:.9rem;font-weight:500;cursor:pointer;padding:.5rem 0;transition:color .15s}.section-toggle[data-v-93f5604f]:hover{color:var(--color-text)}.toggle-chevron[data-v-93f5604f]{display:inline-block;font-size:.65rem;transition:transform .2s}.toggle-chevron.open[data-v-93f5604f]{transform:rotate(90deg)}.agent-settings-body[data-v-93f5604f]{padding:1rem;margin-top:.5rem;border:1px solid var(--color-border);border-radius:.375rem;background:var(--color-background, rgba(255, 255, 255, .02))}.toggle-switch-row[data-v-93f5604f]{display:flex;align-items:center;cursor:pointer;gap:.75rem}.toggle-switch[data-v-93f5604f]{position:relative;display:inline-block;width:40px;height:22px}.toggle-switch input[data-v-93f5604f]{opacity:0;width:0;height:0}.toggle-slider[data-v-93f5604f]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-border);border-radius:22px;transition:.2s}.toggle-slider[data-v-93f5604f]:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:3px;background-color:#fff;border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider[data-v-93f5604f]{background-color:var(--color-primary)}.toggle-switch input:checked+.toggle-slider[data-v-93f5604f]:before{transform:translate(18px)}.toggle-label[data-v-93f5604f]{font-size:.875rem;font-weight:500;color:var(--color-text)}.reschedule-settings[data-v-93f5604f]{padding:1rem;margin-top:1rem;border-left:2px solid var(--color-primary);background:var(--color-background, rgba(255, 255, 255, .02));border-radius:0 .25rem .25rem 0}.settings-label[data-v-93f5604f]{margin-bottom:.75rem;font-weight:500;font-size:.95rem;color:var(--color-text)}.checkbox-option[data-v-93f5604f]{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;cursor:pointer;color:var(--color-text)}.checkbox-option input[data-v-93f5604f]{width:1rem;height:1rem;cursor:pointer}.danger-zone[data-v-93f5604f]{margin-top:2rem;padding:1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:.5rem}.danger-title[data-v-93f5604f]{margin:0 0 .5rem;font-size:.875rem;font-weight:600;color:#ef4444}.danger-description[data-v-93f5604f]{margin:0 0 1rem;font-size:.8rem;color:var(--color-text-soft)}.btn[data-v-93f5604f]{padding:.5rem 1rem;border-radius:.25rem;font-weight:500;cursor:pointer;border:none;font-size:.9rem;transition:opacity .2s,background-color .2s}.btn-primary[data-v-93f5604f]{background:var(--color-primary);color:#fff}.btn-primary[data-v-93f5604f]:hover:not(:disabled){opacity:.9}.btn-primary[data-v-93f5604f]:disabled{opacity:.5;cursor:not-allowed}.btn-secondary[data-v-93f5604f]{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary[data-v-93f5604f]:hover{background:var(--color-background-secondary)}.btn-danger[data-v-93f5604f]{background:#ef4444;color:#fff}.btn-danger[data-v-93f5604f]:hover:not(:disabled){background:#dc2626}.btn-danger[data-v-93f5604f]:disabled{opacity:.5;cursor:not-allowed}.lane-position-controls[data-v-93f5604f]{display:flex;align-items:center;gap:.75rem}.lane-position-label[data-v-93f5604f]{font-size:.875rem;color:var(--color-text-soft);min-width:3.5rem;text-align:center}.btn-icon[data-v-93f5604f]{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;background:var(--color-background);border:1px solid var(--color-border);border-radius:.25rem;color:var(--color-text);cursor:pointer;transition:border-color .15s,color .15s,background-color .15s}.btn-icon[data-v-93f5604f]:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn-icon[data-v-93f5604f]:disabled{opacity:.3;cursor:not-allowed}.kanban-board{height:100%;display:flex;flex-direction:column}.kanban-loading,.kanban-error,.kanban-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--color-text-soft);gap:1rem}.loading-spinner{width:24px;height:24px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background-color:var(--color-warning);color:#fff;border-radius:50%;font-weight:700}.retry-btn{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:.5rem 1rem}.retry-btn:hover{text-decoration:underline}.kanban-lanes-container{display:flex;gap:1rem;padding:1rem;overflow-x:auto;flex:1;align-items:flex-start}.kanban-lane{flex-shrink:0;width:280px;background:var(--color-bg-soft, rgba(255, 255, 255, .05));border-radius:8px;display:flex;flex-direction:column;max-height:calc(100vh - 200px)}.lane-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}.lane-title-row{display:flex;align-items:center;gap:.375rem;flex:1;min-width:0}.lane-title{margin:0;font-size:.875rem;font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lane-automation-indicator{color:#f59e0b;flex-shrink:0}.lane-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.lane-count{font-size:.75rem;color:var(--color-text-soft);background:var(--color-border);padding:.125rem .5rem;border-radius:10px}.lane-settings-btn{background:none;border:none;color:var(--color-text-soft);cursor:pointer;padding:.25rem;border-radius:4px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .15s,color .15s,background-color .15s}.kanban-lane:hover .lane-settings-btn{opacity:1}.lane-settings-btn:hover{color:var(--color-primary);background:var(--color-bg-soft)}.lane-cards{flex:1;overflow-y:auto;padding:.5rem;display:flex;flex-direction:column;gap:.5rem;min-height:100px}.lane-empty{display:flex;align-items:center;justify-content:center;padding:2rem 1rem;color:var(--color-text-soft);font-size:.75rem;border:2px dashed var(--color-border);border-radius:6px;opacity:.6}.kanban-card{position:relative;background:var(--color-background);border:1px solid var(--color-border);border-radius:6px;cursor:grab;transition:border-color .2s,box-shadow .2s}.kanban-card:hover{border-color:var(--color-primary)}.kanban-card:active{cursor:grabbing}.card-link{display:block;padding:.75rem;color:var(--color-text);text-decoration:none}.card-header{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.5rem}.card-status{flex-shrink:0;font-size:.75rem}.card-status.status-running,.card-status.status-starting{color:#10b981}.card-status.status-waiting{color:#f59e0b}.card-status.status-completed{color:#3b82f6}.card-status.status-error,.card-status.status-stopped{color:#ef4444}.card-status.status-scheduled{color:#6b7280}.card-title{margin:0;font-size:.875rem;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-meta{display:flex;gap:.5rem;font-size:.75rem;color:var(--color-text-soft)}.card-mode{text-transform:capitalize}.card-move-btn{position:absolute;top:.25rem;right:1.75rem;background:none;border:none;color:var(--color-text-soft);cursor:pointer;opacity:0;padding:.25rem;display:flex;align-items:center;justify-content:center;transition:opacity .2s,color .2s}.kanban-card:hover .card-move-btn{opacity:1}.card-move-btn:hover{color:var(--color-primary)}.card-remove-btn{position:absolute;top:.25rem;right:.25rem;background:none;border:none;color:var(--color-text-soft);cursor:pointer;opacity:0;padding:.25rem;font-size:1rem;line-height:1;transition:opacity .2s,color .2s}.kanban-card:hover .card-remove-btn{opacity:1}.card-remove-btn:hover{color:var(--color-danger, #ef4444)}.lane-footer{padding:.5rem;border-top:1px solid var(--color-border);font-size:.7rem;color:var(--color-text-soft);display:flex;flex-direction:column;gap:.5rem}.lane-automation{display:flex;align-items:center;gap:.25rem;padding:0 .5rem}.add-session-btn{width:100%;padding:.5rem;background:transparent;border:1px dashed var(--color-border);border-radius:4px;color:var(--color-text-soft);cursor:pointer;font-size:.75rem;transition:border-color .15s,color .15s,background-color .15s}.add-session-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:#22c5ff0d}.add-lane-container{flex-shrink:0;min-width:200px}.add-lane-btn{width:100%;padding:.75rem 1rem;background:var(--color-bg-soft, rgba(255, 255, 255, .05));border:2px dashed var(--color-border);border-radius:8px;color:var(--color-text-soft);cursor:pointer;transition:border-color .2s,color .2s}.add-lane-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.add-lane-form{background:var(--color-bg-soft, rgba(255, 255, 255, .05));border:1px solid var(--color-border);border-radius:8px;padding:.75rem}.add-lane-input{width:100%;padding:.5rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-size:.875rem;margin-bottom:.5rem}.add-lane-input:focus{outline:none;border-color:var(--color-primary)}.add-lane-actions{display:flex;gap:.5rem}.add-lane-confirm,.add-lane-cancel{flex:1;padding:.375rem .75rem;border:none;border-radius:4px;cursor:pointer;font-size:.75rem}.add-lane-confirm{background:var(--color-primary);color:#fff}.add-lane-cancel{background:var(--color-border);color:var(--color-text)}.card-reorder-arrows{position:absolute;bottom:.25rem;right:.25rem;display:flex;flex-direction:column;gap:1px;opacity:0;transition:opacity .2s}.kanban-card:hover .card-reorder-arrows{opacity:1}.card-reorder-btn{background:none;border:none;color:var(--color-text-soft);cursor:pointer;padding:.125rem;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:color .15s,background-color .15s}.card-reorder-btn:hover{color:var(--color-primary);background:var(--color-bg-soft)}.kanban-card.dragging{opacity:.4}.card-drop-indicator{height:3px;background:var(--color-primary);border-radius:2px;margin:-.125rem 0}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.page-header h1{margin:0}.project-title{display:flex;align-items:center;gap:.75rem}.repo-link{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;color:var(--color-primary);transition:color .15s,transform .15s;padding:.25rem}.repo-link:hover{color:var(--color-primary-bright, #06ffff);transform:scale(1.1)}.repo-icon{width:100%;height:100%;stroke-linecap:round;stroke-linejoin:round}.settings-link{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;color:var(--color-primary);transition:color .15s,transform .15s;padding:.25rem}.settings-link:hover{color:var(--color-primary-bright, #06ffff);transform:scale(1.1)}.settings-icon{width:100%;height:100%;stroke-linecap:round;stroke-linejoin:round}.tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);margin-bottom:1.5rem;position:-webkit-sticky;position:sticky;top:calc(var(--header-height-computed, 51px) + var(--viewport-offset-top, 0px));background-color:var(--color-background);z-index:99;padding:.5rem .5rem 0}@media (min-width: 768px){.tabs{top:calc(var(--header-height-computed, 80px) + var(--viewport-offset-top, 0px))}}.tabs-desktop{display:flex;align-items:center;justify-content:space-between;width:100%}.tabs-mobile{display:none;width:100%}.tabs-left{display:flex;gap:0}.tab{background:none;border:none;padding:.75rem 1.25rem;font-size:.9rem;color:var(--color-text-soft);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.tab:hover{color:var(--color-text)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:500}.skeleton-list{display:flex;flex-direction:column;gap:1rem}.error-message{color:var(--color-error);padding:1rem;background-color:#f851491a;border-radius:var(--border-radius)}.empty-state{text-align:center;padding:3rem;color:var(--color-text-soft)}.empty-state p{margin-bottom:1rem}.session-list{display:flex;flex-direction:column;gap:1rem}.tab-spacer{height:1rem}@media (max-width: 700px){.page-header{flex-direction:column;gap:1rem}.page-header .btn{width:100%;justify-content:center}.tabs-desktop{display:none!important}.tabs-mobile{display:block}.desktop-only{display:none!important}}.mobile-only{display:block}.desktop-only{display:none}@media (min-width: 701px){.mobile-only{display:none!important}}@media (min-width: 701px){.desktop-only{display:inline-flex!important}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--color-background-secondary, #1f2937);border-radius:.5rem;width:100%;max-width:400px;max-height:90vh;overflow-y:auto;border:1px solid var(--color-border)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.modal-title{margin:0;font-size:1.125rem;font-weight:600;color:var(--color-text)}.close-btn{background:none;border:none;font-size:1.5rem;color:var(--color-text-soft);cursor:pointer;padding:0;line-height:1}.close-btn:hover{color:var(--color-text)}.modal-body{padding:1.5rem}.modal-description{margin:0 0 1rem;font-size:.9rem;color:var(--color-text-soft)}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--color-border)}.lane-options{display:flex;flex-direction:column;gap:.5rem}.lane-option-btn{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:.375rem;color:var(--color-text);cursor:pointer;transition:border-color .15s,background-color .15s}.lane-option-btn:hover{border-color:var(--color-primary);background:#22c5ff0d}.lane-option-name{font-weight:500}.lane-option-count{font-size:.75rem;color:var(--color-text-soft)}.empty-lanes{text-align:center;color:var(--color-text-soft);font-size:.875rem}.btn{padding:.5rem 1rem;border-radius:.25rem;font-weight:500;cursor:pointer;border:none;font-size:.9rem}.add-session-label-short{display:none}.add-session-label-full{display:inline}@media (max-width: 768px){.add-session-label-full{display:none}.add-session-label-short{display:inline}}.tabs-desktop .btn-primary{flex-shrink:0;white-space:nowrap}.btn-secondary{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary:hover{background:var(--color-background-secondary)}
@@ -1,4 +1,4 @@
1
- import{L as Fn,_ as $e,l as De,o as To,N as So,a as E,c as A,b as d,t as _,i as P,E as Ne,f as Ge,F as Pe,j as ie,x as J,n as mt,r as Eo}from"./index-BGAW2Nqa.js";import{a as gt}from"./ApiClient-CcqJ-GAv.js";import{u as Ao}from"./commandButtons-D74TkPNU.js";import{u as Lo}from"./sessions-Bs5FA6JZ.js";const x$=Fn("kanban",{state:()=>({board:null,loading:!1,error:null,currentProjectId:null}),getters:{getLaneById:t=>e=>{var n,o;return((o=(n=t.board)==null?void 0:n.lanes)==null?void 0:o.find(r=>r.id===e))||null},getCardById:t=>e=>{var n,o;for(const r of((n=t.board)==null?void 0:n.lanes)||[]){const s=(o=r.cards)==null?void 0:o.find(c=>c.id===e);if(s)return s}return null},getCardBySessionId:t=>e=>{var n,o;for(const r of((n=t.board)==null?void 0:n.lanes)||[]){const s=(o=r.cards)==null?void 0:o.find(c=>{var i;return(i=c.sessions)==null?void 0:i.some(l=>l.id===e)});if(s)return s}return null},isSessionOnBoard:t=>e=>{var n,o;for(const r of((n=t.board)==null?void 0:n.lanes)||[])if((o=r.cards)==null?void 0:o.find(c=>{var i;return(i=c.sessions)==null?void 0:i.some(l=>l.id===e)}))return!0;return!1},laneNames:t=>{var e,n;return((n=(e=t.board)==null?void 0:e.lanes)==null?void 0:n.map(o=>o.name))||[]},totalCardCount:t=>{var n,o;let e=0;for(const r of((n=t.board)==null?void 0:n.lanes)||[])e+=((o=r.cards)==null?void 0:o.length)||0;return e}},actions:{_findCardLocation(t){var e;if(!this.board)return null;for(const n of this.board.lanes){const o=(e=n.cards)==null?void 0:e.findIndex(r=>r.id===t);if(o!==-1)return{lane:n,cardIndex:o,card:n.cards[o]}}return null},_moveCardOptimistic(t,e){const n=this._findCardLocation(t);if(!n)return null;const{lane:o,cardIndex:r,card:s}=n;o.cards.splice(r,1);const c=this.board.lanes.find(i=>i.id===e);return c&&(c.cards=c.cards||[],c.cards.push({...s,laneId:e})),{sourceLane:o,card:s}},_revertCardMove(t,e,n){var s;const o=t;if(!this.board)return;const r=this.board.lanes.find(c=>c.id===n);r&&(r.cards=((s=r.cards)==null?void 0:s.filter(c=>c.id!==e.id))||[]),o.cards=o.cards||[],o.cards.push(e)},async fetchBoard(t){this.loading=!0,this.error=null,this.currentProjectId=t;try{const e=await gt.getKanbanBoard(t);return this.board=e,e}catch(e){throw this.error=e.message,e}finally{this.loading=!1}},reset(){this.board=null,this.loading=!1,this.error=null,this.currentProjectId=null},async createLane(t,e){this.loading=!0,this.error=null;try{return await gt.createKanbanLane(t,e)}catch(n){throw this.error=n.message,n}finally{this.loading=!1}},async updateLane(t,e,n){this.loading=!0,this.error=null;try{return await gt.updateKanbanLane(t,e,n)}catch(o){throw this.error=o.message,o}finally{this.loading=!1}},async deleteLane(t,e){this.loading=!0,this.error=null;try{await gt.deleteKanbanLane(t,e)}catch(n){throw this.error=n.message,n}finally{this.loading=!1}},async reorderLanes(t,e){var o;this.error=null;const n=[...((o=this.board)==null?void 0:o.lanes)||[]];if(this.board){const r=new Map(this.board.lanes.map(s=>[s.id,s]));this.board.lanes=e.map(s=>r.get(s)).filter(Boolean)}try{const r=await gt.reorderKanbanLanes(t,e);return this.board=r,r}catch(r){throw this.board&&(this.board.lanes=n),this.error=r.message,r}},async addSessionToBoard(t,e,n){var o;this.loading=!0,this.error=null;try{const r=await gt.createKanbanCard(t,{sessionId:e,laneId:n}),s=(o=this.board)==null?void 0:o.lanes.find(c=>c.id===n);return s&&(s.cards=s.cards||[],s.cards.some(c=>c.id===r.id)||s.cards.push(r)),r}catch(r){throw this.error=r.message,r}finally{this.loading=!1}},async moveCard(t,e,n,o={}){this.error=null;const r=this._moveCardOptimistic(e,n);try{const s=await gt.moveKanbanCard(t,e,{targetLaneId:n,...o}),c=this._findCardLocation(e);return c&&(c.lane.cards[c.cardIndex]=s),s}catch(s){throw r&&this._revertCardMove(r.sourceLane,r.card,n),this.error=s.message,s}},async removeCard(t,e){var n,o;this.loading=!0,this.error=null;try{await gt.deleteKanbanCard(t,e);const r=((n=this.board)==null?void 0:n.lanes)||[];for(const s of r){const c=(o=s.cards)==null?void 0:o.findIndex(i=>i.id===e);if(c!==-1){s.cards.splice(c,1);break}}}catch(r){throw this.error=r.message,r}finally{this.loading=!1}},async reorderCards(t,e,n){var s,c;this.error=null;const o=(c=(s=this.board)==null?void 0:s.lanes)==null?void 0:c.find(i=>i.id===e),r=o!=null&&o.cards?[...o.cards]:[];if(o){const i=new Map(o.cards.map(l=>[l.id,l]));o.cards=n.map(l=>i.get(l)).filter(Boolean)}try{await gt.reorderKanbanCards(t,e,n)}catch(i){throw o&&(o.cards=r),this.error=i.message,i}},handleBoardUpdated(t){this.board=t},handleCardAdded(t,e){var o,r;const n=(r=(o=this.board)==null?void 0:o.lanes)==null?void 0:r.find(s=>s.id===e);n&&(n.cards=n.cards||[],n.cards.some(s=>s.id===t.id)||n.cards.push(t))},handleCardMoved(t,e,n,o){var c,i,l,f,y;const r=(i=(c=this.board)==null?void 0:c.lanes)==null?void 0:i.find(h=>h.id===e);r&&(r.cards=((l=r.cards)==null?void 0:l.filter(h=>h.id!==t))||[]);const s=(y=(f=this.board)==null?void 0:f.lanes)==null?void 0:y.find(h=>h.id===n);s&&(s.cards=s.cards||[],s.cards.some(h=>h.id===t)||s.cards.push(o))},handleCardRemoved(t,e){var o,r,s;const n=(r=(o=this.board)==null?void 0:o.lanes)==null?void 0:r.find(c=>c.id===e);n&&(n.cards=((s=n.cards)==null?void 0:s.filter(c=>c.id!==t))||[])},handleSessionUpdated(t){var e;if(this.board)for(const n of this.board.lanes)for(const o of n.cards||[]){const r=(e=o.sessions)==null?void 0:e.findIndex(s=>s.id===t.id);if(r!==-1&&r!==void 0){o.sessions[r]={...o.sessions[r],name:t.name,status:t.status,mode:t.mode,costUsd:t.costUsd,starred:t.starred,prUrl:t.prUrl,updatedAt:t.updatedAt};return}}}}}),Do=Fn("sessionStreaming",{state:()=>({partialText:"",partialThinkingBySession:{},_partialThrottleTimer:null,_pendingPartialText:null,sessionWorkLogs:{},sessionPartialText:{},sessionFileCounts:{},collapsedSessionLogs:new Set}),getters:{getPartialThinking:t=>e=>e&&t.partialThinkingBySession[e]||null,getSessionWorkLogs:t=>e=>t.sessionWorkLogs[e]||[],getSessionPartialText:t=>e=>t.sessionPartialText[e]||"",getSessionFileCount:t=>e=>t.sessionFileCounts[e]||0,isSessionLogCollapsed:t=>e=>t.collapsedSessionLogs.has(e)},actions:{setPartialText(t){this._pendingPartialText=t,this._partialThrottleTimer||(this.partialText=t,this._partialThrottleTimer=setTimeout(()=>{this._pendingPartialText!==null&&this._pendingPartialText!==this.partialText&&(this.partialText=this._pendingPartialText),this._partialThrottleTimer=null,this._pendingPartialText=null},150))},clearPartialText(){this.partialText="",this._pendingPartialText=null,this._partialThrottleTimer&&(clearTimeout(this._partialThrottleTimer),this._partialThrottleTimer=null)},setPartialThinking(t,e){e&&(this.partialThinkingBySession={...this.partialThinkingBySession,[e]:t||null})},clearPartialThinking(t){t&&(this.partialThinkingBySession={...this.partialThinkingBySession,[t]:null})},clearAllPartialThinking(){this.partialThinkingBySession={}},addSessionWorkLog(t,e){this.sessionWorkLogs[t]||(this.sessionWorkLogs[t]=[]),this.sessionWorkLogs[t].push(e),this.sessionWorkLogs[t].length>15&&(this.sessionWorkLogs[t]=this.sessionWorkLogs[t].slice(-15)),this.sessionWorkLogs={...this.sessionWorkLogs}},setSessionPartialText(t,e){this.sessionPartialText={...this.sessionPartialText,[t]:e||""}},setSessionFileCount(t,e){this.sessionFileCounts={...this.sessionFileCounts,[t]:e}},hydrateSessionState(t,{workLogs:e,partialText:n,thinking:o}={}){if(e!=null&&e.length){const r=this.sessionWorkLogs[t]||[],s=new Set(r.map(i=>i.id)),c=e.filter(i=>!s.has(i.id));c.length&&(this.sessionWorkLogs={...this.sessionWorkLogs,[t]:[...r,...c].slice(-15)})}o&&!this.partialThinkingBySession[t]&&(this.partialThinkingBySession={...this.partialThinkingBySession,[t]:o}),n&&!this.sessionPartialText[t]&&(this.sessionPartialText={...this.sessionPartialText,[t]:n})},clearSessionStreamingState(t){const{[t]:e,...n}=this.sessionWorkLogs;this.sessionWorkLogs=n;const{[t]:o,...r}=this.sessionPartialText;this.sessionPartialText=r;const{[t]:s,...c}=this.partialThinkingBySession;this.partialThinkingBySession=c;const{[t]:i,...l}=this.sessionFileCounts;this.sessionFileCounts=l},clearSessionEphemeralState(t){const{[t]:e,...n}=this.sessionPartialText;this.sessionPartialText=n;const{[t]:o,...r}=this.partialThinkingBySession;this.partialThinkingBySession=r},toggleSessionLogCollapsed(t){this.collapsedSessionLogs.has(t)?this.collapsedSessionLogs.delete(t):this.collapsedSessionLogs.add(t),this.collapsedSessionLogs=new Set(this.collapsedSessionLogs),this.saveCollapsedLogState()},saveCollapsedLogState(){try{localStorage.setItem("collapsedSessionLogs",JSON.stringify([...this.collapsedSessionLogs]))}catch{}},restoreCollapsedLogState(){try{const t=localStorage.getItem("collapsedSessionLogs");t&&(this.collapsedSessionLogs=new Set(JSON.parse(t)))}catch{}}}});function le(t){"@babel/helpers - typeof";return le=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},le(t)}function Et(t){if(t===null||t===!0||t===!1)return NaN;var e=Number(t);return isNaN(e)?e:e<0?Math.ceil(e):Math.floor(e)}function R(t,e){if(e.length<t)throw new TypeError(t+" argument"+(t>1?"s":"")+" required, but only "+e.length+" present")}function k(t){R(1,arguments);var e=Object.prototype.toString.call(t);return t instanceof Date||le(t)==="object"&&e==="[object Date]"?new Date(t.getTime()):typeof t=="number"||e==="[object Number]"?new Date(t):((typeof t=="string"||e==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function qo(t,e){R(2,arguments);var n=k(t).getTime(),o=Et(e);return new Date(n+o)}var _o={};function Vt(){return _o}function Ue(t){var e=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return e.setUTCFullYear(t.getFullYear()),t.getTime()-e.getTime()}function oe(t,e){R(2,arguments);var n=k(t),o=k(e),r=n.getTime()-o.getTime();return r<0?-1:r>0?1:r}function ko(t){return R(1,arguments),t instanceof Date||le(t)==="object"&&Object.prototype.toString.call(t)==="[object Date]"}function Co(t){if(R(1,arguments),!ko(t)&&typeof t!="number")return!1;var e=k(t);return!isNaN(Number(e))}function xo(t,e){R(2,arguments);var n=k(t),o=k(e),r=n.getFullYear()-o.getFullYear(),s=n.getMonth()-o.getMonth();return r*12+s}function Ro(t,e){return R(2,arguments),k(t).getTime()-k(e).getTime()}var Mo={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(e){return e<0?Math.ceil(e):Math.floor(e)}},Oo="trunc";function No(t){return Mo[Oo]}function Po(t){R(1,arguments);var e=k(t);return e.setHours(23,59,59,999),e}function Uo(t){R(1,arguments);var e=k(t),n=e.getMonth();return e.setFullYear(e.getFullYear(),n+1,0),e.setHours(23,59,59,999),e}function Io(t){R(1,arguments);var e=k(t);return Po(e).getTime()===Uo(e).getTime()}function Ho(t,e){R(2,arguments);var n=k(t),o=k(e),r=oe(n,o),s=Math.abs(xo(n,o)),c;if(s<1)c=0;else{n.getMonth()===1&&n.getDate()>27&&n.setDate(30),n.setMonth(n.getMonth()-r*s);var i=oe(n,o)===-r;Io(k(t))&&s===1&&oe(t,o)===1&&(i=!1),c=r*(s-Number(i))}return c===0?0:c}function Fo(t,e,n){R(2,arguments);var o=Ro(t,e)/1e3;return No()(o)}function Bo(t,e){R(2,arguments);var n=Et(e);return qo(t,-n)}var $o=864e5;function Go(t){R(1,arguments);var e=k(t),n=e.getTime();e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0);var o=e.getTime(),r=n-o;return Math.floor(r/$o)+1}function ue(t){R(1,arguments);var e=1,n=k(t),o=n.getUTCDay(),r=(o<e?7:0)+o-e;return n.setUTCDate(n.getUTCDate()-r),n.setUTCHours(0,0,0,0),n}function Bn(t){R(1,arguments);var e=k(t),n=e.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(n+1,0,4),o.setUTCHours(0,0,0,0);var r=ue(o),s=new Date(0);s.setUTCFullYear(n,0,4),s.setUTCHours(0,0,0,0);var c=ue(s);return e.getTime()>=r.getTime()?n+1:e.getTime()>=c.getTime()?n:n-1}function Wo(t){R(1,arguments);var e=Bn(t),n=new Date(0);n.setUTCFullYear(e,0,4),n.setUTCHours(0,0,0,0);var o=ue(n);return o}var Vo=6048e5;function jo(t){R(1,arguments);var e=k(t),n=ue(e).getTime()-Wo(e).getTime();return Math.round(n/Vo)+1}function de(t,e){var n,o,r,s,c,i,l,f;R(1,arguments);var y=Vt(),h=Et((n=(o=(r=(s=e==null?void 0:e.weekStartsOn)!==null&&s!==void 0?s:e==null||(c=e.locale)===null||c===void 0||(i=c.options)===null||i===void 0?void 0:i.weekStartsOn)!==null&&r!==void 0?r:y.weekStartsOn)!==null&&o!==void 0?o:(l=y.locale)===null||l===void 0||(f=l.options)===null||f===void 0?void 0:f.weekStartsOn)!==null&&n!==void 0?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var D=k(t),w=D.getUTCDay(),v=(w<h?7:0)+w-h;return D.setUTCDate(D.getUTCDate()-v),D.setUTCHours(0,0,0,0),D}function $n(t,e){var n,o,r,s,c,i,l,f;R(1,arguments);var y=k(t),h=y.getUTCFullYear(),D=Vt(),w=Et((n=(o=(r=(s=e==null?void 0:e.firstWeekContainsDate)!==null&&s!==void 0?s:e==null||(c=e.locale)===null||c===void 0||(i=c.options)===null||i===void 0?void 0:i.firstWeekContainsDate)!==null&&r!==void 0?r:D.firstWeekContainsDate)!==null&&o!==void 0?o:(l=D.locale)===null||l===void 0||(f=l.options)===null||f===void 0?void 0:f.firstWeekContainsDate)!==null&&n!==void 0?n:1);if(!(w>=1&&w<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var v=new Date(0);v.setUTCFullYear(h+1,0,w),v.setUTCHours(0,0,0,0);var b=de(v,e),C=new Date(0);C.setUTCFullYear(h,0,w),C.setUTCHours(0,0,0,0);var X=de(C,e);return y.getTime()>=b.getTime()?h+1:y.getTime()>=X.getTime()?h:h-1}function zo(t,e){var n,o,r,s,c,i,l,f;R(1,arguments);var y=Vt(),h=Et((n=(o=(r=(s=e==null?void 0:e.firstWeekContainsDate)!==null&&s!==void 0?s:e==null||(c=e.locale)===null||c===void 0||(i=c.options)===null||i===void 0?void 0:i.firstWeekContainsDate)!==null&&r!==void 0?r:y.firstWeekContainsDate)!==null&&o!==void 0?o:(l=y.locale)===null||l===void 0||(f=l.options)===null||f===void 0?void 0:f.firstWeekContainsDate)!==null&&n!==void 0?n:1),D=$n(t,e),w=new Date(0);w.setUTCFullYear(D,0,h),w.setUTCHours(0,0,0,0);var v=de(w,e);return v}var Yo=6048e5;function Xo(t,e){R(1,arguments);var n=k(t),o=de(n,e).getTime()-zo(n,e).getTime();return Math.round(o/Yo)+1}function q(t,e){for(var n=t<0?"-":"",o=Math.abs(t).toString();o.length<e;)o="0"+o;return n+o}var bt={y:function(e,n){var o=e.getUTCFullYear(),r=o>0?o:1-o;return q(n==="yy"?r%100:r,n.length)},M:function(e,n){var o=e.getUTCMonth();return n==="M"?String(o+1):q(o+1,2)},d:function(e,n){return q(e.getUTCDate(),n.length)},a:function(e,n){var o=e.getUTCHours()/12>=1?"pm":"am";switch(n){case"a":case"aa":return o.toUpperCase();case"aaa":return o;case"aaaaa":return o[0];case"aaaa":default:return o==="am"?"a.m.":"p.m."}},h:function(e,n){return q(e.getUTCHours()%12||12,n.length)},H:function(e,n){return q(e.getUTCHours(),n.length)},m:function(e,n){return q(e.getUTCMinutes(),n.length)},s:function(e,n){return q(e.getUTCSeconds(),n.length)},S:function(e,n){var o=n.length,r=e.getUTCMilliseconds(),s=Math.floor(r*Math.pow(10,o-3));return q(s,n.length)}},xt={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Zo={G:function(e,n,o){var r=e.getUTCFullYear()>0?1:0;switch(n){case"G":case"GG":case"GGG":return o.era(r,{width:"abbreviated"});case"GGGGG":return o.era(r,{width:"narrow"});case"GGGG":default:return o.era(r,{width:"wide"})}},y:function(e,n,o){if(n==="yo"){var r=e.getUTCFullYear(),s=r>0?r:1-r;return o.ordinalNumber(s,{unit:"year"})}return bt.y(e,n)},Y:function(e,n,o,r){var s=$n(e,r),c=s>0?s:1-s;if(n==="YY"){var i=c%100;return q(i,2)}return n==="Yo"?o.ordinalNumber(c,{unit:"year"}):q(c,n.length)},R:function(e,n){var o=Bn(e);return q(o,n.length)},u:function(e,n){var o=e.getUTCFullYear();return q(o,n.length)},Q:function(e,n,o){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(n){case"Q":return String(r);case"QQ":return q(r,2);case"Qo":return o.ordinalNumber(r,{unit:"quarter"});case"QQQ":return o.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return o.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return o.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,n,o){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(n){case"q":return String(r);case"qq":return q(r,2);case"qo":return o.ordinalNumber(r,{unit:"quarter"});case"qqq":return o.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return o.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return o.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,n,o){var r=e.getUTCMonth();switch(n){case"M":case"MM":return bt.M(e,n);case"Mo":return o.ordinalNumber(r+1,{unit:"month"});case"MMM":return o.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return o.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return o.month(r,{width:"wide",context:"formatting"})}},L:function(e,n,o){var r=e.getUTCMonth();switch(n){case"L":return String(r+1);case"LL":return q(r+1,2);case"Lo":return o.ordinalNumber(r+1,{unit:"month"});case"LLL":return o.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return o.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return o.month(r,{width:"wide",context:"standalone"})}},w:function(e,n,o,r){var s=Xo(e,r);return n==="wo"?o.ordinalNumber(s,{unit:"week"}):q(s,n.length)},I:function(e,n,o){var r=jo(e);return n==="Io"?o.ordinalNumber(r,{unit:"week"}):q(r,n.length)},d:function(e,n,o){return n==="do"?o.ordinalNumber(e.getUTCDate(),{unit:"date"}):bt.d(e,n)},D:function(e,n,o){var r=Go(e);return n==="Do"?o.ordinalNumber(r,{unit:"dayOfYear"}):q(r,n.length)},E:function(e,n,o){var r=e.getUTCDay();switch(n){case"E":case"EE":case"EEE":return o.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return o.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return o.day(r,{width:"short",context:"formatting"});case"EEEE":default:return o.day(r,{width:"wide",context:"formatting"})}},e:function(e,n,o,r){var s=e.getUTCDay(),c=(s-r.weekStartsOn+8)%7||7;switch(n){case"e":return String(c);case"ee":return q(c,2);case"eo":return o.ordinalNumber(c,{unit:"day"});case"eee":return o.day(s,{width:"abbreviated",context:"formatting"});case"eeeee":return o.day(s,{width:"narrow",context:"formatting"});case"eeeeee":return o.day(s,{width:"short",context:"formatting"});case"eeee":default:return o.day(s,{width:"wide",context:"formatting"})}},c:function(e,n,o,r){var s=e.getUTCDay(),c=(s-r.weekStartsOn+8)%7||7;switch(n){case"c":return String(c);case"cc":return q(c,n.length);case"co":return o.ordinalNumber(c,{unit:"day"});case"ccc":return o.day(s,{width:"abbreviated",context:"standalone"});case"ccccc":return o.day(s,{width:"narrow",context:"standalone"});case"cccccc":return o.day(s,{width:"short",context:"standalone"});case"cccc":default:return o.day(s,{width:"wide",context:"standalone"})}},i:function(e,n,o){var r=e.getUTCDay(),s=r===0?7:r;switch(n){case"i":return String(s);case"ii":return q(s,n.length);case"io":return o.ordinalNumber(s,{unit:"day"});case"iii":return o.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return o.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return o.day(r,{width:"short",context:"formatting"});case"iiii":default:return o.day(r,{width:"wide",context:"formatting"})}},a:function(e,n,o){var r=e.getUTCHours(),s=r/12>=1?"pm":"am";switch(n){case"a":case"aa":return o.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"aaa":return o.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return o.dayPeriod(s,{width:"narrow",context:"formatting"});case"aaaa":default:return o.dayPeriod(s,{width:"wide",context:"formatting"})}},b:function(e,n,o){var r=e.getUTCHours(),s;switch(r===12?s=xt.noon:r===0?s=xt.midnight:s=r/12>=1?"pm":"am",n){case"b":case"bb":return o.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"bbb":return o.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return o.dayPeriod(s,{width:"narrow",context:"formatting"});case"bbbb":default:return o.dayPeriod(s,{width:"wide",context:"formatting"})}},B:function(e,n,o){var r=e.getUTCHours(),s;switch(r>=17?s=xt.evening:r>=12?s=xt.afternoon:r>=4?s=xt.morning:s=xt.night,n){case"B":case"BB":case"BBB":return o.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"BBBBB":return o.dayPeriod(s,{width:"narrow",context:"formatting"});case"BBBB":default:return o.dayPeriod(s,{width:"wide",context:"formatting"})}},h:function(e,n,o){if(n==="ho"){var r=e.getUTCHours()%12;return r===0&&(r=12),o.ordinalNumber(r,{unit:"hour"})}return bt.h(e,n)},H:function(e,n,o){return n==="Ho"?o.ordinalNumber(e.getUTCHours(),{unit:"hour"}):bt.H(e,n)},K:function(e,n,o){var r=e.getUTCHours()%12;return n==="Ko"?o.ordinalNumber(r,{unit:"hour"}):q(r,n.length)},k:function(e,n,o){var r=e.getUTCHours();return r===0&&(r=24),n==="ko"?o.ordinalNumber(r,{unit:"hour"}):q(r,n.length)},m:function(e,n,o){return n==="mo"?o.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):bt.m(e,n)},s:function(e,n,o){return n==="so"?o.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):bt.s(e,n)},S:function(e,n){return bt.S(e,n)},X:function(e,n,o,r){var s=r._originalDate||e,c=s.getTimezoneOffset();if(c===0)return"Z";switch(n){case"X":return hn(c);case"XXXX":case"XX":return St(c);case"XXXXX":case"XXX":default:return St(c,":")}},x:function(e,n,o,r){var s=r._originalDate||e,c=s.getTimezoneOffset();switch(n){case"x":return hn(c);case"xxxx":case"xx":return St(c);case"xxxxx":case"xxx":default:return St(c,":")}},O:function(e,n,o,r){var s=r._originalDate||e,c=s.getTimezoneOffset();switch(n){case"O":case"OO":case"OOO":return"GMT"+gn(c,":");case"OOOO":default:return"GMT"+St(c,":")}},z:function(e,n,o,r){var s=r._originalDate||e,c=s.getTimezoneOffset();switch(n){case"z":case"zz":case"zzz":return"GMT"+gn(c,":");case"zzzz":default:return"GMT"+St(c,":")}},t:function(e,n,o,r){var s=r._originalDate||e,c=Math.floor(s.getTime()/1e3);return q(c,n.length)},T:function(e,n,o,r){var s=r._originalDate||e,c=s.getTime();return q(c,n.length)}};function gn(t,e){var n=t>0?"-":"+",o=Math.abs(t),r=Math.floor(o/60),s=o%60;if(s===0)return n+String(r);var c=e;return n+String(r)+c+q(s,2)}function hn(t,e){if(t%60===0){var n=t>0?"-":"+";return n+q(Math.abs(t)/60,2)}return St(t,e)}function St(t,e){var n=e||"",o=t>0?"-":"+",r=Math.abs(t),s=q(Math.floor(r/60),2),c=q(r%60,2);return o+s+n+c}var vn=function(e,n){switch(e){case"P":return n.date({width:"short"});case"PP":return n.date({width:"medium"});case"PPP":return n.date({width:"long"});case"PPPP":default:return n.date({width:"full"})}},Gn=function(e,n){switch(e){case"p":return n.time({width:"short"});case"pp":return n.time({width:"medium"});case"ppp":return n.time({width:"long"});case"pppp":default:return n.time({width:"full"})}},Qo=function(e,n){var o=e.match(/(P+)(p+)?/)||[],r=o[1],s=o[2];if(!s)return vn(e,n);var c;switch(r){case"P":c=n.dateTime({width:"short"});break;case"PP":c=n.dateTime({width:"medium"});break;case"PPP":c=n.dateTime({width:"long"});break;case"PPPP":default:c=n.dateTime({width:"full"});break}return c.replace("{{date}}",vn(r,n)).replace("{{time}}",Gn(s,n))},Ko={p:Gn,P:Qo},Jo=["D","DD"],tr=["YY","YYYY"];function er(t){return Jo.indexOf(t)!==-1}function nr(t){return tr.indexOf(t)!==-1}function bn(t,e,n){if(t==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(e,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(t==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(e,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(t==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(e,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(t==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(e,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var or={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},rr=function(e,n,o){var r,s=or[e];return typeof s=="string"?r=s:n===1?r=s.one:r=s.other.replace("{{count}}",n.toString()),o!=null&&o.addSuffix?o.comparison&&o.comparison>0?"in "+r:r+" ago":r};function qe(t){return function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.width?String(e.width):t.defaultWidth,o=t.formats[n]||t.formats[t.defaultWidth];return o}}var sr={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},ar={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},cr={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},ir={date:qe({formats:sr,defaultWidth:"full"}),time:qe({formats:ar,defaultWidth:"full"}),dateTime:qe({formats:cr,defaultWidth:"full"})},lr={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},ur=function(e,n,o,r){return lr[e]};function It(t){return function(e,n){var o=n!=null&&n.context?String(n.context):"standalone",r;if(o==="formatting"&&t.formattingValues){var s=t.defaultFormattingWidth||t.defaultWidth,c=n!=null&&n.width?String(n.width):s;r=t.formattingValues[c]||t.formattingValues[s]}else{var i=t.defaultWidth,l=n!=null&&n.width?String(n.width):t.defaultWidth;r=t.values[l]||t.values[i]}var f=t.argumentCallback?t.argumentCallback(e):e;return r[f]}}var dr={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},fr={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},pr={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},mr={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},gr={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},hr={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},vr=function(e,n){var o=Number(e),r=o%100;if(r>20||r<10)switch(r%10){case 1:return o+"st";case 2:return o+"nd";case 3:return o+"rd"}return o+"th"},br={ordinalNumber:vr,era:It({values:dr,defaultWidth:"wide"}),quarter:It({values:fr,defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:It({values:pr,defaultWidth:"wide"}),day:It({values:mr,defaultWidth:"wide"}),dayPeriod:It({values:gr,defaultWidth:"wide",formattingValues:hr,defaultFormattingWidth:"wide"})};function Ht(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=n.width,r=o&&t.matchPatterns[o]||t.matchPatterns[t.defaultMatchWidth],s=e.match(r);if(!s)return null;var c=s[0],i=o&&t.parsePatterns[o]||t.parsePatterns[t.defaultParseWidth],l=Array.isArray(i)?yr(i,function(h){return h.test(c)}):wr(i,function(h){return h.test(c)}),f;f=t.valueCallback?t.valueCallback(l):l,f=n.valueCallback?n.valueCallback(f):f;var y=e.slice(c.length);return{value:f,rest:y}}}function wr(t,e){for(var n in t)if(t.hasOwnProperty(n)&&e(t[n]))return n}function yr(t,e){for(var n=0;n<t.length;n++)if(e(t[n]))return n}function Tr(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=e.match(t.matchPattern);if(!o)return null;var r=o[0],s=e.match(t.parsePattern);if(!s)return null;var c=t.valueCallback?t.valueCallback(s[0]):s[0];c=n.valueCallback?n.valueCallback(c):c;var i=e.slice(r.length);return{value:c,rest:i}}}var Sr=/^(\d+)(th|st|nd|rd)?/i,Er=/\d+/i,Ar={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Lr={any:[/^b/i,/^(a|c)/i]},Dr={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},qr={any:[/1/i,/2/i,/3/i,/4/i]},_r={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},kr={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Cr={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},xr={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Rr={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Mr={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Or={ordinalNumber:Tr({matchPattern:Sr,parsePattern:Er,valueCallback:function(e){return parseInt(e,10)}}),era:Ht({matchPatterns:Ar,defaultMatchWidth:"wide",parsePatterns:Lr,defaultParseWidth:"any"}),quarter:Ht({matchPatterns:Dr,defaultMatchWidth:"wide",parsePatterns:qr,defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Ht({matchPatterns:_r,defaultMatchWidth:"wide",parsePatterns:kr,defaultParseWidth:"any"}),day:Ht({matchPatterns:Cr,defaultMatchWidth:"wide",parsePatterns:xr,defaultParseWidth:"any"}),dayPeriod:Ht({matchPatterns:Rr,defaultMatchWidth:"any",parsePatterns:Mr,defaultParseWidth:"any"})},Wn={code:"en-US",formatDistance:rr,formatLong:ir,formatRelative:ur,localize:br,match:Or,options:{weekStartsOn:0,firstWeekContainsDate:1}},Nr=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Pr=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Ur=/^'([^]*?)'?$/,Ir=/''/g,Hr=/[a-zA-Z]/;function R$(t,e,n){var o,r,s,c,i,l,f,y,h,D,w,v,b,C;R(2,arguments);var X=String(e),Z=Vt(),$=(o=(r=void 0)!==null&&r!==void 0?r:Z.locale)!==null&&o!==void 0?o:Wn,M=Et((s=(c=(i=(l=void 0)!==null&&l!==void 0?l:void 0)!==null&&i!==void 0?i:Z.firstWeekContainsDate)!==null&&c!==void 0?c:(f=Z.locale)===null||f===void 0||(y=f.options)===null||y===void 0?void 0:y.firstWeekContainsDate)!==null&&s!==void 0?s:1);if(!(M>=1&&M<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var O=Et((h=(D=(w=(v=void 0)!==null&&v!==void 0?v:void 0)!==null&&w!==void 0?w:Z.weekStartsOn)!==null&&D!==void 0?D:(b=Z.locale)===null||b===void 0||(C=b.options)===null||C===void 0?void 0:C.weekStartsOn)!==null&&h!==void 0?h:0);if(!(O>=0&&O<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!$.localize)throw new RangeError("locale must contain localize property");if(!$.formatLong)throw new RangeError("locale must contain formatLong property");var x=k(t);if(!Co(x))throw new RangeError("Invalid time value");var ot=Ue(x),et=Bo(x,ot),lt={firstWeekContainsDate:M,weekStartsOn:O,locale:$,_originalDate:x},ut=X.match(Pr).map(function(L){var Q=L[0];if(Q==="p"||Q==="P"){var st=Ko[Q];return st(L,$.formatLong)}return L}).join("").match(Nr).map(function(L){if(L==="''")return"'";var Q=L[0];if(Q==="'")return Fr(L);var st=Zo[Q];if(st)return nr(L)&&bn(L,e,String(t)),er(L)&&bn(L,e,String(t)),st(et,L,$.localize,lt);if(Q.match(Hr))throw new RangeError("Format string contains an unescaped latin alphabet character `"+Q+"`");return L}).join("");return ut}function Fr(t){var e=t.match(Ur);return e?e[1].replace(Ir,"'"):t}function Vn(t,e){if(t==null)throw new TypeError("assign requires that input parameter not be null or undefined");for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}function Br(t){return Vn({},t)}var wn=1440,$r=2520,_e=43200,Gr=86400;function Wr(t,e,n){var o,r;R(2,arguments);var s=Vt(),c=(o=(r=n==null?void 0:n.locale)!==null&&r!==void 0?r:s.locale)!==null&&o!==void 0?o:Wn;if(!c.formatDistance)throw new RangeError("locale must contain formatDistance property");var i=oe(t,e);if(isNaN(i))throw new RangeError("Invalid time value");var l=Vn(Br(n),{addSuffix:!!(n!=null&&n.addSuffix),comparison:i}),f,y;i>0?(f=k(e),y=k(t)):(f=k(t),y=k(e));var h=Fo(y,f),D=(Ue(y)-Ue(f))/1e3,w=Math.round((h-D)/60),v;if(w<2)return n!=null&&n.includeSeconds?h<5?c.formatDistance("lessThanXSeconds",5,l):h<10?c.formatDistance("lessThanXSeconds",10,l):h<20?c.formatDistance("lessThanXSeconds",20,l):h<40?c.formatDistance("halfAMinute",0,l):h<60?c.formatDistance("lessThanXMinutes",1,l):c.formatDistance("xMinutes",1,l):w===0?c.formatDistance("lessThanXMinutes",1,l):c.formatDistance("xMinutes",w,l);if(w<45)return c.formatDistance("xMinutes",w,l);if(w<90)return c.formatDistance("aboutXHours",1,l);if(w<wn){var b=Math.round(w/60);return c.formatDistance("aboutXHours",b,l)}else{if(w<$r)return c.formatDistance("xDays",1,l);if(w<_e){var C=Math.round(w/wn);return c.formatDistance("xDays",C,l)}else if(w<Gr)return v=Math.round(w/_e),c.formatDistance("aboutXMonths",v,l)}if(v=Ho(y,f),v<12){var X=Math.round(w/_e);return c.formatDistance("xMonths",X,l)}else{var Z=v%12,$=Math.floor(v/12);return Z<3?c.formatDistance("aboutXYears",$,l):Z<9?c.formatDistance("overXYears",$,l):c.formatDistance("almostXYears",$+1,l)}}function M$(t,e){return R(1,arguments),Wr(t,Date.now(),e)}const yn={running:`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor"
1
+ import{L as Fn,_ as $e,l as De,o as To,N as So,a as E,c as A,b as d,t as _,i as P,E as Ne,f as Ge,F as Pe,j as ie,x as J,n as mt,r as Eo}from"./index-B6G18FqB.js";import{a as gt}from"./ApiClient-B4YTtyY4.js";import{u as Ao}from"./commandButtons-D4RPpLiu.js";import{u as Lo}from"./sessions-DH1R-NhV.js";const x$=Fn("kanban",{state:()=>({board:null,loading:!1,error:null,currentProjectId:null}),getters:{getLaneById:t=>e=>{var n,o;return((o=(n=t.board)==null?void 0:n.lanes)==null?void 0:o.find(r=>r.id===e))||null},getCardById:t=>e=>{var n,o;for(const r of((n=t.board)==null?void 0:n.lanes)||[]){const s=(o=r.cards)==null?void 0:o.find(c=>c.id===e);if(s)return s}return null},getCardBySessionId:t=>e=>{var n,o;for(const r of((n=t.board)==null?void 0:n.lanes)||[]){const s=(o=r.cards)==null?void 0:o.find(c=>{var i;return(i=c.sessions)==null?void 0:i.some(l=>l.id===e)});if(s)return s}return null},isSessionOnBoard:t=>e=>{var n,o;for(const r of((n=t.board)==null?void 0:n.lanes)||[])if((o=r.cards)==null?void 0:o.find(c=>{var i;return(i=c.sessions)==null?void 0:i.some(l=>l.id===e)}))return!0;return!1},laneNames:t=>{var e,n;return((n=(e=t.board)==null?void 0:e.lanes)==null?void 0:n.map(o=>o.name))||[]},totalCardCount:t=>{var n,o;let e=0;for(const r of((n=t.board)==null?void 0:n.lanes)||[])e+=((o=r.cards)==null?void 0:o.length)||0;return e}},actions:{_findCardLocation(t){var e;if(!this.board)return null;for(const n of this.board.lanes){const o=(e=n.cards)==null?void 0:e.findIndex(r=>r.id===t);if(o!==-1)return{lane:n,cardIndex:o,card:n.cards[o]}}return null},_moveCardOptimistic(t,e){const n=this._findCardLocation(t);if(!n)return null;const{lane:o,cardIndex:r,card:s}=n;o.cards.splice(r,1);const c=this.board.lanes.find(i=>i.id===e);return c&&(c.cards=c.cards||[],c.cards.push({...s,laneId:e})),{sourceLane:o,card:s}},_revertCardMove(t,e,n){var s;const o=t;if(!this.board)return;const r=this.board.lanes.find(c=>c.id===n);r&&(r.cards=((s=r.cards)==null?void 0:s.filter(c=>c.id!==e.id))||[]),o.cards=o.cards||[],o.cards.push(e)},async fetchBoard(t){this.loading=!0,this.error=null,this.currentProjectId=t;try{const e=await gt.getKanbanBoard(t);return this.board=e,e}catch(e){throw this.error=e.message,e}finally{this.loading=!1}},reset(){this.board=null,this.loading=!1,this.error=null,this.currentProjectId=null},async createLane(t,e){this.loading=!0,this.error=null;try{return await gt.createKanbanLane(t,e)}catch(n){throw this.error=n.message,n}finally{this.loading=!1}},async updateLane(t,e,n){this.loading=!0,this.error=null;try{return await gt.updateKanbanLane(t,e,n)}catch(o){throw this.error=o.message,o}finally{this.loading=!1}},async deleteLane(t,e){this.loading=!0,this.error=null;try{await gt.deleteKanbanLane(t,e)}catch(n){throw this.error=n.message,n}finally{this.loading=!1}},async reorderLanes(t,e){var o;this.error=null;const n=[...((o=this.board)==null?void 0:o.lanes)||[]];if(this.board){const r=new Map(this.board.lanes.map(s=>[s.id,s]));this.board.lanes=e.map(s=>r.get(s)).filter(Boolean)}try{const r=await gt.reorderKanbanLanes(t,e);return this.board=r,r}catch(r){throw this.board&&(this.board.lanes=n),this.error=r.message,r}},async addSessionToBoard(t,e,n){var o;this.loading=!0,this.error=null;try{const r=await gt.createKanbanCard(t,{sessionId:e,laneId:n}),s=(o=this.board)==null?void 0:o.lanes.find(c=>c.id===n);return s&&(s.cards=s.cards||[],s.cards.some(c=>c.id===r.id)||s.cards.push(r)),r}catch(r){throw this.error=r.message,r}finally{this.loading=!1}},async moveCard(t,e,n,o={}){this.error=null;const r=this._moveCardOptimistic(e,n);try{const s=await gt.moveKanbanCard(t,e,{targetLaneId:n,...o}),c=this._findCardLocation(e);return c&&(c.lane.cards[c.cardIndex]=s),s}catch(s){throw r&&this._revertCardMove(r.sourceLane,r.card,n),this.error=s.message,s}},async removeCard(t,e){var n,o;this.loading=!0,this.error=null;try{await gt.deleteKanbanCard(t,e);const r=((n=this.board)==null?void 0:n.lanes)||[];for(const s of r){const c=(o=s.cards)==null?void 0:o.findIndex(i=>i.id===e);if(c!==-1){s.cards.splice(c,1);break}}}catch(r){throw this.error=r.message,r}finally{this.loading=!1}},async reorderCards(t,e,n){var s,c;this.error=null;const o=(c=(s=this.board)==null?void 0:s.lanes)==null?void 0:c.find(i=>i.id===e),r=o!=null&&o.cards?[...o.cards]:[];if(o){const i=new Map(o.cards.map(l=>[l.id,l]));o.cards=n.map(l=>i.get(l)).filter(Boolean)}try{await gt.reorderKanbanCards(t,e,n)}catch(i){throw o&&(o.cards=r),this.error=i.message,i}},handleBoardUpdated(t){this.board=t},handleCardAdded(t,e){var o,r;const n=(r=(o=this.board)==null?void 0:o.lanes)==null?void 0:r.find(s=>s.id===e);n&&(n.cards=n.cards||[],n.cards.some(s=>s.id===t.id)||n.cards.push(t))},handleCardMoved(t,e,n,o){var c,i,l,f,y;const r=(i=(c=this.board)==null?void 0:c.lanes)==null?void 0:i.find(h=>h.id===e);r&&(r.cards=((l=r.cards)==null?void 0:l.filter(h=>h.id!==t))||[]);const s=(y=(f=this.board)==null?void 0:f.lanes)==null?void 0:y.find(h=>h.id===n);s&&(s.cards=s.cards||[],s.cards.some(h=>h.id===t)||s.cards.push(o))},handleCardRemoved(t,e){var o,r,s;const n=(r=(o=this.board)==null?void 0:o.lanes)==null?void 0:r.find(c=>c.id===e);n&&(n.cards=((s=n.cards)==null?void 0:s.filter(c=>c.id!==t))||[])},handleSessionUpdated(t){var e;if(this.board)for(const n of this.board.lanes)for(const o of n.cards||[]){const r=(e=o.sessions)==null?void 0:e.findIndex(s=>s.id===t.id);if(r!==-1&&r!==void 0){o.sessions[r]={...o.sessions[r],name:t.name,status:t.status,mode:t.mode,costUsd:t.costUsd,starred:t.starred,prUrl:t.prUrl,updatedAt:t.updatedAt};return}}}}}),Do=Fn("sessionStreaming",{state:()=>({partialText:"",partialThinkingBySession:{},_partialThrottleTimer:null,_pendingPartialText:null,sessionWorkLogs:{},sessionPartialText:{},sessionFileCounts:{},collapsedSessionLogs:new Set}),getters:{getPartialThinking:t=>e=>e&&t.partialThinkingBySession[e]||null,getSessionWorkLogs:t=>e=>t.sessionWorkLogs[e]||[],getSessionPartialText:t=>e=>t.sessionPartialText[e]||"",getSessionFileCount:t=>e=>t.sessionFileCounts[e]||0,isSessionLogCollapsed:t=>e=>t.collapsedSessionLogs.has(e)},actions:{setPartialText(t){this._pendingPartialText=t,this._partialThrottleTimer||(this.partialText=t,this._partialThrottleTimer=setTimeout(()=>{this._pendingPartialText!==null&&this._pendingPartialText!==this.partialText&&(this.partialText=this._pendingPartialText),this._partialThrottleTimer=null,this._pendingPartialText=null},150))},clearPartialText(){this.partialText="",this._pendingPartialText=null,this._partialThrottleTimer&&(clearTimeout(this._partialThrottleTimer),this._partialThrottleTimer=null)},setPartialThinking(t,e){e&&(this.partialThinkingBySession={...this.partialThinkingBySession,[e]:t||null})},clearPartialThinking(t){t&&(this.partialThinkingBySession={...this.partialThinkingBySession,[t]:null})},clearAllPartialThinking(){this.partialThinkingBySession={}},addSessionWorkLog(t,e){this.sessionWorkLogs[t]||(this.sessionWorkLogs[t]=[]),this.sessionWorkLogs[t].push(e),this.sessionWorkLogs[t].length>15&&(this.sessionWorkLogs[t]=this.sessionWorkLogs[t].slice(-15)),this.sessionWorkLogs={...this.sessionWorkLogs}},setSessionPartialText(t,e){this.sessionPartialText={...this.sessionPartialText,[t]:e||""}},setSessionFileCount(t,e){this.sessionFileCounts={...this.sessionFileCounts,[t]:e}},hydrateSessionState(t,{workLogs:e,partialText:n,thinking:o}={}){if(e!=null&&e.length){const r=this.sessionWorkLogs[t]||[],s=new Set(r.map(i=>i.id)),c=e.filter(i=>!s.has(i.id));c.length&&(this.sessionWorkLogs={...this.sessionWorkLogs,[t]:[...r,...c].slice(-15)})}o&&!this.partialThinkingBySession[t]&&(this.partialThinkingBySession={...this.partialThinkingBySession,[t]:o}),n&&!this.sessionPartialText[t]&&(this.sessionPartialText={...this.sessionPartialText,[t]:n})},clearSessionStreamingState(t){const{[t]:e,...n}=this.sessionWorkLogs;this.sessionWorkLogs=n;const{[t]:o,...r}=this.sessionPartialText;this.sessionPartialText=r;const{[t]:s,...c}=this.partialThinkingBySession;this.partialThinkingBySession=c;const{[t]:i,...l}=this.sessionFileCounts;this.sessionFileCounts=l},clearSessionEphemeralState(t){const{[t]:e,...n}=this.sessionPartialText;this.sessionPartialText=n;const{[t]:o,...r}=this.partialThinkingBySession;this.partialThinkingBySession=r},toggleSessionLogCollapsed(t){this.collapsedSessionLogs.has(t)?this.collapsedSessionLogs.delete(t):this.collapsedSessionLogs.add(t),this.collapsedSessionLogs=new Set(this.collapsedSessionLogs),this.saveCollapsedLogState()},saveCollapsedLogState(){try{localStorage.setItem("collapsedSessionLogs",JSON.stringify([...this.collapsedSessionLogs]))}catch{}},restoreCollapsedLogState(){try{const t=localStorage.getItem("collapsedSessionLogs");t&&(this.collapsedSessionLogs=new Set(JSON.parse(t)))}catch{}}}});function le(t){"@babel/helpers - typeof";return le=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},le(t)}function Et(t){if(t===null||t===!0||t===!1)return NaN;var e=Number(t);return isNaN(e)?e:e<0?Math.ceil(e):Math.floor(e)}function R(t,e){if(e.length<t)throw new TypeError(t+" argument"+(t>1?"s":"")+" required, but only "+e.length+" present")}function k(t){R(1,arguments);var e=Object.prototype.toString.call(t);return t instanceof Date||le(t)==="object"&&e==="[object Date]"?new Date(t.getTime()):typeof t=="number"||e==="[object Number]"?new Date(t):((typeof t=="string"||e==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function qo(t,e){R(2,arguments);var n=k(t).getTime(),o=Et(e);return new Date(n+o)}var _o={};function Vt(){return _o}function Ue(t){var e=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return e.setUTCFullYear(t.getFullYear()),t.getTime()-e.getTime()}function oe(t,e){R(2,arguments);var n=k(t),o=k(e),r=n.getTime()-o.getTime();return r<0?-1:r>0?1:r}function ko(t){return R(1,arguments),t instanceof Date||le(t)==="object"&&Object.prototype.toString.call(t)==="[object Date]"}function Co(t){if(R(1,arguments),!ko(t)&&typeof t!="number")return!1;var e=k(t);return!isNaN(Number(e))}function xo(t,e){R(2,arguments);var n=k(t),o=k(e),r=n.getFullYear()-o.getFullYear(),s=n.getMonth()-o.getMonth();return r*12+s}function Ro(t,e){return R(2,arguments),k(t).getTime()-k(e).getTime()}var Mo={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(e){return e<0?Math.ceil(e):Math.floor(e)}},Oo="trunc";function No(t){return Mo[Oo]}function Po(t){R(1,arguments);var e=k(t);return e.setHours(23,59,59,999),e}function Uo(t){R(1,arguments);var e=k(t),n=e.getMonth();return e.setFullYear(e.getFullYear(),n+1,0),e.setHours(23,59,59,999),e}function Io(t){R(1,arguments);var e=k(t);return Po(e).getTime()===Uo(e).getTime()}function Ho(t,e){R(2,arguments);var n=k(t),o=k(e),r=oe(n,o),s=Math.abs(xo(n,o)),c;if(s<1)c=0;else{n.getMonth()===1&&n.getDate()>27&&n.setDate(30),n.setMonth(n.getMonth()-r*s);var i=oe(n,o)===-r;Io(k(t))&&s===1&&oe(t,o)===1&&(i=!1),c=r*(s-Number(i))}return c===0?0:c}function Fo(t,e,n){R(2,arguments);var o=Ro(t,e)/1e3;return No()(o)}function Bo(t,e){R(2,arguments);var n=Et(e);return qo(t,-n)}var $o=864e5;function Go(t){R(1,arguments);var e=k(t),n=e.getTime();e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0);var o=e.getTime(),r=n-o;return Math.floor(r/$o)+1}function ue(t){R(1,arguments);var e=1,n=k(t),o=n.getUTCDay(),r=(o<e?7:0)+o-e;return n.setUTCDate(n.getUTCDate()-r),n.setUTCHours(0,0,0,0),n}function Bn(t){R(1,arguments);var e=k(t),n=e.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(n+1,0,4),o.setUTCHours(0,0,0,0);var r=ue(o),s=new Date(0);s.setUTCFullYear(n,0,4),s.setUTCHours(0,0,0,0);var c=ue(s);return e.getTime()>=r.getTime()?n+1:e.getTime()>=c.getTime()?n:n-1}function Wo(t){R(1,arguments);var e=Bn(t),n=new Date(0);n.setUTCFullYear(e,0,4),n.setUTCHours(0,0,0,0);var o=ue(n);return o}var Vo=6048e5;function jo(t){R(1,arguments);var e=k(t),n=ue(e).getTime()-Wo(e).getTime();return Math.round(n/Vo)+1}function de(t,e){var n,o,r,s,c,i,l,f;R(1,arguments);var y=Vt(),h=Et((n=(o=(r=(s=e==null?void 0:e.weekStartsOn)!==null&&s!==void 0?s:e==null||(c=e.locale)===null||c===void 0||(i=c.options)===null||i===void 0?void 0:i.weekStartsOn)!==null&&r!==void 0?r:y.weekStartsOn)!==null&&o!==void 0?o:(l=y.locale)===null||l===void 0||(f=l.options)===null||f===void 0?void 0:f.weekStartsOn)!==null&&n!==void 0?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var D=k(t),w=D.getUTCDay(),v=(w<h?7:0)+w-h;return D.setUTCDate(D.getUTCDate()-v),D.setUTCHours(0,0,0,0),D}function $n(t,e){var n,o,r,s,c,i,l,f;R(1,arguments);var y=k(t),h=y.getUTCFullYear(),D=Vt(),w=Et((n=(o=(r=(s=e==null?void 0:e.firstWeekContainsDate)!==null&&s!==void 0?s:e==null||(c=e.locale)===null||c===void 0||(i=c.options)===null||i===void 0?void 0:i.firstWeekContainsDate)!==null&&r!==void 0?r:D.firstWeekContainsDate)!==null&&o!==void 0?o:(l=D.locale)===null||l===void 0||(f=l.options)===null||f===void 0?void 0:f.firstWeekContainsDate)!==null&&n!==void 0?n:1);if(!(w>=1&&w<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var v=new Date(0);v.setUTCFullYear(h+1,0,w),v.setUTCHours(0,0,0,0);var b=de(v,e),C=new Date(0);C.setUTCFullYear(h,0,w),C.setUTCHours(0,0,0,0);var X=de(C,e);return y.getTime()>=b.getTime()?h+1:y.getTime()>=X.getTime()?h:h-1}function zo(t,e){var n,o,r,s,c,i,l,f;R(1,arguments);var y=Vt(),h=Et((n=(o=(r=(s=e==null?void 0:e.firstWeekContainsDate)!==null&&s!==void 0?s:e==null||(c=e.locale)===null||c===void 0||(i=c.options)===null||i===void 0?void 0:i.firstWeekContainsDate)!==null&&r!==void 0?r:y.firstWeekContainsDate)!==null&&o!==void 0?o:(l=y.locale)===null||l===void 0||(f=l.options)===null||f===void 0?void 0:f.firstWeekContainsDate)!==null&&n!==void 0?n:1),D=$n(t,e),w=new Date(0);w.setUTCFullYear(D,0,h),w.setUTCHours(0,0,0,0);var v=de(w,e);return v}var Yo=6048e5;function Xo(t,e){R(1,arguments);var n=k(t),o=de(n,e).getTime()-zo(n,e).getTime();return Math.round(o/Yo)+1}function q(t,e){for(var n=t<0?"-":"",o=Math.abs(t).toString();o.length<e;)o="0"+o;return n+o}var bt={y:function(e,n){var o=e.getUTCFullYear(),r=o>0?o:1-o;return q(n==="yy"?r%100:r,n.length)},M:function(e,n){var o=e.getUTCMonth();return n==="M"?String(o+1):q(o+1,2)},d:function(e,n){return q(e.getUTCDate(),n.length)},a:function(e,n){var o=e.getUTCHours()/12>=1?"pm":"am";switch(n){case"a":case"aa":return o.toUpperCase();case"aaa":return o;case"aaaaa":return o[0];case"aaaa":default:return o==="am"?"a.m.":"p.m."}},h:function(e,n){return q(e.getUTCHours()%12||12,n.length)},H:function(e,n){return q(e.getUTCHours(),n.length)},m:function(e,n){return q(e.getUTCMinutes(),n.length)},s:function(e,n){return q(e.getUTCSeconds(),n.length)},S:function(e,n){var o=n.length,r=e.getUTCMilliseconds(),s=Math.floor(r*Math.pow(10,o-3));return q(s,n.length)}},xt={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Zo={G:function(e,n,o){var r=e.getUTCFullYear()>0?1:0;switch(n){case"G":case"GG":case"GGG":return o.era(r,{width:"abbreviated"});case"GGGGG":return o.era(r,{width:"narrow"});case"GGGG":default:return o.era(r,{width:"wide"})}},y:function(e,n,o){if(n==="yo"){var r=e.getUTCFullYear(),s=r>0?r:1-r;return o.ordinalNumber(s,{unit:"year"})}return bt.y(e,n)},Y:function(e,n,o,r){var s=$n(e,r),c=s>0?s:1-s;if(n==="YY"){var i=c%100;return q(i,2)}return n==="Yo"?o.ordinalNumber(c,{unit:"year"}):q(c,n.length)},R:function(e,n){var o=Bn(e);return q(o,n.length)},u:function(e,n){var o=e.getUTCFullYear();return q(o,n.length)},Q:function(e,n,o){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(n){case"Q":return String(r);case"QQ":return q(r,2);case"Qo":return o.ordinalNumber(r,{unit:"quarter"});case"QQQ":return o.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return o.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return o.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,n,o){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(n){case"q":return String(r);case"qq":return q(r,2);case"qo":return o.ordinalNumber(r,{unit:"quarter"});case"qqq":return o.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return o.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return o.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,n,o){var r=e.getUTCMonth();switch(n){case"M":case"MM":return bt.M(e,n);case"Mo":return o.ordinalNumber(r+1,{unit:"month"});case"MMM":return o.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return o.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return o.month(r,{width:"wide",context:"formatting"})}},L:function(e,n,o){var r=e.getUTCMonth();switch(n){case"L":return String(r+1);case"LL":return q(r+1,2);case"Lo":return o.ordinalNumber(r+1,{unit:"month"});case"LLL":return o.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return o.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return o.month(r,{width:"wide",context:"standalone"})}},w:function(e,n,o,r){var s=Xo(e,r);return n==="wo"?o.ordinalNumber(s,{unit:"week"}):q(s,n.length)},I:function(e,n,o){var r=jo(e);return n==="Io"?o.ordinalNumber(r,{unit:"week"}):q(r,n.length)},d:function(e,n,o){return n==="do"?o.ordinalNumber(e.getUTCDate(),{unit:"date"}):bt.d(e,n)},D:function(e,n,o){var r=Go(e);return n==="Do"?o.ordinalNumber(r,{unit:"dayOfYear"}):q(r,n.length)},E:function(e,n,o){var r=e.getUTCDay();switch(n){case"E":case"EE":case"EEE":return o.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return o.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return o.day(r,{width:"short",context:"formatting"});case"EEEE":default:return o.day(r,{width:"wide",context:"formatting"})}},e:function(e,n,o,r){var s=e.getUTCDay(),c=(s-r.weekStartsOn+8)%7||7;switch(n){case"e":return String(c);case"ee":return q(c,2);case"eo":return o.ordinalNumber(c,{unit:"day"});case"eee":return o.day(s,{width:"abbreviated",context:"formatting"});case"eeeee":return o.day(s,{width:"narrow",context:"formatting"});case"eeeeee":return o.day(s,{width:"short",context:"formatting"});case"eeee":default:return o.day(s,{width:"wide",context:"formatting"})}},c:function(e,n,o,r){var s=e.getUTCDay(),c=(s-r.weekStartsOn+8)%7||7;switch(n){case"c":return String(c);case"cc":return q(c,n.length);case"co":return o.ordinalNumber(c,{unit:"day"});case"ccc":return o.day(s,{width:"abbreviated",context:"standalone"});case"ccccc":return o.day(s,{width:"narrow",context:"standalone"});case"cccccc":return o.day(s,{width:"short",context:"standalone"});case"cccc":default:return o.day(s,{width:"wide",context:"standalone"})}},i:function(e,n,o){var r=e.getUTCDay(),s=r===0?7:r;switch(n){case"i":return String(s);case"ii":return q(s,n.length);case"io":return o.ordinalNumber(s,{unit:"day"});case"iii":return o.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return o.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return o.day(r,{width:"short",context:"formatting"});case"iiii":default:return o.day(r,{width:"wide",context:"formatting"})}},a:function(e,n,o){var r=e.getUTCHours(),s=r/12>=1?"pm":"am";switch(n){case"a":case"aa":return o.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"aaa":return o.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return o.dayPeriod(s,{width:"narrow",context:"formatting"});case"aaaa":default:return o.dayPeriod(s,{width:"wide",context:"formatting"})}},b:function(e,n,o){var r=e.getUTCHours(),s;switch(r===12?s=xt.noon:r===0?s=xt.midnight:s=r/12>=1?"pm":"am",n){case"b":case"bb":return o.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"bbb":return o.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return o.dayPeriod(s,{width:"narrow",context:"formatting"});case"bbbb":default:return o.dayPeriod(s,{width:"wide",context:"formatting"})}},B:function(e,n,o){var r=e.getUTCHours(),s;switch(r>=17?s=xt.evening:r>=12?s=xt.afternoon:r>=4?s=xt.morning:s=xt.night,n){case"B":case"BB":case"BBB":return o.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"BBBBB":return o.dayPeriod(s,{width:"narrow",context:"formatting"});case"BBBB":default:return o.dayPeriod(s,{width:"wide",context:"formatting"})}},h:function(e,n,o){if(n==="ho"){var r=e.getUTCHours()%12;return r===0&&(r=12),o.ordinalNumber(r,{unit:"hour"})}return bt.h(e,n)},H:function(e,n,o){return n==="Ho"?o.ordinalNumber(e.getUTCHours(),{unit:"hour"}):bt.H(e,n)},K:function(e,n,o){var r=e.getUTCHours()%12;return n==="Ko"?o.ordinalNumber(r,{unit:"hour"}):q(r,n.length)},k:function(e,n,o){var r=e.getUTCHours();return r===0&&(r=24),n==="ko"?o.ordinalNumber(r,{unit:"hour"}):q(r,n.length)},m:function(e,n,o){return n==="mo"?o.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):bt.m(e,n)},s:function(e,n,o){return n==="so"?o.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):bt.s(e,n)},S:function(e,n){return bt.S(e,n)},X:function(e,n,o,r){var s=r._originalDate||e,c=s.getTimezoneOffset();if(c===0)return"Z";switch(n){case"X":return hn(c);case"XXXX":case"XX":return St(c);case"XXXXX":case"XXX":default:return St(c,":")}},x:function(e,n,o,r){var s=r._originalDate||e,c=s.getTimezoneOffset();switch(n){case"x":return hn(c);case"xxxx":case"xx":return St(c);case"xxxxx":case"xxx":default:return St(c,":")}},O:function(e,n,o,r){var s=r._originalDate||e,c=s.getTimezoneOffset();switch(n){case"O":case"OO":case"OOO":return"GMT"+gn(c,":");case"OOOO":default:return"GMT"+St(c,":")}},z:function(e,n,o,r){var s=r._originalDate||e,c=s.getTimezoneOffset();switch(n){case"z":case"zz":case"zzz":return"GMT"+gn(c,":");case"zzzz":default:return"GMT"+St(c,":")}},t:function(e,n,o,r){var s=r._originalDate||e,c=Math.floor(s.getTime()/1e3);return q(c,n.length)},T:function(e,n,o,r){var s=r._originalDate||e,c=s.getTime();return q(c,n.length)}};function gn(t,e){var n=t>0?"-":"+",o=Math.abs(t),r=Math.floor(o/60),s=o%60;if(s===0)return n+String(r);var c=e;return n+String(r)+c+q(s,2)}function hn(t,e){if(t%60===0){var n=t>0?"-":"+";return n+q(Math.abs(t)/60,2)}return St(t,e)}function St(t,e){var n=e||"",o=t>0?"-":"+",r=Math.abs(t),s=q(Math.floor(r/60),2),c=q(r%60,2);return o+s+n+c}var vn=function(e,n){switch(e){case"P":return n.date({width:"short"});case"PP":return n.date({width:"medium"});case"PPP":return n.date({width:"long"});case"PPPP":default:return n.date({width:"full"})}},Gn=function(e,n){switch(e){case"p":return n.time({width:"short"});case"pp":return n.time({width:"medium"});case"ppp":return n.time({width:"long"});case"pppp":default:return n.time({width:"full"})}},Qo=function(e,n){var o=e.match(/(P+)(p+)?/)||[],r=o[1],s=o[2];if(!s)return vn(e,n);var c;switch(r){case"P":c=n.dateTime({width:"short"});break;case"PP":c=n.dateTime({width:"medium"});break;case"PPP":c=n.dateTime({width:"long"});break;case"PPPP":default:c=n.dateTime({width:"full"});break}return c.replace("{{date}}",vn(r,n)).replace("{{time}}",Gn(s,n))},Ko={p:Gn,P:Qo},Jo=["D","DD"],tr=["YY","YYYY"];function er(t){return Jo.indexOf(t)!==-1}function nr(t){return tr.indexOf(t)!==-1}function bn(t,e,n){if(t==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(e,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(t==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(e,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(t==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(e,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(t==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(e,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var or={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},rr=function(e,n,o){var r,s=or[e];return typeof s=="string"?r=s:n===1?r=s.one:r=s.other.replace("{{count}}",n.toString()),o!=null&&o.addSuffix?o.comparison&&o.comparison>0?"in "+r:r+" ago":r};function qe(t){return function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.width?String(e.width):t.defaultWidth,o=t.formats[n]||t.formats[t.defaultWidth];return o}}var sr={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},ar={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},cr={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},ir={date:qe({formats:sr,defaultWidth:"full"}),time:qe({formats:ar,defaultWidth:"full"}),dateTime:qe({formats:cr,defaultWidth:"full"})},lr={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},ur=function(e,n,o,r){return lr[e]};function It(t){return function(e,n){var o=n!=null&&n.context?String(n.context):"standalone",r;if(o==="formatting"&&t.formattingValues){var s=t.defaultFormattingWidth||t.defaultWidth,c=n!=null&&n.width?String(n.width):s;r=t.formattingValues[c]||t.formattingValues[s]}else{var i=t.defaultWidth,l=n!=null&&n.width?String(n.width):t.defaultWidth;r=t.values[l]||t.values[i]}var f=t.argumentCallback?t.argumentCallback(e):e;return r[f]}}var dr={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},fr={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},pr={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},mr={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},gr={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},hr={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},vr=function(e,n){var o=Number(e),r=o%100;if(r>20||r<10)switch(r%10){case 1:return o+"st";case 2:return o+"nd";case 3:return o+"rd"}return o+"th"},br={ordinalNumber:vr,era:It({values:dr,defaultWidth:"wide"}),quarter:It({values:fr,defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:It({values:pr,defaultWidth:"wide"}),day:It({values:mr,defaultWidth:"wide"}),dayPeriod:It({values:gr,defaultWidth:"wide",formattingValues:hr,defaultFormattingWidth:"wide"})};function Ht(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=n.width,r=o&&t.matchPatterns[o]||t.matchPatterns[t.defaultMatchWidth],s=e.match(r);if(!s)return null;var c=s[0],i=o&&t.parsePatterns[o]||t.parsePatterns[t.defaultParseWidth],l=Array.isArray(i)?yr(i,function(h){return h.test(c)}):wr(i,function(h){return h.test(c)}),f;f=t.valueCallback?t.valueCallback(l):l,f=n.valueCallback?n.valueCallback(f):f;var y=e.slice(c.length);return{value:f,rest:y}}}function wr(t,e){for(var n in t)if(t.hasOwnProperty(n)&&e(t[n]))return n}function yr(t,e){for(var n=0;n<t.length;n++)if(e(t[n]))return n}function Tr(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=e.match(t.matchPattern);if(!o)return null;var r=o[0],s=e.match(t.parsePattern);if(!s)return null;var c=t.valueCallback?t.valueCallback(s[0]):s[0];c=n.valueCallback?n.valueCallback(c):c;var i=e.slice(r.length);return{value:c,rest:i}}}var Sr=/^(\d+)(th|st|nd|rd)?/i,Er=/\d+/i,Ar={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Lr={any:[/^b/i,/^(a|c)/i]},Dr={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},qr={any:[/1/i,/2/i,/3/i,/4/i]},_r={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},kr={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Cr={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},xr={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Rr={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Mr={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Or={ordinalNumber:Tr({matchPattern:Sr,parsePattern:Er,valueCallback:function(e){return parseInt(e,10)}}),era:Ht({matchPatterns:Ar,defaultMatchWidth:"wide",parsePatterns:Lr,defaultParseWidth:"any"}),quarter:Ht({matchPatterns:Dr,defaultMatchWidth:"wide",parsePatterns:qr,defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:Ht({matchPatterns:_r,defaultMatchWidth:"wide",parsePatterns:kr,defaultParseWidth:"any"}),day:Ht({matchPatterns:Cr,defaultMatchWidth:"wide",parsePatterns:xr,defaultParseWidth:"any"}),dayPeriod:Ht({matchPatterns:Rr,defaultMatchWidth:"any",parsePatterns:Mr,defaultParseWidth:"any"})},Wn={code:"en-US",formatDistance:rr,formatLong:ir,formatRelative:ur,localize:br,match:Or,options:{weekStartsOn:0,firstWeekContainsDate:1}},Nr=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Pr=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Ur=/^'([^]*?)'?$/,Ir=/''/g,Hr=/[a-zA-Z]/;function R$(t,e,n){var o,r,s,c,i,l,f,y,h,D,w,v,b,C;R(2,arguments);var X=String(e),Z=Vt(),$=(o=(r=void 0)!==null&&r!==void 0?r:Z.locale)!==null&&o!==void 0?o:Wn,M=Et((s=(c=(i=(l=void 0)!==null&&l!==void 0?l:void 0)!==null&&i!==void 0?i:Z.firstWeekContainsDate)!==null&&c!==void 0?c:(f=Z.locale)===null||f===void 0||(y=f.options)===null||y===void 0?void 0:y.firstWeekContainsDate)!==null&&s!==void 0?s:1);if(!(M>=1&&M<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var O=Et((h=(D=(w=(v=void 0)!==null&&v!==void 0?v:void 0)!==null&&w!==void 0?w:Z.weekStartsOn)!==null&&D!==void 0?D:(b=Z.locale)===null||b===void 0||(C=b.options)===null||C===void 0?void 0:C.weekStartsOn)!==null&&h!==void 0?h:0);if(!(O>=0&&O<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!$.localize)throw new RangeError("locale must contain localize property");if(!$.formatLong)throw new RangeError("locale must contain formatLong property");var x=k(t);if(!Co(x))throw new RangeError("Invalid time value");var ot=Ue(x),et=Bo(x,ot),lt={firstWeekContainsDate:M,weekStartsOn:O,locale:$,_originalDate:x},ut=X.match(Pr).map(function(L){var Q=L[0];if(Q==="p"||Q==="P"){var st=Ko[Q];return st(L,$.formatLong)}return L}).join("").match(Nr).map(function(L){if(L==="''")return"'";var Q=L[0];if(Q==="'")return Fr(L);var st=Zo[Q];if(st)return nr(L)&&bn(L,e,String(t)),er(L)&&bn(L,e,String(t)),st(et,L,$.localize,lt);if(Q.match(Hr))throw new RangeError("Format string contains an unescaped latin alphabet character `"+Q+"`");return L}).join("");return ut}function Fr(t){var e=t.match(Ur);return e?e[1].replace(Ir,"'"):t}function Vn(t,e){if(t==null)throw new TypeError("assign requires that input parameter not be null or undefined");for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}function Br(t){return Vn({},t)}var wn=1440,$r=2520,_e=43200,Gr=86400;function Wr(t,e,n){var o,r;R(2,arguments);var s=Vt(),c=(o=(r=n==null?void 0:n.locale)!==null&&r!==void 0?r:s.locale)!==null&&o!==void 0?o:Wn;if(!c.formatDistance)throw new RangeError("locale must contain formatDistance property");var i=oe(t,e);if(isNaN(i))throw new RangeError("Invalid time value");var l=Vn(Br(n),{addSuffix:!!(n!=null&&n.addSuffix),comparison:i}),f,y;i>0?(f=k(e),y=k(t)):(f=k(t),y=k(e));var h=Fo(y,f),D=(Ue(y)-Ue(f))/1e3,w=Math.round((h-D)/60),v;if(w<2)return n!=null&&n.includeSeconds?h<5?c.formatDistance("lessThanXSeconds",5,l):h<10?c.formatDistance("lessThanXSeconds",10,l):h<20?c.formatDistance("lessThanXSeconds",20,l):h<40?c.formatDistance("halfAMinute",0,l):h<60?c.formatDistance("lessThanXMinutes",1,l):c.formatDistance("xMinutes",1,l):w===0?c.formatDistance("lessThanXMinutes",1,l):c.formatDistance("xMinutes",w,l);if(w<45)return c.formatDistance("xMinutes",w,l);if(w<90)return c.formatDistance("aboutXHours",1,l);if(w<wn){var b=Math.round(w/60);return c.formatDistance("aboutXHours",b,l)}else{if(w<$r)return c.formatDistance("xDays",1,l);if(w<_e){var C=Math.round(w/wn);return c.formatDistance("xDays",C,l)}else if(w<Gr)return v=Math.round(w/_e),c.formatDistance("aboutXMonths",v,l)}if(v=Ho(y,f),v<12){var X=Math.round(w/_e);return c.formatDistance("xMonths",X,l)}else{var Z=v%12,$=Math.floor(v/12);return Z<3?c.formatDistance("aboutXYears",$,l):Z<9?c.formatDistance("overXYears",$,l):c.formatDistance("almostXYears",$+1,l)}}function M$(t,e){return R(1,arguments),Wr(t,Date.now(),e)}const yn={running:`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor"
2
2
  stroke-width="1.5" stroke-linejoin="round">
3
3
  <path d="M3,2 L13,2 L8.5,7.5 L13,13 L3,13 L7.5,7.5 Z"/>
4
4
  <path d="M4,2.5 L12,2.5 L8.5,6.5 Z" fill="currentColor" opacity="0.5"/>
@@ -1 +1 @@
1
- import{_ as f,a as u,c,b as t,d as n,w as i,f as r,E as d,F as S,r as y,x as h,g,h as k,s as w,t as x}from"./index-BGAW2Nqa.js";const V={class:"container"},C={class:"tabs"},T={class:"tabs-desktop"},B={class:"tabs-mobile"},L=["value"],N=["value"],E={class:"tab-content"},F={__name:"SettingsView",setup(M){const v=w(),p=k(),m=[{id:"providers",label:"Model Providers",path:"/settings/providers"},{id:"summary",label:"Summary Settings",path:"/settings/summary"},{id:"general",label:"Settings",path:"/settings/general"},{id:"logs",label:"Logs",path:"/settings/logs"}],e=h(()=>{const a=v.path.split("/");return a[a.length-1]||"providers"});function _(a){p.push(`/settings/${a}`)}return(a,s)=>{const l=g("router-link"),b=g("router-view");return u(),c("div",V,[s[5]||(s[5]=t("h1",null,"Settings",-1)),t("div",C,[t("div",T,[n(l,{to:"/settings/providers",class:d(["tab",{active:e.value==="providers"}])},{default:i(()=>[...s[1]||(s[1]=[r(" Model Providers ",-1)])]),_:1},8,["class"]),n(l,{to:"/settings/summary",class:d(["tab",{active:e.value==="summary"}])},{default:i(()=>[...s[2]||(s[2]=[r(" Summary Settings ",-1)])]),_:1},8,["class"]),n(l,{to:"/settings/general",class:d(["tab",{active:e.value==="general"}])},{default:i(()=>[...s[3]||(s[3]=[r(" Settings ",-1)])]),_:1},8,["class"]),n(l,{to:"/settings/logs",class:d(["tab",{active:e.value==="logs"}])},{default:i(()=>[...s[4]||(s[4]=[r(" Logs ",-1)])]),_:1},8,["class"])]),t("div",B,[t("select",{value:e.value,class:"tab-select",onChange:s[0]||(s[0]=o=>_(o.target.value))},[(u(),c(S,null,y(m,o=>t("option",{key:o.id,value:o.id},x(o.label),9,N)),64))],40,L)])]),t("div",E,[n(b)])])}}},R=f(F,[["__scopeId","data-v-c1d27cca"]]);export{R as default};
1
+ import{_ as f,a as u,c,b as t,d as n,w as i,f as r,E as d,F as S,r as y,x as h,g,h as k,s as w,t as x}from"./index-B6G18FqB.js";const V={class:"container"},C={class:"tabs"},T={class:"tabs-desktop"},B={class:"tabs-mobile"},L=["value"],N=["value"],E={class:"tab-content"},F={__name:"SettingsView",setup(M){const v=w(),p=k(),m=[{id:"providers",label:"Model Providers",path:"/settings/providers"},{id:"summary",label:"Summary Settings",path:"/settings/summary"},{id:"general",label:"Settings",path:"/settings/general"},{id:"logs",label:"Logs",path:"/settings/logs"}],e=h(()=>{const a=v.path.split("/");return a[a.length-1]||"providers"});function _(a){p.push(`/settings/${a}`)}return(a,s)=>{const l=g("router-link"),b=g("router-view");return u(),c("div",V,[s[5]||(s[5]=t("h1",null,"Settings",-1)),t("div",C,[t("div",T,[n(l,{to:"/settings/providers",class:d(["tab",{active:e.value==="providers"}])},{default:i(()=>[...s[1]||(s[1]=[r(" Model Providers ",-1)])]),_:1},8,["class"]),n(l,{to:"/settings/summary",class:d(["tab",{active:e.value==="summary"}])},{default:i(()=>[...s[2]||(s[2]=[r(" Summary Settings ",-1)])]),_:1},8,["class"]),n(l,{to:"/settings/general",class:d(["tab",{active:e.value==="general"}])},{default:i(()=>[...s[3]||(s[3]=[r(" Settings ",-1)])]),_:1},8,["class"]),n(l,{to:"/settings/logs",class:d(["tab",{active:e.value==="logs"}])},{default:i(()=>[...s[4]||(s[4]=[r(" Logs ",-1)])]),_:1},8,["class"])]),t("div",B,[t("select",{value:e.value,class:"tab-select",onChange:s[0]||(s[0]=o=>_(o.target.value))},[(u(),c(S,null,y(m,o=>t("option",{key:o.id,value:o.id},x(o.label),9,N)),64))],40,L)])]),t("div",E,[n(b)])])}}},R=f(F,[["__scopeId","data-v-c1d27cca"]]);export{R as default};
@@ -0,0 +1 @@
1
+ import{b as ae,C as Z,D as oe,O as le}from"./EffortLevelSelector-C2378L8e.js";import{_ as T,k as X,n as D,l as K,a as o,c as i,b as l,F as B,r as N,t as m,x as _,Z as ie,L as re,o as ee,I as ce,m as z,v as A,J as G,i as k,f as q,j as W,p as de,G as E,d as ue,w as me,u as R,T as fe,U as pe}from"./index-B6G18FqB.js";import{u as te}from"./providers-Bh1ZiiJi.js";import{a as F}from"./ApiClient-B4YTtyY4.js";const he={class:"mode-selector"},ge=["value","disabled"],ve=["value"],ye={__name:"ModeSelector",props:{sessionId:{type:String,default:null},modelValue:{type:String,default:null},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,c=t,a=ae(),u=X(),d=D(!1),h=[{value:"plan",label:"Plan",description:"Agent plans before implementing"},{value:"standard",label:"Standard",description:"Balanced approach"},{value:"yolo",label:"YOLO",description:"Auto-approve mode"}],b=_(()=>{var p;return n.sessionId?(p=a.currentSession)==null?void 0:p.mode:n.modelValue}),C=D(b.value),g=ie(n,"modelValue");K([b,g],([p])=>{C.value=p},{flush:"sync"});async function r(p){if(!d.value&&C.value!==p)if(C.value=p,n.sessionId){d.value=!0;try{await a.updateSessionMode(n.sessionId,p)}catch(S){C.value=b.value,u.error(S.message)}finally{d.value=!1}}else c("update:modelValue",p)}return(p,S)=>(o(),i("div",he,[l("select",{id:"mode-select",value:C.value,disabled:e.disabled||d.value,class:"mode-select",onChange:S[0]||(S[0]=w=>r(w.target.value))},[(o(),i(B,null,N(h,w=>l("option",{key:w.value,value:w.value},m(w.label),9,ve)),64))],40,ge)]))}},Gt=T(ye,[["__scopeId","data-v-224ea1e6"]]),se=Object.freeze({streaming:!1,thinking:!1,reasoningEffort:!1,toolUse:!1,resume:!1}),I={byAgentType:new Map,fetchPromise:null,fetched:!1};async function J(){return I.fetched?I.byAgentType:(I.fetchPromise||(I.fetchPromise=(async()=>{try{const e=await F.getAgents();for(const t of e||[])t&&t.agentType&&I.byAgentType.set(t.agentType,t.capabilities||se)}catch{}finally{I.fetched=!0,I.fetchPromise=null}return I.byAgentType})()),I.fetchPromise)}function _e(e){return I.byAgentType.get(e)||{...se}}function ne(e){return(e==null?void 0:e.kind)==="openai"?"codex":"claude-code"}function Q(e,t){return(t==null?void 0:t.kind)==="openai"?le.find(n=>n.id===e)||null:(!t||ne(t)==="claude-code")&&Z.find(n=>n.id===e)||null}function H(e){try{const n=te().allModels.filter(c=>c.modelId===e);return n.length<=1?n[0]||null:n.sort((c,a)=>{const u=O(c.providerId),d=O(a.providerId);return(u==null?void 0:u.isBuiltIn)!==(d==null?void 0:d.isBuiltIn)?u!=null&&u.isBuiltIn?1:-1:((u==null?void 0:u.name)||"").localeCompare((d==null?void 0:d.name)||"")})[0]||null}catch{return null}}function O(e){try{return te().getById(e)||null}catch{return null}}function Y(e){if(!e)return"Unknown";let t=e.replace(/^(.*\/)?models\//,"");return t=t.replace(/^accounts\/[^/]+\/models\//,""),t=t.replace(/-\d{8}$/,""),t=t.replace(/[-_]/g," "),t=t.split(" ").map(n=>n.charAt(0).toUpperCase()+n.slice(1).toLowerCase()).join(" "),t||"Unknown"}function Rt(){function e(c){if(!c)return"Default";const a=H(c),u=a?O(a.providerId):null,d=Q(c,u);return d?d.name:a!=null&&a.displayName?a.displayName:Y(c)}function t(c){if(!c){const h=Z.find(b=>b.id===oe);return h?h.description:""}const a=H(c),u=a?O(a.providerId):null,d=Q(c,u);return d?d.description:a!=null&&a.description?a.description:c}function n(c){J();const a=H(c),u=a?O(a.providerId):null,d=u?ne(u):"claude-code";return{name:e(c),description:t(c),providerId:(a==null?void 0:a.providerId)||null,providerName:(a==null?void 0:a.providerName)||(u==null?void 0:u.name)||null,agentType:d,capabilities:_e(d)}}return{getModelDisplayName:e,getModelDescription:t,getModelInfo:n,formatModelId:Y,fetchAgentCapabilities:J}}const ke={__name:"SlashCommandButton",emits:["open"],setup(e,{emit:t}){const n=t;return(c,a)=>(o(),i("button",{type:"button",class:"slash-command-btn",title:"Slash Commands","data-testid":"slash-command-button",onClick:a[0]||(a[0]=u=>n("open"))},[...a[1]||(a[1]=[l("span",{class:"slash-icon"},"/",-1),l("span",{class:"slash-text"},"Commands",-1)])]))}},Jt=T(ke,[["__scopeId","data-v-63f59216"]]),Ce=re("slashCommands",{state:()=>({commands:[],loading:!1,error:null,lastFetchedDirectory:null,executing:!1}),getters:{builtinCommands:e=>e.commands.filter(t=>t.source==="builtin"),projectCommands:e=>e.commands.filter(t=>t.source==="project"),userCommands:e=>e.commands.filter(t=>t.source==="user"),pluginCommands:e=>e.commands.filter(t=>t.source==="plugin"),customCommands:e=>e.commands.filter(t=>t.source!=="builtin"),projectSkills:e=>e.commands.filter(t=>t.source==="project-skill"),userSkills:e=>e.commands.filter(t=>t.source==="user-skill"),pluginSkills:e=>e.commands.filter(t=>t.source==="plugin-skill"),allSkills:e=>e.commands.filter(t=>t.isSkill===!0),hasSkills:e=>e.commands.some(t=>t.isSkill===!0),allProjectItems:e=>e.commands.filter(t=>t.source==="project"||t.source==="project-skill"),allUserItems:e=>e.commands.filter(t=>t.source==="user"||t.source==="user-skill"),hasCommands:e=>e.commands.length>0,hasCustomCommands:e=>e.commands.some(t=>t.source==="project"||t.source==="user")},actions:{async fetchCommandsFromSession(e){this.loading=!0,this.error=null;try{const t=await F.getSession(e),n=t.slashCommands?JSON.parse(t.slashCommands):[];return this.commands=n,n}catch(t){throw this.error=t.message,t}finally{this.loading=!1}},async fetchCommands(e,t=!1){if(!t&&this.lastFetchedDirectory===e&&this.commands.length>0)return this.commands;this.loading=!0,this.error=null;try{const n=await F.getSlashCommands(e);return this.commands=n,this.lastFetchedDirectory=e,n}catch(n){throw this.error=n.message,n}finally{this.loading=!1}},async executeCommand(e,t,n={}){this.executing=!0,this.error=null;try{return await F.executeSlashCommand(e,t,n)}catch(c){throw this.error=c.message,c}finally{this.executing=!1}},getCommandByName(e){return this.commands.find(t=>t.name===e)||null},searchCommands(e){if(!e||!e.trim())return this.commands;const t=e.toLowerCase();return this.commands.filter(n=>n.name.toLowerCase().includes(t)||n.description&&n.description.toLowerCase().includes(t))},clearCommands(){this.commands=[],this.lastFetchedDirectory=null,this.error=null}}}),be={class:"command-grid"},Se={class:"search-box"},$e={key:0,class:"loading-state"},we={key:1,class:"error-state"},xe={key:2,class:"empty-state"},Ie={key:0},Be={key:1},Ne={key:3,class:"command-sections"},De={key:0,class:"command-section"},je={class:"command-cards"},Pe=["data-testid","onClick"],Ue={class:"command-name"},Le={class:"command-description"},Me={key:1,class:"command-section"},Ve={class:"command-cards"},ze=["data-testid","onClick"],Oe={class:"command-name"},Te={class:"command-description"},Ae={key:0,class:"command-args-badge"},Fe={key:2,class:"command-section"},qe={class:"command-cards"},Ee=["data-testid","onClick"],He={class:"command-name"},We={class:"command-description"},Ke={key:0,class:"command-args-badge"},Ge={key:3,class:"command-section"},Re={class:"command-cards"},Je=["data-testid","onClick"],Qe={class:"command-name"},Ye={class:"command-description"},Ze={key:0,class:"command-args-badge"},Xe={key:4,class:"command-section"},et={class:"command-cards"},tt=["data-testid","onClick"],st={class:"command-name"},nt={class:"command-description"},at={key:0,class:"command-args-badge"},ot={key:5,class:"command-section"},lt={class:"command-cards"},it=["data-testid","onClick"],rt={class:"command-name"},ct={class:"command-description"},dt={key:0,class:"command-args-badge"},ut={key:6,class:"command-section"},mt={class:"command-cards"},ft=["data-testid","onClick"],pt={class:"command-name"},ht={class:"command-description"},gt={key:0,class:"command-args-badge"},vt={__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:t}){const n=e,c=t,a=D(""),u=D(null),d=_(()=>n.commands.filter(v=>v.source==="builtin")),h=_(()=>n.commands.filter(v=>v.source==="project")),b=_(()=>n.commands.filter(v=>v.source==="user")),C=_(()=>n.commands.filter(v=>v.source==="plugin")),g=_(()=>n.commands.filter(v=>v.source==="project-skill")),r=_(()=>n.commands.filter(v=>v.source==="user-skill")),p=_(()=>n.commands.filter(v=>v.source==="plugin-skill"));function S(v){if(!a.value.trim())return v;const f=a.value.toLowerCase();return v.filter(s=>s.name.toLowerCase().includes(f)||s.description&&s.description.toLowerCase().includes(f))}const w=_(()=>S(d.value)),V=_(()=>S(h.value)),y=_(()=>S(b.value)),$=_(()=>S(C.value)),x=_(()=>S(g.value)),j=_(()=>S(r.value)),P=_(()=>S(p.value)),U=_(()=>[...w.value,...V.value,...y.value,...$.value,...x.value,...j.value,...P.value]);function L(v){c("select",v)}return ee(()=>{ce(()=>{var v;(v=u.value)==null||v.focus()})}),(v,f)=>(o(),i("div",be,[l("div",Se,[z(l("input",{ref_key:"searchInput",ref:u,"onUpdate:modelValue":f[0]||(f[0]=s=>a.value=s),type:"text",placeholder:"Search commands...",class:"search-input","data-testid":"command-search",onKeydown:f[1]||(f[1]=G(s=>c("close"),["escape"]))},null,544),[[A,a.value]])]),e.loading?(o(),i("div",$e,[...f[2]||(f[2]=[l("span",{class:"loading-spinner"},null,-1),l("span",null,"Loading commands...",-1)])])):e.error?(o(),i("div",we,[f[3]||(f[3]=l("span",{class:"error-icon"},"⚠️",-1)),l("span",null,m(e.error),1)])):U.value.length===0?(o(),i("div",xe,[a.value?(o(),i("span",Ie,'No commands match "'+m(a.value)+'"',1)):(o(),i("span",Be,"No slash commands available"))])):(o(),i("div",Ne,[w.value.length>0&&!e.hideBuiltin?(o(),i("div",De,[f[4]||(f[4]=l("h3",{class:"section-title"}," Built-in Commands ",-1)),l("div",je,[(o(!0),i(B,null,N(w.value,s=>(o(),i("button",{key:s.name,type:"button",class:"command-card","data-testid":`command-${s.name}`,onClick:M=>L(s)},[l("span",Ue,"/"+m(s.name),1),l("span",Le,m(s.description||"No description"),1)],8,Pe))),128))])])):k("",!0),V.value.length>0?(o(),i("div",Me,[f[5]||(f[5]=l("h3",{class:"section-title"}," Project Commands ",-1)),l("div",Ve,[(o(!0),i(B,null,N(V.value,s=>(o(),i("button",{key:s.name,type:"button",class:"command-card","data-testid":`command-${s.name}`,onClick:M=>L(s)},[l("span",Oe,"/"+m(s.name),1),l("span",Te,m(s.description||"No description"),1),s.arguments.length>0?(o(),i("span",Ae,m(s.arguments.length)+" arg"+m(s.arguments.length>1?"s":""),1)):k("",!0)],8,ze))),128))])])):k("",!0),y.value.length>0?(o(),i("div",Fe,[f[6]||(f[6]=l("h3",{class:"section-title"}," User Commands ",-1)),l("div",qe,[(o(!0),i(B,null,N(y.value,s=>(o(),i("button",{key:s.name,type:"button",class:"command-card","data-testid":`command-${s.name}`,onClick:M=>L(s)},[l("span",He,"/"+m(s.name),1),l("span",We,m(s.description||"No description"),1),s.arguments.length>0?(o(),i("span",Ke,m(s.arguments.length)+" arg"+m(s.arguments.length>1?"s":""),1)):k("",!0)],8,Ee))),128))])])):k("",!0),$.value.length>0?(o(),i("div",Ge,[f[7]||(f[7]=l("h3",{class:"section-title"}," Plugin Commands ",-1)),l("div",Re,[(o(!0),i(B,null,N($.value,s=>(o(),i("button",{key:s.name,type:"button",class:"command-card","data-testid":`command-${s.name}`,onClick:M=>L(s)},[l("span",Qe,"/"+m(s.name),1),l("span",Ye,m(s.description||"No description"),1),s.arguments.length>0?(o(),i("span",Ze,m(s.arguments.length)+" arg"+m(s.arguments.length>1?"s":""),1)):k("",!0)],8,Je))),128))])])):k("",!0),x.value.length>0?(o(),i("div",Xe,[f[8]||(f[8]=l("h3",{class:"section-title"}," Project Skills ",-1)),l("div",et,[(o(!0),i(B,null,N(x.value,s=>(o(),i("button",{key:s.name,type:"button",class:"command-card","data-testid":`skill-${s.name}`,onClick:M=>L(s)},[l("span",st,"/"+m(s.name),1),l("span",nt,m(s.description||"No description"),1),s.argumentHint?(o(),i("span",at,m(s.argumentHint),1)):k("",!0)],8,tt))),128))])])):k("",!0),j.value.length>0?(o(),i("div",ot,[f[9]||(f[9]=l("h3",{class:"section-title"}," User Skills ",-1)),l("div",lt,[(o(!0),i(B,null,N(j.value,s=>(o(),i("button",{key:s.name,type:"button",class:"command-card","data-testid":`skill-${s.name}`,onClick:M=>L(s)},[l("span",rt,"/"+m(s.name),1),l("span",ct,m(s.description||"No description"),1),s.argumentHint?(o(),i("span",dt,m(s.argumentHint),1)):k("",!0)],8,it))),128))])])):k("",!0),P.value.length>0?(o(),i("div",ut,[f[10]||(f[10]=l("h3",{class:"section-title"}," Plugin Skills ",-1)),l("div",mt,[(o(!0),i(B,null,N(P.value,s=>(o(),i("button",{key:s.name,type:"button",class:"command-card","data-testid":`skill-${s.name}`,onClick:M=>L(s)},[l("span",pt,"/"+m(s.name),1),l("span",ht,m(s.description||"No description"),1),s.argumentHint?(o(),i("span",gt,m(s.argumentHint),1)):k("",!0)],8,ft))),128))])])):k("",!0)]))]))}},yt=T(vt,[["__scopeId","data-v-8ec2a6ee"]]),_t={class:"arguments-form"},kt={class:"form-header"},Ct={class:"command-title"},bt={key:0,class:"command-description"},St={key:0,class:"form-field"},$t={for:"skill-args",class:"field-label"},wt={key:0,class:"hint"},xt=["placeholder","onKeydown"],It=["for"],Bt={key:0,class:"required-indicator"},Nt=["id","onUpdate:modelValue","required","data-testid"],Dt=["value"],jt=["id","onUpdate:modelValue","required","placeholder","data-testid"],Pt=["id","onUpdate:modelValue","required","placeholder","data-testid"],Ut={class:"form-actions"},Lt=["disabled"],Mt={key:0,class:"loading-spinner"},Vt={__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:t}){const n=e,c=t,a=D({}),u=D("");function d(){const C={};for(const g of n.command.arguments||[])C[g.name]=g.default!==void 0?g.default:"";a.value=C}ee(()=>{d()}),K(()=>n.command,()=>{d()});const h=_(()=>{if(n.command.isSkill)return!0;for(const C of n.command.arguments||[])if(C.required){const g=a.value[C.name];if(g==null||g==="")return!1}return!0});function b(){if(!(!h.value||n.executing)){if(n.command.isSkill){c("submit",{_raw:u.value});return}c("submit",a.value)}}return(C,g)=>(o(),i("div",_t,[l("div",kt,[l("h3",Ct," /"+m(e.command.name),1),e.command.description?(o(),i("p",bt,m(e.command.description),1)):k("",!0)]),l("form",{class:"form-fields",onSubmit:W(b,["prevent"])},[e.command.isSkill?(o(),i("div",St,[l("label",$t,[g[2]||(g[2]=q(" Arguments ",-1)),e.command.argumentHint?(o(),i("span",wt,m(e.command.argumentHint),1)):k("",!0)]),z(l("input",{id:"skill-args","onUpdate:modelValue":g[0]||(g[0]=r=>u.value=r),type:"text",placeholder:e.command.argumentHint||"Enter arguments...",class:"field-input","data-testid":"skill-args-input",onKeydown:G(W(b,["prevent"]),["enter"])},null,40,xt),[[A,u.value]])])):(o(!0),i(B,{key:1},N(e.command.arguments,r=>(o(),i("div",{key:r.name,class:"form-field"},[l("label",{for:`arg-${r.name}`,class:"field-label"},[q(m(r.label)+" ",1),r.required?(o(),i("span",Bt,"*")):k("",!0)],8,It),r.type==="select"?z((o(),i("select",{key:0,id:`arg-${r.name}`,"onUpdate:modelValue":p=>a.value[r.name]=p,required:r.required,class:"field-select","data-testid":`arg-${r.name}`},[g[3]||(g[3]=l("option",{value:"",disabled:""}," Select an option... ",-1)),(o(!0),i(B,null,N(r.options||[],p=>(o(),i("option",{key:p.value,value:p.value},m(p.label),9,Dt))),128))],8,Nt)),[[de,a.value[r.name]]]):r.type==="multiline"?z((o(),i("textarea",{key:1,id:`arg-${r.name}`,"onUpdate:modelValue":p=>a.value[r.name]=p,required:r.required,placeholder:r.placeholder||"",class:"field-textarea",rows:"4","data-testid":`arg-${r.name}`},null,8,jt)),[[A,a.value[r.name]]]):z((o(),i("input",{key:2,id:`arg-${r.name}`,"onUpdate:modelValue":p=>a.value[r.name]=p,type:"text",required:r.required,placeholder:r.placeholder||"",class:"field-input","data-testid":`arg-${r.name}`},null,8,Pt)),[[A,a.value[r.name]]])]))),128)),l("div",Ut,[l("button",{type:"button",class:"btn btn-secondary",onClick:g[1]||(g[1]=r=>c("back"))}," Back "),l("button",{type:"submit",class:"btn btn-primary",disabled:!h.value||e.executing,"data-testid":"execute-command-btn"},[e.executing?(o(),i("span",Mt)):k("",!0),q(" "+m(e.executeLabel),1)],8,Lt)])],32)]))}},zt=T(Vt,[["__scopeId","data-v-aaa3cc39"]]),Ot={class:"wizard-modal",role:"dialog","aria-labelledby":"wizard-title"},Tt={class:"wizard-header"},At={id:"wizard-title",class:"wizard-title"},Ft={class:"wizard-content"},qt={__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:t}){const n=e,c=t,a=Ce(),u=X(),d=D(1),h=D(null),b=D(!1),C=_(()=>n.hideBuiltin?a.customCommands:a.commands),g=_(()=>n.mode==="insert"?"Insert Command":"Execute Command");K(()=>n.isOpen,async y=>{if(y){d.value=1,h.value=null,console.log("[SlashCommandWizard] Opening wizard, workingDirectory:",n.workingDirectory);try{n.workingDirectory?(await a.fetchCommands(n.workingDirectory),console.log("[SlashCommandWizard] Fetched commands:",a.commands.length,"commands")):console.warn("[SlashCommandWizard] No workingDirectory provided, skipping command fetch")}catch($){console.error("[SlashCommandWizard] Failed to fetch commands:",$)}}});function r(){c("update:isOpen",!1),d.value=1,h.value=null}function p(y){if(h.value=y,y.isSkill){d.value=2;return}!y.arguments||y.arguments.length===0?w({}):d.value=2}function S(){d.value=1,h.value=null}async function w(y){if(h.value){if(n.mode==="insert"){const $=V(h.value,y);c("insert",{command:h.value,args:y,text:$}),r();return}if(!n.sessionId){u.error("No session available to execute command");return}b.value=!0;try{await a.executeCommand(n.sessionId,h.value.name,y),c("executed",{command:h.value,args:y}),u.success(`Command /${h.value.name} executed`),r()}catch($){u.error(`Failed to execute command: ${$.message}`)}finally{b.value=!1}}}function V(y,$){let x=`/${y.name}`;if(y.isSkill){const P=$._raw||"";return P&&(x+=` ${P}`),x}const j=[];for(const P of y.arguments||[]){const U=$[P.name];U!==void 0&&U!==""&&(typeof U=="string"&&U.includes(" ")?j.push(`"${U}"`):j.push(String(U)))}return j.length>0&&(x+=` ${j.join(" ")}`),x}return(y,$)=>(o(),E(pe,{to:"body"},[ue(fe,{name:"modal"},{default:me(()=>{var x;return[e.isOpen?(o(),i("div",{key:0,class:"wizard-overlay","data-testid":"slash-command-wizard",onClick:W(r,["self"]),onKeydown:G(r,["escape"])},[l("div",Ot,[l("header",Tt,[l("h2",At,m(d.value===1?"Slash Commands":`Configure /${(x=h.value)==null?void 0:x.name}`),1),l("button",{type:"button",class:"close-btn","aria-label":"Close wizard",onClick:r}," × ")]),l("div",Ft,[d.value===1?(o(),E(yt,{key:0,commands:C.value,loading:R(a).loading,error:R(a).error,"hide-builtin":e.hideBuiltin,onSelect:p,onClose:r},null,8,["commands","loading","error","hide-builtin"])):d.value===2&&h.value?(o(),E(zt,{key:1,command:h.value,executing:b.value,"execute-label":g.value,onBack:S,onSubmit:w},null,8,["command","executing","execute-label"])):k("",!0)])])],32)):k("",!0)]}),_:1})]))}},Qt=T(qt,[["__scopeId","data-v-138fa079"]]);export{Gt as M,Jt as S,Qt as a,Rt as u};
@@ -0,0 +1 @@
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-8ec2a6ee]{display:flex;flex-direction:column;gap:1rem;max-height:60vh;overflow-y:auto}.search-box[data-v-8ec2a6ee]{position:sticky;top:0;z-index:1;background:var(--color-background);padding-bottom:.5rem}.search-input[data-v-8ec2a6ee]{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-8ec2a6ee]:focus{border-color:var(--color-primary)}.search-input[data-v-8ec2a6ee]::placeholder{color:var(--color-text-soft)}.loading-state[data-v-8ec2a6ee],.error-state[data-v-8ec2a6ee],.empty-state[data-v-8ec2a6ee]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:var(--color-text-soft);text-align:center}.error-state[data-v-8ec2a6ee]{color:var(--color-danger, #ef4444)}.loading-spinner[data-v-8ec2a6ee]{width:1.25rem;height:1.25rem;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin-8ec2a6ee .6s linear infinite}@keyframes spin-8ec2a6ee{to{transform:rotate(360deg)}}.command-sections[data-v-8ec2a6ee]{display:flex;flex-direction:column;gap:1.5rem}.command-section[data-v-8ec2a6ee]{display:flex;flex-direction:column;gap:.5rem}.section-title[data-v-8ec2a6ee]{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-8ec2a6ee]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}.command-card[data-v-8ec2a6ee]{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-8ec2a6ee]:hover{background:var(--color-background-mute);border-color:var(--color-primary)}.command-card[data-v-8ec2a6ee]:active{transform:scale(.98)}.command-name[data-v-8ec2a6ee]{font-size:.875rem;font-weight:600;color:var(--color-primary);font-family:ui-monospace,monospace}.command-description[data-v-8ec2a6ee]{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-8ec2a6ee]{display:inline-block;margin-top:.25rem;padding:.125rem .375rem;font-size:.625rem;font-weight:500;text-transform:uppercase;background:#58a6ff26;color:var(--color-primary);border-radius:.25rem;width:fit-content}@media (max-width: 480px){.command-cards[data-v-8ec2a6ee]{grid-template-columns:1fr}}.arguments-form[data-v-aaa3cc39]{display:flex;flex-direction:column;gap:1.5rem}.form-header[data-v-aaa3cc39]{display:flex;flex-direction:column;gap:.25rem}.command-title[data-v-aaa3cc39]{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-primary);font-family:ui-monospace,monospace}.command-description[data-v-aaa3cc39]{margin:0;font-size:.875rem;color:var(--color-text-soft)}.form-fields[data-v-aaa3cc39]{display:flex;flex-direction:column;gap:1rem}.form-field[data-v-aaa3cc39]{display:flex;flex-direction:column;gap:.375rem}.field-label[data-v-aaa3cc39]{font-size:.875rem;font-weight:500;color:var(--color-text)}.required-indicator[data-v-aaa3cc39]{color:var(--color-danger, #ef4444);margin-left:.125rem}.hint[data-v-aaa3cc39]{margin-left:.5rem;font-size:.75rem;font-weight:400;color:var(--color-text-soft);font-family:ui-monospace,monospace}.field-input[data-v-aaa3cc39],.field-select[data-v-aaa3cc39],.field-textarea[data-v-aaa3cc39]{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-aaa3cc39]:focus,.field-select[data-v-aaa3cc39]:focus,.field-textarea[data-v-aaa3cc39]:focus{border-color:var(--color-primary)}.field-input[data-v-aaa3cc39]::placeholder,.field-textarea[data-v-aaa3cc39]::placeholder{color:var(--color-text-soft)}.field-textarea[data-v-aaa3cc39]{resize:vertical;min-height:100px}.field-select[data-v-aaa3cc39]{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-aaa3cc39]{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--color-border)}.btn[data-v-aaa3cc39]{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-aaa3cc39]{background:var(--color-primary, #3b82f6);border:1px solid var(--color-primary, #3b82f6);color:#fff}.btn-primary[data-v-aaa3cc39]:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary-soft)}.btn-primary[data-v-aaa3cc39]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-aaa3cc39]{background:var(--color-background-soft);border:1px solid var(--color-border);color:var(--color-text-soft)}.btn-secondary[data-v-aaa3cc39]:hover{background:var(--color-background-mute);border-color:var(--color-border)}.loading-spinner[data-v-aaa3cc39]{width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-aaa3cc39 .6s linear infinite}@keyframes spin-aaa3cc39{to{transform:rotate(360deg)}}@media (max-width: 480px){.form-actions[data-v-aaa3cc39]{flex-direction:column-reverse}.btn[data-v-aaa3cc39]{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)}}
@@ -0,0 +1 @@
1
+ import{_ as V,k,o as M,l as _,u as x,a as v,c as p,b as a,f,m as P,q as T,d as S,t as y,i as b,j as I,n as i}from"./index-B6G18FqB.js";import{u as C}from"./settings-Z4AVVmkJ.js";import{R as U}from"./ResizableTextarea-DiIOEGjN.js";import{M as R}from"./ModelSelector-BMpR0DPr.js";import"./ApiClient-B4YTtyY4.js";import"./providers-Bh1ZiiJi.js";const D={key:0,class:"loading-state"},N={class:"form-group"},B={class:"checkbox-label"},z={class:"form-group"},j={class:"form-group"},q={key:0,class:"error-message"},E={class:"form-actions"},L=["disabled"],W={key:0,class:"loading-spinner"},A=["disabled"],F={__name:"SummarySettingsView",setup(G){const u=C(),c=k(),m=i(!1),d=i(""),o=i(""),n=i(null),l=i(!1),r=i(null);M(()=>{u.fetchSummarySettings()}),_(()=>u.summarySettings,s=>{s&&(m.value=s.disableSessionSummaries,o.value=s.summaryModel||"",n.value=s.summaryProviderId||null,d.value=s.sessionTitlePrompt||s.defaultSessionTitlePrompt||"")},{immediate:!0});function g(s){o.value=s.modelId||"",n.value=s.providerId||null}async function h(){l.value=!0,r.value=null;try{await u.updateSummarySettings({disableSessionSummaries:m.value,sessionTitlePrompt:d.value,summaryModel:o.value||"",summaryProviderId:o.value?n.value:null}),c.success("Summary settings saved successfully")}catch(s){r.value=s.message}finally{l.value=!1}}async function w(){if(confirm("Reset all summary settings to defaults?")){l.value=!0,r.value=null;try{await u.resetSummarySettings(),c.success("Summary settings reset to defaults")}catch(s){r.value=s.message}finally{l.value=!1}}}return(s,e)=>x(u).loading?(v(),p("div",D,[...e[4]||(e[4]=[a("span",{class:"loading-spinner"},null,-1),f(" Loading... ",-1)])])):(v(),p("form",{key:1,class:"form card",onSubmit:I(h,["prevent"])},[a("div",N,[a("label",B,[P(a("input",{"onUpdate:modelValue":e[0]||(e[0]=t=>m.value=t),type:"checkbox"},null,512),[[T,m.value]]),e[5]||(e[5]=f(" Disable session summaries ",-1))]),e[6]||(e[6]=a("p",{class:"form-help"}," When enabled, automatic session summaries will not be generated. Session summaries provide an overview of what was accomplished. ",-1))]),a("div",z,[e[7]||(e[7]=a("label",{class:"form-label",for:"model-select"},"Summary Model",-1)),S(R,{modelValue:o.value,"onUpdate:modelValue":e[1]||(e[1]=t=>o.value=t),"provider-id":n.value,"onUpdate:providerId":e[2]||(e[2]=t=>n.value=t),"allow-empty":"","empty-label":"Use default summary model","hide-built-in-duplicates":!1,"select-class":"form-input",onModelSelected:g},null,8,["modelValue","provider-id"]),e[8]||(e[8]=a("p",{class:"form-help"}," Choose the model used when summaries are generated. ",-1))]),a("div",j,[e[9]||(e[9]=a("label",{class:"form-label",for:"sessionTitlePrompt"},"Custom Session Title Prompt",-1)),S(U,{id:"sessionTitlePrompt",modelValue:d.value,"onUpdate:modelValue":e[3]||(e[3]=t=>d.value=t),class:"form-input form-textarea-small","min-height":120,"max-height":400},null,8,["modelValue"]),e[10]||(e[10]=a("p",{class:"form-help"}," Customize how session titles are generated. ",-1))]),r.value?(v(),p("div",q,y(r.value),1)):b("",!0),a("div",E,[a("button",{type:"submit",class:"btn btn-primary",disabled:l.value},[l.value?(v(),p("span",W)):b("",!0),f(" "+y(l.value?"Saving...":"Save Settings"),1)],8,L),a("button",{type:"button",class:"btn btn-secondary",disabled:l.value,onClick:w}," Reset to Defaults ",8,A)])],32))}},Y=V(F,[["__scopeId","data-v-eba265f3"]]);export{Y as default};
@@ -0,0 +1 @@
1
+ .loading-state[data-v-eba265f3]{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:3rem}.form[data-v-eba265f3]{max-width:600px}.form-actions[data-v-eba265f3]{display:flex;justify-content:flex-end;gap:.75rem}.error-message[data-v-eba265f3]{color:var(--color-error);margin-bottom:1rem}.form-textarea-small[data-v-eba265f3]{min-height:120px;font-family:monospace;font-size:.875rem;line-height:1.5}.form-help[data-v-eba265f3]{margin-top:.5rem;font-size:.875rem;color:var(--color-text-muted)}.checkbox-label[data-v-eba265f3]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500}.checkbox-label input[type=checkbox][data-v-eba265f3]{width:1rem;height:1rem;cursor:pointer}
@@ -0,0 +1 @@
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-B6G18FqB.js";import{u as A,E as H}from"./EffortLevelSelector-C2378L8e.js";import{a as Y}from"./ApiClient-B4YTtyY4.js";import{M as J}from"./ModelSelector-BMpR0DPr.js";import{I as K}from"./InterpolationHelp-CIkOSkWX.js";import{R as Q}from"./ResizableTextarea-DiIOEGjN.js";import"./sessions-DH1R-NhV.js";import"./providers-Bh1ZiiJi.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)])}}},Se=N(be,[["__scopeId","data-v-f2f40f55"]]);export{Se as default};
@@ -1,4 +1,4 @@
1
- import{L as h}from"./index-BGAW2Nqa.js";import{a as o}from"./ApiClient-CcqJ-GAv.js";const i=2e3,p=300;function a(t){const e=t.split(`
1
+ import{L as h}from"./index-B6G18FqB.js";import{a as o}from"./ApiClient-B4YTtyY4.js";const i=2e3,p=300;function a(t){const e=t.split(`
2
2
  `);return e.length<=i?{output:t,truncated:!1}:{output:e.slice(-i).join(`
3
3
  `),truncated:!0}}function f(t,e,u){const{output:s,truncated:n}=a(t.output||""),r=!s&&(u==null?void 0:u.output);return{runId:e,buttonId:t.buttonId,sessionId:t.sessionId,status:t.status||"running",output:r?u.output:s,exitCode:t.exitCode??null,startedAt:t.startedAt,completedAt:t.completedAt,outputTruncated:r?u.outputTruncated:n}}function l(t,e){const u=t._outputBuffers[e];if(!u||!t.runs[e]){delete t._outputBuffers[e],delete t._flushTimers[e];return}if(t.runs[e].status!=="running"){delete t._outputBuffers[e],delete t._flushTimers[e];return}const s=t.runs[e].output+u,{output:n,truncated:r}=a(s);t.$patch({runs:{[e]:{...t.runs[e],output:n,outputTruncated:t.runs[e].outputTruncated||r}}}),delete t._outputBuffers[e],delete t._flushTimers[e]}function d(t,e,u){if(!t.runs[e]||t.runs[e].status!=="running")return;const s=Date.now(),n=t._lastAppendedText[e];n&&n.text===u&&s-n.timestamp<100||(t._lastAppendedText[e]={text:u,timestamp:s},t._outputBuffers[e]=(t._outputBuffers[e]||"")+u,t._flushTimers[e]||(t._flushTimers[e]=setTimeout(()=>{l(t,e)},p)))}function m(t,e){t._flushTimers[e]&&(clearTimeout(t._flushTimers[e]),delete t._flushTimers[e]),t._outputBuffers[e]&&l(t,e)}function T(t,e,u){const{output:s,truncated:n}=a(t.output||""),r=!s&&(u!=null&&u.output)?u.output:s,c=!s&&(u!=null&&u.output)?u.outputTruncated:n;return{runId:t.runId,buttonId:t.buttonId,sessionId:e,status:t.status||"running",output:r,exitCode:t.exitCode!==void 0?t.exitCode:null,startedAt:t.startedAt,completedAt:t.completedAt,outputTruncated:c}}function _(t,e,u){let s=t.output,n=t.outputTruncated;if(u&&u.length>t.output.length){const r=a(u);s=r.output,n=r.truncated}return{...t,exitCode:e,completedAt:Date.now(),output:s,outputTruncated:n,status:e===0?"success":"error"}}function B(t,e){const u=`${t.output}
4
4
  [Error] ${e}`,{output:s,truncated:n}=a(u);return{...t,status:"error",output:s,outputTruncated:t.outputTruncated||n}}const b=h("commandButtons",{state:()=>({buttons:[],runs:{},collapsedStates:{},loading:!1,error:null,_outputBuffers:{},_flushTimers:{},_lastAppendedText:{}}),getters:{getButtonById:t=>e=>t.buttons.find(u=>u.id===e),getRun:t=>e=>t.runs[e],activeRuns:t=>Object.values(t.runs).filter(e=>e.status==="running"),getButtonsByProjectId:t=>e=>t.buttons.filter(u=>u.projectId===e),getLatestRunForButton:t=>(e,u)=>{const s=Object.values(t.runs).filter(n=>n.buttonId===e&&n.sessionId===u).sort((n,r)=>(r.startedAt||0)-(n.startedAt||0));return s.length>0?s[0]:null},isOutputCollapsed:t=>e=>t.collapsedStates[e]!==void 0?t.collapsedStates[e]:!0},actions:{async fetchButtons(t){this.loading=!0,this.error=null;try{const e=await o.getCommandButtons(t);this.buttons=this.buttons.filter(u=>u.projectId!==t),this.buttons.push(...e)}catch(e){this.error=e.message}finally{this.loading=!1}},async createButton(t,e){this.error=null;try{const u=await o.createCommandButton(t,e);return this.buttons.push(u),u}catch(u){throw this.error=u.message,u}},async updateButton(t,e,u){this.error=null;try{const s=await o.updateCommandButton(t,e,u),n=this.buttons.findIndex(r=>r.id===e);return n>=0&&(this.buttons[n]=s),s}catch(s){throw this.error=s.message,s}},async deleteButton(t,e){this.error=null;try{await o.deleteCommandButton(t,e),this.buttons=this.buttons.filter(u=>u.id!==e)}catch(u){throw this.error=u.message,u}},async runButton(t,e){this.error=null;try{const u=await o.runCommandButton(t,e),s=u.runId;return this.runs[s]={runId:s,buttonId:e,sessionId:t,status:"running",output:u.output||"",exitCode:null,startedAt:Date.now(),outputTruncated:!1},s}catch(u){throw this.error=u.message,u}},async killRun(t,e){try{await o.killCommandRun(t,e)}catch(u){if(this.runs[e]&&this.runs[e].status==="running"){this.runs[e]={...this.runs[e],status:"error",exitCode:-1,completedAt:Date.now()},console.log(`[killRun] Process ${e} not found on server, updated UI state to error`);return}throw u}},async fetchActiveRuns(t){this.error=null;try{const e=await o.getActiveRuns(t);for(const u of e)this.runs[u.runId]=T(u,t,this.runs[u.runId]);return e}catch(e){return this.error=`Failed to fetch active runs: ${e.message}`,console.error(this.error,e),[]}},async fetchLatestRunsForProject(t){var e;this.error=null;try{const u=await o.getLatestRunsForProject(t);for(const s of u){const n=s.id||s.runId;((e=this.runs[n])==null?void 0:e.status)!=="running"&&(this.runs[n]=f(s,n,this.runs[n]))}return u}catch(u){return this.error=`Failed to fetch latest runs: ${u.message}`,console.error(this.error,u),[]}},appendOutput(t,e){d(this,t,e)},flushPendingOutput(t){m(this,t)},completeRun(t,e,u){this.runs[t]&&(this.flushPendingOutput(t),delete this._lastAppendedText[t],this.$patch({runs:{[t]:_(this.runs[t],e,u)}}))},errorRun(t,e){this.runs[t]&&(this.flushPendingOutput(t),this.$patch({runs:{[t]:B(this.runs[t],e)}}))},async fetchRunOutput(t,e){const u=this.runs[e];if(!(!u||u.status==="running")&&!(u.output&&u.output.length>0))try{const s=await o.getCommandRun(t,e);if(s.output&&this.runs[e]){const{output:n,truncated:r}=a(s.output);this.runs[e]={...this.runs[e],output:n,outputTruncated:r}}}catch(s){console.warn(`[commandButtons] Failed to fetch output for run ${e}:`,s.message)}},setOutputCollapsed(t,e){this.collapsedStates[t]=e},async deleteRun(t,e){await o.deleteCommandRun(t,e),this.clearRun(e)},async deleteAllRunsForButton(t,e){await o.deleteAllRunsForButton(t,e);for(const u of Object.keys(this.runs))this.runs[u].buttonId===e&&this.runs[u].sessionId===t&&this.clearRun(u)},clearRun(t){this._flushTimers[t]&&(clearTimeout(this._flushTimers[t]),delete this._flushTimers[t]),delete this._outputBuffers[t],delete this._lastAppendedText[t],delete this.runs[t],delete this.collapsedStates[t]},clearAllRuns(){for(const t of Object.keys(this._flushTimers))clearTimeout(this._flushTimers[t]);this._flushTimers={},this._outputBuffers={},this._lastAppendedText={},this.runs={},this.collapsedStates={}}}});export{b as u};
@@ -0,0 +1 @@
1
+ import{L as g,a as q,p as P,q as s,v as l,s as c,t as r,e as m,E as p}from"./index-BGwH4Cfn.js";import"./index-B6G18FqB.js";import"./SessionDetailView-CL7nmfiB.js";import"./sessions-DH1R-NhV.js";import"./ApiClient-B4YTtyY4.js";import"./projects-BUiOGmmb.js";import"./EffortLevelSelector-C2378L8e.js";import"./SessionLogStream-DpUE6Xsh.js";import"./commandButtons-D4RPpLiu.js";import"./ArchiveConfirmModal-OFaj_uX5.js";import"./ModelSelector-BMpR0DPr.js";import"./providers-Bh1ZiiJi.js";import"./SlashCommandWizard-DmTyNG9O.js";import"./useSummaryHelpers-GVg7sMWF.js";import"./QuickResponseSettings-CDm5vwP7.js";import"./QuickResponsesPanel-DZ_Lre_l.js";import"./ResizableTextarea-DiIOEGjN.js";const R=1,b=33,$=34,v=35,x=36,W=new p(O=>{let t=O.pos;for(;;){if(O.next==10){O.advance();break}else if(O.next==123&&O.peek(1)==123||O.next<0)break;O.advance()}O.pos>t&&O.acceptToken(R)});function n(O,t,a){return new p(e=>{let u=e.pos;for(;e.next!=O&&e.next>=0&&(a||e.next!=38&&(e.next!=123||e.peek(1)!=123));)e.advance();e.pos>u&&e.acceptToken(t)})}const d=n(39,b,!1),C=n(34,$,!1),T=n(39,v,!0),f=n(34,x,!0),A=m.deserialize({version:14,states:"(jOVOqOOOeQpOOOvO!bO'#CaOOOP'#Cx'#CxQVOqOOO!OQpO'#CfO!WQpO'#ClO!]QpO'#CrO!bQpO'#CsOOQO'#Cv'#CvQ!gQpOOQ!lQpOOQ!qQpOOOOOV,58{,58{O!vOpO,58{OOOP-E6v-E6vO!{QpO,59QO#TQpO,59QOOQO,59W,59WO#YQpO,59^OOQO,59_,59_O#_QpOOO#_QpOOO#gQpOOOOOV1G.g1G.gO#oQpO'#CyO#tQpO1G.lOOQO1G.l1G.lO#|QpO1G.lOOQO1G.x1G.xO$UO`O'#DUO$ZOWO'#DUOOQO'#Co'#CoQOQpOOOOQO'#Cu'#CuO$`OtO'#CwO$qOrO'#CwOOQO,59e,59eOOQO-E6w-E6wOOQO7+$W7+$WO%SQpO7+$WO%[QpO7+$WOOOO'#Cp'#CpO%aOpO,59pOOOO'#Cq'#CqO%fOpO,59pOOOS'#Cz'#CzO%kOtO,59cOOQO,59c,59cOOOQ'#C{'#C{O%|OrO,59cO&_QpO<<GrOOQO<<Gr<<GrOOQO1G/[1G/[OOOS-E6x-E6xOOQO1G.}1G.}OOOQ-E6y-E6yOOQOAN=^AN=^",stateData:"&d~OvOS~OPROSQOVROWRO~OZTO[XO^VOaUOhWO~OR]OU^O~O[`O^aO~O[bO~O[cO~O[dO~ObeO~ObfO~ObgO~ORhO~O]kOwiO~O[lO~O_mO~OynOzoO~OysOztO~O[uO~O]wOwiO~O_yOwiO~OtzO~Os|O~OSQOV!OOW!OOr!OOy!QO~OSQOV!ROW!ROq!ROz!QO~O_!TOwiO~O]!UO~Oy!VO~Oz!VO~OSQOV!OOW!OOr!OOy!XO~OSQOV!ROW!ROq!ROz!XO~O]!ZO~O",goto:"#dyPPPPPzPPPP!WPPPPP!WPP!Z!^!a!d!dP!g!j!m!p!v#Q#WPPPPPPPP#^SROSS!Os!PT!Rt!SRYPRqeR{nR}oRZPRqfR[PRqgQSOR_SQj`SvjxRxlQ!PsR!W!PQ!StR!Y!SQpeRrf",nodeNames:"⚠ Text Content }} {{ Interpolation InterpolationContent Entity InvalidEntity Attribute BoundAttributeName [ Identifier ] ( ) ReferenceName # Is ExpressionAttributeValue AttributeInterpolation AttributeInterpolation EventName DirectiveName * StatementAttributeValue AttributeName AttributeValue",maxTerm:42,nodeProps:[["openedBy",3,"{{",15,"("],["closedBy",4,"}}",14,")"],["isolate",-4,5,19,25,27,""]],skippedNodes:[0],repeatNodeCount:4,tokenData:"0r~RyOX#rXY$mYZ$mZ]#r]^$m^p#rpq$mqr#rrs%jst&Qtv#rvw&hwx)zxy*byz*xz{+`{}#r}!O+v!O!P-]!P!Q#r!Q![+v![!]+v!]!_#r!_!`-s!`!c#r!c!}+v!}#O.Z#O#P#r#P#Q.q#Q#R#r#R#S+v#S#T#r#T#o+v#o#p/X#p#q#r#q#r0Z#r%W#r%W;'S+v;'S;:j-V;:j;=`$g<%lO+vQ#wTUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rQ$ZSO#q#r#r;'S#r;'S;=`$g<%lO#rQ$jP;=`<%l#rR$t[UQvPOX#rXY$mYZ$mZ]#r]^$m^p#rpq$mq#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR%qTyPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR&XTaPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR&oXUQWPOp'[pq#rq!]'[!]!^#r!^#q'[#q#r(d#r;'S'[;'S;=`)t<%lO'[R'aXUQOp'[pq#rq!]'[!]!^'|!^#q'[#q#r(d#r;'S'[;'S;=`)t<%lO'[R(TTVPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR(gXOp'[pq#rq!]'[!]!^'|!^#q'[#q#r)S#r;'S'[;'S;=`)t<%lO'[P)VUOp)Sq!])S!]!^)i!^;'S)S;'S;=`)n<%lO)SP)nOVPP)qP;=`<%l)SR)wP;=`<%l'[R*RTzPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR*iT^PUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR+PT_PUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR+gThPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR+}b[PUQO}#r}!O+v!O!Q#r!Q![+v![!]+v!]!c#r!c!}+v!}#R#r#R#S+v#S#T#r#T#o+v#o#q#r#q#r$W#r%W#r%W;'S+v;'S;:j-V;:j;=`$g<%lO+vR-YP;=`<%l+vR-dTwPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR-zTUQbPO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR.bTZPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR.xT]PUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR/^VUQO#o#r#o#p/s#p#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR/zTSPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#r~0^TO#q#r#q#r0m#r;'S#r;'S;=`$g<%lO#r~0rOR~",tokenizers:[W,d,C,T,f,0,1],topRules:{Content:[0,2],Attribute:[1,9]},tokenPrec:0}),V=l.parser.configure({top:"SingleExpression"}),Q=A.configure({props:[c({Text:r.content,Is:r.definitionOperator,AttributeName:r.attributeName,"AttributeValue ExpressionAttributeValue StatementAttributeValue":r.attributeValue,Entity:r.character,InvalidEntity:r.invalid,"BoundAttributeName/Identifier":r.attributeName,"EventName/Identifier":r.special(r.attributeName),"ReferenceName/Identifier":r.variableName,"DirectiveName/Identifier":r.keyword,"{{ }}":r.brace,"( )":r.paren,"[ ]":r.bracket,"# '*'":r.punctuation})]}),o={parser:V},w={parser:l.parser},U=Q.configure({wrap:s((O,t)=>O.name=="InterpolationContent"?o:null)}),y=Q.configure({wrap:s((O,t)=>{var a;return O.name=="InterpolationContent"?o:O.name!="AttributeInterpolation"?null:((a=O.node.parent)===null||a===void 0?void 0:a.name)=="StatementAttributeValue"?w:o}),top:"Attribute"}),E={parser:U},N={parser:y},i=P({selfClosingTags:!0});function S(O){return O.configure({wrap:s(z)},"angular")}const k=S(i.language);function z(O,t){switch(O.name){case"Attribute":return/^[*#(\[]|\{\{/.test(t.read(O.from,O.to))?N:null;case"Text":return E}return null}function rO(O={}){let t=i;if(O.base){if(O.base.language.name!="html"||!(O.base.language instanceof g))throw new RangeError("The base option must be the result of calling html(...)");t=O.base}return new q(t.language==i.language?k:S(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/})])}export{rO as angular,k as angularLanguage};