@elizaos/agent 2.0.0-alpha.520 → 2.0.0-alpha.521

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 (1991) hide show
  1. package/apps/app-elizamaker/src/drop-service.d.ts +7 -2
  2. package/apps/app-elizamaker/src/drop-service.d.ts.map +1 -1
  3. package/package.json +4 -4
  4. package/packages/agent/src/api/registry-service.d.ts +1 -1
  5. package/packages/agent/src/api/registry-service.d.ts.map +1 -1
  6. package/packages/agent/src/api/server.d.ts.map +1 -1
  7. package/packages/agent/src/api/server.js +1 -1
  8. package/apps/app-companion/src/character-catalog.d.ts +0 -10
  9. package/apps/app-companion/src/character-catalog.d.ts.map +0 -1
  10. package/apps/app-companion/src/character-catalog.js +0 -32
  11. package/apps/app-companion/src/components/avatar/MathEnvironment.d.ts +0 -38
  12. package/apps/app-companion/src/components/avatar/MathEnvironment.d.ts.map +0 -1
  13. package/apps/app-companion/src/components/avatar/MathEnvironment.js +0 -295
  14. package/apps/app-companion/src/components/avatar/SceneOverlayManager.d.ts +0 -36
  15. package/apps/app-companion/src/components/avatar/SceneOverlayManager.d.ts.map +0 -1
  16. package/apps/app-companion/src/components/avatar/SceneOverlayManager.js +0 -305
  17. package/apps/app-companion/src/components/avatar/VrmAnimationLoader.d.ts +0 -30
  18. package/apps/app-companion/src/components/avatar/VrmAnimationLoader.d.ts.map +0 -1
  19. package/apps/app-companion/src/components/avatar/VrmAnimationLoader.js +0 -99
  20. package/apps/app-companion/src/components/avatar/VrmBlinkController.d.ts +0 -37
  21. package/apps/app-companion/src/components/avatar/VrmBlinkController.d.ts.map +0 -1
  22. package/apps/app-companion/src/components/avatar/VrmBlinkController.js +0 -98
  23. package/apps/app-companion/src/components/avatar/VrmCameraManager.d.ts +0 -57
  24. package/apps/app-companion/src/components/avatar/VrmCameraManager.d.ts.map +0 -1
  25. package/apps/app-companion/src/components/avatar/VrmCameraManager.js +0 -256
  26. package/apps/app-companion/src/components/avatar/VrmEngine.d.ts +0 -283
  27. package/apps/app-companion/src/components/avatar/VrmEngine.d.ts.map +0 -1
  28. package/apps/app-companion/src/components/avatar/VrmEngine.js +0 -2003
  29. package/apps/app-companion/src/components/avatar/VrmFootShadow.d.ts +0 -18
  30. package/apps/app-companion/src/components/avatar/VrmFootShadow.d.ts.map +0 -1
  31. package/apps/app-companion/src/components/avatar/VrmFootShadow.js +0 -83
  32. package/apps/app-companion/src/components/avatar/VrmTeleportEffect.d.ts +0 -49
  33. package/apps/app-companion/src/components/avatar/VrmTeleportEffect.d.ts.map +0 -1
  34. package/apps/app-companion/src/components/avatar/VrmTeleportEffect.js +0 -390
  35. package/apps/app-companion/src/components/avatar/VrmViewer.d.ts +0 -64
  36. package/apps/app-companion/src/components/avatar/VrmViewer.d.ts.map +0 -1
  37. package/apps/app-companion/src/components/avatar/VrmViewer.js +0 -437
  38. package/apps/app-companion/src/components/avatar/mixamoVRMRigMap.d.ts +0 -3
  39. package/apps/app-companion/src/components/avatar/mixamoVRMRigMap.d.ts.map +0 -1
  40. package/apps/app-companion/src/components/avatar/mixamoVRMRigMap.js +0 -56
  41. package/apps/app-companion/src/components/avatar/retargetMixamoFbxToVrm.d.ts +0 -9
  42. package/apps/app-companion/src/components/avatar/retargetMixamoFbxToVrm.d.ts.map +0 -1
  43. package/apps/app-companion/src/components/avatar/retargetMixamoFbxToVrm.js +0 -127
  44. package/apps/app-companion/src/components/avatar/retargetMixamoGltfToVrm.d.ts +0 -11
  45. package/apps/app-companion/src/components/avatar/retargetMixamoGltfToVrm.d.ts.map +0 -1
  46. package/apps/app-companion/src/components/avatar/retargetMixamoGltfToVrm.js +0 -97
  47. package/apps/app-companion/src/components/avatar/scene-overlay-renderer.d.ts +0 -37
  48. package/apps/app-companion/src/components/avatar/scene-overlay-renderer.d.ts.map +0 -1
  49. package/apps/app-companion/src/components/avatar/scene-overlay-renderer.js +0 -337
  50. package/apps/app-companion/src/components/avatar/scene-theme-tokens.d.ts +0 -26
  51. package/apps/app-companion/src/components/avatar/scene-theme-tokens.d.ts.map +0 -1
  52. package/apps/app-companion/src/components/avatar/scene-theme-tokens.js +0 -48
  53. package/apps/app-companion/src/components/avatar/vector-browser-three.d.ts +0 -9
  54. package/apps/app-companion/src/components/avatar/vector-browser-three.d.ts.map +0 -1
  55. package/apps/app-companion/src/components/avatar/vector-browser-three.js +0 -21
  56. package/apps/app-companion/src/components/avatar/vector-browser-utils.d.ts +0 -52
  57. package/apps/app-companion/src/components/avatar/vector-browser-utils.d.ts.map +0 -1
  58. package/apps/app-companion/src/components/avatar/vector-browser-utils.js +0 -245
  59. package/apps/app-companion/src/components/avatar/vrm-desktop-energy.d.ts +0 -40
  60. package/apps/app-companion/src/components/avatar/vrm-desktop-energy.d.ts.map +0 -1
  61. package/apps/app-companion/src/components/avatar/vrm-desktop-energy.js +0 -74
  62. package/apps/app-companion/src/components/chat/ChatAvatar.d.ts +0 -3
  63. package/apps/app-companion/src/components/chat/ChatAvatar.d.ts.map +0 -1
  64. package/apps/app-companion/src/components/chat/ChatAvatar.js +0 -80
  65. package/apps/app-companion/src/components/companion/CompanionAppView.d.ts +0 -9
  66. package/apps/app-companion/src/components/companion/CompanionAppView.d.ts.map +0 -1
  67. package/apps/app-companion/src/components/companion/CompanionAppView.js +0 -121
  68. package/apps/app-companion/src/components/companion/CompanionHeader.d.ts +0 -27
  69. package/apps/app-companion/src/components/companion/CompanionHeader.d.ts.map +0 -1
  70. package/apps/app-companion/src/components/companion/CompanionHeader.js +0 -67
  71. package/apps/app-companion/src/components/companion/CompanionPerformanceSettings.d.ts +0 -2
  72. package/apps/app-companion/src/components/companion/CompanionPerformanceSettings.d.ts.map +0 -1
  73. package/apps/app-companion/src/components/companion/CompanionPerformanceSettings.js +0 -33
  74. package/apps/app-companion/src/components/companion/CompanionSceneHost.d.ts +0 -15
  75. package/apps/app-companion/src/components/companion/CompanionSceneHost.d.ts.map +0 -1
  76. package/apps/app-companion/src/components/companion/CompanionSceneHost.js +0 -476
  77. package/apps/app-companion/src/components/companion/CompanionSettingsPanel.d.ts +0 -2
  78. package/apps/app-companion/src/components/companion/CompanionSettingsPanel.d.ts.map +0 -1
  79. package/apps/app-companion/src/components/companion/CompanionSettingsPanel.js +0 -7
  80. package/apps/app-companion/src/components/companion/CompanionShell.d.ts +0 -8
  81. package/apps/app-companion/src/components/companion/CompanionShell.d.ts.map +0 -1
  82. package/apps/app-companion/src/components/companion/CompanionShell.js +0 -9
  83. package/apps/app-companion/src/components/companion/CompanionView.d.ts +0 -7
  84. package/apps/app-companion/src/components/companion/CompanionView.d.ts.map +0 -1
  85. package/apps/app-companion/src/components/companion/CompanionView.js +0 -126
  86. package/apps/app-companion/src/components/companion/EmotePicker.d.ts +0 -2
  87. package/apps/app-companion/src/components/companion/EmotePicker.d.ts.map +0 -1
  88. package/apps/app-companion/src/components/companion/EmotePicker.js +0 -351
  89. package/apps/app-companion/src/components/companion/GlobalEmoteOverlay.d.ts +0 -2
  90. package/apps/app-companion/src/components/companion/GlobalEmoteOverlay.d.ts.map +0 -1
  91. package/apps/app-companion/src/components/companion/GlobalEmoteOverlay.js +0 -113
  92. package/apps/app-companion/src/components/companion/InferenceCloudAlertButton.d.ts +0 -9
  93. package/apps/app-companion/src/components/companion/InferenceCloudAlertButton.d.ts.map +0 -1
  94. package/apps/app-companion/src/components/companion/InferenceCloudAlertButton.js +0 -16
  95. package/apps/app-companion/src/components/companion/VrmStage.d.ts +0 -27
  96. package/apps/app-companion/src/components/companion/VrmStage.d.ts.map +0 -1
  97. package/apps/app-companion/src/components/companion/VrmStage.js +0 -179
  98. package/apps/app-companion/src/components/companion/companion-app.d.ts +0 -6
  99. package/apps/app-companion/src/components/companion/companion-app.d.ts.map +0 -1
  100. package/apps/app-companion/src/components/companion/companion-app.js +0 -15
  101. package/apps/app-companion/src/components/companion/companion-scene-status-context.d.ts +0 -7
  102. package/apps/app-companion/src/components/companion/companion-scene-status-context.d.ts.map +0 -1
  103. package/apps/app-companion/src/components/companion/companion-scene-status-context.js +0 -8
  104. package/apps/app-companion/src/components/companion/companion-shell-styles.d.ts +0 -38
  105. package/apps/app-companion/src/components/companion/companion-shell-styles.d.ts.map +0 -1
  106. package/apps/app-companion/src/components/companion/companion-shell-styles.js +0 -237
  107. package/apps/app-companion/src/components/companion/resolve-companion-inference-notice.d.ts +0 -19
  108. package/apps/app-companion/src/components/companion/resolve-companion-inference-notice.d.ts.map +0 -1
  109. package/apps/app-companion/src/components/companion/resolve-companion-inference-notice.js +0 -31
  110. package/apps/app-companion/src/components/companion/scene-overlay-bridge.d.ts +0 -6
  111. package/apps/app-companion/src/components/companion/scene-overlay-bridge.d.ts.map +0 -1
  112. package/apps/app-companion/src/components/companion/scene-overlay-bridge.js +0 -83
  113. package/apps/app-companion/src/components/companion/shared-companion-scene-context.d.ts +0 -3
  114. package/apps/app-companion/src/components/companion/shared-companion-scene-context.d.ts.map +0 -1
  115. package/apps/app-companion/src/components/companion/shared-companion-scene-context.js +0 -13
  116. package/apps/app-companion/src/components/companion/walletUtils.d.ts +0 -91
  117. package/apps/app-companion/src/components/companion/walletUtils.d.ts.map +0 -1
  118. package/apps/app-companion/src/components/companion/walletUtils.js +0 -152
  119. package/apps/app-companion/src/index.d.ts +0 -38
  120. package/apps/app-companion/src/index.d.ts.map +0 -1
  121. package/apps/app-companion/src/index.js +0 -37
  122. package/apps/app-companion/src/types/render-modes.d.ts +0 -4
  123. package/apps/app-companion/src/types/render-modes.d.ts.map +0 -1
  124. package/apps/app-companion/src/types/render-modes.js +0 -6
  125. package/apps/app-companion/src/vrm-assets.d.ts +0 -10
  126. package/apps/app-companion/src/vrm-assets.d.ts.map +0 -1
  127. package/apps/app-companion/src/vrm-assets.js +0 -70
  128. package/apps/app-lifeops/src/api/client-lifeops.d.ts +0 -406
  129. package/apps/app-lifeops/src/api/client-lifeops.d.ts.map +0 -1
  130. package/apps/app-lifeops/src/api/client-lifeops.js +0 -1070
  131. package/apps/app-steward/src/ApprovalQueue.d.ts +0 -18
  132. package/apps/app-steward/src/ApprovalQueue.d.ts.map +0 -1
  133. package/apps/app-steward/src/ApprovalQueue.js +0 -141
  134. package/apps/app-steward/src/StewardLogo.d.ts +0 -11
  135. package/apps/app-steward/src/StewardLogo.d.ts.map +0 -1
  136. package/apps/app-steward/src/StewardLogo.js +0 -4
  137. package/apps/app-steward/src/StewardView.d.ts +0 -6
  138. package/apps/app-steward/src/StewardView.d.ts.map +0 -1
  139. package/apps/app-steward/src/StewardView.js +0 -45
  140. package/apps/app-steward/src/TransactionHistory.d.ts +0 -22
  141. package/apps/app-steward/src/TransactionHistory.d.ts.map +0 -1
  142. package/apps/app-steward/src/TransactionHistory.js +0 -100
  143. package/apps/app-steward/src/actions/check-balance.d.ts +0 -17
  144. package/apps/app-steward/src/actions/check-balance.d.ts.map +0 -1
  145. package/apps/app-steward/src/actions/check-balance.js +0 -168
  146. package/apps/app-steward/src/actions/execute-trade.d.ts +0 -17
  147. package/apps/app-steward/src/actions/execute-trade.d.ts.map +0 -1
  148. package/apps/app-steward/src/actions/execute-trade.js +0 -307
  149. package/apps/app-steward/src/actions/get-receive-address.d.ts +0 -13
  150. package/apps/app-steward/src/actions/get-receive-address.d.ts.map +0 -1
  151. package/apps/app-steward/src/actions/get-receive-address.js +0 -127
  152. package/apps/app-steward/src/actions/prepare-swap.d.ts +0 -13
  153. package/apps/app-steward/src/actions/prepare-swap.d.ts.map +0 -1
  154. package/apps/app-steward/src/actions/prepare-swap.js +0 -303
  155. package/apps/app-steward/src/actions/prepare-transfer.d.ts +0 -14
  156. package/apps/app-steward/src/actions/prepare-transfer.d.ts.map +0 -1
  157. package/apps/app-steward/src/actions/prepare-transfer.js +0 -217
  158. package/apps/app-steward/src/actions/transfer-token.d.ts +0 -17
  159. package/apps/app-steward/src/actions/transfer-token.d.ts.map +0 -1
  160. package/apps/app-steward/src/actions/transfer-token.js +0 -479
  161. package/apps/app-steward/src/actions/wallet-action-shared.d.ts +0 -15
  162. package/apps/app-steward/src/actions/wallet-action-shared.d.ts.map +0 -1
  163. package/apps/app-steward/src/actions/wallet-action-shared.js +0 -24
  164. package/apps/app-steward/src/api/bsc-trade.d.ts +0 -36
  165. package/apps/app-steward/src/api/bsc-trade.d.ts.map +0 -1
  166. package/apps/app-steward/src/api/bsc-trade.js +0 -782
  167. package/apps/app-steward/src/api/tx-service.d.ts +0 -53
  168. package/apps/app-steward/src/api/tx-service.d.ts.map +0 -1
  169. package/apps/app-steward/src/api/tx-service.js +0 -217
  170. package/apps/app-steward/src/api/wallet-bsc-routes.d.ts +0 -63
  171. package/apps/app-steward/src/api/wallet-bsc-routes.d.ts.map +0 -1
  172. package/apps/app-steward/src/api/wallet-bsc-routes.js +0 -318
  173. package/apps/app-steward/src/api/wallet-trading-profile.d.ts +0 -31
  174. package/apps/app-steward/src/api/wallet-trading-profile.d.ts.map +0 -1
  175. package/apps/app-steward/src/api/wallet-trading-profile.js +0 -560
  176. package/apps/app-steward/src/browser-workspace-wallet.d.ts +0 -80
  177. package/apps/app-steward/src/browser-workspace-wallet.d.ts.map +0 -1
  178. package/apps/app-steward/src/browser-workspace-wallet.js +0 -135
  179. package/apps/app-steward/src/chain-utils.d.ts +0 -10
  180. package/apps/app-steward/src/chain-utils.d.ts.map +0 -1
  181. package/apps/app-steward/src/chain-utils.js +0 -83
  182. package/apps/app-steward/src/index.d.ts +0 -20
  183. package/apps/app-steward/src/index.d.ts.map +0 -1
  184. package/apps/app-steward/src/index.js +0 -19
  185. package/apps/app-steward/src/plugin.d.ts +0 -21
  186. package/apps/app-steward/src/plugin.d.ts.map +0 -1
  187. package/apps/app-steward/src/plugin.js +0 -325
  188. package/apps/app-steward/src/routes/steward-bridge.d.ts +0 -202
  189. package/apps/app-steward/src/routes/steward-bridge.d.ts.map +0 -1
  190. package/apps/app-steward/src/routes/steward-bridge.js +0 -858
  191. package/apps/app-steward/src/routes/steward-compat-routes.d.ts +0 -21
  192. package/apps/app-steward/src/routes/steward-compat-routes.d.ts.map +0 -1
  193. package/apps/app-steward/src/routes/steward-compat-routes.js +0 -372
  194. package/apps/app-steward/src/routes/wallet-browser-compat-routes.d.ts +0 -4
  195. package/apps/app-steward/src/routes/wallet-browser-compat-routes.d.ts.map +0 -1
  196. package/apps/app-steward/src/routes/wallet-browser-compat-routes.js +0 -387
  197. package/apps/app-steward/src/routes/wallet-bsc-core-routes.d.ts +0 -15
  198. package/apps/app-steward/src/routes/wallet-bsc-core-routes.d.ts.map +0 -1
  199. package/apps/app-steward/src/routes/wallet-bsc-core-routes.js +0 -42
  200. package/apps/app-steward/src/routes/wallet-compat-routes.d.ts +0 -13
  201. package/apps/app-steward/src/routes/wallet-compat-routes.d.ts.map +0 -1
  202. package/apps/app-steward/src/routes/wallet-compat-routes.js +0 -200
  203. package/apps/app-steward/src/routes/wallet-trade-compat-routes.d.ts +0 -11
  204. package/apps/app-steward/src/routes/wallet-trade-compat-routes.d.ts.map +0 -1
  205. package/apps/app-steward/src/routes/wallet-trade-compat-routes.js +0 -528
  206. package/apps/app-steward/src/security/hydrate-wallet-keys-from-platform-store.d.ts +0 -7
  207. package/apps/app-steward/src/security/hydrate-wallet-keys-from-platform-store.d.ts.map +0 -1
  208. package/apps/app-steward/src/security/hydrate-wallet-keys-from-platform-store.js +0 -40
  209. package/apps/app-steward/src/security/wallet-os-store-actions.d.ts +0 -14
  210. package/apps/app-steward/src/security/wallet-os-store-actions.d.ts.map +0 -1
  211. package/apps/app-steward/src/security/wallet-os-store-actions.js +0 -70
  212. package/apps/app-steward/src/services/steward-credentials.d.ts +0 -37
  213. package/apps/app-steward/src/services/steward-credentials.d.ts.map +0 -1
  214. package/apps/app-steward/src/services/steward-credentials.js +0 -91
  215. package/apps/app-steward/src/services/steward-sidecar/health-check.d.ts +0 -9
  216. package/apps/app-steward/src/services/steward-sidecar/health-check.d.ts.map +0 -1
  217. package/apps/app-steward/src/services/steward-sidecar/health-check.js +0 -34
  218. package/apps/app-steward/src/services/steward-sidecar/helpers.d.ts +0 -21
  219. package/apps/app-steward/src/services/steward-sidecar/helpers.d.ts.map +0 -1
  220. package/apps/app-steward/src/services/steward-sidecar/helpers.js +0 -71
  221. package/apps/app-steward/src/services/steward-sidecar/process-management.d.ts +0 -9
  222. package/apps/app-steward/src/services/steward-sidecar/process-management.d.ts.map +0 -1
  223. package/apps/app-steward/src/services/steward-sidecar/process-management.js +0 -53
  224. package/apps/app-steward/src/services/steward-sidecar/types.d.ts +0 -60
  225. package/apps/app-steward/src/services/steward-sidecar/types.d.ts.map +0 -1
  226. package/apps/app-steward/src/services/steward-sidecar/types.js +0 -17
  227. package/apps/app-steward/src/services/steward-sidecar/wallet-setup.d.ts +0 -9
  228. package/apps/app-steward/src/services/steward-sidecar/wallet-setup.d.ts.map +0 -1
  229. package/apps/app-steward/src/services/steward-sidecar/wallet-setup.js +0 -114
  230. package/apps/app-steward/src/services/steward-sidecar.d.ts +0 -69
  231. package/apps/app-steward/src/services/steward-sidecar.d.ts.map +0 -1
  232. package/apps/app-steward/src/services/steward-sidecar.js +0 -383
  233. package/apps/app-steward/src/services/steward-wallet.d.ts +0 -25
  234. package/apps/app-steward/src/services/steward-wallet.d.ts.map +0 -1
  235. package/apps/app-steward/src/services/steward-wallet.js +0 -332
  236. package/apps/app-steward/src/types/bsc-trade.d.ts +0 -181
  237. package/apps/app-steward/src/types/bsc-trade.d.ts.map +0 -1
  238. package/apps/app-steward/src/types/bsc-trade.js +0 -8
  239. package/apps/app-steward/src/types/index.d.ts +0 -3
  240. package/apps/app-steward/src/types/index.d.ts.map +0 -1
  241. package/apps/app-steward/src/types/index.js +0 -2
  242. package/apps/app-steward/src/types/steward.d.ts +0 -85
  243. package/apps/app-steward/src/types/steward.d.ts.map +0 -1
  244. package/apps/app-steward/src/types/steward.js +0 -9
  245. package/apps/app-vincent/src/client.d.ts +0 -17
  246. package/apps/app-vincent/src/client.d.ts.map +0 -1
  247. package/apps/app-vincent/src/client.js +0 -38
  248. package/apps/app-vincent/src/vincent-contracts.d.ts +0 -52
  249. package/apps/app-vincent/src/vincent-contracts.d.ts.map +0 -1
  250. package/apps/app-vincent/src/vincent-contracts.js +0 -4
  251. package/packages/app-core/src/App.d.ts +0 -6
  252. package/packages/app-core/src/App.d.ts.map +0 -1
  253. package/packages/app-core/src/App.js +0 -516
  254. package/packages/app-core/src/api/auth/audit.d.ts +0 -52
  255. package/packages/app-core/src/api/auth/audit.d.ts.map +0 -1
  256. package/packages/app-core/src/api/auth/audit.js +0 -126
  257. package/packages/app-core/src/api/auth/legacy-bearer.d.ts +0 -75
  258. package/packages/app-core/src/api/auth/legacy-bearer.d.ts.map +0 -1
  259. package/packages/app-core/src/api/auth/legacy-bearer.js +0 -126
  260. package/packages/app-core/src/api/auth/sessions.d.ts +0 -152
  261. package/packages/app-core/src/api/auth/sessions.d.ts.map +0 -1
  262. package/packages/app-core/src/api/auth/sessions.js +0 -298
  263. package/packages/app-core/src/api/auth/tokens.d.ts +0 -3
  264. package/packages/app-core/src/api/auth/tokens.d.ts.map +0 -1
  265. package/packages/app-core/src/api/auth/tokens.js +0 -13
  266. package/packages/app-core/src/api/auth-client.d.ts +0 -130
  267. package/packages/app-core/src/api/auth-client.d.ts.map +0 -1
  268. package/packages/app-core/src/api/auth-client.js +0 -301
  269. package/packages/app-core/src/api/auth.d.ts +0 -155
  270. package/packages/app-core/src/api/auth.d.ts.map +0 -1
  271. package/packages/app-core/src/api/auth.js +0 -326
  272. package/packages/app-core/src/api/client-agent.d.ts +0 -627
  273. package/packages/app-core/src/api/client-agent.d.ts.map +0 -1
  274. package/packages/app-core/src/api/client-agent.js +0 -1442
  275. package/packages/app-core/src/api/client-automations.d.ts +0 -8
  276. package/packages/app-core/src/api/client-automations.d.ts.map +0 -1
  277. package/packages/app-core/src/api/client-automations.js +0 -7
  278. package/packages/app-core/src/api/client-base.d.ts +0 -82
  279. package/packages/app-core/src/api/client-base.d.ts.map +0 -1
  280. package/packages/app-core/src/api/client-base.js +0 -729
  281. package/packages/app-core/src/api/client-browser-workspace.d.ts +0 -25
  282. package/packages/app-core/src/api/client-browser-workspace.d.ts.map +0 -1
  283. package/packages/app-core/src/api/client-browser-workspace.js +0 -98
  284. package/packages/app-core/src/api/client-chat.d.ts +0 -355
  285. package/packages/app-core/src/api/client-chat.d.ts.map +0 -1
  286. package/packages/app-core/src/api/client-chat.js +0 -582
  287. package/packages/app-core/src/api/client-cloud.d.ts +0 -286
  288. package/packages/app-core/src/api/client-cloud.d.ts.map +0 -1
  289. package/packages/app-core/src/api/client-cloud.js +0 -410
  290. package/packages/app-core/src/api/client-computeruse.d.ts +0 -32
  291. package/packages/app-core/src/api/client-computeruse.d.ts.map +0 -1
  292. package/packages/app-core/src/api/client-computeruse.js +0 -16
  293. package/packages/app-core/src/api/client-imessage.d.ts +0 -68
  294. package/packages/app-core/src/api/client-imessage.d.ts.map +0 -1
  295. package/packages/app-core/src/api/client-imessage.js +0 -74
  296. package/packages/app-core/src/api/client-local-inference.d.ts +0 -62
  297. package/packages/app-core/src/api/client-local-inference.d.ts.map +0 -1
  298. package/packages/app-core/src/api/client-local-inference.js +0 -87
  299. package/packages/app-core/src/api/client-n8n.d.ts +0 -27
  300. package/packages/app-core/src/api/client-n8n.d.ts.map +0 -1
  301. package/packages/app-core/src/api/client-n8n.js +0 -61
  302. package/packages/app-core/src/api/client-skills.d.ts +0 -475
  303. package/packages/app-core/src/api/client-skills.d.ts.map +0 -1
  304. package/packages/app-core/src/api/client-skills.js +0 -608
  305. package/packages/app-core/src/api/client-types-babylon.d.ts +0 -254
  306. package/packages/app-core/src/api/client-types-babylon.d.ts.map +0 -1
  307. package/packages/app-core/src/api/client-types-babylon.js +0 -2
  308. package/packages/app-core/src/api/client-types-character.d.ts +0 -39
  309. package/packages/app-core/src/api/client-types-character.d.ts.map +0 -1
  310. package/packages/app-core/src/api/client-types-character.js +0 -1
  311. package/packages/app-core/src/api/client-types-chat.d.ts +0 -428
  312. package/packages/app-core/src/api/client-types-chat.d.ts.map +0 -1
  313. package/packages/app-core/src/api/client-types-chat.js +0 -9
  314. package/packages/app-core/src/api/client-types-config.d.ts +0 -586
  315. package/packages/app-core/src/api/client-types-config.d.ts.map +0 -1
  316. package/packages/app-core/src/api/client-types-config.js +0 -5
  317. package/packages/app-core/src/api/client-types-experience.d.ts +0 -97
  318. package/packages/app-core/src/api/client-types-experience.d.ts.map +0 -1
  319. package/packages/app-core/src/api/client-types-experience.js +0 -1
  320. package/packages/app-core/src/api/client-types-relationships.d.ts +0 -181
  321. package/packages/app-core/src/api/client-types-relationships.d.ts.map +0 -1
  322. package/packages/app-core/src/api/client-types-relationships.js +0 -1
  323. package/packages/app-core/src/api/client-types.d.ts +0 -9
  324. package/packages/app-core/src/api/client-types.d.ts.map +0 -1
  325. package/packages/app-core/src/api/client-types.js +0 -12
  326. package/packages/app-core/src/api/client-wallet.d.ts +0 -129
  327. package/packages/app-core/src/api/client-wallet.d.ts.map +0 -1
  328. package/packages/app-core/src/api/client-wallet.js +0 -228
  329. package/packages/app-core/src/api/client.d.ts +0 -38
  330. package/packages/app-core/src/api/client.d.ts.map +0 -1
  331. package/packages/app-core/src/api/client.js +0 -38
  332. package/packages/app-core/src/api/csrf-client.d.ts +0 -29
  333. package/packages/app-core/src/api/csrf-client.d.ts.map +0 -1
  334. package/packages/app-core/src/api/csrf-client.js +0 -54
  335. package/packages/app-core/src/api/index.d.ts +0 -2
  336. package/packages/app-core/src/api/index.d.ts.map +0 -1
  337. package/packages/app-core/src/api/index.js +0 -1
  338. package/packages/app-core/src/app-shell/task-coordinator-slots.d.ts +0 -38
  339. package/packages/app-core/src/app-shell/task-coordinator-slots.d.ts.map +0 -1
  340. package/packages/app-core/src/app-shell/task-coordinator-slots.js +0 -21
  341. package/packages/app-core/src/autonomy/index.d.ts +0 -48
  342. package/packages/app-core/src/autonomy/index.d.ts.map +0 -1
  343. package/packages/app-core/src/autonomy/index.js +0 -336
  344. package/packages/app-core/src/bridge/capacitor-bridge.d.ts +0 -153
  345. package/packages/app-core/src/bridge/capacitor-bridge.d.ts.map +0 -1
  346. package/packages/app-core/src/bridge/capacitor-bridge.js +0 -195
  347. package/packages/app-core/src/bridge/electrobun-rpc.d.ts +0 -57
  348. package/packages/app-core/src/bridge/electrobun-rpc.d.ts.map +0 -1
  349. package/packages/app-core/src/bridge/electrobun-rpc.js +0 -87
  350. package/packages/app-core/src/bridge/electrobun-runtime.d.ts +0 -3
  351. package/packages/app-core/src/bridge/electrobun-runtime.d.ts.map +0 -1
  352. package/packages/app-core/src/bridge/electrobun-runtime.js +0 -34
  353. package/packages/app-core/src/bridge/gateway-discovery.d.ts +0 -17
  354. package/packages/app-core/src/bridge/gateway-discovery.d.ts.map +0 -1
  355. package/packages/app-core/src/bridge/gateway-discovery.js +0 -49
  356. package/packages/app-core/src/bridge/index.d.ts +0 -7
  357. package/packages/app-core/src/bridge/index.d.ts.map +0 -1
  358. package/packages/app-core/src/bridge/index.js +0 -6
  359. package/packages/app-core/src/bridge/native-plugins.d.ts +0 -504
  360. package/packages/app-core/src/bridge/native-plugins.d.ts.map +0 -1
  361. package/packages/app-core/src/bridge/native-plugins.js +0 -67
  362. package/packages/app-core/src/bridge/plugin-bridge.d.ts +0 -133
  363. package/packages/app-core/src/bridge/plugin-bridge.d.ts.map +0 -1
  364. package/packages/app-core/src/bridge/plugin-bridge.js +0 -241
  365. package/packages/app-core/src/bridge/storage-bridge.d.ts +0 -39
  366. package/packages/app-core/src/bridge/storage-bridge.d.ts.map +0 -1
  367. package/packages/app-core/src/bridge/storage-bridge.js +0 -142
  368. package/packages/app-core/src/character/character-draft-helpers.d.ts +0 -35
  369. package/packages/app-core/src/character/character-draft-helpers.d.ts.map +0 -1
  370. package/packages/app-core/src/character/character-draft-helpers.js +0 -270
  371. package/packages/app-core/src/chat/coding-agent-session-state.d.ts +0 -16
  372. package/packages/app-core/src/chat/coding-agent-session-state.d.ts.map +0 -1
  373. package/packages/app-core/src/chat/coding-agent-session-state.js +0 -27
  374. package/packages/app-core/src/chat/index.d.ts +0 -65
  375. package/packages/app-core/src/chat/index.d.ts.map +0 -1
  376. package/packages/app-core/src/chat/index.js +0 -225
  377. package/packages/app-core/src/components/accounts/AccountCard.d.ts +0 -30
  378. package/packages/app-core/src/components/accounts/AccountCard.d.ts.map +0 -1
  379. package/packages/app-core/src/components/accounts/AccountCard.js +0 -185
  380. package/packages/app-core/src/components/accounts/AccountList.d.ts +0 -15
  381. package/packages/app-core/src/components/accounts/AccountList.d.ts.map +0 -1
  382. package/packages/app-core/src/components/accounts/AccountList.js +0 -89
  383. package/packages/app-core/src/components/accounts/AddAccountDialog.d.ts +0 -33
  384. package/packages/app-core/src/components/accounts/AddAccountDialog.d.ts.map +0 -1
  385. package/packages/app-core/src/components/accounts/AddAccountDialog.js +0 -318
  386. package/packages/app-core/src/components/accounts/RotationStrategyPicker.d.ts +0 -16
  387. package/packages/app-core/src/components/accounts/RotationStrategyPicker.d.ts.map +0 -1
  388. package/packages/app-core/src/components/accounts/RotationStrategyPicker.js +0 -45
  389. package/packages/app-core/src/components/apps/AppsCatalogGrid.d.ts +0 -14
  390. package/packages/app-core/src/components/apps/AppsCatalogGrid.d.ts.map +0 -1
  391. package/packages/app-core/src/components/apps/AppsCatalogGrid.js +0 -208
  392. package/packages/app-core/src/components/apps/AppsSidebar.d.ts +0 -22
  393. package/packages/app-core/src/components/apps/AppsSidebar.d.ts.map +0 -1
  394. package/packages/app-core/src/components/apps/AppsSidebar.js +0 -98
  395. package/packages/app-core/src/components/apps/GameView.d.ts +0 -18
  396. package/packages/app-core/src/components/apps/GameView.d.ts.map +0 -1
  397. package/packages/app-core/src/components/apps/GameView.js +0 -1133
  398. package/packages/app-core/src/components/apps/GameViewOverlay.d.ts +0 -2
  399. package/packages/app-core/src/components/apps/GameViewOverlay.d.ts.map +0 -1
  400. package/packages/app-core/src/components/apps/GameViewOverlay.js +0 -120
  401. package/packages/app-core/src/components/apps/RunningAppsRow.d.ts +0 -12
  402. package/packages/app-core/src/components/apps/RunningAppsRow.d.ts.map +0 -1
  403. package/packages/app-core/src/components/apps/RunningAppsRow.js +0 -35
  404. package/packages/app-core/src/components/apps/app-identity.d.ts +0 -32
  405. package/packages/app-core/src/components/apps/app-identity.d.ts.map +0 -1
  406. package/packages/app-core/src/components/apps/app-identity.js +0 -182
  407. package/packages/app-core/src/components/apps/catalog-loader.d.ts +0 -7
  408. package/packages/app-core/src/components/apps/catalog-loader.d.ts.map +0 -1
  409. package/packages/app-core/src/components/apps/catalog-loader.js +0 -30
  410. package/packages/app-core/src/components/apps/extensions/registry.d.ts +0 -12
  411. package/packages/app-core/src/components/apps/extensions/registry.d.ts.map +0 -1
  412. package/packages/app-core/src/components/apps/extensions/registry.js +0 -23
  413. package/packages/app-core/src/components/apps/extensions/surface.d.ts +0 -34
  414. package/packages/app-core/src/components/apps/extensions/surface.d.ts.map +0 -1
  415. package/packages/app-core/src/components/apps/extensions/surface.js +0 -96
  416. package/packages/app-core/src/components/apps/extensions/types.d.ts +0 -7
  417. package/packages/app-core/src/components/apps/extensions/types.d.ts.map +0 -1
  418. package/packages/app-core/src/components/apps/extensions/types.js +0 -1
  419. package/packages/app-core/src/components/apps/helpers.d.ts +0 -53
  420. package/packages/app-core/src/components/apps/helpers.d.ts.map +0 -1
  421. package/packages/app-core/src/components/apps/helpers.js +0 -364
  422. package/packages/app-core/src/components/apps/internal-tool-apps.d.ts +0 -18
  423. package/packages/app-core/src/components/apps/internal-tool-apps.d.ts.map +0 -1
  424. package/packages/app-core/src/components/apps/internal-tool-apps.js +0 -173
  425. package/packages/app-core/src/components/apps/launch-history.d.ts +0 -16
  426. package/packages/app-core/src/components/apps/launch-history.d.ts.map +0 -1
  427. package/packages/app-core/src/components/apps/launch-history.js +0 -77
  428. package/packages/app-core/src/components/apps/overlay-app-api.d.ts +0 -55
  429. package/packages/app-core/src/components/apps/overlay-app-api.d.ts.map +0 -1
  430. package/packages/app-core/src/components/apps/overlay-app-api.js +0 -8
  431. package/packages/app-core/src/components/apps/overlay-app-registry.d.ts +0 -19
  432. package/packages/app-core/src/components/apps/overlay-app-registry.d.ts.map +0 -1
  433. package/packages/app-core/src/components/apps/overlay-app-registry.js +0 -58
  434. package/packages/app-core/src/components/apps/per-app-config.d.ts +0 -19
  435. package/packages/app-core/src/components/apps/per-app-config.d.ts.map +0 -1
  436. package/packages/app-core/src/components/apps/per-app-config.js +0 -99
  437. package/packages/app-core/src/components/apps/run-attention.d.ts +0 -3
  438. package/packages/app-core/src/components/apps/run-attention.d.ts.map +0 -1
  439. package/packages/app-core/src/components/apps/run-attention.js +0 -77
  440. package/packages/app-core/src/components/apps/surfaces/GameOperatorShell.d.ts +0 -47
  441. package/packages/app-core/src/components/apps/surfaces/GameOperatorShell.d.ts.map +0 -1
  442. package/packages/app-core/src/components/apps/surfaces/GameOperatorShell.js +0 -42
  443. package/packages/app-core/src/components/apps/surfaces/registry.d.ts +0 -11
  444. package/packages/app-core/src/components/apps/surfaces/registry.d.ts.map +0 -1
  445. package/packages/app-core/src/components/apps/surfaces/registry.js +0 -23
  446. package/packages/app-core/src/components/apps/surfaces/types.d.ts +0 -10
  447. package/packages/app-core/src/components/apps/surfaces/types.d.ts.map +0 -1
  448. package/packages/app-core/src/components/apps/surfaces/types.js +0 -1
  449. package/packages/app-core/src/components/apps/useRegistryCatalog.d.ts +0 -14
  450. package/packages/app-core/src/components/apps/useRegistryCatalog.d.ts.map +0 -1
  451. package/packages/app-core/src/components/apps/useRegistryCatalog.js +0 -52
  452. package/packages/app-core/src/components/apps/viewer-auth.d.ts +0 -7
  453. package/packages/app-core/src/components/apps/viewer-auth.d.ts.map +0 -1
  454. package/packages/app-core/src/components/apps/viewer-auth.js +0 -55
  455. package/packages/app-core/src/components/auth/LoginView.d.ts +0 -17
  456. package/packages/app-core/src/components/auth/LoginView.d.ts.map +0 -1
  457. package/packages/app-core/src/components/auth/LoginView.js +0 -62
  458. package/packages/app-core/src/components/character/CharacterEditor.d.ts +0 -12
  459. package/packages/app-core/src/components/character/CharacterEditor.d.ts.map +0 -1
  460. package/packages/app-core/src/components/character/CharacterEditor.js +0 -885
  461. package/packages/app-core/src/components/character/CharacterEditorPanels.d.ts +0 -35
  462. package/packages/app-core/src/components/character/CharacterEditorPanels.d.ts.map +0 -1
  463. package/packages/app-core/src/components/character/CharacterEditorPanels.js +0 -250
  464. package/packages/app-core/src/components/character/CharacterExperienceWorkspace.d.ts +0 -11
  465. package/packages/app-core/src/components/character/CharacterExperienceWorkspace.d.ts.map +0 -1
  466. package/packages/app-core/src/components/character/CharacterExperienceWorkspace.js +0 -453
  467. package/packages/app-core/src/components/character/CharacterHubView.d.ts +0 -22
  468. package/packages/app-core/src/components/character/CharacterHubView.d.ts.map +0 -1
  469. package/packages/app-core/src/components/character/CharacterHubView.js +0 -688
  470. package/packages/app-core/src/components/character/CharacterLearnedSkillsSection.d.ts +0 -2
  471. package/packages/app-core/src/components/character/CharacterLearnedSkillsSection.d.ts.map +0 -1
  472. package/packages/app-core/src/components/character/CharacterLearnedSkillsSection.js +0 -76
  473. package/packages/app-core/src/components/character/CharacterOverviewSection.d.ts +0 -27
  474. package/packages/app-core/src/components/character/CharacterOverviewSection.d.ts.map +0 -1
  475. package/packages/app-core/src/components/character/CharacterOverviewSection.js +0 -36
  476. package/packages/app-core/src/components/character/CharacterRelationshipsSection.d.ts +0 -7
  477. package/packages/app-core/src/components/character/CharacterRelationshipsSection.d.ts.map +0 -1
  478. package/packages/app-core/src/components/character/CharacterRelationshipsSection.js +0 -4
  479. package/packages/app-core/src/components/character/CharacterRoster.d.ts +0 -32
  480. package/packages/app-core/src/components/character/CharacterRoster.d.ts.map +0 -1
  481. package/packages/app-core/src/components/character/CharacterRoster.js +0 -111
  482. package/packages/app-core/src/components/character/MusicLibraryCharacterWidget.d.ts +0 -3
  483. package/packages/app-core/src/components/character/MusicLibraryCharacterWidget.d.ts.map +0 -1
  484. package/packages/app-core/src/components/character/MusicLibraryCharacterWidget.js +0 -27
  485. package/packages/app-core/src/components/character/character-editor-helpers.d.ts +0 -42
  486. package/packages/app-core/src/components/character/character-editor-helpers.d.ts.map +0 -1
  487. package/packages/app-core/src/components/character/character-editor-helpers.js +0 -58
  488. package/packages/app-core/src/components/character/character-greeting.d.ts +0 -5
  489. package/packages/app-core/src/components/character/character-greeting.d.ts.map +0 -1
  490. package/packages/app-core/src/components/character/character-greeting.js +0 -22
  491. package/packages/app-core/src/components/character/character-hub-helpers.d.ts +0 -14
  492. package/packages/app-core/src/components/character/character-hub-helpers.d.ts.map +0 -1
  493. package/packages/app-core/src/components/character/character-hub-helpers.js +0 -140
  494. package/packages/app-core/src/components/character/character-hub-types.d.ts +0 -60
  495. package/packages/app-core/src/components/character/character-hub-types.d.ts.map +0 -1
  496. package/packages/app-core/src/components/character/character-hub-types.js +0 -1
  497. package/packages/app-core/src/components/character/character-voice-config.d.ts +0 -33
  498. package/packages/app-core/src/components/character/character-voice-config.d.ts.map +0 -1
  499. package/packages/app-core/src/components/character/character-voice-config.js +0 -95
  500. package/packages/app-core/src/components/chat/AgentActivityBox.d.ts +0 -8
  501. package/packages/app-core/src/components/chat/AgentActivityBox.d.ts.map +0 -1
  502. package/packages/app-core/src/components/chat/AgentActivityBox.js +0 -33
  503. package/packages/app-core/src/components/chat/AppsSection.d.ts +0 -13
  504. package/packages/app-core/src/components/chat/AppsSection.d.ts.map +0 -1
  505. package/packages/app-core/src/components/chat/AppsSection.js +0 -198
  506. package/packages/app-core/src/components/chat/MessageContent.d.ts +0 -41
  507. package/packages/app-core/src/components/chat/MessageContent.d.ts.map +0 -1
  508. package/packages/app-core/src/components/chat/MessageContent.js +0 -691
  509. package/packages/app-core/src/components/chat/SaveCommandModal.d.ts +0 -9
  510. package/packages/app-core/src/components/chat/SaveCommandModal.d.ts.map +0 -1
  511. package/packages/app-core/src/components/chat/SaveCommandModal.js +0 -59
  512. package/packages/app-core/src/components/chat/TasksEventsPanel.d.ts +0 -30
  513. package/packages/app-core/src/components/chat/TasksEventsPanel.d.ts.map +0 -1
  514. package/packages/app-core/src/components/chat/TasksEventsPanel.js +0 -139
  515. package/packages/app-core/src/components/chat/WidgetVisibilityPanel.d.ts +0 -25
  516. package/packages/app-core/src/components/chat/WidgetVisibilityPanel.d.ts.map +0 -1
  517. package/packages/app-core/src/components/chat/WidgetVisibilityPanel.js +0 -30
  518. package/packages/app-core/src/components/chat/chat-source-registration.d.ts +0 -1
  519. package/packages/app-core/src/components/chat/chat-source-registration.d.ts.map +0 -1
  520. package/packages/app-core/src/components/chat/chat-source-registration.js +0 -1
  521. package/packages/app-core/src/components/chat/message-choice-parser.d.ts +0 -20
  522. package/packages/app-core/src/components/chat/message-choice-parser.d.ts.map +0 -1
  523. package/packages/app-core/src/components/chat/message-choice-parser.js +0 -53
  524. package/packages/app-core/src/components/chat/widgets/ChoiceWidget.d.ts +0 -24
  525. package/packages/app-core/src/components/chat/widgets/ChoiceWidget.d.ts.map +0 -1
  526. package/packages/app-core/src/components/chat/widgets/ChoiceWidget.js +0 -38
  527. package/packages/app-core/src/components/chat/widgets/agent-orchestrator.d.ts +0 -20
  528. package/packages/app-core/src/components/chat/widgets/agent-orchestrator.d.ts.map +0 -1
  529. package/packages/app-core/src/components/chat/widgets/agent-orchestrator.js +0 -273
  530. package/packages/app-core/src/components/chat/widgets/browser-status.d.ts +0 -14
  531. package/packages/app-core/src/components/chat/widgets/browser-status.d.ts.map +0 -1
  532. package/packages/app-core/src/components/chat/widgets/browser-status.js +0 -109
  533. package/packages/app-core/src/components/chat/widgets/music-player.d.ts +0 -4
  534. package/packages/app-core/src/components/chat/widgets/music-player.d.ts.map +0 -1
  535. package/packages/app-core/src/components/chat/widgets/music-player.js +0 -132
  536. package/packages/app-core/src/components/chat/widgets/registry.d.ts +0 -8
  537. package/packages/app-core/src/components/chat/widgets/registry.d.ts.map +0 -1
  538. package/packages/app-core/src/components/chat/widgets/registry.js +0 -7
  539. package/packages/app-core/src/components/chat/widgets/shared.d.ts +0 -17
  540. package/packages/app-core/src/components/chat/widgets/shared.d.ts.map +0 -1
  541. package/packages/app-core/src/components/chat/widgets/shared.js +0 -8
  542. package/packages/app-core/src/components/chat/widgets/todo.d.ts +0 -3
  543. package/packages/app-core/src/components/chat/widgets/todo.d.ts.map +0 -1
  544. package/packages/app-core/src/components/chat/widgets/todo.js +0 -109
  545. package/packages/app-core/src/components/chat/widgets/types.d.ts +0 -16
  546. package/packages/app-core/src/components/chat/widgets/types.d.ts.map +0 -1
  547. package/packages/app-core/src/components/chat/widgets/types.js +0 -1
  548. package/packages/app-core/src/components/chat/widgets/wallet-status.d.ts +0 -4
  549. package/packages/app-core/src/components/chat/widgets/wallet-status.d.ts.map +0 -1
  550. package/packages/app-core/src/components/chat/widgets/wallet-status.js +0 -190
  551. package/packages/app-core/src/components/cloud/CloudSourceControls.d.ts +0 -13
  552. package/packages/app-core/src/components/cloud/CloudSourceControls.d.ts.map +0 -1
  553. package/packages/app-core/src/components/cloud/CloudSourceControls.js +0 -19
  554. package/packages/app-core/src/components/cloud/CloudStatusBadge.d.ts +0 -33
  555. package/packages/app-core/src/components/cloud/CloudStatusBadge.d.ts.map +0 -1
  556. package/packages/app-core/src/components/cloud/CloudStatusBadge.js +0 -98
  557. package/packages/app-core/src/components/cloud/FlaminaGuide.d.ts +0 -10
  558. package/packages/app-core/src/components/cloud/FlaminaGuide.d.ts.map +0 -1
  559. package/packages/app-core/src/components/cloud/FlaminaGuide.js +0 -86
  560. package/packages/app-core/src/components/cloud/StripeEmbeddedCheckout.d.ts +0 -24
  561. package/packages/app-core/src/components/cloud/StripeEmbeddedCheckout.d.ts.map +0 -1
  562. package/packages/app-core/src/components/cloud/StripeEmbeddedCheckout.js +0 -101
  563. package/packages/app-core/src/components/companion/injected.d.ts +0 -10
  564. package/packages/app-core/src/components/companion/injected.d.ts.map +0 -1
  565. package/packages/app-core/src/components/companion/injected.js +0 -25
  566. package/packages/app-core/src/components/config-ui/config-control-primitives.d.ts +0 -14
  567. package/packages/app-core/src/components/config-ui/config-control-primitives.d.ts.map +0 -1
  568. package/packages/app-core/src/components/config-ui/config-control-primitives.js +0 -22
  569. package/packages/app-core/src/components/config-ui/config-field.d.ts +0 -58
  570. package/packages/app-core/src/components/config-ui/config-field.d.ts.map +0 -1
  571. package/packages/app-core/src/components/config-ui/config-field.js +0 -874
  572. package/packages/app-core/src/components/config-ui/config-renderer.d.ts +0 -164
  573. package/packages/app-core/src/components/config-ui/config-renderer.d.ts.map +0 -1
  574. package/packages/app-core/src/components/config-ui/config-renderer.js +0 -397
  575. package/packages/app-core/src/components/config-ui/index.d.ts +0 -5
  576. package/packages/app-core/src/components/config-ui/index.d.ts.map +0 -1
  577. package/packages/app-core/src/components/config-ui/index.js +0 -4
  578. package/packages/app-core/src/components/config-ui/ui-renderer.d.ts +0 -15
  579. package/packages/app-core/src/components/config-ui/ui-renderer.d.ts.map +0 -1
  580. package/packages/app-core/src/components/config-ui/ui-renderer.js +0 -826
  581. package/packages/app-core/src/components/connectors/BlueBubblesStatusPanel.d.ts +0 -2
  582. package/packages/app-core/src/components/connectors/BlueBubblesStatusPanel.d.ts.map +0 -1
  583. package/packages/app-core/src/components/connectors/BlueBubblesStatusPanel.js +0 -61
  584. package/packages/app-core/src/components/connectors/ConnectorModeSelector.d.ts +0 -35
  585. package/packages/app-core/src/components/connectors/ConnectorModeSelector.d.ts.map +0 -1
  586. package/packages/app-core/src/components/connectors/ConnectorModeSelector.js +0 -150
  587. package/packages/app-core/src/components/connectors/ConnectorSetupPanel.d.ts +0 -12
  588. package/packages/app-core/src/components/connectors/ConnectorSetupPanel.d.ts.map +0 -1
  589. package/packages/app-core/src/components/connectors/ConnectorSetupPanel.js +0 -92
  590. package/packages/app-core/src/components/connectors/DiscordLocalConnectorPanel.d.ts +0 -2
  591. package/packages/app-core/src/components/connectors/DiscordLocalConnectorPanel.d.ts.map +0 -1
  592. package/packages/app-core/src/components/connectors/DiscordLocalConnectorPanel.js +0 -249
  593. package/packages/app-core/src/components/connectors/IMessageStatusPanel.d.ts +0 -2
  594. package/packages/app-core/src/components/connectors/IMessageStatusPanel.d.ts.map +0 -1
  595. package/packages/app-core/src/components/connectors/IMessageStatusPanel.js +0 -63
  596. package/packages/app-core/src/components/connectors/SignalQrOverlay.d.ts +0 -7
  597. package/packages/app-core/src/components/connectors/SignalQrOverlay.d.ts.map +0 -1
  598. package/packages/app-core/src/components/connectors/SignalQrOverlay.js +0 -63
  599. package/packages/app-core/src/components/connectors/TelegramAccountConnectorPanel.d.ts +0 -2
  600. package/packages/app-core/src/components/connectors/TelegramAccountConnectorPanel.d.ts.map +0 -1
  601. package/packages/app-core/src/components/connectors/TelegramAccountConnectorPanel.js +0 -202
  602. package/packages/app-core/src/components/connectors/TelegramBotSetupPanel.d.ts +0 -2
  603. package/packages/app-core/src/components/connectors/TelegramBotSetupPanel.d.ts.map +0 -1
  604. package/packages/app-core/src/components/connectors/TelegramBotSetupPanel.js +0 -81
  605. package/packages/app-core/src/components/connectors/WhatsAppQrOverlay.d.ts +0 -9
  606. package/packages/app-core/src/components/connectors/WhatsAppQrOverlay.d.ts.map +0 -1
  607. package/packages/app-core/src/components/connectors/WhatsAppQrOverlay.js +0 -53
  608. package/packages/app-core/src/components/conversations/ConversationRenameDialog.d.ts +0 -9
  609. package/packages/app-core/src/components/conversations/ConversationRenameDialog.d.ts.map +0 -1
  610. package/packages/app-core/src/components/conversations/ConversationRenameDialog.js +0 -46
  611. package/packages/app-core/src/components/conversations/ConversationsSidebar.d.ts +0 -9
  612. package/packages/app-core/src/components/conversations/ConversationsSidebar.d.ts.map +0 -1
  613. package/packages/app-core/src/components/conversations/ConversationsSidebar.js +0 -557
  614. package/packages/app-core/src/components/conversations/brand-icons.d.ts +0 -12
  615. package/packages/app-core/src/components/conversations/brand-icons.d.ts.map +0 -1
  616. package/packages/app-core/src/components/conversations/brand-icons.js +0 -49
  617. package/packages/app-core/src/components/conversations/conversation-sidebar-model.d.ts +0 -66
  618. package/packages/app-core/src/components/conversations/conversation-sidebar-model.d.ts.map +0 -1
  619. package/packages/app-core/src/components/conversations/conversation-sidebar-model.js +0 -340
  620. package/packages/app-core/src/components/conversations/conversation-utils.d.ts +0 -9
  621. package/packages/app-core/src/components/conversations/conversation-utils.d.ts.map +0 -1
  622. package/packages/app-core/src/components/conversations/conversation-utils.js +0 -142
  623. package/packages/app-core/src/components/custom-actions/CustomActionEditor.d.ts +0 -10
  624. package/packages/app-core/src/components/custom-actions/CustomActionEditor.d.ts.map +0 -1
  625. package/packages/app-core/src/components/custom-actions/CustomActionEditor.js +0 -385
  626. package/packages/app-core/src/components/custom-actions/CustomActionsPanel.d.ts +0 -9
  627. package/packages/app-core/src/components/custom-actions/CustomActionsPanel.d.ts.map +0 -1
  628. package/packages/app-core/src/components/custom-actions/CustomActionsPanel.js +0 -158
  629. package/packages/app-core/src/components/custom-actions/CustomActionsView.d.ts +0 -2
  630. package/packages/app-core/src/components/custom-actions/CustomActionsView.d.ts.map +0 -1
  631. package/packages/app-core/src/components/custom-actions/CustomActionsView.js +0 -144
  632. package/packages/app-core/src/components/custom-actions/custom-action-form.d.ts +0 -44
  633. package/packages/app-core/src/components/custom-actions/custom-action-form.d.ts.map +0 -1
  634. package/packages/app-core/src/components/custom-actions/custom-action-form.js +0 -237
  635. package/packages/app-core/src/components/index.d.ts +0 -100
  636. package/packages/app-core/src/components/index.d.ts.map +0 -1
  637. package/packages/app-core/src/components/index.js +0 -101
  638. package/packages/app-core/src/components/inventory/ChainIcon.d.ts +0 -9
  639. package/packages/app-core/src/components/inventory/ChainIcon.d.ts.map +0 -1
  640. package/packages/app-core/src/components/inventory/ChainIcon.js +0 -58
  641. package/packages/app-core/src/components/inventory/TokenLogo.d.ts +0 -9
  642. package/packages/app-core/src/components/inventory/TokenLogo.d.ts.map +0 -1
  643. package/packages/app-core/src/components/inventory/TokenLogo.js +0 -26
  644. package/packages/app-core/src/components/inventory/chainConfig.d.ts +0 -89
  645. package/packages/app-core/src/components/inventory/chainConfig.d.ts.map +0 -1
  646. package/packages/app-core/src/components/inventory/chainConfig.js +0 -285
  647. package/packages/app-core/src/components/inventory/constants.d.ts +0 -30
  648. package/packages/app-core/src/components/inventory/constants.d.ts.map +0 -1
  649. package/packages/app-core/src/components/inventory/constants.js +0 -57
  650. package/packages/app-core/src/components/inventory/inventory-chain-filters.d.ts +0 -11
  651. package/packages/app-core/src/components/inventory/inventory-chain-filters.d.ts.map +0 -1
  652. package/packages/app-core/src/components/inventory/inventory-chain-filters.js +0 -41
  653. package/packages/app-core/src/components/inventory/media-url.d.ts +0 -6
  654. package/packages/app-core/src/components/inventory/media-url.d.ts.map +0 -1
  655. package/packages/app-core/src/components/inventory/media-url.js +0 -28
  656. package/packages/app-core/src/components/inventory/useInventoryData.d.ts +0 -38
  657. package/packages/app-core/src/components/inventory/useInventoryData.d.ts.map +0 -1
  658. package/packages/app-core/src/components/inventory/useInventoryData.js +0 -278
  659. package/packages/app-core/src/components/local-inference/ActiveModelBar.d.ts +0 -10
  660. package/packages/app-core/src/components/local-inference/ActiveModelBar.d.ts.map +0 -1
  661. package/packages/app-core/src/components/local-inference/ActiveModelBar.js +0 -19
  662. package/packages/app-core/src/components/local-inference/DeviceBridgeStatus.d.ts +0 -2
  663. package/packages/app-core/src/components/local-inference/DeviceBridgeStatus.d.ts.map +0 -1
  664. package/packages/app-core/src/components/local-inference/DeviceBridgeStatus.js +0 -39
  665. package/packages/app-core/src/components/local-inference/DevicesPanel.d.ts +0 -8
  666. package/packages/app-core/src/components/local-inference/DevicesPanel.d.ts.map +0 -1
  667. package/packages/app-core/src/components/local-inference/DevicesPanel.js +0 -44
  668. package/packages/app-core/src/components/local-inference/DownloadProgress.d.ts +0 -7
  669. package/packages/app-core/src/components/local-inference/DownloadProgress.d.ts.map +0 -1
  670. package/packages/app-core/src/components/local-inference/DownloadProgress.js +0 -8
  671. package/packages/app-core/src/components/local-inference/DownloadQueue.d.ts +0 -15
  672. package/packages/app-core/src/components/local-inference/DownloadQueue.d.ts.map +0 -1
  673. package/packages/app-core/src/components/local-inference/DownloadQueue.js +0 -21
  674. package/packages/app-core/src/components/local-inference/FirstRunOffer.d.ts +0 -11
  675. package/packages/app-core/src/components/local-inference/FirstRunOffer.d.ts.map +0 -1
  676. package/packages/app-core/src/components/local-inference/FirstRunOffer.js +0 -49
  677. package/packages/app-core/src/components/local-inference/HardwareBadge.d.ts +0 -7
  678. package/packages/app-core/src/components/local-inference/HardwareBadge.d.ts.map +0 -1
  679. package/packages/app-core/src/components/local-inference/HardwareBadge.js +0 -10
  680. package/packages/app-core/src/components/local-inference/HuggingFaceSearch.d.ts +0 -22
  681. package/packages/app-core/src/components/local-inference/HuggingFaceSearch.d.ts.map +0 -1
  682. package/packages/app-core/src/components/local-inference/HuggingFaceSearch.js +0 -68
  683. package/packages/app-core/src/components/local-inference/LocalInferencePanel.d.ts +0 -5
  684. package/packages/app-core/src/components/local-inference/LocalInferencePanel.d.ts.map +0 -1
  685. package/packages/app-core/src/components/local-inference/LocalInferencePanel.js +0 -225
  686. package/packages/app-core/src/components/local-inference/ModelCard.d.ts +0 -20
  687. package/packages/app-core/src/components/local-inference/ModelCard.d.ts.map +0 -1
  688. package/packages/app-core/src/components/local-inference/ModelCard.js +0 -21
  689. package/packages/app-core/src/components/local-inference/ModelHubView.d.ts +0 -18
  690. package/packages/app-core/src/components/local-inference/ModelHubView.d.ts.map +0 -1
  691. package/packages/app-core/src/components/local-inference/ModelHubView.js +0 -40
  692. package/packages/app-core/src/components/local-inference/ProvidersList.d.ts +0 -2
  693. package/packages/app-core/src/components/local-inference/ProvidersList.d.ts.map +0 -1
  694. package/packages/app-core/src/components/local-inference/ProvidersList.js +0 -51
  695. package/packages/app-core/src/components/local-inference/RoutingMatrix.d.ts +0 -2
  696. package/packages/app-core/src/components/local-inference/RoutingMatrix.d.ts.map +0 -1
  697. package/packages/app-core/src/components/local-inference/RoutingMatrix.js +0 -108
  698. package/packages/app-core/src/components/local-inference/SlotAssignments.d.ts +0 -15
  699. package/packages/app-core/src/components/local-inference/SlotAssignments.d.ts.map +0 -1
  700. package/packages/app-core/src/components/local-inference/SlotAssignments.js +0 -58
  701. package/packages/app-core/src/components/local-inference/hub-utils.d.ts +0 -27
  702. package/packages/app-core/src/components/local-inference/hub-utils.d.ts.map +0 -1
  703. package/packages/app-core/src/components/local-inference/hub-utils.js +0 -86
  704. package/packages/app-core/src/components/onboarding/BootstrapStep.d.ts +0 -35
  705. package/packages/app-core/src/components/onboarding/BootstrapStep.d.ts.map +0 -1
  706. package/packages/app-core/src/components/onboarding/BootstrapStep.js +0 -150
  707. package/packages/app-core/src/components/onboarding/onboarding-form-primitives.d.ts +0 -54
  708. package/packages/app-core/src/components/onboarding/onboarding-form-primitives.d.ts.map +0 -1
  709. package/packages/app-core/src/components/onboarding/onboarding-form-primitives.js +0 -55
  710. package/packages/app-core/src/components/onboarding/onboarding-step-chrome.d.ts +0 -40
  711. package/packages/app-core/src/components/onboarding/onboarding-step-chrome.d.ts.map +0 -1
  712. package/packages/app-core/src/components/onboarding/onboarding-step-chrome.js +0 -74
  713. package/packages/app-core/src/components/pages/AdvancedPageView.d.ts +0 -4
  714. package/packages/app-core/src/components/pages/AdvancedPageView.d.ts.map +0 -1
  715. package/packages/app-core/src/components/pages/AdvancedPageView.js +0 -72
  716. package/packages/app-core/src/components/pages/AppDetailsView.d.ts +0 -34
  717. package/packages/app-core/src/components/pages/AppDetailsView.d.ts.map +0 -1
  718. package/packages/app-core/src/components/pages/AppDetailsView.js +0 -350
  719. package/packages/app-core/src/components/pages/AppsPageView.d.ts +0 -12
  720. package/packages/app-core/src/components/pages/AppsPageView.d.ts.map +0 -1
  721. package/packages/app-core/src/components/pages/AppsPageView.js +0 -58
  722. package/packages/app-core/src/components/pages/AppsView.d.ts +0 -3
  723. package/packages/app-core/src/components/pages/AppsView.d.ts.map +0 -1
  724. package/packages/app-core/src/components/pages/AppsView.js +0 -883
  725. package/packages/app-core/src/components/pages/AutomationsView.d.ts +0 -6
  726. package/packages/app-core/src/components/pages/AutomationsView.d.ts.map +0 -1
  727. package/packages/app-core/src/components/pages/AutomationsView.js +0 -2512
  728. package/packages/app-core/src/components/pages/BrowserWorkspaceView.d.ts +0 -17
  729. package/packages/app-core/src/components/pages/BrowserWorkspaceView.d.ts.map +0 -1
  730. package/packages/app-core/src/components/pages/BrowserWorkspaceView.js +0 -1326
  731. package/packages/app-core/src/components/pages/ChatModalView.d.ts +0 -13
  732. package/packages/app-core/src/components/pages/ChatModalView.d.ts.map +0 -1
  733. package/packages/app-core/src/components/pages/ChatModalView.js +0 -17
  734. package/packages/app-core/src/components/pages/ChatView.d.ts +0 -24
  735. package/packages/app-core/src/components/pages/ChatView.d.ts.map +0 -1
  736. package/packages/app-core/src/components/pages/ChatView.js +0 -534
  737. package/packages/app-core/src/components/pages/ConfigPageView.d.ts +0 -12
  738. package/packages/app-core/src/components/pages/ConfigPageView.d.ts.map +0 -1
  739. package/packages/app-core/src/components/pages/ConfigPageView.js +0 -263
  740. package/packages/app-core/src/components/pages/ConnectorsPageView.d.ts +0 -8
  741. package/packages/app-core/src/components/pages/ConnectorsPageView.d.ts.map +0 -1
  742. package/packages/app-core/src/components/pages/ConnectorsPageView.js +0 -8
  743. package/packages/app-core/src/components/pages/DatabasePageView.d.ts +0 -5
  744. package/packages/app-core/src/components/pages/DatabasePageView.d.ts.map +0 -1
  745. package/packages/app-core/src/components/pages/DatabasePageView.js +0 -33
  746. package/packages/app-core/src/components/pages/DatabaseView.d.ts +0 -6
  747. package/packages/app-core/src/components/pages/DatabaseView.d.ts.map +0 -1
  748. package/packages/app-core/src/components/pages/DatabaseView.js +0 -247
  749. package/packages/app-core/src/components/pages/ElizaCloudDashboard.d.ts +0 -2
  750. package/packages/app-core/src/components/pages/ElizaCloudDashboard.d.ts.map +0 -1
  751. package/packages/app-core/src/components/pages/ElizaCloudDashboard.js +0 -380
  752. package/packages/app-core/src/components/pages/HeartbeatForm.d.ts +0 -56
  753. package/packages/app-core/src/components/pages/HeartbeatForm.d.ts.map +0 -1
  754. package/packages/app-core/src/components/pages/HeartbeatForm.js +0 -215
  755. package/packages/app-core/src/components/pages/HeartbeatsView.d.ts +0 -3
  756. package/packages/app-core/src/components/pages/HeartbeatsView.d.ts.map +0 -1
  757. package/packages/app-core/src/components/pages/HeartbeatsView.js +0 -399
  758. package/packages/app-core/src/components/pages/InventoryView.d.ts +0 -2
  759. package/packages/app-core/src/components/pages/InventoryView.d.ts.map +0 -1
  760. package/packages/app-core/src/components/pages/InventoryView.js +0 -837
  761. package/packages/app-core/src/components/pages/KnowledgeView.d.ts +0 -12
  762. package/packages/app-core/src/components/pages/KnowledgeView.d.ts.map +0 -1
  763. package/packages/app-core/src/components/pages/KnowledgeView.js +0 -546
  764. package/packages/app-core/src/components/pages/LogsPageView.d.ts +0 -6
  765. package/packages/app-core/src/components/pages/LogsPageView.d.ts.map +0 -1
  766. package/packages/app-core/src/components/pages/LogsPageView.js +0 -6
  767. package/packages/app-core/src/components/pages/LogsView.d.ts +0 -2
  768. package/packages/app-core/src/components/pages/LogsView.d.ts.map +0 -1
  769. package/packages/app-core/src/components/pages/LogsView.js +0 -81
  770. package/packages/app-core/src/components/pages/MediaGalleryView.d.ts +0 -6
  771. package/packages/app-core/src/components/pages/MediaGalleryView.d.ts.map +0 -1
  772. package/packages/app-core/src/components/pages/MediaGalleryView.js +0 -273
  773. package/packages/app-core/src/components/pages/MemoryDetailPanel.d.ts +0 -5
  774. package/packages/app-core/src/components/pages/MemoryDetailPanel.d.ts.map +0 -1
  775. package/packages/app-core/src/components/pages/MemoryDetailPanel.js +0 -17
  776. package/packages/app-core/src/components/pages/MemoryViewerView.d.ts +0 -5
  777. package/packages/app-core/src/components/pages/MemoryViewerView.d.ts.map +0 -1
  778. package/packages/app-core/src/components/pages/MemoryViewerView.js +0 -234
  779. package/packages/app-core/src/components/pages/MiladyOsAppsView.d.ts +0 -4
  780. package/packages/app-core/src/components/pages/MiladyOsAppsView.d.ts.map +0 -1
  781. package/packages/app-core/src/components/pages/MiladyOsAppsView.js +0 -618
  782. package/packages/app-core/src/components/pages/PageScopedChatPane.d.ts +0 -48
  783. package/packages/app-core/src/components/pages/PageScopedChatPane.d.ts.map +0 -1
  784. package/packages/app-core/src/components/pages/PageScopedChatPane.js +0 -503
  785. package/packages/app-core/src/components/pages/PluginCard.d.ts +0 -36
  786. package/packages/app-core/src/components/pages/PluginCard.d.ts.map +0 -1
  787. package/packages/app-core/src/components/pages/PluginCard.js +0 -128
  788. package/packages/app-core/src/components/pages/PluginConfigForm.d.ts +0 -29
  789. package/packages/app-core/src/components/pages/PluginConfigForm.d.ts.map +0 -1
  790. package/packages/app-core/src/components/pages/PluginConfigForm.js +0 -133
  791. package/packages/app-core/src/components/pages/PluginsPageView.d.ts +0 -9
  792. package/packages/app-core/src/components/pages/PluginsPageView.d.ts.map +0 -1
  793. package/packages/app-core/src/components/pages/PluginsPageView.js +0 -5
  794. package/packages/app-core/src/components/pages/PluginsView.d.ts +0 -11
  795. package/packages/app-core/src/components/pages/PluginsView.d.ts.map +0 -1
  796. package/packages/app-core/src/components/pages/PluginsView.js +0 -813
  797. package/packages/app-core/src/components/pages/RelationshipsGraphPanel.d.ts +0 -8
  798. package/packages/app-core/src/components/pages/RelationshipsGraphPanel.d.ts.map +0 -1
  799. package/packages/app-core/src/components/pages/RelationshipsGraphPanel.js +0 -696
  800. package/packages/app-core/src/components/pages/RelationshipsIdentityCluster.d.ts +0 -5
  801. package/packages/app-core/src/components/pages/RelationshipsIdentityCluster.d.ts.map +0 -1
  802. package/packages/app-core/src/components/pages/RelationshipsIdentityCluster.js +0 -17
  803. package/packages/app-core/src/components/pages/RelationshipsView.d.ts +0 -5
  804. package/packages/app-core/src/components/pages/RelationshipsView.d.ts.map +0 -1
  805. package/packages/app-core/src/components/pages/RelationshipsView.js +0 -5
  806. package/packages/app-core/src/components/pages/ReleaseCenterView.d.ts +0 -2
  807. package/packages/app-core/src/components/pages/ReleaseCenterView.d.ts.map +0 -1
  808. package/packages/app-core/src/components/pages/ReleaseCenterView.js +0 -216
  809. package/packages/app-core/src/components/pages/RuntimeView.d.ts +0 -5
  810. package/packages/app-core/src/components/pages/RuntimeView.d.ts.map +0 -1
  811. package/packages/app-core/src/components/pages/RuntimeView.js +0 -283
  812. package/packages/app-core/src/components/pages/ScratchpadView.d.ts +0 -2
  813. package/packages/app-core/src/components/pages/ScratchpadView.d.ts.map +0 -1
  814. package/packages/app-core/src/components/pages/ScratchpadView.js +0 -364
  815. package/packages/app-core/src/components/pages/SecretsView.d.ts +0 -5
  816. package/packages/app-core/src/components/pages/SecretsView.d.ts.map +0 -1
  817. package/packages/app-core/src/components/pages/SecretsView.js +0 -245
  818. package/packages/app-core/src/components/pages/SettingsView.d.ts +0 -6
  819. package/packages/app-core/src/components/pages/SettingsView.d.ts.map +0 -1
  820. package/packages/app-core/src/components/pages/SettingsView.js +0 -498
  821. package/packages/app-core/src/components/pages/SkillsView.d.ts +0 -6
  822. package/packages/app-core/src/components/pages/SkillsView.d.ts.map +0 -1
  823. package/packages/app-core/src/components/pages/SkillsView.js +0 -205
  824. package/packages/app-core/src/components/pages/SqlEditorPanel.d.ts +0 -13
  825. package/packages/app-core/src/components/pages/SqlEditorPanel.d.ts.map +0 -1
  826. package/packages/app-core/src/components/pages/SqlEditorPanel.js +0 -19
  827. package/packages/app-core/src/components/pages/StreamView.d.ts +0 -4
  828. package/packages/app-core/src/components/pages/StreamView.d.ts.map +0 -1
  829. package/packages/app-core/src/components/pages/StreamView.js +0 -113
  830. package/packages/app-core/src/components/pages/TasksPageView.d.ts +0 -2
  831. package/packages/app-core/src/components/pages/TasksPageView.d.ts.map +0 -1
  832. package/packages/app-core/src/components/pages/TasksPageView.js +0 -10
  833. package/packages/app-core/src/components/pages/TrajectoriesView.d.ts +0 -9
  834. package/packages/app-core/src/components/pages/TrajectoriesView.d.ts.map +0 -1
  835. package/packages/app-core/src/components/pages/TrajectoriesView.js +0 -278
  836. package/packages/app-core/src/components/pages/TrajectoryDetailView.d.ts +0 -7
  837. package/packages/app-core/src/components/pages/TrajectoryDetailView.d.ts.map +0 -1
  838. package/packages/app-core/src/components/pages/TrajectoryDetailView.js +0 -173
  839. package/packages/app-core/src/components/pages/TriggersView.d.ts +0 -3
  840. package/packages/app-core/src/components/pages/TriggersView.d.ts.map +0 -1
  841. package/packages/app-core/src/components/pages/TriggersView.js +0 -2
  842. package/packages/app-core/src/components/pages/VectorBrowserView.d.ts +0 -13
  843. package/packages/app-core/src/components/pages/VectorBrowserView.d.ts.map +0 -1
  844. package/packages/app-core/src/components/pages/VectorBrowserView.js +0 -846
  845. package/packages/app-core/src/components/pages/WorkflowGraphViewer.d.ts +0 -15
  846. package/packages/app-core/src/components/pages/WorkflowGraphViewer.d.ts.map +0 -1
  847. package/packages/app-core/src/components/pages/WorkflowGraphViewer.js +0 -403
  848. package/packages/app-core/src/components/pages/automation-conversations.d.ts +0 -16
  849. package/packages/app-core/src/components/pages/automation-conversations.d.ts.map +0 -1
  850. package/packages/app-core/src/components/pages/automation-conversations.js +0 -204
  851. package/packages/app-core/src/components/pages/chat-view-hooks.d.ts +0 -63
  852. package/packages/app-core/src/components/pages/chat-view-hooks.d.ts.map +0 -1
  853. package/packages/app-core/src/components/pages/chat-view-hooks.js +0 -531
  854. package/packages/app-core/src/components/pages/cloud-dashboard-utils.d.ts +0 -91
  855. package/packages/app-core/src/components/pages/cloud-dashboard-utils.d.ts.map +0 -1
  856. package/packages/app-core/src/components/pages/cloud-dashboard-utils.js +0 -284
  857. package/packages/app-core/src/components/pages/config-page-sections.d.ts +0 -86
  858. package/packages/app-core/src/components/pages/config-page-sections.d.ts.map +0 -1
  859. package/packages/app-core/src/components/pages/config-page-sections.js +0 -205
  860. package/packages/app-core/src/components/pages/database-utils.d.ts +0 -30
  861. package/packages/app-core/src/components/pages/database-utils.d.ts.map +0 -1
  862. package/packages/app-core/src/components/pages/database-utils.js +0 -133
  863. package/packages/app-core/src/components/pages/heartbeat-utils.d.ts +0 -105
  864. package/packages/app-core/src/components/pages/heartbeat-utils.d.ts.map +0 -1
  865. package/packages/app-core/src/components/pages/heartbeat-utils.js +0 -368
  866. package/packages/app-core/src/components/pages/knowledge-detail.d.ts +0 -9
  867. package/packages/app-core/src/components/pages/knowledge-detail.d.ts.map +0 -1
  868. package/packages/app-core/src/components/pages/knowledge-detail.js +0 -149
  869. package/packages/app-core/src/components/pages/knowledge-upload.d.ts +0 -27
  870. package/packages/app-core/src/components/pages/knowledge-upload.d.ts.map +0 -1
  871. package/packages/app-core/src/components/pages/knowledge-upload.js +0 -125
  872. package/packages/app-core/src/components/pages/page-scoped-conversations.d.ts +0 -62
  873. package/packages/app-core/src/components/pages/page-scoped-conversations.d.ts.map +0 -1
  874. package/packages/app-core/src/components/pages/page-scoped-conversations.js +0 -266
  875. package/packages/app-core/src/components/pages/plugin-list-utils.d.ts +0 -67
  876. package/packages/app-core/src/components/pages/plugin-list-utils.d.ts.map +0 -1
  877. package/packages/app-core/src/components/pages/plugin-list-utils.js +0 -665
  878. package/packages/app-core/src/components/pages/plugin-view-connectors.d.ts +0 -57
  879. package/packages/app-core/src/components/pages/plugin-view-connectors.d.ts.map +0 -1
  880. package/packages/app-core/src/components/pages/plugin-view-connectors.js +0 -275
  881. package/packages/app-core/src/components/pages/plugin-view-dialogs.d.ts +0 -36
  882. package/packages/app-core/src/components/pages/plugin-view-dialogs.d.ts.map +0 -1
  883. package/packages/app-core/src/components/pages/plugin-view-dialogs.js +0 -63
  884. package/packages/app-core/src/components/pages/plugin-view-modal.d.ts +0 -34
  885. package/packages/app-core/src/components/pages/plugin-view-modal.d.ts.map +0 -1
  886. package/packages/app-core/src/components/pages/plugin-view-modal.js +0 -29
  887. package/packages/app-core/src/components/pages/plugin-view-sidebar.d.ts +0 -36
  888. package/packages/app-core/src/components/pages/plugin-view-sidebar.d.ts.map +0 -1
  889. package/packages/app-core/src/components/pages/plugin-view-sidebar.js +0 -42
  890. package/packages/app-core/src/components/pages/relationships/RelationshipsActivityFeed.d.ts +0 -2
  891. package/packages/app-core/src/components/pages/relationships/RelationshipsActivityFeed.d.ts.map +0 -1
  892. package/packages/app-core/src/components/pages/relationships/RelationshipsActivityFeed.js +0 -85
  893. package/packages/app-core/src/components/pages/relationships/RelationshipsCandidateMergesPanel.d.ts +0 -6
  894. package/packages/app-core/src/components/pages/relationships/RelationshipsCandidateMergesPanel.d.ts.map +0 -1
  895. package/packages/app-core/src/components/pages/relationships/RelationshipsCandidateMergesPanel.js +0 -73
  896. package/packages/app-core/src/components/pages/relationships/RelationshipsPersonPanels.d.ts +0 -27
  897. package/packages/app-core/src/components/pages/relationships/RelationshipsPersonPanels.d.ts.map +0 -1
  898. package/packages/app-core/src/components/pages/relationships/RelationshipsPersonPanels.js +0 -241
  899. package/packages/app-core/src/components/pages/relationships/RelationshipsSidebar.d.ts +0 -10
  900. package/packages/app-core/src/components/pages/relationships/RelationshipsSidebar.d.ts.map +0 -1
  901. package/packages/app-core/src/components/pages/relationships/RelationshipsSidebar.js +0 -16
  902. package/packages/app-core/src/components/pages/relationships/RelationshipsWorkspaceView.d.ts +0 -7
  903. package/packages/app-core/src/components/pages/relationships/RelationshipsWorkspaceView.d.ts.map +0 -1
  904. package/packages/app-core/src/components/pages/relationships/RelationshipsWorkspaceView.js +0 -130
  905. package/packages/app-core/src/components/pages/relationships/relationships-utils.d.ts +0 -16
  906. package/packages/app-core/src/components/pages/relationships/relationships-utils.d.ts.map +0 -1
  907. package/packages/app-core/src/components/pages/relationships/relationships-utils.js +0 -105
  908. package/packages/app-core/src/components/pages/settings/IdentitySettingsSection.d.ts +0 -2
  909. package/packages/app-core/src/components/pages/settings/IdentitySettingsSection.d.ts.map +0 -1
  910. package/packages/app-core/src/components/pages/settings/IdentitySettingsSection.js +0 -310
  911. package/packages/app-core/src/components/pages/skill-detail-panel.d.ts +0 -13
  912. package/packages/app-core/src/components/pages/skill-detail-panel.d.ts.map +0 -1
  913. package/packages/app-core/src/components/pages/skill-detail-panel.js +0 -161
  914. package/packages/app-core/src/components/pages/skill-marketplace.d.ts +0 -38
  915. package/packages/app-core/src/components/pages/skill-marketplace.d.ts.map +0 -1
  916. package/packages/app-core/src/components/pages/skill-marketplace.js +0 -114
  917. package/packages/app-core/src/components/pages/useBrowserWorkspaceWalletBridge.d.ts +0 -43
  918. package/packages/app-core/src/components/pages/useBrowserWorkspaceWalletBridge.d.ts.map +0 -1
  919. package/packages/app-core/src/components/pages/useBrowserWorkspaceWalletBridge.js +0 -362
  920. package/packages/app-core/src/components/pages/vector-browser-utils.d.ts +0 -2
  921. package/packages/app-core/src/components/pages/vector-browser-utils.d.ts.map +0 -1
  922. package/packages/app-core/src/components/pages/vector-browser-utils.js +0 -1
  923. package/packages/app-core/src/components/pages/workflow-graph-events.d.ts +0 -6
  924. package/packages/app-core/src/components/pages/workflow-graph-events.d.ts.map +0 -1
  925. package/packages/app-core/src/components/pages/workflow-graph-events.js +0 -7
  926. package/packages/app-core/src/components/permissions/PermissionIcon.d.ts +0 -4
  927. package/packages/app-core/src/components/permissions/PermissionIcon.d.ts.map +0 -1
  928. package/packages/app-core/src/components/permissions/PermissionIcon.js +0 -13
  929. package/packages/app-core/src/components/permissions/StreamingPermissions.d.ts +0 -21
  930. package/packages/app-core/src/components/permissions/StreamingPermissions.d.ts.map +0 -1
  931. package/packages/app-core/src/components/permissions/StreamingPermissions.js +0 -284
  932. package/packages/app-core/src/components/phone-companion/Chat.d.ts +0 -15
  933. package/packages/app-core/src/components/phone-companion/Chat.d.ts.map +0 -1
  934. package/packages/app-core/src/components/phone-companion/Chat.js +0 -76
  935. package/packages/app-core/src/components/phone-companion/Pairing.d.ts +0 -9
  936. package/packages/app-core/src/components/phone-companion/Pairing.d.ts.map +0 -1
  937. package/packages/app-core/src/components/phone-companion/Pairing.js +0 -124
  938. package/packages/app-core/src/components/phone-companion/PhoneCompanionApp.d.ts +0 -9
  939. package/packages/app-core/src/components/phone-companion/PhoneCompanionApp.d.ts.map +0 -1
  940. package/packages/app-core/src/components/phone-companion/PhoneCompanionApp.js +0 -108
  941. package/packages/app-core/src/components/phone-companion/RemoteSession.d.ts +0 -9
  942. package/packages/app-core/src/components/phone-companion/RemoteSession.d.ts.map +0 -1
  943. package/packages/app-core/src/components/phone-companion/RemoteSession.js +0 -364
  944. package/packages/app-core/src/components/phone-companion/index.d.ts +0 -5
  945. package/packages/app-core/src/components/phone-companion/index.d.ts.map +0 -1
  946. package/packages/app-core/src/components/phone-companion/index.js +0 -4
  947. package/packages/app-core/src/components/plugins/showcase-data.d.ts +0 -4
  948. package/packages/app-core/src/components/plugins/showcase-data.d.ts.map +0 -1
  949. package/packages/app-core/src/components/plugins/showcase-data.js +0 -461
  950. package/packages/app-core/src/components/policy-controls/ApprovedAddressesSection.d.ts +0 -7
  951. package/packages/app-core/src/components/policy-controls/ApprovedAddressesSection.d.ts.map +0 -1
  952. package/packages/app-core/src/components/policy-controls/ApprovedAddressesSection.js +0 -74
  953. package/packages/app-core/src/components/policy-controls/AutoApproveSection.d.ts +0 -7
  954. package/packages/app-core/src/components/policy-controls/AutoApproveSection.d.ts.map +0 -1
  955. package/packages/app-core/src/components/policy-controls/AutoApproveSection.js +0 -14
  956. package/packages/app-core/src/components/policy-controls/PolicyToggle.d.ts +0 -15
  957. package/packages/app-core/src/components/policy-controls/PolicyToggle.d.ts.map +0 -1
  958. package/packages/app-core/src/components/policy-controls/PolicyToggle.js +0 -12
  959. package/packages/app-core/src/components/policy-controls/RateLimitSection.d.ts +0 -7
  960. package/packages/app-core/src/components/policy-controls/RateLimitSection.d.ts.map +0 -1
  961. package/packages/app-core/src/components/policy-controls/RateLimitSection.js +0 -11
  962. package/packages/app-core/src/components/policy-controls/SpendingLimitSection.d.ts +0 -7
  963. package/packages/app-core/src/components/policy-controls/SpendingLimitSection.d.ts.map +0 -1
  964. package/packages/app-core/src/components/policy-controls/SpendingLimitSection.js +0 -15
  965. package/packages/app-core/src/components/policy-controls/TimeWindowSection.d.ts +0 -7
  966. package/packages/app-core/src/components/policy-controls/TimeWindowSection.d.ts.map +0 -1
  967. package/packages/app-core/src/components/policy-controls/TimeWindowSection.js +0 -40
  968. package/packages/app-core/src/components/policy-controls/constants.d.ts +0 -11
  969. package/packages/app-core/src/components/policy-controls/constants.d.ts.map +0 -1
  970. package/packages/app-core/src/components/policy-controls/constants.js +0 -41
  971. package/packages/app-core/src/components/policy-controls/helpers.d.ts +0 -13
  972. package/packages/app-core/src/components/policy-controls/helpers.d.ts.map +0 -1
  973. package/packages/app-core/src/components/policy-controls/helpers.js +0 -43
  974. package/packages/app-core/src/components/policy-controls/index.d.ts +0 -10
  975. package/packages/app-core/src/components/policy-controls/index.d.ts.map +0 -1
  976. package/packages/app-core/src/components/policy-controls/index.js +0 -9
  977. package/packages/app-core/src/components/policy-controls/types.d.ts +0 -58
  978. package/packages/app-core/src/components/policy-controls/types.d.ts.map +0 -1
  979. package/packages/app-core/src/components/policy-controls/types.js +0 -7
  980. package/packages/app-core/src/components/release-center/shared.d.ts +0 -13
  981. package/packages/app-core/src/components/release-center/shared.d.ts.map +0 -1
  982. package/packages/app-core/src/components/release-center/shared.js +0 -38
  983. package/packages/app-core/src/components/release-center/types.d.ts +0 -79
  984. package/packages/app-core/src/components/release-center/types.d.ts.map +0 -1
  985. package/packages/app-core/src/components/release-center/types.js +0 -5
  986. package/packages/app-core/src/components/settings/ApiKeyConfig.d.ts +0 -21
  987. package/packages/app-core/src/components/settings/ApiKeyConfig.d.ts.map +0 -1
  988. package/packages/app-core/src/components/settings/ApiKeyConfig.js +0 -111
  989. package/packages/app-core/src/components/settings/AppearanceSettingsSection.d.ts +0 -2
  990. package/packages/app-core/src/components/settings/AppearanceSettingsSection.d.ts.map +0 -1
  991. package/packages/app-core/src/components/settings/AppearanceSettingsSection.js +0 -253
  992. package/packages/app-core/src/components/settings/AppsManagementSection.d.ts +0 -12
  993. package/packages/app-core/src/components/settings/AppsManagementSection.d.ts.map +0 -1
  994. package/packages/app-core/src/components/settings/AppsManagementSection.js +0 -285
  995. package/packages/app-core/src/components/settings/CapabilitiesSection.d.ts +0 -2
  996. package/packages/app-core/src/components/settings/CapabilitiesSection.d.ts.map +0 -1
  997. package/packages/app-core/src/components/settings/CapabilitiesSection.js +0 -97
  998. package/packages/app-core/src/components/settings/DesktopWorkspaceSection.d.ts +0 -7
  999. package/packages/app-core/src/components/settings/DesktopWorkspaceSection.d.ts.map +0 -1
  1000. package/packages/app-core/src/components/settings/DesktopWorkspaceSection.js +0 -502
  1001. package/packages/app-core/src/components/settings/PermissionsSection.d.ts +0 -8
  1002. package/packages/app-core/src/components/settings/PermissionsSection.d.ts.map +0 -1
  1003. package/packages/app-core/src/components/settings/PermissionsSection.js +0 -310
  1004. package/packages/app-core/src/components/settings/PolicyControlsView.d.ts +0 -2
  1005. package/packages/app-core/src/components/settings/PolicyControlsView.d.ts.map +0 -1
  1006. package/packages/app-core/src/components/settings/PolicyControlsView.js +0 -231
  1007. package/packages/app-core/src/components/settings/ProviderSwitcher.d.ts +0 -22
  1008. package/packages/app-core/src/components/settings/ProviderSwitcher.d.ts.map +0 -1
  1009. package/packages/app-core/src/components/settings/ProviderSwitcher.js +0 -618
  1010. package/packages/app-core/src/components/settings/SecuritySettingsSection.d.ts +0 -2
  1011. package/packages/app-core/src/components/settings/SecuritySettingsSection.d.ts.map +0 -1
  1012. package/packages/app-core/src/components/settings/SecuritySettingsSection.js +0 -381
  1013. package/packages/app-core/src/components/settings/SubscriptionStatus.d.ts +0 -28
  1014. package/packages/app-core/src/components/settings/SubscriptionStatus.d.ts.map +0 -1
  1015. package/packages/app-core/src/components/settings/SubscriptionStatus.js +0 -266
  1016. package/packages/app-core/src/components/settings/VoiceConfigView.d.ts +0 -5
  1017. package/packages/app-core/src/components/settings/VoiceConfigView.d.ts.map +0 -1
  1018. package/packages/app-core/src/components/settings/VoiceConfigView.js +0 -505
  1019. package/packages/app-core/src/components/settings/cloud-model-schema.d.ts +0 -26
  1020. package/packages/app-core/src/components/settings/cloud-model-schema.d.ts.map +0 -1
  1021. package/packages/app-core/src/components/settings/cloud-model-schema.js +0 -103
  1022. package/packages/app-core/src/components/settings/permission-controls.d.ts +0 -37
  1023. package/packages/app-core/src/components/settings/permission-controls.d.ts.map +0 -1
  1024. package/packages/app-core/src/components/settings/permission-controls.js +0 -437
  1025. package/packages/app-core/src/components/settings/permission-types.d.ts +0 -44
  1026. package/packages/app-core/src/components/settings/permission-types.d.ts.map +0 -1
  1027. package/packages/app-core/src/components/settings/permission-types.js +0 -215
  1028. package/packages/app-core/src/components/settings/settings-control-primitives.d.ts +0 -11
  1029. package/packages/app-core/src/components/settings/settings-control-primitives.d.ts.map +0 -1
  1030. package/packages/app-core/src/components/settings/settings-control-primitives.js +0 -14
  1031. package/packages/app-core/src/components/shared/AppPageSidebar.d.ts +0 -12
  1032. package/packages/app-core/src/components/shared/AppPageSidebar.d.ts.map +0 -1
  1033. package/packages/app-core/src/components/shared/AppPageSidebar.js +0 -119
  1034. package/packages/app-core/src/components/shared/CollapsibleSidebarSection.d.ts +0 -19
  1035. package/packages/app-core/src/components/shared/CollapsibleSidebarSection.d.ts.map +0 -1
  1036. package/packages/app-core/src/components/shared/CollapsibleSidebarSection.js +0 -12
  1037. package/packages/app-core/src/components/shared/LanguageDropdown.d.ts +0 -24
  1038. package/packages/app-core/src/components/shared/LanguageDropdown.d.ts.map +0 -1
  1039. package/packages/app-core/src/components/shared/LanguageDropdown.js +0 -37
  1040. package/packages/app-core/src/components/shared/ThemeToggle.d.ts +0 -14
  1041. package/packages/app-core/src/components/shared/ThemeToggle.d.ts.map +0 -1
  1042. package/packages/app-core/src/components/shared/ThemeToggle.js +0 -14
  1043. package/packages/app-core/src/components/shared/confirm-delete-control.d.ts +0 -19
  1044. package/packages/app-core/src/components/shared/confirm-delete-control.d.ts.map +0 -1
  1045. package/packages/app-core/src/components/shared/confirm-delete-control.js +0 -19
  1046. package/packages/app-core/src/components/shell/BugReportModal.d.ts +0 -2
  1047. package/packages/app-core/src/components/shell/BugReportModal.d.ts.map +0 -1
  1048. package/packages/app-core/src/components/shell/BugReportModal.js +0 -366
  1049. package/packages/app-core/src/components/shell/CommandPalette.d.ts +0 -2
  1050. package/packages/app-core/src/components/shell/CommandPalette.d.ts.map +0 -1
  1051. package/packages/app-core/src/components/shell/CommandPalette.js +0 -185
  1052. package/packages/app-core/src/components/shell/ComputerUseApprovalOverlay.d.ts +0 -2
  1053. package/packages/app-core/src/components/shell/ComputerUseApprovalOverlay.d.ts.map +0 -1
  1054. package/packages/app-core/src/components/shell/ComputerUseApprovalOverlay.js +0 -171
  1055. package/packages/app-core/src/components/shell/ConnectionFailedBanner.d.ts +0 -6
  1056. package/packages/app-core/src/components/shell/ConnectionFailedBanner.d.ts.map +0 -1
  1057. package/packages/app-core/src/components/shell/ConnectionFailedBanner.js +0 -23
  1058. package/packages/app-core/src/components/shell/ConnectionLostOverlay.d.ts +0 -2
  1059. package/packages/app-core/src/components/shell/ConnectionLostOverlay.d.ts.map +0 -1
  1060. package/packages/app-core/src/components/shell/ConnectionLostOverlay.js +0 -49
  1061. package/packages/app-core/src/components/shell/Header.d.ts +0 -13
  1062. package/packages/app-core/src/components/shell/Header.d.ts.map +0 -1
  1063. package/packages/app-core/src/components/shell/Header.js +0 -298
  1064. package/packages/app-core/src/components/shell/LoadingScreen.d.ts +0 -13
  1065. package/packages/app-core/src/components/shell/LoadingScreen.d.ts.map +0 -1
  1066. package/packages/app-core/src/components/shell/LoadingScreen.js +0 -86
  1067. package/packages/app-core/src/components/shell/PairingView.d.ts +0 -2
  1068. package/packages/app-core/src/components/shell/PairingView.d.ts.map +0 -1
  1069. package/packages/app-core/src/components/shell/PairingView.js +0 -41
  1070. package/packages/app-core/src/components/shell/RestartBanner.d.ts +0 -2
  1071. package/packages/app-core/src/components/shell/RestartBanner.d.ts.map +0 -1
  1072. package/packages/app-core/src/components/shell/RestartBanner.js +0 -39
  1073. package/packages/app-core/src/components/shell/RuntimeGate.d.ts +0 -22
  1074. package/packages/app-core/src/components/shell/RuntimeGate.d.ts.map +0 -1
  1075. package/packages/app-core/src/components/shell/RuntimeGate.js +0 -640
  1076. package/packages/app-core/src/components/shell/ShellHeaderControls.d.ts +0 -44
  1077. package/packages/app-core/src/components/shell/ShellHeaderControls.d.ts.map +0 -1
  1078. package/packages/app-core/src/components/shell/ShellHeaderControls.js +0 -80
  1079. package/packages/app-core/src/components/shell/ShellOverlays.d.ts +0 -5
  1080. package/packages/app-core/src/components/shell/ShellOverlays.d.ts.map +0 -1
  1081. package/packages/app-core/src/components/shell/ShellOverlays.js +0 -15
  1082. package/packages/app-core/src/components/shell/ShortcutsOverlay.d.ts +0 -2
  1083. package/packages/app-core/src/components/shell/ShortcutsOverlay.d.ts.map +0 -1
  1084. package/packages/app-core/src/components/shell/ShortcutsOverlay.js +0 -58
  1085. package/packages/app-core/src/components/shell/StartupFailureView.d.ts +0 -8
  1086. package/packages/app-core/src/components/shell/StartupFailureView.d.ts.map +0 -1
  1087. package/packages/app-core/src/components/shell/StartupFailureView.js +0 -148
  1088. package/packages/app-core/src/components/shell/StartupShell.d.ts +0 -12
  1089. package/packages/app-core/src/components/shell/StartupShell.d.ts.map +0 -1
  1090. package/packages/app-core/src/components/shell/StartupShell.js +0 -230
  1091. package/packages/app-core/src/components/shell/SystemWarningBanner.d.ts +0 -6
  1092. package/packages/app-core/src/components/shell/SystemWarningBanner.d.ts.map +0 -1
  1093. package/packages/app-core/src/components/shell/SystemWarningBanner.js +0 -44
  1094. package/packages/app-core/src/components/steward/injected.d.ts +0 -5
  1095. package/packages/app-core/src/components/steward/injected.d.ts.map +0 -1
  1096. package/packages/app-core/src/components/steward/injected.js +0 -14
  1097. package/packages/app-core/src/components/stream/StatusBar.d.ts +0 -10
  1098. package/packages/app-core/src/components/stream/StatusBar.d.ts.map +0 -1
  1099. package/packages/app-core/src/components/stream/StatusBar.js +0 -65
  1100. package/packages/app-core/src/components/stream/helpers.d.ts +0 -15
  1101. package/packages/app-core/src/components/stream/helpers.d.ts.map +0 -1
  1102. package/packages/app-core/src/components/stream/helpers.js +0 -16
  1103. package/packages/app-core/src/components/training/injected.d.ts +0 -3
  1104. package/packages/app-core/src/components/training/injected.d.ts.map +0 -1
  1105. package/packages/app-core/src/components/training/injected.js +0 -6
  1106. package/packages/app-core/src/components/workspace/AppWorkspaceChrome.d.ts +0 -62
  1107. package/packages/app-core/src/components/workspace/AppWorkspaceChrome.d.ts.map +0 -1
  1108. package/packages/app-core/src/components/workspace/AppWorkspaceChrome.js +0 -220
  1109. package/packages/app-core/src/config/app-config.d.ts +0 -121
  1110. package/packages/app-core/src/config/app-config.d.ts.map +0 -1
  1111. package/packages/app-core/src/config/app-config.js +0 -31
  1112. package/packages/app-core/src/config/boot-config-react.d.ts +0 -5
  1113. package/packages/app-core/src/config/boot-config-react.d.ts.map +0 -1
  1114. package/packages/app-core/src/config/boot-config-react.js +0 -7
  1115. package/packages/app-core/src/config/cloud-only.d.ts +0 -6
  1116. package/packages/app-core/src/config/cloud-only.d.ts.map +0 -1
  1117. package/packages/app-core/src/config/cloud-only.js +0 -15
  1118. package/packages/app-core/src/config/config-catalog.d.ts +0 -376
  1119. package/packages/app-core/src/config/config-catalog.d.ts.map +0 -1
  1120. package/packages/app-core/src/config/config-catalog.js +0 -732
  1121. package/packages/app-core/src/config/index.d.ts +0 -12
  1122. package/packages/app-core/src/config/index.d.ts.map +0 -1
  1123. package/packages/app-core/src/config/index.js +0 -11
  1124. package/packages/app-core/src/config/plugin-auto-enable.d.ts +0 -5
  1125. package/packages/app-core/src/config/plugin-auto-enable.d.ts.map +0 -1
  1126. package/packages/app-core/src/config/plugin-auto-enable.js +0 -47
  1127. package/packages/app-core/src/config/plugin-ui-spec.d.ts +0 -42
  1128. package/packages/app-core/src/config/plugin-ui-spec.d.ts.map +0 -1
  1129. package/packages/app-core/src/config/plugin-ui-spec.js +0 -256
  1130. package/packages/app-core/src/config/ui-spec.d.ts +0 -164
  1131. package/packages/app-core/src/config/ui-spec.d.ts.map +0 -1
  1132. package/packages/app-core/src/config/ui-spec.js +0 -13
  1133. package/packages/app-core/src/config/wechat-config.d.ts +0 -3
  1134. package/packages/app-core/src/config/wechat-config.d.ts.map +0 -1
  1135. package/packages/app-core/src/config/wechat-config.js +0 -21
  1136. package/packages/app-core/src/content-packs/apply-pack.d.ts +0 -33
  1137. package/packages/app-core/src/content-packs/apply-pack.d.ts.map +0 -1
  1138. package/packages/app-core/src/content-packs/apply-pack.js +0 -96
  1139. package/packages/app-core/src/content-packs/bundled-packs.d.ts +0 -14
  1140. package/packages/app-core/src/content-packs/bundled-packs.d.ts.map +0 -1
  1141. package/packages/app-core/src/content-packs/bundled-packs.js +0 -106
  1142. package/packages/app-core/src/content-packs/index.d.ts +0 -4
  1143. package/packages/app-core/src/content-packs/index.d.ts.map +0 -1
  1144. package/packages/app-core/src/content-packs/index.js +0 -3
  1145. package/packages/app-core/src/content-packs/load-pack.d.ts +0 -34
  1146. package/packages/app-core/src/content-packs/load-pack.d.ts.map +0 -1
  1147. package/packages/app-core/src/content-packs/load-pack.js +0 -151
  1148. package/packages/app-core/src/events/index.d.ts +0 -62
  1149. package/packages/app-core/src/events/index.d.ts.map +0 -1
  1150. package/packages/app-core/src/events/index.js +0 -51
  1151. package/packages/app-core/src/hooks/index.d.ts +0 -14
  1152. package/packages/app-core/src/hooks/index.d.ts.map +0 -1
  1153. package/packages/app-core/src/hooks/index.js +0 -13
  1154. package/packages/app-core/src/hooks/useAccounts.d.ts +0 -41
  1155. package/packages/app-core/src/hooks/useAccounts.d.ts.map +0 -1
  1156. package/packages/app-core/src/hooks/useAccounts.js +0 -250
  1157. package/packages/app-core/src/hooks/useActivityEvents.d.ts +0 -20
  1158. package/packages/app-core/src/hooks/useActivityEvents.d.ts.map +0 -1
  1159. package/packages/app-core/src/hooks/useActivityEvents.js +0 -126
  1160. package/packages/app-core/src/hooks/useAuthStatus.d.ts +0 -49
  1161. package/packages/app-core/src/hooks/useAuthStatus.d.ts.map +0 -1
  1162. package/packages/app-core/src/hooks/useAuthStatus.js +0 -90
  1163. package/packages/app-core/src/hooks/useBugReport.d.ts +0 -26
  1164. package/packages/app-core/src/hooks/useBugReport.d.ts.map +0 -1
  1165. package/packages/app-core/src/hooks/useBugReport.js +0 -28
  1166. package/packages/app-core/src/hooks/useCanvasWindow.d.ts +0 -38
  1167. package/packages/app-core/src/hooks/useCanvasWindow.d.ts.map +0 -1
  1168. package/packages/app-core/src/hooks/useCanvasWindow.js +0 -277
  1169. package/packages/app-core/src/hooks/useChatAvatarVoiceBridge.d.ts +0 -12
  1170. package/packages/app-core/src/hooks/useChatAvatarVoiceBridge.d.ts.map +0 -1
  1171. package/packages/app-core/src/hooks/useChatAvatarVoiceBridge.js +0 -21
  1172. package/packages/app-core/src/hooks/useContextMenu.d.ts +0 -17
  1173. package/packages/app-core/src/hooks/useContextMenu.d.ts.map +0 -1
  1174. package/packages/app-core/src/hooks/useContextMenu.js +0 -142
  1175. package/packages/app-core/src/hooks/useKeyboardShortcuts.d.ts +0 -5
  1176. package/packages/app-core/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  1177. package/packages/app-core/src/hooks/useKeyboardShortcuts.js +0 -32
  1178. package/packages/app-core/src/hooks/useMediaQuery.d.ts +0 -4
  1179. package/packages/app-core/src/hooks/useMediaQuery.d.ts.map +0 -1
  1180. package/packages/app-core/src/hooks/useMediaQuery.js +0 -30
  1181. package/packages/app-core/src/hooks/useMusicPlayer.d.ts +0 -54
  1182. package/packages/app-core/src/hooks/useMusicPlayer.d.ts.map +0 -1
  1183. package/packages/app-core/src/hooks/useMusicPlayer.js +0 -117
  1184. package/packages/app-core/src/hooks/useRenderGuard.d.ts +0 -17
  1185. package/packages/app-core/src/hooks/useRenderGuard.d.ts.map +0 -1
  1186. package/packages/app-core/src/hooks/useRenderGuard.js +0 -36
  1187. package/packages/app-core/src/hooks/useSignalPairing.d.ts +0 -12
  1188. package/packages/app-core/src/hooks/useSignalPairing.d.ts.map +0 -1
  1189. package/packages/app-core/src/hooks/useSignalPairing.js +0 -129
  1190. package/packages/app-core/src/hooks/useStreamPopoutNavigation.d.ts +0 -3
  1191. package/packages/app-core/src/hooks/useStreamPopoutNavigation.d.ts.map +0 -1
  1192. package/packages/app-core/src/hooks/useStreamPopoutNavigation.js +0 -4
  1193. package/packages/app-core/src/hooks/useVoiceChat.d.ts +0 -37
  1194. package/packages/app-core/src/hooks/useVoiceChat.d.ts.map +0 -1
  1195. package/packages/app-core/src/hooks/useVoiceChat.js +0 -1310
  1196. package/packages/app-core/src/hooks/useWhatsAppPairing.d.ts +0 -12
  1197. package/packages/app-core/src/hooks/useWhatsAppPairing.d.ts.map +0 -1
  1198. package/packages/app-core/src/hooks/useWhatsAppPairing.js +0 -95
  1199. package/packages/app-core/src/hooks/useWorkflowGenerationState.d.ts +0 -23
  1200. package/packages/app-core/src/hooks/useWorkflowGenerationState.d.ts.map +0 -1
  1201. package/packages/app-core/src/hooks/useWorkflowGenerationState.js +0 -46
  1202. package/packages/app-core/src/hooks/voice-chat-playback.d.ts +0 -32
  1203. package/packages/app-core/src/hooks/voice-chat-playback.d.ts.map +0 -1
  1204. package/packages/app-core/src/hooks/voice-chat-playback.js +0 -203
  1205. package/packages/app-core/src/hooks/voice-chat-recording.d.ts +0 -6
  1206. package/packages/app-core/src/hooks/voice-chat-recording.d.ts.map +0 -1
  1207. package/packages/app-core/src/hooks/voice-chat-recording.js +0 -46
  1208. package/packages/app-core/src/hooks/voice-chat-types.d.ts +0 -193
  1209. package/packages/app-core/src/hooks/voice-chat-types.d.ts.map +0 -1
  1210. package/packages/app-core/src/hooks/voice-chat-types.js +0 -185
  1211. package/packages/app-core/src/i18n/index.d.ts +0 -7
  1212. package/packages/app-core/src/i18n/index.d.ts.map +0 -1
  1213. package/packages/app-core/src/i18n/index.js +0 -57
  1214. package/packages/app-core/src/i18n/locales/en.json +0 -3231
  1215. package/packages/app-core/src/i18n/locales/es.json +0 -3231
  1216. package/packages/app-core/src/i18n/locales/ko.json +0 -3231
  1217. package/packages/app-core/src/i18n/locales/pt.json +0 -3231
  1218. package/packages/app-core/src/i18n/locales/tl.json +0 -3231
  1219. package/packages/app-core/src/i18n/locales/vi.json +0 -3231
  1220. package/packages/app-core/src/i18n/locales/zh-CN.json +0 -3231
  1221. package/packages/app-core/src/i18n/messages.d.ts +0 -6
  1222. package/packages/app-core/src/i18n/messages.d.ts.map +0 -1
  1223. package/packages/app-core/src/i18n/messages.js +0 -26
  1224. package/packages/app-core/src/index.d.ts +0 -54
  1225. package/packages/app-core/src/index.d.ts.map +0 -1
  1226. package/packages/app-core/src/index.js +0 -50
  1227. package/packages/app-core/src/onboarding/flow.d.ts +0 -66
  1228. package/packages/app-core/src/onboarding/flow.d.ts.map +0 -1
  1229. package/packages/app-core/src/onboarding/flow.js +0 -100
  1230. package/packages/app-core/src/onboarding/mobile-runtime-mode.d.ts +0 -8
  1231. package/packages/app-core/src/onboarding/mobile-runtime-mode.d.ts.map +0 -1
  1232. package/packages/app-core/src/onboarding/mobile-runtime-mode.js +0 -57
  1233. package/packages/app-core/src/onboarding/probe-local-agent.d.ts +0 -44
  1234. package/packages/app-core/src/onboarding/probe-local-agent.d.ts.map +0 -1
  1235. package/packages/app-core/src/onboarding/probe-local-agent.js +0 -126
  1236. package/packages/app-core/src/onboarding/server-target.d.ts +0 -4
  1237. package/packages/app-core/src/onboarding/server-target.d.ts.map +0 -1
  1238. package/packages/app-core/src/onboarding/server-target.js +0 -13
  1239. package/packages/app-core/src/onboarding-config.d.ts +0 -61
  1240. package/packages/app-core/src/onboarding-config.d.ts.map +0 -1
  1241. package/packages/app-core/src/onboarding-config.js +0 -172
  1242. package/packages/app-core/src/platform/browser-launch.d.ts +0 -10
  1243. package/packages/app-core/src/platform/browser-launch.d.ts.map +0 -1
  1244. package/packages/app-core/src/platform/browser-launch.js +0 -147
  1245. package/packages/app-core/src/platform/cloud-preference-patch.d.ts +0 -11
  1246. package/packages/app-core/src/platform/cloud-preference-patch.d.ts.map +0 -1
  1247. package/packages/app-core/src/platform/cloud-preference-patch.js +0 -85
  1248. package/packages/app-core/src/platform/desktop-permissions-client.d.ts +0 -3
  1249. package/packages/app-core/src/platform/desktop-permissions-client.d.ts.map +0 -1
  1250. package/packages/app-core/src/platform/desktop-permissions-client.js +0 -128
  1251. package/packages/app-core/src/platform/index.d.ts +0 -15
  1252. package/packages/app-core/src/platform/index.d.ts.map +0 -1
  1253. package/packages/app-core/src/platform/index.js +0 -23
  1254. package/packages/app-core/src/platform/init.d.ts +0 -46
  1255. package/packages/app-core/src/platform/init.d.ts.map +0 -1
  1256. package/packages/app-core/src/platform/init.js +0 -169
  1257. package/packages/app-core/src/platform/is-native-server.d.ts +0 -14
  1258. package/packages/app-core/src/platform/is-native-server.d.ts.map +0 -1
  1259. package/packages/app-core/src/platform/is-native-server.js +0 -16
  1260. package/packages/app-core/src/platform/onboarding-reset.d.ts +0 -11
  1261. package/packages/app-core/src/platform/onboarding-reset.d.ts.map +0 -1
  1262. package/packages/app-core/src/platform/onboarding-reset.js +0 -127
  1263. package/packages/app-core/src/platform/types.d.ts +0 -28
  1264. package/packages/app-core/src/platform/types.d.ts.map +0 -1
  1265. package/packages/app-core/src/platform/types.js +0 -1
  1266. package/packages/app-core/src/platform/window-shell.d.ts +0 -28
  1267. package/packages/app-core/src/platform/window-shell.d.ts.map +0 -1
  1268. package/packages/app-core/src/platform/window-shell.js +0 -73
  1269. package/packages/app-core/src/providers/index.d.ts +0 -26
  1270. package/packages/app-core/src/providers/index.d.ts.map +0 -1
  1271. package/packages/app-core/src/providers/index.js +0 -107
  1272. package/packages/app-core/src/runtime/channel-plugin-map.d.ts +0 -6
  1273. package/packages/app-core/src/runtime/channel-plugin-map.d.ts.map +0 -1
  1274. package/packages/app-core/src/runtime/channel-plugin-map.js +0 -10
  1275. package/packages/app-core/src/security/agent-vault-id.d.ts +0 -14
  1276. package/packages/app-core/src/security/agent-vault-id.d.ts.map +0 -1
  1277. package/packages/app-core/src/security/agent-vault-id.js +0 -32
  1278. package/packages/app-core/src/security/platform-secure-store-node.d.ts +0 -15
  1279. package/packages/app-core/src/security/platform-secure-store-node.d.ts.map +0 -1
  1280. package/packages/app-core/src/security/platform-secure-store-node.js +0 -296
  1281. package/packages/app-core/src/security/platform-secure-store.d.ts +0 -47
  1282. package/packages/app-core/src/security/platform-secure-store.d.ts.map +0 -1
  1283. package/packages/app-core/src/security/platform-secure-store.js +0 -10
  1284. package/packages/app-core/src/services/account-pool.d.ts +0 -98
  1285. package/packages/app-core/src/services/account-pool.d.ts.map +0 -1
  1286. package/packages/app-core/src/services/account-pool.js +0 -506
  1287. package/packages/app-core/src/services/account-usage.d.ts +0 -75
  1288. package/packages/app-core/src/services/account-usage.d.ts.map +0 -1
  1289. package/packages/app-core/src/services/account-usage.js +0 -179
  1290. package/packages/app-core/src/services/auth-store.d.ts +0 -185
  1291. package/packages/app-core/src/services/auth-store.d.ts.map +0 -1
  1292. package/packages/app-core/src/services/auth-store.js +0 -418
  1293. package/packages/app-core/src/services/cloud-jwks-store.d.ts +0 -62
  1294. package/packages/app-core/src/services/cloud-jwks-store.d.ts.map +0 -1
  1295. package/packages/app-core/src/services/cloud-jwks-store.js +0 -118
  1296. package/packages/app-core/src/services/local-inference/active-model.d.ts +0 -59
  1297. package/packages/app-core/src/services/local-inference/active-model.d.ts.map +0 -1
  1298. package/packages/app-core/src/services/local-inference/active-model.js +0 -120
  1299. package/packages/app-core/src/services/local-inference/device-bridge.d.ts +0 -131
  1300. package/packages/app-core/src/services/local-inference/device-bridge.d.ts.map +0 -1
  1301. package/packages/app-core/src/services/local-inference/device-bridge.js +0 -748
  1302. package/packages/app-core/src/services/local-inference/engine.d.ts +0 -52
  1303. package/packages/app-core/src/services/local-inference/engine.d.ts.map +0 -1
  1304. package/packages/app-core/src/services/local-inference/engine.js +0 -138
  1305. package/packages/app-core/src/services/local-inference/external-scanner.d.ts +0 -17
  1306. package/packages/app-core/src/services/local-inference/external-scanner.d.ts.map +0 -1
  1307. package/packages/app-core/src/services/local-inference/external-scanner.js +0 -261
  1308. package/packages/app-core/src/services/local-inference/handler-registry.d.ts +0 -72
  1309. package/packages/app-core/src/services/local-inference/handler-registry.d.ts.map +0 -1
  1310. package/packages/app-core/src/services/local-inference/handler-registry.js +0 -160
  1311. package/packages/app-core/src/services/local-inference/hardware.d.ts +0 -26
  1312. package/packages/app-core/src/services/local-inference/hardware.d.ts.map +0 -1
  1313. package/packages/app-core/src/services/local-inference/hardware.js +0 -139
  1314. package/packages/app-core/src/services/local-inference/paths.d.ts +0 -24
  1315. package/packages/app-core/src/services/local-inference/paths.d.ts.map +0 -1
  1316. package/packages/app-core/src/services/local-inference/paths.js +0 -41
  1317. package/packages/app-core/src/services/local-inference/providers.d.ts +0 -61
  1318. package/packages/app-core/src/services/local-inference/providers.d.ts.map +0 -1
  1319. package/packages/app-core/src/services/local-inference/providers.js +0 -277
  1320. package/packages/app-core/src/services/local-inference/registry.d.ts +0 -35
  1321. package/packages/app-core/src/services/local-inference/registry.d.ts.map +0 -1
  1322. package/packages/app-core/src/services/local-inference/registry.js +0 -108
  1323. package/packages/app-core/src/services/local-inference/routing-preferences.d.ts +0 -31
  1324. package/packages/app-core/src/services/local-inference/routing-preferences.d.ts.map +0 -1
  1325. package/packages/app-core/src/services/local-inference/routing-preferences.js +0 -72
  1326. package/packages/app-core/src/services/local-inference/types.d.ts +0 -121
  1327. package/packages/app-core/src/services/local-inference/types.d.ts.map +0 -1
  1328. package/packages/app-core/src/services/local-inference/types.js +0 -14
  1329. package/packages/app-core/src/services/local-inference/verify.d.ts +0 -39
  1330. package/packages/app-core/src/services/local-inference/verify.d.ts.map +0 -1
  1331. package/packages/app-core/src/services/local-inference/verify.js +0 -104
  1332. package/packages/app-core/src/services/phone-companion/env.d.ts +0 -11
  1333. package/packages/app-core/src/services/phone-companion/env.d.ts.map +0 -1
  1334. package/packages/app-core/src/services/phone-companion/env.js +0 -21
  1335. package/packages/app-core/src/services/phone-companion/index.d.ts +0 -14
  1336. package/packages/app-core/src/services/phone-companion/index.d.ts.map +0 -1
  1337. package/packages/app-core/src/services/phone-companion/index.js +0 -13
  1338. package/packages/app-core/src/services/phone-companion/logger.d.ts +0 -14
  1339. package/packages/app-core/src/services/phone-companion/logger.d.ts.map +0 -1
  1340. package/packages/app-core/src/services/phone-companion/logger.js +0 -57
  1341. package/packages/app-core/src/services/phone-companion/milady-intent.d.ts +0 -63
  1342. package/packages/app-core/src/services/phone-companion/milady-intent.d.ts.map +0 -1
  1343. package/packages/app-core/src/services/phone-companion/milady-intent.js +0 -50
  1344. package/packages/app-core/src/services/phone-companion/navigation.d.ts +0 -17
  1345. package/packages/app-core/src/services/phone-companion/navigation.d.ts.map +0 -1
  1346. package/packages/app-core/src/services/phone-companion/navigation.js +0 -99
  1347. package/packages/app-core/src/services/phone-companion/push.d.ts +0 -27
  1348. package/packages/app-core/src/services/phone-companion/push.d.ts.map +0 -1
  1349. package/packages/app-core/src/services/phone-companion/push.js +0 -80
  1350. package/packages/app-core/src/services/phone-companion/session-client.d.ts +0 -114
  1351. package/packages/app-core/src/services/phone-companion/session-client.d.ts.map +0 -1
  1352. package/packages/app-core/src/services/phone-companion/session-client.js +0 -211
  1353. package/packages/app-core/src/shell/AppWindowRenderer.d.ts +0 -17
  1354. package/packages/app-core/src/shell/AppWindowRenderer.d.ts.map +0 -1
  1355. package/packages/app-core/src/shell/AppWindowRenderer.js +0 -319
  1356. package/packages/app-core/src/shell/DesktopOnboardingRuntime.d.ts +0 -9
  1357. package/packages/app-core/src/shell/DesktopOnboardingRuntime.d.ts.map +0 -1
  1358. package/packages/app-core/src/shell/DesktopOnboardingRuntime.js +0 -10
  1359. package/packages/app-core/src/shell/DesktopSurfaceNavigationRuntime.d.ts +0 -2
  1360. package/packages/app-core/src/shell/DesktopSurfaceNavigationRuntime.d.ts.map +0 -1
  1361. package/packages/app-core/src/shell/DesktopSurfaceNavigationRuntime.js +0 -48
  1362. package/packages/app-core/src/shell/DesktopTrayRuntime.d.ts +0 -11
  1363. package/packages/app-core/src/shell/DesktopTrayRuntime.d.ts.map +0 -1
  1364. package/packages/app-core/src/shell/DesktopTrayRuntime.js +0 -265
  1365. package/packages/app-core/src/shell/DetachedShellRoot.d.ts +0 -10
  1366. package/packages/app-core/src/shell/DetachedShellRoot.d.ts.map +0 -1
  1367. package/packages/app-core/src/shell/DetachedShellRoot.js +0 -114
  1368. package/packages/app-core/src/shell/index.d.ts +0 -6
  1369. package/packages/app-core/src/shell/index.d.ts.map +0 -1
  1370. package/packages/app-core/src/shell/index.js +0 -5
  1371. package/packages/app-core/src/state/AppContext.d.ts +0 -13
  1372. package/packages/app-core/src/state/AppContext.d.ts.map +0 -1
  1373. package/packages/app-core/src/state/AppContext.js +0 -1896
  1374. package/packages/app-core/src/state/ChatComposerContext.d.ts +0 -28
  1375. package/packages/app-core/src/state/ChatComposerContext.d.ts.map +0 -1
  1376. package/packages/app-core/src/state/ChatComposerContext.js +0 -30
  1377. package/packages/app-core/src/state/CompanionSceneConfigContext.d.ts +0 -27
  1378. package/packages/app-core/src/state/CompanionSceneConfigContext.d.ts.map +0 -1
  1379. package/packages/app-core/src/state/CompanionSceneConfigContext.js +0 -32
  1380. package/packages/app-core/src/state/PtySessionsContext.d.ts +0 -15
  1381. package/packages/app-core/src/state/PtySessionsContext.d.ts.map +0 -1
  1382. package/packages/app-core/src/state/PtySessionsContext.js +0 -15
  1383. package/packages/app-core/src/state/TranslationContext.d.ts +0 -29
  1384. package/packages/app-core/src/state/TranslationContext.d.ts.map +0 -1
  1385. package/packages/app-core/src/state/TranslationContext.js +0 -61
  1386. package/packages/app-core/src/state/agent-profile-types.d.ts +0 -29
  1387. package/packages/app-core/src/state/agent-profile-types.d.ts.map +0 -1
  1388. package/packages/app-core/src/state/agent-profile-types.js +0 -1
  1389. package/packages/app-core/src/state/agent-profiles.d.ts +0 -16
  1390. package/packages/app-core/src/state/agent-profiles.d.ts.map +0 -1
  1391. package/packages/app-core/src/state/agent-profiles.js +0 -119
  1392. package/packages/app-core/src/state/agent-startup-timing.d.ts +0 -15
  1393. package/packages/app-core/src/state/agent-startup-timing.d.ts.map +0 -1
  1394. package/packages/app-core/src/state/agent-startup-timing.js +0 -28
  1395. package/packages/app-core/src/state/chat-conversation-guards.d.ts +0 -6
  1396. package/packages/app-core/src/state/chat-conversation-guards.d.ts.map +0 -1
  1397. package/packages/app-core/src/state/chat-conversation-guards.js +0 -47
  1398. package/packages/app-core/src/state/complete-reset-local-state-after-wipe.d.ts +0 -30
  1399. package/packages/app-core/src/state/complete-reset-local-state-after-wipe.d.ts.map +0 -1
  1400. package/packages/app-core/src/state/complete-reset-local-state-after-wipe.js +0 -24
  1401. package/packages/app-core/src/state/config-readers.d.ts +0 -7
  1402. package/packages/app-core/src/state/config-readers.d.ts.map +0 -1
  1403. package/packages/app-core/src/state/config-readers.js +0 -8
  1404. package/packages/app-core/src/state/connector-deeplink.d.ts +0 -30
  1405. package/packages/app-core/src/state/connector-deeplink.d.ts.map +0 -1
  1406. package/packages/app-core/src/state/connector-deeplink.js +0 -46
  1407. package/packages/app-core/src/state/handle-reset-applied-from-main.d.ts +0 -31
  1408. package/packages/app-core/src/state/handle-reset-applied-from-main.d.ts.map +0 -1
  1409. package/packages/app-core/src/state/handle-reset-applied-from-main.js +0 -38
  1410. package/packages/app-core/src/state/index.d.ts +0 -14
  1411. package/packages/app-core/src/state/index.d.ts.map +0 -1
  1412. package/packages/app-core/src/state/index.js +0 -13
  1413. package/packages/app-core/src/state/internal.d.ts +0 -9
  1414. package/packages/app-core/src/state/internal.d.ts.map +0 -1
  1415. package/packages/app-core/src/state/internal.js +0 -9
  1416. package/packages/app-core/src/state/navigation-events.d.ts +0 -12
  1417. package/packages/app-core/src/state/navigation-events.d.ts.map +0 -1
  1418. package/packages/app-core/src/state/navigation-events.js +0 -25
  1419. package/packages/app-core/src/state/onboarding-bootstrap.d.ts +0 -28
  1420. package/packages/app-core/src/state/onboarding-bootstrap.d.ts.map +0 -1
  1421. package/packages/app-core/src/state/onboarding-bootstrap.js +0 -76
  1422. package/packages/app-core/src/state/onboarding-resume.d.ts +0 -9
  1423. package/packages/app-core/src/state/onboarding-resume.d.ts.map +0 -1
  1424. package/packages/app-core/src/state/onboarding-resume.js +0 -93
  1425. package/packages/app-core/src/state/parsers.d.ts +0 -33
  1426. package/packages/app-core/src/state/parsers.d.ts.map +0 -1
  1427. package/packages/app-core/src/state/parsers.js +0 -354
  1428. package/packages/app-core/src/state/persistence.d.ts +0 -111
  1429. package/packages/app-core/src/state/persistence.d.ts.map +0 -1
  1430. package/packages/app-core/src/state/persistence.js +0 -749
  1431. package/packages/app-core/src/state/shell-routing.d.ts +0 -12
  1432. package/packages/app-core/src/state/shell-routing.d.ts.map +0 -1
  1433. package/packages/app-core/src/state/shell-routing.js +0 -21
  1434. package/packages/app-core/src/state/startup-coordinator.d.ts +0 -137
  1435. package/packages/app-core/src/state/startup-coordinator.d.ts.map +0 -1
  1436. package/packages/app-core/src/state/startup-coordinator.js +0 -247
  1437. package/packages/app-core/src/state/startup-phase-hydrate.d.ts +0 -74
  1438. package/packages/app-core/src/state/startup-phase-hydrate.d.ts.map +0 -1
  1439. package/packages/app-core/src/state/startup-phase-hydrate.js +0 -494
  1440. package/packages/app-core/src/state/startup-phase-poll.d.ts +0 -61
  1441. package/packages/app-core/src/state/startup-phase-poll.d.ts.map +0 -1
  1442. package/packages/app-core/src/state/startup-phase-poll.js +0 -272
  1443. package/packages/app-core/src/state/startup-phase-restore.d.ts +0 -49
  1444. package/packages/app-core/src/state/startup-phase-restore.d.ts.map +0 -1
  1445. package/packages/app-core/src/state/startup-phase-restore.js +0 -145
  1446. package/packages/app-core/src/state/startup-phase-runtime.d.ts +0 -34
  1447. package/packages/app-core/src/state/startup-phase-runtime.d.ts.map +0 -1
  1448. package/packages/app-core/src/state/startup-phase-runtime.js +0 -126
  1449. package/packages/app-core/src/state/types.d.ts +0 -645
  1450. package/packages/app-core/src/state/types.d.ts.map +0 -1
  1451. package/packages/app-core/src/state/types.js +0 -62
  1452. package/packages/app-core/src/state/ui-preferences.d.ts +0 -3
  1453. package/packages/app-core/src/state/ui-preferences.d.ts.map +0 -1
  1454. package/packages/app-core/src/state/ui-preferences.js +0 -1
  1455. package/packages/app-core/src/state/useApp.d.ts +0 -4
  1456. package/packages/app-core/src/state/useApp.d.ts.map +0 -1
  1457. package/packages/app-core/src/state/useApp.js +0 -32
  1458. package/packages/app-core/src/state/useCharacterState.d.ts +0 -52
  1459. package/packages/app-core/src/state/useCharacterState.d.ts.map +0 -1
  1460. package/packages/app-core/src/state/useCharacterState.js +0 -208
  1461. package/packages/app-core/src/state/useChatCallbacks.d.ts +0 -168
  1462. package/packages/app-core/src/state/useChatCallbacks.d.ts.map +0 -1
  1463. package/packages/app-core/src/state/useChatCallbacks.js +0 -773
  1464. package/packages/app-core/src/state/useChatLifecycle.d.ts +0 -104
  1465. package/packages/app-core/src/state/useChatLifecycle.d.ts.map +0 -1
  1466. package/packages/app-core/src/state/useChatLifecycle.js +0 -584
  1467. package/packages/app-core/src/state/useChatSend.d.ts +0 -81
  1468. package/packages/app-core/src/state/useChatSend.d.ts.map +0 -1
  1469. package/packages/app-core/src/state/useChatSend.js +0 -924
  1470. package/packages/app-core/src/state/useChatState.d.ts +0 -144
  1471. package/packages/app-core/src/state/useChatState.d.ts.map +0 -1
  1472. package/packages/app-core/src/state/useChatState.js +0 -251
  1473. package/packages/app-core/src/state/useCloudState.d.ts +0 -71
  1474. package/packages/app-core/src/state/useCloudState.d.ts.map +0 -1
  1475. package/packages/app-core/src/state/useCloudState.js +0 -561
  1476. package/packages/app-core/src/state/useDataLoaders.d.ts +0 -88
  1477. package/packages/app-core/src/state/useDataLoaders.d.ts.map +0 -1
  1478. package/packages/app-core/src/state/useDataLoaders.js +0 -394
  1479. package/packages/app-core/src/state/useDisplayPreferences.d.ts +0 -23
  1480. package/packages/app-core/src/state/useDisplayPreferences.d.ts.map +0 -1
  1481. package/packages/app-core/src/state/useDisplayPreferences.js +0 -64
  1482. package/packages/app-core/src/state/useExportImportState.d.ts +0 -32
  1483. package/packages/app-core/src/state/useExportImportState.d.ts.map +0 -1
  1484. package/packages/app-core/src/state/useExportImportState.js +0 -140
  1485. package/packages/app-core/src/state/useLifecycleState.d.ts +0 -123
  1486. package/packages/app-core/src/state/useLifecycleState.d.ts.map +0 -1
  1487. package/packages/app-core/src/state/useLifecycleState.js +0 -258
  1488. package/packages/app-core/src/state/useLogsState.d.ts +0 -24
  1489. package/packages/app-core/src/state/useLogsState.d.ts.map +0 -1
  1490. package/packages/app-core/src/state/useLogsState.js +0 -87
  1491. package/packages/app-core/src/state/useMiscUiState.d.ts +0 -87
  1492. package/packages/app-core/src/state/useMiscUiState.d.ts.map +0 -1
  1493. package/packages/app-core/src/state/useMiscUiState.js +0 -150
  1494. package/packages/app-core/src/state/useNavigationState.d.ts +0 -29
  1495. package/packages/app-core/src/state/useNavigationState.d.ts.map +0 -1
  1496. package/packages/app-core/src/state/useNavigationState.js +0 -122
  1497. package/packages/app-core/src/state/useOnboardingCallbacks.d.ts +0 -100
  1498. package/packages/app-core/src/state/useOnboardingCallbacks.d.ts.map +0 -1
  1499. package/packages/app-core/src/state/useOnboardingCallbacks.js +0 -792
  1500. package/packages/app-core/src/state/useOnboardingCompat.d.ts +0 -61
  1501. package/packages/app-core/src/state/useOnboardingCompat.d.ts.map +0 -1
  1502. package/packages/app-core/src/state/useOnboardingCompat.js +0 -110
  1503. package/packages/app-core/src/state/useOnboardingState.d.ts +0 -126
  1504. package/packages/app-core/src/state/useOnboardingState.d.ts.map +0 -1
  1505. package/packages/app-core/src/state/useOnboardingState.js +0 -263
  1506. package/packages/app-core/src/state/usePairingState.d.ts +0 -21
  1507. package/packages/app-core/src/state/usePairingState.d.ts.map +0 -1
  1508. package/packages/app-core/src/state/usePairingState.js +0 -60
  1509. package/packages/app-core/src/state/usePluginsSkillsState.d.ts +0 -131
  1510. package/packages/app-core/src/state/usePluginsSkillsState.d.ts.map +0 -1
  1511. package/packages/app-core/src/state/usePluginsSkillsState.js +0 -572
  1512. package/packages/app-core/src/state/useStartupCoordinator.d.ts +0 -40
  1513. package/packages/app-core/src/state/useStartupCoordinator.d.ts.map +0 -1
  1514. package/packages/app-core/src/state/useStartupCoordinator.js +0 -183
  1515. package/packages/app-core/src/state/useTriggersState.d.ts +0 -29
  1516. package/packages/app-core/src/state/useTriggersState.d.ts.map +0 -1
  1517. package/packages/app-core/src/state/useTriggersState.js +0 -198
  1518. package/packages/app-core/src/state/useVincentState.d.ts +0 -3
  1519. package/packages/app-core/src/state/useVincentState.d.ts.map +0 -1
  1520. package/packages/app-core/src/state/useVincentState.js +0 -13
  1521. package/packages/app-core/src/state/useWalletState.d.ts +0 -97
  1522. package/packages/app-core/src/state/useWalletState.d.ts.map +0 -1
  1523. package/packages/app-core/src/state/useWalletState.js +0 -533
  1524. package/packages/app-core/src/state/vrm.d.ts +0 -2
  1525. package/packages/app-core/src/state/vrm.d.ts.map +0 -1
  1526. package/packages/app-core/src/state/vrm.js +0 -1
  1527. package/packages/app-core/src/test-support/test-helpers.d.ts +0 -111
  1528. package/packages/app-core/src/test-support/test-helpers.d.ts.map +0 -1
  1529. package/packages/app-core/src/test-support/test-helpers.js +0 -417
  1530. package/packages/app-core/src/themes/apply-theme.d.ts +0 -24
  1531. package/packages/app-core/src/themes/apply-theme.d.ts.map +0 -1
  1532. package/packages/app-core/src/themes/apply-theme.js +0 -130
  1533. package/packages/app-core/src/types/index.d.ts +0 -658
  1534. package/packages/app-core/src/types/index.d.ts.map +0 -1
  1535. package/packages/app-core/src/types/index.js +0 -4
  1536. package/packages/app-core/src/utils/asset-url.d.ts +0 -24
  1537. package/packages/app-core/src/utils/asset-url.d.ts.map +0 -1
  1538. package/packages/app-core/src/utils/asset-url.js +0 -150
  1539. package/packages/app-core/src/utils/assistant-text.d.ts +0 -2
  1540. package/packages/app-core/src/utils/assistant-text.d.ts.map +0 -1
  1541. package/packages/app-core/src/utils/assistant-text.js +0 -167
  1542. package/packages/app-core/src/utils/browser-tabs-renderer-registry.d.ts +0 -56
  1543. package/packages/app-core/src/utils/browser-tabs-renderer-registry.d.ts.map +0 -1
  1544. package/packages/app-core/src/utils/browser-tabs-renderer-registry.js +0 -738
  1545. package/packages/app-core/src/utils/character-message-examples.d.ts +0 -7
  1546. package/packages/app-core/src/utils/character-message-examples.d.ts.map +0 -1
  1547. package/packages/app-core/src/utils/character-message-examples.js +0 -122
  1548. package/packages/app-core/src/utils/clipboard.d.ts +0 -2
  1549. package/packages/app-core/src/utils/clipboard.d.ts.map +0 -1
  1550. package/packages/app-core/src/utils/clipboard.js +0 -38
  1551. package/packages/app-core/src/utils/cloud-status.d.ts +0 -3
  1552. package/packages/app-core/src/utils/cloud-status.d.ts.map +0 -1
  1553. package/packages/app-core/src/utils/cloud-status.js +0 -10
  1554. package/packages/app-core/src/utils/desktop-bug-report.d.ts +0 -35
  1555. package/packages/app-core/src/utils/desktop-bug-report.d.ts.map +0 -1
  1556. package/packages/app-core/src/utils/desktop-bug-report.js +0 -47
  1557. package/packages/app-core/src/utils/desktop-dialogs.d.ts +0 -24
  1558. package/packages/app-core/src/utils/desktop-dialogs.d.ts.map +0 -1
  1559. package/packages/app-core/src/utils/desktop-dialogs.js +0 -149
  1560. package/packages/app-core/src/utils/desktop-workspace.d.ts +0 -86
  1561. package/packages/app-core/src/utils/desktop-workspace.d.ts.map +0 -1
  1562. package/packages/app-core/src/utils/desktop-workspace.js +0 -162
  1563. package/packages/app-core/src/utils/eliza-cloud-model-route.d.ts +0 -3
  1564. package/packages/app-core/src/utils/eliza-cloud-model-route.d.ts.map +0 -1
  1565. package/packages/app-core/src/utils/eliza-cloud-model-route.js +0 -9
  1566. package/packages/app-core/src/utils/eliza-globals.d.ts +0 -15
  1567. package/packages/app-core/src/utils/eliza-globals.d.ts.map +0 -1
  1568. package/packages/app-core/src/utils/eliza-globals.js +0 -50
  1569. package/packages/app-core/src/utils/errors.d.ts +0 -13
  1570. package/packages/app-core/src/utils/errors.d.ts.map +0 -1
  1571. package/packages/app-core/src/utils/errors.js +0 -25
  1572. package/packages/app-core/src/utils/format.d.ts +0 -66
  1573. package/packages/app-core/src/utils/format.d.ts.map +0 -1
  1574. package/packages/app-core/src/utils/format.js +0 -121
  1575. package/packages/app-core/src/utils/index.d.ts +0 -15
  1576. package/packages/app-core/src/utils/index.d.ts.map +0 -1
  1577. package/packages/app-core/src/utils/index.js +0 -14
  1578. package/packages/app-core/src/utils/knowledge-upload-image.d.ts +0 -27
  1579. package/packages/app-core/src/utils/knowledge-upload-image.d.ts.map +0 -1
  1580. package/packages/app-core/src/utils/knowledge-upload-image.js +0 -146
  1581. package/packages/app-core/src/utils/labels.d.ts +0 -6
  1582. package/packages/app-core/src/utils/labels.d.ts.map +0 -1
  1583. package/packages/app-core/src/utils/labels.js +0 -41
  1584. package/packages/app-core/src/utils/name-tokens.d.ts +0 -24
  1585. package/packages/app-core/src/utils/name-tokens.d.ts.map +0 -1
  1586. package/packages/app-core/src/utils/name-tokens.js +0 -36
  1587. package/packages/app-core/src/utils/number-parsing.d.ts +0 -26
  1588. package/packages/app-core/src/utils/number-parsing.d.ts.map +0 -1
  1589. package/packages/app-core/src/utils/number-parsing.js +0 -51
  1590. package/packages/app-core/src/utils/openExternalUrl.d.ts +0 -21
  1591. package/packages/app-core/src/utils/openExternalUrl.d.ts.map +0 -1
  1592. package/packages/app-core/src/utils/openExternalUrl.js +0 -67
  1593. package/packages/app-core/src/utils/owner-name.d.ts +0 -3
  1594. package/packages/app-core/src/utils/owner-name.d.ts.map +0 -1
  1595. package/packages/app-core/src/utils/owner-name.js +0 -7
  1596. package/packages/app-core/src/utils/streaming-text.d.ts +0 -9
  1597. package/packages/app-core/src/utils/streaming-text.d.ts.map +0 -1
  1598. package/packages/app-core/src/utils/streaming-text.js +0 -112
  1599. package/packages/app-core/src/utils/subscription-auth.d.ts +0 -9
  1600. package/packages/app-core/src/utils/subscription-auth.d.ts.map +0 -1
  1601. package/packages/app-core/src/utils/subscription-auth.js +0 -48
  1602. package/packages/app-core/src/utils/trajectory-format.d.ts +0 -6
  1603. package/packages/app-core/src/utils/trajectory-format.d.ts.map +0 -1
  1604. package/packages/app-core/src/utils/trajectory-format.js +0 -43
  1605. package/packages/app-core/src/voice/character-voice-config.d.ts +0 -9
  1606. package/packages/app-core/src/voice/character-voice-config.d.ts.map +0 -1
  1607. package/packages/app-core/src/voice/character-voice-config.js +0 -83
  1608. package/packages/app-core/src/voice/index.d.ts +0 -3
  1609. package/packages/app-core/src/voice/index.d.ts.map +0 -1
  1610. package/packages/app-core/src/voice/index.js +0 -2
  1611. package/packages/app-core/src/voice/types.d.ts +0 -40
  1612. package/packages/app-core/src/voice/types.d.ts.map +0 -1
  1613. package/packages/app-core/src/voice/types.js +0 -295
  1614. package/packages/app-core/src/wallet-rpc.d.ts +0 -9
  1615. package/packages/app-core/src/wallet-rpc.d.ts.map +0 -1
  1616. package/packages/app-core/src/wallet-rpc.js +0 -133
  1617. package/packages/app-core/src/widgets/WidgetHost.d.ts +0 -32
  1618. package/packages/app-core/src/widgets/WidgetHost.d.ts.map +0 -1
  1619. package/packages/app-core/src/widgets/WidgetHost.js +0 -57
  1620. package/packages/app-core/src/widgets/index.d.ts +0 -6
  1621. package/packages/app-core/src/widgets/index.d.ts.map +0 -1
  1622. package/packages/app-core/src/widgets/index.js +0 -2
  1623. package/packages/app-core/src/widgets/registry.d.ts +0 -58
  1624. package/packages/app-core/src/widgets/registry.d.ts.map +0 -1
  1625. package/packages/app-core/src/widgets/registry.js +0 -221
  1626. package/packages/app-core/src/widgets/types.d.ts +0 -50
  1627. package/packages/app-core/src/widgets/types.d.ts.map +0 -1
  1628. package/packages/app-core/src/widgets/types.js +0 -1
  1629. package/packages/app-core/src/widgets/useChatSidebarVisibility.d.ts +0 -16
  1630. package/packages/app-core/src/widgets/useChatSidebarVisibility.d.ts.map +0 -1
  1631. package/packages/app-core/src/widgets/useChatSidebarVisibility.js +0 -54
  1632. package/packages/app-core/src/widgets/visibility.d.ts +0 -55
  1633. package/packages/app-core/src/widgets/visibility.d.ts.map +0 -1
  1634. package/packages/app-core/src/widgets/visibility.js +0 -90
  1635. package/packages/ui/src/components/composites/chat/chat-attachment-strip.d.ts +0 -9
  1636. package/packages/ui/src/components/composites/chat/chat-attachment-strip.d.ts.map +0 -1
  1637. package/packages/ui/src/components/composites/chat/chat-attachment-strip.js +0 -8
  1638. package/packages/ui/src/components/composites/chat/chat-bubble.d.ts +0 -14
  1639. package/packages/ui/src/components/composites/chat/chat-bubble.d.ts.map +0 -1
  1640. package/packages/ui/src/components/composites/chat/chat-bubble.js +0 -7
  1641. package/packages/ui/src/components/composites/chat/chat-composer-shell.d.ts +0 -14
  1642. package/packages/ui/src/components/composites/chat/chat-composer-shell.d.ts.map +0 -1
  1643. package/packages/ui/src/components/composites/chat/chat-composer-shell.js +0 -25
  1644. package/packages/ui/src/components/composites/chat/chat-composer.d.ts +0 -45
  1645. package/packages/ui/src/components/composites/chat/chat-composer.d.ts.map +0 -1
  1646. package/packages/ui/src/components/composites/chat/chat-composer.js +0 -297
  1647. package/packages/ui/src/components/composites/chat/chat-conversation-item.d.ts +0 -21
  1648. package/packages/ui/src/components/composites/chat/chat-conversation-item.d.ts.map +0 -1
  1649. package/packages/ui/src/components/composites/chat/chat-conversation-item.js +0 -118
  1650. package/packages/ui/src/components/composites/chat/chat-conversation-rename-dialog.d.ts +0 -22
  1651. package/packages/ui/src/components/composites/chat/chat-conversation-rename-dialog.d.ts.map +0 -1
  1652. package/packages/ui/src/components/composites/chat/chat-conversation-rename-dialog.js +0 -14
  1653. package/packages/ui/src/components/composites/chat/chat-empty-state.d.ts +0 -19
  1654. package/packages/ui/src/components/composites/chat/chat-empty-state.d.ts.map +0 -1
  1655. package/packages/ui/src/components/composites/chat/chat-empty-state.js +0 -8
  1656. package/packages/ui/src/components/composites/chat/chat-message-actions.d.ts +0 -14
  1657. package/packages/ui/src/components/composites/chat/chat-message-actions.d.ts.map +0 -1
  1658. package/packages/ui/src/components/composites/chat/chat-message-actions.js +0 -10
  1659. package/packages/ui/src/components/composites/chat/chat-message.d.ts +0 -18
  1660. package/packages/ui/src/components/composites/chat/chat-message.d.ts.map +0 -1
  1661. package/packages/ui/src/components/composites/chat/chat-message.js +0 -260
  1662. package/packages/ui/src/components/composites/chat/chat-sidebar.d.ts +0 -54
  1663. package/packages/ui/src/components/composites/chat/chat-sidebar.d.ts.map +0 -1
  1664. package/packages/ui/src/components/composites/chat/chat-sidebar.js +0 -64
  1665. package/packages/ui/src/components/composites/chat/chat-source.d.ts +0 -23
  1666. package/packages/ui/src/components/composites/chat/chat-source.d.ts.map +0 -1
  1667. package/packages/ui/src/components/composites/chat/chat-source.js +0 -60
  1668. package/packages/ui/src/components/composites/chat/chat-thread-layout.d.ts +0 -22
  1669. package/packages/ui/src/components/composites/chat/chat-thread-layout.d.ts.map +0 -1
  1670. package/packages/ui/src/components/composites/chat/chat-thread-layout.js +0 -37
  1671. package/packages/ui/src/components/composites/chat/chat-transcript.d.ts +0 -19
  1672. package/packages/ui/src/components/composites/chat/chat-transcript.d.ts.map +0 -1
  1673. package/packages/ui/src/components/composites/chat/chat-transcript.js +0 -88
  1674. package/packages/ui/src/components/composites/chat/chat-types.d.ts +0 -91
  1675. package/packages/ui/src/components/composites/chat/chat-types.d.ts.map +0 -1
  1676. package/packages/ui/src/components/composites/chat/chat-types.js +0 -1
  1677. package/packages/ui/src/components/composites/chat/chat-typing-indicator.d.ts +0 -10
  1678. package/packages/ui/src/components/composites/chat/chat-typing-indicator.d.ts.map +0 -1
  1679. package/packages/ui/src/components/composites/chat/chat-typing-indicator.js +0 -10
  1680. package/packages/ui/src/components/composites/chat/create-task-popover.d.ts +0 -13
  1681. package/packages/ui/src/components/composites/chat/create-task-popover.d.ts.map +0 -1
  1682. package/packages/ui/src/components/composites/chat/create-task-popover.js +0 -44
  1683. package/packages/ui/src/components/composites/chat/index.d.ts +0 -17
  1684. package/packages/ui/src/components/composites/chat/index.d.ts.map +0 -1
  1685. package/packages/ui/src/components/composites/chat/index.js +0 -16
  1686. package/packages/ui/src/components/composites/form-field/form-field.d.ts +0 -14
  1687. package/packages/ui/src/components/composites/form-field/form-field.d.ts.map +0 -1
  1688. package/packages/ui/src/components/composites/form-field/form-field.js +0 -8
  1689. package/packages/ui/src/components/composites/form-field/index.d.ts +0 -2
  1690. package/packages/ui/src/components/composites/form-field/index.d.ts.map +0 -1
  1691. package/packages/ui/src/components/composites/form-field/index.js +0 -1
  1692. package/packages/ui/src/components/composites/index.d.ts +0 -27
  1693. package/packages/ui/src/components/composites/index.d.ts.map +0 -1
  1694. package/packages/ui/src/components/composites/index.js +0 -26
  1695. package/packages/ui/src/components/composites/page-panel/index.d.ts +0 -29
  1696. package/packages/ui/src/components/composites/page-panel/index.d.ts.map +0 -1
  1697. package/packages/ui/src/components/composites/page-panel/index.js +0 -28
  1698. package/packages/ui/src/components/composites/page-panel/page-panel-collapsible-section.d.ts +0 -4
  1699. package/packages/ui/src/components/composites/page-panel/page-panel-collapsible-section.d.ts.map +0 -1
  1700. package/packages/ui/src/components/composites/page-panel/page-panel-collapsible-section.js +0 -60
  1701. package/packages/ui/src/components/composites/page-panel/page-panel-empty.d.ts +0 -3
  1702. package/packages/ui/src/components/composites/page-panel/page-panel-empty.d.ts.map +0 -1
  1703. package/packages/ui/src/components/composites/page-panel/page-panel-empty.js +0 -15
  1704. package/packages/ui/src/components/composites/page-panel/page-panel-frame.d.ts +0 -5
  1705. package/packages/ui/src/components/composites/page-panel/page-panel-frame.d.ts.map +0 -1
  1706. package/packages/ui/src/components/composites/page-panel/page-panel-frame.js +0 -9
  1707. package/packages/ui/src/components/composites/page-panel/page-panel-header.d.ts +0 -7
  1708. package/packages/ui/src/components/composites/page-panel/page-panel-header.d.ts.map +0 -1
  1709. package/packages/ui/src/components/composites/page-panel/page-panel-header.js +0 -30
  1710. package/packages/ui/src/components/composites/page-panel/page-panel-loading.d.ts +0 -3
  1711. package/packages/ui/src/components/composites/page-panel/page-panel-loading.d.ts.map +0 -1
  1712. package/packages/ui/src/components/composites/page-panel/page-panel-loading.js +0 -13
  1713. package/packages/ui/src/components/composites/page-panel/page-panel-root.d.ts +0 -7
  1714. package/packages/ui/src/components/composites/page-panel/page-panel-root.d.ts.map +0 -1
  1715. package/packages/ui/src/components/composites/page-panel/page-panel-root.js +0 -17
  1716. package/packages/ui/src/components/composites/page-panel/page-panel-toolbar.d.ts +0 -4
  1717. package/packages/ui/src/components/composites/page-panel/page-panel-toolbar.d.ts.map +0 -1
  1718. package/packages/ui/src/components/composites/page-panel/page-panel-toolbar.js +0 -6
  1719. package/packages/ui/src/components/composites/page-panel/page-panel-types.d.ts +0 -66
  1720. package/packages/ui/src/components/composites/page-panel/page-panel-types.d.ts.map +0 -1
  1721. package/packages/ui/src/components/composites/page-panel/page-panel-types.js +0 -1
  1722. package/packages/ui/src/components/composites/search/index.d.ts +0 -3
  1723. package/packages/ui/src/components/composites/search/index.d.ts.map +0 -1
  1724. package/packages/ui/src/components/composites/search/index.js +0 -2
  1725. package/packages/ui/src/components/composites/search/search-input.d.ts +0 -11
  1726. package/packages/ui/src/components/composites/search/search-input.d.ts.map +0 -1
  1727. package/packages/ui/src/components/composites/search/search-input.js +0 -10
  1728. package/packages/ui/src/components/composites/search/searchbar.d.ts +0 -18
  1729. package/packages/ui/src/components/composites/search/searchbar.d.ts.map +0 -1
  1730. package/packages/ui/src/components/composites/search/searchbar.js +0 -25
  1731. package/packages/ui/src/components/composites/sidebar/index.d.ts +0 -11
  1732. package/packages/ui/src/components/composites/sidebar/index.d.ts.map +0 -1
  1733. package/packages/ui/src/components/composites/sidebar/index.js +0 -10
  1734. package/packages/ui/src/components/composites/sidebar/sidebar-auto-rail.d.ts +0 -15
  1735. package/packages/ui/src/components/composites/sidebar/sidebar-auto-rail.d.ts.map +0 -1
  1736. package/packages/ui/src/components/composites/sidebar/sidebar-auto-rail.js +0 -292
  1737. package/packages/ui/src/components/composites/sidebar/sidebar-body.d.ts +0 -4
  1738. package/packages/ui/src/components/composites/sidebar/sidebar-body.d.ts.map +0 -1
  1739. package/packages/ui/src/components/composites/sidebar/sidebar-body.js +0 -7
  1740. package/packages/ui/src/components/composites/sidebar/sidebar-collapsed-rail.d.ts +0 -11
  1741. package/packages/ui/src/components/composites/sidebar/sidebar-collapsed-rail.d.ts.map +0 -1
  1742. package/packages/ui/src/components/composites/sidebar/sidebar-collapsed-rail.js +0 -13
  1743. package/packages/ui/src/components/composites/sidebar/sidebar-content.d.ts +0 -78
  1744. package/packages/ui/src/components/composites/sidebar/sidebar-content.d.ts.map +0 -1
  1745. package/packages/ui/src/components/composites/sidebar/sidebar-content.js +0 -94
  1746. package/packages/ui/src/components/composites/sidebar/sidebar-filter-bar.d.ts +0 -3
  1747. package/packages/ui/src/components/composites/sidebar/sidebar-filter-bar.d.ts.map +0 -1
  1748. package/packages/ui/src/components/composites/sidebar/sidebar-filter-bar.js +0 -14
  1749. package/packages/ui/src/components/composites/sidebar/sidebar-header-stack.d.ts +0 -3
  1750. package/packages/ui/src/components/composites/sidebar/sidebar-header-stack.d.ts.map +0 -1
  1751. package/packages/ui/src/components/composites/sidebar/sidebar-header-stack.js +0 -6
  1752. package/packages/ui/src/components/composites/sidebar/sidebar-header.d.ts +0 -9
  1753. package/packages/ui/src/components/composites/sidebar/sidebar-header.d.ts.map +0 -1
  1754. package/packages/ui/src/components/composites/sidebar/sidebar-header.js +0 -6
  1755. package/packages/ui/src/components/composites/sidebar/sidebar-panel.d.ts +0 -3
  1756. package/packages/ui/src/components/composites/sidebar/sidebar-panel.d.ts.map +0 -1
  1757. package/packages/ui/src/components/composites/sidebar/sidebar-panel.js +0 -18
  1758. package/packages/ui/src/components/composites/sidebar/sidebar-root.d.ts +0 -4
  1759. package/packages/ui/src/components/composites/sidebar/sidebar-root.d.ts.map +0 -1
  1760. package/packages/ui/src/components/composites/sidebar/sidebar-root.js +0 -491
  1761. package/packages/ui/src/components/composites/sidebar/sidebar-scroll-region.d.ts +0 -3
  1762. package/packages/ui/src/components/composites/sidebar/sidebar-scroll-region.d.ts.map +0 -1
  1763. package/packages/ui/src/components/composites/sidebar/sidebar-scroll-region.js +0 -18
  1764. package/packages/ui/src/components/composites/sidebar/sidebar-types.d.ts +0 -77
  1765. package/packages/ui/src/components/composites/sidebar/sidebar-types.d.ts.map +0 -1
  1766. package/packages/ui/src/components/composites/sidebar/sidebar-types.js +0 -1
  1767. package/packages/ui/src/components/composites/skills/index.d.ts +0 -2
  1768. package/packages/ui/src/components/composites/skills/index.d.ts.map +0 -1
  1769. package/packages/ui/src/components/composites/skills/index.js +0 -1
  1770. package/packages/ui/src/components/composites/skills/skill-sidebar-item.d.ts +0 -16
  1771. package/packages/ui/src/components/composites/skills/skill-sidebar-item.d.ts.map +0 -1
  1772. package/packages/ui/src/components/composites/skills/skill-sidebar-item.js +0 -7
  1773. package/packages/ui/src/components/composites/trajectories/index.d.ts +0 -5
  1774. package/packages/ui/src/components/composites/trajectories/index.d.ts.map +0 -1
  1775. package/packages/ui/src/components/composites/trajectories/index.js +0 -4
  1776. package/packages/ui/src/components/composites/trajectories/trajectory-code-block.d.ts +0 -13
  1777. package/packages/ui/src/components/composites/trajectories/trajectory-code-block.d.ts.map +0 -1
  1778. package/packages/ui/src/components/composites/trajectories/trajectory-code-block.js +0 -13
  1779. package/packages/ui/src/components/composites/trajectories/trajectory-llm-call-card.d.ts +0 -34
  1780. package/packages/ui/src/components/composites/trajectories/trajectory-llm-call-card.d.ts.map +0 -1
  1781. package/packages/ui/src/components/composites/trajectories/trajectory-llm-call-card.js +0 -14
  1782. package/packages/ui/src/components/composites/trajectories/trajectory-pipeline-graph.d.ts +0 -26
  1783. package/packages/ui/src/components/composites/trajectories/trajectory-pipeline-graph.d.ts.map +0 -1
  1784. package/packages/ui/src/components/composites/trajectories/trajectory-pipeline-graph.js +0 -46
  1785. package/packages/ui/src/components/composites/trajectories/trajectory-sidebar-item.d.ts +0 -15
  1786. package/packages/ui/src/components/composites/trajectories/trajectory-sidebar-item.d.ts.map +0 -1
  1787. package/packages/ui/src/components/composites/trajectories/trajectory-sidebar-item.js +0 -8
  1788. package/packages/ui/src/components/primitives/index.d.ts +0 -26
  1789. package/packages/ui/src/components/primitives/index.d.ts.map +0 -1
  1790. package/packages/ui/src/components/primitives/index.js +0 -25
  1791. package/packages/ui/src/components/ui/admin-dialog.d.ts +0 -50
  1792. package/packages/ui/src/components/ui/admin-dialog.d.ts.map +0 -1
  1793. package/packages/ui/src/components/ui/admin-dialog.js +0 -48
  1794. package/packages/ui/src/components/ui/badge.d.ts +0 -10
  1795. package/packages/ui/src/components/ui/badge.d.ts.map +0 -1
  1796. package/packages/ui/src/components/ui/badge.js +0 -21
  1797. package/packages/ui/src/components/ui/banner.d.ts +0 -17
  1798. package/packages/ui/src/components/ui/banner.d.ts.map +0 -1
  1799. package/packages/ui/src/components/ui/banner.js +0 -29
  1800. package/packages/ui/src/components/ui/button.d.ts +0 -13
  1801. package/packages/ui/src/components/ui/button.d.ts.map +0 -1
  1802. package/packages/ui/src/components/ui/button.js +0 -40
  1803. package/packages/ui/src/components/ui/card.d.ts +0 -15
  1804. package/packages/ui/src/components/ui/card.d.ts.map +0 -1
  1805. package/packages/ui/src/components/ui/card.js +0 -32
  1806. package/packages/ui/src/components/ui/checkbox.d.ts +0 -5
  1807. package/packages/ui/src/components/ui/checkbox.d.ts.map +0 -1
  1808. package/packages/ui/src/components/ui/checkbox.js +0 -8
  1809. package/packages/ui/src/components/ui/confirm-delete.d.ts +0 -20
  1810. package/packages/ui/src/components/ui/confirm-delete.d.ts.map +0 -1
  1811. package/packages/ui/src/components/ui/confirm-delete.js +0 -16
  1812. package/packages/ui/src/components/ui/confirm-dialog.d.ts +0 -49
  1813. package/packages/ui/src/components/ui/confirm-dialog.d.ts.map +0 -1
  1814. package/packages/ui/src/components/ui/confirm-dialog.js +0 -90
  1815. package/packages/ui/src/components/ui/connection-status.d.ts +0 -15
  1816. package/packages/ui/src/components/ui/connection-status.d.ts.map +0 -1
  1817. package/packages/ui/src/components/ui/connection-status.js +0 -25
  1818. package/packages/ui/src/components/ui/copy-button.d.ts +0 -13
  1819. package/packages/ui/src/components/ui/copy-button.d.ts.map +0 -1
  1820. package/packages/ui/src/components/ui/copy-button.js +0 -14
  1821. package/packages/ui/src/components/ui/dialog.d.ts +0 -25
  1822. package/packages/ui/src/components/ui/dialog.d.ts.map +0 -1
  1823. package/packages/ui/src/components/ui/dialog.js +0 -23
  1824. package/packages/ui/src/components/ui/drawer-sheet.d.ts +0 -19
  1825. package/packages/ui/src/components/ui/drawer-sheet.d.ts.map +0 -1
  1826. package/packages/ui/src/components/ui/drawer-sheet.js +0 -21
  1827. package/packages/ui/src/components/ui/dropdown-menu.d.ts +0 -28
  1828. package/packages/ui/src/components/ui/dropdown-menu.d.ts.map +0 -1
  1829. package/packages/ui/src/components/ui/dropdown-menu.js +0 -35
  1830. package/packages/ui/src/components/ui/empty-state.d.ts +0 -13
  1831. package/packages/ui/src/components/ui/empty-state.d.ts.map +0 -1
  1832. package/packages/ui/src/components/ui/empty-state.js +0 -5
  1833. package/packages/ui/src/components/ui/error-boundary.d.ts +0 -22
  1834. package/packages/ui/src/components/ui/error-boundary.d.ts.map +0 -1
  1835. package/packages/ui/src/components/ui/error-boundary.js +0 -27
  1836. package/packages/ui/src/components/ui/field-switch.d.ts +0 -8
  1837. package/packages/ui/src/components/ui/field-switch.d.ts.map +0 -1
  1838. package/packages/ui/src/components/ui/field-switch.js +0 -10
  1839. package/packages/ui/src/components/ui/field.d.ts +0 -12
  1840. package/packages/ui/src/components/ui/field.d.ts.map +0 -1
  1841. package/packages/ui/src/components/ui/field.js +0 -21
  1842. package/packages/ui/src/components/ui/form-select.d.ts +0 -14
  1843. package/packages/ui/src/components/ui/form-select.d.ts.map +0 -1
  1844. package/packages/ui/src/components/ui/form-select.js +0 -9
  1845. package/packages/ui/src/components/ui/grid.d.ts +0 -10
  1846. package/packages/ui/src/components/ui/grid.d.ts.map +0 -1
  1847. package/packages/ui/src/components/ui/grid.js +0 -31
  1848. package/packages/ui/src/components/ui/input.d.ts +0 -12
  1849. package/packages/ui/src/components/ui/input.d.ts.map +0 -1
  1850. package/packages/ui/src/components/ui/input.js +0 -29
  1851. package/packages/ui/src/components/ui/label.d.ts +0 -5
  1852. package/packages/ui/src/components/ui/label.d.ts.map +0 -1
  1853. package/packages/ui/src/components/ui/label.js +0 -10
  1854. package/packages/ui/src/components/ui/new-action-button.d.ts +0 -7
  1855. package/packages/ui/src/components/ui/new-action-button.d.ts.map +0 -1
  1856. package/packages/ui/src/components/ui/new-action-button.js +0 -13
  1857. package/packages/ui/src/components/ui/popover.d.ts +0 -7
  1858. package/packages/ui/src/components/ui/popover.d.ts.map +0 -1
  1859. package/packages/ui/src/components/ui/popover.js +0 -9
  1860. package/packages/ui/src/components/ui/save-footer.d.ts +0 -13
  1861. package/packages/ui/src/components/ui/save-footer.d.ts.map +0 -1
  1862. package/packages/ui/src/components/ui/save-footer.js +0 -10
  1863. package/packages/ui/src/components/ui/section-card.d.ts +0 -15
  1864. package/packages/ui/src/components/ui/section-card.d.ts.map +0 -1
  1865. package/packages/ui/src/components/ui/section-card.js +0 -10
  1866. package/packages/ui/src/components/ui/segmented-control.d.ts +0 -18
  1867. package/packages/ui/src/components/ui/segmented-control.d.ts.map +0 -1
  1868. package/packages/ui/src/components/ui/segmented-control.js +0 -10
  1869. package/packages/ui/src/components/ui/select.d.ts +0 -14
  1870. package/packages/ui/src/components/ui/select.d.ts.map +0 -1
  1871. package/packages/ui/src/components/ui/select.js +0 -27
  1872. package/packages/ui/src/components/ui/separator.d.ts +0 -5
  1873. package/packages/ui/src/components/ui/separator.d.ts.map +0 -1
  1874. package/packages/ui/src/components/ui/separator.js +0 -7
  1875. package/packages/ui/src/components/ui/settings-controls.d.ts +0 -41
  1876. package/packages/ui/src/components/ui/settings-controls.d.ts.map +0 -1
  1877. package/packages/ui/src/components/ui/settings-controls.js +0 -60
  1878. package/packages/ui/src/components/ui/skeleton.d.ts +0 -17
  1879. package/packages/ui/src/components/ui/skeleton.d.ts.map +0 -1
  1880. package/packages/ui/src/components/ui/skeleton.js +0 -24
  1881. package/packages/ui/src/components/ui/slider.d.ts +0 -5
  1882. package/packages/ui/src/components/ui/slider.d.ts.map +0 -1
  1883. package/packages/ui/src/components/ui/slider.js +0 -7
  1884. package/packages/ui/src/components/ui/sonner.d.ts +0 -2
  1885. package/packages/ui/src/components/ui/sonner.d.ts.map +0 -1
  1886. package/packages/ui/src/components/ui/sonner.js +0 -1
  1887. package/packages/ui/src/components/ui/spinner.d.ts +0 -6
  1888. package/packages/ui/src/components/ui/spinner.d.ts.map +0 -1
  1889. package/packages/ui/src/components/ui/spinner.js +0 -8
  1890. package/packages/ui/src/components/ui/stack.d.ts +0 -11
  1891. package/packages/ui/src/components/ui/stack.d.ts.map +0 -1
  1892. package/packages/ui/src/components/ui/stack.js +0 -40
  1893. package/packages/ui/src/components/ui/status-badge.d.ts +0 -27
  1894. package/packages/ui/src/components/ui/status-badge.d.ts.map +0 -1
  1895. package/packages/ui/src/components/ui/status-badge.js +0 -70
  1896. package/packages/ui/src/components/ui/switch.d.ts +0 -5
  1897. package/packages/ui/src/components/ui/switch.d.ts.map +0 -1
  1898. package/packages/ui/src/components/ui/switch.js +0 -7
  1899. package/packages/ui/src/components/ui/tabs.d.ts +0 -8
  1900. package/packages/ui/src/components/ui/tabs.d.ts.map +0 -1
  1901. package/packages/ui/src/components/ui/tabs.js +0 -12
  1902. package/packages/ui/src/components/ui/tag-editor.d.ts +0 -12
  1903. package/packages/ui/src/components/ui/tag-editor.d.ts.map +0 -1
  1904. package/packages/ui/src/components/ui/tag-editor.js +0 -34
  1905. package/packages/ui/src/components/ui/tag-input.d.ts +0 -3
  1906. package/packages/ui/src/components/ui/tag-input.d.ts.map +0 -1
  1907. package/packages/ui/src/components/ui/tag-input.js +0 -1
  1908. package/packages/ui/src/components/ui/textarea.d.ts +0 -12
  1909. package/packages/ui/src/components/ui/textarea.d.ts.map +0 -1
  1910. package/packages/ui/src/components/ui/textarea.js +0 -29
  1911. package/packages/ui/src/components/ui/themed-select.d.ts +0 -22
  1912. package/packages/ui/src/components/ui/themed-select.d.ts.map +0 -1
  1913. package/packages/ui/src/components/ui/themed-select.js +0 -137
  1914. package/packages/ui/src/components/ui/tooltip-extended.d.ts +0 -54
  1915. package/packages/ui/src/components/ui/tooltip-extended.d.ts.map +0 -1
  1916. package/packages/ui/src/components/ui/tooltip-extended.js +0 -114
  1917. package/packages/ui/src/components/ui/tooltip.d.ts +0 -18
  1918. package/packages/ui/src/components/ui/tooltip.d.ts.map +0 -1
  1919. package/packages/ui/src/components/ui/tooltip.js +0 -13
  1920. package/packages/ui/src/components/ui/typography.d.ts +0 -15
  1921. package/packages/ui/src/components/ui/typography.d.ts.map +0 -1
  1922. package/packages/ui/src/components/ui/typography.js +0 -46
  1923. package/packages/ui/src/hooks/index.d.ts +0 -6
  1924. package/packages/ui/src/hooks/index.d.ts.map +0 -1
  1925. package/packages/ui/src/hooks/index.js +0 -5
  1926. package/packages/ui/src/hooks/useClickOutside.d.ts +0 -3
  1927. package/packages/ui/src/hooks/useClickOutside.d.ts.map +0 -1
  1928. package/packages/ui/src/hooks/useClickOutside.js +0 -22
  1929. package/packages/ui/src/hooks/useDocumentVisibility.d.ts +0 -3
  1930. package/packages/ui/src/hooks/useDocumentVisibility.d.ts.map +0 -1
  1931. package/packages/ui/src/hooks/useDocumentVisibility.js +0 -28
  1932. package/packages/ui/src/hooks/useKeyboardShortcuts.d.ts +0 -13
  1933. package/packages/ui/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  1934. package/packages/ui/src/hooks/useKeyboardShortcuts.js +0 -34
  1935. package/packages/ui/src/hooks/useLinkedSidebarSelection.d.ts +0 -16
  1936. package/packages/ui/src/hooks/useLinkedSidebarSelection.d.ts.map +0 -1
  1937. package/packages/ui/src/hooks/useLinkedSidebarSelection.js +0 -117
  1938. package/packages/ui/src/hooks/useTimeout.d.ts +0 -5
  1939. package/packages/ui/src/hooks/useTimeout.d.ts.map +0 -1
  1940. package/packages/ui/src/hooks/useTimeout.js +0 -26
  1941. package/packages/ui/src/index.d.ts +0 -8
  1942. package/packages/ui/src/index.d.ts.map +0 -1
  1943. package/packages/ui/src/index.js +0 -7
  1944. package/packages/ui/src/layouts/chat-panel-layout/chat-panel-layout.d.ts +0 -11
  1945. package/packages/ui/src/layouts/chat-panel-layout/chat-panel-layout.d.ts.map +0 -1
  1946. package/packages/ui/src/layouts/chat-panel-layout/chat-panel-layout.js +0 -37
  1947. package/packages/ui/src/layouts/chat-panel-layout/index.d.ts +0 -2
  1948. package/packages/ui/src/layouts/chat-panel-layout/index.d.ts.map +0 -1
  1949. package/packages/ui/src/layouts/chat-panel-layout/index.js +0 -1
  1950. package/packages/ui/src/layouts/content-layout/content-layout.d.ts +0 -21
  1951. package/packages/ui/src/layouts/content-layout/content-layout.d.ts.map +0 -1
  1952. package/packages/ui/src/layouts/content-layout/content-layout.js +0 -5
  1953. package/packages/ui/src/layouts/content-layout/index.d.ts +0 -2
  1954. package/packages/ui/src/layouts/content-layout/index.d.ts.map +0 -1
  1955. package/packages/ui/src/layouts/content-layout/index.js +0 -1
  1956. package/packages/ui/src/layouts/index.d.ts +0 -5
  1957. package/packages/ui/src/layouts/index.d.ts.map +0 -1
  1958. package/packages/ui/src/layouts/index.js +0 -4
  1959. package/packages/ui/src/layouts/page-layout/index.d.ts +0 -5
  1960. package/packages/ui/src/layouts/page-layout/index.d.ts.map +0 -1
  1961. package/packages/ui/src/layouts/page-layout/index.js +0 -4
  1962. package/packages/ui/src/layouts/page-layout/page-layout-header.d.ts +0 -287
  1963. package/packages/ui/src/layouts/page-layout/page-layout-header.d.ts.map +0 -1
  1964. package/packages/ui/src/layouts/page-layout/page-layout-header.js +0 -8
  1965. package/packages/ui/src/layouts/page-layout/page-layout-mobile-drawer.d.ts +0 -3
  1966. package/packages/ui/src/layouts/page-layout/page-layout-mobile-drawer.d.ts.map +0 -1
  1967. package/packages/ui/src/layouts/page-layout/page-layout-mobile-drawer.js +0 -37
  1968. package/packages/ui/src/layouts/page-layout/page-layout-types.d.ts +0 -15
  1969. package/packages/ui/src/layouts/page-layout/page-layout-types.d.ts.map +0 -1
  1970. package/packages/ui/src/layouts/page-layout/page-layout-types.js +0 -1
  1971. package/packages/ui/src/layouts/page-layout/page-layout.d.ts +0 -3
  1972. package/packages/ui/src/layouts/page-layout/page-layout.d.ts.map +0 -1
  1973. package/packages/ui/src/layouts/page-layout/page-layout.js +0 -5
  1974. package/packages/ui/src/layouts/workspace-layout/index.d.ts +0 -4
  1975. package/packages/ui/src/layouts/workspace-layout/index.d.ts.map +0 -1
  1976. package/packages/ui/src/layouts/workspace-layout/index.js +0 -3
  1977. package/packages/ui/src/layouts/workspace-layout/workspace-layout-types.d.ts +0 -19
  1978. package/packages/ui/src/layouts/workspace-layout/workspace-layout-types.d.ts.map +0 -1
  1979. package/packages/ui/src/layouts/workspace-layout/workspace-layout-types.js +0 -1
  1980. package/packages/ui/src/layouts/workspace-layout/workspace-layout.d.ts +0 -3
  1981. package/packages/ui/src/layouts/workspace-layout/workspace-layout.d.ts.map +0 -1
  1982. package/packages/ui/src/layouts/workspace-layout/workspace-layout.js +0 -65
  1983. package/packages/ui/src/layouts/workspace-layout/workspace-mobile-sidebar-controls.d.ts +0 -13
  1984. package/packages/ui/src/layouts/workspace-layout/workspace-mobile-sidebar-controls.d.ts.map +0 -1
  1985. package/packages/ui/src/layouts/workspace-layout/workspace-mobile-sidebar-controls.js +0 -5
  1986. package/packages/ui/src/lib/floating-layers.d.ts +0 -17
  1987. package/packages/ui/src/lib/floating-layers.d.ts.map +0 -1
  1988. package/packages/ui/src/lib/floating-layers.js +0 -20
  1989. package/packages/ui/src/lib/utils.d.ts +0 -3
  1990. package/packages/ui/src/lib/utils.d.ts.map +0 -1
  1991. package/packages/ui/src/lib/utils.js +0 -5
@@ -1,2512 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- /**
3
- * AutomationsView — list/detail UI for tasks and n8n workflows.
4
- */
5
- import { Button, Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, FieldLabel, Input, PageLayout, PagePanel, SidebarCollapsedActionButton, SidebarContent, SidebarPanel, SidebarScrollRegion, StatusBadge, StatusDot, Textarea, } from "@elizaos/ui";
6
- import { ArrowRight, Calendar, CheckCircle2, ChevronDown, ChevronRight, Circle, Clock3, Copy, Edit as EditIcon, FileText, GitBranch, Grid3x3, LayoutDashboard, Mail, Pause, Play, Plus, RefreshCw, Rss, Settings, Share2, Signal, SquareTerminal, Trash2, Workflow, Zap, } from "lucide-react";
7
- import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, } from "react";
8
- import { client } from "../../api";
9
- import { isMissingCredentialsResponse, } from "../../api/client";
10
- import { useWorkflowGenerationState } from "../../hooks/useWorkflowGenerationState";
11
- import { dispatchFocusConnector, prettyCredName, providerFromCredType, useApp, } from "../../state";
12
- import { confirmDesktopAction } from "../../utils";
13
- import { formatDateTime, formatDurationMs } from "../../utils/format";
14
- // Direct sub-path import: `widgets/index.ts` re-exports `WidgetHost` while
15
- // also pulling other widgets/* modules that depend back through the barrel.
16
- // Going through the index from here drags Rollup into a chunk-level cycle
17
- // (warning: "reexported through module ... while both modules are
18
- // dependencies of each other"); the direct import skips it.
19
- import { WidgetHost } from "../../widgets/WidgetHost";
20
- import { AppPageSidebar } from "../shared/AppPageSidebar";
21
- import { AppWorkspaceChrome, useAppWorkspaceChatChrome, } from "../workspace/AppWorkspaceChrome";
22
- import { buildAutomationDraftConversationMetadata, buildAutomationResponseRoutingMetadata, buildCoordinatorConversationMetadata, buildCoordinatorTriggerConversationMetadata, buildWorkflowConversationMetadata, buildWorkflowDraftConversationMetadata, getAutomationBridgeConversationId, resolveAutomationConversation, } from "./automation-conversations";
23
- import { HeartbeatForm } from "./HeartbeatForm";
24
- import { buildCreateRequest, buildUpdateRequest, emptyForm, formFromTrigger, humanizeEventKind, loadUserTemplates, localizedExecutionStatus, railMonogram, saveUserTemplates, scheduleLabel, toneForLastStatus, validateForm, } from "./heartbeat-utils";
25
- import { PageScopedChatPane } from "./PageScopedChatPane";
26
- import { WorkflowGraphViewer } from "./WorkflowGraphViewer";
27
- import { VISUALIZE_WORKFLOW_EVENT, } from "./workflow-graph-events";
28
- const WORKFLOW_DRAFT_TITLE = "New Workflow Draft";
29
- const WORKFLOW_SYSTEM_ADDENDUM = "You are in a workflow-specific automation room. Focus only on this " +
30
- "workflow. Use the linked terminal conversation only when it directly " +
31
- "informs the workflow. Request keys and connector setup when needed, and " +
32
- "prefer owner-scoped LifeOps integrations for personal services.";
33
- const AUTOMATION_DRAFT_SYSTEM_ADDENDUM = "You are in an automation-creation room. The user wants to create one " +
34
- "automation. Decide whether it should be a task or a workflow and call " +
35
- "the matching action exactly once:\n" +
36
- '- Task: a simple prompt that runs on a schedule or from an event, for example "every morning summarize my inbox" or "when I get a GitHub notification, make a todo". Use CREATE_TRIGGER_TASK with a clear displayName, instructions, and any needed schedule.\n' +
37
- '- Workflow: a multi-step n8n pipeline with deterministic steps and integrations, for example "when a Slack message matches X, post to Discord and log it". Create an n8n workflow via the n8n actions.\n' +
38
- "Ask one short clarifying question only if the shape is genuinely " +
39
- "ambiguous; otherwise create immediately. After creation, briefly " +
40
- "confirm what you made and how it starts.";
41
- const NODE_CLASS_ORDER = [
42
- "agent",
43
- "action",
44
- "context",
45
- "integration",
46
- "trigger",
47
- "flow-control",
48
- ];
49
- const PAGE_CHAT_PREFILL_EVENT = "milady:chat:prefill";
50
- const DESCRIBE_WORKFLOW_PROMPT = "Describe your workflow";
51
- const DESCRIBE_AUTOMATION_PROMPT = "What should happen?";
52
- const WORKFLOW_PROMPT_PLACEHOLDER = "Describe the trigger and steps, e.g. when a GitHub issue opens, summarize it and post to Discord";
53
- const AUTOMATION_PROMPT_PLACEHOLDER = "e.g. Every morning summarize my inbox, or when a GitHub issue opens, triage it";
54
- const AUTOMATIONS_OVERVIEW_VISIBILITY_EVENT = "milady:automations:overview-visibility";
55
- function createWorkflowDraftId() {
56
- return globalThis.crypto.randomUUID();
57
- }
58
- function prefillPageChat(text, options) {
59
- if (typeof window === "undefined")
60
- return;
61
- window.dispatchEvent(new CustomEvent(PAGE_CHAT_PREFILL_EVENT, {
62
- detail: {
63
- text,
64
- select: options?.select ?? true,
65
- },
66
- }));
67
- }
68
- function buildWorkflowCopyRequest(workflow, name) {
69
- return {
70
- name,
71
- nodes: workflow.nodes?.map((node) => ({
72
- name: node.name,
73
- type: node.type,
74
- typeVersion: node.typeVersion ?? 1,
75
- position: node.position ?? [0, 0],
76
- parameters: node.parameters ?? {},
77
- ...(node.notes ? { notes: node.notes } : {}),
78
- ...(node.notesInFlow !== undefined
79
- ? { notesInFlow: node.notesInFlow }
80
- : {}),
81
- })) ?? [],
82
- connections: workflow.connections ?? {},
83
- settings: {},
84
- };
85
- }
86
- function inferAutomationPromptKind(prompt) {
87
- const normalized = prompt.toLowerCase();
88
- const looksScheduledTask = /\b(every|daily|hourly|weekly|monthly|weekday|morning|evening|at \d{1,2})\b/.test(normalized);
89
- const looksWorkflow = /\b(when|if|after|then|workflow|pipeline|webhook|event|triage|route|label|enrich|crm)\b/.test(normalized) ||
90
- (normalized.includes(" and ") &&
91
- /\b(send|post|create|update|reply|notify|summarize)\b/.test(normalized));
92
- if (looksScheduledTask && !normalized.includes("when "))
93
- return "task";
94
- return looksWorkflow ? "workflow" : "task";
95
- }
96
- function titleFromAutomationPrompt(prompt) {
97
- const cleaned = prompt
98
- .replace(/[^\p{L}\p{N}\s-]/gu, " ")
99
- .replace(/\s+/g, " ")
100
- .trim();
101
- if (!cleaned)
102
- return "New task";
103
- const title = cleaned.split(" ").slice(0, 7).join(" ");
104
- return title.charAt(0).toUpperCase() + title.slice(1);
105
- }
106
- // Reads `#automations.trigger=<id>` from the URL hash. The LifeOps chat-sidebar
107
- // Automations widget writes this when a row is clicked, so /automations can
108
- // focus the matching trigger card on navigation. Duplicated here (instead of
109
- // cross-importing from @elizaos/app-lifeops) to keep the package dep graph
110
- // one-way (app-lifeops → app-core).
111
- const AUTOMATIONS_TRIGGER_HASH_KEY = "automations.trigger";
112
- function readAutomationsTriggerFromHash() {
113
- if (typeof window === "undefined")
114
- return null;
115
- const raw = window.location.hash.startsWith("#")
116
- ? window.location.hash.slice(1)
117
- : window.location.hash;
118
- if (!raw)
119
- return null;
120
- for (const chunk of raw.split("&")) {
121
- if (!chunk)
122
- continue;
123
- const eq = chunk.indexOf("=");
124
- if (eq < 0)
125
- continue;
126
- try {
127
- const key = decodeURIComponent(chunk.slice(0, eq));
128
- if (key !== AUTOMATIONS_TRIGGER_HASH_KEY)
129
- continue;
130
- const value = decodeURIComponent(chunk.slice(eq + 1));
131
- return value || null;
132
- }
133
- catch {
134
- // Skip malformed encodings.
135
- }
136
- }
137
- return null;
138
- }
139
- function getNavigationPathFromWindow() {
140
- if (typeof window === "undefined")
141
- return "/";
142
- return window.location.protocol === "file:"
143
- ? window.location.hash.replace(/^#/, "") || "/"
144
- : window.location.pathname || "/";
145
- }
146
- function normalizeAutomationPath(pathname) {
147
- if (!pathname)
148
- return "/";
149
- const normalized = pathname.startsWith("/") ? pathname : `/${pathname}`;
150
- return normalized.length > 1 ? normalized.replace(/\/+$/, "") : normalized;
151
- }
152
- function getAutomationSubpageFromPath(pathname) {
153
- const normalized = normalizeAutomationPath(pathname);
154
- if (normalized === "/node-catalog" ||
155
- normalized === "/automations/node-catalog") {
156
- return "node-catalog";
157
- }
158
- return "list";
159
- }
160
- function getPathForAutomationSubpage(subpage) {
161
- return subpage === "node-catalog"
162
- ? "/automations/node-catalog"
163
- : "/automations";
164
- }
165
- function syncAutomationSubpagePath(subpage, mode = "push") {
166
- if (typeof window === "undefined")
167
- return;
168
- const nextPath = getPathForAutomationSubpage(subpage);
169
- const currentPath = normalizeAutomationPath(getNavigationPathFromWindow());
170
- if (currentPath === nextPath)
171
- return;
172
- if (window.location.protocol === "file:") {
173
- window.location.hash = nextPath;
174
- return;
175
- }
176
- window.history[mode === "replace" ? "replaceState" : "pushState"](null, "", nextPath);
177
- }
178
- function getSelectionKind(item) {
179
- if (!item)
180
- return null;
181
- if (item.type === "n8n_workflow")
182
- return "workflow";
183
- if (item.task)
184
- return "task";
185
- if (item.trigger)
186
- return "trigger";
187
- return null;
188
- }
189
- function getAutomationDisplayTitle(item) {
190
- return item.isDraft ? "Draft" : item.title;
191
- }
192
- function getOverviewDisplayTitle(item) {
193
- if (!item.isDraft) {
194
- return getAutomationDisplayTitle(item);
195
- }
196
- if (item.type === "automation_draft") {
197
- return "Draft automation";
198
- }
199
- return `Draft ${getAutomationGroupLabel(item).toLowerCase()}`;
200
- }
201
- function getAutomationGroupLabel(item) {
202
- if (item.type === "n8n_workflow") {
203
- return "Workflow";
204
- }
205
- if (item.system) {
206
- return "Agent owned";
207
- }
208
- return "Task";
209
- }
210
- function collectScheduledAutomationEntries(items) {
211
- return items.flatMap((item) => item.schedules.map((schedule) => ({
212
- item,
213
- schedule,
214
- key: `${item.id}:${schedule.id}`,
215
- })));
216
- }
217
- function isTimeBasedTrigger(trigger) {
218
- return trigger.triggerType !== "event";
219
- }
220
- function formatScheduleCount(count) {
221
- return count === 1 ? "1 schedule" : `${count} schedules`;
222
- }
223
- function getAutomationBridgeIdForItem(item, activeConversationId, conversations) {
224
- return (item?.room?.terminalBridgeConversationId ??
225
- item?.room?.sourceConversationId ??
226
- getAutomationBridgeConversationId(activeConversationId, conversations));
227
- }
228
- function getWorkflowNodeCount(item) {
229
- return item.workflow?.nodeCount ?? item.workflow?.nodes?.length ?? 0;
230
- }
231
- function getAutomationUpdatedAtMs(item) {
232
- if (!item.updatedAt) {
233
- return 0;
234
- }
235
- const ts = Date.parse(item.updatedAt);
236
- return Number.isFinite(ts) ? ts : 0;
237
- }
238
- function sortAutomationsByUpdatedAtDesc(items) {
239
- return [...items].sort((left, right) => getAutomationUpdatedAtMs(right) - getAutomationUpdatedAtMs(left));
240
- }
241
- function getAutomationIndicatorTone(item) {
242
- if (item.type === "n8n_workflow") {
243
- return item.enabled ? "accent" : undefined;
244
- }
245
- if (item.task) {
246
- return item.task.isCompleted ? undefined : "accent";
247
- }
248
- if (item.trigger) {
249
- return item.trigger.enabled ? "accent" : undefined;
250
- }
251
- return undefined;
252
- }
253
- function getAutomationStatusTone(item) {
254
- if (item.isDraft)
255
- return "warning";
256
- if (item.type === "n8n_workflow") {
257
- return item.enabled ? "success" : "muted";
258
- }
259
- if (item.trigger) {
260
- const lastTone = toneForLastStatus(item.trigger.lastStatus);
261
- if (lastTone === "danger")
262
- return "danger";
263
- return item.trigger.enabled ? "success" : "muted";
264
- }
265
- if (item.task) {
266
- return item.task.isCompleted ? "muted" : "success";
267
- }
268
- return "muted";
269
- }
270
- function getTriggerWakeModeLabel(trigger) {
271
- return trigger.wakeMode === "inject_now"
272
- ? "Interrupt and run now"
273
- : "Queue for next cycle";
274
- }
275
- function getTriggerStartModeLabel(trigger) {
276
- if (trigger.triggerType === "once")
277
- return "One time";
278
- if (trigger.triggerType === "cron")
279
- return "Cron schedule";
280
- if (trigger.triggerType === "event")
281
- return "Event";
282
- return "Repeating";
283
- }
284
- function buildTriggerSchedulePrompt(trigger) {
285
- if (trigger.triggerType === "interval") {
286
- return `Schedule: interval every ${trigger.intervalMs ?? 0}ms.`;
287
- }
288
- if (trigger.triggerType === "once") {
289
- return `Schedule: run once at ${trigger.scheduledAtIso ?? "an unspecified time"}.`;
290
- }
291
- if (trigger.triggerType === "cron") {
292
- return `Schedule: cron ${trigger.cronExpression ?? ""}.`;
293
- }
294
- if (trigger.triggerType === "event") {
295
- return `Event: ${trigger.eventKind ?? "event"}.`;
296
- }
297
- return `Schedule type: ${trigger.triggerType}.`;
298
- }
299
- function buildWorkflowCompilationPrompt(item) {
300
- const lines = [
301
- "Compile this coordinator automation into an n8n workflow.",
302
- `Automation title: ${item.title}`,
303
- `Description: ${item.description || "No additional description provided."}`,
304
- "Keep the workflow in this dedicated automation room.",
305
- "Use runtime actions and providers as workflow nodes when they fit the job.",
306
- "Use owner-scoped LifeOps nodes for Gmail, Calendar, Signal, Telegram, Discord, and GitHub when they are set up. If not, request the required setup or keys.",
307
- ];
308
- if (item.task) {
309
- lines.push(`Task description: ${item.task.description || "No task description."}`);
310
- }
311
- if (item.trigger) {
312
- lines.push(`Coordinator instructions: ${item.trigger.instructions}`);
313
- lines.push(buildTriggerSchedulePrompt(item.trigger));
314
- }
315
- if (item.schedules.length > 0) {
316
- lines.push("Existing schedules:");
317
- for (const schedule of item.schedules) {
318
- lines.push(`- ${buildTriggerSchedulePrompt(schedule)}`);
319
- }
320
- }
321
- lines.push("Ask follow-up questions only when workflow intent is genuinely ambiguous.");
322
- return lines.join("\n");
323
- }
324
- function getNodeClassLabel(className) {
325
- switch (className) {
326
- case "agent":
327
- return "Agent";
328
- case "action":
329
- return "Actions";
330
- case "context":
331
- return "Context";
332
- case "integration":
333
- return "Integrations";
334
- case "trigger":
335
- return "Triggers";
336
- case "flow-control":
337
- return "Flow Control";
338
- default:
339
- return className;
340
- }
341
- }
342
- function getNodeIcon(node) {
343
- if (node.source === "lifeops_event") {
344
- return _jsx(Zap, { className: "h-3.5 w-3.5" });
345
- }
346
- if (node.source === "lifeops") {
347
- if (node.id === "lifeops:gmail")
348
- return _jsx(Mail, { className: "h-3.5 w-3.5" });
349
- if (node.id === "lifeops:signal")
350
- return _jsx(Signal, { className: "h-3.5 w-3.5" });
351
- if (node.id === "lifeops:github") {
352
- return _jsx(GitBranch, { className: "h-3.5 w-3.5" });
353
- }
354
- }
355
- if (node.class === "agent") {
356
- return _jsx(SquareTerminal, { className: "h-3.5 w-3.5" });
357
- }
358
- if (node.class === "integration") {
359
- return _jsx(Workflow, { className: "h-3.5 w-3.5" });
360
- }
361
- if (node.class === "context") {
362
- return _jsx(Settings, { className: "h-3.5 w-3.5" });
363
- }
364
- if (node.class === "trigger") {
365
- return _jsx(Clock3, { className: "h-3.5 w-3.5" });
366
- }
367
- return _jsx(Zap, { className: "h-3.5 w-3.5" });
368
- }
369
- function useAutomationsViewController() {
370
- const { triggers = [], triggersLoaded = false, triggersLoading = false, triggersSaving = false, triggerRunsById = {}, triggerError = null, loadTriggers = async () => { }, createTrigger = async () => null, updateTrigger = async () => null, deleteTrigger = async () => true, runTriggerNow = async () => true, loadTriggerRuns = async () => { }, loadTriggerHealth = async () => { }, ensureTriggersLoaded = async () => {
371
- await loadTriggers(triggersLoaded ? { silent: true } : undefined);
372
- }, t, uiLanguage, } = useApp();
373
- const [taskError, setTaskError] = useState(null);
374
- const [taskSaving, setTaskSaving] = useState(false);
375
- const [form, setForm] = useState(emptyForm);
376
- const [editingId, setEditingId] = useState(null);
377
- const [selectedItemId, setSelectedItemId] = useState(null);
378
- const [selectedItemKind, setSelectedItemKind] = useState(null);
379
- const [formError, setFormError] = useState(null);
380
- const [editorOpen, setEditorOpen] = useState(false);
381
- const [editorMode, setEditorMode] = useState("trigger");
382
- const [userTemplates, setUserTemplates] = useState(loadUserTemplates);
383
- const [templateNotice, setTemplateNotice] = useState(null);
384
- const [taskFormName, setTaskFormName] = useState("");
385
- const [taskFormDescription, setTaskFormDescription] = useState("");
386
- const [editingTaskId, setEditingTaskId] = useState(null);
387
- const [filter, setFilter] = useState("all");
388
- const [automationItems, setAutomationItems] = useState([]);
389
- const [automationNodes, setAutomationNodes] = useState([]);
390
- const [automationsLoading, setAutomationsLoading] = useState(false);
391
- const [automationsLoaded, setAutomationsLoaded] = useState(false);
392
- const [automationsError, setAutomationsError] = useState(null);
393
- const [n8nStatus, setN8nStatus] = useState(null);
394
- const [workflowFetchError, setWorkflowFetchError] = useState(null);
395
- const didBootstrapDataRef = useRef(false);
396
- const lastSelectedIdRef = useRef(null);
397
- const refreshAutomations = useCallback(async () => {
398
- setAutomationsLoading(true);
399
- try {
400
- const [automationData, nodeCatalog] = await Promise.all([
401
- client.listAutomations(),
402
- client.getAutomationNodeCatalog(),
403
- ]);
404
- setAutomationItems(automationData.automations ?? []);
405
- setAutomationNodes(nodeCatalog.nodes ?? []);
406
- setN8nStatus(automationData.n8nStatus ?? null);
407
- setWorkflowFetchError(automationData.workflowFetchError ?? null);
408
- setAutomationsError(null);
409
- return automationData;
410
- }
411
- catch (error) {
412
- setAutomationsError(error instanceof Error
413
- ? error.message
414
- : t("automations.loadFailed", {
415
- defaultValue: "Failed to load automations.",
416
- }));
417
- return null;
418
- }
419
- finally {
420
- setAutomationsLoaded(true);
421
- setAutomationsLoading(false);
422
- }
423
- }, [t]);
424
- const createWorkbenchTask = useCallback(async (data) => {
425
- setTaskSaving(true);
426
- try {
427
- const res = await client.createWorkbenchTask(data);
428
- setTaskError(null);
429
- await refreshAutomations();
430
- return res.task;
431
- }
432
- catch (error) {
433
- setTaskError(error instanceof Error
434
- ? error.message
435
- : t("automations.taskCreateFailed", {
436
- defaultValue: "Failed to create task.",
437
- }));
438
- return null;
439
- }
440
- finally {
441
- setTaskSaving(false);
442
- }
443
- }, [refreshAutomations, t]);
444
- const updateWorkbenchTask = useCallback(async (id, data) => {
445
- setTaskSaving(true);
446
- try {
447
- const res = await client.updateWorkbenchTask(id, data);
448
- setTaskError(null);
449
- await refreshAutomations();
450
- return res.task;
451
- }
452
- catch (error) {
453
- setTaskError(error instanceof Error
454
- ? error.message
455
- : t("automations.taskUpdateFailed", {
456
- defaultValue: "Failed to update task.",
457
- }));
458
- return null;
459
- }
460
- finally {
461
- setTaskSaving(false);
462
- }
463
- }, [refreshAutomations, t]);
464
- const deleteWorkbenchTask = useCallback(async (id) => {
465
- setTaskSaving(true);
466
- try {
467
- await client.deleteWorkbenchTask(id);
468
- setTaskError(null);
469
- await refreshAutomations();
470
- return true;
471
- }
472
- catch (error) {
473
- setTaskError(error instanceof Error
474
- ? error.message
475
- : t("automations.taskDeleteFailed", {
476
- defaultValue: "Failed to delete task.",
477
- }));
478
- return false;
479
- }
480
- finally {
481
- setTaskSaving(false);
482
- }
483
- }, [refreshAutomations, t]);
484
- const saveFormAsTemplate = useCallback(() => {
485
- const name = form.displayName.trim();
486
- if (!name)
487
- return;
488
- const template = {
489
- id: `user_${Date.now()}_${Math.random().toString(36).slice(2, 6)}`,
490
- name,
491
- instructions: form.instructions.trim(),
492
- interval: form.durationValue || "1",
493
- unit: form.durationUnit,
494
- };
495
- setUserTemplates((previous) => {
496
- const next = [...previous, template];
497
- saveUserTemplates(next);
498
- return next;
499
- });
500
- }, [form]);
501
- const deleteUserTemplate = useCallback((id) => {
502
- setUserTemplates((previous) => {
503
- const next = previous.filter((template) => template.id !== id);
504
- saveUserTemplates(next);
505
- return next;
506
- });
507
- }, []);
508
- useEffect(() => {
509
- if (didBootstrapDataRef.current)
510
- return;
511
- didBootstrapDataRef.current = true;
512
- void loadTriggerHealth();
513
- void ensureTriggersLoaded();
514
- void refreshAutomations();
515
- }, [ensureTriggersLoaded, loadTriggerHealth, refreshAutomations]);
516
- useEffect(() => {
517
- const handler = (event) => {
518
- const detail = event
519
- .detail;
520
- if (detail?.filter) {
521
- setFilter(detail.filter);
522
- }
523
- };
524
- window.addEventListener("milady:automations:setFilter", handler);
525
- return () => window.removeEventListener("milady:automations:setFilter", handler);
526
- }, []);
527
- const allItems = automationItems;
528
- const filteredItems = useMemo(() => {
529
- switch (filter) {
530
- case "coordinator":
531
- return allItems.filter((item) => item.type === "coordinator_text");
532
- case "workflows":
533
- return allItems.filter((item) => item.type === "n8n_workflow");
534
- case "scheduled":
535
- return allItems.filter((item) => item.schedules.length > 0);
536
- default:
537
- return allItems;
538
- }
539
- }, [allItems, filter]);
540
- useEffect(() => {
541
- if (!selectedItemId)
542
- return;
543
- // Exempt in-flight workflow drafts — they're not in allItems until
544
- // generateWorkflowFromPrompt finishes and refreshAutomations
545
- // surfaces the real workflow. Without this exemption the draft
546
- // selection gets cleared mid-generation, the auto-select effect
547
- // below picks lastSelectedIdRef (typically a task like Heartbeat),
548
- // and the user lands somewhere unexpected — defeating the
549
- // WorkflowGenerationProgress UI we just added on the draft pane.
550
- if (selectedItemId.startsWith("workflow-draft:"))
551
- return;
552
- if (!allItems.some((item) => item.id === selectedItemId)) {
553
- setSelectedItemId(null);
554
- setSelectedItemKind(null);
555
- }
556
- }, [allItems, selectedItemId]);
557
- useEffect(() => {
558
- if (selectedItemId) {
559
- lastSelectedIdRef.current = selectedItemId;
560
- }
561
- }, [selectedItemId]);
562
- useEffect(() => {
563
- if (editorOpen ||
564
- editingId ||
565
- editingTaskId ||
566
- selectedItemId ||
567
- allItems.length === 0) {
568
- return;
569
- }
570
- const preferred = lastSelectedIdRef.current;
571
- if (!preferred)
572
- return;
573
- const item = allItems.find((candidate) => candidate.id === preferred);
574
- if (!item)
575
- return;
576
- setSelectedItemId(preferred);
577
- setSelectedItemKind(getSelectionKind(item));
578
- }, [allItems, editingId, editingTaskId, editorOpen, selectedItemId]);
579
- useEffect(() => {
580
- if (!editorOpen)
581
- return undefined;
582
- const onKeyDown = (event) => {
583
- if (event.key === "Escape") {
584
- setEditorOpen(false);
585
- setEditingId(null);
586
- setEditingTaskId(null);
587
- setForm(emptyForm);
588
- setFormError(null);
589
- setTaskFormName("");
590
- setTaskFormDescription("");
591
- }
592
- };
593
- window.addEventListener("keydown", onKeyDown);
594
- return () => window.removeEventListener("keydown", onKeyDown);
595
- }, [editorOpen]);
596
- // When the LifeOps chat-sidebar Automations widget row is clicked, it
597
- // writes `#automations.trigger=<id>` and `setTab("automations")`s over.
598
- // Read the hash on mount and on any hashchange to focus that trigger.
599
- useEffect(() => {
600
- function applyHash() {
601
- const hashTriggerId = readAutomationsTriggerFromHash();
602
- if (!hashTriggerId)
603
- return;
604
- const nextId = `trigger:${hashTriggerId}`;
605
- setSelectedItemId((prev) => (prev === nextId ? prev : nextId));
606
- setSelectedItemKind("trigger");
607
- }
608
- applyHash();
609
- window.addEventListener("hashchange", applyHash);
610
- return () => window.removeEventListener("hashchange", applyHash);
611
- }, []);
612
- const resetEditor = () => {
613
- setForm(emptyForm);
614
- setEditingId(null);
615
- setEditingTaskId(null);
616
- setFormError(null);
617
- setTaskFormName("");
618
- setTaskFormDescription("");
619
- };
620
- const closeEditor = () => {
621
- setEditorOpen(false);
622
- resetEditor();
623
- };
624
- const openCreateTrigger = () => {
625
- resetEditor();
626
- setEditorMode("trigger");
627
- setEditorOpen(true);
628
- };
629
- const openCreateTask = () => {
630
- openCreateTrigger();
631
- };
632
- const openEditTrigger = (trigger) => {
633
- setEditingId(trigger.id);
634
- setForm(formFromTrigger(trigger));
635
- setFormError(null);
636
- setSelectedItemId(`trigger:${trigger.id}`);
637
- setSelectedItemKind("trigger");
638
- setEditorMode("trigger");
639
- setEditorOpen(true);
640
- };
641
- const openEditTask = (task) => {
642
- setEditingTaskId(task.id);
643
- setTaskFormName(task.name);
644
- setTaskFormDescription(task.description);
645
- setSelectedItemId(`task:${task.id}`);
646
- setSelectedItemKind("task");
647
- setEditorMode("task");
648
- setEditorOpen(true);
649
- };
650
- const setField = (key, value) => setForm((previous) => ({ ...previous, [key]: value }));
651
- const onSubmitTrigger = async () => {
652
- const error = validateForm(form, t);
653
- if (error) {
654
- setFormError(error);
655
- return;
656
- }
657
- setFormError(null);
658
- if (editingId) {
659
- const updated = await updateTrigger(editingId, buildUpdateRequest(form));
660
- if (updated) {
661
- if (updated.kind === "workflow" && updated.workflowId) {
662
- setSelectedItemId(`workflow:${updated.workflowId}`);
663
- setSelectedItemKind("workflow");
664
- }
665
- else {
666
- setSelectedItemId(`trigger:${updated.id}`);
667
- setSelectedItemKind("trigger");
668
- }
669
- await refreshAutomations();
670
- closeEditor();
671
- }
672
- return;
673
- }
674
- const created = await createTrigger(buildCreateRequest(form));
675
- if (created) {
676
- if (created.kind === "workflow" && created.workflowId) {
677
- setSelectedItemId(`workflow:${created.workflowId}`);
678
- setSelectedItemKind("workflow");
679
- }
680
- else {
681
- setSelectedItemId(`trigger:${created.id}`);
682
- setSelectedItemKind("trigger");
683
- }
684
- void loadTriggerRuns(created.id);
685
- await refreshAutomations();
686
- closeEditor();
687
- }
688
- };
689
- const onSubmitTask = async () => {
690
- const name = taskFormName.trim();
691
- if (!name) {
692
- setFormError(t("automations.nameRequired", {
693
- defaultValue: "Name is required.",
694
- }));
695
- return;
696
- }
697
- setFormError(null);
698
- if (editingTaskId) {
699
- const updated = await updateWorkbenchTask(editingTaskId, {
700
- name,
701
- description: taskFormDescription.trim(),
702
- });
703
- if (updated) {
704
- setSelectedItemId(`task:${updated.id}`);
705
- setSelectedItemKind("task");
706
- closeEditor();
707
- }
708
- return;
709
- }
710
- const created = await createWorkbenchTask({
711
- name,
712
- description: taskFormDescription.trim(),
713
- });
714
- if (created) {
715
- setSelectedItemId(`task:${created.id}`);
716
- setSelectedItemKind("task");
717
- closeEditor();
718
- }
719
- };
720
- const onDeleteTrigger = async () => {
721
- if (!editingId)
722
- return;
723
- const confirmed = await confirmDesktopAction({
724
- title: t("heartbeatsview.deleteTitle"),
725
- message: t("heartbeatsview.deleteMessage", { name: form.displayName }),
726
- confirmLabel: t("common.delete"),
727
- cancelLabel: t("common.cancel"),
728
- type: "warning",
729
- });
730
- if (!confirmed)
731
- return;
732
- const deleted = await deleteTrigger(editingId);
733
- if (!deleted)
734
- return;
735
- if (selectedItemId === `trigger:${editingId}`) {
736
- setSelectedItemId(null);
737
- setSelectedItemKind(null);
738
- }
739
- await refreshAutomations();
740
- closeEditor();
741
- };
742
- const onDeleteTask = async (taskId) => {
743
- const confirmed = await confirmDesktopAction({
744
- title: t("automations.taskDeleteTitle", {
745
- defaultValue: "Delete task",
746
- }),
747
- message: t("automations.taskDeleteMessage", {
748
- defaultValue: "Are you sure you want to delete this task?",
749
- }),
750
- confirmLabel: t("common.delete"),
751
- cancelLabel: t("common.cancel"),
752
- type: "warning",
753
- });
754
- if (!confirmed)
755
- return;
756
- const deleted = await deleteWorkbenchTask(taskId);
757
- if (!deleted)
758
- return;
759
- if (selectedItemId === `task:${taskId}`) {
760
- setSelectedItemId(null);
761
- setSelectedItemKind(null);
762
- }
763
- if (editingTaskId === taskId) {
764
- closeEditor();
765
- }
766
- };
767
- const onRunSelectedTrigger = async (triggerId) => {
768
- setSelectedItemId(`trigger:${triggerId}`);
769
- setSelectedItemKind("trigger");
770
- await runTriggerNow(triggerId);
771
- await loadTriggerRuns(triggerId);
772
- await refreshAutomations();
773
- };
774
- const onToggleTriggerEnabled = async (triggerId, currentlyEnabled) => {
775
- const updated = await updateTrigger(triggerId, {
776
- enabled: !currentlyEnabled,
777
- });
778
- if (updated && editingId === updated.id) {
779
- setForm(formFromTrigger(updated));
780
- }
781
- await refreshAutomations();
782
- };
783
- const onToggleTaskCompleted = async (taskId, currentlyCompleted) => {
784
- await updateWorkbenchTask(taskId, {
785
- isCompleted: !currentlyCompleted,
786
- });
787
- };
788
- const resolvedSelectedItem = useMemo(() => {
789
- if (editorOpen || editingId || editingTaskId)
790
- return null;
791
- if (selectedItemId) {
792
- const found = allItems.find((item) => item.id === selectedItemId);
793
- if (found)
794
- return found;
795
- // In-flight workflow draft (createWorkflowDraft set selectedItemId
796
- // BEFORE refreshAutomations surfaced the real workflow). Synthesize
797
- // a minimal draft item so AutomationDraftPane renders with the
798
- // WorkflowGenerationProgress card during the LLM call.
799
- //
800
- // The `room` field is left null here. `activeWorkflowConversation`
801
- // — the live conversation tied to this draft — lives in
802
- // AutomationsLayout (a different scope from this controller hook),
803
- // so we cannot read it from here without a larger refactor.
804
- // Instead, handleDeleteDraft reads activeWorkflowConversation
805
- // directly and falls back to it when item.room is missing on a
806
- // synthesized draft (see the handler below).
807
- if (selectedItemId.startsWith("workflow-draft:")) {
808
- const draftId = selectedItemId.slice("workflow-draft:".length);
809
- const synthesized = {
810
- id: selectedItemId,
811
- type: "automation_draft",
812
- source: "workflow_draft",
813
- title: "New workflow",
814
- description: "",
815
- status: "draft",
816
- enabled: false,
817
- system: false,
818
- isDraft: true,
819
- hasBackingWorkflow: false,
820
- updatedAt: null,
821
- draftId,
822
- schedules: [],
823
- room: null,
824
- };
825
- return synthesized;
826
- }
827
- return null;
828
- }
829
- return allItems[0] ?? null;
830
- }, [allItems, editingId, editingTaskId, editorOpen, selectedItemId]);
831
- const modalTitle = editorMode === "trigger"
832
- ? form.kind === "workflow"
833
- ? editingId
834
- ? `Edit ${form.displayName.trim() || "schedule"}`
835
- : "New schedule"
836
- : editingId
837
- ? t("heartbeatsview.editTitle", {
838
- name: form.displayName.trim() ||
839
- t("automations.taskLabel", {
840
- defaultValue: "Task",
841
- }),
842
- defaultValue: "Edit {{name}}",
843
- })
844
- : t("automations.newTask", {
845
- defaultValue: "New task",
846
- })
847
- : editingTaskId
848
- ? t("automations.editTask", {
849
- defaultValue: "Edit task",
850
- })
851
- : t("automations.newTextTask", {
852
- defaultValue: "New text task",
853
- });
854
- const editorEnabled = editingId != null
855
- ? (triggers.find((trigger) => trigger.id === editingId)?.enabled ??
856
- form.enabled)
857
- : form.enabled;
858
- const hasItems = allItems.length > 0;
859
- const isLoading = triggersLoading || automationsLoading;
860
- const combinedError = automationsError || triggerError || taskError;
861
- const showFirstRunEmptyState = !isLoading && !combinedError && !hasItems;
862
- const showDetailPane = Boolean(editorOpen || editingId || editingTaskId || resolvedSelectedItem);
863
- return {
864
- filter,
865
- setFilter,
866
- allItems,
867
- filteredItems,
868
- selectedItemId,
869
- selectedItemKind,
870
- setSelectedItemId,
871
- setSelectedItemKind,
872
- resolvedSelectedItem,
873
- form,
874
- setForm,
875
- setField,
876
- editingId,
877
- setEditingId,
878
- editorOpen,
879
- setEditorOpen,
880
- editorMode,
881
- setEditorMode,
882
- formError,
883
- setFormError,
884
- editorEnabled,
885
- modalTitle,
886
- templateNotice,
887
- setTemplateNotice,
888
- userTemplates,
889
- taskFormName,
890
- setTaskFormName,
891
- taskFormDescription,
892
- setTaskFormDescription,
893
- editingTaskId,
894
- setEditingTaskId,
895
- taskSaving,
896
- closeEditor,
897
- openCreateTrigger,
898
- openCreateTask,
899
- openEditTrigger,
900
- openEditTask,
901
- onSubmitTrigger,
902
- onSubmitTask,
903
- onDeleteTrigger,
904
- onDeleteTask,
905
- onRunSelectedTrigger,
906
- onToggleTriggerEnabled,
907
- onToggleTaskCompleted,
908
- saveFormAsTemplate,
909
- deleteUserTemplate,
910
- loadTriggerRuns,
911
- refreshAutomations,
912
- automationNodes,
913
- automationsLoading,
914
- automationsLoaded,
915
- automationsError,
916
- n8nStatus,
917
- workflowFetchError,
918
- triggers,
919
- triggerRunsById,
920
- triggersSaving,
921
- triggersLoading,
922
- triggerError,
923
- taskError,
924
- hasItems,
925
- isLoading,
926
- combinedError,
927
- showFirstRunEmptyState,
928
- showDetailPane,
929
- t,
930
- uiLanguage,
931
- };
932
- }
933
- const AutomationsViewContext = createContext(null);
934
- function useAutomationsViewContext() {
935
- const context = useContext(AutomationsViewContext);
936
- if (!context) {
937
- throw new Error("Automations view context is unavailable.");
938
- }
939
- return context;
940
- }
941
- function AutomationCollapsibleSection({ sectionKey, label, icon, count, collapsed, onToggleCollapsed, onAdd, addLabel, emptyLabel, children, }) {
942
- const Chevron = collapsed ? ChevronRight : ChevronDown;
943
- return (_jsxs("section", { "data-testid": `automation-section-${sectionKey}`, className: "group/section space-y-0", children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsxs("button", { type: "button", onClick: () => onToggleCollapsed(sectionKey), "aria-expanded": !collapsed, className: "inline-flex min-w-0 flex-1 items-center gap-1.5 rounded-[var(--radius-sm)] bg-transparent px-1.5 py-1 text-left text-2xs font-semibold uppercase tracking-[0.16em] text-muted transition-colors hover:text-txt", children: [_jsx("span", { className: "inline-flex shrink-0 items-center justify-center text-muted", children: icon }), _jsx("span", { className: "truncate", children: label }), _jsx(Chevron, { "aria-hidden": true, className: "ml-auto h-3 w-3 shrink-0 text-muted" })] }), onAdd ? (_jsx("button", { type: "button", onClick: onAdd, "aria-label": addLabel ?? "Add", title: addLabel, className: "inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-[var(--radius-sm)] bg-transparent text-muted transition-colors hover:text-txt", children: _jsx(Plus, { className: "h-3.5 w-3.5", "aria-hidden": true }) })) : null] }), collapsed ? null : count === 0 ? (_jsx("div", { className: "py-1 pl-8 pr-1 text-2xs text-muted/70", children: emptyLabel })) : (_jsx("div", { className: "space-y-0 pl-3 pr-0.5", children: children }))] }));
944
- }
945
- function getWorkflowTemplates(t) {
946
- return [
947
- {
948
- id: "daily-email-digest",
949
- icon: Mail,
950
- title: t("automations.templates.emailDigest.title", {
951
- defaultValue: "Daily Email Digest",
952
- }),
953
- description: t("automations.templates.emailDigest.desc", {
954
- defaultValue: "Summarize your inbox each morning and post to Slack.",
955
- }),
956
- seedPrompt: t("automations.templates.emailDigest.prompt", {
957
- defaultValue: "Every weekday at 9am, read my Gmail inbox from the last 24 hours, summarize the important messages, and post the summary to my #daily channel in Slack.",
958
- }),
959
- },
960
- {
961
- id: "slack-discord-bridge",
962
- icon: Share2,
963
- title: "Slack \u2194 Discord Bridge",
964
- description: "Cross-post messages between Slack and Discord channels.",
965
- seedPrompt: "Whenever a message is posted in the #announcements channel in Slack, forward it to the #general channel in Discord.",
966
- },
967
- {
968
- id: "rss-to-summary",
969
- icon: Rss,
970
- title: "RSS to Summary",
971
- description: "Poll an RSS feed and summarize new articles via email.",
972
- seedPrompt: "Check my RSS feed https://example.com/feed.xml every hour. For each new article, generate a 3-sentence summary and email it to me.",
973
- },
974
- {
975
- id: "calendar-to-slack",
976
- icon: Calendar,
977
- title: "Calendar to Slack",
978
- description: "Post your day's agenda to Slack each morning.",
979
- seedPrompt: "Every weekday at 8am, read today's events from my Google Calendar and post a formatted agenda to my #daily-standup channel in Slack.",
980
- },
981
- {
982
- id: "github-issue-triage",
983
- icon: GitBranch,
984
- title: "GitHub Issue Triage",
985
- description: "Auto-classify and label new GitHub issues.",
986
- seedPrompt: "When a new issue is opened on my GitHub repo, classify it (bug/feature/question/docs), add the matching label, and post a welcoming comment.",
987
- },
988
- {
989
- id: "email-to-notion",
990
- icon: FileText,
991
- title: "Email \u2192 Notion",
992
- description: "Turn tagged emails into Notion pages.",
993
- seedPrompt: "When I receive a Gmail message labeled 'Task', extract the key details and create a new page in my Notion 'Inbox' database with the subject as the title and body as content.",
994
- },
995
- ];
996
- }
997
- function WorkflowTemplatesModal({ open, onOpenChange, onSelectTemplate, onSelectCustom, }) {
998
- const { t } = useAutomationsViewContext();
999
- const templates = getWorkflowTemplates(t);
1000
- return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "w-[min(calc(100vw_-_1.5rem),56rem)] max-w-none", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: t("automations.templatesModalTitle", {
1001
- defaultValue: "Start with a template",
1002
- }) }), _jsx(DialogDescription, { children: t("automations.templatesModalSubtitle", {
1003
- defaultValue: "Pick a workflow to customize, or start blank.",
1004
- }) })] }), _jsxs("div", { className: "grid gap-3 overflow-y-auto pr-1 sm:grid-cols-2 max-h-[min(32rem,calc(100dvh_-_12rem))]", children: [templates.map((template) => {
1005
- const Icon = template.icon;
1006
- return (_jsxs("div", { className: "flex flex-col gap-3 rounded-xl border border-border/40 bg-bg/30 p-4 hover:border-accent/30 hover:bg-accent/5 transition-colors", children: [_jsxs("div", { className: "flex items-start gap-3", children: [_jsx("div", { className: "mt-0.5 rounded-lg bg-accent/10 p-2 text-accent shrink-0", children: _jsx(Icon, { className: "h-4 w-4" }) }), _jsxs("div", { className: "min-w-0 flex-1 space-y-1", children: [_jsx("div", { className: "text-sm font-semibold text-txt", children: template.title }), _jsx("p", { className: "text-sm text-muted leading-snug", children: template.description })] })] }), _jsx(Button, { variant: "outline", size: "sm", className: "self-end h-7 px-3 text-xs", onClick: () => onSelectTemplate(template.seedPrompt), children: t("automations.templateUseButton", {
1007
- defaultValue: "Use template",
1008
- }) })] }, template.id));
1009
- }), _jsxs("div", { className: "flex flex-col gap-3 rounded-xl border border-dashed border-border/40 bg-transparent p-4 hover:border-accent/30 hover:bg-accent/5 transition-colors", children: [_jsxs("div", { className: "flex items-start gap-3", children: [_jsx("div", { className: "mt-0.5 rounded-lg bg-muted/10 p-2 text-muted shrink-0", children: _jsx(Plus, { className: "h-4 w-4" }) }), _jsxs("div", { className: "min-w-0 flex-1 space-y-1", children: [_jsx("div", { className: "text-sm font-semibold text-txt", children: t("automations.templateCustom.title", {
1010
- defaultValue: "Custom",
1011
- }) }), _jsx("p", { className: "text-sm text-muted leading-snug", children: t("automations.templateCustom.desc", {
1012
- defaultValue: "Describe your own workflow in chat.",
1013
- }) })] })] }), _jsx(Button, { variant: "outline", size: "sm", className: "self-end h-7 px-3 text-xs", onClick: onSelectCustom, children: t("automations.templateUseButton", {
1014
- defaultValue: "Use template",
1015
- }) })] })] })] }) }));
1016
- }
1017
- function CreateAutomationDialog({ open, onOpenChange, onCreateTask, onCreateWorkflow, onDescribeAutomation, }) {
1018
- return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "w-[min(calc(100vw_-_1.5rem),34rem)] max-w-none", children: [_jsx(DialogHeader, { children: _jsx(DialogTitle, { children: "Create automation" }) }), _jsx(AutomationCommandBar, { autoFocus: true, onSubmit: async (prompt) => {
1019
- await onDescribeAutomation(prompt);
1020
- onOpenChange(false);
1021
- } }), _jsxs("div", { className: "grid gap-3 sm:grid-cols-2", children: [_jsx("button", { type: "button", onClick: onCreateTask, className: "rounded-xl border border-border/30 bg-bg/30 p-4 text-left transition-colors hover:border-accent/40 hover:bg-accent/5", children: _jsx("div", { className: "text-sm font-semibold text-txt", children: "Task" }) }), _jsx("button", { type: "button", onClick: onCreateWorkflow, className: "rounded-xl border border-border/30 bg-bg/30 p-4 text-left transition-colors hover:border-accent/40 hover:bg-accent/5", children: _jsx("div", { className: "text-sm font-semibold text-txt", children: "Workflow" }) })] })] }) }));
1022
- }
1023
- // ---------------------------------------------------------------------------
1024
- // Zero-state onboarding CTA (Item 9)
1025
- // ---------------------------------------------------------------------------
1026
- function AutomationsZeroState({ onBrowseTemplates, onNewTrigger, onNewTask, }) {
1027
- const { t } = useAutomationsViewContext();
1028
- return (_jsx("div", { className: "flex min-h-0 flex-1 items-center justify-center px-8 py-12", children: _jsxs(PagePanel, { variant: "padded", className: "w-full max-w-lg text-center space-y-5", children: [_jsx("div", { className: "flex justify-center", children: _jsx("div", { className: "rounded-2xl bg-accent/10 p-4 text-accent", children: _jsx(Zap, { className: "h-8 w-8" }) }) }), _jsxs("div", { className: "space-y-2", children: [_jsx("h3", { className: "text-xl font-semibold text-txt", children: t("automations.zeroState.title", {
1029
- defaultValue: "What would you like your agent to do?",
1030
- }) }), _jsx("p", { className: "text-sm text-muted leading-relaxed", children: t("automations.zeroState.subtitle", {
1031
- defaultValue: "I can build workflows for you, run prompts on a schedule, or keep a checklist of tasks.",
1032
- }) })] }), _jsxs("div", { className: "flex flex-wrap justify-center gap-2 pt-1", children: [_jsx(Button, { variant: "default", size: "sm", className: "h-8 gap-1.5 px-4 text-sm", onClick: onBrowseTemplates, children: t("automations.zeroState.browseTemplates", {
1033
- defaultValue: "Browse templates \u2192",
1034
- }) }), _jsxs(Button, { variant: "outline", size: "sm", className: "h-8 gap-1.5 px-3 text-sm", onClick: onNewTrigger, children: [_jsx(Clock3, { className: "h-3.5 w-3.5" }), t("automations.newTriggerButton", {
1035
- defaultValue: "+ New trigger",
1036
- })] }), _jsxs(Button, { variant: "outline", size: "sm", className: "h-8 gap-1.5 px-3 text-sm", onClick: onNewTask, children: [_jsx(SquareTerminal, { className: "h-3.5 w-3.5" }), t("automations.newTaskButton", { defaultValue: "+ New task" })] })] })] }) }));
1037
- }
1038
- function TaskForm() {
1039
- const { taskFormName, setTaskFormName, taskFormDescription, setTaskFormDescription, editingTaskId, formError, taskSaving, onSubmitTask, onDeleteTask, closeEditor, modalTitle, t, } = useAutomationsViewContext();
1040
- return (_jsxs(PagePanel, { variant: "padded", className: "space-y-5", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("h3", { className: "text-lg font-semibold text-txt", children: modalTitle }), _jsx(Button, { variant: "ghost", size: "sm", onClick: closeEditor, children: t("common.cancel") })] }), formError && (_jsx("div", { className: "rounded-lg border border-danger/20 bg-danger/10 p-3 text-sm text-danger", children: formError })), _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { children: [_jsx(FieldLabel, { children: "Task name" }), _jsx(Input, { value: taskFormName, onChange: (event) => setTaskFormName(event.target.value), placeholder: "Task name...", autoFocus: true })] }), _jsxs("div", { children: [_jsx(FieldLabel, { children: "Prompt" }), _jsx(Textarea, { value: taskFormDescription, onChange: (event) => setTaskFormDescription(event.target.value), placeholder: "What should this task do?", rows: 4 })] })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Button, { variant: "default", size: "sm", disabled: taskSaving || !taskFormName.trim(), onClick: () => void onSubmitTask(), children: editingTaskId
1041
- ? t("automations.saveTask", {
1042
- defaultValue: "Save task",
1043
- })
1044
- : t("automations.createTask", {
1045
- defaultValue: "Create task",
1046
- }) }), editingTaskId && (_jsx(Button, { variant: "outline", size: "sm", className: "border-danger/30 text-danger hover:bg-danger/10", onClick: () => void onDeleteTask(editingTaskId), children: t("common.delete") }))] })] }));
1047
- }
1048
- function WorkflowRuntimeNotice({ status, workflowFetchError, busy, onRefresh, onStartLocal, }) {
1049
- // Auto-start kicks the local sidecar at runtime boot. While it is
1050
- // starting (or briefly stopped before the first tick), suppress the
1051
- // alarm UI — the fetch error is expected and resolves itself.
1052
- const isAutoStarting = status?.mode === "local" &&
1053
- (status.status === "starting" || status.status === "stopped");
1054
- if (!status && !workflowFetchError) {
1055
- return null;
1056
- }
1057
- if (status?.mode === "disabled") {
1058
- return (_jsxs("div", { className: "mb-2 flex items-center justify-between gap-3 rounded-[var(--radius-sm)] border border-border/25 bg-bg/30 px-3 py-1.5 text-xs-tight", children: [_jsx("span", { className: "text-muted", children: "Workflow deploy requires n8n. Text tasks still work without it." }), status.platform !== "mobile" && (_jsx("button", { type: "button", disabled: busy, onClick: onStartLocal, className: "text-2xs font-semibold uppercase tracking-[0.12em] text-accent hover:text-accent/80 disabled:opacity-50", children: "Enable" }))] }));
1059
- }
1060
- if (isAutoStarting) {
1061
- return (_jsxs("div", { className: "mb-2 flex items-center gap-2 px-3 py-1 text-2xs text-muted/70", children: [_jsx("span", { className: "inline-block h-1.5 w-1.5 animate-pulse rounded-full bg-warning" }), _jsx("span", { children: "Starting local n8n\u2026" })] }));
1062
- }
1063
- if (workflowFetchError) {
1064
- return (_jsxs("div", { className: "mb-2 flex items-center justify-between gap-3 rounded-[var(--radius-sm)] border border-danger/25 bg-danger/5 px-3 py-1.5 text-xs-tight", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx("span", { className: "inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-danger" }), _jsx("span", { className: "truncate text-danger/90", children: workflowFetchError })] }), _jsxs("div", { className: "flex items-center gap-3", children: [status?.mode === "local" && status.status !== "ready" && (_jsx("button", { type: "button", disabled: busy, onClick: onStartLocal, className: "text-2xs font-semibold uppercase tracking-[0.12em] text-danger hover:text-danger/80 disabled:opacity-50", children: "Restart" })), _jsx("button", { type: "button", disabled: busy, onClick: onRefresh, className: "text-2xs font-semibold uppercase tracking-[0.12em] text-muted hover:text-txt disabled:opacity-50", children: "Refresh" })] })] }));
1065
- }
1066
- if (status?.mode === "local" && status.status === "error") {
1067
- return (_jsxs("div", { className: "mb-2 flex items-center justify-between gap-3 rounded-[var(--radius-sm)] border border-danger/25 bg-danger/5 px-3 py-1.5 text-xs-tight", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx("span", { className: "inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-danger" }), _jsx("span", { className: "text-danger/90", children: "Local n8n failed to start." })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("button", { type: "button", disabled: busy, onClick: onStartLocal, className: "text-2xs font-semibold uppercase tracking-[0.12em] text-danger hover:text-danger/80 disabled:opacity-50", children: "Retry" }), _jsx("button", { type: "button", disabled: busy, onClick: onRefresh, className: "text-2xs font-semibold uppercase tracking-[0.12em] text-muted hover:text-txt disabled:opacity-50", children: "Refresh" })] })] }));
1068
- }
1069
- if (status?.mode === "cloud" && status.cloudHealth === "degraded") {
1070
- return (_jsxs("div", { className: "mb-2 flex items-center justify-between gap-3 rounded-[var(--radius-sm)] border border-warning/25 bg-warning/5 px-3 py-1.5 text-xs-tight", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx("span", { className: "inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-warning" }), _jsx("span", { className: "text-warning", children: "Eliza Cloud workflow gateway is degraded." })] }), _jsx("button", { type: "button", disabled: busy, onClick: onRefresh, className: "text-2xs font-semibold uppercase tracking-[0.12em] text-muted hover:text-txt disabled:opacity-50", children: "Refresh" })] }));
1071
- }
1072
- return null;
1073
- }
1074
- function AutomationNodePalette({ nodes, title, }) {
1075
- const groupedNodes = useMemo(() => NODE_CLASS_ORDER.map((className) => ({
1076
- className,
1077
- nodes: nodes.filter((node) => node.class === className),
1078
- })).filter((group) => group.nodes.length > 0), [nodes]);
1079
- const enabledCount = nodes.filter((n) => n.availability === "enabled").length;
1080
- const disabledCount = nodes.filter((n) => n.availability === "disabled").length;
1081
- return (_jsxs("section", { className: "rounded-[var(--radius-sm)] border border-border/25 bg-bg/20", children: [_jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-border/20 px-3 py-1.5", children: [_jsxs("div", { className: "flex items-center gap-2 text-2xs font-semibold uppercase tracking-[0.14em] text-muted", children: [_jsx("span", { children: title }), _jsx("span", { className: "text-muted/50", children: nodes.length })] }), _jsxs("div", { className: "flex items-center gap-1.5 text-[10px] tabular-nums", children: [_jsx("span", { className: "text-ok", children: enabledCount }), _jsx("span", { className: "text-muted/40", children: "\u00B7" }), _jsx("span", { className: "text-warning", children: disabledCount })] })] }), _jsx("div", { className: "space-y-2 px-2 py-2", children: groupedNodes.map((group) => (_jsxs("div", { children: [_jsx("div", { className: "px-1 pb-1 text-[10px] font-semibold uppercase tracking-[0.12em] text-muted/60", children: getNodeClassLabel(group.className) }), _jsx("div", { className: "grid gap-1 sm:grid-cols-2 xl:grid-cols-3", children: group.nodes.map((node) => (_jsxs("div", { title: node.disabledReason || node.description || node.label, className: `flex items-center gap-2 rounded-[var(--radius-sm)] border px-2 py-1 text-xs-tight ${node.availability === "enabled"
1082
- ? "border-border/20 bg-bg/30"
1083
- : "border-warning/20 bg-warning/5"}`, children: [_jsx("span", { className: node.availability === "enabled"
1084
- ? "text-accent/80"
1085
- : "text-warning", children: getNodeIcon(node) }), _jsx("span", { className: "truncate text-txt", children: node.label }), node.ownerScoped && (_jsx("span", { className: "ml-auto text-[9px] uppercase tracking-wider text-muted/60", children: "owner" }))] }, node.id))) })] }, group.className))) })] }));
1086
- }
1087
- function AutomationNodeCatalogPane({ nodes, }) {
1088
- return _jsx(AutomationNodePalette, { nodes: nodes, title: "Nodes" });
1089
- }
1090
- function TaskAutomationDetailPane({ automation, onPromoteToWorkflow, }) {
1091
- const { openEditTask, onDeleteTask, onToggleTaskCompleted, setEditorOpen, setEditorMode, setTaskFormDescription, setTaskFormName, setEditingTaskId, setSelectedItemId, setSelectedItemKind, t, uiLanguage, } = useAutomationsViewContext();
1092
- const task = automation.task;
1093
- if (!task) {
1094
- return null;
1095
- }
1096
- const statusLabel = automation.system
1097
- ? "System"
1098
- : task.isCompleted
1099
- ? "Completed"
1100
- : "Open";
1101
- const statusTone = automation.system ? "muted" : task.isCompleted ? "muted" : "success";
1102
- const nextScheduledRun = automation.schedules
1103
- .filter(isTimeBasedTrigger)
1104
- .map((schedule) => schedule.nextRunAtMs ?? 0)
1105
- .filter((value) => value > 0)
1106
- .sort((left, right) => left - right)[0];
1107
- const taskTypeLabel = automation.system ? "Agent owned" : "Task";
1108
- return (_jsxs("div", { className: "space-y-4", children: [_jsx(DetailHeader, { icon: automation.system ? (_jsx(Settings, { className: "h-3.5 w-3.5", "aria-hidden": true })) : (_jsx(FileText, { className: "h-3.5 w-3.5", "aria-hidden": true })), title: getAutomationDisplayTitle(automation), description: automation.description ||
1109
- (automation.system ? "Internal manual task." : "Simple text task."), status: _jsx(DetailStatusIndicator, { label: statusLabel, tone: statusTone, dotOnly: !automation.system && !task.isCompleted }), actions: !automation.system ? (_jsxs(_Fragment, { children: [_jsx(IconAction, { label: task.isCompleted ? "Reopen" : "Complete", onClick: () => void onToggleTaskCompleted(task.id, task.isCompleted), icon: task.isCompleted ? (_jsx(Circle, { className: "h-3.5 w-3.5" })) : (_jsx(CheckCircle2, { className: "h-3.5 w-3.5" })), tone: task.isCompleted ? "ok" : undefined }), _jsx(IconAction, { label: "Duplicate", onClick: () => {
1110
- setTaskFormName(`${task.name} copy`);
1111
- setTaskFormDescription(task.description);
1112
- setEditingTaskId(null);
1113
- setEditorMode("task");
1114
- setSelectedItemId(null);
1115
- setSelectedItemKind(null);
1116
- setEditorOpen(true);
1117
- }, icon: _jsx(Copy, { className: "h-3.5 w-3.5" }) }), _jsx(IconAction, { label: "Compile to Workflow", onClick: () => void onPromoteToWorkflow(automation), icon: _jsx(GitBranch, { className: "h-3.5 w-3.5" }) }), _jsx(IconAction, { label: t("common.edit"), onClick: () => openEditTask(task), icon: _jsx(EditIcon, { className: "h-3.5 w-3.5" }) }), _jsx(IconAction, { label: t("common.delete"), onClick: () => void onDeleteTask(task.id), icon: _jsx(Trash2, { className: "h-3.5 w-3.5" }), tone: "danger" })] })) : null }), _jsxs("div", { className: "grid gap-2 sm:grid-cols-2 xl:grid-cols-4", children: [_jsx(OverviewMetricCard, { label: "Task type", value: taskTypeLabel, detail: automation.schedules.length > 0
1118
- ? formatScheduleCount(automation.schedules.length)
1119
- : "Run it manually" }), _jsx(OverviewMetricCard, { label: "Status", value: statusLabel, detail: task.isCompleted ? "Already completed" : "Still open", tone: task.isCompleted ? "default" : "ok" }), _jsx(OverviewMetricCard, { label: "Starts", value: nextScheduledRun
1120
- ? formatRelativeFuture(nextScheduledRun, t)
1121
- : "Manual", detail: nextScheduledRun
1122
- ? formatDateTime(nextScheduledRun, {
1123
- fallback: "—",
1124
- locale: uiLanguage,
1125
- })
1126
- : "Run it yourself or attach a schedule", tone: nextScheduledRun ? "ok" : "default" }), _jsx(OverviewMetricCard, { label: "Updated", value: formatRelativePast(automation.updatedAt, t), detail: formatDateTime(automation.updatedAt, { fallback: "—" }) })] }), _jsxs("div", { className: "grid gap-4 xl:grid-cols-[minmax(0,1.12fr)_minmax(320px,0.88fr)]", children: [_jsxs("div", { className: "space-y-4", children: [_jsx(DetailSection, { title: "Prompt", children: _jsx("div", { className: "min-h-[10rem] px-4 py-4 text-sm leading-relaxed text-muted/85 whitespace-pre-wrap", children: task.description || "Describe what this task should do." }) }), _jsx(DetailSection, { title: automation.schedules.length > 0 ? "Starts when" : "How it starts", children: automation.schedules.length > 0 ? (_jsx("div", { className: "divide-y divide-border/20", children: automation.schedules.map((schedule) => (_jsx(OverviewListItem, { title: schedule.displayName, meta: scheduleLabel(schedule, t, uiLanguage), detail: formatDateTime(schedule.nextRunAtMs ?? null, {
1127
- fallback: "No next run queued",
1128
- locale: uiLanguage,
1129
- }), trailing: schedule.enabled ? "Live" : "Paused", tone: schedule.enabled ? "success" : "muted" }, schedule.id))) })) : (_jsx("div", { className: "px-4 py-4 text-xs-tight text-muted/70", children: "This task is manual right now. Add a schedule if you want it to start on its own." })) })] }), _jsx("div", { className: "space-y-4", children: _jsx(DetailSection, { title: "Details", children: _jsx(DetailFactList, { items: [
1130
- {
1131
- label: "State",
1132
- value: task.isCompleted ? "Completed" : "Open",
1133
- },
1134
- {
1135
- label: "Source",
1136
- value: automation.system
1137
- ? "Internal checklist item"
1138
- : "Simple prompt task",
1139
- },
1140
- {
1141
- label: "Next run",
1142
- value: nextScheduledRun
1143
- ? formatDateTime(nextScheduledRun, {
1144
- fallback: "—",
1145
- locale: uiLanguage,
1146
- })
1147
- : "Manual",
1148
- },
1149
- {
1150
- label: "Tags",
1151
- value: task.tags.length > 0 ? (_jsx("div", { className: "flex flex-wrap justify-end gap-1", children: task.tags.map((tag) => (_jsx("span", { className: "rounded bg-bg/50 px-1.5 py-0.5 text-[10px] text-muted", children: tag }, tag))) })) : ("None"),
1152
- },
1153
- ] }) }) })] })] }));
1154
- }
1155
- const AUTOMATION_DRAFT_EXAMPLES = [
1156
- {
1157
- icon: Mail,
1158
- kind: "task",
1159
- label: "Daily inbox digest",
1160
- blurb: "A simple recurring prompt that keeps your morning brief tight.",
1161
- prompt: "Every weekday at 9am, summarize my Gmail inbox from the last 24 hours and post the summary to my #daily channel in Slack.",
1162
- },
1163
- {
1164
- icon: Clock3,
1165
- kind: "task",
1166
- label: "Hourly health check",
1167
- blurb: "A lightweight prompt that watches for anything stuck or failing.",
1168
- prompt: "Every hour, review recent activity, check that nothing is stuck or errored, and notify me if anything needs attention.",
1169
- },
1170
- {
1171
- icon: GitBranch,
1172
- kind: "workflow",
1173
- label: "GitHub issue triage",
1174
- blurb: "An event-driven pipeline that labels, routes, and replies.",
1175
- prompt: "When a new issue is opened on my GitHub repo, classify it (bug / feature / question / docs), add the matching label, and post a welcoming comment.",
1176
- },
1177
- {
1178
- icon: Share2,
1179
- kind: "workflow",
1180
- label: "Lead handoff",
1181
- blurb: "A cross-app flow that enriches, routes, and notifies.",
1182
- prompt: "When a new website lead arrives, enrich it, create the contact in my CRM, and post a summary to Slack for the team.",
1183
- },
1184
- ];
1185
- function OverviewIdeaGrid({ ideas, onSelect, }) {
1186
- return (_jsx("div", { className: "grid gap-1.5", children: ideas.map((idea) => {
1187
- const Icon = idea.icon;
1188
- return (_jsxs("button", { type: "button", onClick: () => onSelect(idea), className: "group flex items-start gap-2 rounded-[var(--radius-sm)] border border-border/25 bg-bg/30 px-3 py-2 text-left transition-colors hover:border-accent/40 hover:bg-accent/5", children: [_jsx(Icon, { className: "mt-0.5 h-3.5 w-3.5 shrink-0 text-accent/80", "aria-hidden": true }), _jsxs("div", { className: "min-w-0 flex-1 space-y-0.5", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "truncate text-xs-tight font-semibold text-txt", children: idea.label }), _jsx("span", { className: "rounded bg-bg/50 px-1.5 py-0.5 text-[10px] uppercase tracking-[0.12em] text-muted/70", children: idea.kind })] }), _jsx("div", { className: "text-[11px] leading-snug text-muted/70", children: idea.blurb })] })] }, idea.label));
1189
- }) }));
1190
- }
1191
- function AutomationCommandBar({ onSubmit, autoFocus = false, }) {
1192
- const [prompt, setPrompt] = useState("");
1193
- const [submitting, setSubmitting] = useState(false);
1194
- const submit = useCallback(async () => {
1195
- const trimmed = prompt.trim();
1196
- if (!trimmed || submitting)
1197
- return;
1198
- setSubmitting(true);
1199
- try {
1200
- await onSubmit(trimmed);
1201
- setPrompt("");
1202
- }
1203
- finally {
1204
- setSubmitting(false);
1205
- }
1206
- }, [onSubmit, prompt, submitting]);
1207
- return (_jsx("div", { className: "rounded-2xl border border-border/30 bg-bg/55 p-1.5 shadow-sm", children: _jsxs("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-center", children: [_jsx(Input, { value: prompt, onChange: (event) => setPrompt(event.target.value), onKeyDown: (event) => {
1208
- if (event.key === "Enter" && !event.shiftKey) {
1209
- event.preventDefault();
1210
- void submit();
1211
- }
1212
- }, placeholder: AUTOMATION_PROMPT_PLACEHOLDER, "aria-label": DESCRIBE_AUTOMATION_PROMPT, className: "min-h-11 flex-1 border-0 bg-transparent px-4 text-sm shadow-none focus-visible:ring-0", autoFocus: autoFocus }), _jsx(Button, { variant: "default", size: "sm", className: "h-10 shrink-0 rounded-xl px-4 text-sm", disabled: submitting || prompt.trim().length === 0, onClick: () => void submit(), children: submitting ? "Creating..." : "Create" })] }) }));
1213
- }
1214
- function AutomationStatusStrip({ entries, }) {
1215
- return (_jsx("div", { className: "flex flex-wrap gap-2", children: entries.map((entry) => (_jsxs("div", { className: "inline-flex items-center gap-2 rounded-full border border-border/25 bg-bg/40 px-2.5 py-1 text-xs", children: [_jsx(StatusDot, { tone: entry.tone }), _jsx("span", { className: "font-medium text-txt", children: entry.label }), _jsx("span", { className: "tabular-nums text-muted", children: entry.value })] }, entry.label))) }));
1216
- }
1217
- function formatRelativeFuture(targetMs, t) {
1218
- const delta = targetMs - Date.now();
1219
- if (delta <= 0)
1220
- return "now";
1221
- return `in ${formatDurationMs(delta, { t })}`;
1222
- }
1223
- function formatRelativePast(iso, t) {
1224
- if (!iso)
1225
- return "—";
1226
- const ts = typeof iso === "string" ? Date.parse(iso) : iso;
1227
- if (!Number.isFinite(ts))
1228
- return "—";
1229
- const delta = Date.now() - ts;
1230
- if (delta < 0)
1231
- return "now";
1232
- return `${formatDurationMs(delta, { t })} ago`;
1233
- }
1234
- function OverviewMetricCard({ label, value, detail, tone = "default", }) {
1235
- const valueClass = tone === "ok"
1236
- ? "text-ok"
1237
- : tone === "warning"
1238
- ? "text-warning"
1239
- : tone === "danger"
1240
- ? "text-danger"
1241
- : "text-txt";
1242
- return (_jsxs("div", { className: "rounded-xl border border-border/25 bg-bg/35 px-3 py-3 shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]", children: [_jsx("div", { className: "text-[10px] font-semibold uppercase tracking-[0.14em] text-muted/70", children: label }), _jsx("div", { className: `mt-2 text-lg font-semibold leading-none ${valueClass}`, children: value }), _jsx("div", { className: "mt-2 text-[11px] leading-snug text-muted/70", children: detail })] }));
1243
- }
1244
- function OverviewListItem({ title, badge, meta, detail, trailing, tone = "muted", onClick, }) {
1245
- const content = (_jsxs("div", { className: "flex items-start gap-2", children: [_jsx(StatusDot, { tone: tone, className: "mt-1 shrink-0" }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "truncate font-medium text-txt", children: title }), badge ? (_jsx("span", { className: "rounded bg-bg/50 px-1.5 py-0.5 text-[10px] uppercase tracking-[0.12em] text-muted/70", children: badge })) : null, trailing ? (_jsx("span", { className: "ml-auto shrink-0 text-[11px] text-muted/70", children: trailing })) : null] }), meta ? (_jsx("div", { className: "mt-0.5 text-[11px] leading-snug text-muted/70", children: meta })) : null, detail ? (_jsx("div", { className: "mt-1 line-clamp-1 text-[11px] leading-snug text-muted/60", children: detail })) : null] })] }));
1246
- if (!onClick) {
1247
- return _jsx("div", { className: "px-3 py-2 text-xs-tight", children: content });
1248
- }
1249
- return (_jsx("button", { type: "button", onClick: onClick, className: "w-full px-3 py-2 text-left text-xs-tight transition-colors hover:bg-bg-muted/40", children: content }));
1250
- }
1251
- function AutomationsDashboard({ items, onSelectItem, onCreateTask, onCreateWorkflow, onDescribeAutomation, onUseIdea, }) {
1252
- const { t, uiLanguage } = useAutomationsViewContext();
1253
- const now = Date.now();
1254
- const visibleItems = useMemo(() => items.filter((item) => !item.system), [items]);
1255
- const scheduledEntries = useMemo(() => collectScheduledAutomationEntries(visibleItems), [visibleItems]);
1256
- const draftItems = useMemo(() => sortAutomationsByUpdatedAtDesc(visibleItems.filter((item) => item.isDraft)).slice(0, 4), [visibleItems]);
1257
- const taskHighlights = useMemo(() => sortAutomationsByUpdatedAtDesc(visibleItems.filter((item) => item.type !== "n8n_workflow")).slice(0, 6), [visibleItems]);
1258
- const workflowHighlights = useMemo(() => sortAutomationsByUpdatedAtDesc(visibleItems.filter((item) => item.type === "n8n_workflow")).slice(0, 6), [visibleItems]);
1259
- const liveItems = useMemo(() => sortAutomationsByUpdatedAtDesc(visibleItems.filter((item) => item.enabled && !item.isDraft)).slice(0, 5), [visibleItems]);
1260
- const recentItems = useMemo(() => sortAutomationsByUpdatedAtDesc(visibleItems).slice(0, 6), [visibleItems]);
1261
- const taskCount = visibleItems.filter((item) => item.type !== "n8n_workflow").length;
1262
- const workflowCount = visibleItems.filter((item) => item.type === "n8n_workflow").length;
1263
- const activeCount = visibleItems.filter((item) => item.enabled && !item.isDraft).length;
1264
- const activeScheduleCount = scheduledEntries.filter(({ schedule }) => schedule.enabled && isTimeBasedTrigger(schedule)).length;
1265
- const activeEventCount = scheduledEntries.filter(({ schedule }) => schedule.enabled && schedule.triggerType === "event").length;
1266
- const upcoming = useMemo(() => scheduledEntries
1267
- .filter(({ schedule }) => schedule.enabled &&
1268
- isTimeBasedTrigger(schedule) &&
1269
- typeof schedule.nextRunAtMs === "number" &&
1270
- schedule.nextRunAtMs > now)
1271
- .sort((a, b) => (a.schedule.nextRunAtMs ?? 0) - (b.schedule.nextRunAtMs ?? 0))
1272
- .slice(0, 6), [scheduledEntries, now]);
1273
- const failures = useMemo(() => scheduledEntries
1274
- .filter(({ schedule }) => toneForLastStatus(schedule.lastStatus) === "danger")
1275
- .slice(0, 5), [scheduledEntries]);
1276
- const taskIdeas = useMemo(() => AUTOMATION_DRAFT_EXAMPLES.filter((idea) => idea.kind === "task"), []);
1277
- const workflowIdeas = useMemo(() => AUTOMATION_DRAFT_EXAMPLES.filter((idea) => idea.kind === "workflow"), []);
1278
- const nextUpcoming = upcoming[0] ?? null;
1279
- const attentionEntries = useMemo(() => {
1280
- const next = failures.map(({ key, item, schedule }) => ({
1281
- key,
1282
- item,
1283
- tone: "danger",
1284
- title: getOverviewDisplayTitle(item),
1285
- groupLabel: getAutomationGroupLabel(item),
1286
- meta: scheduleLabel(schedule, t, uiLanguage),
1287
- detail: schedule.lastError?.trim() ||
1288
- `Last run ${formatRelativePast(schedule.lastRunAtIso, t)}.`,
1289
- trailing: formatRelativePast(schedule.lastRunAtIso, t),
1290
- }));
1291
- return next.slice(0, 6);
1292
- }, [failures, t, uiLanguage]);
1293
- const statusEntries = [
1294
- {
1295
- label: "Live",
1296
- value: activeCount,
1297
- tone: activeCount > 0 ? "success" : "muted",
1298
- },
1299
- {
1300
- label: "Timed",
1301
- value: activeScheduleCount,
1302
- tone: activeScheduleCount > 0 ? "success" : "muted",
1303
- },
1304
- {
1305
- label: "Events",
1306
- value: activeEventCount,
1307
- tone: activeEventCount > 0 ? "success" : "muted",
1308
- },
1309
- {
1310
- label: "Attention",
1311
- value: attentionEntries.length,
1312
- tone: attentionEntries.length > 0 ? "danger" : "success",
1313
- },
1314
- ];
1315
- if (taskCount === 0 && workflowCount === 0) {
1316
- return (_jsxs("div", { className: "space-y-4 px-1 pt-4", children: [_jsx("section", { className: "overflow-hidden rounded-xl border border-border/25 bg-[radial-gradient(circle_at_top_left,rgba(34,211,238,0.14),transparent_38%),radial-gradient(circle_at_top_right,rgba(34,197,94,0.12),transparent_32%),rgba(255,255,255,0.02)]", children: _jsxs("div", { className: "space-y-3 px-4 py-4 sm:px-5", children: [_jsxs("div", { className: "inline-flex items-center gap-2 rounded-full border border-border/25 bg-bg/40 px-2 py-1 text-[10px] font-semibold uppercase tracking-[0.14em] text-muted/70", children: [_jsx(LayoutDashboard, { className: "h-3 w-3", "aria-hidden": true }), "Overview"] }), _jsxs("div", { className: "space-y-1", children: [_jsx("h2", { className: "text-lg font-semibold text-txt", children: "Build your first automation" }), _jsx("p", { className: "text-xs-tight text-muted/80", children: "Workflows handle multi-step pipelines; tasks are simple prompts that run on a schedule or from an event." })] }), _jsx(AutomationCommandBar, { onSubmit: onDescribeAutomation, autoFocus: true }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsx(Button, { variant: "default", size: "sm", onClick: onCreateTask, children: "New task" }), _jsx(Button, { variant: "outline", size: "sm", onClick: onCreateWorkflow, children: "New workflow" })] })] }) }), _jsxs("div", { className: "grid gap-3 xl:grid-cols-2", children: [_jsx(DetailSection, { title: "Task ideas", children: _jsx("div", { className: "p-2", children: _jsx(OverviewIdeaGrid, { ideas: taskIdeas, onSelect: (idea) => onUseIdea(idea) }) }) }), _jsx(DetailSection, { title: "Workflow ideas", children: _jsx("div", { className: "p-2", children: _jsx(OverviewIdeaGrid, { ideas: workflowIdeas, onSelect: (idea) => onUseIdea(idea) }) }) })] }), draftItems.length > 0 && (_jsx(DetailSection, { title: "Drafts in progress", children: _jsx("div", { className: "divide-y divide-border/20", children: draftItems.map((item) => (_jsx(OverviewListItem, { onClick: () => onSelectItem(item), title: getOverviewDisplayTitle(item), badge: "Draft", meta: formatRelativePast(item.updatedAt, t), detail: item.description.trim() ||
1317
- "Open it and keep shaping it in the sidebar agent.", tone: "warning" }, item.id))) }) }))] }));
1318
- }
1319
- return (_jsxs("div", { className: "space-y-4 px-1 pt-4", children: [_jsxs("section", { className: "grid gap-4 xl:grid-cols-[minmax(0,1.15fr)_minmax(320px,0.85fr)]", children: [_jsx("div", { className: "rounded-xl border border-border/25 bg-[radial-gradient(circle_at_top_left,rgba(34,197,94,0.1),transparent_34%),radial-gradient(circle_at_top_right,rgba(56,189,248,0.12),transparent_30%),rgba(255,255,255,0.02)] px-4 py-4 sm:px-5", children: _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [_jsxs("div", { className: "inline-flex items-center gap-2 rounded-full border border-border/25 bg-bg/40 px-2 py-1 text-[10px] font-semibold uppercase tracking-[0.14em] text-muted/70", children: [_jsx(LayoutDashboard, { className: "h-3 w-3", "aria-hidden": true }), "Overview"] }), _jsx(AutomationStatusStrip, { entries: statusEntries })] }), _jsx(AutomationCommandBar, { onSubmit: onDescribeAutomation }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsx(Button, { variant: "ghost", size: "sm", onClick: onCreateTask, children: "New task" }), _jsx(Button, { variant: "ghost", size: "sm", onClick: onCreateWorkflow, children: "New workflow" })] })] }) }), _jsx(DetailSection, { title: "Next up", className: "h-full", children: nextUpcoming?.schedule.nextRunAtMs ? (_jsxs("button", { type: "button", onClick: () => onSelectItem(nextUpcoming.item), className: "flex w-full flex-col gap-2 px-4 py-4 text-left transition-colors hover:bg-bg-muted/40", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(StatusDot, { tone: "success", className: "shrink-0" }), _jsx("span", { className: "truncate text-sm font-semibold text-txt", children: getOverviewDisplayTitle(nextUpcoming.item) }), _jsx("span", { className: "rounded bg-bg/50 px-1.5 py-0.5 text-[10px] uppercase tracking-[0.12em] text-muted/70", children: getAutomationGroupLabel(nextUpcoming.item) })] }), _jsx("div", { className: "pl-4 text-[11px] text-muted/70", children: scheduleLabel(nextUpcoming.schedule, t, uiLanguage) }), _jsxs("div", { className: "pl-4", children: [_jsx("div", { className: "text-lg font-semibold text-txt", children: formatRelativeFuture(nextUpcoming.schedule.nextRunAtMs, t) }), _jsx("div", { className: "mt-1 text-[11px] text-muted/70", children: formatDateTime(nextUpcoming.schedule.nextRunAtMs, {
1320
- fallback: "—",
1321
- locale: uiLanguage,
1322
- }) })] })] })) : (_jsxs("div", { className: "flex h-full min-h-[11.75rem] flex-col justify-between gap-3 px-4 py-4", children: [_jsx("div", { className: "space-y-1", children: _jsx("div", { className: "text-sm font-medium text-txt", children: "None queued." }) }), draftItems[0] ? (_jsx(Button, { variant: "outline", size: "sm", className: "w-fit", onClick: () => onSelectItem(draftItems[0]), children: "Continue draft" })) : null] })) })] }), attentionEntries.length > 0 ? (_jsx(DetailSection, { title: "Needs attention", children: _jsx("div", { className: "divide-y divide-border/20", children: attentionEntries.map((entry) => (_jsx(OverviewListItem, { onClick: () => onSelectItem(entry.item), title: entry.title, badge: entry.groupLabel, meta: entry.meta, detail: entry.detail, trailing: entry.trailing, tone: entry.tone }, entry.key))) }) })) : null, _jsxs("div", { className: "grid gap-4 xl:grid-cols-2", children: [_jsx(DetailSection, { title: "Running", className: "h-full", children: liveItems.length > 0 ? (_jsx("div", { className: "divide-y divide-border/20", children: liveItems.map((item) => (_jsx(OverviewListItem, { onClick: () => onSelectItem(item), title: getOverviewDisplayTitle(item), badge: getAutomationGroupLabel(item), meta: item.schedules[0]
1323
- ? scheduleLabel(item.schedules[0], t, uiLanguage)
1324
- : "Manual or event", trailing: formatRelativePast(item.updatedAt, t), tone: "success" }, item.id))) })) : (_jsx("div", { className: "px-3 py-4 text-xs-tight text-muted/70", children: "Nothing live." })) }), _jsx(DetailSection, { title: "Drafts", className: "h-full", children: draftItems.length > 0 ? (_jsx("div", { className: "divide-y divide-border/20", children: draftItems.map((item) => (_jsx(OverviewListItem, { onClick: () => onSelectItem(item), title: getOverviewDisplayTitle(item), badge: getAutomationGroupLabel(item), meta: "Continue", trailing: formatRelativePast(item.updatedAt, t), tone: "warning" }, item.id))) })) : (_jsx("div", { className: "px-3 py-4 text-xs-tight text-muted/70", children: "No drafts." })) })] }), _jsx(DetailSection, { title: "Recently changed", children: recentItems.length > 0 ? (_jsx("div", { className: "grid divide-y divide-border/20 md:grid-cols-2 md:divide-x md:divide-y-0", children: recentItems.map((item) => (_jsx(OverviewListItem, { onClick: () => onSelectItem(item), title: getOverviewDisplayTitle(item), badge: getAutomationGroupLabel(item), meta: item.schedules[0]
1325
- ? scheduleLabel(item.schedules[0], t, uiLanguage)
1326
- : item.isDraft
1327
- ? "Draft"
1328
- : "Manual or event", trailing: formatRelativePast(item.updatedAt, t), tone: getAutomationStatusTone(item) }, item.id))) })) : (_jsx("div", { className: "px-3 py-4 text-xs-tight text-muted/70", children: "No recent changes." })) }), _jsxs("div", { className: "grid gap-4 xl:grid-cols-2", children: [_jsx(DetailSection, { title: "Tasks", className: "h-full", action: _jsx(Button, { variant: "ghost", size: "sm", className: "h-7 px-2 text-xs", onClick: onCreateTask, children: "New task" }), children: taskHighlights.length > 0 ? (_jsx("div", { className: "divide-y divide-border/20", children: taskHighlights.map((item) => (_jsx(OverviewListItem, { onClick: () => onSelectItem(item), title: getOverviewDisplayTitle(item), badge: item.isDraft
1329
- ? "Draft"
1330
- : item.schedules.length > 0
1331
- ? formatScheduleCount(item.schedules.length)
1332
- : undefined, meta: item.isDraft
1333
- ? "In progress"
1334
- : item.schedules.length > 0
1335
- ? scheduleLabel(item.schedules[0], t, uiLanguage)
1336
- : "Event or manual", trailing: formatRelativePast(item.updatedAt, t), tone: getAutomationStatusTone(item) }, item.id))) })) : (_jsx("div", { className: "px-3 py-4 text-xs-tight text-muted/70", children: "No tasks yet." })) }), _jsx(DetailSection, { title: "Workflows", className: "h-full", action: _jsx(Button, { variant: "ghost", size: "sm", className: "h-7 px-2 text-xs", onClick: onCreateWorkflow, children: "New workflow" }), children: workflowHighlights.length > 0 ? (_jsx("div", { className: "divide-y divide-border/20", children: workflowHighlights.map((item) => (_jsx(OverviewListItem, { onClick: () => onSelectItem(item), title: getOverviewDisplayTitle(item), badge: item.isDraft
1337
- ? "Draft"
1338
- : `${getWorkflowNodeCount(item)} nodes`, meta: item.isDraft
1339
- ? "In progress"
1340
- : item.schedules.length > 0
1341
- ? scheduleLabel(item.schedules[0], t, uiLanguage)
1342
- : "Event or manual", trailing: formatRelativePast(item.updatedAt, t), tone: getAutomationStatusTone(item) }, item.id))) })) : (_jsx("div", { className: "px-3 py-4 text-xs-tight text-muted/70", children: "No workflows yet." })) })] })] }));
1343
- }
1344
- function AutomationDraftPane({ automation, onSeedPrompt, onDeleteDraft, }) {
1345
- const chatChrome = useAppWorkspaceChatChrome();
1346
- const openSidebarDraftChat = useCallback((prompt) => {
1347
- chatChrome?.openChat();
1348
- onSeedPrompt(prompt);
1349
- }, [chatChrome, onSeedPrompt]);
1350
- return (_jsxs("div", { className: "space-y-4 px-4 pt-6", children: [_jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("h2", { className: "text-lg font-semibold text-txt", children: getAutomationDisplayTitle(automation) }), _jsx("p", { className: "max-w-2xl text-xs-tight text-muted/80", children: "Use the sidebar agent to turn this draft into a task or workflow. Say what should start it and what result you want." })] }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsx(Button, { variant: "outline", size: "sm", className: "h-8 gap-1.5 px-3 text-sm", onClick: () => openSidebarDraftChat(DESCRIBE_WORKFLOW_PROMPT), children: DESCRIBE_WORKFLOW_PROMPT }), _jsx(Button, { variant: "ghost", size: "sm", className: "h-8 px-3 text-sm text-danger hover:bg-danger/10 hover:text-danger", onClick: () => void onDeleteDraft(automation), children: "Delete draft" })] })] }), _jsx("div", { className: "grid gap-1.5 sm:grid-cols-2", children: AUTOMATION_DRAFT_EXAMPLES.map((example) => {
1351
- const Icon = example.icon;
1352
- return (_jsxs("button", { type: "button", onClick: () => openSidebarDraftChat(example.prompt), className: "group flex items-start gap-2 rounded-[var(--radius-sm)] border border-border/25 bg-bg/30 px-3 py-2 text-left transition-colors hover:border-accent/40 hover:bg-accent/5", children: [_jsx(Icon, { className: "mt-0.5 h-3.5 w-3.5 shrink-0 text-accent/80", "aria-hidden": true }), _jsxs("div", { className: "min-w-0 flex-1 space-y-0.5", children: [_jsx("div", { className: "text-xs-tight font-semibold text-txt", children: example.label }), _jsx("div", { className: "line-clamp-2 text-[11px] leading-snug text-muted/70", children: example.prompt })] })] }, example.label));
1353
- }) }), _jsx("p", { className: "px-1 text-[11px] text-muted/60", children: "The draft updates here as the automation takes shape." })] }));
1354
- }
1355
- function IconAction({ icon, label, onClick, tone, disabled, ariaBusy, }) {
1356
- const toneClass = tone === "warning"
1357
- ? "text-warning hover:bg-warning/10"
1358
- : tone === "ok"
1359
- ? "text-ok hover:bg-ok/10"
1360
- : tone === "danger"
1361
- ? "text-danger hover:bg-danger/10"
1362
- : "text-muted hover:text-txt hover:bg-bg-muted/50";
1363
- return (_jsx("button", { type: "button", onClick: onClick, "aria-label": label, "aria-busy": ariaBusy, title: label, disabled: disabled, className: `inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--radius-sm)] transition-colors disabled:cursor-not-allowed disabled:opacity-40 ${toneClass}`, children: icon }));
1364
- }
1365
- function DetailHeader({ icon, title, description, status, actions, }) {
1366
- return (_jsxs("div", { className: "flex items-start gap-3 border-b border-border/20 pb-3", children: [_jsxs("div", { className: "min-w-0 flex-1 space-y-0.5", children: [_jsxs("div", { className: "flex items-center gap-1.5 text-muted", children: [icon, _jsx("h2", { className: "truncate text-base font-semibold text-txt", children: title }), status] }), description ? (_jsx("p", { className: "text-xs-tight leading-snug text-muted/80", children: description })) : null] }), actions ? (_jsx("div", { className: "flex shrink-0 items-center gap-0.5", children: actions })) : null] }));
1367
- }
1368
- function DetailStatusIndicator({ label, tone, dotOnly = false, }) {
1369
- if (dotOnly) {
1370
- return (_jsxs("span", { className: "inline-flex items-center", children: [_jsx(StatusDot, { tone: tone }), _jsx("span", { className: "sr-only", children: label })] }));
1371
- }
1372
- return _jsx(StatusBadge, { label: label, variant: tone, withDot: true });
1373
- }
1374
- function DetailSection({ title, action, children, className, }) {
1375
- return (_jsxs("section", { className: `rounded-[var(--radius-sm)] border border-border/25 bg-bg/20 ${className ?? ""}`, children: [_jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-border/20 px-3 py-1.5", children: [_jsx("div", { className: "text-2xs font-semibold uppercase tracking-[0.14em] text-muted", children: title }), action] }), _jsx("div", { className: "py-1", children: children })] }));
1376
- }
1377
- function DetailFactList({ items, }) {
1378
- return (_jsx("dl", { className: "divide-y divide-border/20", children: items.map((item) => (_jsxs("div", { className: "flex items-start justify-between gap-3 px-3 py-2 text-xs-tight", children: [_jsx("dt", { className: "shrink-0 text-muted/70", children: item.label }), _jsx("dd", { className: "min-w-0 text-right text-txt", children: item.value })] }, item.label))) }));
1379
- }
1380
- function getWorkflowFlowNodes(workflow) {
1381
- const nodes = workflow?.nodes ?? [];
1382
- return [...nodes]
1383
- .sort((left, right) => {
1384
- const leftX = left.position?.[0] ?? 0;
1385
- const rightX = right.position?.[0] ?? 0;
1386
- if (leftX !== rightX)
1387
- return leftX - rightX;
1388
- const leftY = left.position?.[1] ?? 0;
1389
- const rightY = right.position?.[1] ?? 0;
1390
- if (leftY !== rightY)
1391
- return leftY - rightY;
1392
- return left.name.localeCompare(right.name);
1393
- })
1394
- .map((node) => ({
1395
- id: node.id ?? node.name,
1396
- label: node.name,
1397
- type: (node.type ?? "node").split(".").pop() ?? "node",
1398
- }));
1399
- }
1400
- function WorkflowDataFlowStrip({ workflow }) {
1401
- const flowNodes = getWorkflowFlowNodes(workflow);
1402
- if (flowNodes.length === 0) {
1403
- return (_jsx("div", { className: "px-4 py-3 text-xs-tight text-muted/70", children: "Generate the workflow to see its data path." }));
1404
- }
1405
- return (_jsxs("div", { className: "flex flex-wrap items-center gap-2 px-3 py-3", children: [_jsx("span", { className: "rounded-full border border-border/25 bg-bg/40 px-2 py-1 text-[10px] font-semibold uppercase tracking-[0.12em] text-muted", children: "Input" }), flowNodes.map((node, index) => (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(ArrowRight, { className: "h-3 w-3 text-muted/50", "aria-hidden": true }), _jsx("span", { className: "max-w-[12rem] truncate rounded-full border border-border/25 bg-bg/45 px-2.5 py-1 text-xs text-txt", children: node.label }), _jsx("span", { className: "hidden rounded bg-bg/40 px-1.5 py-0.5 text-[9px] uppercase tracking-[0.1em] text-muted/60 sm:inline", children: node.type }), index === flowNodes.length - 1 ? (_jsxs(_Fragment, { children: [_jsx(ArrowRight, { className: "h-3 w-3 text-muted/50", "aria-hidden": true }), _jsx("span", { className: "rounded-full border border-border/25 bg-bg/40 px-2 py-1 text-[10px] font-semibold uppercase tracking-[0.12em] text-muted", children: "Output" })] })) : null] }, node.id)))] }));
1406
- }
1407
- function TriggerAutomationDetailPane({ automation, onPromoteToWorkflow, }) {
1408
- const { t, uiLanguage, openEditTrigger, onRunSelectedTrigger, onToggleTriggerEnabled, loadTriggerRuns, triggerRunsById, setForm, setEditorOpen, setEditingId, setSelectedItemId, setSelectedItemKind, } = useAutomationsViewContext();
1409
- const trigger = automation.trigger;
1410
- const triggerId = trigger?.id;
1411
- const selectedRuns = triggerId ? (triggerRunsById[triggerId] ?? []) : [];
1412
- const hasLoadedRuns = triggerId
1413
- ? Object.hasOwn(triggerRunsById, triggerId)
1414
- : false;
1415
- useEffect(() => {
1416
- if (triggerId && !hasLoadedRuns) {
1417
- void loadTriggerRuns(triggerId);
1418
- }
1419
- }, [hasLoadedRuns, loadTriggerRuns, triggerId]);
1420
- if (!trigger) {
1421
- return null;
1422
- }
1423
- const { failureCount, successCount } = selectedRuns.reduce((counts, run) => {
1424
- const tone = toneForLastStatus(run.status);
1425
- if (tone === "success")
1426
- counts.successCount += 1;
1427
- else if (tone === "danger")
1428
- counts.failureCount += 1;
1429
- return counts;
1430
- }, { failureCount: 0, successCount: 0 });
1431
- const nextRunLabel = trigger.nextRunAtMs
1432
- ? trigger.triggerType === "event"
1433
- ? `On ${humanizeEventKind(trigger.eventKind ?? "event")}`
1434
- : formatRelativeFuture(trigger.nextRunAtMs, t)
1435
- : "Event or manual";
1436
- const whatRuns = trigger.kind === "workflow"
1437
- ? trigger.workflowName || "Selected workflow"
1438
- : trigger.instructions || "No prompt yet.";
1439
- return (_jsxs("div", { className: "space-y-4", children: [_jsx(DetailHeader, { icon: _jsx(Clock3, { className: "h-3.5 w-3.5", "aria-hidden": true }), title: getAutomationDisplayTitle(automation), description: automation.description, status: _jsx(DetailStatusIndicator, { label: trigger.enabled ? "Active" : "Paused", tone: trigger.enabled ? "success" : "muted", dotOnly: trigger.enabled }), actions: _jsxs(_Fragment, { children: [_jsx(IconAction, { label: trigger.enabled ? "Pause" : "Resume", onClick: () => void onToggleTriggerEnabled(trigger.id, trigger.enabled), icon: trigger.enabled ? (_jsx(Pause, { className: "h-3.5 w-3.5" })) : (_jsx(Play, { className: "h-3.5 w-3.5" })), tone: trigger.enabled ? "warning" : "ok" }), _jsx(IconAction, { label: t("triggersview.RunNow"), onClick: () => void onRunSelectedTrigger(trigger.id), icon: _jsx(Zap, { className: "h-3.5 w-3.5" }) }), _jsx(IconAction, { label: t("common.edit"), onClick: () => openEditTrigger(trigger), icon: _jsx(EditIcon, { className: "h-3.5 w-3.5" }) }), _jsx(IconAction, { label: t("heartbeatsview.duplicate"), onClick: () => {
1440
- setForm({
1441
- ...formFromTrigger(trigger),
1442
- displayName: `${trigger.displayName} (copy)`,
1443
- });
1444
- setEditorOpen(true);
1445
- setEditingId(null);
1446
- setSelectedItemId(null);
1447
- setSelectedItemKind(null);
1448
- }, icon: _jsx(Copy, { className: "h-3.5 w-3.5" }) }), _jsx(IconAction, { label: "Compile to Workflow", onClick: () => void onPromoteToWorkflow(automation), icon: _jsx(GitBranch, { className: "h-3.5 w-3.5" }) })] }) }), _jsxs("div", { className: "grid gap-2 sm:grid-cols-2 xl:grid-cols-5", children: [_jsx(OverviewMetricCard, { label: "Runs", value: _jsx("span", { className: "tabular-nums", children: selectedRuns.length }), detail: `${successCount} successful · ${failureCount} failed`, tone: failureCount > 0 ? "danger" : successCount > 0 ? "ok" : "default" }), _jsx(OverviewMetricCard, { label: "Starts", value: getTriggerStartModeLabel(trigger), detail: scheduleLabel(trigger, t, uiLanguage) }), _jsx(OverviewMetricCard, { label: "When it fires", value: getTriggerWakeModeLabel(trigger), detail: trigger.enabled ? "Enabled" : "Paused", tone: trigger.enabled ? "ok" : "default" }), _jsx(OverviewMetricCard, { label: "Next run", value: nextRunLabel, detail: trigger.triggerType === "event"
1449
- ? "Waiting for event input"
1450
- : formatDateTime(trigger.nextRunAtMs, {
1451
- fallback: "No time-based run queued",
1452
- locale: uiLanguage,
1453
- }), tone: trigger.nextRunAtMs || trigger.triggerType === "event"
1454
- ? "ok"
1455
- : "default" }), _jsx(OverviewMetricCard, { label: "Last run", value: formatRelativePast(trigger.lastRunAtIso, t), detail: formatDateTime(trigger.lastRunAtIso, {
1456
- fallback: "Not run yet",
1457
- locale: uiLanguage,
1458
- }) })] }), _jsx(DetailSection, { title: trigger.kind === "workflow" ? "Runs this workflow" : "Prompt", children: _jsx("div", { className: "min-h-[8rem] px-4 py-4 text-sm leading-relaxed text-muted/85 whitespace-pre-wrap", children: whatRuns }) }), _jsxs("div", { className: "grid gap-4 xl:grid-cols-[minmax(0,1fr)_minmax(320px,0.95fr)]", children: [_jsx(DetailSection, { title: "Run history", className: "h-full", action: _jsx(IconAction, { label: t("common.refresh"), onClick: () => void loadTriggerRuns(trigger.id), icon: _jsx(RefreshCw, { className: "h-3.5 w-3.5" }) }), children: !hasLoadedRuns ? (_jsxs("div", { className: "flex items-center gap-2 px-3 py-2 text-xs-tight text-muted/70", children: [_jsx("div", { className: "h-3 w-3 animate-spin rounded-full border-2 border-muted/30 border-t-muted/80" }), t("appsview.Loading")] })) : selectedRuns.length === 0 ? (_jsx("div", { className: "px-3 py-3 text-xs-tight text-muted/60", children: "No runs yet." })) : (_jsx("div", { className: "divide-y divide-border/20", children: selectedRuns.map((run) => (_jsxs("div", { className: "flex flex-wrap items-center gap-2 px-3 py-2 text-xs-tight", children: [_jsx(StatusBadge, { label: localizedExecutionStatus(run.status, t), variant: toneForLastStatus(run.status) }), _jsx("span", { className: "text-muted/70 tabular-nums", children: formatDateTime(run.startedAt, { locale: uiLanguage }) }), _jsx("span", { className: "text-muted/60", children: formatDurationMs(run.latencyMs, { t }) }), _jsx("span", { className: "ml-auto rounded bg-bg/40 px-1 py-0.5 font-mono text-[10px] text-muted/60", children: run.source }), run.error ? (_jsx("div", { className: "basis-full whitespace-pre-wrap rounded border border-danger/20 bg-danger/10 px-2 py-1 font-mono text-[11px] text-danger/90", children: run.error })) : null] }, run.triggerRunId))) })) }), _jsx(DetailSection, { title: "Schedule & behavior", className: "h-full", children: _jsx(DetailFactList, { items: [
1459
- {
1460
- label: "Schedule",
1461
- value: scheduleLabel(trigger, t, uiLanguage),
1462
- },
1463
- {
1464
- label: "Trigger type",
1465
- value: getTriggerStartModeLabel(trigger),
1466
- },
1467
- ...(trigger.triggerType === "event"
1468
- ? [
1469
- {
1470
- label: "Event",
1471
- value: trigger.eventKind
1472
- ? humanizeEventKind(trigger.eventKind)
1473
- : "Unknown",
1474
- },
1475
- ]
1476
- : []),
1477
- {
1478
- label: "Wake mode",
1479
- value: getTriggerWakeModeLabel(trigger),
1480
- },
1481
- {
1482
- label: "Status",
1483
- value: trigger.enabled ? "Enabled" : "Paused",
1484
- },
1485
- {
1486
- label: "Max runs",
1487
- value: trigger.maxRuns ? String(trigger.maxRuns) : "Unlimited",
1488
- },
1489
- ] }) })] })] }));
1490
- }
1491
- function WorkflowAutomationDetailPane({ automation, n8nStatus, workflowFetchError, workflowBusyId, workflowOpsBusy, onDeleteDraft, onDeleteWorkflow, onDuplicateWorkflow, onGenerateWorkflow, onRefreshWorkflows, onScheduleWorkflow, onStartLocalN8n, onToggleWorkflowActive, }) {
1492
- const { t, uiLanguage } = useApp();
1493
- const chatChrome = useAppWorkspaceChatChrome();
1494
- const [fullWorkflow, setFullWorkflow] = useState(automation.workflow ?? null);
1495
- const [workflowLoading, setWorkflowLoading] = useState(false);
1496
- const [workflowPrompt, setWorkflowPrompt] = useState("");
1497
- const [workflowPromptError, setWorkflowPromptError] = useState(null);
1498
- const [workflowPromptSaving, setWorkflowPromptSaving] = useState(false);
1499
- const workflowGenerating = useWorkflowGenerationState(automation.workflowId);
1500
- const busy = workflowOpsBusy ||
1501
- (automation.workflowId != null && workflowBusyId === automation.workflowId);
1502
- const graphWorkflow = fullWorkflow ?? automation.workflow ?? null;
1503
- const nodeCount = graphWorkflow?.nodeCount ??
1504
- graphWorkflow?.nodes?.length ??
1505
- getWorkflowNodeCount(automation);
1506
- const workflowIsActive = graphWorkflow?.active ?? automation.enabled;
1507
- const nextWorkflowRun = automation.schedules
1508
- .filter(isTimeBasedTrigger)
1509
- .map((schedule) => schedule.nextRunAtMs ?? 0)
1510
- .filter((value) => value > 0)
1511
- .sort((left, right) => left - right)[0];
1512
- const workflowIdeas = AUTOMATION_DRAFT_EXAMPLES.filter((idea) => idea.kind === "workflow");
1513
- const showWorkflowStarterIdeas = automation.isDraft || nodeCount === 0;
1514
- const showWorkflowPromptBox = automation.isDraft || nodeCount === 0;
1515
- const handleDescribeWorkflow = useCallback(() => {
1516
- chatChrome?.openChat();
1517
- prefillPageChat(DESCRIBE_WORKFLOW_PROMPT, { select: true });
1518
- }, [chatChrome]);
1519
- const handleUseWorkflowIdea = useCallback((idea) => {
1520
- chatChrome?.openChat();
1521
- prefillPageChat(idea.prompt, { select: true });
1522
- }, [chatChrome]);
1523
- const submitWorkflowPrompt = useCallback(async () => {
1524
- const prompt = workflowPrompt.trim();
1525
- if (!prompt) {
1526
- setWorkflowPromptError("Describe what this workflow should do.");
1527
- return;
1528
- }
1529
- setWorkflowPromptError(null);
1530
- setWorkflowPromptSaving(true);
1531
- try {
1532
- await onGenerateWorkflow(automation, prompt);
1533
- setWorkflowPrompt("");
1534
- chatChrome?.openChat();
1535
- prefillPageChat(prompt, { select: false });
1536
- }
1537
- catch (error) {
1538
- setWorkflowPromptError(error instanceof Error ? error.message : "Failed to generate workflow.");
1539
- }
1540
- finally {
1541
- setWorkflowPromptSaving(false);
1542
- }
1543
- }, [automation, chatChrome, onGenerateWorkflow, workflowPrompt]);
1544
- useEffect(() => {
1545
- let cancelled = false;
1546
- setFullWorkflow(automation.workflow ?? null);
1547
- if (!automation.workflowId || !automation.hasBackingWorkflow) {
1548
- setWorkflowLoading(false);
1549
- return undefined;
1550
- }
1551
- setWorkflowLoading(true);
1552
- void client
1553
- .getN8nWorkflow(automation.workflowId)
1554
- .then((workflow) => {
1555
- if (!cancelled) {
1556
- setFullWorkflow(workflow);
1557
- }
1558
- })
1559
- .catch(() => {
1560
- if (!cancelled) {
1561
- setFullWorkflow(automation.workflow ?? null);
1562
- }
1563
- })
1564
- .finally(() => {
1565
- if (!cancelled) {
1566
- setWorkflowLoading(false);
1567
- }
1568
- });
1569
- return () => {
1570
- cancelled = true;
1571
- };
1572
- }, [
1573
- automation.hasBackingWorkflow,
1574
- automation.workflow,
1575
- automation.workflowId,
1576
- ]);
1577
- return (_jsxs("div", { className: "space-y-4", children: [_jsx(WorkflowRuntimeNotice, { status: n8nStatus, workflowFetchError: workflowFetchError, busy: busy, onRefresh: () => void onRefreshWorkflows(), onStartLocal: () => void onStartLocalN8n() }), _jsx(DetailHeader, { icon: _jsx(Workflow, { className: "h-3.5 w-3.5", "aria-hidden": true }), title: getAutomationDisplayTitle(automation), description: null, status: _jsx(DetailStatusIndicator, { label: automation.isDraft
1578
- ? "Draft"
1579
- : automation.enabled
1580
- ? "Active"
1581
- : "Paused", tone: automation.isDraft
1582
- ? "warning"
1583
- : automation.enabled
1584
- ? "success"
1585
- : "muted", dotOnly: !automation.isDraft && automation.enabled }), actions: automation.isDraft ? (_jsx(IconAction, { label: "Delete draft", onClick: () => void onDeleteDraft(automation), icon: _jsx(Trash2, { className: "h-3.5 w-3.5" }), tone: "danger" })) : automation.workflowId ? (_jsxs(_Fragment, { children: [_jsx(IconAction, { label: busy
1586
- ? t("common.updating", {
1587
- defaultValue: "Updating...",
1588
- })
1589
- : workflowIsActive
1590
- ? t("automations.n8n.deactivate", {
1591
- defaultValue: "Deactivate",
1592
- })
1593
- : t("automations.n8n.activate", {
1594
- defaultValue: "Activate",
1595
- }), onClick: () => void onToggleWorkflowActive(automation), disabled: busy, ariaBusy: busy, icon: workflowIsActive ? (_jsx(Pause, { className: "h-3.5 w-3.5" })) : (_jsx(Play, { className: "h-3.5 w-3.5" })), tone: workflowIsActive ? "warning" : "ok" }), _jsx(IconAction, { label: "Schedule workflow", onClick: () => onScheduleWorkflow(automation), disabled: busy, icon: _jsx(Clock3, { className: "h-3.5 w-3.5" }) }), _jsx(IconAction, { label: "Duplicate workflow", onClick: () => void onDuplicateWorkflow(automation), disabled: busy, icon: _jsx(Copy, { className: "h-3.5 w-3.5" }) }), _jsx(IconAction, { label: busy
1596
- ? t("common.updating", {
1597
- defaultValue: "Updating...",
1598
- })
1599
- : t("automations.n8n.deleteWorkflow", {
1600
- defaultValue: "Delete workflow",
1601
- }), onClick: () => void onDeleteWorkflow(automation), disabled: busy, ariaBusy: busy, icon: _jsx(Trash2, { className: "h-3.5 w-3.5" }), tone: "danger" })] })) : null }), _jsxs("div", { className: "grid gap-2 sm:grid-cols-2 xl:grid-cols-5", children: [_jsx(OverviewMetricCard, { label: "Status", value: automation.isDraft
1602
- ? "Draft"
1603
- : workflowIsActive
1604
- ? "Active"
1605
- : "Paused", detail: automation.schedules.length > 0
1606
- ? formatScheduleCount(automation.schedules.length)
1607
- : "No schedule attached", tone: automation.isDraft ? "warning" : workflowIsActive ? "ok" : "default" }), _jsx(OverviewMetricCard, { label: "Nodes", value: _jsx("span", { className: "tabular-nums", children: nodeCount }), detail: nodeCount > 0 ? "Visible in the graph below" : "Still blank" }), _jsx(OverviewMetricCard, { label: "Starts", value: automation.schedules.length > 0
1608
- ? formatScheduleCount(automation.schedules.length)
1609
- : "Event or manual", detail: automation.schedules.length > 0
1610
- ? scheduleLabel(automation.schedules[0], t, uiLanguage)
1611
- : "No time-based schedule yet" }), _jsx(OverviewMetricCard, { label: "Next run", value: nextWorkflowRun
1612
- ? formatRelativeFuture(nextWorkflowRun, t)
1613
- : "Not queued", detail: nextWorkflowRun
1614
- ? formatDateTime(nextWorkflowRun, {
1615
- fallback: "—",
1616
- locale: uiLanguage,
1617
- })
1618
- : "Trigger it from an event or attach a schedule", tone: nextWorkflowRun ? "ok" : "default" }), _jsx(OverviewMetricCard, { label: "Updated", value: formatRelativePast(automation.updatedAt, t), detail: formatDateTime(automation.updatedAt, {
1619
- fallback: "—",
1620
- locale: uiLanguage,
1621
- }) })] }), showWorkflowPromptBox && (_jsx(DetailSection, { title: "Create workflow", children: _jsxs("div", { className: "p-3", children: [_jsxs("div", { className: "flex flex-col gap-2 rounded-full border border-border/30 bg-bg/50 p-1.5 shadow-sm sm:flex-row sm:items-center", children: [_jsx(Input, { "data-workflow-prompt-input": "true", value: workflowPrompt, onChange: (event) => setWorkflowPrompt(event.target.value), onKeyDown: (event) => {
1622
- if (event.key === "Enter" && !event.shiftKey) {
1623
- event.preventDefault();
1624
- void submitWorkflowPrompt();
1625
- }
1626
- }, placeholder: WORKFLOW_PROMPT_PLACEHOLDER, className: "min-h-10 flex-1 border-0 bg-transparent px-4 shadow-none focus-visible:ring-0", autoFocus: automation.isDraft }), _jsx(Button, { variant: "default", size: "sm", className: "h-10 shrink-0 rounded-full px-5", disabled: workflowPromptSaving || busy, onClick: () => void submitWorkflowPrompt(), children: workflowPromptSaving ? "Generating..." : "Generate" })] }), workflowPromptError && (_jsx("div", { className: "mt-2 text-xs text-danger", children: workflowPromptError }))] }) })), _jsx(DetailSection, { title: "Workflow graph", action: automation.isDraft || nodeCount === 0 ? (_jsx(Button, { variant: "ghost", size: "sm", className: "h-7 px-2 text-xs", onClick: () => {
1627
- const input = document.querySelector("[data-workflow-prompt-input='true']");
1628
- input?.focus();
1629
- if (!input)
1630
- handleDescribeWorkflow();
1631
- }, children: DESCRIBE_WORKFLOW_PROMPT })) : undefined, children: _jsx("div", { className: "p-3", children: _jsx(WorkflowGraphViewer, { workflow: graphWorkflow, loading: workflowLoading, isGenerating: workflowGenerating, emptyStateActionLabel: DESCRIBE_WORKFLOW_PROMPT, emptyStateHelpText: "Describe it above to generate the graph.", onEmptyStateAction: () => {
1632
- const input = document.querySelector("[data-workflow-prompt-input='true']");
1633
- input?.focus();
1634
- if (!input)
1635
- handleDescribeWorkflow();
1636
- }, status: n8nStatus }) }) }), _jsx(DetailSection, { title: "Data flow", children: _jsx(WorkflowDataFlowStrip, { workflow: graphWorkflow }) }), _jsxs("div", { className: "grid gap-4 xl:grid-cols-[minmax(0,1fr)_minmax(320px,0.95fr)]", children: [_jsx(DetailSection, { title: "Starts when", className: "h-full", children: automation.schedules.length > 0 ? (_jsx("div", { className: "divide-y divide-border/20", children: automation.schedules.map((schedule) => (_jsx(OverviewListItem, { title: schedule.displayName, meta: scheduleLabel(schedule, t, uiLanguage), detail: formatDateTime(schedule.nextRunAtMs ?? null, {
1637
- fallback: "No next run queued",
1638
- locale: uiLanguage,
1639
- }), trailing: schedule.enabled ? "Live" : "Paused", tone: schedule.enabled ? "success" : "muted" }, schedule.id))) })) : (_jsx("div", { className: "px-4 py-4 text-xs-tight text-muted/70", children: "No schedule yet. Start it from an event or add one in the sidebar." })) }), showWorkflowStarterIdeas ? (_jsx(DetailSection, { title: "Starter ideas", className: "h-full", children: _jsx("div", { className: "p-2", children: _jsx(OverviewIdeaGrid, { ideas: workflowIdeas, onSelect: handleUseWorkflowIdea }) }) })) : (_jsx(DetailSection, { title: "Details", className: "h-full", children: _jsx(DetailFactList, { items: [
1640
- {
1641
- label: "Type",
1642
- value: automation.isDraft ? "Draft" : "n8n workflow",
1643
- },
1644
- {
1645
- label: "Nodes",
1646
- value: String(nodeCount),
1647
- },
1648
- {
1649
- label: "Schedules",
1650
- value: String(automation.schedules.length),
1651
- },
1652
- {
1653
- label: "Updated",
1654
- value: formatRelativePast(automation.updatedAt, t),
1655
- },
1656
- ] }) }))] })] }));
1657
- }
1658
- function AutomationSidebarItem({ item, selected, onClick, onDoubleClick, }) {
1659
- let Icon = Zap;
1660
- let tone = "muted";
1661
- let titleClass = "text-txt";
1662
- if (item.type === "n8n_workflow") {
1663
- Icon = Workflow;
1664
- tone = item.isDraft ? "warning" : item.enabled ? "success" : "muted";
1665
- }
1666
- else if (item.type === "automation_draft") {
1667
- Icon = FileText;
1668
- tone = "warning";
1669
- }
1670
- else if (item.trigger) {
1671
- Icon = Clock3;
1672
- tone = item.trigger.enabled ? "success" : "muted";
1673
- if (item.trigger.lastStatus) {
1674
- const lastTone = toneForLastStatus(item.trigger.lastStatus);
1675
- if (lastTone === "danger")
1676
- tone = "danger";
1677
- }
1678
- }
1679
- else if (item.task) {
1680
- if (item.system) {
1681
- Icon = Settings;
1682
- tone = "muted";
1683
- titleClass = "text-muted";
1684
- }
1685
- else if (item.task.isCompleted) {
1686
- Icon = CheckCircle2;
1687
- tone = "muted";
1688
- titleClass = "text-muted line-through";
1689
- }
1690
- else {
1691
- Icon = Circle;
1692
- tone = "success";
1693
- }
1694
- }
1695
- else {
1696
- return null;
1697
- }
1698
- return (_jsxs("button", { type: "button", onClick: onClick, onDoubleClick: onDoubleClick, "aria-current": selected ? "page" : undefined, className: `group flex w-full min-w-0 items-center gap-1.5 rounded-[var(--radius-sm)] py-1 pl-2 pr-1.5 text-left transition-colors ${selected ? "bg-accent/15 text-txt" : "text-txt hover:bg-bg-muted/50"} ${item.system ? "opacity-60" : ""}`, children: [_jsx(Icon, { className: "h-3.5 w-3.5 shrink-0 text-muted/70", "aria-hidden": true }), _jsx("span", { className: `truncate text-xs-tight ${titleClass}`, children: getAutomationDisplayTitle(item) }), _jsx(StatusDot, { tone: tone, className: "ml-auto h-1.5 w-1.5 shrink-0" })] }));
1699
- }
1700
- function AutomationsSidebarChatGuideActions() {
1701
- return (_jsx(Button, { variant: "outline", size: "sm", className: "h-8 gap-1.5 px-3 text-sm", onClick: () => prefillPageChat(DESCRIBE_WORKFLOW_PROMPT, { select: true }), children: DESCRIBE_WORKFLOW_PROMPT }));
1702
- }
1703
- function AutomationsSidebarChat({ activeItem, }) {
1704
- const { activeConversationId, conversations, t } = useApp();
1705
- const { refreshAutomations } = useAutomationsViewContext();
1706
- const [overviewVisible, setOverviewVisible] = useState(false);
1707
- const scopedActiveItem = overviewVisible ? null : activeItem;
1708
- useEffect(() => {
1709
- const overviewWindow = window;
1710
- setOverviewVisible(Boolean(overviewWindow.__miladyAutomationsOverviewVisible));
1711
- const handleOverviewVisibility = (event) => {
1712
- const detail = event
1713
- .detail;
1714
- setOverviewVisible(Boolean(detail?.visible));
1715
- };
1716
- window.addEventListener(AUTOMATIONS_OVERVIEW_VISIBILITY_EVENT, handleOverviewVisibility);
1717
- return () => window.removeEventListener(AUTOMATIONS_OVERVIEW_VISIBILITY_EVENT, handleOverviewVisibility);
1718
- }, []);
1719
- const automationConversationAdapter = useMemo(() => {
1720
- if (!scopedActiveItem) {
1721
- return null;
1722
- }
1723
- const bridgeConversationId = getAutomationBridgeIdForItem(scopedActiveItem, activeConversationId, conversations);
1724
- if (scopedActiveItem.type === "n8n_workflow") {
1725
- const metadata = scopedActiveItem.workflowId
1726
- ? buildWorkflowConversationMetadata(scopedActiveItem.workflowId, scopedActiveItem.title, bridgeConversationId)
1727
- : buildWorkflowDraftConversationMetadata(scopedActiveItem.draftId ?? scopedActiveItem.id, bridgeConversationId);
1728
- return {
1729
- allowClear: false,
1730
- buildRoutingMetadata: () => buildAutomationResponseRoutingMetadata(metadata),
1731
- identityKey: JSON.stringify({
1732
- metadata,
1733
- title: scopedActiveItem.title,
1734
- }),
1735
- onAfterSend: () => void refreshAutomations(),
1736
- resolveConversation: () => resolveAutomationConversation({
1737
- title: scopedActiveItem.title,
1738
- metadata,
1739
- }),
1740
- };
1741
- }
1742
- if (scopedActiveItem.type === "automation_draft") {
1743
- const metadata = buildAutomationDraftConversationMetadata(scopedActiveItem.draftId ?? scopedActiveItem.id, bridgeConversationId);
1744
- return {
1745
- allowClear: false,
1746
- buildRoutingMetadata: () => buildAutomationResponseRoutingMetadata(metadata),
1747
- identityKey: JSON.stringify({
1748
- metadata,
1749
- title: getAutomationDisplayTitle(scopedActiveItem),
1750
- }),
1751
- onAfterSend: () => void refreshAutomations(),
1752
- resolveConversation: () => resolveAutomationConversation({
1753
- title: getAutomationDisplayTitle(scopedActiveItem),
1754
- metadata,
1755
- }),
1756
- };
1757
- }
1758
- return null;
1759
- }, [
1760
- scopedActiveItem,
1761
- activeConversationId,
1762
- conversations,
1763
- refreshAutomations,
1764
- ]);
1765
- if (scopedActiveItem?.type === "n8n_workflow") {
1766
- return (_jsx(PageScopedChatPane, { scope: "page-automations", conversationAdapter: automationConversationAdapter ?? undefined, introOverride: {
1767
- title: scopedActiveItem.isDraft ? "Workflow draft" : "Workflow",
1768
- body: scopedActiveItem.isDraft
1769
- ? "Describe the trigger and steps. The graph updates here."
1770
- : "Ask to inspect, change, or troubleshoot this workflow.",
1771
- actions: scopedActiveItem.isDraft ? (_jsx(AutomationsSidebarChatGuideActions, {})) : undefined,
1772
- }, placeholderOverride: scopedActiveItem.isDraft
1773
- ? DESCRIBE_WORKFLOW_PROMPT
1774
- : t("automations.chat.placeholder"), systemAddendumOverride: WORKFLOW_SYSTEM_ADDENDUM }));
1775
- }
1776
- if (scopedActiveItem?.type === "automation_draft") {
1777
- return (_jsx(PageScopedChatPane, { scope: "page-automations", conversationAdapter: automationConversationAdapter ?? undefined, introOverride: {
1778
- title: "Draft",
1779
- body: "Describe the result and what should start it.",
1780
- }, placeholderOverride: "Describe your automation", systemAddendumOverride: AUTOMATION_DRAFT_SYSTEM_ADDENDUM }));
1781
- }
1782
- return (_jsx(PageScopedChatPane, { scope: "page-automations", placeholderOverride: "Describe your workflow, task, or schedule", introOverride: {
1783
- title: "Automations",
1784
- body: "Create or inspect a task or workflow.",
1785
- actions: _jsx(AutomationsSidebarChatGuideActions, {}),
1786
- } }));
1787
- }
1788
- function AutomationsLayout() {
1789
- const { activeConversationId, conversations, setTab } = useApp();
1790
- const ctx = useAutomationsViewContext();
1791
- const { closeEditor, editorEnabled, editingId, editingTaskId, editorOpen, editorMode, form, formError, loadTriggerRuns, modalTitle, onDeleteTrigger, onRunSelectedTrigger, onSubmitTrigger, onToggleTriggerEnabled, openCreateTrigger, openCreateTask, saveFormAsTemplate, selectedItemId, setEditingId, setEditorOpen, setEditorMode, setField, setFilter, setForm, setFormError, setSelectedItemId, setSelectedItemKind, showDetailPane, showFirstRunEmptyState, resolvedSelectedItem, t, templateNotice, triggers, filteredItems, triggerRunsById, triggersSaving, automationNodes, combinedError, isLoading, n8nStatus, workflowFetchError, } = ctx;
1792
- const [showDashboard, setShowDashboard] = useState(true);
1793
- const [collapsedSections, setCollapsedSections] = useState(() => new Set(["agent-owned"]));
1794
- const toggleSectionCollapsed = useCallback((key) => {
1795
- setCollapsedSections((prev) => {
1796
- const next = new Set(prev);
1797
- if (next.has(key))
1798
- next.delete(key);
1799
- else
1800
- next.add(key);
1801
- return next;
1802
- });
1803
- }, []);
1804
- const [pageNotice, setPageNotice] = useState(null);
1805
- const [missingCredentials, setMissingCredentials] = useState(null);
1806
- const [workflowBusyId, setWorkflowBusyId] = useState(null);
1807
- const [workflowOpsBusy, setWorkflowOpsBusy] = useState(false);
1808
- const [activeWorkflowConversation, setActiveWorkflowConversation] = useState(null);
1809
- const [createDialogMode, setCreateDialogMode] = useState(null);
1810
- const [templatesModalOpen, setTemplatesModalOpen] = useState(false);
1811
- const [activeSubpage, setActiveSubpage] = useState(() => getAutomationSubpageFromPath(getNavigationPathFromWindow()));
1812
- const visibleItems = filteredItems;
1813
- useEffect(() => {
1814
- if (!showDashboard)
1815
- return;
1816
- setSelectedItemId(null);
1817
- setSelectedItemKind(null);
1818
- }, [setSelectedItemId, setSelectedItemKind, showDashboard]);
1819
- useEffect(() => {
1820
- window.__miladyAutomationsOverviewVisible =
1821
- showDashboard;
1822
- window.dispatchEvent(new CustomEvent(AUTOMATIONS_OVERVIEW_VISIBILITY_EVENT, {
1823
- detail: { visible: showDashboard },
1824
- }));
1825
- }, [showDashboard]);
1826
- const syncSubpageFromLocation = useCallback(() => {
1827
- const pathname = getNavigationPathFromWindow();
1828
- const nextSubpage = getAutomationSubpageFromPath(pathname);
1829
- setActiveSubpage((previous) => previous === nextSubpage ? previous : nextSubpage);
1830
- if (normalizeAutomationPath(pathname) === "/node-catalog") {
1831
- syncAutomationSubpagePath("node-catalog", "replace");
1832
- }
1833
- }, []);
1834
- useEffect(() => {
1835
- syncSubpageFromLocation();
1836
- window.addEventListener("popstate", syncSubpageFromLocation);
1837
- window.addEventListener("hashchange", syncSubpageFromLocation);
1838
- return () => {
1839
- window.removeEventListener("popstate", syncSubpageFromLocation);
1840
- window.removeEventListener("hashchange", syncSubpageFromLocation);
1841
- };
1842
- }, [syncSubpageFromLocation]);
1843
- const showAutomationsList = useCallback((mode = "push") => {
1844
- setActiveSubpage("list");
1845
- syncAutomationSubpagePath("list", mode);
1846
- }, []);
1847
- const showNodeCatalog = useCallback((mode = "push") => {
1848
- setEditorOpen(false);
1849
- setEditingId(null);
1850
- ctx.setEditingTaskId(null);
1851
- setActiveSubpage("node-catalog");
1852
- syncAutomationSubpagePath("node-catalog", mode);
1853
- }, [ctx, setEditingId, setEditorOpen]);
1854
- const mobileSidebarLabel = activeSubpage === "node-catalog"
1855
- ? "Nodes"
1856
- : showDashboard
1857
- ? "Overview"
1858
- : editorOpen || editingId || editingTaskId
1859
- ? modalTitle
1860
- : resolvedSelectedItem
1861
- ? getAutomationDisplayTitle(resolvedSelectedItem)
1862
- : "Automations";
1863
- const selectItem = useCallback((item) => {
1864
- showAutomationsList();
1865
- setShowDashboard(false);
1866
- setSelectedItemId(item.id);
1867
- setSelectedItemKind(getSelectionKind(item));
1868
- setEditorOpen(false);
1869
- setEditingId(null);
1870
- ctx.setEditingTaskId(null);
1871
- if (item.trigger) {
1872
- void loadTriggerRuns(item.trigger.id);
1873
- }
1874
- }, [
1875
- ctx,
1876
- loadTriggerRuns,
1877
- setEditingId,
1878
- setEditorOpen,
1879
- setSelectedItemId,
1880
- setSelectedItemKind,
1881
- showAutomationsList,
1882
- ]);
1883
- const showOverview = useCallback(() => {
1884
- showAutomationsList();
1885
- setShowDashboard(true);
1886
- setSelectedItemId(null);
1887
- setSelectedItemKind(null);
1888
- setEditorOpen(false);
1889
- setEditingId(null);
1890
- ctx.setEditingTaskId(null);
1891
- }, [
1892
- ctx,
1893
- setEditingId,
1894
- setEditorOpen,
1895
- setSelectedItemId,
1896
- setSelectedItemKind,
1897
- showAutomationsList,
1898
- ]);
1899
- // Event consumer for agent-driven graph focus
1900
- useEffect(() => {
1901
- const handler = (event) => {
1902
- const { workflowId } = event.detail;
1903
- const match = filteredItems.find((item) => item.workflowId === workflowId || item.id === workflowId);
1904
- if (match) {
1905
- selectItem(match);
1906
- }
1907
- };
1908
- window.addEventListener(VISUALIZE_WORKFLOW_EVENT, handler);
1909
- return () => window.removeEventListener(VISUALIZE_WORKFLOW_EVENT, handler);
1910
- }, [filteredItems, selectItem]);
1911
- const findAutomationForConversation = useCallback((data, conversationId) => data?.automations.find((item) => item.room?.conversationId === conversationId) ?? null, []);
1912
- const refreshAutomationsWithDraftBinding = useCallback(async (draftConversation) => {
1913
- const previousWorkflowIds = new Set(ctx.allItems
1914
- .filter((item) => item.type === "n8n_workflow" &&
1915
- item.workflowId != null &&
1916
- !item.isDraft)
1917
- .map((item) => item.workflowId));
1918
- const previousTriggerIds = new Set(ctx.allItems
1919
- .filter((item) => item.trigger?.id)
1920
- .map((item) => item.trigger?.id));
1921
- const previousTaskIds = new Set(ctx.allItems
1922
- .filter((item) => item.task?.id)
1923
- .map((item) => item.task?.id));
1924
- const data = await ctx.refreshAutomations();
1925
- const draftScope = draftConversation?.metadata?.scope;
1926
- if (!draftConversation || !draftScope) {
1927
- return data;
1928
- }
1929
- const bridgeConversationId = draftConversation.metadata?.terminalBridgeConversationId;
1930
- // Workflow-draft scope: rebind on new n8n workflow (existing path).
1931
- if (draftScope === "automation-workflow-draft" &&
1932
- draftConversation.metadata?.automationType === "n8n_workflow") {
1933
- const createdWorkflows = data?.automations.filter((item) => item.type === "n8n_workflow" &&
1934
- item.workflowId != null &&
1935
- !item.isDraft &&
1936
- !previousWorkflowIds.has(item.workflowId)) ?? [];
1937
- if (createdWorkflows.length !== 1)
1938
- return data;
1939
- const created = createdWorkflows[0];
1940
- const reboundMetadata = buildWorkflowConversationMetadata(created.workflowId, created.title, bridgeConversationId);
1941
- const { conversation } = await client.updateConversation(draftConversation.id, { title: created.title, metadata: reboundMetadata });
1942
- setActiveWorkflowConversation(conversation);
1943
- return await ctx.refreshAutomations();
1944
- }
1945
- // Shape-undecided draft: detect what the agent created and rebind.
1946
- if (draftScope === "automation-draft") {
1947
- const createdTriggers = data?.automations.filter((item) => item.trigger != null && !previousTriggerIds.has(item.trigger.id)) ?? [];
1948
- const createdTasks = data?.automations.filter((item) => item.task != null &&
1949
- !item.system &&
1950
- !previousTaskIds.has(item.task.id)) ?? [];
1951
- const createdWorkflows = data?.automations.filter((item) => item.type === "n8n_workflow" &&
1952
- item.workflowId != null &&
1953
- !item.isDraft &&
1954
- !previousWorkflowIds.has(item.workflowId)) ?? [];
1955
- const createdCount = createdTriggers.length +
1956
- createdTasks.length +
1957
- createdWorkflows.length;
1958
- if (createdCount !== 1) {
1959
- return data;
1960
- }
1961
- const draftItemId = `automation-draft:${draftConversation.metadata?.draftId ?? ""}`;
1962
- const draftWasSelected = selectedItemId === draftItemId;
1963
- const followSelection = (nextItemId, kind) => {
1964
- if (!draftWasSelected)
1965
- return;
1966
- setSelectedItemId(nextItemId);
1967
- setSelectedItemKind(kind);
1968
- };
1969
- if (createdTriggers.length === 1) {
1970
- const created = createdTriggers[0];
1971
- const trigger = created.trigger;
1972
- if (!trigger)
1973
- return await ctx.refreshAutomations();
1974
- const reboundMetadata = buildCoordinatorTriggerConversationMetadata(trigger.id, bridgeConversationId);
1975
- await client.updateConversation(draftConversation.id, {
1976
- title: created.title,
1977
- metadata: reboundMetadata,
1978
- });
1979
- followSelection(created.id, "trigger");
1980
- return await ctx.refreshAutomations();
1981
- }
1982
- if (createdTasks.length === 1) {
1983
- const created = createdTasks[0];
1984
- const task = created.task;
1985
- if (!task)
1986
- return await ctx.refreshAutomations();
1987
- const reboundMetadata = buildCoordinatorConversationMetadata(task.id, bridgeConversationId);
1988
- await client.updateConversation(draftConversation.id, {
1989
- title: created.title,
1990
- metadata: reboundMetadata,
1991
- });
1992
- followSelection(created.id, "task");
1993
- return await ctx.refreshAutomations();
1994
- }
1995
- if (createdWorkflows.length === 1) {
1996
- const created = createdWorkflows[0];
1997
- const reboundMetadata = buildWorkflowConversationMetadata(created.workflowId, created.title, bridgeConversationId);
1998
- const { conversation } = await client.updateConversation(draftConversation.id, { title: created.title, metadata: reboundMetadata });
1999
- setActiveWorkflowConversation(conversation);
2000
- followSelection(created.id, "workflow");
2001
- return await ctx.refreshAutomations();
2002
- }
2003
- }
2004
- return data;
2005
- }, [ctx, selectedItemId, setSelectedItemId, setSelectedItemKind]);
2006
- const bindConversationToWorkflow = useCallback(async (conversation, workflow, bridgeConversationId) => {
2007
- const reboundMetadata = buildWorkflowConversationMetadata(workflow.id, workflow.name, bridgeConversationId ?? undefined);
2008
- const { conversation: reboundConversation } = await client.updateConversation(conversation.id, {
2009
- title: workflow.name,
2010
- metadata: reboundMetadata,
2011
- });
2012
- setActiveWorkflowConversation(reboundConversation);
2013
- return reboundConversation;
2014
- }, []);
2015
- const selectWorkflowById = useCallback((workflowId) => {
2016
- setShowDashboard(false);
2017
- setSelectedItemId(`workflow:${workflowId}`);
2018
- setSelectedItemKind("workflow");
2019
- setEditorOpen(false);
2020
- setEditingId(null);
2021
- ctx.setEditingTaskId(null);
2022
- }, [ctx, setEditingId, setEditorOpen, setSelectedItemId, setSelectedItemKind]);
2023
- const generateWorkflowFromPrompt = useCallback(async ({ prompt, title, conversation, bridgeConversationId, workflowId, }) => {
2024
- setWorkflowOpsBusy(true);
2025
- setPageNotice(null);
2026
- setMissingCredentials(null);
2027
- try {
2028
- const result = await client.generateN8nWorkflow({
2029
- prompt,
2030
- ...(title?.trim() ? { name: title.trim() } : {}),
2031
- ...(workflowId ? { workflowId } : {}),
2032
- ...(bridgeConversationId ? { bridgeConversationId } : {}),
2033
- });
2034
- if (isMissingCredentialsResponse(result)) {
2035
- setMissingCredentials(result.missingCredentials);
2036
- return null;
2037
- }
2038
- if (conversation) {
2039
- await bindConversationToWorkflow(conversation, result, bridgeConversationId);
2040
- }
2041
- await ctx.refreshAutomations();
2042
- selectWorkflowById(result.id);
2043
- return result;
2044
- }
2045
- finally {
2046
- setWorkflowOpsBusy(false);
2047
- }
2048
- }, [bindConversationToWorkflow, ctx, selectWorkflowById]);
2049
- const createWorkflowDraft = useCallback(async (options) => {
2050
- setPageNotice(null);
2051
- showAutomationsList();
2052
- const draftId = createWorkflowDraftId();
2053
- setShowDashboard(false);
2054
- setFilter("all");
2055
- setSelectedItemId(`workflow-draft:${draftId}`);
2056
- setSelectedItemKind("workflow");
2057
- setEditorOpen(false);
2058
- setEditingId(null);
2059
- ctx.setEditingTaskId(null);
2060
- const bridgeConversationId = getAutomationBridgeIdForItem(resolvedSelectedItem, activeConversationId, conversations);
2061
- const metadata = buildWorkflowDraftConversationMetadata(draftId, bridgeConversationId);
2062
- try {
2063
- const conversation = await resolveAutomationConversation({
2064
- title: options?.title?.trim() || WORKFLOW_DRAFT_TITLE,
2065
- metadata,
2066
- });
2067
- setActiveWorkflowConversation(conversation);
2068
- if (options?.initialPrompt?.trim()) {
2069
- await generateWorkflowFromPrompt({
2070
- prompt: options.initialPrompt.trim(),
2071
- title: options.title?.trim() || undefined,
2072
- conversation,
2073
- bridgeConversationId,
2074
- });
2075
- return;
2076
- }
2077
- const data = await ctx.refreshAutomations();
2078
- const resolvedItem = findAutomationForConversation(data, conversation.id);
2079
- setSelectedItemId(resolvedItem?.id ?? `workflow-draft:${draftId}`);
2080
- setSelectedItemKind("workflow");
2081
- }
2082
- catch (error) {
2083
- setPageNotice(error instanceof Error
2084
- ? error.message
2085
- : "Failed to create the workflow draft room.");
2086
- }
2087
- }, [
2088
- activeConversationId,
2089
- conversations,
2090
- ctx,
2091
- findAutomationForConversation,
2092
- generateWorkflowFromPrompt,
2093
- resolvedSelectedItem,
2094
- setFilter,
2095
- setEditingId,
2096
- setEditorOpen,
2097
- setSelectedItemId,
2098
- setSelectedItemKind,
2099
- showAutomationsList,
2100
- ]);
2101
- const promoteAutomationToWorkflow = useCallback(async (item) => {
2102
- await createWorkflowDraft({
2103
- title: `${item.title} Workflow`,
2104
- initialPrompt: buildWorkflowCompilationPrompt(item),
2105
- });
2106
- }, [createWorkflowDraft]);
2107
- // Open a workflow draft and seed it with the selected template prompt.
2108
- const handleTemplateSelected = useCallback(async (seedPrompt) => {
2109
- setTemplatesModalOpen(false);
2110
- await createWorkflowDraft({ initialPrompt: seedPrompt });
2111
- }, [createWorkflowDraft]);
2112
- // Zero-state: open trigger or task forms, switching filter first.
2113
- const handleZeroStateNewTrigger = useCallback(() => {
2114
- showAutomationsList();
2115
- openCreateTrigger();
2116
- }, [openCreateTrigger, showAutomationsList]);
2117
- const handleZeroStateNewTask = useCallback(() => {
2118
- showAutomationsList();
2119
- openCreateTask();
2120
- }, [openCreateTask, showAutomationsList]);
2121
- const openSeededTask = useCallback((idea) => {
2122
- showAutomationsList();
2123
- openCreateTrigger();
2124
- setForm({
2125
- ...emptyForm,
2126
- displayName: idea.label,
2127
- instructions: idea.prompt,
2128
- });
2129
- }, [openCreateTrigger, setForm, showAutomationsList]);
2130
- const handleDescribeAutomation = useCallback(async (prompt) => {
2131
- const trimmed = prompt.trim();
2132
- if (!trimmed)
2133
- return;
2134
- if (inferAutomationPromptKind(trimmed) === "workflow") {
2135
- await createWorkflowDraft({
2136
- title: titleFromAutomationPrompt(trimmed),
2137
- initialPrompt: trimmed,
2138
- });
2139
- return;
2140
- }
2141
- showAutomationsList();
2142
- openCreateTrigger();
2143
- setForm({
2144
- ...emptyForm,
2145
- displayName: titleFromAutomationPrompt(trimmed),
2146
- instructions: trimmed,
2147
- });
2148
- }, [createWorkflowDraft, openCreateTrigger, setForm, showAutomationsList]);
2149
- const handleRefreshWorkflows = useCallback(async () => {
2150
- setPageNotice(null);
2151
- const data = await refreshAutomationsWithDraftBinding(activeWorkflowConversation);
2152
- if (!data && ctx.automationsError) {
2153
- setPageNotice(ctx.automationsError);
2154
- }
2155
- }, [
2156
- activeWorkflowConversation,
2157
- ctx.automationsError,
2158
- refreshAutomationsWithDraftBinding,
2159
- ]);
2160
- const handleStartLocalN8n = useCallback(async () => {
2161
- setWorkflowOpsBusy(true);
2162
- setPageNotice(null);
2163
- try {
2164
- await client.startN8nSidecar();
2165
- await ctx.refreshAutomations();
2166
- }
2167
- catch (error) {
2168
- setPageNotice(error instanceof Error
2169
- ? error.message
2170
- : t("automations.n8n.startFailed", {
2171
- defaultValue: "Failed to start local automations.",
2172
- }));
2173
- }
2174
- finally {
2175
- setWorkflowOpsBusy(false);
2176
- }
2177
- }, [ctx, t]);
2178
- const handleToggleWorkflowActive = useCallback(async (item) => {
2179
- if (!item.workflowId) {
2180
- return;
2181
- }
2182
- setWorkflowBusyId(item.workflowId);
2183
- setPageNotice(null);
2184
- try {
2185
- if (item.enabled) {
2186
- await client.deactivateN8nWorkflow(item.workflowId);
2187
- }
2188
- else {
2189
- await client.activateN8nWorkflow(item.workflowId);
2190
- }
2191
- await ctx.refreshAutomations();
2192
- }
2193
- catch (error) {
2194
- setPageNotice(error instanceof Error
2195
- ? error.message
2196
- : t("automations.n8n.updateStateFailed", {
2197
- defaultValue: "Failed to update workflow state.",
2198
- }));
2199
- }
2200
- finally {
2201
- setWorkflowBusyId(null);
2202
- }
2203
- }, [ctx, t]);
2204
- const handleGenerateWorkflow = useCallback(async (item, prompt) => {
2205
- const conversationId = item.room?.conversationId;
2206
- const conversation = conversationId
2207
- ? (conversations.find((candidate) => candidate.id === conversationId) ??
2208
- null)
2209
- : null;
2210
- const title = item.title.trim() && item.title !== WORKFLOW_DRAFT_TITLE
2211
- ? item.title
2212
- : undefined;
2213
- await generateWorkflowFromPrompt({
2214
- prompt,
2215
- title,
2216
- conversation,
2217
- bridgeConversationId: item.room?.terminalBridgeConversationId,
2218
- workflowId: item.hasBackingWorkflow ? item.workflowId : null,
2219
- });
2220
- }, [conversations, generateWorkflowFromPrompt]);
2221
- const handleScheduleWorkflow = useCallback((item) => {
2222
- if (!item.workflowId) {
2223
- setPageNotice("Generate the workflow before scheduling it.");
2224
- return;
2225
- }
2226
- setForm({
2227
- ...emptyForm,
2228
- displayName: `Run ${item.title}`,
2229
- kind: "workflow",
2230
- workflowId: item.workflowId,
2231
- workflowName: item.title,
2232
- });
2233
- setEditorMode("trigger");
2234
- setEditingId(null);
2235
- ctx.setEditingTaskId(null);
2236
- setSelectedItemId(null);
2237
- setSelectedItemKind(null);
2238
- setEditorOpen(true);
2239
- setShowDashboard(false);
2240
- }, [
2241
- ctx,
2242
- setEditingId,
2243
- setEditorMode,
2244
- setEditorOpen,
2245
- setForm,
2246
- setSelectedItemId,
2247
- setSelectedItemKind,
2248
- ]);
2249
- const handleDeleteWorkflow = useCallback(async (item) => {
2250
- if (!item.workflowId) {
2251
- return;
2252
- }
2253
- const confirmed = await confirmDesktopAction({
2254
- title: t("automations.n8n.deleteWorkflow", {
2255
- defaultValue: "Delete workflow",
2256
- }),
2257
- message: item.schedules.length > 0
2258
- ? `Delete "${item.title}" and ${item.schedules.length} attached schedule${item.schedules.length === 1 ? "" : "s"}? This cannot be undone.`
2259
- : t("automations.n8n.deleteConfirmWorkflow", {
2260
- defaultValue: 'Delete "{{name}}"? This cannot be undone.',
2261
- name: item.title,
2262
- }),
2263
- confirmLabel: t("automations.n8n.deleteWorkflow", {
2264
- defaultValue: "Delete workflow",
2265
- }),
2266
- cancelLabel: t("common.cancel"),
2267
- type: "warning",
2268
- });
2269
- if (!confirmed)
2270
- return;
2271
- setWorkflowBusyId(item.workflowId);
2272
- setPageNotice(null);
2273
- try {
2274
- await client.deleteN8nWorkflow(item.workflowId);
2275
- await Promise.all(item.schedules.map((schedule) => client.deleteTrigger(schedule.id)));
2276
- // Also delete the chat conversation/room that backed this workflow.
2277
- // Without this, the `/api/automations` aggregator keeps surfacing the
2278
- // workflow row as a ghost entry because rooms with workflowId
2279
- // metadata are listed even when the underlying n8n workflow is gone.
2280
- const conversationId = item.room?.conversationId;
2281
- if (conversationId) {
2282
- try {
2283
- await client.deleteConversation(conversationId);
2284
- }
2285
- catch (roomErr) {
2286
- // Non-fatal: the workflow itself is deleted; surface the room
2287
- // failure to the user but don't roll back.
2288
- setPageNotice(`Workflow deleted, but its chat room could not be removed: ${roomErr instanceof Error ? roomErr.message : String(roomErr)}`);
2289
- }
2290
- }
2291
- if (selectedItemId === item.id) {
2292
- setSelectedItemId(null);
2293
- setSelectedItemKind(null);
2294
- }
2295
- // Mirror handleDeleteDraft: also clear the active workflow
2296
- // conversation if it's the one tied to the deleted workflow.
2297
- // Without this, refreshAutomationsWithDraftBinding keeps receiving
2298
- // a stale conversation reference on subsequent refreshes.
2299
- if (conversationId &&
2300
- activeWorkflowConversation?.id === conversationId) {
2301
- setActiveWorkflowConversation(null);
2302
- }
2303
- await ctx.refreshAutomations();
2304
- }
2305
- catch (error) {
2306
- setPageNotice(error instanceof Error
2307
- ? error.message
2308
- : t("automations.n8n.deleteFailed", {
2309
- defaultValue: "Failed to delete workflow.",
2310
- }));
2311
- }
2312
- finally {
2313
- setWorkflowBusyId(null);
2314
- }
2315
- }, [
2316
- activeWorkflowConversation?.id,
2317
- ctx,
2318
- selectedItemId,
2319
- setSelectedItemId,
2320
- setSelectedItemKind,
2321
- t,
2322
- ]);
2323
- const handleDuplicateWorkflow = useCallback(async (item) => {
2324
- if (!item.workflowId) {
2325
- return;
2326
- }
2327
- setPageNotice(null);
2328
- try {
2329
- const workflow = await client.getN8nWorkflow(item.workflowId);
2330
- const copy = await client.createN8nWorkflow(buildWorkflowCopyRequest(workflow, `${item.title} Copy`));
2331
- await ctx.refreshAutomations();
2332
- selectWorkflowById(copy.id);
2333
- }
2334
- catch (error) {
2335
- setPageNotice(error instanceof Error
2336
- ? error.message
2337
- : "Failed to duplicate workflow.");
2338
- }
2339
- }, [ctx, selectWorkflowById]);
2340
- const handleDeleteDraft = useCallback(async (item) => {
2341
- // Synthesized in-flight drafts (workflow-draft:* ids surfaced
2342
- // before refreshAutomations completes) have no `room` because the
2343
- // controller's resolvedSelectedItem useMemo can't reach
2344
- // activeWorkflowConversation from its scope. Fall back to the
2345
- // live activeWorkflowConversation when item.room is missing —
2346
- // that's the same conversation the synthesized item represents.
2347
- const conversationId = item.room?.conversationId ?? activeWorkflowConversation?.id ?? null;
2348
- if (!conversationId) {
2349
- setPageNotice("This draft is missing its automation room.");
2350
- return;
2351
- }
2352
- const confirmed = await confirmDesktopAction({
2353
- title: "Delete draft",
2354
- message: `Delete "${getAutomationDisplayTitle(item)}"? This removes the draft room and its conversation.`,
2355
- confirmLabel: "Delete draft",
2356
- cancelLabel: t("common.cancel"),
2357
- type: "warning",
2358
- });
2359
- if (!confirmed)
2360
- return;
2361
- setPageNotice(null);
2362
- try {
2363
- await client.deleteConversation(conversationId);
2364
- if (selectedItemId === item.id) {
2365
- setSelectedItemId(null);
2366
- setSelectedItemKind(null);
2367
- }
2368
- if (activeWorkflowConversation?.id === conversationId) {
2369
- setActiveWorkflowConversation(null);
2370
- }
2371
- await ctx.refreshAutomations();
2372
- setShowDashboard(true);
2373
- }
2374
- catch (error) {
2375
- setPageNotice(error instanceof Error ? error.message : "Failed to delete draft.");
2376
- }
2377
- }, [
2378
- activeWorkflowConversation?.id,
2379
- ctx,
2380
- selectedItemId,
2381
- setSelectedItemId,
2382
- setSelectedItemKind,
2383
- t,
2384
- ]);
2385
- const workflowItems = useMemo(() => visibleItems.filter((item) => item.type === "n8n_workflow"), [visibleItems]);
2386
- const taskItems = useMemo(() => visibleItems.filter((item) => item.type === "automation_draft" || item.trigger != null), [visibleItems]);
2387
- const agentOwnedItems = useMemo(() => visibleItems.filter((item) => item.task != null && item.system), [visibleItems]);
2388
- // Watch active drafts: while any unbound draft exists, poll the
2389
- // automations list and try to rebind it to whatever the agent
2390
- // materialized (trigger / task / workflow). Loop self-terminates as
2391
- // soon as the draft is rebound (it disappears from `allItems`).
2392
- const allDraftItems = useMemo(() => ctx.allItems.filter((item) => item.type === "automation_draft"), [ctx.allItems]);
2393
- useEffect(() => {
2394
- if (allDraftItems.length === 0)
2395
- return undefined;
2396
- const draftConversations = allDraftItems
2397
- .map((item) => {
2398
- const conversationId = item.room?.conversationId;
2399
- if (!conversationId)
2400
- return null;
2401
- return conversations.find((c) => c.id === conversationId) ?? null;
2402
- })
2403
- .filter((c) => c != null);
2404
- if (draftConversations.length === 0)
2405
- return undefined;
2406
- const interval = window.setInterval(() => {
2407
- for (const draftConversation of draftConversations) {
2408
- void refreshAutomationsWithDraftBinding(draftConversation);
2409
- }
2410
- }, 5000);
2411
- return () => window.clearInterval(interval);
2412
- }, [allDraftItems, conversations, refreshAutomationsWithDraftBinding]);
2413
- const renderItem = (item) => (_jsx(AutomationSidebarItem, { item: item, selected: selectedItemId === item.id, onClick: () => selectItem(item), onDoubleClick: item.task && !item.system
2414
- ? () => {
2415
- showAutomationsList();
2416
- ctx.openEditTask(item.task);
2417
- }
2418
- : item.trigger
2419
- ? () => {
2420
- showAutomationsList();
2421
- ctx.openEditTrigger(item.trigger);
2422
- void loadTriggerRuns(item.trigger.id);
2423
- }
2424
- : undefined }, item.id));
2425
- const nodeCatalogActive = activeSubpage === "node-catalog";
2426
- const nodeCatalogLabel = t("automations.nodeCatalog", {
2427
- defaultValue: "Nodes",
2428
- });
2429
- const automationsSidebar = (_jsx(AppPageSidebar, { testId: "automations-sidebar", collapsible: true, contentIdentity: "automations", collapseButtonTestId: "automations-sidebar-collapse-toggle", expandButtonTestId: "automations-sidebar-expand-toggle", collapseButtonAriaLabel: t("automations.collapse", {
2430
- defaultValue: "Collapse automations",
2431
- }), expandButtonAriaLabel: t("automations.expand", {
2432
- defaultValue: "Expand automations",
2433
- }), bottomAction: _jsxs("button", { type: "button", onClick: () => showNodeCatalog(), "aria-pressed": nodeCatalogActive, title: nodeCatalogLabel, className: `inline-flex h-6 shrink-0 items-center gap-1.5 rounded-[var(--radius-sm)] bg-transparent px-1.5 text-2xs font-semibold uppercase tracking-[0.12em] transition-colors ${nodeCatalogActive ? "text-txt" : "text-muted hover:text-txt"}`, children: [_jsx(Grid3x3, { className: "h-3.5 w-3.5", "aria-hidden": true }), _jsx("span", { children: nodeCatalogLabel })] }), collapsedRailAction: _jsx(SidebarCollapsedActionButton, { "aria-label": "Create task or workflow", onClick: () => setCreateDialogMode("all"), children: _jsx(Plus, { className: "h-4 w-4" }) }), collapsedRailItems: visibleItems.map((item) => (_jsx(SidebarContent.RailItem, { "aria-label": getAutomationDisplayTitle(item), title: getAutomationDisplayTitle(item), active: item.id === selectedItemId, indicatorTone: getAutomationIndicatorTone(item), onClick: () => selectItem(item), children: railMonogram(getAutomationDisplayTitle(item)) }, item.id))), children: _jsx(SidebarScrollRegion, { className: "!px-0 !pb-2 !pt-0 [scrollbar-gutter:auto]", style: { scrollbarGutter: "auto" }, children: _jsxs(SidebarPanel, { className: "bg-transparent gap-0 p-0 shadow-none", children: [isLoading && (_jsxs("div", { className: "flex items-center gap-2 px-2 py-1.5 text-2xs text-muted", children: [_jsx("div", { className: "h-3 w-3 animate-spin rounded-full border-2 border-muted/30 border-t-muted/80" }), t("common.loading")] })), _jsxs("button", { type: "button", onClick: showOverview, "aria-current": showDashboard ? "page" : undefined, className: `mt-0 flex w-full items-center gap-2 rounded-[var(--radius-sm)] px-2 py-1 text-left text-xs-tight transition-colors ${showDashboard
2434
- ? "bg-accent/15 text-txt"
2435
- : "text-txt hover:bg-bg-muted/50"}`, children: [_jsx(LayoutDashboard, { className: "h-3.5 w-3.5 shrink-0 text-muted/70", "aria-hidden": true }), _jsx("span", { className: "truncate", children: "Overview" })] }), _jsxs("div", { className: "mt-0.5 space-y-1", children: [_jsx(AutomationCollapsibleSection, { sectionKey: "tasks", label: "Tasks", icon: _jsx(FileText, { className: "h-3.5 w-3.5", "aria-hidden": true }), count: taskItems.length, collapsed: collapsedSections.has("tasks"), onToggleCollapsed: toggleSectionCollapsed, onAdd: handleZeroStateNewTask, addLabel: "Create task", emptyLabel: "No tasks", children: taskItems.map(renderItem) }), _jsx(AutomationCollapsibleSection, { sectionKey: "workflows", label: "Workflows", icon: _jsx(Workflow, { className: "h-3.5 w-3.5", "aria-hidden": true }), count: workflowItems.length, collapsed: collapsedSections.has("workflows"), onToggleCollapsed: toggleSectionCollapsed, onAdd: () => void createWorkflowDraft(), addLabel: "Create workflow", emptyLabel: "No workflows", children: workflowItems.map(renderItem) }), _jsx(AutomationCollapsibleSection, { sectionKey: "agent-owned", label: "Internal", icon: _jsx(SquareTerminal, { className: "h-3.5 w-3.5", "aria-hidden": true }), count: agentOwnedItems.length, collapsed: collapsedSections.has("agent-owned"), onToggleCollapsed: toggleSectionCollapsed, emptyLabel: "No internal automations", children: agentOwnedItems.map(renderItem) })] })] }) }) }));
2436
- return (_jsxs(PageLayout, { className: "h-full bg-transparent", "data-testid": "automations-shell", sidebar: automationsSidebar, contentInnerClassName: "w-full", footer: _jsx(WidgetHost, { slot: "automations", className: "py-2" }), mobileSidebarLabel: mobileSidebarLabel, children: [_jsxs("div", { className: "flex min-h-0 flex-1 flex-col", children: [activeSubpage === "node-catalog" ||
2437
- (!showDashboard && showDetailPane) ? (_jsx("button", { type: "button", className: "mb-3 flex items-center gap-2 rounded-2xl border border-border/30 bg-bg/25 px-4 py-3 text-base font-medium text-muted hover:text-txt md:hidden", onClick: () => {
2438
- if (activeSubpage === "node-catalog") {
2439
- showAutomationsList();
2440
- return;
2441
- }
2442
- setSelectedItemId(null);
2443
- setSelectedItemKind(null);
2444
- setEditorOpen(false);
2445
- setEditingId(null);
2446
- ctx.setEditingTaskId(null);
2447
- }, children: "\u2190 Back" })) : null, missingCredentials && missingCredentials.length > 0 && (_jsx(PagePanel, { variant: "padded", className: "mb-4 border border-warn/40 bg-warn-subtle", children: _jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "space-y-1", children: [_jsxs("p", { className: "text-sm font-semibold text-warn", children: ["Workflow needs ", missingCredentials.length, " credential", missingCredentials.length === 1 ? "" : "s"] }), _jsxs("p", { className: "text-xs text-muted", children: ["Connect", " ", missingCredentials
2448
- .map((cred) => prettyCredName(cred.credType))
2449
- .join(", "), " ", "to activate this workflow."] }), _jsx("div", { className: "mt-2 flex flex-wrap gap-2", children: missingCredentials.map((cred) => (_jsxs(Button, { size: "sm", variant: "outline", onClick: () => {
2450
- setTab("settings");
2451
- dispatchFocusConnector(providerFromCredType(cred.credType));
2452
- setMissingCredentials(null);
2453
- }, children: ["Connect ", prettyCredName(cred.credType), " \u2192"] }, cred.credType))) })] }), _jsx(Button, { variant: "ghost", size: "sm", className: "text-muted hover:text-txt", onClick: () => setMissingCredentials(null), children: "Dismiss" })] }) })), (pageNotice || combinedError) && (_jsx(PagePanel, { variant: "padded", className: "mb-4 border border-danger/20 bg-danger/5", children: _jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx("p", { className: "text-sm text-danger", children: pageNotice ?? combinedError }), pageNotice && (_jsx(Button, { variant: "ghost", size: "sm", className: "text-danger hover:bg-danger/10", onClick: () => setPageNotice(null), children: "Dismiss" }))] }) })), editorOpen || editingId || editingTaskId ? (editorMode === "task" || editingTaskId ? (_jsx(TaskForm, {})) : (_jsx(HeartbeatForm, { form: form, editingId: editingId, editorEnabled: editorEnabled, modalTitle: modalTitle, formError: formError, triggersSaving: triggersSaving, templateNotice: templateNotice, triggers: triggers, triggerRunsById: triggerRunsById, t: t, selectedTriggerId: editingId, setField: setField, setForm: setForm, setFormError: setFormError, closeEditor: closeEditor, onSubmit: onSubmitTrigger, onDelete: onDeleteTrigger, onRunSelectedTrigger: onRunSelectedTrigger, onToggleTriggerEnabled: onToggleTriggerEnabled, saveFormAsTemplate: saveFormAsTemplate, loadTriggerRuns: loadTriggerRuns, kickerLabelCreate: form.kind === "workflow" ? "New schedule" : "New task", kickerLabelEdit: form.kind === "workflow" ? "Edit schedule" : "Edit task", submitLabelCreate: form.kind === "workflow" ? "Create schedule" : "Create task", submitLabelEdit: form.kind === "workflow" ? "Save schedule" : "Save task" }))) : activeSubpage === "node-catalog" ? (_jsx(AutomationNodeCatalogPane, { nodes: automationNodes })) : showDashboard ? (_jsx(AutomationsDashboard, { items: ctx.allItems, onSelectItem: selectItem, onCreateTask: handleZeroStateNewTask, onCreateWorkflow: () => void createWorkflowDraft(), onDescribeAutomation: handleDescribeAutomation, onUseIdea: (idea) => {
2454
- if (idea.kind === "workflow") {
2455
- void createWorkflowDraft({
2456
- title: idea.label,
2457
- initialPrompt: idea.prompt,
2458
- });
2459
- return;
2460
- }
2461
- openSeededTask(idea);
2462
- } })) : resolvedSelectedItem?.type === "automation_draft" ? (_jsx(AutomationDraftPane, { automation: resolvedSelectedItem, onSeedPrompt: (prompt) => prefillPageChat(prompt, { select: true }), onDeleteDraft: handleDeleteDraft })) : resolvedSelectedItem?.type === "n8n_workflow" ? (_jsx(WorkflowAutomationDetailPane, { automation: resolvedSelectedItem, n8nStatus: n8nStatus, workflowFetchError: workflowFetchError, workflowBusyId: workflowBusyId, workflowOpsBusy: workflowOpsBusy, onDeleteDraft: handleDeleteDraft, onDeleteWorkflow: handleDeleteWorkflow, onDuplicateWorkflow: handleDuplicateWorkflow, onGenerateWorkflow: handleGenerateWorkflow, onRefreshWorkflows: handleRefreshWorkflows, onScheduleWorkflow: handleScheduleWorkflow, onStartLocalN8n: handleStartLocalN8n, onToggleWorkflowActive: handleToggleWorkflowActive })) : resolvedSelectedItem?.trigger ? (_jsx(TriggerAutomationDetailPane, { automation: resolvedSelectedItem, onPromoteToWorkflow: promoteAutomationToWorkflow })) : resolvedSelectedItem?.task ? (_jsx(TaskAutomationDetailPane, { automation: resolvedSelectedItem, onPromoteToWorkflow: promoteAutomationToWorkflow })) : showFirstRunEmptyState ? (_jsx(AutomationsZeroState, { onBrowseTemplates: () => setTemplatesModalOpen(true), onNewTrigger: handleZeroStateNewTrigger, onNewTask: handleZeroStateNewTask })) : (_jsx("div", { className: "flex min-h-0 flex-1 items-center justify-center px-8 py-10 text-center", children: _jsx("div", { className: "space-y-3", children: _jsx("h3", { className: "text-lg font-semibold text-txt-strong", children: "Select a task or workflow" }) }) }))] }), _jsx(CreateAutomationDialog, { open: createDialogMode !== null, onOpenChange: (open) => {
2463
- if (!open) {
2464
- setCreateDialogMode(null);
2465
- }
2466
- }, onCreateTask: () => {
2467
- setCreateDialogMode(null);
2468
- handleZeroStateNewTask();
2469
- }, onCreateWorkflow: () => {
2470
- setCreateDialogMode(null);
2471
- void createWorkflowDraft();
2472
- }, onDescribeAutomation: handleDescribeAutomation }), _jsx(WorkflowTemplatesModal, { open: templatesModalOpen, onOpenChange: setTemplatesModalOpen, onSelectTemplate: (seedPrompt) => void handleTemplateSelected(seedPrompt), onSelectCustom: () => {
2473
- setTemplatesModalOpen(false);
2474
- void createWorkflowDraft();
2475
- } })] }));
2476
- }
2477
- export function AutomationsView() {
2478
- const controller = useAutomationsViewController();
2479
- return (_jsx(AutomationsViewContext.Provider, { value: controller, children: _jsx(AutomationsLayout, {}) }));
2480
- }
2481
- export function AutomationsDesktopShell() {
2482
- const controller = useAutomationsViewController();
2483
- // Collapse the right-rail chat dock when no workflow / draft is
2484
- // selected. The Automations Overview page already has a centered hero
2485
- // compose ("Describe a task or workflow…") that's the canonical create
2486
- // surface; the bottom-right dock + hero showed two inputs at once and
2487
- // confused users. When a workflow or draft IS selected, the rail (and
2488
- // its PageScopedChatPane) opens so the user can edit/refine.
2489
- //
2490
- // Stay in CONTROLLED mode at all times. An earlier revision flipped
2491
- // between controlled (when nothing selected) and uncontrolled (when
2492
- // something selected); that left AppWorkspaceChrome's internal
2493
- // `internalCollapsed` stuck at `true` after the controlled phase, so
2494
- // the rail never opened on the first selection. Always-controlled
2495
- // avoids that transition entirely.
2496
- const hasScopedItem = controller.resolvedSelectedItem != null;
2497
- const [userCollapsedWhenSelected, setUserCollapsedWhenSelected] = useState(false);
2498
- // When the user clears the selection, also reset the toggle so the next
2499
- // selection starts with the rail open by default.
2500
- useEffect(() => {
2501
- if (!hasScopedItem)
2502
- setUserCollapsedWhenSelected(false);
2503
- }, [hasScopedItem]);
2504
- const chatCollapsed = hasScopedItem ? userCollapsedWhenSelected : true;
2505
- const handleToggleChat = useCallback((next) => {
2506
- // No-op when nothing is selected — the rail is force-closed in that
2507
- // state and the toggle button is hidden, so this should never fire.
2508
- if (hasScopedItem)
2509
- setUserCollapsedWhenSelected(next);
2510
- }, [hasScopedItem]);
2511
- return (_jsx(AutomationsViewContext.Provider, { value: controller, children: _jsx(AppWorkspaceChrome, { testId: "automations-workspace", chat: _jsx(AutomationsSidebarChat, { activeItem: controller.resolvedSelectedItem }), chatCollapsed: chatCollapsed, onToggleChat: handleToggleChat, hideCollapseButton: !hasScopedItem, main: _jsx("div", { className: "flex flex-col flex-1 min-h-0 min-w-0 overflow-hidden", children: _jsx(AutomationsLayout, {}) }) }) }));
2512
- }