@burdenoff/microfe-vibecontrols 2026.511.1 → 2026.512.1

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 (1025) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +2 -5
  2. package/dist/components/agent-manager/AgentManagerAdminBar.js +69 -61
  3. package/dist/components/agent-manager/AgentManagerAdminBar.js.map +1 -1
  4. package/dist/components/agent-manager/AgentManagerCenter.js +56 -50
  5. package/dist/components/agent-manager/AgentManagerCenter.js.map +1 -1
  6. package/dist/components/agent-manager/AgentManagerChatPane.js +87 -74
  7. package/dist/components/agent-manager/AgentManagerChatPane.js.map +1 -1
  8. package/dist/components/agent-manager/AgentManagerDetailPanel.js +5 -5
  9. package/dist/components/agent-manager/AgentManagerDetailPanel.js.map +1 -1
  10. package/dist/components/agent-manager/AgentManagerInputArea.js +159 -157
  11. package/dist/components/agent-manager/AgentManagerInputArea.js.map +1 -1
  12. package/dist/components/agent-manager/AgentManagerMessageItem.js +32 -28
  13. package/dist/components/agent-manager/AgentManagerMessageItem.js.map +1 -1
  14. package/dist/components/agent-manager/AgentManagerSessionItem.js +24 -24
  15. package/dist/components/agent-manager/AgentManagerSessionItem.js.map +1 -1
  16. package/dist/components/agent-manager/AgentManagerSessionList.js +32 -24
  17. package/dist/components/agent-manager/AgentManagerSessionList.js.map +1 -1
  18. package/dist/components/agent-manager/AgentManagerSidebar.js +3 -3
  19. package/dist/components/agent-manager/AgentManagerSidebar.js.map +1 -1
  20. package/dist/components/agent-manager/AgentManagerTabBar.js +2 -2
  21. package/dist/components/agent-manager/AgentManagerTabBar.js.map +1 -1
  22. package/dist/components/agent-manager/BridleConfigPanel.js +1 -1
  23. package/dist/components/agent-manager/BridleConfigPanel.js.map +1 -1
  24. package/dist/components/agent-manager/ProfilesPanel.js +260 -0
  25. package/dist/components/agent-manager/ProfilesPanel.js.map +1 -0
  26. package/dist/components/agent-manager/controls/ModelSelector.js +75 -58
  27. package/dist/components/agent-manager/controls/ModelSelector.js.map +1 -1
  28. package/dist/components/agent-manager/controls/SdkSelector.js +85 -61
  29. package/dist/components/agent-manager/controls/SdkSelector.js.map +1 -1
  30. package/dist/components/agent-manager/detail/SessionConfigPanel.js +2 -2
  31. package/dist/components/agent-manager/detail/SessionConfigPanel.js.map +1 -1
  32. package/dist/components/agent-manager/detail/SessionLogsPanel.js +1 -1
  33. package/dist/components/agent-manager/detail/SessionLogsPanel.js.map +1 -1
  34. package/dist/components/agent-manager/detail/SessionStatsPanel.js +1 -1
  35. package/dist/components/agent-manager/detail/SessionStatsPanel.js.map +1 -1
  36. package/dist/components/agent-manager/detail/SessionToolsPanel.js +1 -1
  37. package/dist/components/agent-manager/detail/SessionToolsPanel.js.map +1 -1
  38. package/dist/components/agent-manager/dialogs/ExportSessionDialog.js +1 -1
  39. package/dist/components/agent-manager/dialogs/ExportSessionDialog.js.map +1 -1
  40. package/dist/components/agent-manager/dialogs/NewSessionDialog.js +129 -108
  41. package/dist/components/agent-manager/dialogs/NewSessionDialog.js.map +1 -1
  42. package/dist/components/agent-manager/dialogs/SessionSearchDialog.js +1 -1
  43. package/dist/components/agent-manager/dialogs/SessionSearchDialog.js.map +1 -1
  44. package/dist/components/agent-manager/index.js +16 -0
  45. package/dist/components/agent-manager/modelDefaults.js +10 -0
  46. package/dist/components/agent-manager/modelDefaults.js.map +1 -0
  47. package/dist/components/agents/AgentCard.js +33 -30
  48. package/dist/components/agents/AgentCard.js.map +1 -1
  49. package/dist/components/agents/AgentForm.js +277 -239
  50. package/dist/components/agents/AgentForm.js.map +1 -1
  51. package/dist/components/agents/AgentStatusBadge.js +19 -8
  52. package/dist/components/agents/AgentStatusBadge.js.map +1 -1
  53. package/dist/components/agents/OpenInBrowserEditorButton.js +67 -65
  54. package/dist/components/agents/OpenInBrowserEditorButton.js.map +1 -1
  55. package/dist/components/agents/backup/AgentBackupTab.js +186 -185
  56. package/dist/components/agents/backup/AgentBackupTab.js.map +1 -1
  57. package/dist/components/ai/AIContextsTab.js +1 -1
  58. package/dist/components/ai/AIContextsTab.js.map +1 -1
  59. package/dist/components/ai/AIOverviewTab.js +2 -2
  60. package/dist/components/ai/AIOverviewTab.js.map +1 -1
  61. package/dist/components/ai/AIPlaygroundTab.js +97 -97
  62. package/dist/components/ai/AIPlaygroundTab.js.map +1 -1
  63. package/dist/components/ai/AIPromptsTab.js +4 -4
  64. package/dist/components/ai/AIPromptsTab.js.map +1 -1
  65. package/dist/components/ai/AIProviderCredentialsCard.js +234 -0
  66. package/dist/components/ai/AIProviderCredentialsCard.js.map +1 -0
  67. package/dist/components/ai/AISessionsTab.js +17 -1
  68. package/dist/components/ai/AISessionsTab.js.map +1 -1
  69. package/dist/components/ai/AIStatsTab.js +1 -1
  70. package/dist/components/ai/AIStatsTab.js.map +1 -1
  71. package/dist/components/ai/ClaudeCredentialsCard.js +1 -1
  72. package/dist/components/ai/ClaudeCredentialsCard.js.map +1 -1
  73. package/dist/components/ai/PluginHarnessPicker.js +84 -53
  74. package/dist/components/ai/PluginHarnessPicker.js.map +1 -1
  75. package/dist/components/aliases/AliasManager.js +386 -0
  76. package/dist/components/aliases/AliasManager.js.map +1 -0
  77. package/dist/components/aliases/aliasReservedNames.js +32 -0
  78. package/dist/components/aliases/aliasReservedNames.js.map +1 -0
  79. package/dist/components/gitops/CIDurationChart.js +11 -11
  80. package/dist/components/gitops/VibeGitOpsTab.js +128 -100
  81. package/dist/components/gitops/VibeGitOpsTab.js.map +1 -1
  82. package/dist/components/graph/AgentGraphView.js +61 -62
  83. package/dist/components/graph/AgentGraphView.js.map +1 -1
  84. package/dist/components/graph/AgentNode.js +17 -18
  85. package/dist/components/graph/AgentNode.js.map +1 -1
  86. package/dist/components/graph/TargetNode.js +31 -32
  87. package/dist/components/graph/TargetNode.js.map +1 -1
  88. package/dist/components/logs/LogViewer.js +121 -119
  89. package/dist/components/logs/LogViewer.js.map +1 -1
  90. package/dist/components/sessions/TerminalPanel.js +449 -458
  91. package/dist/components/sessions/TerminalPanel.js.map +1 -1
  92. package/dist/components/shared/AgentSelector.js +87 -67
  93. package/dist/components/shared/AgentSelector.js.map +1 -1
  94. package/dist/components/shared/AgentSetupBanner.js +64 -61
  95. package/dist/components/shared/AgentSetupBanner.js.map +1 -1
  96. package/dist/components/vibecalendar/expandOccurrences.js.map +1 -1
  97. package/dist/constants/pluginCatalog.js +29 -1
  98. package/dist/constants/pluginCatalog.js.map +1 -1
  99. package/dist/generated/wspace-operations.js +126 -103
  100. package/dist/generated/wspace-operations.js.map +1 -1
  101. package/dist/generated/wspace-types.js.map +1 -1
  102. package/dist/hooks/useActiveAgentProfile.js +51 -0
  103. package/dist/hooks/useActiveAgentProfile.js.map +1 -0
  104. package/dist/hooks/useAgentEvents.js +1 -0
  105. package/dist/hooks/useAgentEvents.js.map +1 -1
  106. package/dist/hooks/useAgentManagerStreaming.js +1 -1
  107. package/dist/hooks/useAgentManagerStreaming.js.map +1 -1
  108. package/dist/hooks/useCachedInitialData.js +4 -2
  109. package/dist/hooks/useCachedInitialData.js.map +1 -1
  110. package/dist/hooks/usePluginAvailability.js +93 -61
  111. package/dist/hooks/usePluginAvailability.js.map +1 -1
  112. package/dist/index.js +10 -10
  113. package/dist/microfe-vibecontrols.css +1 -1
  114. package/dist/node_modules/d3-scale/src/continuous.js +20 -20
  115. package/dist/node_modules/d3-scale/src/diverging.js +30 -30
  116. package/dist/node_modules/d3-scale/src/sequential.js +25 -25
  117. package/dist/pages/AgentDetailsPage.js +801 -736
  118. package/dist/pages/AgentDetailsPage.js.map +1 -1
  119. package/dist/pages/AgentsLandingPage.js +4 -4
  120. package/dist/pages/AgentsLandingPage.js.map +1 -1
  121. package/dist/pages/AgentsPage.js +351 -295
  122. package/dist/pages/AgentsPage.js.map +1 -1
  123. package/dist/pages/SessionsPage.js +618 -615
  124. package/dist/pages/SessionsPage.js.map +1 -1
  125. package/dist/pages/TargetsPage.js +5 -2
  126. package/dist/pages/TargetsPage.js.map +1 -1
  127. package/dist/pages/VibeDetailsPage.js +582 -555
  128. package/dist/pages/VibeDetailsPage.js.map +1 -1
  129. package/dist/pages/ai/AIPage.js +107 -103
  130. package/dist/pages/ai/AIPage.js.map +1 -1
  131. package/dist/pages/ai/AISessionDetailPage.js +167 -163
  132. package/dist/pages/ai/AISessionDetailPage.js.map +1 -1
  133. package/dist/pages/ai/AgentManagerPage.js +94 -90
  134. package/dist/pages/ai/AgentManagerPage.js.map +1 -1
  135. package/dist/pages/tunnels/TunnelDetailsPage.js.map +1 -1
  136. package/dist/services/aiApi.js +119 -112
  137. package/dist/services/aiApi.js.map +1 -1
  138. package/dist/services/iframeToken.js +29 -0
  139. package/dist/services/iframeToken.js.map +1 -0
  140. package/dist/services/schedulerApi.js +14 -13
  141. package/dist/services/schedulerApi.js.map +1 -1
  142. package/dist/store/agentManagerStore.js +61 -14
  143. package/dist/store/agentManagerStore.js.map +1 -1
  144. package/dist/store/vibeControlsStore.js +21 -1
  145. package/dist/store/vibeControlsStore.js.map +1 -1
  146. package/dist/translations/en.js.map +1 -1
  147. package/dist/utils/agentApiPath.js +9 -0
  148. package/dist/utils/agentApiPath.js.map +1 -0
  149. package/package.json +3 -3
  150. package/dist/VibeControlsRoot.d.ts +0 -36
  151. package/dist/VibeControlsRoot.d.ts.map +0 -1
  152. package/dist/VibeControlsRoutes.d.ts +0 -2
  153. package/dist/VibeControlsRoutes.d.ts.map +0 -1
  154. package/dist/components/actions/ActionCard.d.ts +0 -32
  155. package/dist/components/actions/ActionCard.d.ts.map +0 -1
  156. package/dist/components/actions/ActionForm.d.ts +0 -39
  157. package/dist/components/actions/ActionForm.d.ts.map +0 -1
  158. package/dist/components/actions/ActionTypeBadge.d.ts +0 -9
  159. package/dist/components/actions/ActionTypeBadge.d.ts.map +0 -1
  160. package/dist/components/actions/ExecutionHistory.d.ts +0 -23
  161. package/dist/components/actions/ExecutionHistory.d.ts.map +0 -1
  162. package/dist/components/actions/index.d.ts +0 -6
  163. package/dist/components/actions/index.d.ts.map +0 -1
  164. package/dist/components/agent-manager/AgentManagerAdminBar.d.ts +0 -13
  165. package/dist/components/agent-manager/AgentManagerAdminBar.d.ts.map +0 -1
  166. package/dist/components/agent-manager/AgentManagerBulkActions.d.ts +0 -13
  167. package/dist/components/agent-manager/AgentManagerBulkActions.d.ts.map +0 -1
  168. package/dist/components/agent-manager/AgentManagerCenter.d.ts +0 -8
  169. package/dist/components/agent-manager/AgentManagerCenter.d.ts.map +0 -1
  170. package/dist/components/agent-manager/AgentManagerChatPane.d.ts +0 -9
  171. package/dist/components/agent-manager/AgentManagerChatPane.d.ts.map +0 -1
  172. package/dist/components/agent-manager/AgentManagerDetailPanel.d.ts +0 -13
  173. package/dist/components/agent-manager/AgentManagerDetailPanel.d.ts.map +0 -1
  174. package/dist/components/agent-manager/AgentManagerInputArea.d.ts +0 -14
  175. package/dist/components/agent-manager/AgentManagerInputArea.d.ts.map +0 -1
  176. package/dist/components/agent-manager/AgentManagerLayout.d.ts +0 -10
  177. package/dist/components/agent-manager/AgentManagerLayout.d.ts.map +0 -1
  178. package/dist/components/agent-manager/AgentManagerMessageItem.d.ts +0 -10
  179. package/dist/components/agent-manager/AgentManagerMessageItem.d.ts.map +0 -1
  180. package/dist/components/agent-manager/AgentManagerMessageList.d.ts +0 -12
  181. package/dist/components/agent-manager/AgentManagerMessageList.d.ts.map +0 -1
  182. package/dist/components/agent-manager/AgentManagerSessionItem.d.ts +0 -12
  183. package/dist/components/agent-manager/AgentManagerSessionItem.d.ts.map +0 -1
  184. package/dist/components/agent-manager/AgentManagerSessionList.d.ts +0 -16
  185. package/dist/components/agent-manager/AgentManagerSessionList.d.ts.map +0 -1
  186. package/dist/components/agent-manager/AgentManagerSidebar.d.ts +0 -14
  187. package/dist/components/agent-manager/AgentManagerSidebar.d.ts.map +0 -1
  188. package/dist/components/agent-manager/AgentManagerStreamingIndicator.d.ts +0 -8
  189. package/dist/components/agent-manager/AgentManagerStreamingIndicator.d.ts.map +0 -1
  190. package/dist/components/agent-manager/AgentManagerTab.d.ts +0 -15
  191. package/dist/components/agent-manager/AgentManagerTab.d.ts.map +0 -1
  192. package/dist/components/agent-manager/AgentManagerTabBar.d.ts +0 -10
  193. package/dist/components/agent-manager/AgentManagerTabBar.d.ts.map +0 -1
  194. package/dist/components/agent-manager/BridleConfigPanel.d.ts +0 -13
  195. package/dist/components/agent-manager/BridleConfigPanel.d.ts.map +0 -1
  196. package/dist/components/agent-manager/PluginInstallModal.d.ts +0 -9
  197. package/dist/components/agent-manager/PluginInstallModal.d.ts.map +0 -1
  198. package/dist/components/agent-manager/controls/ContextLevelToggle.d.ts +0 -23
  199. package/dist/components/agent-manager/controls/ContextLevelToggle.d.ts.map +0 -1
  200. package/dist/components/agent-manager/controls/FileAttachButton.d.ts +0 -13
  201. package/dist/components/agent-manager/controls/FileAttachButton.d.ts.map +0 -1
  202. package/dist/components/agent-manager/controls/McpServerSelector.d.ts +0 -10
  203. package/dist/components/agent-manager/controls/McpServerSelector.d.ts.map +0 -1
  204. package/dist/components/agent-manager/controls/ModelSelector.d.ts +0 -10
  205. package/dist/components/agent-manager/controls/ModelSelector.d.ts.map +0 -1
  206. package/dist/components/agent-manager/controls/SdkSelector.d.ts +0 -13
  207. package/dist/components/agent-manager/controls/SdkSelector.d.ts.map +0 -1
  208. package/dist/components/agent-manager/controls/VoiceToggle.d.ts +0 -13
  209. package/dist/components/agent-manager/controls/VoiceToggle.d.ts.map +0 -1
  210. package/dist/components/agent-manager/detail/SessionConfigPanel.d.ts +0 -14
  211. package/dist/components/agent-manager/detail/SessionConfigPanel.d.ts.map +0 -1
  212. package/dist/components/agent-manager/detail/SessionLogsPanel.d.ts +0 -13
  213. package/dist/components/agent-manager/detail/SessionLogsPanel.d.ts.map +0 -1
  214. package/dist/components/agent-manager/detail/SessionStatsPanel.d.ts +0 -12
  215. package/dist/components/agent-manager/detail/SessionStatsPanel.d.ts.map +0 -1
  216. package/dist/components/agent-manager/detail/SessionToolsPanel.d.ts +0 -12
  217. package/dist/components/agent-manager/detail/SessionToolsPanel.d.ts.map +0 -1
  218. package/dist/components/agent-manager/dialogs/ExportSessionDialog.d.ts +0 -15
  219. package/dist/components/agent-manager/dialogs/ExportSessionDialog.d.ts.map +0 -1
  220. package/dist/components/agent-manager/dialogs/NewSessionDialog.d.ts +0 -14
  221. package/dist/components/agent-manager/dialogs/NewSessionDialog.d.ts.map +0 -1
  222. package/dist/components/agent-manager/dialogs/RenameSessionDialog.d.ts +0 -15
  223. package/dist/components/agent-manager/dialogs/RenameSessionDialog.d.ts.map +0 -1
  224. package/dist/components/agent-manager/dialogs/SessionSearchDialog.d.ts +0 -15
  225. package/dist/components/agent-manager/dialogs/SessionSearchDialog.d.ts.map +0 -1
  226. package/dist/components/agent-manager/index.d.ts +0 -16
  227. package/dist/components/agent-manager/index.d.ts.map +0 -1
  228. package/dist/components/agents/AgentCard.d.ts +0 -30
  229. package/dist/components/agents/AgentCard.d.ts.map +0 -1
  230. package/dist/components/agents/AgentForm.d.ts +0 -29
  231. package/dist/components/agents/AgentForm.d.ts.map +0 -1
  232. package/dist/components/agents/AgentList.d.ts +0 -19
  233. package/dist/components/agents/AgentList.d.ts.map +0 -1
  234. package/dist/components/agents/AgentStatusBadge.d.ts +0 -12
  235. package/dist/components/agents/AgentStatusBadge.d.ts.map +0 -1
  236. package/dist/components/agents/OpenInBrowserEditorButton.d.ts +0 -16
  237. package/dist/components/agents/OpenInBrowserEditorButton.d.ts.map +0 -1
  238. package/dist/components/agents/PluginUIPanel.d.ts +0 -38
  239. package/dist/components/agents/PluginUIPanel.d.ts.map +0 -1
  240. package/dist/components/agents/backup/AgentBackupTab.d.ts +0 -11
  241. package/dist/components/agents/backup/AgentBackupTab.d.ts.map +0 -1
  242. package/dist/components/agents/index.d.ts +0 -8
  243. package/dist/components/agents/index.d.ts.map +0 -1
  244. package/dist/components/agents/types.d.ts +0 -72
  245. package/dist/components/agents/types.d.ts.map +0 -1
  246. package/dist/components/ai/AIAssistantPanel.d.ts +0 -8
  247. package/dist/components/ai/AIAssistantPanel.d.ts.map +0 -1
  248. package/dist/components/ai/AIContextsTab.d.ts +0 -6
  249. package/dist/components/ai/AIContextsTab.d.ts.map +0 -1
  250. package/dist/components/ai/AIOverviewTab.d.ts +0 -7
  251. package/dist/components/ai/AIOverviewTab.d.ts.map +0 -1
  252. package/dist/components/ai/AIPlaygroundTab.d.ts +0 -6
  253. package/dist/components/ai/AIPlaygroundTab.d.ts.map +0 -1
  254. package/dist/components/ai/AIPromptsTab.d.ts +0 -6
  255. package/dist/components/ai/AIPromptsTab.d.ts.map +0 -1
  256. package/dist/components/ai/AISessionsTab.d.ts +0 -7
  257. package/dist/components/ai/AISessionsTab.d.ts.map +0 -1
  258. package/dist/components/ai/AIStatsTab.d.ts +0 -6
  259. package/dist/components/ai/AIStatsTab.d.ts.map +0 -1
  260. package/dist/components/ai/AITasksTab.d.ts +0 -5
  261. package/dist/components/ai/AITasksTab.d.ts.map +0 -1
  262. package/dist/components/ai/AITemplatesTab.d.ts +0 -6
  263. package/dist/components/ai/AITemplatesTab.d.ts.map +0 -1
  264. package/dist/components/ai/ClaudeCredentialsCard.d.ts +0 -6
  265. package/dist/components/ai/ClaudeCredentialsCard.d.ts.map +0 -1
  266. package/dist/components/ai/PluginHarnessPicker.d.ts +0 -31
  267. package/dist/components/ai/PluginHarnessPicker.d.ts.map +0 -1
  268. package/dist/components/analytics/AnalyticsBreakdownChart.d.ts +0 -12
  269. package/dist/components/analytics/AnalyticsBreakdownChart.d.ts.map +0 -1
  270. package/dist/components/analytics/AnalyticsBreakdownTable.d.ts +0 -13
  271. package/dist/components/analytics/AnalyticsBreakdownTable.d.ts.map +0 -1
  272. package/dist/components/analytics/AnalyticsEntityTabs.d.ts +0 -9
  273. package/dist/components/analytics/AnalyticsEntityTabs.d.ts.map +0 -1
  274. package/dist/components/analytics/AnalyticsFilterBar.d.ts +0 -15
  275. package/dist/components/analytics/AnalyticsFilterBar.d.ts.map +0 -1
  276. package/dist/components/analytics/AnalyticsKpiGrid.d.ts +0 -10
  277. package/dist/components/analytics/AnalyticsKpiGrid.d.ts.map +0 -1
  278. package/dist/components/analytics/AnalyticsTimeSeriesChart.d.ts +0 -16
  279. package/dist/components/analytics/AnalyticsTimeSeriesChart.d.ts.map +0 -1
  280. package/dist/components/analytics/SandboxAnalyticsSection.d.ts +0 -9
  281. package/dist/components/analytics/SandboxAnalyticsSection.d.ts.map +0 -1
  282. package/dist/components/analytics/index.d.ts +0 -9
  283. package/dist/components/analytics/index.d.ts.map +0 -1
  284. package/dist/components/analytics/types.d.ts +0 -28
  285. package/dist/components/analytics/types.d.ts.map +0 -1
  286. package/dist/components/assistant/AIAssistantPanel.d.ts +0 -5
  287. package/dist/components/assistant/AIAssistantPanel.d.ts.map +0 -1
  288. package/dist/components/assistant/AssistantChatArea.d.ts +0 -4
  289. package/dist/components/assistant/AssistantChatArea.d.ts.map +0 -1
  290. package/dist/components/assistant/AssistantChatInput.d.ts +0 -10
  291. package/dist/components/assistant/AssistantChatInput.d.ts.map +0 -1
  292. package/dist/components/assistant/AssistantConversationList.d.ts +0 -4
  293. package/dist/components/assistant/AssistantConversationList.d.ts.map +0 -1
  294. package/dist/components/assistant/AssistantExportMenu.d.ts +0 -4
  295. package/dist/components/assistant/AssistantExportMenu.d.ts.map +0 -1
  296. package/dist/components/assistant/AssistantMarkdownRenderer.d.ts +0 -8
  297. package/dist/components/assistant/AssistantMarkdownRenderer.d.ts.map +0 -1
  298. package/dist/components/assistant/AssistantMessageItem.d.ts +0 -10
  299. package/dist/components/assistant/AssistantMessageItem.d.ts.map +0 -1
  300. package/dist/components/assistant/AssistantMessageList.d.ts +0 -10
  301. package/dist/components/assistant/AssistantMessageList.d.ts.map +0 -1
  302. package/dist/components/assistant/AssistantModeSelector.d.ts +0 -10
  303. package/dist/components/assistant/AssistantModeSelector.d.ts.map +0 -1
  304. package/dist/components/assistant/AssistantWelcome.d.ts +0 -10
  305. package/dist/components/assistant/AssistantWelcome.d.ts.map +0 -1
  306. package/dist/components/assistant/index.d.ts +0 -11
  307. package/dist/components/assistant/index.d.ts.map +0 -1
  308. package/dist/components/audit/AuditDeleteDialog.d.ts +0 -12
  309. package/dist/components/audit/AuditDeleteDialog.d.ts.map +0 -1
  310. package/dist/components/audit/AuditExportButton.d.ts +0 -8
  311. package/dist/components/audit/AuditExportButton.d.ts.map +0 -1
  312. package/dist/components/audit/AuditLogDetail.d.ts +0 -9
  313. package/dist/components/audit/AuditLogDetail.d.ts.map +0 -1
  314. package/dist/components/audit/AuditLogFilters.d.ts +0 -15
  315. package/dist/components/audit/AuditLogFilters.d.ts.map +0 -1
  316. package/dist/components/audit/AuditLogStats.d.ts +0 -9
  317. package/dist/components/audit/AuditLogStats.d.ts.map +0 -1
  318. package/dist/components/audit/AuditLogTable.d.ts +0 -21
  319. package/dist/components/audit/AuditLogTable.d.ts.map +0 -1
  320. package/dist/components/audit/index.d.ts +0 -7
  321. package/dist/components/audit/index.d.ts.map +0 -1
  322. package/dist/components/catalog/CatalogCard.d.ts +0 -22
  323. package/dist/components/catalog/CatalogCard.d.ts.map +0 -1
  324. package/dist/components/catalog/CatalogForm.d.ts +0 -18
  325. package/dist/components/catalog/CatalogForm.d.ts.map +0 -1
  326. package/dist/components/catalog/index.d.ts +0 -5
  327. package/dist/components/catalog/index.d.ts.map +0 -1
  328. package/dist/components/docs/DocsCompileStatus.d.ts +0 -9
  329. package/dist/components/docs/DocsCompileStatus.d.ts.map +0 -1
  330. package/dist/components/docs/DocsEditPanel.d.ts +0 -26
  331. package/dist/components/docs/DocsEditPanel.d.ts.map +0 -1
  332. package/dist/components/docs/DocsEmptyState.d.ts +0 -7
  333. package/dist/components/docs/DocsEmptyState.d.ts.map +0 -1
  334. package/dist/components/docs/DocsPageEditor.d.ts +0 -13
  335. package/dist/components/docs/DocsPageEditor.d.ts.map +0 -1
  336. package/dist/components/docs/DocsPageTree.d.ts +0 -12
  337. package/dist/components/docs/DocsPageTree.d.ts.map +0 -1
  338. package/dist/components/docs/DocsPreviewPanel.d.ts +0 -17
  339. package/dist/components/docs/DocsPreviewPanel.d.ts.map +0 -1
  340. package/dist/components/docs/DocsSettingsPanel.d.ts +0 -15
  341. package/dist/components/docs/DocsSettingsPanel.d.ts.map +0 -1
  342. package/dist/components/docs/DocsTabPanel.d.ts +0 -8
  343. package/dist/components/docs/DocsTabPanel.d.ts.map +0 -1
  344. package/dist/components/docs/index.d.ts +0 -10
  345. package/dist/components/docs/index.d.ts.map +0 -1
  346. package/dist/components/docs/previewHtml.d.ts +0 -2
  347. package/dist/components/docs/previewHtml.d.ts.map +0 -1
  348. package/dist/components/docs/types.d.ts +0 -59
  349. package/dist/components/docs/types.d.ts.map +0 -1
  350. package/dist/components/gitops/CIDurationChart.d.ts +0 -12
  351. package/dist/components/gitops/CIDurationChart.d.ts.map +0 -1
  352. package/dist/components/gitops/CIFailedRuns.d.ts +0 -13
  353. package/dist/components/gitops/CIFailedRuns.d.ts.map +0 -1
  354. package/dist/components/gitops/CIPipelineRunsTable.d.ts +0 -13
  355. package/dist/components/gitops/CIPipelineRunsTable.d.ts.map +0 -1
  356. package/dist/components/gitops/CISuccessRateChart.d.ts +0 -13
  357. package/dist/components/gitops/CISuccessRateChart.d.ts.map +0 -1
  358. package/dist/components/gitops/CITab.d.ts +0 -15
  359. package/dist/components/gitops/CITab.d.ts.map +0 -1
  360. package/dist/components/gitops/CIWorkflowList.d.ts +0 -13
  361. package/dist/components/gitops/CIWorkflowList.d.ts.map +0 -1
  362. package/dist/components/gitops/GitOpsProviderCard.d.ts +0 -14
  363. package/dist/components/gitops/GitOpsProviderCard.d.ts.map +0 -1
  364. package/dist/components/gitops/GitOpsSetup.d.ts +0 -16
  365. package/dist/components/gitops/GitOpsSetup.d.ts.map +0 -1
  366. package/dist/components/gitops/GitOpsSkeleton.d.ts +0 -12
  367. package/dist/components/gitops/GitOpsSkeleton.d.ts.map +0 -1
  368. package/dist/components/gitops/GitOpsStatusBadge.d.ts +0 -14
  369. package/dist/components/gitops/GitOpsStatusBadge.d.ts.map +0 -1
  370. package/dist/components/gitops/ProviderIcon.d.ts +0 -14
  371. package/dist/components/gitops/ProviderIcon.d.ts.map +0 -1
  372. package/dist/components/gitops/RepoActivityCard.d.ts +0 -12
  373. package/dist/components/gitops/RepoActivityCard.d.ts.map +0 -1
  374. package/dist/components/gitops/RepoIssuesCard.d.ts +0 -12
  375. package/dist/components/gitops/RepoIssuesCard.d.ts.map +0 -1
  376. package/dist/components/gitops/RepoLanguagesCard.d.ts +0 -13
  377. package/dist/components/gitops/RepoLanguagesCard.d.ts.map +0 -1
  378. package/dist/components/gitops/RepoOverviewCard.d.ts +0 -13
  379. package/dist/components/gitops/RepoOverviewCard.d.ts.map +0 -1
  380. package/dist/components/gitops/RepoPullRequestsCard.d.ts +0 -12
  381. package/dist/components/gitops/RepoPullRequestsCard.d.ts.map +0 -1
  382. package/dist/components/gitops/RepoSecurityCard.d.ts +0 -12
  383. package/dist/components/gitops/RepoSecurityCard.d.ts.map +0 -1
  384. package/dist/components/gitops/RepoStatsTab.d.ts +0 -15
  385. package/dist/components/gitops/RepoStatsTab.d.ts.map +0 -1
  386. package/dist/components/gitops/VibeGitOpsTab.d.ts +0 -12
  387. package/dist/components/gitops/VibeGitOpsTab.d.ts.map +0 -1
  388. package/dist/components/gitops/index.d.ts +0 -21
  389. package/dist/components/gitops/index.d.ts.map +0 -1
  390. package/dist/components/gitops/types.d.ts +0 -90
  391. package/dist/components/gitops/types.d.ts.map +0 -1
  392. package/dist/components/graph/AgentGraphView.d.ts +0 -44
  393. package/dist/components/graph/AgentGraphView.d.ts.map +0 -1
  394. package/dist/components/graph/AgentNode.d.ts +0 -6
  395. package/dist/components/graph/AgentNode.d.ts.map +0 -1
  396. package/dist/components/graph/ConnectionPermissionsDialog.d.ts +0 -26
  397. package/dist/components/graph/ConnectionPermissionsDialog.d.ts.map +0 -1
  398. package/dist/components/graph/TargetNode.d.ts +0 -6
  399. package/dist/components/graph/TargetNode.d.ts.map +0 -1
  400. package/dist/components/health/AgentHealthCard.d.ts +0 -9
  401. package/dist/components/health/AgentHealthCard.d.ts.map +0 -1
  402. package/dist/components/health/HealthDashboard.d.ts +0 -10
  403. package/dist/components/health/HealthDashboard.d.ts.map +0 -1
  404. package/dist/components/health/SystemStatus.d.ts +0 -11
  405. package/dist/components/health/SystemStatus.d.ts.map +0 -1
  406. package/dist/components/health/index.d.ts +0 -5
  407. package/dist/components/health/index.d.ts.map +0 -1
  408. package/dist/components/health/types.d.ts +0 -50
  409. package/dist/components/health/types.d.ts.map +0 -1
  410. package/dist/components/idp-components/ComponentCard.d.ts +0 -24
  411. package/dist/components/idp-components/ComponentCard.d.ts.map +0 -1
  412. package/dist/components/idp-components/ComponentForm.d.ts +0 -22
  413. package/dist/components/idp-components/ComponentForm.d.ts.map +0 -1
  414. package/dist/components/idp-components/index.d.ts +0 -5
  415. package/dist/components/idp-components/index.d.ts.map +0 -1
  416. package/dist/components/logs/LogViewer.d.ts +0 -13
  417. package/dist/components/logs/LogViewer.d.ts.map +0 -1
  418. package/dist/components/notes/NoteCard.d.ts +0 -13
  419. package/dist/components/notes/NoteCard.d.ts.map +0 -1
  420. package/dist/components/notes/NoteEditor.d.ts +0 -31
  421. package/dist/components/notes/NoteEditor.d.ts.map +0 -1
  422. package/dist/components/notes/NoteList.d.ts +0 -15
  423. package/dist/components/notes/NoteList.d.ts.map +0 -1
  424. package/dist/components/notes/NotesTabPanel.d.ts +0 -18
  425. package/dist/components/notes/NotesTabPanel.d.ts.map +0 -1
  426. package/dist/components/notes/index.d.ts +0 -7
  427. package/dist/components/notes/index.d.ts.map +0 -1
  428. package/dist/components/notes/types.d.ts +0 -58
  429. package/dist/components/notes/types.d.ts.map +0 -1
  430. package/dist/components/scorecard/ScorecardPanel.d.ts +0 -9
  431. package/dist/components/scorecard/ScorecardPanel.d.ts.map +0 -1
  432. package/dist/components/scorecard/index.d.ts +0 -3
  433. package/dist/components/scorecard/index.d.ts.map +0 -1
  434. package/dist/components/sessions/CollaboratorsList.d.ts +0 -18
  435. package/dist/components/sessions/CollaboratorsList.d.ts.map +0 -1
  436. package/dist/components/sessions/ControlStatusBar.d.ts +0 -31
  437. package/dist/components/sessions/ControlStatusBar.d.ts.map +0 -1
  438. package/dist/components/sessions/SessionCard.d.ts +0 -24
  439. package/dist/components/sessions/SessionCard.d.ts.map +0 -1
  440. package/dist/components/sessions/SessionForm.d.ts +0 -20
  441. package/dist/components/sessions/SessionForm.d.ts.map +0 -1
  442. package/dist/components/sessions/SessionList.d.ts +0 -25
  443. package/dist/components/sessions/SessionList.d.ts.map +0 -1
  444. package/dist/components/sessions/SessionShareDialog.d.ts +0 -15
  445. package/dist/components/sessions/SessionShareDialog.d.ts.map +0 -1
  446. package/dist/components/sessions/SessionStatusBadge.d.ts +0 -9
  447. package/dist/components/sessions/SessionStatusBadge.d.ts.map +0 -1
  448. package/dist/components/sessions/SharedTerminalPanel.d.ts +0 -72
  449. package/dist/components/sessions/SharedTerminalPanel.d.ts.map +0 -1
  450. package/dist/components/sessions/TerminalPanel.d.ts +0 -69
  451. package/dist/components/sessions/TerminalPanel.d.ts.map +0 -1
  452. package/dist/components/sessions/index.d.ts +0 -11
  453. package/dist/components/sessions/index.d.ts.map +0 -1
  454. package/dist/components/sessions/types.d.ts +0 -67
  455. package/dist/components/sessions/types.d.ts.map +0 -1
  456. package/dist/components/settings/AdvancedSection.d.ts +0 -22
  457. package/dist/components/settings/AdvancedSection.d.ts.map +0 -1
  458. package/dist/components/settings/ConfigEditor.d.ts +0 -14
  459. package/dist/components/settings/ConfigEditor.d.ts.map +0 -1
  460. package/dist/components/settings/ConfigSection.d.ts +0 -12
  461. package/dist/components/settings/ConfigSection.d.ts.map +0 -1
  462. package/dist/components/settings/NotificationsSection.d.ts +0 -14
  463. package/dist/components/settings/NotificationsSection.d.ts.map +0 -1
  464. package/dist/components/settings/PreferencesSection.d.ts +0 -14
  465. package/dist/components/settings/PreferencesSection.d.ts.map +0 -1
  466. package/dist/components/settings/ProfileSection.d.ts +0 -14
  467. package/dist/components/settings/ProfileSection.d.ts.map +0 -1
  468. package/dist/components/settings/SecuritySection.d.ts +0 -11
  469. package/dist/components/settings/SecuritySection.d.ts.map +0 -1
  470. package/dist/components/settings/SettingsForm.d.ts +0 -58
  471. package/dist/components/settings/SettingsForm.d.ts.map +0 -1
  472. package/dist/components/settings/WorkspaceDefaultsSection.d.ts +0 -27
  473. package/dist/components/settings/WorkspaceDefaultsSection.d.ts.map +0 -1
  474. package/dist/components/settings/index.d.ts +0 -4
  475. package/dist/components/settings/index.d.ts.map +0 -1
  476. package/dist/components/settings/types.d.ts +0 -55
  477. package/dist/components/settings/types.d.ts.map +0 -1
  478. package/dist/components/shared/AgentEventsConnector.d.ts +0 -6
  479. package/dist/components/shared/AgentEventsConnector.d.ts.map +0 -1
  480. package/dist/components/shared/AgentSelector.d.ts +0 -25
  481. package/dist/components/shared/AgentSelector.d.ts.map +0 -1
  482. package/dist/components/shared/AgentSetupBanner.d.ts +0 -21
  483. package/dist/components/shared/AgentSetupBanner.d.ts.map +0 -1
  484. package/dist/components/shared/Card.d.ts +0 -29
  485. package/dist/components/shared/Card.d.ts.map +0 -1
  486. package/dist/components/shared/ConfirmDialog.d.ts +0 -14
  487. package/dist/components/shared/ConfirmDialog.d.ts.map +0 -1
  488. package/dist/components/shared/EmptyState.d.ts +0 -11
  489. package/dist/components/shared/EmptyState.d.ts.map +0 -1
  490. package/dist/components/shared/EntityTagPicker.d.ts +0 -8
  491. package/dist/components/shared/EntityTagPicker.d.ts.map +0 -1
  492. package/dist/components/shared/ErrorState.d.ts +0 -11
  493. package/dist/components/shared/ErrorState.d.ts.map +0 -1
  494. package/dist/components/shared/FilterDropdown.d.ts +0 -20
  495. package/dist/components/shared/FilterDropdown.d.ts.map +0 -1
  496. package/dist/components/shared/GetHelpButton.d.ts +0 -27
  497. package/dist/components/shared/GetHelpButton.d.ts.map +0 -1
  498. package/dist/components/shared/InstallTabs.d.ts +0 -18
  499. package/dist/components/shared/InstallTabs.d.ts.map +0 -1
  500. package/dist/components/shared/LoadingState.d.ts +0 -7
  501. package/dist/components/shared/LoadingState.d.ts.map +0 -1
  502. package/dist/components/shared/NotificationToast.d.ts +0 -40
  503. package/dist/components/shared/NotificationToast.d.ts.map +0 -1
  504. package/dist/components/shared/PageHeader.d.ts +0 -14
  505. package/dist/components/shared/PageHeader.d.ts.map +0 -1
  506. package/dist/components/shared/PluginGate.d.ts +0 -35
  507. package/dist/components/shared/PluginGate.d.ts.map +0 -1
  508. package/dist/components/shared/QuotaExhaustedDialog.d.ts +0 -12
  509. package/dist/components/shared/QuotaExhaustedDialog.d.ts.map +0 -1
  510. package/dist/components/shared/RequireAgentReachable.d.ts +0 -14
  511. package/dist/components/shared/RequireAgentReachable.d.ts.map +0 -1
  512. package/dist/components/shared/SearchInput.d.ts +0 -9
  513. package/dist/components/shared/SearchInput.d.ts.map +0 -1
  514. package/dist/components/shared/SearchableSelect.d.ts +0 -48
  515. package/dist/components/shared/SearchableSelect.d.ts.map +0 -1
  516. package/dist/components/shared/SelectionCheckbox.d.ts +0 -11
  517. package/dist/components/shared/SelectionCheckbox.d.ts.map +0 -1
  518. package/dist/components/shared/SessionNotificationBanner.d.ts +0 -47
  519. package/dist/components/shared/SessionNotificationBanner.d.ts.map +0 -1
  520. package/dist/components/shared/StatCard.d.ts +0 -17
  521. package/dist/components/shared/StatCard.d.ts.map +0 -1
  522. package/dist/components/shared/StatusBadge.d.ts +0 -11
  523. package/dist/components/shared/StatusBadge.d.ts.map +0 -1
  524. package/dist/components/shared/TagFilter.d.ts +0 -11
  525. package/dist/components/shared/TagFilter.d.ts.map +0 -1
  526. package/dist/components/shared/index.d.ts +0 -32
  527. package/dist/components/shared/index.d.ts.map +0 -1
  528. package/dist/components/targets/TargetCard.d.ts +0 -45
  529. package/dist/components/targets/TargetCard.d.ts.map +0 -1
  530. package/dist/components/targets/index.d.ts +0 -3
  531. package/dist/components/targets/index.d.ts.map +0 -1
  532. package/dist/components/templates/TemplateCard.d.ts +0 -19
  533. package/dist/components/templates/TemplateCard.d.ts.map +0 -1
  534. package/dist/components/templates/index.d.ts +0 -3
  535. package/dist/components/templates/index.d.ts.map +0 -1
  536. package/dist/components/tunnels/DomainVerificationBadge.d.ts +0 -6
  537. package/dist/components/tunnels/DomainVerificationBadge.d.ts.map +0 -1
  538. package/dist/components/tunnels/ProviderBadge.d.ts +0 -6
  539. package/dist/components/tunnels/ProviderBadge.d.ts.map +0 -1
  540. package/dist/components/tunnels/TunnelCard.d.ts +0 -13
  541. package/dist/components/tunnels/TunnelCard.d.ts.map +0 -1
  542. package/dist/components/tunnels/TunnelCreateWizard.d.ts +0 -2
  543. package/dist/components/tunnels/TunnelCreateWizard.d.ts.map +0 -1
  544. package/dist/components/tunnels/TunnelStatusBadge.d.ts +0 -6
  545. package/dist/components/tunnels/TunnelStatusBadge.d.ts.map +0 -1
  546. package/dist/components/vibe/VibeAgentEmptyState.d.ts +0 -8
  547. package/dist/components/vibe/VibeAgentEmptyState.d.ts.map +0 -1
  548. package/dist/components/vibecalendar/LogsDrawer.d.ts +0 -12
  549. package/dist/components/vibecalendar/LogsDrawer.d.ts.map +0 -1
  550. package/dist/components/vibecalendar/ScheduleTaskModal.d.ts +0 -33
  551. package/dist/components/vibecalendar/ScheduleTaskModal.d.ts.map +0 -1
  552. package/dist/components/vibecalendar/VibeCalAgendaView.d.ts +0 -11
  553. package/dist/components/vibecalendar/VibeCalAgendaView.d.ts.map +0 -1
  554. package/dist/components/vibecalendar/VibeCalDayView.d.ts +0 -12
  555. package/dist/components/vibecalendar/VibeCalDayView.d.ts.map +0 -1
  556. package/dist/components/vibecalendar/VibeCalMonthView.d.ts +0 -12
  557. package/dist/components/vibecalendar/VibeCalMonthView.d.ts.map +0 -1
  558. package/dist/components/vibecalendar/VibeCalWeekView.d.ts +0 -12
  559. package/dist/components/vibecalendar/VibeCalWeekView.d.ts.map +0 -1
  560. package/dist/components/vibecalendar/VibeCalendarHeader.d.ts +0 -12
  561. package/dist/components/vibecalendar/VibeCalendarHeader.d.ts.map +0 -1
  562. package/dist/components/vibecalendar/VibeTaskBlock.d.ts +0 -12
  563. package/dist/components/vibecalendar/VibeTaskBlock.d.ts.map +0 -1
  564. package/dist/components/vibecalendar/expandOccurrences.d.ts +0 -37
  565. package/dist/components/vibecalendar/expandOccurrences.d.ts.map +0 -1
  566. package/dist/components/vibecalendar/index.d.ts +0 -11
  567. package/dist/components/vibecalendar/index.d.ts.map +0 -1
  568. package/dist/components/vibecalendar/types.d.ts +0 -53
  569. package/dist/components/vibecalendar/types.d.ts.map +0 -1
  570. package/dist/components/vibedeck/VibeDeckButtonForm.d.ts +0 -54
  571. package/dist/components/vibedeck/VibeDeckButtonForm.d.ts.map +0 -1
  572. package/dist/components/vibedeck/VibeDeckButtonTile.d.ts +0 -48
  573. package/dist/components/vibedeck/VibeDeckButtonTile.d.ts.map +0 -1
  574. package/dist/components/vibedeck/VibeDeckExecutionLog.d.ts +0 -25
  575. package/dist/components/vibedeck/VibeDeckExecutionLog.d.ts.map +0 -1
  576. package/dist/components/vibedeck/VibeDeckForm.d.ts +0 -21
  577. package/dist/components/vibedeck/VibeDeckForm.d.ts.map +0 -1
  578. package/dist/components/vibedeck/VibeDeckGrid.d.ts +0 -51
  579. package/dist/components/vibedeck/VibeDeckGrid.d.ts.map +0 -1
  580. package/dist/components/vibedeck/VibeDeckShareDialog.d.ts +0 -10
  581. package/dist/components/vibedeck/VibeDeckShareDialog.d.ts.map +0 -1
  582. package/dist/components/vibedeck/VibeDeckSwitcher.d.ts +0 -28
  583. package/dist/components/vibedeck/VibeDeckSwitcher.d.ts.map +0 -1
  584. package/dist/components/vibedeck/index.d.ts +0 -9
  585. package/dist/components/vibedeck/index.d.ts.map +0 -1
  586. package/dist/components/vibes/VibeCard.d.ts +0 -19
  587. package/dist/components/vibes/VibeCard.d.ts.map +0 -1
  588. package/dist/components/vibes/VibeForm.d.ts +0 -15
  589. package/dist/components/vibes/VibeForm.d.ts.map +0 -1
  590. package/dist/components/vibes/VibeList.d.ts +0 -20
  591. package/dist/components/vibes/VibeList.d.ts.map +0 -1
  592. package/dist/components/vibes/icons.d.ts +0 -6
  593. package/dist/components/vibes/icons.d.ts.map +0 -1
  594. package/dist/components/vibes/index.d.ts +0 -5
  595. package/dist/components/vibes/index.d.ts.map +0 -1
  596. package/dist/components/vibes/types.d.ts +0 -71
  597. package/dist/components/vibes/types.d.ts.map +0 -1
  598. package/dist/components/webhooks/WebhookCard.d.ts +0 -12
  599. package/dist/components/webhooks/WebhookCard.d.ts.map +0 -1
  600. package/dist/components/webhooks/WebhookForm.d.ts +0 -11
  601. package/dist/components/webhooks/WebhookForm.d.ts.map +0 -1
  602. package/dist/components/webhooks/WebhookList.d.ts +0 -14
  603. package/dist/components/webhooks/WebhookList.d.ts.map +0 -1
  604. package/dist/components/webhooks/index.d.ts +0 -5
  605. package/dist/components/webhooks/index.d.ts.map +0 -1
  606. package/dist/components/webhooks/types.d.ts +0 -58
  607. package/dist/components/webhooks/types.d.ts.map +0 -1
  608. package/dist/config/assistantUsecases.d.ts +0 -18
  609. package/dist/config/assistantUsecases.d.ts.map +0 -1
  610. package/dist/config/index.d.ts +0 -24
  611. package/dist/config/index.d.ts.map +0 -1
  612. package/dist/constants/permissions.d.ts +0 -112
  613. package/dist/constants/permissions.d.ts.map +0 -1
  614. package/dist/constants/pluginCatalog.d.ts +0 -36
  615. package/dist/constants/pluginCatalog.d.ts.map +0 -1
  616. package/dist/dev/main.d.ts +0 -2
  617. package/dist/dev/main.d.ts.map +0 -1
  618. package/dist/generated/global-operations.d.ts +0 -2
  619. package/dist/generated/global-operations.d.ts.map +0 -1
  620. package/dist/generated/global-types.d.ts +0 -21253
  621. package/dist/generated/global-types.d.ts.map +0 -1
  622. package/dist/generated/wspace-operations.d.ts +0 -15218
  623. package/dist/generated/wspace-operations.d.ts.map +0 -1
  624. package/dist/generated/wspace-types.d.ts +0 -55252
  625. package/dist/generated/wspace-types.d.ts.map +0 -1
  626. package/dist/hooks/index.d.ts +0 -7
  627. package/dist/hooks/index.d.ts.map +0 -1
  628. package/dist/hooks/useAgentConnectivity.d.ts +0 -47
  629. package/dist/hooks/useAgentConnectivity.d.ts.map +0 -1
  630. package/dist/hooks/useAgentEvents.d.ts +0 -36
  631. package/dist/hooks/useAgentEvents.d.ts.map +0 -1
  632. package/dist/hooks/useAgentManagerKeyboard.d.ts +0 -17
  633. package/dist/hooks/useAgentManagerKeyboard.d.ts.map +0 -1
  634. package/dist/hooks/useAgentManagerStreaming.d.ts +0 -19
  635. package/dist/hooks/useAgentManagerStreaming.d.ts.map +0 -1
  636. package/dist/hooks/useAssistantHeartbeat.d.ts +0 -4
  637. package/dist/hooks/useAssistantHeartbeat.d.ts.map +0 -1
  638. package/dist/hooks/useAssistantKeyboardShortcuts.d.ts +0 -18
  639. package/dist/hooks/useAssistantKeyboardShortcuts.d.ts.map +0 -1
  640. package/dist/hooks/useCachedInitialData.d.ts +0 -120
  641. package/dist/hooks/useCachedInitialData.d.ts.map +0 -1
  642. package/dist/hooks/useEntityTags.d.ts +0 -24
  643. package/dist/hooks/useEntityTags.d.ts.map +0 -1
  644. package/dist/hooks/useFileUpload.d.ts +0 -15
  645. package/dist/hooks/useFileUpload.d.ts.map +0 -1
  646. package/dist/hooks/useInitialDataLoader.d.ts +0 -48
  647. package/dist/hooks/useInitialDataLoader.d.ts.map +0 -1
  648. package/dist/hooks/useMcpServers.d.ts +0 -14
  649. package/dist/hooks/useMcpServers.d.ts.map +0 -1
  650. package/dist/hooks/useOpenAssistantHelp.d.ts +0 -2
  651. package/dist/hooks/useOpenAssistantHelp.d.ts.map +0 -1
  652. package/dist/hooks/usePluginAvailability.d.ts +0 -35
  653. package/dist/hooks/usePluginAvailability.d.ts.map +0 -1
  654. package/dist/hooks/useQueryBackedTab.d.ts +0 -2
  655. package/dist/hooks/useQueryBackedTab.d.ts.map +0 -1
  656. package/dist/hooks/useSessionSearch.d.ts +0 -24
  657. package/dist/hooks/useSessionSearch.d.ts.map +0 -1
  658. package/dist/hooks/useVoiceMode.d.ts +0 -17
  659. package/dist/hooks/useVoiceMode.d.ts.map +0 -1
  660. package/dist/index.d.ts +0 -17
  661. package/dist/index.d.ts.map +0 -1
  662. package/dist/lib/vibeFeatures.d.ts +0 -29
  663. package/dist/lib/vibeFeatures.d.ts.map +0 -1
  664. package/dist/node_modules/@xyflow/react/dist/esm/index.js +0 -3281
  665. package/dist/node_modules/@xyflow/react/dist/esm/index.js.map +0 -1
  666. package/dist/node_modules/@xyflow/system/dist/esm/index.js +0 -1845
  667. package/dist/node_modules/@xyflow/system/dist/esm/index.js.map +0 -1
  668. package/dist/node_modules/classcat/index.js +0 -12
  669. package/dist/node_modules/classcat/index.js.map +0 -1
  670. package/dist/node_modules/d3-dispatch/src/dispatch.js +0 -67
  671. package/dist/node_modules/d3-dispatch/src/dispatch.js.map +0 -1
  672. package/dist/node_modules/d3-drag/src/constant.js +0 -6
  673. package/dist/node_modules/d3-drag/src/constant.js.map +0 -1
  674. package/dist/node_modules/d3-drag/src/drag.js +0 -116
  675. package/dist/node_modules/d3-drag/src/drag.js.map +0 -1
  676. package/dist/node_modules/d3-drag/src/event.js +0 -64
  677. package/dist/node_modules/d3-drag/src/event.js.map +0 -1
  678. package/dist/node_modules/d3-drag/src/nodrag.js +0 -17
  679. package/dist/node_modules/d3-drag/src/nodrag.js.map +0 -1
  680. package/dist/node_modules/d3-drag/src/noevent.js +0 -15
  681. package/dist/node_modules/d3-drag/src/noevent.js.map +0 -1
  682. package/dist/node_modules/d3-ease/src/cubic.js +0 -8
  683. package/dist/node_modules/d3-ease/src/cubic.js.map +0 -1
  684. package/dist/node_modules/d3-interpolate/src/transform/decompose.js +0 -24
  685. package/dist/node_modules/d3-interpolate/src/transform/decompose.js.map +0 -1
  686. package/dist/node_modules/d3-interpolate/src/transform/index.js +0 -56
  687. package/dist/node_modules/d3-interpolate/src/transform/index.js.map +0 -1
  688. package/dist/node_modules/d3-interpolate/src/transform/parse.js +0 -14
  689. package/dist/node_modules/d3-interpolate/src/transform/parse.js.map +0 -1
  690. package/dist/node_modules/d3-interpolate/src/zoom.js +0 -43
  691. package/dist/node_modules/d3-interpolate/src/zoom.js.map +0 -1
  692. package/dist/node_modules/d3-selection/src/array.js +0 -8
  693. package/dist/node_modules/d3-selection/src/array.js.map +0 -1
  694. package/dist/node_modules/d3-selection/src/constant.js +0 -10
  695. package/dist/node_modules/d3-selection/src/constant.js.map +0 -1
  696. package/dist/node_modules/d3-selection/src/creator.js +0 -22
  697. package/dist/node_modules/d3-selection/src/creator.js.map +0 -1
  698. package/dist/node_modules/d3-selection/src/matcher.js +0 -15
  699. package/dist/node_modules/d3-selection/src/matcher.js.map +0 -1
  700. package/dist/node_modules/d3-selection/src/namespace.js +0 -13
  701. package/dist/node_modules/d3-selection/src/namespace.js.map +0 -1
  702. package/dist/node_modules/d3-selection/src/namespaces.js +0 -12
  703. package/dist/node_modules/d3-selection/src/namespaces.js.map +0 -1
  704. package/dist/node_modules/d3-selection/src/pointer.js +0 -20
  705. package/dist/node_modules/d3-selection/src/pointer.js.map +0 -1
  706. package/dist/node_modules/d3-selection/src/select.js +0 -9
  707. package/dist/node_modules/d3-selection/src/select.js.map +0 -1
  708. package/dist/node_modules/d3-selection/src/selection/append.js +0 -12
  709. package/dist/node_modules/d3-selection/src/selection/append.js.map +0 -1
  710. package/dist/node_modules/d3-selection/src/selection/attr.js +0 -46
  711. package/dist/node_modules/d3-selection/src/selection/attr.js.map +0 -1
  712. package/dist/node_modules/d3-selection/src/selection/call.js +0 -9
  713. package/dist/node_modules/d3-selection/src/selection/call.js.map +0 -1
  714. package/dist/node_modules/d3-selection/src/selection/classed.js +0 -55
  715. package/dist/node_modules/d3-selection/src/selection/classed.js.map +0 -1
  716. package/dist/node_modules/d3-selection/src/selection/clone.js +0 -16
  717. package/dist/node_modules/d3-selection/src/selection/clone.js.map +0 -1
  718. package/dist/node_modules/d3-selection/src/selection/data.js +0 -38
  719. package/dist/node_modules/d3-selection/src/selection/data.js.map +0 -1
  720. package/dist/node_modules/d3-selection/src/selection/datum.js +0 -8
  721. package/dist/node_modules/d3-selection/src/selection/datum.js.map +0 -1
  722. package/dist/node_modules/d3-selection/src/selection/dispatch.js +0 -23
  723. package/dist/node_modules/d3-selection/src/selection/dispatch.js.map +0 -1
  724. package/dist/node_modules/d3-selection/src/selection/each.js +0 -9
  725. package/dist/node_modules/d3-selection/src/selection/each.js.map +0 -1
  726. package/dist/node_modules/d3-selection/src/selection/empty.js +0 -8
  727. package/dist/node_modules/d3-selection/src/selection/empty.js.map +0 -1
  728. package/dist/node_modules/d3-selection/src/selection/enter.js +0 -28
  729. package/dist/node_modules/d3-selection/src/selection/enter.js.map +0 -1
  730. package/dist/node_modules/d3-selection/src/selection/exit.js +0 -10
  731. package/dist/node_modules/d3-selection/src/selection/exit.js.map +0 -1
  732. package/dist/node_modules/d3-selection/src/selection/filter.js +0 -12
  733. package/dist/node_modules/d3-selection/src/selection/filter.js.map +0 -1
  734. package/dist/node_modules/d3-selection/src/selection/html.js +0 -21
  735. package/dist/node_modules/d3-selection/src/selection/html.js.map +0 -1
  736. package/dist/node_modules/d3-selection/src/selection/index.js +0 -87
  737. package/dist/node_modules/d3-selection/src/selection/index.js.map +0 -1
  738. package/dist/node_modules/d3-selection/src/selection/insert.js +0 -16
  739. package/dist/node_modules/d3-selection/src/selection/insert.js.map +0 -1
  740. package/dist/node_modules/d3-selection/src/selection/iterator.js +0 -8
  741. package/dist/node_modules/d3-selection/src/selection/iterator.js.map +0 -1
  742. package/dist/node_modules/d3-selection/src/selection/join.js +0 -9
  743. package/dist/node_modules/d3-selection/src/selection/join.js.map +0 -1
  744. package/dist/node_modules/d3-selection/src/selection/lower.js +0 -11
  745. package/dist/node_modules/d3-selection/src/selection/lower.js.map +0 -1
  746. package/dist/node_modules/d3-selection/src/selection/merge.js +0 -11
  747. package/dist/node_modules/d3-selection/src/selection/merge.js.map +0 -1
  748. package/dist/node_modules/d3-selection/src/selection/node.js +0 -12
  749. package/dist/node_modules/d3-selection/src/selection/node.js.map +0 -1
  750. package/dist/node_modules/d3-selection/src/selection/nodes.js +0 -8
  751. package/dist/node_modules/d3-selection/src/selection/nodes.js.map +0 -1
  752. package/dist/node_modules/d3-selection/src/selection/on.js +0 -58
  753. package/dist/node_modules/d3-selection/src/selection/on.js.map +0 -1
  754. package/dist/node_modules/d3-selection/src/selection/order.js +0 -9
  755. package/dist/node_modules/d3-selection/src/selection/order.js.map +0 -1
  756. package/dist/node_modules/d3-selection/src/selection/property.js +0 -24
  757. package/dist/node_modules/d3-selection/src/selection/property.js.map +0 -1
  758. package/dist/node_modules/d3-selection/src/selection/raise.js +0 -11
  759. package/dist/node_modules/d3-selection/src/selection/raise.js.map +0 -1
  760. package/dist/node_modules/d3-selection/src/selection/remove.js +0 -12
  761. package/dist/node_modules/d3-selection/src/selection/remove.js.map +0 -1
  762. package/dist/node_modules/d3-selection/src/selection/select.js +0 -12
  763. package/dist/node_modules/d3-selection/src/selection/select.js.map +0 -1
  764. package/dist/node_modules/d3-selection/src/selection/selectAll.js +0 -18
  765. package/dist/node_modules/d3-selection/src/selection/selectAll.js.map +0 -1
  766. package/dist/node_modules/d3-selection/src/selection/selectChild.js +0 -18
  767. package/dist/node_modules/d3-selection/src/selection/selectChild.js.map +0 -1
  768. package/dist/node_modules/d3-selection/src/selection/selectChildren.js +0 -18
  769. package/dist/node_modules/d3-selection/src/selection/selectChildren.js.map +0 -1
  770. package/dist/node_modules/d3-selection/src/selection/size.js +0 -10
  771. package/dist/node_modules/d3-selection/src/selection/size.js.map +0 -1
  772. package/dist/node_modules/d3-selection/src/selection/sort.js +0 -20
  773. package/dist/node_modules/d3-selection/src/selection/sort.js.map +0 -1
  774. package/dist/node_modules/d3-selection/src/selection/sparse.js +0 -8
  775. package/dist/node_modules/d3-selection/src/selection/sparse.js.map +0 -1
  776. package/dist/node_modules/d3-selection/src/selection/style.js +0 -28
  777. package/dist/node_modules/d3-selection/src/selection/style.js.map +0 -1
  778. package/dist/node_modules/d3-selection/src/selection/text.js +0 -21
  779. package/dist/node_modules/d3-selection/src/selection/text.js.map +0 -1
  780. package/dist/node_modules/d3-selection/src/selector.js +0 -11
  781. package/dist/node_modules/d3-selection/src/selector.js.map +0 -1
  782. package/dist/node_modules/d3-selection/src/selectorAll.js +0 -13
  783. package/dist/node_modules/d3-selection/src/selectorAll.js.map +0 -1
  784. package/dist/node_modules/d3-selection/src/sourceEvent.js +0 -10
  785. package/dist/node_modules/d3-selection/src/sourceEvent.js.map +0 -1
  786. package/dist/node_modules/d3-selection/src/window.js +0 -8
  787. package/dist/node_modules/d3-selection/src/window.js.map +0 -1
  788. package/dist/node_modules/d3-timer/src/timeout.js +0 -12
  789. package/dist/node_modules/d3-timer/src/timeout.js.map +0 -1
  790. package/dist/node_modules/d3-timer/src/timer.js +0 -55
  791. package/dist/node_modules/d3-timer/src/timer.js.map +0 -1
  792. package/dist/node_modules/d3-transition/src/index.js +0 -3
  793. package/dist/node_modules/d3-transition/src/interrupt.js +0 -18
  794. package/dist/node_modules/d3-transition/src/interrupt.js.map +0 -1
  795. package/dist/node_modules/d3-transition/src/selection/index.js +0 -7
  796. package/dist/node_modules/d3-transition/src/selection/index.js.map +0 -1
  797. package/dist/node_modules/d3-transition/src/selection/interrupt.js +0 -11
  798. package/dist/node_modules/d3-transition/src/selection/interrupt.js.map +0 -1
  799. package/dist/node_modules/d3-transition/src/selection/transition.js +0 -25
  800. package/dist/node_modules/d3-transition/src/selection/transition.js.map +0 -1
  801. package/dist/node_modules/d3-transition/src/transition/attr.js +0 -51
  802. package/dist/node_modules/d3-transition/src/transition/attr.js.map +0 -1
  803. package/dist/node_modules/d3-transition/src/transition/attrTween.js +0 -40
  804. package/dist/node_modules/d3-transition/src/transition/attrTween.js.map +0 -1
  805. package/dist/node_modules/d3-transition/src/transition/delay.js +0 -20
  806. package/dist/node_modules/d3-transition/src/transition/delay.js.map +0 -1
  807. package/dist/node_modules/d3-transition/src/transition/duration.js +0 -20
  808. package/dist/node_modules/d3-transition/src/transition/duration.js.map +0 -1
  809. package/dist/node_modules/d3-transition/src/transition/ease.js +0 -16
  810. package/dist/node_modules/d3-transition/src/transition/ease.js.map +0 -1
  811. package/dist/node_modules/d3-transition/src/transition/easeVarying.js +0 -17
  812. package/dist/node_modules/d3-transition/src/transition/easeVarying.js.map +0 -1
  813. package/dist/node_modules/d3-transition/src/transition/end.js +0 -18
  814. package/dist/node_modules/d3-transition/src/transition/end.js.map +0 -1
  815. package/dist/node_modules/d3-transition/src/transition/filter.js +0 -12
  816. package/dist/node_modules/d3-transition/src/transition/filter.js.map +0 -1
  817. package/dist/node_modules/d3-transition/src/transition/index.js +0 -69
  818. package/dist/node_modules/d3-transition/src/transition/index.js.map +0 -1
  819. package/dist/node_modules/d3-transition/src/transition/interpolate.js +0 -13
  820. package/dist/node_modules/d3-transition/src/transition/interpolate.js.map +0 -1
  821. package/dist/node_modules/d3-transition/src/transition/merge.js +0 -12
  822. package/dist/node_modules/d3-transition/src/transition/merge.js.map +0 -1
  823. package/dist/node_modules/d3-transition/src/transition/on.js +0 -23
  824. package/dist/node_modules/d3-transition/src/transition/on.js.map +0 -1
  825. package/dist/node_modules/d3-transition/src/transition/remove.js +0 -15
  826. package/dist/node_modules/d3-transition/src/transition/remove.js.map +0 -1
  827. package/dist/node_modules/d3-transition/src/transition/schedule.js +0 -71
  828. package/dist/node_modules/d3-transition/src/transition/schedule.js.map +0 -1
  829. package/dist/node_modules/d3-transition/src/transition/select.js +0 -14
  830. package/dist/node_modules/d3-transition/src/transition/select.js.map +0 -1
  831. package/dist/node_modules/d3-transition/src/transition/selectAll.js +0 -17
  832. package/dist/node_modules/d3-transition/src/transition/selectAll.js.map +0 -1
  833. package/dist/node_modules/d3-transition/src/transition/selection.js +0 -10
  834. package/dist/node_modules/d3-transition/src/transition/selection.js.map +0 -1
  835. package/dist/node_modules/d3-transition/src/transition/style.js +0 -47
  836. package/dist/node_modules/d3-transition/src/transition/style.js.map +0 -1
  837. package/dist/node_modules/d3-transition/src/transition/styleTween.js +0 -25
  838. package/dist/node_modules/d3-transition/src/transition/styleTween.js.map +0 -1
  839. package/dist/node_modules/d3-transition/src/transition/text.js +0 -19
  840. package/dist/node_modules/d3-transition/src/transition/text.js.map +0 -1
  841. package/dist/node_modules/d3-transition/src/transition/textTween.js +0 -25
  842. package/dist/node_modules/d3-transition/src/transition/textTween.js.map +0 -1
  843. package/dist/node_modules/d3-transition/src/transition/transition.js +0 -19
  844. package/dist/node_modules/d3-transition/src/transition/transition.js.map +0 -1
  845. package/dist/node_modules/d3-transition/src/transition/tween.js +0 -56
  846. package/dist/node_modules/d3-transition/src/transition/tween.js.map +0 -1
  847. package/dist/node_modules/d3-zoom/src/constant.js +0 -6
  848. package/dist/node_modules/d3-zoom/src/constant.js.map +0 -1
  849. package/dist/node_modules/d3-zoom/src/event.js +0 -30
  850. package/dist/node_modules/d3-zoom/src/event.js.map +0 -1
  851. package/dist/node_modules/d3-zoom/src/index.js +0 -2
  852. package/dist/node_modules/d3-zoom/src/noevent.js +0 -11
  853. package/dist/node_modules/d3-zoom/src/noevent.js.map +0 -1
  854. package/dist/node_modules/d3-zoom/src/transform.js +0 -50
  855. package/dist/node_modules/d3-zoom/src/transform.js.map +0 -1
  856. package/dist/node_modules/d3-zoom/src/zoom.js +0 -219
  857. package/dist/node_modules/d3-zoom/src/zoom.js.map +0 -1
  858. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -56
  859. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +0 -1
  860. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +0 -54
  861. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js.map +0 -1
  862. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +0 -54
  863. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +0 -1
  864. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +0 -46
  865. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +0 -1
  866. package/dist/node_modules/use-sync-external-store/shim/index.js +0 -12
  867. package/dist/node_modules/use-sync-external-store/shim/index.js.map +0 -1
  868. package/dist/node_modules/use-sync-external-store/shim/with-selector.js +0 -12
  869. package/dist/node_modules/use-sync-external-store/shim/with-selector.js.map +0 -1
  870. package/dist/node_modules/zustand/esm/traditional.js +0 -17
  871. package/dist/node_modules/zustand/esm/traditional.js.map +0 -1
  872. package/dist/node_modules/zustand/esm/vanilla/shallow.js +0 -21
  873. package/dist/node_modules/zustand/esm/vanilla/shallow.js.map +0 -1
  874. package/dist/node_modules/zustand/esm/vanilla.js +0 -20
  875. package/dist/node_modules/zustand/esm/vanilla.js.map +0 -1
  876. package/dist/pages/ActionsPage.d.ts +0 -2
  877. package/dist/pages/ActionsPage.d.ts.map +0 -1
  878. package/dist/pages/AgentDetailsPage.d.ts +0 -5
  879. package/dist/pages/AgentDetailsPage.d.ts.map +0 -1
  880. package/dist/pages/AgentGraphPage.d.ts +0 -9
  881. package/dist/pages/AgentGraphPage.d.ts.map +0 -1
  882. package/dist/pages/AgentsLandingPage.d.ts +0 -12
  883. package/dist/pages/AgentsLandingPage.d.ts.map +0 -1
  884. package/dist/pages/AgentsPage.d.ts +0 -5
  885. package/dist/pages/AgentsPage.d.ts.map +0 -1
  886. package/dist/pages/AnalyticsPage.d.ts +0 -2
  887. package/dist/pages/AnalyticsPage.d.ts.map +0 -1
  888. package/dist/pages/CatalogDetailPage.d.ts +0 -2
  889. package/dist/pages/CatalogDetailPage.d.ts.map +0 -1
  890. package/dist/pages/CatalogDocsPage.d.ts +0 -2
  891. package/dist/pages/CatalogDocsPage.d.ts.map +0 -1
  892. package/dist/pages/CatalogPage.d.ts +0 -2
  893. package/dist/pages/CatalogPage.d.ts.map +0 -1
  894. package/dist/pages/ComponentDetailPage.d.ts +0 -2
  895. package/dist/pages/ComponentDetailPage.d.ts.map +0 -1
  896. package/dist/pages/ComponentDocsPage.d.ts +0 -2
  897. package/dist/pages/ComponentDocsPage.d.ts.map +0 -1
  898. package/dist/pages/ComponentsPage.d.ts +0 -2
  899. package/dist/pages/ComponentsPage.d.ts.map +0 -1
  900. package/dist/pages/GettingStartedPage.d.ts +0 -16
  901. package/dist/pages/GettingStartedPage.d.ts.map +0 -1
  902. package/dist/pages/HealthPage.d.ts +0 -2
  903. package/dist/pages/HealthPage.d.ts.map +0 -1
  904. package/dist/pages/LogsPage.d.ts +0 -2
  905. package/dist/pages/LogsPage.d.ts.map +0 -1
  906. package/dist/pages/NoteDetailsPage.d.ts +0 -2
  907. package/dist/pages/NoteDetailsPage.d.ts.map +0 -1
  908. package/dist/pages/OverviewPage.d.ts +0 -9
  909. package/dist/pages/OverviewPage.d.ts.map +0 -1
  910. package/dist/pages/SessionDetailsPage.d.ts +0 -6
  911. package/dist/pages/SessionDetailsPage.d.ts.map +0 -1
  912. package/dist/pages/SessionsPage.d.ts +0 -6
  913. package/dist/pages/SessionsPage.d.ts.map +0 -1
  914. package/dist/pages/SettingsPage.d.ts +0 -2
  915. package/dist/pages/SettingsPage.d.ts.map +0 -1
  916. package/dist/pages/SharedSessionPage.d.ts +0 -13
  917. package/dist/pages/SharedSessionPage.d.ts.map +0 -1
  918. package/dist/pages/SharedVibeDeckPage.d.ts +0 -8
  919. package/dist/pages/SharedVibeDeckPage.d.ts.map +0 -1
  920. package/dist/pages/TargetDetailsPage.d.ts +0 -13
  921. package/dist/pages/TargetDetailsPage.d.ts.map +0 -1
  922. package/dist/pages/TargetsPage.d.ts +0 -8
  923. package/dist/pages/TargetsPage.d.ts.map +0 -1
  924. package/dist/pages/TemplateDetailPage.d.ts +0 -2
  925. package/dist/pages/TemplateDetailPage.d.ts.map +0 -1
  926. package/dist/pages/TemplatesPage.d.ts +0 -2
  927. package/dist/pages/TemplatesPage.d.ts.map +0 -1
  928. package/dist/pages/TunnelsLandingPage.d.ts +0 -8
  929. package/dist/pages/TunnelsLandingPage.d.ts.map +0 -1
  930. package/dist/pages/VibeAuditPage.d.ts +0 -2
  931. package/dist/pages/VibeAuditPage.d.ts.map +0 -1
  932. package/dist/pages/VibeCalendarPage.d.ts +0 -9
  933. package/dist/pages/VibeCalendarPage.d.ts.map +0 -1
  934. package/dist/pages/VibeDeckPage.d.ts +0 -2
  935. package/dist/pages/VibeDeckPage.d.ts.map +0 -1
  936. package/dist/pages/VibeDetailsPage.d.ts +0 -5
  937. package/dist/pages/VibeDetailsPage.d.ts.map +0 -1
  938. package/dist/pages/VibeDocsPage.d.ts +0 -2
  939. package/dist/pages/VibeDocsPage.d.ts.map +0 -1
  940. package/dist/pages/VibeTaskDetailPage.d.ts +0 -9
  941. package/dist/pages/VibeTaskDetailPage.d.ts.map +0 -1
  942. package/dist/pages/VibesPage.d.ts +0 -5
  943. package/dist/pages/VibesPage.d.ts.map +0 -1
  944. package/dist/pages/WebhooksPage.d.ts +0 -5
  945. package/dist/pages/WebhooksPage.d.ts.map +0 -1
  946. package/dist/pages/ai/AIPage.d.ts +0 -6
  947. package/dist/pages/ai/AIPage.d.ts.map +0 -1
  948. package/dist/pages/ai/AISessionDetailPage.d.ts +0 -5
  949. package/dist/pages/ai/AISessionDetailPage.d.ts.map +0 -1
  950. package/dist/pages/ai/AgentManagerPage.d.ts +0 -9
  951. package/dist/pages/ai/AgentManagerPage.d.ts.map +0 -1
  952. package/dist/pages/index.d.ts +0 -17
  953. package/dist/pages/index.d.ts.map +0 -1
  954. package/dist/pages/tunnels/AuditTab.d.ts +0 -8
  955. package/dist/pages/tunnels/AuditTab.d.ts.map +0 -1
  956. package/dist/pages/tunnels/DomainsTab.d.ts +0 -2
  957. package/dist/pages/tunnels/DomainsTab.d.ts.map +0 -1
  958. package/dist/pages/tunnels/ProvidersTab.d.ts +0 -2
  959. package/dist/pages/tunnels/ProvidersTab.d.ts.map +0 -1
  960. package/dist/pages/tunnels/SessionsTab.d.ts +0 -8
  961. package/dist/pages/tunnels/SessionsTab.d.ts.map +0 -1
  962. package/dist/pages/tunnels/TunnelDetailsPage.d.ts +0 -2
  963. package/dist/pages/tunnels/TunnelDetailsPage.d.ts.map +0 -1
  964. package/dist/pages/tunnels/TunnelsTab.d.ts +0 -2
  965. package/dist/pages/tunnels/TunnelsTab.d.ts.map +0 -1
  966. package/dist/pages/tunnels/UsageTab.d.ts +0 -8
  967. package/dist/pages/tunnels/UsageTab.d.ts.map +0 -1
  968. package/dist/pages/tunnels/tabs/TunnelAuditTab.d.ts +0 -4
  969. package/dist/pages/tunnels/tabs/TunnelAuditTab.d.ts.map +0 -1
  970. package/dist/pages/tunnels/tabs/TunnelCliTab.d.ts +0 -8
  971. package/dist/pages/tunnels/tabs/TunnelCliTab.d.ts.map +0 -1
  972. package/dist/pages/tunnels/tabs/TunnelDomainsTab.d.ts +0 -8
  973. package/dist/pages/tunnels/tabs/TunnelDomainsTab.d.ts.map +0 -1
  974. package/dist/pages/tunnels/tabs/TunnelEndpointsTab.d.ts +0 -8
  975. package/dist/pages/tunnels/tabs/TunnelEndpointsTab.d.ts.map +0 -1
  976. package/dist/pages/tunnels/tabs/TunnelOverviewTab.d.ts +0 -8
  977. package/dist/pages/tunnels/tabs/TunnelOverviewTab.d.ts.map +0 -1
  978. package/dist/pages/tunnels/tabs/TunnelSessionsTab.d.ts +0 -4
  979. package/dist/pages/tunnels/tabs/TunnelSessionsTab.d.ts.map +0 -1
  980. package/dist/pages/tunnels/tabs/TunnelSettingsTab.d.ts +0 -9
  981. package/dist/pages/tunnels/tabs/TunnelSettingsTab.d.ts.map +0 -1
  982. package/dist/pages/tunnels/tabs/TunnelUsageTab.d.ts +0 -4
  983. package/dist/pages/tunnels/tabs/TunnelUsageTab.d.ts.map +0 -1
  984. package/dist/plugin.d.ts +0 -4
  985. package/dist/plugin.d.ts.map +0 -1
  986. package/dist/providers/AgentEventsProvider.d.ts +0 -79
  987. package/dist/providers/AgentEventsProvider.d.ts.map +0 -1
  988. package/dist/providers/VibeControlsProvider.d.ts +0 -29
  989. package/dist/providers/VibeControlsProvider.d.ts.map +0 -1
  990. package/dist/services/aiApi.d.ts +0 -310
  991. package/dist/services/aiApi.d.ts.map +0 -1
  992. package/dist/services/assistantApi.d.ts +0 -71
  993. package/dist/services/assistantApi.d.ts.map +0 -1
  994. package/dist/services/assistantExportService.d.ts +0 -9
  995. package/dist/services/assistantExportService.d.ts.map +0 -1
  996. package/dist/services/schedulerApi.d.ts +0 -18
  997. package/dist/services/schedulerApi.d.ts.map +0 -1
  998. package/dist/shared/hooks/useTr.d.ts +0 -17
  999. package/dist/shared/hooks/useTr.d.ts.map +0 -1
  1000. package/dist/store/agentManagerStore.d.ts +0 -65
  1001. package/dist/store/agentManagerStore.d.ts.map +0 -1
  1002. package/dist/store/assistantStore.d.ts +0 -56
  1003. package/dist/store/assistantStore.d.ts.map +0 -1
  1004. package/dist/store/vibeControlsStore.d.ts +0 -68
  1005. package/dist/store/vibeControlsStore.d.ts.map +0 -1
  1006. package/dist/translations/en.d.ts +0 -2174
  1007. package/dist/translations/en.d.ts.map +0 -1
  1008. package/dist/types/agentManager.d.ts +0 -72
  1009. package/dist/types/agentManager.d.ts.map +0 -1
  1010. package/dist/types/assistant.d.ts +0 -58
  1011. package/dist/types/assistant.d.ts.map +0 -1
  1012. package/dist/types/index.d.ts +0 -134
  1013. package/dist/types/index.d.ts.map +0 -1
  1014. package/dist/utils/agentStatus.d.ts +0 -42
  1015. package/dist/utils/agentStatus.d.ts.map +0 -1
  1016. package/dist/utils/aiSessionNotFound.d.ts +0 -2
  1017. package/dist/utils/aiSessionNotFound.d.ts.map +0 -1
  1018. package/dist/utils/nativeBridge.d.ts +0 -3
  1019. package/dist/utils/nativeBridge.d.ts.map +0 -1
  1020. package/dist/utils/pageContext.d.ts +0 -23
  1021. package/dist/utils/pageContext.d.ts.map +0 -1
  1022. package/dist/utils/quotaUtils.d.ts +0 -8
  1023. package/dist/utils/quotaUtils.d.ts.map +0 -1
  1024. package/dist/utils/relativeTime.d.ts +0 -3
  1025. package/dist/utils/relativeTime.d.ts.map +0 -1
@@ -1,14 +1,15 @@
1
1
  import { useVibeControlsStore as e } from "../../store/vibeControlsStore.js";
2
2
  import t from "../../hooks/useCachedInitialData.js";
3
- import { useCallback as n, useEffect as r, useMemo as i } from "react";
4
- import { Check as a, ChevronDown as o, Server as s } from "lucide-react";
5
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
3
+ import { useActiveAgentProfile as n } from "../../hooks/useActiveAgentProfile.js";
4
+ import { useCallback as r, useEffect as i, useMemo as a } from "react";
5
+ import { Check as o, ChevronDown as s, Server as c } from "lucide-react";
6
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
6
7
  //#region src/components/shared/AgentSelector.tsx
7
- function u(e) {
8
+ function d(e) {
8
9
  return e.isActive ? e.tunnelUrl ? "bg-status-success-text" : "bg-status-warning-text" : "bg-text-placeholder";
9
10
  }
10
- function d({ label: d, className: f, style: p, onChange: m, compact: h = !1 }) {
11
- let { agents: g, loading: _ } = t(), v = e((e) => e.activeAgentId), y = e((e) => e.setActiveAgentId), b = i(() => [...g].sort((e, t) => {
11
+ function f({ label: f, className: p, style: m, onChange: h, compact: g = !1 }) {
12
+ let { agents: _, loading: v } = t(), y = e((e) => e.activeAgentId), b = e((e) => e.setActiveAgentId), x = a(() => [..._].sort((e, t) => {
12
13
  let n = (e) => (e.isActive ? 0 : 2) + +!e.tunnelUrl;
13
14
  return n(e) === n(t) ? e.name.localeCompare(t.name) : n(e) - n(t);
14
15
  }).map((e) => ({
@@ -18,81 +19,100 @@ function d({ label: d, className: f, style: p, onChange: m, compact: h = !1 }) {
18
19
  isActive: e.isActive,
19
20
  tunnelUrl: e.tunnelUrl ?? null,
20
21
  tunnelStatus: e.tunnelStatus ?? null
21
- })), [g]), x = i(() => {
22
- if (v) {
23
- let e = b.find((e) => e.id === v);
22
+ })), [_]), S = a(() => {
23
+ if (y) {
24
+ let e = x.find((e) => e.id === y);
24
25
  if (e) return e;
25
26
  }
26
- return b.find((e) => e.isActive && e.tunnelUrl) ?? b[0] ?? null;
27
- }, [v, b]);
28
- r(() => {
29
- x && v !== x.id && y(x.id);
27
+ return x.find((e) => e.isActive && e.tunnelUrl) ?? x[0] ?? null;
28
+ }, [y, x]);
29
+ i(() => {
30
+ S && y !== S.id && b(S.id);
30
31
  }, [
31
- x,
32
- v,
33
- y
32
+ S,
33
+ y,
34
+ b
34
35
  ]);
35
- let S = n((e) => {
36
+ let C = r((e) => {
36
37
  let t = e.target.value || null;
37
- y(t), m?.(t ? b.find((e) => e.id === t) ?? null : null);
38
+ b(t), h?.(t ? x.find((e) => e.id === t) ?? null : null);
38
39
  }, [
40
+ x,
39
41
  b,
40
- y,
41
- m
42
- ]);
43
- return _ && b.length === 0 ? /* @__PURE__ */ c("div", {
44
- className: f,
45
- style: p,
46
- children: /* @__PURE__ */ l("div", {
42
+ h
43
+ ]), { profiles: w, active: T, setActive: E } = n(S?.id ?? null), D = r((e) => {
44
+ E(e.target.value);
45
+ }, [E]);
46
+ return v && x.length === 0 ? /* @__PURE__ */ l("div", {
47
+ className: p,
48
+ style: m,
49
+ children: /* @__PURE__ */ u("div", {
47
50
  className: "inline-flex items-center gap-2 rounded-md border border-border-default bg-bg-sunken px-3 py-1.5 text-xs text-text-secondary",
48
- children: [/* @__PURE__ */ c(s, { className: "h-3.5 w-3.5" }), "Loading agents…"]
51
+ children: [/* @__PURE__ */ l(c, { className: "h-3.5 w-3.5" }), "Loading agents…"]
49
52
  })
50
- }) : b.length === 0 ? /* @__PURE__ */ c("div", {
51
- className: f,
52
- style: p,
53
- children: /* @__PURE__ */ l("div", {
53
+ }) : x.length === 0 ? /* @__PURE__ */ l("div", {
54
+ className: p,
55
+ style: m,
56
+ children: /* @__PURE__ */ u("div", {
54
57
  className: "inline-flex items-center gap-2 rounded-md border border-border-default bg-bg-sunken px-3 py-1.5 text-xs text-text-secondary",
55
- children: [/* @__PURE__ */ c(s, { className: "h-3.5 w-3.5" }), "No agents yet — add one from the Agents page"]
58
+ children: [/* @__PURE__ */ l(c, { className: "h-3.5 w-3.5" }), "No agents yet — add one from the Agents page"]
56
59
  })
57
- }) : /* @__PURE__ */ l("div", {
58
- className: f,
59
- style: p,
60
- children: [d && !h && /* @__PURE__ */ c("label", {
61
- className: "block text-xs font-medium text-text-secondary mb-1",
62
- children: d
63
- }), /* @__PURE__ */ l("div", {
64
- className: "relative inline-flex items-center",
65
- children: [
66
- x && /* @__PURE__ */ c("span", {
67
- className: `absolute left-2.5 z-10 h-2 w-2 rounded-full ${u(x)}`,
68
- "aria-hidden": !0
69
- }),
70
- /* @__PURE__ */ c("select", {
71
- value: x?.id ?? "",
72
- onChange: S,
73
- className: `appearance-none rounded-md border border-border-default bg-bg-surface pl-7 pr-8 text-text-primary focus:outline-none focus:ring-2 focus:ring-action-primary-bg/40 ${h ? "py-1 text-xs" : "py-2 text-sm"}`,
74
- "data-testid": "agent-selector",
75
- children: b.map((e) => /* @__PURE__ */ l("option", {
76
- value: e.id,
77
- children: [
78
- e.name,
79
- " (",
80
- e.hostname,
81
- ")",
82
- e.isActive ? "" : " · offline"
83
- ]
60
+ }) : /* @__PURE__ */ u("div", {
61
+ className: p,
62
+ style: m,
63
+ children: [
64
+ f && !g && /* @__PURE__ */ l("label", {
65
+ className: "block text-xs font-medium text-text-secondary mb-1",
66
+ children: f
67
+ }),
68
+ /* @__PURE__ */ u("div", {
69
+ className: "relative inline-flex items-center",
70
+ children: [
71
+ S && /* @__PURE__ */ l("span", {
72
+ className: `absolute left-2.5 z-10 h-2 w-2 rounded-full ${d(S)}`,
73
+ "aria-hidden": !0
74
+ }),
75
+ /* @__PURE__ */ l("select", {
76
+ value: S?.id ?? "",
77
+ onChange: C,
78
+ className: `appearance-none rounded-md border border-border-default bg-bg-surface pl-7 pr-8 text-text-primary focus:outline-none focus:ring-2 focus:ring-action-primary-bg/40 ${g ? "py-1 text-xs" : "py-2 text-sm"}`,
79
+ "data-testid": "agent-selector",
80
+ children: x.map((e) => /* @__PURE__ */ u("option", {
81
+ value: e.id,
82
+ children: [
83
+ e.name,
84
+ " (",
85
+ e.hostname,
86
+ ")",
87
+ e.isActive ? "" : " · offline"
88
+ ]
89
+ }, e.id))
90
+ }),
91
+ /* @__PURE__ */ l(s, { className: "pointer-events-none absolute right-2 h-3.5 w-3.5 text-text-secondary" }),
92
+ S?.tunnelUrl && /* @__PURE__ */ l(o, {
93
+ className: "pointer-events-none absolute -right-5 h-3.5 w-3.5 text-status-success-text",
94
+ "aria-label": "Tunnel reachable"
95
+ })
96
+ ]
97
+ }),
98
+ S && w.length > 1 && /* @__PURE__ */ u("div", {
99
+ className: "relative inline-flex items-center ml-2",
100
+ children: [/* @__PURE__ */ l("select", {
101
+ value: T,
102
+ onChange: D,
103
+ className: `appearance-none rounded-md border border-border-default bg-bg-surface pl-3 pr-7 text-text-primary focus:outline-none focus:ring-2 focus:ring-action-primary-bg/40 font-mono ${g ? "py-1 text-xs" : "py-2 text-sm"}`,
104
+ "data-testid": "agent-profile-selector",
105
+ "aria-label": "Active profile",
106
+ children: w.map((e) => /* @__PURE__ */ u("option", {
107
+ value: e.name,
108
+ children: [e.name, e.isDefault ? " (default)" : ""]
84
109
  }, e.id))
85
- }),
86
- /* @__PURE__ */ c(o, { className: "pointer-events-none absolute right-2 h-3.5 w-3.5 text-text-secondary" }),
87
- x?.tunnelUrl && /* @__PURE__ */ c(a, {
88
- className: "pointer-events-none absolute -right-5 h-3.5 w-3.5 text-status-success-text",
89
- "aria-label": "Tunnel reachable"
90
- })
91
- ]
92
- })]
110
+ }), /* @__PURE__ */ l(s, { className: "pointer-events-none absolute right-2 h-3.5 w-3.5 text-text-secondary" })]
111
+ })
112
+ ]
93
113
  });
94
114
  }
95
115
  //#endregion
96
- export { d as AgentSelector };
116
+ export { f as AgentSelector };
97
117
 
98
118
  //# sourceMappingURL=AgentSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentSelector.js","names":[],"sources":["../../../src/components/shared/AgentSelector.tsx"],"sourcesContent":["/**\n * AgentSelector — dropdown of workspace agents with selection persisted to the\n * VibeControls Zustand store. Used on the AI page and anywhere else a user\n * needs to pick \"the active agent\" explicitly rather than rely on auto-pick.\n *\n * The selector shows active agents first, then inactive/disconnected ones,\n * and surfaces the agent's tunnel/heartbeat state via a colored dot so the\n * user knows at a glance which one is actually running.\n */\n\nimport { useCallback, useEffect, useMemo, type CSSProperties } from 'react';\nimport { Check, ChevronDown, Server } from 'lucide-react';\nimport { useVibeControlsStore } from '@/store/vibeControlsStore';\nimport { useCachedInitialData } from '@/hooks/useCachedInitialData';\n\nexport interface AgentOption {\n id: string;\n name: string;\n hostname: string;\n isActive: boolean;\n tunnelUrl?: string | null;\n tunnelStatus?: string | null;\n}\n\ninterface AgentSelectorProps {\n /** Optional label above the selector. */\n label?: string;\n /** Optional className applied to the outer wrapper. */\n className?: string;\n /** Optional inline style applied to the outer wrapper. */\n style?: CSSProperties;\n /** Fired whenever the user changes the selected agent. */\n onChange?: (agent: AgentOption | null) => void;\n /** Render compact (smaller, no label). */\n compact?: boolean;\n}\n\nfunction statusDotColor(agent: AgentOption): string {\n if (!agent.isActive) return 'bg-text-placeholder';\n if (!agent.tunnelUrl) return 'bg-status-warning-text';\n return 'bg-status-success-text';\n}\n\nexport function AgentSelector({\n label,\n className,\n style,\n onChange,\n compact = false,\n}: AgentSelectorProps) {\n const { agents, loading } = useCachedInitialData();\n const activeAgentId = useVibeControlsStore((s) => s.activeAgentId);\n const setActiveAgentId = useVibeControlsStore((s) => s.setActiveAgentId);\n\n const options: AgentOption[] = useMemo(() => {\n const sorted = [...agents].sort((a, b) => {\n // Active + online first; then active but no tunnel; then inactive.\n const score = (x: (typeof agents)[number]) => (x.isActive ? 0 : 2) + (x.tunnelUrl ? 0 : 1);\n if (score(a) !== score(b)) return score(a) - score(b);\n return a.name.localeCompare(b.name);\n });\n return sorted.map((a) => ({\n id: a.id,\n name: a.name,\n hostname: a.hostname,\n isActive: a.isActive,\n tunnelUrl: a.tunnelUrl ?? null,\n tunnelStatus: a.tunnelStatus ?? null,\n }));\n }, [agents]);\n\n const selected = useMemo<AgentOption | null>(() => {\n if (activeAgentId) {\n const match = options.find((a) => a.id === activeAgentId);\n if (match) return match;\n }\n // Auto-pick the first healthy agent the first time.\n return options.find((a) => a.isActive && a.tunnelUrl) ?? options[0] ?? null;\n }, [activeAgentId, options]);\n\n // Commit the auto-picked agent into the store so downstream consumers can\n // read it directly without running the same \"first healthy\" logic.\n useEffect(() => {\n if (selected && activeAgentId !== selected.id) {\n setActiveAgentId(selected.id);\n }\n }, [selected, activeAgentId, setActiveAgentId]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLSelectElement>) => {\n const id = e.target.value || null;\n setActiveAgentId(id);\n onChange?.(id ? (options.find((o) => o.id === id) ?? null) : null);\n },\n [options, setActiveAgentId, onChange]\n );\n\n if (loading && options.length === 0) {\n return (\n <div className={className} style={style}>\n <div className=\"inline-flex items-center gap-2 rounded-md border border-border-default bg-bg-sunken px-3 py-1.5 text-xs text-text-secondary\">\n <Server className=\"h-3.5 w-3.5\" />\n Loading agents…\n </div>\n </div>\n );\n }\n\n if (options.length === 0) {\n return (\n <div className={className} style={style}>\n <div className=\"inline-flex items-center gap-2 rounded-md border border-border-default bg-bg-sunken px-3 py-1.5 text-xs text-text-secondary\">\n <Server className=\"h-3.5 w-3.5\" />\n No agents yet — add one from the Agents page\n </div>\n </div>\n );\n }\n\n return (\n <div className={className} style={style}>\n {label && !compact && (\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">{label}</label>\n )}\n <div className=\"relative inline-flex items-center\">\n {selected && (\n <span\n className={`absolute left-2.5 z-10 h-2 w-2 rounded-full ${statusDotColor(selected)}`}\n aria-hidden\n />\n )}\n <select\n value={selected?.id ?? ''}\n onChange={handleChange}\n className={`appearance-none rounded-md border border-border-default bg-bg-surface pl-7 pr-8 text-text-primary focus:outline-none focus:ring-2 focus:ring-action-primary-bg/40 ${compact ? 'py-1 text-xs' : 'py-2 text-sm'}`}\n data-testid=\"agent-selector\"\n >\n {options.map((agent) => (\n <option key={agent.id} value={agent.id}>\n {agent.name} ({agent.hostname}){agent.isActive ? '' : ' · offline'}\n </option>\n ))}\n </select>\n <ChevronDown className=\"pointer-events-none absolute right-2 h-3.5 w-3.5 text-text-secondary\" />\n {selected?.tunnelUrl && (\n <Check\n className=\"pointer-events-none absolute -right-5 h-3.5 w-3.5 text-status-success-text\"\n aria-label=\"Tunnel reachable\"\n />\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAqCA,SAAS,EAAe,GAA4B;AAGlD,QAFK,EAAM,WACN,EAAM,YACJ,2BADsB,2BADD;;AAK9B,SAAgB,EAAc,EAC5B,UACA,cACA,UACA,aACA,aAAU,MACW;CACrB,IAAM,EAAE,WAAQ,eAAY,GAAsB,EAC5C,IAAgB,GAAsB,MAAM,EAAE,cAAc,EAC5D,IAAmB,GAAsB,MAAM,EAAE,iBAAiB,EAElE,IAAyB,QACd,CAAC,GAAG,EAAO,CAAC,MAAM,GAAG,MAAM;EAExC,IAAM,KAAS,OAAgC,EAAE,WAAW,IAAI,KAAM,IAAE;AAExE,SADI,EAAM,EAAE,KAAK,EAAM,EAAE,GAClB,EAAE,KAAK,cAAc,EAAE,KAAK,GADD,EAAM,EAAE,GAAG,EAAM,EAAE;GAErD,CACY,KAAK,OAAO;EACxB,IAAI,EAAE;EACN,MAAM,EAAE;EACR,UAAU,EAAE;EACZ,UAAU,EAAE;EACZ,WAAW,EAAE,aAAa;EAC1B,cAAc,EAAE,gBAAgB;EACjC,EAAE,EACF,CAAC,EAAO,CAAC,EAEN,IAAW,QAAkC;AACjD,MAAI,GAAe;GACjB,IAAM,IAAQ,EAAQ,MAAM,MAAM,EAAE,OAAO,EAAc;AACzD,OAAI,EAAO,QAAO;;AAGpB,SAAO,EAAQ,MAAM,MAAM,EAAE,YAAY,EAAE,UAAU,IAAI,EAAQ,MAAM;IACtE,CAAC,GAAe,EAAQ,CAAC;AAI5B,SAAgB;AACd,EAAI,KAAY,MAAkB,EAAS,MACzC,EAAiB,EAAS,GAAG;IAE9B;EAAC;EAAU;EAAe;EAAiB,CAAC;CAE/C,IAAM,IAAe,GAClB,MAA4C;EAC3C,IAAM,IAAK,EAAE,OAAO,SAAS;AAE7B,EADA,EAAiB,EAAG,EACpB,IAAW,IAAM,EAAQ,MAAM,MAAM,EAAE,OAAO,EAAG,IAAI,OAAQ,KAAK;IAEpE;EAAC;EAAS;EAAkB;EAAS,CACtC;AAwBD,QAtBI,KAAW,EAAQ,WAAW,IAE9B,kBAAC,OAAD;EAAgB;EAAkB;YAChC,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,eAAgB,CAAA,EAAA,kBAE9B;;EACF,CAAA,GAIN,EAAQ,WAAW,IAEnB,kBAAC,OAAD;EAAgB;EAAkB;YAChC,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,eAAgB,CAAA,EAAA,+CAE9B;;EACF,CAAA,GAKR,kBAAC,OAAD;EAAgB;EAAkB;YAAlC,CACG,KAAS,CAAC,KACT,kBAAC,SAAD;GAAO,WAAU;aAAsD;GAAc,CAAA,EAEvF,kBAAC,OAAD;GAAK,WAAU;aAAf;IACG,KACC,kBAAC,QAAD;KACE,WAAW,+CAA+C,EAAe,EAAS;KAClF,eAAA;KACA,CAAA;IAEJ,kBAAC,UAAD;KACE,OAAO,GAAU,MAAM;KACvB,UAAU;KACV,WAAW,qKAAqK,IAAU,iBAAiB;KAC3M,eAAY;eAEX,EAAQ,KAAK,MACZ,kBAAC,UAAD;MAAuB,OAAO,EAAM;gBAApC;OACG,EAAM;OAAK;OAAG,EAAM;OAAS;OAAE,EAAM,WAAW,KAAK;OAC/C;QAFI,EAAM,GAEV,CACT;KACK,CAAA;IACT,kBAAC,GAAD,EAAa,WAAU,wEAAyE,CAAA;IAC/F,GAAU,aACT,kBAAC,GAAD;KACE,WAAU;KACV,cAAW;KACX,CAAA;IAEA;KACF"}
1
+ {"version":3,"file":"AgentSelector.js","names":[],"sources":["../../../src/components/shared/AgentSelector.tsx"],"sourcesContent":["/**\n * AgentSelector — dropdown of workspace agents with selection persisted to the\n * VibeControls Zustand store. Used on the AI page and anywhere else a user\n * needs to pick \"the active agent\" explicitly rather than rely on auto-pick.\n *\n * The selector shows active agents first, then inactive/disconnected ones,\n * and surfaces the agent's tunnel/heartbeat state via a colored dot so the\n * user knows at a glance which one is actually running.\n */\n\nimport { useCallback, useEffect, useMemo, type CSSProperties } from 'react';\nimport { Check, ChevronDown, Server } from 'lucide-react';\nimport { useVibeControlsStore } from '@/store/vibeControlsStore';\nimport { useCachedInitialData } from '@/hooks/useCachedInitialData';\nimport { useActiveAgentProfile } from '@/hooks/useActiveAgentProfile';\n\nexport interface AgentOption {\n id: string;\n name: string;\n hostname: string;\n isActive: boolean;\n tunnelUrl?: string | null;\n tunnelStatus?: string | null;\n}\n\ninterface AgentSelectorProps {\n /** Optional label above the selector. */\n label?: string;\n /** Optional className applied to the outer wrapper. */\n className?: string;\n /** Optional inline style applied to the outer wrapper. */\n style?: CSSProperties;\n /** Fired whenever the user changes the selected agent. */\n onChange?: (agent: AgentOption | null) => void;\n /** Render compact (smaller, no label). */\n compact?: boolean;\n}\n\nfunction statusDotColor(agent: AgentOption): string {\n if (!agent.isActive) return 'bg-text-placeholder';\n if (!agent.tunnelUrl) return 'bg-status-warning-text';\n return 'bg-status-success-text';\n}\n\nexport function AgentSelector({\n label,\n className,\n style,\n onChange,\n compact = false,\n}: AgentSelectorProps) {\n const { agents, loading } = useCachedInitialData();\n const activeAgentId = useVibeControlsStore((s) => s.activeAgentId);\n const setActiveAgentId = useVibeControlsStore((s) => s.setActiveAgentId);\n\n const options: AgentOption[] = useMemo(() => {\n const sorted = [...agents].sort((a, b) => {\n // Active + online first; then active but no tunnel; then inactive.\n const score = (x: (typeof agents)[number]) => (x.isActive ? 0 : 2) + (x.tunnelUrl ? 0 : 1);\n if (score(a) !== score(b)) return score(a) - score(b);\n return a.name.localeCompare(b.name);\n });\n return sorted.map((a) => ({\n id: a.id,\n name: a.name,\n hostname: a.hostname,\n isActive: a.isActive,\n tunnelUrl: a.tunnelUrl ?? null,\n tunnelStatus: a.tunnelStatus ?? null,\n }));\n }, [agents]);\n\n const selected = useMemo<AgentOption | null>(() => {\n if (activeAgentId) {\n const match = options.find((a) => a.id === activeAgentId);\n if (match) return match;\n }\n // Auto-pick the first healthy agent the first time.\n return options.find((a) => a.isActive && a.tunnelUrl) ?? options[0] ?? null;\n }, [activeAgentId, options]);\n\n // Commit the auto-picked agent into the store so downstream consumers can\n // read it directly without running the same \"first healthy\" logic.\n useEffect(() => {\n if (selected && activeAgentId !== selected.id) {\n setActiveAgentId(selected.id);\n }\n }, [selected, activeAgentId, setActiveAgentId]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLSelectElement>) => {\n const id = e.target.value || null;\n setActiveAgentId(id);\n onChange?.(id ? (options.find((o) => o.id === id) ?? null) : null);\n },\n [options, setActiveAgentId, onChange]\n );\n\n // Profile sub-dropdown — Phase 5B (multi-profile-per-daemon).\n // Resolves the AgentProfile rows for the currently-selected agent and\n // exposes a switcher next to the agent dropdown. Hidden until profiles\n // beyond the implicit \"default\" exist so single-profile setups stay clean.\n const {\n profiles: agentProfiles,\n active: activeProfile,\n setActive: setActiveProfile,\n } = useActiveAgentProfile(selected?.id ?? null);\n const handleProfileChange = useCallback(\n (e: React.ChangeEvent<HTMLSelectElement>) => {\n setActiveProfile(e.target.value);\n },\n [setActiveProfile]\n );\n\n if (loading && options.length === 0) {\n return (\n <div className={className} style={style}>\n <div className=\"inline-flex items-center gap-2 rounded-md border border-border-default bg-bg-sunken px-3 py-1.5 text-xs text-text-secondary\">\n <Server className=\"h-3.5 w-3.5\" />\n Loading agents…\n </div>\n </div>\n );\n }\n\n if (options.length === 0) {\n return (\n <div className={className} style={style}>\n <div className=\"inline-flex items-center gap-2 rounded-md border border-border-default bg-bg-sunken px-3 py-1.5 text-xs text-text-secondary\">\n <Server className=\"h-3.5 w-3.5\" />\n No agents yet — add one from the Agents page\n </div>\n </div>\n );\n }\n\n return (\n <div className={className} style={style}>\n {label && !compact && (\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">{label}</label>\n )}\n <div className=\"relative inline-flex items-center\">\n {selected && (\n <span\n className={`absolute left-2.5 z-10 h-2 w-2 rounded-full ${statusDotColor(selected)}`}\n aria-hidden\n />\n )}\n <select\n value={selected?.id ?? ''}\n onChange={handleChange}\n className={`appearance-none rounded-md border border-border-default bg-bg-surface pl-7 pr-8 text-text-primary focus:outline-none focus:ring-2 focus:ring-action-primary-bg/40 ${compact ? 'py-1 text-xs' : 'py-2 text-sm'}`}\n data-testid=\"agent-selector\"\n >\n {options.map((agent) => (\n <option key={agent.id} value={agent.id}>\n {agent.name} ({agent.hostname}){agent.isActive ? '' : ' · offline'}\n </option>\n ))}\n </select>\n <ChevronDown className=\"pointer-events-none absolute right-2 h-3.5 w-3.5 text-text-secondary\" />\n {selected?.tunnelUrl && (\n <Check\n className=\"pointer-events-none absolute -right-5 h-3.5 w-3.5 text-status-success-text\"\n aria-label=\"Tunnel reachable\"\n />\n )}\n </div>\n {selected && agentProfiles.length > 1 && (\n <div className=\"relative inline-flex items-center ml-2\">\n <select\n value={activeProfile}\n onChange={handleProfileChange}\n className={`appearance-none rounded-md border border-border-default bg-bg-surface pl-3 pr-7 text-text-primary focus:outline-none focus:ring-2 focus:ring-action-primary-bg/40 font-mono ${compact ? 'py-1 text-xs' : 'py-2 text-sm'}`}\n data-testid=\"agent-profile-selector\"\n aria-label=\"Active profile\"\n >\n {agentProfiles.map((p) => (\n <option key={p.id} value={p.name}>\n {p.name}\n {p.isDefault ? ' (default)' : ''}\n </option>\n ))}\n </select>\n <ChevronDown className=\"pointer-events-none absolute right-2 h-3.5 w-3.5 text-text-secondary\" />\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,33 +1,36 @@
1
1
  import { useTr as e } from "../../shared/hooks/useTr.js";
2
2
  import { useVibeNavigate as t } from "../../providers/VibeControlsProvider.js";
3
3
  import { InstallTabs as n } from "./InstallTabs.js";
4
- import { useCallback as r, useState as i } from "react";
5
- import { Check as a, Copy as o, Download as s, ExternalLink as c, Terminal as l, X as u } from "lucide-react";
6
- import { getProfileScopedKey as d } from "@burdenoff/fe-libs/shared/utils";
7
- import { AnimatePresence as f, motion as p } from "framer-motion";
8
- import { jsx as m, jsxs as h } from "react/jsx-runtime";
4
+ import { useCallback as r, useMemo as i, useState as a } from "react";
5
+ import { Check as o, Copy as s, Download as c, ExternalLink as l, Terminal as u, X as d } from "lucide-react";
6
+ import { getProfileScopedKey as f } from "@burdenoff/fe-libs/shared/utils";
7
+ import { AnimatePresence as p, motion as m } from "framer-motion";
8
+ import { jsx as h, jsxs as g } from "react/jsx-runtime";
9
9
  //#region src/components/shared/AgentSetupBanner.tsx
10
- var g = "curl -fsSL https://vibecontrols.local.burdenoff.com/install | bash", _ = "https://www.npmjs.com/package/@vibecontrols/agent";
11
- function v({ variant: v = "compact", dismissible: y = !0, dismissKey: b = "vibecontrols-setup-banner-dismissed", className: x = "" }) {
12
- let S = e(), C = t(), [w, T] = i(!1), [E, D] = i(() => {
10
+ var _ = "https://www.npmjs.com/package/@vibecontrols/agent";
11
+ function v() {
12
+ return typeof window > "u" ? "curl -fsSL https://app.vibecontrols.com/install | bash" : `curl -fsSL https://${window.__VIBECONTROLS_HOST__ ?? window.location.host}/install | bash`;
13
+ }
14
+ function y({ variant: y = "compact", dismissible: b = !0, dismissKey: x = "vibecontrols-setup-banner-dismissed", className: S = "" }) {
15
+ let C = e(), w = t(), T = i(() => v(), []), [E, D] = a(!1), [O, k] = a(() => {
13
16
  try {
14
- return localStorage.getItem(d(b)) === "true";
17
+ return localStorage.getItem(f(x)) === "true";
15
18
  } catch {
16
19
  return !1;
17
20
  }
18
- }), O = r(async (e) => {
21
+ }), A = r(async (e) => {
19
22
  try {
20
- await navigator.clipboard.writeText(e), T(!0), setTimeout(() => T(!1), 2e3);
23
+ await navigator.clipboard.writeText(e), D(!0), setTimeout(() => D(!1), 2e3);
21
24
  } catch {
22
25
  let t = document.createElement("textarea");
23
- t.value = e, document.body.appendChild(t), t.select(), document.execCommand("copy"), document.body.removeChild(t), T(!0), setTimeout(() => T(!1), 2e3);
26
+ t.value = e, document.body.appendChild(t), t.select(), document.execCommand("copy"), document.body.removeChild(t), D(!0), setTimeout(() => D(!1), 2e3);
24
27
  }
25
- }, []), k = r(() => {
26
- D(!0);
28
+ }, []), j = r(() => {
29
+ k(!0);
27
30
  try {
28
- localStorage.setItem(d(b), "true");
31
+ localStorage.setItem(f(x), "true");
29
32
  } catch {}
30
- }, [b]), A = {
33
+ }, [x]), M = {
31
34
  duration: .3,
32
35
  ease: [
33
36
  .4,
@@ -36,7 +39,7 @@ function v({ variant: v = "compact", dismissible: y = !0, dismissKey: b = "vibec
36
39
  1
37
40
  ]
38
41
  };
39
- return v === "compact" ? /* @__PURE__ */ m(f, { children: !E && /* @__PURE__ */ h(p.div, {
42
+ return y === "compact" ? /* @__PURE__ */ h(p, { children: !O && /* @__PURE__ */ g(m.div, {
40
43
  initial: {
41
44
  opacity: 0,
42
45
  y: -8,
@@ -52,46 +55,46 @@ function v({ variant: v = "compact", dismissible: y = !0, dismissKey: b = "vibec
52
55
  y: -8,
53
56
  height: 0
54
57
  },
55
- transition: A,
56
- className: `relative flex items-center gap-3 px-4 py-3 bg-accent-purple-subtle border border-accent-purple/20 rounded-lg ${x}`,
58
+ transition: M,
59
+ className: `relative flex items-center gap-3 px-4 py-3 bg-accent-purple-subtle border border-accent-purple/20 rounded-lg ${S}`,
57
60
  children: [
58
- /* @__PURE__ */ m(s, { className: "w-5 h-5 text-accent-purple flex-shrink-0" }),
59
- /* @__PURE__ */ h("div", {
61
+ /* @__PURE__ */ h(c, { className: "w-5 h-5 text-accent-purple flex-shrink-0" }),
62
+ /* @__PURE__ */ g("div", {
60
63
  className: "flex-1 min-w-0 flex flex-wrap items-center gap-x-3 gap-y-1",
61
64
  children: [
62
- /* @__PURE__ */ m("span", {
65
+ /* @__PURE__ */ h("span", {
63
66
  className: "text-sm font-medium text-text-primary",
64
- children: S("vibecontrols.shared.agentSetupBanner.installPrompt", "Install the VibeControls Agent CLI to get started")
67
+ children: C("vibecontrols.shared.agentSetupBanner.installPrompt", "Install the VibeControls Agent CLI to get started")
65
68
  }),
66
- /* @__PURE__ */ h("code", {
69
+ /* @__PURE__ */ g("code", {
67
70
  className: "inline-flex items-center gap-1.5 px-2.5 py-1 bg-bg-sunken border border-border-default rounded text-xs font-mono text-text-primary cursor-pointer hover:bg-bg-elevated transition-colors",
68
- onClick: () => O(g),
69
- title: S("vibecontrols.shared.agentSetupBanner.clickToCopy", "Click to copy"),
71
+ onClick: () => A(T),
72
+ title: C("vibecontrols.shared.agentSetupBanner.clickToCopy", "Click to copy"),
70
73
  children: [
71
- /* @__PURE__ */ m(l, { className: "w-3 h-3" }),
72
- g,
73
- w ? /* @__PURE__ */ m(a, { className: "w-3 h-3 text-status-success-text" }) : /* @__PURE__ */ m(o, { className: "w-3 h-3 text-text-muted" })
74
+ /* @__PURE__ */ h(u, { className: "w-3 h-3" }),
75
+ T,
76
+ E ? /* @__PURE__ */ h(o, { className: "w-3 h-3 text-status-success-text" }) : /* @__PURE__ */ h(s, { className: "w-3 h-3 text-text-muted" })
74
77
  ]
75
78
  }),
76
- /* @__PURE__ */ h("button", {
77
- onClick: () => C("/getting-started"),
79
+ /* @__PURE__ */ g("button", {
80
+ onClick: () => w("/getting-started"),
78
81
  className: "text-sm text-accent-purple hover:underline flex items-center gap-1",
79
82
  children: [
80
- S("vibecontrols.shared.agentSetupBanner.setupGuide", "Setup guide"),
83
+ C("vibecontrols.shared.agentSetupBanner.setupGuide", "Setup guide"),
81
84
  " ",
82
- /* @__PURE__ */ m(c, { className: "w-3 h-3" })
85
+ /* @__PURE__ */ h(l, { className: "w-3 h-3" })
83
86
  ]
84
87
  })
85
88
  ]
86
89
  }),
87
- y && /* @__PURE__ */ m("button", {
88
- onClick: k,
90
+ b && /* @__PURE__ */ h("button", {
91
+ onClick: j,
89
92
  className: "flex-shrink-0 p-1 text-text-muted hover:text-text-secondary rounded transition-colors",
90
- title: S("vibecontrols.shared.agentSetupBanner.dismiss", "Dismiss"),
91
- children: /* @__PURE__ */ m(u, { className: "w-4 h-4" })
93
+ title: C("vibecontrols.shared.agentSetupBanner.dismiss", "Dismiss"),
94
+ children: /* @__PURE__ */ h(d, { className: "w-4 h-4" })
92
95
  })
93
96
  ]
94
- }) }) : /* @__PURE__ */ m(f, { children: !E && /* @__PURE__ */ h(p.div, {
97
+ }) }) : /* @__PURE__ */ h(p, { children: !O && /* @__PURE__ */ g(m.div, {
95
98
  initial: {
96
99
  opacity: 0,
97
100
  y: -8,
@@ -107,45 +110,45 @@ function v({ variant: v = "compact", dismissible: y = !0, dismissKey: b = "vibec
107
110
  y: -8,
108
111
  height: 0
109
112
  },
110
- transition: A,
111
- className: `relative border border-accent-purple/20 bg-accent-purple-subtle rounded-lg overflow-hidden ${x}`,
112
- children: [y && /* @__PURE__ */ m("button", {
113
- onClick: k,
113
+ transition: M,
114
+ className: `relative border border-accent-purple/20 bg-accent-purple-subtle rounded-lg overflow-hidden ${S}`,
115
+ children: [b && /* @__PURE__ */ h("button", {
116
+ onClick: j,
114
117
  className: "absolute top-3 right-3 p-1 text-text-muted hover:text-text-secondary rounded transition-colors z-10",
115
- title: S("vibecontrols.shared.agentSetupBanner.dismiss", "Dismiss"),
116
- children: /* @__PURE__ */ m(u, { className: "w-4 h-4" })
117
- }), /* @__PURE__ */ h("div", {
118
+ title: C("vibecontrols.shared.agentSetupBanner.dismiss", "Dismiss"),
119
+ children: /* @__PURE__ */ h(d, { className: "w-4 h-4" })
120
+ }), /* @__PURE__ */ g("div", {
118
121
  className: "p-5 sm:p-6",
119
122
  children: [
120
- /* @__PURE__ */ h("div", {
123
+ /* @__PURE__ */ g("div", {
121
124
  className: "flex items-start gap-3 mb-4",
122
- children: [/* @__PURE__ */ m("div", {
125
+ children: [/* @__PURE__ */ h("div", {
123
126
  className: "flex-shrink-0 w-10 h-10 rounded-lg bg-accent-purple/10 flex items-center justify-center",
124
- children: /* @__PURE__ */ m(s, { className: "w-5 h-5 text-accent-purple" })
125
- }), /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("h3", {
127
+ children: /* @__PURE__ */ h(c, { className: "w-5 h-5 text-accent-purple" })
128
+ }), /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("h3", {
126
129
  className: "text-base font-semibold text-text-primary",
127
- children: S("vibecontrols.shared.agentSetupBanner.title", "Get Started with VibeControls Agent")
128
- }), /* @__PURE__ */ m("p", {
130
+ children: C("vibecontrols.shared.agentSetupBanner.title", "Get Started with VibeControls Agent")
131
+ }), /* @__PURE__ */ h("p", {
129
132
  className: "text-sm text-text-secondary mt-0.5",
130
- children: S("vibecontrols.shared.agentSetupBanner.description", "Install the CLI on any machine you want to manage. The only prerequisite is bun — the curl script installs it for you.")
133
+ children: C("vibecontrols.shared.agentSetupBanner.description", "Install the CLI on any machine you want to manage. The only prerequisite is bun — the curl script installs it for you.")
131
134
  })] })]
132
135
  }),
133
- /* @__PURE__ */ m("div", {
136
+ /* @__PURE__ */ h("div", {
134
137
  className: "ml-0 sm:ml-13",
135
- children: /* @__PURE__ */ m(n, { compact: !0 })
138
+ children: /* @__PURE__ */ h(n, { compact: !0 })
136
139
  }),
137
- /* @__PURE__ */ h("div", {
140
+ /* @__PURE__ */ g("div", {
138
141
  className: "flex flex-wrap items-center gap-3 mt-5 ml-0 sm:ml-13",
139
- children: [/* @__PURE__ */ h("button", {
140
- onClick: () => C("/getting-started"),
142
+ children: [/* @__PURE__ */ g("button", {
143
+ onClick: () => w("/getting-started"),
141
144
  className: "inline-flex items-center gap-2 px-4 py-2 text-sm bg-accent-purple text-text-inverse rounded-md hover:bg-accent-purple/90 transition-colors",
142
- children: [S("vibecontrols.shared.agentSetupBanner.viewFullSetupGuide", "View full setup guide"), /* @__PURE__ */ m(c, { className: "w-3.5 h-3.5" })]
143
- }), /* @__PURE__ */ h("a", {
145
+ children: [C("vibecontrols.shared.agentSetupBanner.viewFullSetupGuide", "View full setup guide"), /* @__PURE__ */ h(l, { className: "w-3.5 h-3.5" })]
146
+ }), /* @__PURE__ */ g("a", {
144
147
  href: _,
145
148
  target: "_blank",
146
149
  rel: "noopener noreferrer",
147
150
  className: "inline-flex items-center gap-2 px-4 py-2 text-sm border border-border-default text-text-primary rounded-md hover:bg-bg-sunken transition-colors",
148
- children: [S("vibecontrols.shared.agentSetupBanner.npmPackage", "npm package"), /* @__PURE__ */ m(c, { className: "w-3.5 h-3.5" })]
151
+ children: [C("vibecontrols.shared.agentSetupBanner.npmPackage", "npm package"), /* @__PURE__ */ h(l, { className: "w-3.5 h-3.5" })]
149
152
  })]
150
153
  })
151
154
  ]
@@ -153,6 +156,6 @@ function v({ variant: v = "compact", dismissible: y = !0, dismissKey: b = "vibec
153
156
  }) });
154
157
  }
155
158
  //#endregion
156
- export { v as AgentSetupBanner };
159
+ export { y as AgentSetupBanner };
157
160
 
158
161
  //# sourceMappingURL=AgentSetupBanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentSetupBanner.js","names":[],"sources":["../../../src/components/shared/AgentSetupBanner.tsx"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { Download, Copy, Check, ExternalLink, X, Terminal } from 'lucide-react';\nimport { useVibeNavigate } from '@/providers/VibeControlsProvider';\nimport { getProfileScopedKey } from '@burdenoff/fe-libs/shared/utils';\nimport { useTr } from '../../shared/hooks/useTr';\nimport { InstallTabs } from './InstallTabs';\n\ninterface AgentSetupBannerProps {\n /** Compact mode shows a single-line banner; full mode shows a multi-step card */\n variant?: 'compact' | 'full';\n /** Allow the banner to be dismissed */\n dismissible?: boolean;\n /** Storage key for dismissed state */\n dismissKey?: string;\n /** Additional CSS class names */\n className?: string;\n}\n\nconst QUICK_INSTALL = 'curl -fsSL https://vibecontrols.local.burdenoff.com/install | bash';\nconst NPM_URL = 'https://www.npmjs.com/package/@vibecontrols/agent';\n\n/**\n * Reusable banner/card prompting users to install the VibeControls Agent CLI.\n * Used across multiple pages (Overview, Agents, Sessions, Tunnels, SSH, etc.)\n *\n * The full variant mirrors the Getting Started page's tabbed install widget\n * (`InstallTabs`) so users see a single consistent install flow wherever\n * the banner shows up.\n */\nexport function AgentSetupBanner({\n variant = 'compact',\n dismissible = true,\n dismissKey = 'vibecontrols-setup-banner-dismissed',\n className = '',\n}: AgentSetupBannerProps) {\n const tr = useTr();\n const handleNavigate = useVibeNavigate();\n const [copied, setCopied] = useState(false);\n const [dismissed, setDismissed] = useState(() => {\n try {\n return localStorage.getItem(getProfileScopedKey(dismissKey)) === 'true';\n } catch {\n return false;\n }\n });\n\n const handleCopy = useCallback(async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n } catch {\n const el = document.createElement('textarea');\n el.value = text;\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n }, []);\n\n const handleDismiss = useCallback(() => {\n setDismissed(true);\n try {\n localStorage.setItem(getProfileScopedKey(dismissKey), 'true');\n } catch {\n // ignore\n }\n }, [dismissKey]);\n\n const bannerTransition = { duration: 0.3, ease: [0.4, 0, 0.2, 1] as const };\n\n // ─── Compact variant: single-line info banner ─────────────────────────\n if (variant === 'compact') {\n return (\n <AnimatePresence>\n {!dismissed && (\n <motion.div\n initial={{ opacity: 0, y: -8, height: 0 }}\n animate={{ opacity: 1, y: 0, height: 'auto' }}\n exit={{ opacity: 0, y: -8, height: 0 }}\n transition={bannerTransition}\n className={`relative flex items-center gap-3 px-4 py-3 bg-accent-purple-subtle border border-accent-purple/20 rounded-lg ${className}`}\n >\n <Download className=\"w-5 h-5 text-accent-purple flex-shrink-0\" />\n <div className=\"flex-1 min-w-0 flex flex-wrap items-center gap-x-3 gap-y-1\">\n <span className=\"text-sm font-medium text-text-primary\">\n {tr(\n 'vibecontrols.shared.agentSetupBanner.installPrompt',\n 'Install the VibeControls Agent CLI to get started'\n )}\n </span>\n <code\n className=\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-bg-sunken border border-border-default rounded text-xs font-mono text-text-primary cursor-pointer hover:bg-bg-elevated transition-colors\"\n onClick={() => handleCopy(QUICK_INSTALL)}\n title={tr('vibecontrols.shared.agentSetupBanner.clickToCopy', 'Click to copy')}\n >\n <Terminal className=\"w-3 h-3\" />\n {QUICK_INSTALL}\n {copied ? (\n <Check className=\"w-3 h-3 text-status-success-text\" />\n ) : (\n <Copy className=\"w-3 h-3 text-text-muted\" />\n )}\n </code>\n <button\n onClick={() => handleNavigate('/getting-started')}\n className=\"text-sm text-accent-purple hover:underline flex items-center gap-1\"\n >\n {tr('vibecontrols.shared.agentSetupBanner.setupGuide', 'Setup guide')}{' '}\n <ExternalLink className=\"w-3 h-3\" />\n </button>\n </div>\n {dismissible && (\n <button\n onClick={handleDismiss}\n className=\"flex-shrink-0 p-1 text-text-muted hover:text-text-secondary rounded transition-colors\"\n title={tr('vibecontrols.shared.agentSetupBanner.dismiss', 'Dismiss')}\n >\n <X className=\"w-4 h-4\" />\n </button>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n );\n }\n\n // ─── Full variant: tabbed install card (mirrors Getting Started) ──────\n return (\n <AnimatePresence>\n {!dismissed && (\n <motion.div\n initial={{ opacity: 0, y: -8, height: 0 }}\n animate={{ opacity: 1, y: 0, height: 'auto' }}\n exit={{ opacity: 0, y: -8, height: 0 }}\n transition={bannerTransition}\n className={`relative border border-accent-purple/20 bg-accent-purple-subtle rounded-lg overflow-hidden ${className}`}\n >\n {dismissible && (\n <button\n onClick={handleDismiss}\n className=\"absolute top-3 right-3 p-1 text-text-muted hover:text-text-secondary rounded transition-colors z-10\"\n title={tr('vibecontrols.shared.agentSetupBanner.dismiss', 'Dismiss')}\n >\n <X className=\"w-4 h-4\" />\n </button>\n )}\n\n <div className=\"p-5 sm:p-6\">\n <div className=\"flex items-start gap-3 mb-4\">\n <div className=\"flex-shrink-0 w-10 h-10 rounded-lg bg-accent-purple/10 flex items-center justify-center\">\n <Download className=\"w-5 h-5 text-accent-purple\" />\n </div>\n <div>\n <h3 className=\"text-base font-semibold text-text-primary\">\n {tr(\n 'vibecontrols.shared.agentSetupBanner.title',\n 'Get Started with VibeControls Agent'\n )}\n </h3>\n <p className=\"text-sm text-text-secondary mt-0.5\">\n {tr(\n 'vibecontrols.shared.agentSetupBanner.description',\n 'Install the CLI on any machine you want to manage. The only prerequisite is bun — the curl script installs it for you.'\n )}\n </p>\n </div>\n </div>\n\n {/* Tabbed install widget mirrors the Getting Started page */}\n <div className=\"ml-0 sm:ml-13\">\n <InstallTabs compact />\n </div>\n\n {/* Actions */}\n <div className=\"flex flex-wrap items-center gap-3 mt-5 ml-0 sm:ml-13\">\n <button\n onClick={() => handleNavigate('/getting-started')}\n className=\"inline-flex items-center gap-2 px-4 py-2 text-sm bg-accent-purple text-text-inverse rounded-md hover:bg-accent-purple/90 transition-colors\"\n >\n {tr(\n 'vibecontrols.shared.agentSetupBanner.viewFullSetupGuide',\n 'View full setup guide'\n )}\n <ExternalLink className=\"w-3.5 h-3.5\" />\n </button>\n <a\n href={NPM_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-2 px-4 py-2 text-sm border border-border-default text-text-primary rounded-md hover:bg-bg-sunken transition-colors\"\n >\n {tr('vibecontrols.shared.agentSetupBanner.npmPackage', 'npm package')}\n <ExternalLink className=\"w-3.5 h-3.5\" />\n </a>\n </div>\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AgentSetupBanner.js","names":[],"sources":["../../../src/components/shared/AgentSetupBanner.tsx"],"sourcesContent":["import { useState, useCallback, useMemo } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { Download, Copy, Check, ExternalLink, X, Terminal } from 'lucide-react';\nimport { useVibeNavigate } from '@/providers/VibeControlsProvider';\nimport { getProfileScopedKey } from '@burdenoff/fe-libs/shared/utils';\nimport { useTr } from '../../shared/hooks/useTr';\nimport { InstallTabs } from './InstallTabs';\n\ninterface AgentSetupBannerProps {\n /** Compact mode shows a single-line banner; full mode shows a multi-step card */\n variant?: 'compact' | 'full';\n /** Allow the banner to be dismissed */\n dismissible?: boolean;\n /** Storage key for dismissed state */\n dismissKey?: string;\n /** Additional CSS class names */\n className?: string;\n}\n\nconst NPM_URL = 'https://www.npmjs.com/package/@vibecontrols/agent';\n\n/**\n * Build the quick-install one-liner using the live host so the command shown\n * to the user reflects the environment they are actually on (local dev,\n * alpha, prod). InstallTabs uses the same `resolveHost()` shape — keep them\n * aligned by reading from `window.__VIBECONTROLS_HOST__` first, then\n * falling back to `window.location.host`.\n */\nfunction getQuickInstallCommand(): string {\n if (typeof window === 'undefined') {\n return 'curl -fsSL https://app.vibecontrols.com/install | bash';\n }\n const injected = (window as { __VIBECONTROLS_HOST__?: string }).__VIBECONTROLS_HOST__;\n const host = injected ?? window.location.host;\n return `curl -fsSL https://${host}/install | bash`;\n}\n\n/**\n * Reusable banner/card prompting users to install the VibeControls Agent CLI.\n * Used across multiple pages (Overview, Agents, Sessions, Tunnels, SSH, etc.)\n *\n * The full variant mirrors the Getting Started page's tabbed install widget\n * (`InstallTabs`) so users see a single consistent install flow wherever\n * the banner shows up.\n */\nexport function AgentSetupBanner({\n variant = 'compact',\n dismissible = true,\n dismissKey = 'vibecontrols-setup-banner-dismissed',\n className = '',\n}: AgentSetupBannerProps) {\n const tr = useTr();\n const handleNavigate = useVibeNavigate();\n const quickInstall = useMemo(() => getQuickInstallCommand(), []);\n const [copied, setCopied] = useState(false);\n const [dismissed, setDismissed] = useState(() => {\n try {\n return localStorage.getItem(getProfileScopedKey(dismissKey)) === 'true';\n } catch {\n return false;\n }\n });\n\n const handleCopy = useCallback(async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n } catch {\n const el = document.createElement('textarea');\n el.value = text;\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n }, []);\n\n const handleDismiss = useCallback(() => {\n setDismissed(true);\n try {\n localStorage.setItem(getProfileScopedKey(dismissKey), 'true');\n } catch {\n // ignore\n }\n }, [dismissKey]);\n\n const bannerTransition = { duration: 0.3, ease: [0.4, 0, 0.2, 1] as const };\n\n // ─── Compact variant: single-line info banner ─────────────────────────\n if (variant === 'compact') {\n return (\n <AnimatePresence>\n {!dismissed && (\n <motion.div\n initial={{ opacity: 0, y: -8, height: 0 }}\n animate={{ opacity: 1, y: 0, height: 'auto' }}\n exit={{ opacity: 0, y: -8, height: 0 }}\n transition={bannerTransition}\n className={`relative flex items-center gap-3 px-4 py-3 bg-accent-purple-subtle border border-accent-purple/20 rounded-lg ${className}`}\n >\n <Download className=\"w-5 h-5 text-accent-purple flex-shrink-0\" />\n <div className=\"flex-1 min-w-0 flex flex-wrap items-center gap-x-3 gap-y-1\">\n <span className=\"text-sm font-medium text-text-primary\">\n {tr(\n 'vibecontrols.shared.agentSetupBanner.installPrompt',\n 'Install the VibeControls Agent CLI to get started'\n )}\n </span>\n <code\n className=\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-bg-sunken border border-border-default rounded text-xs font-mono text-text-primary cursor-pointer hover:bg-bg-elevated transition-colors\"\n onClick={() => handleCopy(quickInstall)}\n title={tr('vibecontrols.shared.agentSetupBanner.clickToCopy', 'Click to copy')}\n >\n <Terminal className=\"w-3 h-3\" />\n {quickInstall}\n {copied ? (\n <Check className=\"w-3 h-3 text-status-success-text\" />\n ) : (\n <Copy className=\"w-3 h-3 text-text-muted\" />\n )}\n </code>\n <button\n onClick={() => handleNavigate('/getting-started')}\n className=\"text-sm text-accent-purple hover:underline flex items-center gap-1\"\n >\n {tr('vibecontrols.shared.agentSetupBanner.setupGuide', 'Setup guide')}{' '}\n <ExternalLink className=\"w-3 h-3\" />\n </button>\n </div>\n {dismissible && (\n <button\n onClick={handleDismiss}\n className=\"flex-shrink-0 p-1 text-text-muted hover:text-text-secondary rounded transition-colors\"\n title={tr('vibecontrols.shared.agentSetupBanner.dismiss', 'Dismiss')}\n >\n <X className=\"w-4 h-4\" />\n </button>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n );\n }\n\n // ─── Full variant: tabbed install card (mirrors Getting Started) ──────\n return (\n <AnimatePresence>\n {!dismissed && (\n <motion.div\n initial={{ opacity: 0, y: -8, height: 0 }}\n animate={{ opacity: 1, y: 0, height: 'auto' }}\n exit={{ opacity: 0, y: -8, height: 0 }}\n transition={bannerTransition}\n className={`relative border border-accent-purple/20 bg-accent-purple-subtle rounded-lg overflow-hidden ${className}`}\n >\n {dismissible && (\n <button\n onClick={handleDismiss}\n className=\"absolute top-3 right-3 p-1 text-text-muted hover:text-text-secondary rounded transition-colors z-10\"\n title={tr('vibecontrols.shared.agentSetupBanner.dismiss', 'Dismiss')}\n >\n <X className=\"w-4 h-4\" />\n </button>\n )}\n\n <div className=\"p-5 sm:p-6\">\n <div className=\"flex items-start gap-3 mb-4\">\n <div className=\"flex-shrink-0 w-10 h-10 rounded-lg bg-accent-purple/10 flex items-center justify-center\">\n <Download className=\"w-5 h-5 text-accent-purple\" />\n </div>\n <div>\n <h3 className=\"text-base font-semibold text-text-primary\">\n {tr(\n 'vibecontrols.shared.agentSetupBanner.title',\n 'Get Started with VibeControls Agent'\n )}\n </h3>\n <p className=\"text-sm text-text-secondary mt-0.5\">\n {tr(\n 'vibecontrols.shared.agentSetupBanner.description',\n 'Install the CLI on any machine you want to manage. The only prerequisite is bun — the curl script installs it for you.'\n )}\n </p>\n </div>\n </div>\n\n {/* Tabbed install widget mirrors the Getting Started page */}\n <div className=\"ml-0 sm:ml-13\">\n <InstallTabs compact />\n </div>\n\n {/* Actions */}\n <div className=\"flex flex-wrap items-center gap-3 mt-5 ml-0 sm:ml-13\">\n <button\n onClick={() => handleNavigate('/getting-started')}\n className=\"inline-flex items-center gap-2 px-4 py-2 text-sm bg-accent-purple text-text-inverse rounded-md hover:bg-accent-purple/90 transition-colors\"\n >\n {tr(\n 'vibecontrols.shared.agentSetupBanner.viewFullSetupGuide',\n 'View full setup guide'\n )}\n <ExternalLink className=\"w-3.5 h-3.5\" />\n </button>\n <a\n href={NPM_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-2 px-4 py-2 text-sm border border-border-default text-text-primary rounded-md hover:bg-bg-sunken transition-colors\"\n >\n {tr('vibecontrols.shared.agentSetupBanner.npmPackage', 'npm package')}\n <ExternalLink className=\"w-3.5 h-3.5\" />\n </a>\n </div>\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"expandOccurrences.js","names":[],"sources":["../../../src/components/vibecalendar/expandOccurrences.ts"],"sourcesContent":["/**\n * Expand a ScheduledJob into a list of calendar occurrences that fall\n * within the provided date range. Used by VibeCalendarPage to render\n * jobs from the scheduler (and calendar-linked tasks) as events on the\n * month/week/day/agenda grids.\n *\n * Scope-limit: CRON and RRULE jobs only emit their `nextExecutionAt`\n * as a single occurrence because full client-side cron/rrule expansion\n * is out of scope. A follow-up can add a server-side\n * `scheduledJobsInRange` query that returns pre-expanded occurrences.\n */\n\nimport type { VibeCalendarTask, VibeCalendarExecution, CalendarOccurrence } from './types';\n\nexport interface SchedulerJobLike {\n id: string;\n name?: string | null;\n description?: string | null;\n status: string;\n scheduleType: string;\n cronExpression?: string | null;\n rrule?: string | null;\n interval?: unknown;\n scheduledAt?: string | null;\n nextExecutionAt?: string | null;\n lastExecutionAt?: string | null;\n actionId?: string | null;\n timezone?: string | null;\n startDate?: string | null;\n endDate?: string | null;\n}\n\nconst INTERVAL_UNIT_MS: Record<string, number> = {\n SECONDS: 1000,\n MINUTES: 60 * 1000,\n HOURS: 60 * 60 * 1000,\n DAYS: 24 * 60 * 60 * 1000,\n WEEKS: 7 * 24 * 60 * 60 * 1000,\n};\n\n/**\n * Read the interval JSON on a ScheduledJob (stored as `{ value, unit }`\n * by the backend) and return a step in milliseconds, or null if the\n * field is missing or malformed.\n */\nfunction intervalToMs(interval: unknown): number | null {\n if (!interval || typeof interval !== 'object') return null;\n const obj = interval as { value?: unknown; unit?: unknown };\n const value = typeof obj.value === 'number' ? obj.value : Number(obj.value);\n const unit = typeof obj.unit === 'string' ? obj.unit.toUpperCase() : '';\n const unitMs = INTERVAL_UNIT_MS[unit];\n if (!unitMs || !Number.isFinite(value) || value <= 0) return null;\n return value * unitMs;\n}\n\n/**\n * Build a minimal VibeCalendarTask shape from a ScheduledJob so the\n * existing calendar view components (VibeCalMonthView, VibeTaskBlock,\n * etc.) can render it without any component changes. Unused task\n * fields are filled with safe defaults.\n */\nexport function jobToVibeCalendarTask(job: SchedulerJobLike): VibeCalendarTask {\n const fallback = job.nextExecutionAt ?? job.scheduledAt ?? new Date().toISOString();\n return {\n id: job.id,\n title: job.name || 'Untitled job',\n description: job.description ?? null,\n calendarId: '',\n calendarEventId: '',\n agentId: '',\n taskConfig: {\n taskType: 'ACTION',\n command: job.actionId ? `Action: ${job.actionId}` : null,\n script: null,\n interpreter: null,\n cwd: null,\n env: null,\n timeout: null,\n webhookUrl: null,\n webhookMethod: null,\n webhookHeaders: null,\n webhookAuthType: null,\n webhookPayload: null,\n },\n cronExpression: job.cronExpression ?? null,\n rrule: job.rrule ?? null,\n scheduledAt: job.scheduledAt ?? null,\n timezone: job.timezone ?? 'UTC',\n nextExecutionAt: job.nextExecutionAt ?? null,\n lastExecutedAt: job.lastExecutionAt ?? null,\n status: job.status,\n totalExecutions: 0,\n consecutiveFailures: 0,\n createdAt: fallback,\n updatedAt: fallback,\n };\n}\n\n/**\n * Expand a single ScheduledJob into calendar occurrences that fall\n * within [rangeStart, rangeEnd]. See file header for CRON/RRULE caveat.\n */\nexport function expandJobToOccurrences(\n job: SchedulerJobLike,\n rangeStart: Date,\n rangeEnd: Date\n): CalendarOccurrence[] {\n const task = jobToVibeCalendarTask(job);\n const execution: VibeCalendarExecution | null = null;\n const out: CalendarOccurrence[] = [];\n const now = Date.now();\n\n const pushIfInRange = (iso: string | null | undefined) => {\n if (!iso) return;\n const t = Date.parse(iso);\n if (Number.isNaN(t)) return;\n if (t < rangeStart.getTime() || t > rangeEnd.getTime()) return;\n out.push({\n task,\n occurrenceAt: new Date(t).toISOString(),\n isPast: t < now,\n execution,\n });\n };\n\n switch (job.scheduleType) {\n case 'ONE_TIME': {\n pushIfInRange(job.scheduledAt ?? job.nextExecutionAt);\n break;\n }\n case 'FIXED_INTERVAL': {\n const stepMs = intervalToMs(job.interval);\n if (stepMs === null) {\n // Missing/invalid interval — fall back to just nextExecutionAt.\n pushIfInRange(job.nextExecutionAt);\n break;\n }\n // Anchor from the scheduled start (or nextExecutionAt), whichever\n // is earlier and non-null. Jobs with startDate honor it.\n const anchorIso = job.startDate ?? job.scheduledAt ?? job.nextExecutionAt;\n if (!anchorIso) break;\n const anchor = Date.parse(anchorIso);\n if (Number.isNaN(anchor)) break;\n\n // Step forward from the anchor until we enter the range, then\n // emit until we leave it or we hit the hard cap.\n let t = anchor;\n if (t < rangeStart.getTime()) {\n const delta = rangeStart.getTime() - t;\n const skips = Math.floor(delta / stepMs);\n t = t + skips * stepMs;\n }\n const endCap = job.endDate\n ? Math.min(rangeEnd.getTime(), Date.parse(job.endDate))\n : rangeEnd.getTime();\n let count = 0;\n while (t <= endCap && count < 500) {\n if (t >= rangeStart.getTime()) {\n out.push({\n task,\n occurrenceAt: new Date(t).toISOString(),\n isPast: t < now,\n execution,\n });\n }\n t += stepMs;\n count += 1;\n }\n break;\n }\n case 'CRON':\n case 'RRULE':\n default: {\n // Fallback: render only the next scheduled run. A full client-side\n // cron/rrule expander is out of scope — TODO: add a server-side\n // range query that returns pre-expanded occurrences so recurring\n // jobs show every run in the visible range.\n pushIfInRange(job.nextExecutionAt);\n break;\n }\n }\n\n return out;\n}\n\n/**\n * Convenience helper: expand a list of jobs into a merged, sorted list\n * of occurrences.\n */\nexport function expandJobsToOccurrences(\n jobs: SchedulerJobLike[],\n rangeStart: Date,\n rangeEnd: Date\n): CalendarOccurrence[] {\n const all: CalendarOccurrence[] = [];\n for (const job of jobs) {\n all.push(...expandJobToOccurrences(job, rangeStart, rangeEnd));\n }\n all.sort((a, b) => a.occurrenceAt.localeCompare(b.occurrenceAt));\n return all;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"expandOccurrences.js","names":[],"sources":["../../../src/components/vibecalendar/expandOccurrences.ts"],"sourcesContent":["/**\n * Expand a ScheduledJob into a list of calendar occurrences that fall\n * within the provided date range. Used by VibeCalendarPage to render\n * jobs from the scheduler (and calendar-linked tasks) as events on the\n * month/week/day/agenda grids.\n *\n * Scope-limit: CRON and RRULE jobs only emit their `nextExecutionAt`\n * as a single occurrence because full client-side cron/rrule expansion\n * is out of scope. A follow-up can add a server-side\n * `scheduledJobsInRange` query that returns pre-expanded occurrences.\n */\n\nimport type { VibeCalendarTask, VibeCalendarExecution, CalendarOccurrence } from './types';\n\nexport interface SchedulerJobLike {\n id: string;\n name?: string | null;\n description?: string | null;\n status: string;\n scheduleType: string;\n cronExpression?: string | null;\n rrule?: string | null;\n interval?: unknown;\n scheduledAt?: string | null;\n nextExecutionAt?: string | null;\n lastExecutionAt?: string | null;\n actionId?: string | null;\n timezone?: string | null;\n startDate?: string | null;\n endDate?: string | null;\n}\n\nconst INTERVAL_UNIT_MS: Record<string, number> = {\n SECONDS: 1000,\n MINUTES: 60 * 1000,\n HOURS: 60 * 60 * 1000,\n DAYS: 24 * 60 * 60 * 1000,\n WEEKS: 7 * 24 * 60 * 60 * 1000,\n};\n\n/**\n * Read the interval JSON on a ScheduledJob (stored as `{ value, unit }`\n * by the backend) and return a step in milliseconds, or null if the\n * field is missing or malformed.\n */\nfunction intervalToMs(interval: unknown): number | null {\n if (!interval || typeof interval !== 'object') return null;\n const obj = interval as { value?: unknown; unit?: unknown };\n const value = typeof obj.value === 'number' ? obj.value : Number(obj.value);\n const unit = typeof obj.unit === 'string' ? obj.unit.toUpperCase() : '';\n const unitMs = INTERVAL_UNIT_MS[unit];\n if (!unitMs || !Number.isFinite(value) || value <= 0) return null;\n return value * unitMs;\n}\n\n/**\n * Build a minimal VibeCalendarTask shape from a ScheduledJob so the\n * existing calendar view components (VibeCalMonthView, VibeTaskBlock,\n * etc.) can render it without any component changes. Unused task\n * fields are filled with safe defaults.\n */\nexport function jobToVibeCalendarTask(job: SchedulerJobLike): VibeCalendarTask {\n const fallback = job.nextExecutionAt ?? job.scheduledAt ?? new Date().toISOString();\n return {\n id: job.id,\n title: job.name || 'Untitled job',\n description: job.description ?? null,\n calendarId: '',\n calendarEventId: '',\n agentId: '',\n taskConfig: {\n taskType: 'ACTION',\n command: job.actionId ? `Action: ${job.actionId}` : null,\n script: null,\n interpreter: null,\n cwd: null,\n env: null,\n timeout: null,\n webhookUrl: null,\n webhookMethod: null,\n webhookHeaders: null,\n webhookAuthType: null,\n webhookPayload: null,\n },\n cronExpression: job.cronExpression ?? null,\n rrule: job.rrule ?? null,\n scheduledAt: job.scheduledAt ?? null,\n timezone: job.timezone ?? 'UTC',\n nextExecutionAt: job.nextExecutionAt ?? null,\n lastExecutedAt: job.lastExecutionAt ?? null,\n status: job.status,\n totalExecutions: 0,\n consecutiveFailures: 0,\n createdAt: fallback,\n updatedAt: fallback,\n };\n}\n\n/**\n * Expand a single ScheduledJob into calendar occurrences that fall\n * within [rangeStart, rangeEnd]. See file header for CRON/RRULE caveat.\n */\nexport function expandJobToOccurrences(\n job: SchedulerJobLike,\n rangeStart: Date,\n rangeEnd: Date\n): CalendarOccurrence[] {\n const task = jobToVibeCalendarTask(job);\n const execution: VibeCalendarExecution | null = null;\n const out: CalendarOccurrence[] = [];\n const now = Date.now();\n\n const pushIfInRange = (iso: string | null | undefined) => {\n if (!iso) return;\n const t = Date.parse(iso);\n if (Number.isNaN(t)) return;\n if (t < rangeStart.getTime() || t > rangeEnd.getTime()) return;\n out.push({\n task,\n occurrenceAt: new Date(t).toISOString(),\n isPast: t < now,\n execution,\n });\n };\n\n switch (job.scheduleType) {\n case 'ONE_TIME': {\n pushIfInRange(job.scheduledAt ?? job.nextExecutionAt);\n break;\n }\n case 'FIXED_INTERVAL': {\n const stepMs = intervalToMs(job.interval);\n if (stepMs === null) {\n // Missing/invalid interval — fall back to just nextExecutionAt.\n pushIfInRange(job.nextExecutionAt);\n break;\n }\n // Anchor from the scheduled start (or nextExecutionAt), whichever\n // is earlier and non-null. Jobs with startDate honor it.\n const anchorIso = job.startDate ?? job.scheduledAt ?? job.nextExecutionAt;\n if (!anchorIso) break;\n const anchor = Date.parse(anchorIso);\n if (Number.isNaN(anchor)) break;\n\n // Step forward from the anchor until we enter the range, then\n // emit until we leave it or we hit the hard cap.\n let t = anchor;\n if (t < rangeStart.getTime()) {\n const delta = rangeStart.getTime() - t;\n const skips = Math.floor(delta / stepMs);\n t = t + skips * stepMs;\n }\n const endCap = job.endDate\n ? Math.min(rangeEnd.getTime(), Date.parse(job.endDate))\n : rangeEnd.getTime();\n let count = 0;\n while (t <= endCap && count < 500) {\n if (t >= rangeStart.getTime()) {\n out.push({\n task,\n occurrenceAt: new Date(t).toISOString(),\n isPast: t < now,\n execution,\n });\n }\n t += stepMs;\n count += 1;\n }\n break;\n }\n case 'CRON':\n case 'RRULE':\n default: {\n // Fallback: render only the next scheduled run. A full client-side\n // cron/rrule expander is out of scope; full range expansion depends\n // on a server-side range query (tracked in scheduler-svc backlog)\n // that returns pre-expanded occurrences so recurring jobs show every\n // run in the visible range.\n pushIfInRange(job.nextExecutionAt);\n break;\n }\n }\n\n return out;\n}\n\n/**\n * Convenience helper: expand a list of jobs into a merged, sorted list\n * of occurrences.\n */\nexport function expandJobsToOccurrences(\n jobs: SchedulerJobLike[],\n rangeStart: Date,\n rangeEnd: Date\n): CalendarOccurrence[] {\n const all: CalendarOccurrence[] = [];\n for (const job of jobs) {\n all.push(...expandJobToOccurrences(job, rangeStart, rangeEnd));\n }\n all.sort((a, b) => a.occurrenceAt.localeCompare(b.occurrenceAt));\n return all;\n}\n"],"mappings":"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"}
@@ -3,7 +3,11 @@ var e = "@vibecontrols/vibe-plugin-ai", t = [
3
3
  "@vibecontrols/vibe-plugin-ai-claude",
4
4
  "@vibecontrols/vibe-plugin-ai-codex",
5
5
  "@vibecontrols/vibe-plugin-ai-gemini",
6
- "@vibecontrols/vibe-plugin-ai-opencode"
6
+ "@vibecontrols/vibe-plugin-ai-opencode",
7
+ "@vibecontrols/vibe-plugin-ai-cursor",
8
+ "@vibecontrols/vibe-plugin-ai-openrouter",
9
+ "@vibecontrols/vibe-plugin-ai-minimax",
10
+ "@vibecontrols/vibe-plugin-ai-ollama"
7
11
  ];
8
12
  [...t];
9
13
  var n = "@vibecontrols/vibe-plugin-session-manager", r = [
@@ -47,6 +51,30 @@ var n = "@vibecontrols/vibe-plugin-session-manager", r = [
47
51
  description: "OpenCode agent provider.",
48
52
  category: "ai-provider"
49
53
  },
54
+ "@vibecontrols/vibe-plugin-ai-cursor": {
55
+ packageName: "@vibecontrols/vibe-plugin-ai-cursor",
56
+ displayName: "Cursor",
57
+ description: "Cursor agent provider (CLI + SDK).",
58
+ category: "ai-provider"
59
+ },
60
+ "@vibecontrols/vibe-plugin-ai-openrouter": {
61
+ packageName: "@vibecontrols/vibe-plugin-ai-openrouter",
62
+ displayName: "OpenRouter",
63
+ description: "OpenRouter aggregator (300+ models, SDK only).",
64
+ category: "ai-provider"
65
+ },
66
+ "@vibecontrols/vibe-plugin-ai-minimax": {
67
+ packageName: "@vibecontrols/vibe-plugin-ai-minimax",
68
+ displayName: "Minimax",
69
+ description: "Minimax provider (CLI + Anthropic-compatible SDK).",
70
+ category: "ai-provider"
71
+ },
72
+ "@vibecontrols/vibe-plugin-ai-ollama": {
73
+ packageName: "@vibecontrols/vibe-plugin-ai-ollama",
74
+ displayName: "Ollama",
75
+ description: "Ollama Cloud + self-hosted (CLI + SDK).",
76
+ category: "ai-provider"
77
+ },
50
78
  "@vibecontrols/vibe-plugin-ai-aider": {
51
79
  packageName: "@vibecontrols/vibe-plugin-ai-aider",
52
80
  displayName: "Aider",