@burdenoff/microfe-vibecontrols 2026.601.11 → 2026.601.13

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 (290) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +5 -2
  2. package/dist/components/actions/ActionForm.js +270 -255
  3. package/dist/components/actions/ActionForm.js.map +1 -1
  4. package/dist/components/actions/RemoteExecutionEnableNotice.js +85 -0
  5. package/dist/components/actions/RemoteExecutionEnableNotice.js.map +1 -0
  6. package/dist/components/agents/AgentConnectionRecovery.js +123 -0
  7. package/dist/components/agents/AgentConnectionRecovery.js.map +1 -0
  8. package/dist/components/agents/RemoteTaskPermissionsCard.js +37 -36
  9. package/dist/components/agents/RemoteTaskPermissionsCard.js.map +1 -1
  10. package/dist/components/graph/MeshAgentNode.js +74 -0
  11. package/dist/components/graph/MeshAgentNode.js.map +1 -0
  12. package/dist/components/graph/MeshDeployWizard.js +393 -0
  13. package/dist/components/graph/MeshDeployWizard.js.map +1 -0
  14. package/dist/components/graph/MeshGraphView.js +190 -0
  15. package/dist/components/graph/MeshGraphView.js.map +1 -0
  16. package/dist/components/graph/MeshNodeActions.js +70 -0
  17. package/dist/components/graph/MeshNodeActions.js.map +1 -0
  18. package/dist/components/graph/MeshRequestPanel.js +240 -0
  19. package/dist/components/graph/MeshRequestPanel.js.map +1 -0
  20. package/dist/components/graph/meshTypes.js +11 -0
  21. package/dist/components/graph/meshTypes.js.map +1 -0
  22. package/dist/components/graph/nodeIcons.js +31 -0
  23. package/dist/components/graph/nodeIcons.js.map +1 -0
  24. package/dist/components/shared/EnableRemoteTaskDialog.js +48 -0
  25. package/dist/components/shared/EnableRemoteTaskDialog.js.map +1 -0
  26. package/dist/components/shared/index.js +1 -0
  27. package/dist/generated/global-operations.js +7 -12
  28. package/dist/generated/global-operations.js.map +1 -1
  29. package/dist/generated/wspace-operations.js +1896 -1649
  30. package/dist/generated/wspace-operations.js.map +1 -1
  31. package/dist/generated/wspace-types.js +14 -12
  32. package/dist/generated/wspace-types.js.map +1 -1
  33. package/dist/hooks/useAiCreditsQuota.js +27 -20
  34. package/dist/hooks/useAiCreditsQuota.js.map +1 -1
  35. package/dist/index.js +10 -10
  36. package/dist/node_modules/dagre/index.js +24 -0
  37. package/dist/node_modules/dagre/index.js.map +1 -0
  38. package/dist/node_modules/dagre/lib/acyclic.js +47 -0
  39. package/dist/node_modules/dagre/lib/acyclic.js.map +1 -0
  40. package/dist/node_modules/dagre/lib/add-border-segments.js +32 -0
  41. package/dist/node_modules/dagre/lib/add-border-segments.js.map +1 -0
  42. package/dist/node_modules/dagre/lib/coordinate-system.js +57 -0
  43. package/dist/node_modules/dagre/lib/coordinate-system.js.map +1 -0
  44. package/dist/node_modules/dagre/lib/data/list.js +30 -0
  45. package/dist/node_modules/dagre/lib/data/list.js.map +1 -0
  46. package/dist/node_modules/dagre/lib/debug.js +31 -0
  47. package/dist/node_modules/dagre/lib/debug.js.map +1 -0
  48. package/dist/node_modules/dagre/lib/graphlib.js +15 -0
  49. package/dist/node_modules/dagre/lib/graphlib.js.map +1 -0
  50. package/dist/node_modules/dagre/lib/greedy-fas.js +74 -0
  51. package/dist/node_modules/dagre/lib/greedy-fas.js.map +1 -0
  52. package/dist/node_modules/dagre/lib/layout.js +305 -0
  53. package/dist/node_modules/dagre/lib/layout.js.map +1 -0
  54. package/dist/node_modules/dagre/lib/lodash.js +67 -0
  55. package/dist/node_modules/dagre/lib/lodash.js.map +1 -0
  56. package/dist/node_modules/dagre/lib/nesting-graph.js +76 -0
  57. package/dist/node_modules/dagre/lib/nesting-graph.js.map +1 -0
  58. package/dist/node_modules/dagre/lib/normalize.js +45 -0
  59. package/dist/node_modules/dagre/lib/normalize.js.map +1 -0
  60. package/dist/node_modules/dagre/lib/order/add-subgraph-constraints.js +24 -0
  61. package/dist/node_modules/dagre/lib/order/add-subgraph-constraints.js.map +1 -0
  62. package/dist/node_modules/dagre/lib/order/barycenter.js +34 -0
  63. package/dist/node_modules/dagre/lib/order/barycenter.js.map +1 -0
  64. package/dist/node_modules/dagre/lib/order/build-layer-graph.js +32 -0
  65. package/dist/node_modules/dagre/lib/order/build-layer-graph.js.map +1 -0
  66. package/dist/node_modules/dagre/lib/order/cross-count.js +39 -0
  67. package/dist/node_modules/dagre/lib/order/cross-count.js.map +1 -0
  68. package/dist/node_modules/dagre/lib/order/index.js +50 -0
  69. package/dist/node_modules/dagre/lib/order/index.js.map +1 -0
  70. package/dist/node_modules/dagre/lib/order/init-order.js +28 -0
  71. package/dist/node_modules/dagre/lib/order/init-order.js.map +1 -0
  72. package/dist/node_modules/dagre/lib/order/resolve-conflicts.js +61 -0
  73. package/dist/node_modules/dagre/lib/order/resolve-conflicts.js.map +1 -0
  74. package/dist/node_modules/dagre/lib/order/sort-subgraph.js +50 -0
  75. package/dist/node_modules/dagre/lib/order/sort-subgraph.js.map +1 -0
  76. package/dist/node_modules/dagre/lib/order/sort.js +34 -0
  77. package/dist/node_modules/dagre/lib/order/sort.js.map +1 -0
  78. package/dist/node_modules/dagre/lib/parent-dummy-chains.js +50 -0
  79. package/dist/node_modules/dagre/lib/parent-dummy-chains.js.map +1 -0
  80. package/dist/node_modules/dagre/lib/position/bk.js +212 -0
  81. package/dist/node_modules/dagre/lib/position/bk.js.map +1 -0
  82. package/dist/node_modules/dagre/lib/position/index.js +30 -0
  83. package/dist/node_modules/dagre/lib/position/index.js.map +1 -0
  84. package/dist/node_modules/dagre/lib/rank/feasible-tree.js +39 -0
  85. package/dist/node_modules/dagre/lib/rank/feasible-tree.js.map +1 -0
  86. package/dist/node_modules/dagre/lib/rank/index.js +35 -0
  87. package/dist/node_modules/dagre/lib/rank/index.js.map +1 -0
  88. package/dist/node_modules/dagre/lib/rank/network-simplex.js +90 -0
  89. package/dist/node_modules/dagre/lib/rank/network-simplex.js.map +1 -0
  90. package/dist/node_modules/dagre/lib/rank/util.js +31 -0
  91. package/dist/node_modules/dagre/lib/rank/util.js.map +1 -0
  92. package/dist/node_modules/dagre/lib/util.js +151 -0
  93. package/dist/node_modules/dagre/lib/util.js.map +1 -0
  94. package/dist/node_modules/dagre/lib/version.js +10 -0
  95. package/dist/node_modules/dagre/lib/version.js.map +1 -0
  96. package/dist/node_modules/graphlib/index.js +19 -0
  97. package/dist/node_modules/graphlib/index.js.map +1 -0
  98. package/dist/node_modules/graphlib/lib/alg/components.js +21 -0
  99. package/dist/node_modules/graphlib/lib/alg/components.js.map +1 -0
  100. package/dist/node_modules/graphlib/lib/alg/dfs.js +25 -0
  101. package/dist/node_modules/graphlib/lib/alg/dfs.js.map +1 -0
  102. package/dist/node_modules/graphlib/lib/alg/dijkstra-all.js +18 -0
  103. package/dist/node_modules/graphlib/lib/alg/dijkstra-all.js.map +1 -0
  104. package/dist/node_modules/graphlib/lib/alg/dijkstra.js +31 -0
  105. package/dist/node_modules/graphlib/lib/alg/dijkstra.js.map +1 -0
  106. package/dist/node_modules/graphlib/lib/alg/find-cycles.js +18 -0
  107. package/dist/node_modules/graphlib/lib/alg/find-cycles.js.map +1 -0
  108. package/dist/node_modules/graphlib/lib/alg/floyd-warshall.js +41 -0
  109. package/dist/node_modules/graphlib/lib/alg/floyd-warshall.js.map +1 -0
  110. package/dist/node_modules/graphlib/lib/alg/index.js +33 -0
  111. package/dist/node_modules/graphlib/lib/alg/index.js.map +1 -0
  112. package/dist/node_modules/graphlib/lib/alg/is-acyclic.js +21 -0
  113. package/dist/node_modules/graphlib/lib/alg/is-acyclic.js.map +1 -0
  114. package/dist/node_modules/graphlib/lib/alg/postorder.js +15 -0
  115. package/dist/node_modules/graphlib/lib/alg/postorder.js.map +1 -0
  116. package/dist/node_modules/graphlib/lib/alg/preorder.js +15 -0
  117. package/dist/node_modules/graphlib/lib/alg/preorder.js.map +1 -0
  118. package/dist/node_modules/graphlib/lib/alg/prim.js +35 -0
  119. package/dist/node_modules/graphlib/lib/alg/prim.js.map +1 -0
  120. package/dist/node_modules/graphlib/lib/alg/tarjan.js +34 -0
  121. package/dist/node_modules/graphlib/lib/alg/tarjan.js.map +1 -0
  122. package/dist/node_modules/graphlib/lib/alg/topsort.js +23 -0
  123. package/dist/node_modules/graphlib/lib/alg/topsort.js.map +1 -0
  124. package/dist/node_modules/graphlib/lib/data/priority-queue.js +56 -0
  125. package/dist/node_modules/graphlib/lib/data/priority-queue.js.map +1 -0
  126. package/dist/node_modules/graphlib/lib/graph.js +196 -0
  127. package/dist/node_modules/graphlib/lib/graph.js.map +1 -0
  128. package/dist/node_modules/graphlib/lib/index.js +15 -0
  129. package/dist/node_modules/graphlib/lib/index.js.map +1 -0
  130. package/dist/node_modules/graphlib/lib/json.js +55 -0
  131. package/dist/node_modules/graphlib/lib/json.js.map +1 -0
  132. package/dist/node_modules/graphlib/lib/lodash.js +47 -0
  133. package/dist/node_modules/graphlib/lib/lodash.js.map +1 -0
  134. package/dist/node_modules/graphlib/lib/version.js +10 -0
  135. package/dist/node_modules/graphlib/lib/version.js.map +1 -0
  136. package/dist/node_modules/lodash/_arrayEach.js +14 -0
  137. package/dist/node_modules/lodash/_arrayEach.js.map +1 -0
  138. package/dist/node_modules/lodash/_arrayReduce.js +15 -0
  139. package/dist/node_modules/lodash/_arrayReduce.js.map +1 -0
  140. package/dist/node_modules/lodash/_asciiSize.js +11 -0
  141. package/dist/node_modules/lodash/_asciiSize.js.map +1 -0
  142. package/dist/node_modules/lodash/_assignMergeValue.js +16 -0
  143. package/dist/node_modules/lodash/_assignMergeValue.js.map +1 -0
  144. package/dist/node_modules/lodash/_assignValue.js +17 -0
  145. package/dist/node_modules/lodash/_assignValue.js.map +1 -0
  146. package/dist/node_modules/lodash/_baseAssign.js +16 -0
  147. package/dist/node_modules/lodash/_baseAssign.js.map +1 -0
  148. package/dist/node_modules/lodash/_baseAssignIn.js +16 -0
  149. package/dist/node_modules/lodash/_baseAssignIn.js.map +1 -0
  150. package/dist/node_modules/lodash/_baseClone.js +64 -0
  151. package/dist/node_modules/lodash/_baseClone.js.map +1 -0
  152. package/dist/node_modules/lodash/_baseCreate.js +21 -0
  153. package/dist/node_modules/lodash/_baseCreate.js.map +1 -0
  154. package/dist/node_modules/lodash/_baseFilter.js +18 -0
  155. package/dist/node_modules/lodash/_baseFilter.js.map +1 -0
  156. package/dist/node_modules/lodash/_baseHas.js +14 -0
  157. package/dist/node_modules/lodash/_baseHas.js.map +1 -0
  158. package/dist/node_modules/lodash/_baseIsMap.js +16 -0
  159. package/dist/node_modules/lodash/_baseIsMap.js.map +1 -0
  160. package/dist/node_modules/lodash/_baseIsSet.js +16 -0
  161. package/dist/node_modules/lodash/_baseIsSet.js.map +1 -0
  162. package/dist/node_modules/lodash/_baseKeysIn.js +20 -0
  163. package/dist/node_modules/lodash/_baseKeysIn.js.map +1 -0
  164. package/dist/node_modules/lodash/_baseMerge.js +27 -0
  165. package/dist/node_modules/lodash/_baseMerge.js.map +1 -0
  166. package/dist/node_modules/lodash/_baseMergeDeep.js +39 -0
  167. package/dist/node_modules/lodash/_baseMergeDeep.js.map +1 -0
  168. package/dist/node_modules/lodash/_basePick.js +18 -0
  169. package/dist/node_modules/lodash/_basePick.js.map +1 -0
  170. package/dist/node_modules/lodash/_basePickBy.js +21 -0
  171. package/dist/node_modules/lodash/_basePickBy.js.map +1 -0
  172. package/dist/node_modules/lodash/_baseReduce.js +15 -0
  173. package/dist/node_modules/lodash/_baseReduce.js.map +1 -0
  174. package/dist/node_modules/lodash/_baseSet.js +30 -0
  175. package/dist/node_modules/lodash/_baseSet.js.map +1 -0
  176. package/dist/node_modules/lodash/_baseValues.js +17 -0
  177. package/dist/node_modules/lodash/_baseValues.js.map +1 -0
  178. package/dist/node_modules/lodash/_baseZipObject.js +17 -0
  179. package/dist/node_modules/lodash/_baseZipObject.js.map +1 -0
  180. package/dist/node_modules/lodash/_castFunction.js +15 -0
  181. package/dist/node_modules/lodash/_castFunction.js.map +1 -0
  182. package/dist/node_modules/lodash/_cloneArrayBuffer.js +16 -0
  183. package/dist/node_modules/lodash/_cloneArrayBuffer.js.map +1 -0
  184. package/dist/node_modules/lodash/_cloneBuffer.js +17 -0
  185. package/dist/node_modules/lodash/_cloneBuffer.js.map +1 -0
  186. package/dist/node_modules/lodash/_cloneDataView.js +16 -0
  187. package/dist/node_modules/lodash/_cloneDataView.js.map +1 -0
  188. package/dist/node_modules/lodash/_cloneRegExp.js +15 -0
  189. package/dist/node_modules/lodash/_cloneRegExp.js.map +1 -0
  190. package/dist/node_modules/lodash/_cloneSymbol.js +15 -0
  191. package/dist/node_modules/lodash/_cloneSymbol.js.map +1 -0
  192. package/dist/node_modules/lodash/_cloneTypedArray.js +16 -0
  193. package/dist/node_modules/lodash/_cloneTypedArray.js.map +1 -0
  194. package/dist/node_modules/lodash/_copyArray.js +15 -0
  195. package/dist/node_modules/lodash/_copyArray.js.map +1 -0
  196. package/dist/node_modules/lodash/_copyObject.js +22 -0
  197. package/dist/node_modules/lodash/_copyObject.js.map +1 -0
  198. package/dist/node_modules/lodash/_copySymbols.js +16 -0
  199. package/dist/node_modules/lodash/_copySymbols.js.map +1 -0
  200. package/dist/node_modules/lodash/_copySymbolsIn.js +16 -0
  201. package/dist/node_modules/lodash/_copySymbolsIn.js.map +1 -0
  202. package/dist/node_modules/lodash/_createAssigner.js +23 -0
  203. package/dist/node_modules/lodash/_createAssigner.js.map +1 -0
  204. package/dist/node_modules/lodash/_flatRest.js +17 -0
  205. package/dist/node_modules/lodash/_flatRest.js.map +1 -0
  206. package/dist/node_modules/lodash/_getAllKeysIn.js +17 -0
  207. package/dist/node_modules/lodash/_getAllKeysIn.js.map +1 -0
  208. package/dist/node_modules/lodash/_getSymbolsIn.js +18 -0
  209. package/dist/node_modules/lodash/_getSymbolsIn.js.map +1 -0
  210. package/dist/node_modules/lodash/_initCloneArray.js +15 -0
  211. package/dist/node_modules/lodash/_initCloneArray.js.map +1 -0
  212. package/dist/node_modules/lodash/_initCloneByTag.js +40 -0
  213. package/dist/node_modules/lodash/_initCloneByTag.js.map +1 -0
  214. package/dist/node_modules/lodash/_initCloneObject.js +17 -0
  215. package/dist/node_modules/lodash/_initCloneObject.js.map +1 -0
  216. package/dist/node_modules/lodash/_nativeKeysIn.js +15 -0
  217. package/dist/node_modules/lodash/_nativeKeysIn.js.map +1 -0
  218. package/dist/node_modules/lodash/_safeGet.js +13 -0
  219. package/dist/node_modules/lodash/_safeGet.js.map +1 -0
  220. package/dist/node_modules/lodash/_stringSize.js +17 -0
  221. package/dist/node_modules/lodash/_stringSize.js.map +1 -0
  222. package/dist/node_modules/lodash/_unicodeSize.js +25 -0
  223. package/dist/node_modules/lodash/_unicodeSize.js.map +1 -0
  224. package/dist/node_modules/lodash/clone.js +15 -0
  225. package/dist/node_modules/lodash/clone.js.map +1 -0
  226. package/dist/node_modules/lodash/cloneDeep.js +15 -0
  227. package/dist/node_modules/lodash/cloneDeep.js.map +1 -0
  228. package/dist/node_modules/lodash/defaults.js +23 -0
  229. package/dist/node_modules/lodash/defaults.js.map +1 -0
  230. package/dist/node_modules/lodash/each.js +11 -0
  231. package/dist/node_modules/lodash/each.js.map +1 -0
  232. package/dist/node_modules/lodash/filter.js +18 -0
  233. package/dist/node_modules/lodash/filter.js.map +1 -0
  234. package/dist/node_modules/lodash/flatten.js +15 -0
  235. package/dist/node_modules/lodash/flatten.js.map +1 -0
  236. package/dist/node_modules/lodash/forEach.js +18 -0
  237. package/dist/node_modules/lodash/forEach.js.map +1 -0
  238. package/dist/node_modules/lodash/forIn.js +17 -0
  239. package/dist/node_modules/lodash/forIn.js.map +1 -0
  240. package/dist/node_modules/lodash/has.js +16 -0
  241. package/dist/node_modules/lodash/has.js.map +1 -0
  242. package/dist/node_modules/lodash/isArrayLikeObject.js +16 -0
  243. package/dist/node_modules/lodash/isArrayLikeObject.js.map +1 -0
  244. package/dist/node_modules/lodash/isEmpty.js +28 -0
  245. package/dist/node_modules/lodash/isEmpty.js.map +1 -0
  246. package/dist/node_modules/lodash/isMap.js +14 -0
  247. package/dist/node_modules/lodash/isMap.js.map +1 -0
  248. package/dist/node_modules/lodash/isSet.js +14 -0
  249. package/dist/node_modules/lodash/isSet.js.map +1 -0
  250. package/dist/node_modules/lodash/isUndefined.js +13 -0
  251. package/dist/node_modules/lodash/isUndefined.js.map +1 -0
  252. package/dist/node_modules/lodash/keysIn.js +17 -0
  253. package/dist/node_modules/lodash/keysIn.js.map +1 -0
  254. package/dist/node_modules/lodash/merge.js +15 -0
  255. package/dist/node_modules/lodash/merge.js.map +1 -0
  256. package/dist/node_modules/lodash/pick.js +15 -0
  257. package/dist/node_modules/lodash/pick.js.map +1 -0
  258. package/dist/node_modules/lodash/reduce.js +20 -0
  259. package/dist/node_modules/lodash/reduce.js.map +1 -0
  260. package/dist/node_modules/lodash/size.js +22 -0
  261. package/dist/node_modules/lodash/size.js.map +1 -0
  262. package/dist/node_modules/lodash/toPlainObject.js +16 -0
  263. package/dist/node_modules/lodash/toPlainObject.js.map +1 -0
  264. package/dist/node_modules/lodash/transform.js +31 -0
  265. package/dist/node_modules/lodash/transform.js.map +1 -0
  266. package/dist/node_modules/lodash/union.js +17 -0
  267. package/dist/node_modules/lodash/union.js.map +1 -0
  268. package/dist/node_modules/lodash/uniqueId.js +16 -0
  269. package/dist/node_modules/lodash/uniqueId.js.map +1 -0
  270. package/dist/node_modules/lodash/values.js +16 -0
  271. package/dist/node_modules/lodash/values.js.map +1 -0
  272. package/dist/node_modules/lodash/zipObject.js +16 -0
  273. package/dist/node_modules/lodash/zipObject.js.map +1 -0
  274. package/dist/pages/ActionsPage.js +269 -230
  275. package/dist/pages/ActionsPage.js.map +1 -1
  276. package/dist/pages/AgentDetailsPage.js +442 -436
  277. package/dist/pages/AgentDetailsPage.js.map +1 -1
  278. package/dist/pages/AgentGraphPage.js +251 -118
  279. package/dist/pages/AgentGraphPage.js.map +1 -1
  280. package/dist/pages/VibeDeckPage.js +268 -224
  281. package/dist/pages/VibeDeckPage.js.map +1 -1
  282. package/dist/services/agentRemoteTaskGates.js +29 -0
  283. package/dist/services/agentRemoteTaskGates.js.map +1 -0
  284. package/package.json +3 -1
  285. package/dist/components/graph/AgentGraphView.js +0 -237
  286. package/dist/components/graph/AgentGraphView.js.map +0 -1
  287. package/dist/components/graph/AgentNode.js +0 -54
  288. package/dist/components/graph/AgentNode.js.map +0 -1
  289. package/dist/components/graph/TargetNode.js +0 -76
  290. package/dist/components/graph/TargetNode.js.map +0 -1
@@ -11,28 +11,31 @@ import { useDraftEntityTags as le } from "../hooks/useDraftEntityTags.js";
11
11
  import { EmptyState as ue } from "../components/shared/EmptyState.js";
12
12
  import { SearchInput as de } from "../components/shared/SearchInput.js";
13
13
  import { FilterDropdown as fe } from "../components/shared/FilterDropdown.js";
14
- import { LINK_TO_VIBE_DEFAULT as l, LinkToVibePanel as pe, linkToVibeInput as me } from "../components/shared/LinkToVibePanel.js";
15
- import { GetHelpButton as he } from "../components/shared/GetHelpButton.js";
16
- import { SelectionCheckbox as ge } from "../components/shared/SelectionCheckbox.js";
14
+ import { EnableRemoteTaskDialog as pe } from "../components/shared/EnableRemoteTaskDialog.js";
15
+ import { LINK_TO_VIBE_DEFAULT as l, LinkToVibePanel as me, linkToVibeInput as he } from "../components/shared/LinkToVibePanel.js";
16
+ import { GetHelpButton as ge } from "../components/shared/GetHelpButton.js";
17
+ import { SelectionCheckbox as _e } from "../components/shared/SelectionCheckbox.js";
18
+ import { useActiveAgentProfile as ve } from "../hooks/useActiveAgentProfile.js";
17
19
  import "../components/shared/index.js";
18
- import { isNative as _e, nativeNotify as ve } from "../utils/nativeBridge.js";
19
- import { ActionCard as ye } from "../components/actions/ActionCard.js";
20
- import { ActionForm as be } from "../components/actions/ActionForm.js";
21
- import { ExecutionHistory as xe } from "../components/actions/ExecutionHistory.js";
22
- import { ActionSchedulesList as Se } from "../components/actions/ActionSchedulesList.js";
20
+ import { isNative as ye, nativeNotify as be } from "../utils/nativeBridge.js";
21
+ import { ActionCard as xe } from "../components/actions/ActionCard.js";
22
+ import { enableRemoteTaskExecution as Se, isRemoteTaskDeniedError as Ce } from "../services/agentRemoteTaskGates.js";
23
+ import { ActionForm as we } from "../components/actions/ActionForm.js";
24
+ import { ExecutionHistory as Te } from "../components/actions/ExecutionHistory.js";
25
+ import { ActionSchedulesList as Ee } from "../components/actions/ActionSchedulesList.js";
23
26
  import "../components/actions/index.js";
24
27
  import { VIBE_PERMISSIONS as u } from "../constants/permissions.js";
25
- import { useCallback as d, useEffect as Ce, useMemo as f, useState as p } from "react";
26
- import { useI18n as we } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
27
- import { Copy as Te, Play as Ee, Plus as De, RefreshCw as Oe, Trash2 as ke } from "lucide-react";
28
- import { useNavigate as Ae } from "react-router-dom";
29
- import { usePermissions as je } from "@burdenoff/fe-libs/shared/providers/shell";
28
+ import { useCallback as d, useEffect as De, useMemo as f, useState as p } from "react";
29
+ import { useI18n as Oe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
30
+ import { Copy as ke, Play as Ae, Plus as je, RefreshCw as Me, Trash2 as Ne } from "lucide-react";
31
+ import { useNavigate as Pe } from "react-router-dom";
32
+ import { usePermissions as Fe } from "@burdenoff/fe-libs/shared/providers/shell";
30
33
  import { AnimatePresence as m } from "framer-motion";
31
34
  import { jsx as h, jsxs as g } from "react/jsx-runtime";
32
- import { AccessDenied as Me } from "@burdenoff/fe-libs/shared/components";
35
+ import { AccessDenied as Ie } from "@burdenoff/fe-libs/shared/components";
33
36
  import { MotionPage as _ } from "@burdenoff/fe-libs/shared/motion";
34
37
  //#region src/pages/ActionsPage.tsx
35
- var Ne = [
38
+ var Le = [
36
39
  {
37
40
  value: "COMMAND",
38
41
  label: "Command"
@@ -49,7 +52,7 @@ var Ne = [
49
52
  value: "WORKFLOW",
50
53
  label: "Workflow"
51
54
  }
52
- ], Pe = [
55
+ ], Re = [
53
56
  {
54
57
  value: "MANUAL",
55
58
  label: "Manual"
@@ -68,43 +71,43 @@ var Ne = [
68
71
  }
69
72
  ];
70
73
  function v() {
71
- let v = Ae(), { workspaceId: Fe } = ie(), { hasPermission: y, isLoading: Ie, permissions: b } = je(), x = ((e) => (t, n) => {
74
+ let v = Pe(), { workspaceId: ze } = ie(), { hasPermission: y, isLoading: Be, permissions: b } = Fe(), x = ((e) => (t, n) => {
72
75
  let r = e.t(t);
73
76
  return r === t ? n : r;
74
- })(we()), S = (Array.isArray(b) ? b : b?.permissionStrings)?.some?.((e) => e.startsWith("action:")), Le = S ? y(u.ACTION_LIST) : !0, Re = S ? y(u.ACTION_CREATE) : !0, ze = S ? y(u.ACTION_UPDATE) : !0, Be = S ? y(u.ACTION_DELETE) : !0, Ve = S ? y(u.ACTION_EXECUTE) : !0, C = Ie, [w, T] = p({ type: "none" }), [He, E] = p([]), [D, Ue] = p(""), [O, We] = p(null), [k, Ge] = p(null), [A, j] = p(null), [M, N] = p(/* @__PURE__ */ new Set()), [Ke, qe] = p(null), [Je, P] = p(null), [F, I] = p(null), [L, R] = p(null), [z, B] = p(l), [V, Ye] = p(l), H = d((e, t, n, r = 1e4) => {
77
+ })(Oe()), S = (Array.isArray(b) ? b : b?.permissionStrings)?.some?.((e) => e.startsWith("action:")), Ve = S ? y(u.ACTION_LIST) : !0, He = S ? y(u.ACTION_CREATE) : !0, Ue = S ? y(u.ACTION_UPDATE) : !0, We = S ? y(u.ACTION_DELETE) : !0, Ge = S ? y(u.ACTION_EXECUTE) : !0, Ke = Be, [C, w] = p({ type: "none" }), [qe, T] = p([]), [E, Je] = p(""), [D, Ye] = p(null), [O, Xe] = p(null), [k, A] = p(null), [j, M] = p(/* @__PURE__ */ new Set()), [Ze, Qe] = p(null), [$e, N] = p(null), [P, F] = p(null), [I, L] = p(null), [R, z] = p(null), [et, tt] = p(!1), { profiles: nt } = ve(R?.agentId ?? null), rt = nt.find((e) => e.isDefault)?.name ?? "default", [B, V] = p(l), [H, it] = p(l), U = d((e, t, n, r = 1e4) => {
75
78
  let i = Date.now() + Math.random();
76
- E((r) => [...r, {
79
+ T((r) => [...r, {
77
80
  message: e,
78
81
  variant: t,
79
82
  detail: n,
80
83
  id: i
81
- }]), t === "success" && setTimeout(() => E((e) => e.filter((e) => e.id !== i)), r);
82
- }, []), Xe = d((e) => {
83
- E((t) => t.filter((t) => t.id !== e));
84
- }, []), { data: Ze, loading: Qe, error: $e, refetch: U } = a({
84
+ }]), t === "success" && setTimeout(() => T((e) => e.filter((e) => e.id !== i)), r);
85
+ }, []), at = d((e) => {
86
+ T((t) => t.filter((t) => t.id !== e));
87
+ }, []), { data: ot, loading: st, error: ct, refetch: W } = a({
85
88
  variables: {
86
89
  filter: {
87
- ...O && O !== "all" ? { actionType: O } : {},
88
- ...k && k !== "all" ? { triggerType: k } : {},
89
- ...D ? { search: D } : {}
90
+ ...D && D !== "all" ? { actionType: D } : {},
91
+ ...O && O !== "all" ? { triggerType: O } : {},
92
+ ...E ? { search: E } : {}
90
93
  },
91
94
  pagination: { limit: 50 }
92
95
  },
93
- skip: C
94
- }), W = f(() => Ze?.actions?.items || [], [Ze]), { data: et } = i({
95
- variables: { id: A },
96
- skip: !A || C
97
- }), G = et?.action, tt = G?.recentExecutions || [], { data: K } = ee({
96
+ skip: Ke
97
+ }), G = f(() => ot?.actions?.items || [], [ot]), { data: lt } = i({
98
+ variables: { id: k },
99
+ skip: !k || Ke
100
+ }), K = lt?.action, ut = K?.recentExecutions || [], { data: dt } = ee({
98
101
  variables: { pagination: { limit: 100 } },
99
102
  fetchPolicy: "cache-and-network",
100
- skip: C
101
- }), nt = f(() => (K?.vibecontrolsAgents ?? []).map((e) => ({
103
+ skip: Ke
104
+ }), ft = f(() => (dt?.vibecontrolsAgents ?? []).map((e) => ({
102
105
  id: e.id,
103
106
  name: e.name,
104
107
  isActive: e.isActive
105
- })), [K]), [rt, { loading: it }] = e({ refetchQueries: ["ListActions"] }), { setDraftTagIds: at, flushTags: ot } = le("VIBECONTROLS_ACTION"), [st, { loading: ct }] = te({ refetchQueries: ["ListActions", "GetAction"] }), [q] = t({ refetchQueries: ["ListActions"] }), [J] = r({ refetchQueries: ["GetAction"] }), [Y] = n({ refetchQueries: ["ListActions"] }), lt = d(async (e) => {
108
+ })), [dt]), [pt, { loading: mt }] = e({ refetchQueries: ["ListActions"] }), { setDraftTagIds: ht, flushTags: gt } = le("VIBECONTROLS_ACTION"), [_t, { loading: vt }] = te({ refetchQueries: ["ListActions", "GetAction"] }), [q] = t({ refetchQueries: ["ListActions"] }), [J] = r({ refetchQueries: ["GetAction"] }), [Y] = n({ refetchQueries: ["ListActions"] }), yt = d(async (e) => {
106
109
  try {
107
- let t = await rt({ variables: { input: {
110
+ let t = await pt({ variables: { input: {
108
111
  name: e.name,
109
112
  displayName: e.displayName || null,
110
113
  description: e.description || null,
@@ -125,30 +128,30 @@ function v() {
125
128
  timeoutMs: e.timeoutMs,
126
129
  retryCount: e.retryCount,
127
130
  confirmationRequired: e.confirmationRequired,
128
- ...me(z)
131
+ ...he(B)
129
132
  } } });
130
133
  if (t.error && s(t.error)) {
131
- T({ type: "none" }), c(), R("action");
134
+ w({ type: "none" }), c(), L("action");
132
135
  return;
133
136
  }
134
137
  let n = t.data?.createAction?.id;
135
- T({ type: "none" }), H("Action created", "success"), B(l), n && await ot(n);
138
+ w({ type: "none" }), U("Action created", "success"), V(l), n && await gt(n);
136
139
  } catch (e) {
137
140
  if (s(e)) {
138
- T({ type: "none" }), c(), R("action");
141
+ w({ type: "none" }), c(), L("action");
139
142
  return;
140
143
  }
141
- H(e instanceof Error ? e.message : "Failed to create action", "error");
144
+ U(e instanceof Error ? e.message : "Failed to create action", "error");
142
145
  }
143
146
  }, [
144
- rt,
145
- ot,
146
- H,
147
- z
148
- ]), ut = d(async (e) => {
149
- if (w.type === "edit") try {
150
- await st({ variables: {
151
- id: w.actionId,
147
+ pt,
148
+ gt,
149
+ U,
150
+ B
151
+ ]), bt = d(async (e) => {
152
+ if (C.type === "edit") try {
153
+ await _t({ variables: {
154
+ id: C.actionId,
152
155
  input: {
153
156
  displayName: e.displayName || null,
154
157
  description: e.description || null,
@@ -169,33 +172,33 @@ function v() {
169
172
  timeoutMs: e.timeoutMs,
170
173
  retryCount: e.retryCount,
171
174
  confirmationRequired: e.confirmationRequired,
172
- ...me(V)
175
+ ...he(H)
173
176
  }
174
- } }), T({ type: "none" }), H("Action updated", "success");
177
+ } }), w({ type: "none" }), U("Action updated", "success");
175
178
  } catch (e) {
176
- H(e instanceof Error ? e.message : "Failed to update action", "error");
179
+ U(e instanceof Error ? e.message : "Failed to update action", "error");
177
180
  }
178
181
  }, [
179
- st,
180
- w,
181
- H,
182
- V
183
- ]), dt = d(async () => {
184
- if (w.type === "confirmDelete") try {
185
- await q({ variables: { id: w.id } }), A === w.id && j(null), T({ type: "none" }), H("Action deleted", "success"), _e() && ve("success");
182
+ _t,
183
+ C,
184
+ U,
185
+ H
186
+ ]), xt = d(async () => {
187
+ if (C.type === "confirmDelete") try {
188
+ await q({ variables: { id: C.id } }), k === C.id && A(null), w({ type: "none" }), U("Action deleted", "success"), ye() && be("success");
186
189
  } catch (e) {
187
- H(e instanceof Error ? e.message : "Failed to delete action", "error"), _e() && ve("error");
190
+ U(e instanceof Error ? e.message : "Failed to delete action", "error"), ye() && be("error");
188
191
  }
189
192
  }, [
190
- w,
193
+ C,
191
194
  q,
192
- A,
193
- H
194
- ]), ft = async (e) => {
195
- let t = W.find((t) => t.id === e);
195
+ k,
196
+ U
197
+ ]), St = async (e) => {
198
+ let t = G.find((t) => t.id === e);
196
199
  if (t) {
197
200
  if (t.confirmationRequired) {
198
- T({
201
+ w({
199
202
  type: "confirmExecute",
200
203
  actionId: e,
201
204
  name: t.displayName || t.name
@@ -204,145 +207,174 @@ function v() {
204
207
  }
205
208
  await X(e);
206
209
  }
207
- }, X = d(async (e) => {
208
- qe(e);
210
+ }, X = d(async (e, t = !0) => {
211
+ Qe(e);
209
212
  try {
210
- let t = await J({ variables: { id: e } });
211
- if (t.error && s(t.error)) {
212
- c(), R("command-execution");
213
+ let n = await J({ variables: { id: e } });
214
+ if (n.error && s(n.error)) {
215
+ c(), L("command-execution");
216
+ return;
217
+ }
218
+ let r = n.data?.executeAction;
219
+ if (r && Ce(r) && r.agentId) {
220
+ t ? z({
221
+ actionId: e,
222
+ agentId: r.agentId
223
+ }) : U("Remote execution still blocked after enabling — check the agent’s Security settings.", "error", r.output || r.errorMessage);
213
224
  return;
214
225
  }
215
- let n = t.data?.executeAction;
216
- n && H(n.status === "SUCCESS" || n.status === "COMPLETED" ? "Action executed successfully" : "Action execution failed", n.status === "SUCCESS" || n.status === "COMPLETED" ? "success" : "error", n.output || n.errorMessage);
226
+ r && U(r.status === "SUCCESS" || r.status === "COMPLETED" ? "Action executed successfully" : "Action execution failed", r.status === "SUCCESS" || r.status === "COMPLETED" ? "success" : "error", r.output || r.errorMessage);
217
227
  } catch (e) {
218
228
  if (s(e)) {
219
- c(), R("command-execution");
229
+ c(), L("command-execution");
220
230
  return;
221
231
  }
222
- H(e instanceof Error ? e.message : "Execution failed", "error");
232
+ U(e instanceof Error ? e.message : "Execution failed", "error");
223
233
  } finally {
224
- qe(null);
234
+ Qe(null);
225
235
  }
226
- }, [J, H]), pt = d(async () => {
227
- if (w.type !== "confirmExecute") return;
228
- let e = w.actionId;
229
- T({ type: "none" }), await X(e);
230
- }, [w, X]), mt = d(async (e) => {
231
- let t = W.find((t) => t.id === e);
236
+ }, [J, U]), Ct = d(async () => {
237
+ if (C.type !== "confirmExecute") return;
238
+ let e = C.actionId;
239
+ w({ type: "none" }), await X(e);
240
+ }, [C, X]), wt = d(async ({ shell: e, file: t }) => {
241
+ if (!R) return;
242
+ let { actionId: n, agentId: r } = R;
243
+ tt(!0);
244
+ try {
245
+ await Se({
246
+ id: r,
247
+ profile: rt
248
+ }, {
249
+ shell: e,
250
+ file: t
251
+ }), z(null), await X(n, !1);
252
+ } catch (e) {
253
+ U(e instanceof Error ? e.message : "Failed to enable remote execution", "error");
254
+ } finally {
255
+ tt(!1);
256
+ }
257
+ }, [
258
+ R,
259
+ rt,
260
+ X,
261
+ U
262
+ ]), Tt = d(async (e) => {
263
+ let t = G.find((t) => t.id === e);
232
264
  if (t) try {
233
265
  await Y({ variables: {
234
266
  id: e,
235
267
  name: `${t.name}-copy`
236
- } }), H("Action duplicated", "success");
268
+ } }), U("Action duplicated", "success");
237
269
  } catch (e) {
238
- H(e instanceof Error ? e.message : "Failed to duplicate action", "error");
270
+ U(e instanceof Error ? e.message : "Failed to duplicate action", "error");
239
271
  }
240
272
  }, [
241
- W,
273
+ G,
242
274
  Y,
243
- H
244
- ]), Z = f(() => w.type === "edit" && W.find((e) => e.id === w.actionId) || null, [w, W]);
245
- Ce(() => {
246
- if (w.type === "edit" && Z) {
275
+ U
276
+ ]), Z = f(() => C.type === "edit" && G.find((e) => e.id === C.actionId) || null, [C, G]);
277
+ De(() => {
278
+ if (C.type === "edit" && Z) {
247
279
  let e = Z;
248
- Ye({
280
+ it({
249
281
  vibeId: e.vibeId ?? null,
250
282
  visibility: e.visibility ?? "PRIVATE"
251
283
  });
252
- } else w.type === "create" && B(l);
253
- }, [w.type, Z]);
254
- let Q = f(() => W.filter((e) => M.has(e.id)), [W, M]), ht = W.length > 0 && W.every((e) => M.has(e.id)), gt = W.some((e) => M.has(e.id)) && !ht, _t = d((e, t) => {
255
- N((n) => {
284
+ } else C.type === "create" && V(l);
285
+ }, [C.type, Z]);
286
+ let Q = f(() => G.filter((e) => j.has(e.id)), [G, j]), Et = G.length > 0 && G.every((e) => j.has(e.id)), Dt = G.some((e) => j.has(e.id)) && !Et, Ot = d((e, t) => {
287
+ M((n) => {
256
288
  let r = new Set(n);
257
289
  return t ? r.add(e) : r.delete(e), r;
258
290
  });
259
- }, []), vt = d((e) => {
260
- N((t) => {
291
+ }, []), kt = d((e) => {
292
+ M((t) => {
261
293
  let n = new Set(t);
262
- return W.forEach((t) => {
294
+ return G.forEach((t) => {
263
295
  e ? n.add(t.id) : n.delete(t.id);
264
296
  }), n;
265
297
  });
266
- }, [W]), $ = d(() => {
267
- N(/* @__PURE__ */ new Set());
268
- }, []), yt = d(async () => {
298
+ }, [G]), $ = d(() => {
299
+ M(/* @__PURE__ */ new Set());
300
+ }, []), At = d(async () => {
269
301
  if (Q.length !== 0) {
270
- I("duplicate");
302
+ F("duplicate");
271
303
  try {
272
304
  let e = await Promise.allSettled(Q.map((e) => Y({ variables: {
273
305
  id: e.id,
274
306
  name: `${e.name}-copy`
275
307
  } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
276
- H(`Duplicated ${t} action${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`, n > 0 ? "error" : "success"), $(), await U();
308
+ U(`Duplicated ${t} action${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`, n > 0 ? "error" : "success"), $(), await W();
277
309
  } catch (e) {
278
- H(e instanceof Error ? e.message : "Failed to duplicate actions", "error");
310
+ U(e instanceof Error ? e.message : "Failed to duplicate actions", "error");
279
311
  } finally {
280
- I(null);
312
+ F(null);
281
313
  }
282
314
  }
283
315
  }, [
284
316
  Q,
285
317
  Y,
286
- H,
318
+ U,
287
319
  $,
288
- U
289
- ]), bt = d(async () => {
320
+ W
321
+ ]), jt = d(async () => {
290
322
  if (Q.length !== 0) {
291
- I("delete");
323
+ F("delete");
292
324
  try {
293
325
  let e = await Promise.allSettled(Q.map((e) => q({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
294
- A && M.has(A) && j(null), H(`Deleted ${t} action${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`, n > 0 ? "error" : "success"), $(), P(null), await U();
326
+ k && j.has(k) && A(null), U(`Deleted ${t} action${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`, n > 0 ? "error" : "success"), $(), N(null), await W();
295
327
  } catch (e) {
296
- H(e instanceof Error ? e.message : "Failed to delete actions", "error");
328
+ U(e instanceof Error ? e.message : "Failed to delete actions", "error");
297
329
  } finally {
298
- I(null);
330
+ F(null);
299
331
  }
300
332
  }
301
333
  }, [
302
334
  Q,
303
335
  q,
304
- A,
305
- M,
306
- H,
336
+ k,
337
+ j,
338
+ U,
307
339
  $,
308
- U
309
- ]), xt = d(async () => {
340
+ W
341
+ ]), Mt = d(async () => {
310
342
  if (Q.length === 0) return;
311
- I("execute");
343
+ F("execute");
312
344
  let e = 0, t = 0, n = !1;
313
345
  try {
314
346
  for (let r of Q) try {
315
347
  let i = await J({ variables: { id: r.id } });
316
348
  if (i.error && s(i.error)) {
317
- c(), R("command-execution"), n = !0;
349
+ c(), L("command-execution"), n = !0;
318
350
  break;
319
351
  }
320
352
  let a = i.data?.executeAction;
321
353
  a?.status === "SUCCESS" || a?.status === "COMPLETED" ? e += 1 : t += 1;
322
354
  } catch (e) {
323
355
  if (s(e)) {
324
- c(), R("command-execution"), n = !0;
356
+ c(), L("command-execution"), n = !0;
325
357
  break;
326
358
  }
327
359
  t += 1;
328
360
  }
329
- n || H(`Executed ${e} action${e === 1 ? "" : "s"}${t > 0 ? ` • ${t} failed` : ""}`, t > 0 ? "error" : "success"), $(), P(null), A && await U();
361
+ n || U(`Executed ${e} action${e === 1 ? "" : "s"}${t > 0 ? ` • ${t} failed` : ""}`, t > 0 ? "error" : "success"), $(), N(null), k && await W();
330
362
  } catch (e) {
331
- H(e instanceof Error ? e.message : "Failed to execute actions", "error");
363
+ U(e instanceof Error ? e.message : "Failed to execute actions", "error");
332
364
  } finally {
333
- I(null);
365
+ F(null);
334
366
  }
335
367
  }, [
336
368
  Q,
337
369
  J,
338
- H,
370
+ U,
339
371
  $,
340
- A,
341
- U
372
+ k,
373
+ W
342
374
  ]);
343
- return Ie ? /* @__PURE__ */ h(_, { children: /* @__PURE__ */ h(oe, { message: "Loading Actions..." }) }) : b && b.permissionStrings?.length > 0 && !Le ? /* @__PURE__ */ h(_, { children: /* @__PURE__ */ h(Me, {}) }) : Qe ? /* @__PURE__ */ h(_, { children: /* @__PURE__ */ h(oe, { message: "Loading Actions..." }) }) : $e ? /* @__PURE__ */ h(_, { children: /* @__PURE__ */ h(se, {
344
- message: $e.message,
345
- onRetry: () => U()
375
+ return Be ? /* @__PURE__ */ h(_, { children: /* @__PURE__ */ h(oe, { message: "Loading Actions..." }) }) : b && b.permissionStrings?.length > 0 && !Ve ? /* @__PURE__ */ h(_, { children: /* @__PURE__ */ h(Ie, {}) }) : st ? /* @__PURE__ */ h(_, { children: /* @__PURE__ */ h(oe, { message: "Loading Actions..." }) }) : ct ? /* @__PURE__ */ h(_, { children: /* @__PURE__ */ h(se, {
376
+ message: ct.message,
377
+ onRetry: () => W()
346
378
  }) }) : /* @__PURE__ */ g(_, {
347
379
  className: "p-4 sm:p-6 space-y-6",
348
380
  children: [
@@ -353,15 +385,15 @@ function v() {
353
385
  className: "flex items-center gap-2",
354
386
  children: [/* @__PURE__ */ h("button", {
355
387
  type: "button",
356
- onClick: () => U(),
388
+ onClick: () => W(),
357
389
  className: "p-2 rounded-lg hover:bg-bg-tertiary text-text-tertiary hover:text-text-primary transition-colors",
358
390
  title: "Refresh",
359
- children: /* @__PURE__ */ h(Oe, { size: 16 })
360
- }), Re && /* @__PURE__ */ g("button", {
391
+ children: /* @__PURE__ */ h(Me, { size: 16 })
392
+ }), He && /* @__PURE__ */ g("button", {
361
393
  type: "button",
362
- onClick: () => T({ type: "create" }),
394
+ onClick: () => w({ type: "create" }),
363
395
  className: "inline-flex items-center gap-1.5 px-4 py-2 rounded-lg bg-action-primary-bg text-action-primary-text hover:opacity-90 text-sm font-medium transition-opacity",
364
- children: [/* @__PURE__ */ h(De, { size: 16 }), "Create Action"]
396
+ children: [/* @__PURE__ */ h(je, { size: 16 }), "Create Action"]
365
397
  })]
366
398
  })
367
399
  }),
@@ -370,26 +402,26 @@ function v() {
370
402
  className: "flex flex-wrap items-center gap-3",
371
403
  children: [
372
404
  /* @__PURE__ */ h(de, {
373
- value: D,
374
- onChange: Ue,
405
+ value: E,
406
+ onChange: Je,
375
407
  placeholder: x("actions.searchPlaceholder", "Search actions..."),
376
408
  className: "w-full sm:w-64"
377
409
  }),
378
410
  /* @__PURE__ */ h(fe, {
379
411
  label: "Type",
380
- options: Ne,
381
- value: O,
382
- onChange: We
412
+ options: Le,
413
+ value: D,
414
+ onChange: Ye
383
415
  }),
384
416
  /* @__PURE__ */ h(fe, {
385
417
  label: "Trigger",
386
- options: Pe,
387
- value: k,
388
- onChange: Ge
418
+ options: Re,
419
+ value: O,
420
+ onChange: Xe
389
421
  })
390
422
  ]
391
423
  }),
392
- W.length > 0 && /* @__PURE__ */ h("div", {
424
+ G.length > 0 && /* @__PURE__ */ h("div", {
393
425
  "data-tour": "actions-selection-toolbar",
394
426
  className: "rounded-lg border border-border-default bg-bg-surface p-4",
395
427
  children: /* @__PURE__ */ g("div", {
@@ -398,16 +430,16 @@ function v() {
398
430
  className: "flex flex-wrap items-center gap-3",
399
431
  children: [/* @__PURE__ */ g("div", {
400
432
  className: "flex items-center gap-2",
401
- children: [/* @__PURE__ */ h(ge, {
402
- checked: ht,
403
- indeterminate: gt,
404
- onChange: vt,
433
+ children: [/* @__PURE__ */ h(_e, {
434
+ checked: Et,
435
+ indeterminate: Dt,
436
+ onChange: kt,
405
437
  ariaLabel: "Select all visible actions"
406
438
  }), /* @__PURE__ */ h("span", {
407
439
  className: "text-sm font-medium text-text-primary",
408
440
  children: "Select all visible"
409
441
  })]
410
- }), M.size > 0 && /* @__PURE__ */ h("button", {
442
+ }), j.size > 0 && /* @__PURE__ */ h("button", {
411
443
  type: "button",
412
444
  onClick: $,
413
445
  className: "text-sm text-text-secondary hover:text-text-primary",
@@ -418,17 +450,17 @@ function v() {
418
450
  children: [
419
451
  /* @__PURE__ */ g("span", {
420
452
  className: "rounded-full bg-bg-sunken px-3 py-1 text-sm font-medium text-text-secondary",
421
- children: [M.size, " selected"]
453
+ children: [j.size, " selected"]
422
454
  }),
423
455
  /* @__PURE__ */ h("button", {
424
456
  type: "button",
425
- onClick: () => P("execute"),
426
- disabled: Q.length === 0 || F !== null,
457
+ onClick: () => N("execute"),
458
+ disabled: Q.length === 0 || P !== null,
427
459
  className: "rounded-md border border-status-success-border px-3 py-2 text-sm font-medium text-status-success-text hover:bg-status-success-bg disabled:cursor-not-allowed disabled:opacity-50",
428
460
  children: /* @__PURE__ */ g("span", {
429
461
  className: "inline-flex items-center gap-2",
430
462
  children: [
431
- /* @__PURE__ */ h(Ee, { size: 14 }),
463
+ /* @__PURE__ */ h(Ae, { size: 14 }),
432
464
  "Execute Selected",
433
465
  Q.length > 0 ? ` (${Q.length})` : ""
434
466
  ]
@@ -436,13 +468,13 @@ function v() {
436
468
  }),
437
469
  /* @__PURE__ */ h("button", {
438
470
  type: "button",
439
- onClick: yt,
440
- disabled: Q.length === 0 || F !== null,
471
+ onClick: At,
472
+ disabled: Q.length === 0 || P !== null,
441
473
  className: "rounded-md border border-border-default px-3 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken disabled:cursor-not-allowed disabled:opacity-50",
442
474
  children: /* @__PURE__ */ g("span", {
443
475
  className: "inline-flex items-center gap-2",
444
476
  children: [
445
- /* @__PURE__ */ h(Te, { size: 14 }),
477
+ /* @__PURE__ */ h(ke, { size: 14 }),
446
478
  "Duplicate Selected",
447
479
  Q.length > 0 ? ` (${Q.length})` : ""
448
480
  ]
@@ -450,13 +482,13 @@ function v() {
450
482
  }),
451
483
  /* @__PURE__ */ h("button", {
452
484
  type: "button",
453
- onClick: () => P("delete"),
454
- disabled: Q.length === 0 || F !== null,
485
+ onClick: () => N("delete"),
486
+ disabled: Q.length === 0 || P !== null,
455
487
  className: "rounded-md border border-status-error-border px-3 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg disabled:cursor-not-allowed disabled:opacity-50",
456
488
  children: /* @__PURE__ */ g("span", {
457
489
  className: "inline-flex items-center gap-2",
458
490
  children: [
459
- /* @__PURE__ */ h(ke, { size: 14 }),
491
+ /* @__PURE__ */ h(Ne, { size: 14 }),
460
492
  "Delete Selected",
461
493
  Q.length > 0 ? ` (${Q.length})` : ""
462
494
  ]
@@ -468,81 +500,81 @@ function v() {
468
500
  }),
469
501
  /* @__PURE__ */ h(m, {
470
502
  mode: "wait",
471
- children: W.length === 0 && !Qe && /* @__PURE__ */ h(ue, {
503
+ children: G.length === 0 && !st && /* @__PURE__ */ h(ue, {
472
504
  title: "No actions yet",
473
505
  description: "Create your first action to automate commands, scripts, and webhooks",
474
506
  action: /* @__PURE__ */ g("div", {
475
507
  className: "flex items-center gap-2",
476
- children: [Re && /* @__PURE__ */ h("button", {
508
+ children: [He && /* @__PURE__ */ h("button", {
477
509
  type: "button",
478
- onClick: () => T({ type: "create" }),
510
+ onClick: () => w({ type: "create" }),
479
511
  className: "px-4 py-2 rounded-lg bg-action-primary-bg text-action-primary-text hover:opacity-90 text-sm font-medium",
480
512
  children: "Create Action"
481
- }), /* @__PURE__ */ h(he, { prompt: "What is an Action in VibeControls and how do I create one?" })]
513
+ }), /* @__PURE__ */ h(ge, { prompt: "What is an Action in VibeControls and how do I create one?" })]
482
514
  })
483
515
  })
484
516
  }),
485
- W.length > 0 && /* @__PURE__ */ h("div", {
517
+ G.length > 0 && /* @__PURE__ */ h("div", {
486
518
  "data-tour": "actions-list-container",
487
519
  className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",
488
- children: W.map((e) => /* @__PURE__ */ h("div", {
520
+ children: G.map((e) => /* @__PURE__ */ h("div", {
489
521
  role: "button",
490
522
  tabIndex: 0,
491
- onClick: () => j(e.id),
523
+ onClick: () => A(e.id),
492
524
  onKeyDown: (t) => {
493
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), j(e.id));
525
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), A(e.id));
494
526
  },
495
527
  "aria-label": `Select action ${e.displayName || e.name}`,
496
- children: /* @__PURE__ */ h(ye, {
528
+ children: /* @__PURE__ */ h(xe, {
497
529
  action: e,
498
- onExecute: ft,
499
- onEdit: (e) => T({
530
+ onExecute: St,
531
+ onEdit: (e) => w({
500
532
  type: "edit",
501
533
  actionId: e
502
534
  }),
503
- onDuplicate: mt,
504
- onDelete: (t) => T({
535
+ onDuplicate: Tt,
536
+ onDelete: (t) => w({
505
537
  type: "confirmDelete",
506
538
  id: t,
507
539
  name: e.displayName || e.name
508
540
  }),
509
541
  onSchedule: (e) => v(`/scheduler?actionId=${encodeURIComponent(e)}`),
510
542
  onAddToCalendar: (e) => v(`/vibecontrols/calendar?actionId=${encodeURIComponent(e)}`),
511
- canUpdate: ze,
512
- canDelete: Be,
513
- canExecute: Ve,
514
- isExecuting: Ke === e.id,
515
- selected: M.has(e.id),
516
- onToggleSelect: (t) => _t(e.id, t)
543
+ canUpdate: Ue,
544
+ canDelete: We,
545
+ canExecute: Ge,
546
+ isExecuting: Ze === e.id,
547
+ selected: j.has(e.id),
548
+ onToggleSelect: (t) => Ot(e.id, t)
517
549
  })
518
550
  }, e.id))
519
551
  }),
520
- /* @__PURE__ */ h(m, { children: A && G && /* @__PURE__ */ g("div", {
552
+ /* @__PURE__ */ h(m, { children: k && K && /* @__PURE__ */ g("div", {
521
553
  className: "space-y-3",
522
- children: [Fe && /* @__PURE__ */ h(Se, {
523
- actionId: A,
524
- workspaceId: Fe,
525
- actionName: G.displayName || G.name,
526
- onClose: () => j(null)
554
+ children: [ze && /* @__PURE__ */ h(Ee, {
555
+ actionId: k,
556
+ workspaceId: ze,
557
+ actionName: K.displayName || K.name,
558
+ onClose: () => A(null)
527
559
  }), /* @__PURE__ */ h("div", {
528
560
  "data-tour": "actions-execution-history",
529
- children: /* @__PURE__ */ h(xe, {
530
- executions: tt,
531
- actionName: G.displayName || G.name,
532
- onClose: () => j(null)
561
+ children: /* @__PURE__ */ h(Te, {
562
+ executions: ut,
563
+ actionName: K.displayName || K.name,
564
+ onClose: () => A(null)
533
565
  })
534
566
  })]
535
567
  }) }),
536
- /* @__PURE__ */ h(m, { children: He.length > 0 && /* @__PURE__ */ h("div", {
568
+ /* @__PURE__ */ h(m, { children: qe.length > 0 && /* @__PURE__ */ h("div", {
537
569
  className: "fixed bottom-4 left-4 right-4 sm:left-auto sm:bottom-6 sm:right-6 z-50 flex flex-col gap-2 max-w-[calc(100vw-2rem)] sm:max-w-md",
538
- children: He.slice(-3).map((e) => /* @__PURE__ */ g("div", {
570
+ children: qe.slice(-3).map((e) => /* @__PURE__ */ g("div", {
539
571
  role: "button",
540
572
  tabIndex: 0,
541
573
  onKeyDown: (t) => {
542
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), Xe(e.id));
574
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), at(e.id));
543
575
  },
544
576
  className: `p-4 rounded-xl shadow-lg border cursor-pointer ${e.variant === "success" ? "bg-status-success-bg/10 border-status-success-border/30 text-status-success-text" : "bg-status-error-bg/10 border-status-error-border/30 text-status-error-text"}`,
545
- onClick: () => Xe(e.id),
577
+ onClick: () => at(e.id),
546
578
  children: [/* @__PURE__ */ h("div", {
547
579
  className: "font-medium text-sm",
548
580
  children: e.message
@@ -552,12 +584,12 @@ function v() {
552
584
  })]
553
585
  }, e.id))
554
586
  }) }),
555
- w.type === "create" && /* @__PURE__ */ h(be, {
587
+ C.type === "create" && /* @__PURE__ */ h(we, {
556
588
  title: "Create Action",
557
- agents: nt,
558
- onSubmit: lt,
559
- onCancel: () => T({ type: "none" }),
560
- isLoading: it,
589
+ agents: ft,
590
+ onSubmit: yt,
591
+ onCancel: () => w({ type: "none" }),
592
+ isLoading: mt,
561
593
  extraSection: /* @__PURE__ */ g("div", {
562
594
  className: "space-y-4",
563
595
  children: [/* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("h3", {
@@ -565,15 +597,15 @@ function v() {
565
597
  children: x("actions.tags", "Tags")
566
598
  }), /* @__PURE__ */ h(ce, {
567
599
  entityType: "VIBECONTROLS_ACTION",
568
- onDraftChange: at
569
- })] }), /* @__PURE__ */ h(pe, {
570
- value: z,
571
- onChange: B,
572
- disabled: it
600
+ onDraftChange: ht
601
+ })] }), /* @__PURE__ */ h(me, {
602
+ value: B,
603
+ onChange: V,
604
+ disabled: mt
573
605
  })]
574
606
  })
575
607
  }),
576
- w.type === "edit" && Z && /* @__PURE__ */ h(be, {
608
+ C.type === "edit" && Z && /* @__PURE__ */ h(we, {
577
609
  title: "Edit Action",
578
610
  initialData: {
579
611
  name: Z.name,
@@ -597,10 +629,10 @@ function v() {
597
629
  retryCount: Z.retryCount || 0,
598
630
  confirmationRequired: Z.confirmationRequired ?? !1
599
631
  },
600
- agents: nt,
601
- onSubmit: ut,
602
- onCancel: () => T({ type: "none" }),
603
- isLoading: ct,
632
+ agents: ft,
633
+ onSubmit: bt,
634
+ onCancel: () => w({ type: "none" }),
635
+ isLoading: vt,
604
636
  extraSection: /* @__PURE__ */ g("div", {
605
637
  className: "space-y-4",
606
638
  children: [/* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("h3", {
@@ -609,59 +641,66 @@ function v() {
609
641
  }), /* @__PURE__ */ h(ce, {
610
642
  entityType: "VIBECONTROLS_ACTION",
611
643
  entityId: Z.id
612
- })] }), /* @__PURE__ */ h(pe, {
613
- value: V,
614
- onChange: Ye,
615
- disabled: ct
644
+ })] }), /* @__PURE__ */ h(me, {
645
+ value: H,
646
+ onChange: it,
647
+ disabled: vt
616
648
  })]
617
649
  })
618
650
  }),
619
- w.type === "confirmDelete" && /* @__PURE__ */ h(o, {
651
+ C.type === "confirmDelete" && /* @__PURE__ */ h(o, {
620
652
  isOpen: !0,
621
653
  title: "Delete Action",
622
- message: `Are you sure you want to delete "${w.name}"? This cannot be undone.`,
654
+ message: `Are you sure you want to delete "${C.name}"? This cannot be undone.`,
623
655
  confirmLabel: "Delete",
624
656
  variant: "danger",
625
- onConfirm: dt,
626
- onClose: () => T({ type: "none" })
657
+ onConfirm: xt,
658
+ onClose: () => w({ type: "none" })
627
659
  }),
628
- w.type === "confirmExecute" && /* @__PURE__ */ h(o, {
660
+ C.type === "confirmExecute" && /* @__PURE__ */ h(o, {
629
661
  isOpen: !0,
630
- title: `Execute: ${w.name}`,
631
- message: `Are you sure you want to execute "${w.name}"?`,
662
+ title: `Execute: ${C.name}`,
663
+ message: `Are you sure you want to execute "${C.name}"?`,
632
664
  confirmLabel: "Execute",
633
665
  variant: "warning",
634
- onConfirm: pt,
635
- onClose: () => T({ type: "none" })
666
+ onConfirm: Ct,
667
+ onClose: () => w({ type: "none" })
636
668
  }),
637
669
  /* @__PURE__ */ h(o, {
638
- isOpen: Je === "delete",
670
+ isOpen: $e === "delete",
639
671
  title: "Delete Selected Actions",
640
672
  message: `Are you sure you want to delete ${Q.length} selected action${Q.length === 1 ? "" : "s"}? This cannot be undone.`,
641
673
  confirmLabel: "Delete Actions",
642
674
  variant: "danger",
643
- onConfirm: bt,
644
- onClose: () => P(null),
645
- isLoading: F === "delete"
675
+ onConfirm: jt,
676
+ onClose: () => N(null),
677
+ isLoading: P === "delete"
646
678
  }),
647
679
  /* @__PURE__ */ h(o, {
648
- isOpen: Je === "execute",
680
+ isOpen: $e === "execute",
649
681
  title: "Execute Selected Actions",
650
682
  message: `Execute ${Q.length} selected action${Q.length === 1 ? "" : "s"}? This may trigger commands, scripts, or webhooks immediately.`,
651
683
  confirmLabel: "Execute Actions",
652
684
  variant: "warning",
653
- onConfirm: xt,
654
- onClose: () => P(null),
655
- isLoading: F === "execute"
685
+ onConfirm: Mt,
686
+ onClose: () => N(null),
687
+ isLoading: P === "execute"
656
688
  }),
657
689
  /* @__PURE__ */ h(ne, {
658
- isOpen: L !== null,
659
- onClose: () => R(null),
690
+ isOpen: I !== null,
691
+ onClose: () => L(null),
660
692
  onConfirm: () => {
661
- c(), R(null), v("/billing/plans");
693
+ c(), L(null), v("/billing/plans");
662
694
  },
663
- title: L ? re(L).title : void 0,
664
- message: L ? re(L).message : ""
695
+ title: I ? re(I).title : void 0,
696
+ message: I ? re(I).message : ""
697
+ }),
698
+ /* @__PURE__ */ h(pe, {
699
+ isOpen: R !== null,
700
+ agentName: R ? ft.find((e) => e.id === R.agentId)?.name : void 0,
701
+ isLoading: et,
702
+ onClose: () => z(null),
703
+ onConfirm: wt
665
704
  })
666
705
  ]
667
706
  });