@jami-studio/dispatch 0.13.14

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 (1129) hide show
  1. package/README.md +134 -0
  2. package/dist/actions/apply-dream-proposal.d.ts +29 -0
  3. package/dist/actions/apply-dream-proposal.d.ts.map +1 -0
  4. package/dist/actions/apply-dream-proposal.js +11 -0
  5. package/dist/actions/apply-dream-proposal.js.map +1 -0
  6. package/dist/actions/approve-dispatch-change.d.ts +22 -0
  7. package/dist/actions/approve-dispatch-change.d.ts.map +1 -0
  8. package/dist/actions/approve-dispatch-change.js +11 -0
  9. package/dist/actions/approve-dispatch-change.js.map +1 -0
  10. package/dist/actions/approve-vault-request.d.ts +20 -0
  11. package/dist/actions/approve-vault-request.d.ts.map +1 -0
  12. package/dist/actions/approve-vault-request.js +16 -0
  13. package/dist/actions/approve-vault-request.js.map +1 -0
  14. package/dist/actions/archive-workspace-app.d.ts +7 -0
  15. package/dist/actions/archive-workspace-app.d.ts.map +1 -0
  16. package/dist/actions/archive-workspace-app.js +15 -0
  17. package/dist/actions/archive-workspace-app.js.map +1 -0
  18. package/dist/actions/ask_app.d.ts +10 -0
  19. package/dist/actions/ask_app.d.ts.map +1 -0
  20. package/dist/actions/ask_app.js +12 -0
  21. package/dist/actions/ask_app.js.map +1 -0
  22. package/dist/actions/create-dream-report.d.ts +59 -0
  23. package/dist/actions/create-dream-report.d.ts.map +1 -0
  24. package/dist/actions/create-dream-report.js +67 -0
  25. package/dist/actions/create-dream-report.js.map +1 -0
  26. package/dist/actions/create-link-token.d.ts +10 -0
  27. package/dist/actions/create-link-token.d.ts.map +1 -0
  28. package/dist/actions/create-link-token.js +11 -0
  29. package/dist/actions/create-link-token.js.map +1 -0
  30. package/dist/actions/create-pylon-ticket.d.ts +17 -0
  31. package/dist/actions/create-pylon-ticket.d.ts.map +1 -0
  32. package/dist/actions/create-pylon-ticket.js +95 -0
  33. package/dist/actions/create-pylon-ticket.js.map +1 -0
  34. package/dist/actions/create-vault-grant.d.ts +17 -0
  35. package/dist/actions/create-vault-grant.d.ts.map +1 -0
  36. package/dist/actions/create-vault-grant.js +14 -0
  37. package/dist/actions/create-vault-grant.js.map +1 -0
  38. package/dist/actions/create-vault-secret.d.ts +21 -0
  39. package/dist/actions/create-vault-secret.d.ts.map +1 -0
  40. package/dist/actions/create-vault-secret.js +26 -0
  41. package/dist/actions/create-vault-secret.js.map +1 -0
  42. package/dist/actions/create-workspace-resource-grant.d.ts +16 -0
  43. package/dist/actions/create-workspace-resource-grant.d.ts.map +1 -0
  44. package/dist/actions/create-workspace-resource-grant.js +14 -0
  45. package/dist/actions/create-workspace-resource-grant.js.map +1 -0
  46. package/dist/actions/create-workspace-resource.d.ts +40 -0
  47. package/dist/actions/create-workspace-resource.d.ts.map +1 -0
  48. package/dist/actions/create-workspace-resource.js +22 -0
  49. package/dist/actions/create-workspace-resource.js.map +1 -0
  50. package/dist/actions/create_embed_session.d.ts +13 -0
  51. package/dist/actions/create_embed_session.d.ts.map +1 -0
  52. package/dist/actions/create_embed_session.js +28 -0
  53. package/dist/actions/create_embed_session.js.map +1 -0
  54. package/dist/actions/delete-destination.d.ts +34 -0
  55. package/dist/actions/delete-destination.d.ts.map +1 -0
  56. package/dist/actions/delete-destination.js +11 -0
  57. package/dist/actions/delete-destination.js.map +1 -0
  58. package/dist/actions/delete-staged-dataset.d.ts +8 -0
  59. package/dist/actions/delete-staged-dataset.d.ts.map +1 -0
  60. package/dist/actions/delete-staged-dataset.js +31 -0
  61. package/dist/actions/delete-staged-dataset.js.map +1 -0
  62. package/dist/actions/delete-vault-secret.d.ts +17 -0
  63. package/dist/actions/delete-vault-secret.d.ts.map +1 -0
  64. package/dist/actions/delete-vault-secret.js +11 -0
  65. package/dist/actions/delete-vault-secret.js.map +1 -0
  66. package/dist/actions/delete-workspace-resource.d.ts +35 -0
  67. package/dist/actions/delete-workspace-resource.d.ts.map +1 -0
  68. package/dist/actions/delete-workspace-resource.js +11 -0
  69. package/dist/actions/delete-workspace-resource.js.map +1 -0
  70. package/dist/actions/deny-vault-request.d.ts +19 -0
  71. package/dist/actions/deny-vault-request.d.ts.map +1 -0
  72. package/dist/actions/deny-vault-request.js +12 -0
  73. package/dist/actions/deny-vault-request.js.map +1 -0
  74. package/dist/actions/ensure-dream-job.d.ts +33 -0
  75. package/dist/actions/ensure-dream-job.d.ts.map +1 -0
  76. package/dist/actions/ensure-dream-job.js +73 -0
  77. package/dist/actions/ensure-dream-job.js.map +1 -0
  78. package/dist/actions/get-agent-thread-debug.d.ts +55 -0
  79. package/dist/actions/get-agent-thread-debug.d.ts.map +1 -0
  80. package/dist/actions/get-agent-thread-debug.js +24 -0
  81. package/dist/actions/get-agent-thread-debug.js.map +1 -0
  82. package/dist/actions/get-app-creation-settings.d.ts +3 -0
  83. package/dist/actions/get-app-creation-settings.d.ts.map +1 -0
  84. package/dist/actions/get-app-creation-settings.js +10 -0
  85. package/dist/actions/get-app-creation-settings.js.map +1 -0
  86. package/dist/actions/get-dispatch-settings.d.ts +3 -0
  87. package/dist/actions/get-dispatch-settings.d.ts.map +1 -0
  88. package/dist/actions/get-dispatch-settings.js +10 -0
  89. package/dist/actions/get-dispatch-settings.js.map +1 -0
  90. package/dist/actions/get-dream-settings.d.ts +3 -0
  91. package/dist/actions/get-dream-settings.d.ts.map +1 -0
  92. package/dist/actions/get-dream-settings.js +11 -0
  93. package/dist/actions/get-dream-settings.js.map +1 -0
  94. package/dist/actions/get-dream.d.ts +48 -0
  95. package/dist/actions/get-dream.d.ts.map +1 -0
  96. package/dist/actions/get-dream.js +13 -0
  97. package/dist/actions/get-dream.js.map +1 -0
  98. package/dist/actions/get-vault-access-settings.d.ts +3 -0
  99. package/dist/actions/get-vault-access-settings.d.ts.map +1 -0
  100. package/dist/actions/get-vault-access-settings.js +10 -0
  101. package/dist/actions/get-vault-access-settings.js.map +1 -0
  102. package/dist/actions/get-workspace-info.d.ts +3 -0
  103. package/dist/actions/get-workspace-info.d.ts.map +1 -0
  104. package/dist/actions/get-workspace-info.js +10 -0
  105. package/dist/actions/get-workspace-info.js.map +1 -0
  106. package/dist/actions/get-workspace-resource-effective-context.d.ts +8 -0
  107. package/dist/actions/get-workspace-resource-effective-context.d.ts.map +1 -0
  108. package/dist/actions/get-workspace-resource-effective-context.js +27 -0
  109. package/dist/actions/get-workspace-resource-effective-context.js.map +1 -0
  110. package/dist/actions/grant-vault-secrets-to-app.d.ts +27 -0
  111. package/dist/actions/grant-vault-secrets-to-app.d.ts.map +1 -0
  112. package/dist/actions/grant-vault-secrets-to-app.js +19 -0
  113. package/dist/actions/grant-vault-secrets-to-app.js.map +1 -0
  114. package/dist/actions/grant-workspace-resources-to-app.d.ts +17 -0
  115. package/dist/actions/grant-workspace-resources-to-app.d.ts.map +1 -0
  116. package/dist/actions/grant-workspace-resources-to-app.js +15 -0
  117. package/dist/actions/grant-workspace-resources-to-app.js.map +1 -0
  118. package/dist/actions/index.d.ts +9 -0
  119. package/dist/actions/index.d.ts.map +1 -0
  120. package/dist/actions/index.js +183 -0
  121. package/dist/actions/index.js.map +1 -0
  122. package/dist/actions/list-agent-thread-sources.d.ts +9 -0
  123. package/dist/actions/list-agent-thread-sources.d.ts.map +1 -0
  124. package/dist/actions/list-agent-thread-sources.js +11 -0
  125. package/dist/actions/list-agent-thread-sources.js.map +1 -0
  126. package/dist/actions/list-available-workspace-templates.d.ts +3 -0
  127. package/dist/actions/list-available-workspace-templates.d.ts.map +1 -0
  128. package/dist/actions/list-available-workspace-templates.js +10 -0
  129. package/dist/actions/list-available-workspace-templates.js.map +1 -0
  130. package/dist/actions/list-connected-agents.d.ts +13 -0
  131. package/dist/actions/list-connected-agents.d.ts.map +1 -0
  132. package/dist/actions/list-connected-agents.js +79 -0
  133. package/dist/actions/list-connected-agents.js.map +1 -0
  134. package/dist/actions/list-destinations.d.ts +15 -0
  135. package/dist/actions/list-destinations.d.ts.map +1 -0
  136. package/dist/actions/list-destinations.js +10 -0
  137. package/dist/actions/list-destinations.js.map +1 -0
  138. package/dist/actions/list-dispatch-approvals.d.ts +20 -0
  139. package/dist/actions/list-dispatch-approvals.d.ts.map +1 -0
  140. package/dist/actions/list-dispatch-approvals.js +10 -0
  141. package/dist/actions/list-dispatch-approvals.js.map +1 -0
  142. package/dist/actions/list-dispatch-audit.d.ts +16 -0
  143. package/dist/actions/list-dispatch-audit.d.ts.map +1 -0
  144. package/dist/actions/list-dispatch-audit.js +12 -0
  145. package/dist/actions/list-dispatch-audit.js.map +1 -0
  146. package/dist/actions/list-dispatch-overview.d.ts +61 -0
  147. package/dist/actions/list-dispatch-overview.d.ts.map +1 -0
  148. package/dist/actions/list-dispatch-overview.js +17 -0
  149. package/dist/actions/list-dispatch-overview.js.map +1 -0
  150. package/dist/actions/list-dispatch-usage-metrics.d.ts +5 -0
  151. package/dist/actions/list-dispatch-usage-metrics.d.ts.map +1 -0
  152. package/dist/actions/list-dispatch-usage-metrics.js +18 -0
  153. package/dist/actions/list-dispatch-usage-metrics.js.map +1 -0
  154. package/dist/actions/list-dream-candidates.d.ts +24 -0
  155. package/dist/actions/list-dream-candidates.d.ts.map +1 -0
  156. package/dist/actions/list-dream-candidates.js +68 -0
  157. package/dist/actions/list-dream-candidates.js.map +1 -0
  158. package/dist/actions/list-dreams.d.ts +29 -0
  159. package/dist/actions/list-dreams.d.ts.map +1 -0
  160. package/dist/actions/list-dreams.js +17 -0
  161. package/dist/actions/list-dreams.js.map +1 -0
  162. package/dist/actions/list-integrations-catalog.d.ts +3 -0
  163. package/dist/actions/list-integrations-catalog.d.ts.map +1 -0
  164. package/dist/actions/list-integrations-catalog.js +10 -0
  165. package/dist/actions/list-integrations-catalog.js.map +1 -0
  166. package/dist/actions/list-linked-identities.d.ts +29 -0
  167. package/dist/actions/list-linked-identities.d.ts.map +1 -0
  168. package/dist/actions/list-linked-identities.js +10 -0
  169. package/dist/actions/list-linked-identities.js.map +1 -0
  170. package/dist/actions/list-mcp-app-access.d.ts +14 -0
  171. package/dist/actions/list-mcp-app-access.d.ts.map +1 -0
  172. package/dist/actions/list-mcp-app-access.js +25 -0
  173. package/dist/actions/list-mcp-app-access.js.map +1 -0
  174. package/dist/actions/list-staged-datasets.d.ts +13 -0
  175. package/dist/actions/list-staged-datasets.d.ts.map +1 -0
  176. package/dist/actions/list-staged-datasets.js +33 -0
  177. package/dist/actions/list-staged-datasets.js.map +1 -0
  178. package/dist/actions/list-vault-audit.d.ts +16 -0
  179. package/dist/actions/list-vault-audit.d.ts.map +1 -0
  180. package/dist/actions/list-vault-audit.js +15 -0
  181. package/dist/actions/list-vault-audit.js.map +1 -0
  182. package/dist/actions/list-vault-grants.d.ts +17 -0
  183. package/dist/actions/list-vault-grants.d.ts.map +1 -0
  184. package/dist/actions/list-vault-grants.js +13 -0
  185. package/dist/actions/list-vault-grants.js.map +1 -0
  186. package/dist/actions/list-vault-requests.d.ts +18 -0
  187. package/dist/actions/list-vault-requests.d.ts.map +1 -0
  188. package/dist/actions/list-vault-requests.js +15 -0
  189. package/dist/actions/list-vault-requests.js.map +1 -0
  190. package/dist/actions/list-vault-secret-options.d.ts +9 -0
  191. package/dist/actions/list-vault-secret-options.d.ts.map +1 -0
  192. package/dist/actions/list-vault-secret-options.js +19 -0
  193. package/dist/actions/list-vault-secret-options.js.map +1 -0
  194. package/dist/actions/list-vault-secrets.d.ts +13 -0
  195. package/dist/actions/list-vault-secrets.d.ts.map +1 -0
  196. package/dist/actions/list-vault-secrets.js +25 -0
  197. package/dist/actions/list-vault-secrets.js.map +1 -0
  198. package/dist/actions/list-workspace-apps.d.ts +6 -0
  199. package/dist/actions/list-workspace-apps.d.ts.map +1 -0
  200. package/dist/actions/list-workspace-apps.js +28 -0
  201. package/dist/actions/list-workspace-apps.js.map +1 -0
  202. package/dist/actions/list-workspace-resource-grants.d.ts +16 -0
  203. package/dist/actions/list-workspace-resource-grants.d.ts.map +1 -0
  204. package/dist/actions/list-workspace-resource-grants.js +13 -0
  205. package/dist/actions/list-workspace-resource-grants.js.map +1 -0
  206. package/dist/actions/list-workspace-resource-options.d.ts +5 -0
  207. package/dist/actions/list-workspace-resource-options.d.ts.map +1 -0
  208. package/dist/actions/list-workspace-resource-options.js +15 -0
  209. package/dist/actions/list-workspace-resource-options.js.map +1 -0
  210. package/dist/actions/list-workspace-resources-for-app.d.ts +15 -0
  211. package/dist/actions/list-workspace-resources-for-app.d.ts.map +1 -0
  212. package/dist/actions/list-workspace-resources-for-app.js +12 -0
  213. package/dist/actions/list-workspace-resources-for-app.js.map +1 -0
  214. package/dist/actions/list-workspace-resources.d.ts +18 -0
  215. package/dist/actions/list-workspace-resources.d.ts.map +1 -0
  216. package/dist/actions/list-workspace-resources.js +15 -0
  217. package/dist/actions/list-workspace-resources.js.map +1 -0
  218. package/dist/actions/list_apps.d.ts +14 -0
  219. package/dist/actions/list_apps.d.ts.map +1 -0
  220. package/dist/actions/list_apps.js +26 -0
  221. package/dist/actions/list_apps.js.map +1 -0
  222. package/dist/actions/navigate.d.ts +23 -0
  223. package/dist/actions/navigate.d.ts.map +1 -0
  224. package/dist/actions/navigate.js +53 -0
  225. package/dist/actions/navigate.js.map +1 -0
  226. package/dist/actions/open_app.d.ts +20 -0
  227. package/dist/actions/open_app.d.ts.map +1 -0
  228. package/dist/actions/open_app.js +123 -0
  229. package/dist/actions/open_app.js.map +1 -0
  230. package/dist/actions/preview-dream-proposal.d.ts +43 -0
  231. package/dist/actions/preview-dream-proposal.d.ts.map +1 -0
  232. package/dist/actions/preview-dream-proposal.js +13 -0
  233. package/dist/actions/preview-dream-proposal.js.map +1 -0
  234. package/dist/actions/preview-workspace-resource-change.d.ts +8 -0
  235. package/dist/actions/preview-workspace-resource-change.d.ts.map +1 -0
  236. package/dist/actions/preview-workspace-resource-change.js +24 -0
  237. package/dist/actions/preview-workspace-resource-change.js.map +1 -0
  238. package/dist/actions/provider-api-catalog.d.ts +24 -0
  239. package/dist/actions/provider-api-catalog.d.ts.map +1 -0
  240. package/dist/actions/provider-api-catalog.js +22 -0
  241. package/dist/actions/provider-api-catalog.js.map +1 -0
  242. package/dist/actions/provider-api-docs.d.ts +22 -0
  243. package/dist/actions/provider-api-docs.d.ts.map +1 -0
  244. package/dist/actions/provider-api-docs.js +57 -0
  245. package/dist/actions/provider-api-docs.js.map +1 -0
  246. package/dist/actions/provider-api-register.d.ts +85 -0
  247. package/dist/actions/provider-api-register.d.ts.map +1 -0
  248. package/dist/actions/provider-api-register.js +160 -0
  249. package/dist/actions/provider-api-register.js.map +1 -0
  250. package/dist/actions/provider-api-request.d.ts +35 -0
  251. package/dist/actions/provider-api-request.d.ts.map +1 -0
  252. package/dist/actions/provider-api-request.js +168 -0
  253. package/dist/actions/provider-api-request.js.map +1 -0
  254. package/dist/actions/query-staged-dataset.d.ts +28 -0
  255. package/dist/actions/query-staged-dataset.d.ts.map +1 -0
  256. package/dist/actions/query-staged-dataset.js +105 -0
  257. package/dist/actions/query-staged-dataset.js.map +1 -0
  258. package/dist/actions/reject-dispatch-change.d.ts +23 -0
  259. package/dist/actions/reject-dispatch-change.d.ts.map +1 -0
  260. package/dist/actions/reject-dispatch-change.js +12 -0
  261. package/dist/actions/reject-dispatch-change.js.map +1 -0
  262. package/dist/actions/reject-dream-proposal.d.ts +27 -0
  263. package/dist/actions/reject-dream-proposal.d.ts.map +1 -0
  264. package/dist/actions/reject-dream-proposal.js +12 -0
  265. package/dist/actions/reject-dream-proposal.js.map +1 -0
  266. package/dist/actions/remove-pending-workspace-app.d.ts +7 -0
  267. package/dist/actions/remove-pending-workspace-app.d.ts.map +1 -0
  268. package/dist/actions/remove-pending-workspace-app.js +15 -0
  269. package/dist/actions/remove-pending-workspace-app.js.map +1 -0
  270. package/dist/actions/request-vault-secret.d.ts +20 -0
  271. package/dist/actions/request-vault-secret.d.ts.map +1 -0
  272. package/dist/actions/request-vault-secret.js +15 -0
  273. package/dist/actions/request-vault-secret.js.map +1 -0
  274. package/dist/actions/restore-starter-workspace-resources.d.ts +9 -0
  275. package/dist/actions/restore-starter-workspace-resources.d.ts.map +1 -0
  276. package/dist/actions/restore-starter-workspace-resources.js +14 -0
  277. package/dist/actions/restore-starter-workspace-resources.js.map +1 -0
  278. package/dist/actions/revoke-vault-grant.d.ts +16 -0
  279. package/dist/actions/revoke-vault-grant.d.ts.map +1 -0
  280. package/dist/actions/revoke-vault-grant.js +11 -0
  281. package/dist/actions/revoke-vault-grant.js.map +1 -0
  282. package/dist/actions/revoke-workspace-resource-grant.d.ts +15 -0
  283. package/dist/actions/revoke-workspace-resource-grant.d.ts.map +1 -0
  284. package/dist/actions/revoke-workspace-resource-grant.js +11 -0
  285. package/dist/actions/revoke-workspace-resource-grant.js.map +1 -0
  286. package/dist/actions/scaffold-workspace-app.d.ts +10 -0
  287. package/dist/actions/scaffold-workspace-app.d.ts.map +1 -0
  288. package/dist/actions/scaffold-workspace-app.js +40 -0
  289. package/dist/actions/scaffold-workspace-app.js.map +1 -0
  290. package/dist/actions/search-agent-threads.d.ts +32 -0
  291. package/dist/actions/search-agent-threads.d.ts.map +1 -0
  292. package/dist/actions/search-agent-threads.js +25 -0
  293. package/dist/actions/search-agent-threads.js.map +1 -0
  294. package/dist/actions/send-code-agent-remote-command.d.ts +34 -0
  295. package/dist/actions/send-code-agent-remote-command.d.ts.map +1 -0
  296. package/dist/actions/send-code-agent-remote-command.js +53 -0
  297. package/dist/actions/send-code-agent-remote-command.js.map +1 -0
  298. package/dist/actions/send-platform-message.d.ts +14 -0
  299. package/dist/actions/send-platform-message.d.ts.map +1 -0
  300. package/dist/actions/send-platform-message.js +73 -0
  301. package/dist/actions/send-platform-message.js.map +1 -0
  302. package/dist/actions/set-app-creation-settings.d.ts +5 -0
  303. package/dist/actions/set-app-creation-settings.d.ts.map +1 -0
  304. package/dist/actions/set-app-creation-settings.js +18 -0
  305. package/dist/actions/set-app-creation-settings.js.map +1 -0
  306. package/dist/actions/set-dispatch-approval-policy.d.ts +23 -0
  307. package/dist/actions/set-dispatch-approval-policy.d.ts.map +1 -0
  308. package/dist/actions/set-dispatch-approval-policy.js +19 -0
  309. package/dist/actions/set-dispatch-approval-policy.js.map +1 -0
  310. package/dist/actions/set-dream-settings.d.ts +17 -0
  311. package/dist/actions/set-dream-settings.d.ts.map +1 -0
  312. package/dist/actions/set-dream-settings.js +41 -0
  313. package/dist/actions/set-dream-settings.js.map +1 -0
  314. package/dist/actions/set-mcp-app-access.d.ts +17 -0
  315. package/dist/actions/set-mcp-app-access.d.ts.map +1 -0
  316. package/dist/actions/set-mcp-app-access.js +46 -0
  317. package/dist/actions/set-mcp-app-access.js.map +1 -0
  318. package/dist/actions/set-vault-access-settings.d.ts +5 -0
  319. package/dist/actions/set-vault-access-settings.d.ts.map +1 -0
  320. package/dist/actions/set-vault-access-settings.js +13 -0
  321. package/dist/actions/set-vault-access-settings.js.map +1 -0
  322. package/dist/actions/start-workspace-app-creation.d.ts +54 -0
  323. package/dist/actions/start-workspace-app-creation.d.ts.map +1 -0
  324. package/dist/actions/start-workspace-app-creation.js +42 -0
  325. package/dist/actions/start-workspace-app-creation.js.map +1 -0
  326. package/dist/actions/sync-vault-to-app.d.ts +32 -0
  327. package/dist/actions/sync-vault-to-app.d.ts.map +1 -0
  328. package/dist/actions/sync-vault-to-app.js +13 -0
  329. package/dist/actions/sync-vault-to-app.js.map +1 -0
  330. package/dist/actions/unarchive-workspace-app.d.ts +7 -0
  331. package/dist/actions/unarchive-workspace-app.d.ts.map +1 -0
  332. package/dist/actions/unarchive-workspace-app.js +15 -0
  333. package/dist/actions/unarchive-workspace-app.js.map +1 -0
  334. package/dist/actions/update-vault-secret.d.ts +22 -0
  335. package/dist/actions/update-vault-secret.d.ts.map +1 -0
  336. package/dist/actions/update-vault-secret.js +43 -0
  337. package/dist/actions/update-vault-secret.js.map +1 -0
  338. package/dist/actions/update-workspace-app-metadata.d.ts +7 -0
  339. package/dist/actions/update-workspace-app-metadata.d.ts.map +1 -0
  340. package/dist/actions/update-workspace-app-metadata.js +30 -0
  341. package/dist/actions/update-workspace-app-metadata.js.map +1 -0
  342. package/dist/actions/update-workspace-resource.d.ts +39 -0
  343. package/dist/actions/update-workspace-resource.d.ts.map +1 -0
  344. package/dist/actions/update-workspace-resource.js +18 -0
  345. package/dist/actions/update-workspace-resource.js.map +1 -0
  346. package/dist/actions/upsert-destination.d.ts +39 -0
  347. package/dist/actions/upsert-destination.d.ts.map +1 -0
  348. package/dist/actions/upsert-destination.js +26 -0
  349. package/dist/actions/upsert-destination.js.map +1 -0
  350. package/dist/actions/view-screen.d.ts +11 -0
  351. package/dist/actions/view-screen.d.ts.map +1 -0
  352. package/dist/actions/view-screen.js +217 -0
  353. package/dist/actions/view-screen.js.map +1 -0
  354. package/dist/components/agents-panel.d.ts +16 -0
  355. package/dist/components/agents-panel.d.ts.map +1 -0
  356. package/dist/components/agents-panel.js +128 -0
  357. package/dist/components/agents-panel.js.map +1 -0
  358. package/dist/components/app-keys-popover.d.ts +11 -0
  359. package/dist/components/app-keys-popover.d.ts.map +1 -0
  360. package/dist/components/app-keys-popover.js +96 -0
  361. package/dist/components/app-keys-popover.js.map +1 -0
  362. package/dist/components/approval-value-block.d.ts +7 -0
  363. package/dist/components/approval-value-block.d.ts.map +1 -0
  364. package/dist/components/approval-value-block.js +22 -0
  365. package/dist/components/approval-value-block.js.map +1 -0
  366. package/dist/components/create-app-popover.d.ts +24 -0
  367. package/dist/components/create-app-popover.d.ts.map +1 -0
  368. package/dist/components/create-app-popover.js +268 -0
  369. package/dist/components/create-app-popover.js.map +1 -0
  370. package/dist/components/dispatch-control-plane.d.ts +2 -0
  371. package/dist/components/dispatch-control-plane.d.ts.map +1 -0
  372. package/dist/components/dispatch-control-plane.js +63 -0
  373. package/dist/components/dispatch-control-plane.js.map +1 -0
  374. package/dist/components/dispatch-shell.d.ts +13 -0
  375. package/dist/components/dispatch-shell.d.ts.map +1 -0
  376. package/dist/components/dispatch-shell.js +17 -0
  377. package/dist/components/dispatch-shell.js.map +1 -0
  378. package/dist/components/index.d.ts +13 -0
  379. package/dist/components/index.d.ts.map +1 -0
  380. package/dist/components/index.js +12 -0
  381. package/dist/components/index.js.map +1 -0
  382. package/dist/components/layout/Header.d.ts +5 -0
  383. package/dist/components/layout/Header.d.ts.map +1 -0
  384. package/dist/components/layout/Header.js +52 -0
  385. package/dist/components/layout/Header.js.map +1 -0
  386. package/dist/components/layout/HeaderActions.d.ts +18 -0
  387. package/dist/components/layout/HeaderActions.d.ts.map +1 -0
  388. package/dist/components/layout/HeaderActions.js +52 -0
  389. package/dist/components/layout/HeaderActions.js.map +1 -0
  390. package/dist/components/layout/Layout.d.ts +36 -0
  391. package/dist/components/layout/Layout.d.ts.map +1 -0
  392. package/dist/components/layout/Layout.js +476 -0
  393. package/dist/components/layout/Layout.js.map +1 -0
  394. package/dist/components/messaging-setup-panel.d.ts +2 -0
  395. package/dist/components/messaging-setup-panel.d.ts.map +1 -0
  396. package/dist/components/messaging-setup-panel.js +299 -0
  397. package/dist/components/messaging-setup-panel.js.map +1 -0
  398. package/dist/components/task-queue-health.d.ts +2 -0
  399. package/dist/components/task-queue-health.d.ts.map +1 -0
  400. package/dist/components/task-queue-health.js +49 -0
  401. package/dist/components/task-queue-health.js.map +1 -0
  402. package/dist/components/ui/accordion.d.ts +8 -0
  403. package/dist/components/ui/accordion.d.ts.map +1 -0
  404. package/dist/components/ui/accordion.js +14 -0
  405. package/dist/components/ui/accordion.js.map +1 -0
  406. package/dist/components/ui/alert-dialog.d.ts +21 -0
  407. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  408. package/dist/components/ui/alert-dialog.js +27 -0
  409. package/dist/components/ui/alert-dialog.js.map +1 -0
  410. package/dist/components/ui/alert.d.ts +9 -0
  411. package/dist/components/ui/alert.d.ts.map +1 -0
  412. package/dist/components/ui/alert.js +23 -0
  413. package/dist/components/ui/alert.js.map +1 -0
  414. package/dist/components/ui/aspect-ratio.d.ts +4 -0
  415. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  416. package/dist/components/ui/aspect-ratio.js +4 -0
  417. package/dist/components/ui/aspect-ratio.js.map +1 -0
  418. package/dist/components/ui/avatar.d.ts +7 -0
  419. package/dist/components/ui/avatar.d.ts.map +1 -0
  420. package/dist/components/ui/avatar.js +12 -0
  421. package/dist/components/ui/avatar.js.map +1 -0
  422. package/dist/components/ui/badge.d.ts +10 -0
  423. package/dist/components/ui/badge.d.ts.map +1 -0
  424. package/dist/components/ui/badge.js +21 -0
  425. package/dist/components/ui/badge.js.map +1 -0
  426. package/dist/components/ui/breadcrumb.d.ts +20 -0
  427. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  428. package/dist/components/ui/breadcrumb.js +24 -0
  429. package/dist/components/ui/breadcrumb.js.map +1 -0
  430. package/dist/components/ui/button.d.ts +12 -0
  431. package/dist/components/ui/button.d.ts.map +1 -0
  432. package/dist/components/ui/button.js +34 -0
  433. package/dist/components/ui/button.js.map +1 -0
  434. package/dist/components/ui/calendar.d.ts +9 -0
  435. package/dist/components/ui/calendar.d.ts.map +1 -0
  436. package/dist/components/ui/calendar.js +41 -0
  437. package/dist/components/ui/calendar.js.map +1 -0
  438. package/dist/components/ui/card.d.ts +9 -0
  439. package/dist/components/ui/card.d.ts.map +1 -0
  440. package/dist/components/ui/card.js +17 -0
  441. package/dist/components/ui/card.js.map +1 -0
  442. package/dist/components/ui/carousel.d.ts +19 -0
  443. package/dist/components/ui/carousel.d.ts.map +1 -0
  444. package/dist/components/ui/carousel.js +99 -0
  445. package/dist/components/ui/carousel.js.map +1 -0
  446. package/dist/components/ui/chart.d.ts +80 -0
  447. package/dist/components/ui/chart.d.ts.map +1 -0
  448. package/dist/components/ui/chart.js +131 -0
  449. package/dist/components/ui/chart.js.map +1 -0
  450. package/dist/components/ui/checkbox.d.ts +5 -0
  451. package/dist/components/ui/checkbox.d.ts.map +1 -0
  452. package/dist/components/ui/checkbox.js +9 -0
  453. package/dist/components/ui/checkbox.js.map +1 -0
  454. package/dist/components/ui/collapsible.d.ts +6 -0
  455. package/dist/components/ui/collapsible.d.ts.map +1 -0
  456. package/dist/components/ui/collapsible.js +6 -0
  457. package/dist/components/ui/collapsible.js.map +1 -0
  458. package/dist/components/ui/command.d.ts +83 -0
  459. package/dist/components/ui/command.d.ts.map +1 -0
  460. package/dist/components/ui/command.js +29 -0
  461. package/dist/components/ui/command.js.map +1 -0
  462. package/dist/components/ui/context-menu.d.ts +28 -0
  463. package/dist/components/ui/context-menu.d.ts.map +1 -0
  464. package/dist/components/ui/context-menu.js +34 -0
  465. package/dist/components/ui/context-menu.js.map +1 -0
  466. package/dist/components/ui/dialog.d.ts +20 -0
  467. package/dist/components/ui/dialog.d.ts.map +1 -0
  468. package/dist/components/ui/dialog.js +23 -0
  469. package/dist/components/ui/dialog.js.map +1 -0
  470. package/dist/components/ui/drawer.d.ts +23 -0
  471. package/dist/components/ui/drawer.d.ts.map +1 -0
  472. package/dist/components/ui/drawer.js +23 -0
  473. package/dist/components/ui/drawer.js.map +1 -0
  474. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  475. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  476. package/dist/components/ui/dropdown-menu.js +36 -0
  477. package/dist/components/ui/dropdown-menu.js.map +1 -0
  478. package/dist/components/ui/form.d.ts +26 -0
  479. package/dist/components/ui/form.d.ts.map +1 -0
  480. package/dist/components/ui/form.js +63 -0
  481. package/dist/components/ui/form.js.map +1 -0
  482. package/dist/components/ui/hover-card.d.ts +7 -0
  483. package/dist/components/ui/hover-card.d.ts.map +1 -0
  484. package/dist/components/ui/hover-card.js +10 -0
  485. package/dist/components/ui/hover-card.js.map +1 -0
  486. package/dist/components/ui/input-otp.d.ts +35 -0
  487. package/dist/components/ui/input-otp.d.ts.map +1 -0
  488. package/dist/components/ui/input-otp.js +19 -0
  489. package/dist/components/ui/input-otp.js.map +1 -0
  490. package/dist/components/ui/input.d.ts +4 -0
  491. package/dist/components/ui/input.d.ts.map +1 -0
  492. package/dist/components/ui/input.js +9 -0
  493. package/dist/components/ui/input.js.map +1 -0
  494. package/dist/components/ui/label.d.ts +6 -0
  495. package/dist/components/ui/label.d.ts.map +1 -0
  496. package/dist/components/ui/label.js +10 -0
  497. package/dist/components/ui/label.js.map +1 -0
  498. package/dist/components/ui/menubar.d.ts +29 -0
  499. package/dist/components/ui/menubar.d.ts.map +1 -0
  500. package/dist/components/ui/menubar.js +41 -0
  501. package/dist/components/ui/menubar.js.map +1 -0
  502. package/dist/components/ui/navigation-menu.d.ts +13 -0
  503. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  504. package/dist/components/ui/navigation-menu.js +25 -0
  505. package/dist/components/ui/navigation-menu.js.map +1 -0
  506. package/dist/components/ui/pagination.d.ts +29 -0
  507. package/dist/components/ui/pagination.d.ts.map +1 -0
  508. package/dist/components/ui/pagination.js +24 -0
  509. package/dist/components/ui/pagination.js.map +1 -0
  510. package/dist/components/ui/popover.d.ts +7 -0
  511. package/dist/components/ui/popover.d.ts.map +1 -0
  512. package/dist/components/ui/popover.js +10 -0
  513. package/dist/components/ui/popover.js.map +1 -0
  514. package/dist/components/ui/progress.d.ts +5 -0
  515. package/dist/components/ui/progress.d.ts.map +1 -0
  516. package/dist/components/ui/progress.js +8 -0
  517. package/dist/components/ui/progress.js.map +1 -0
  518. package/dist/components/ui/radio-group.d.ts +6 -0
  519. package/dist/components/ui/radio-group.d.ts.map +1 -0
  520. package/dist/components/ui/radio-group.js +15 -0
  521. package/dist/components/ui/radio-group.js.map +1 -0
  522. package/dist/components/ui/resizable.d.ts +8 -0
  523. package/dist/components/ui/resizable.d.ts.map +1 -0
  524. package/dist/components/ui/resizable.js +9 -0
  525. package/dist/components/ui/resizable.js.map +1 -0
  526. package/dist/components/ui/scroll-area.d.ts +6 -0
  527. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  528. package/dist/components/ui/scroll-area.js +12 -0
  529. package/dist/components/ui/scroll-area.js.map +1 -0
  530. package/dist/components/ui/select.d.ts +14 -0
  531. package/dist/components/ui/select.d.ts.map +1 -0
  532. package/dist/components/ui/select.js +27 -0
  533. package/dist/components/ui/select.js.map +1 -0
  534. package/dist/components/ui/separator.d.ts +5 -0
  535. package/dist/components/ui/separator.d.ts.map +1 -0
  536. package/dist/components/ui/separator.js +8 -0
  537. package/dist/components/ui/separator.js.map +1 -0
  538. package/dist/components/ui/sheet.d.ts +26 -0
  539. package/dist/components/ui/sheet.d.ts.map +1 -0
  540. package/dist/components/ui/sheet.js +37 -0
  541. package/dist/components/ui/sheet.js.map +1 -0
  542. package/dist/components/ui/sidebar.d.ts +67 -0
  543. package/dist/components/ui/sidebar.d.ts.map +1 -0
  544. package/dist/components/ui/sidebar.js +233 -0
  545. package/dist/components/ui/sidebar.js.map +1 -0
  546. package/dist/components/ui/skeleton.d.ts +3 -0
  547. package/dist/components/ui/skeleton.d.ts.map +1 -0
  548. package/dist/components/ui/skeleton.js +7 -0
  549. package/dist/components/ui/skeleton.js.map +1 -0
  550. package/dist/components/ui/slider.d.ts +5 -0
  551. package/dist/components/ui/slider.d.ts.map +1 -0
  552. package/dist/components/ui/slider.js +8 -0
  553. package/dist/components/ui/slider.js.map +1 -0
  554. package/dist/components/ui/sonner.d.ts +5 -0
  555. package/dist/components/ui/sonner.d.ts.map +1 -0
  556. package/dist/components/ui/sonner.js +25 -0
  557. package/dist/components/ui/sonner.js.map +1 -0
  558. package/dist/components/ui/spinner.d.ts +3 -0
  559. package/dist/components/ui/spinner.d.ts.map +1 -0
  560. package/dist/components/ui/spinner.js +7 -0
  561. package/dist/components/ui/spinner.js.map +1 -0
  562. package/dist/components/ui/switch.d.ts +5 -0
  563. package/dist/components/ui/switch.d.ts.map +1 -0
  564. package/dist/components/ui/switch.js +8 -0
  565. package/dist/components/ui/switch.js.map +1 -0
  566. package/dist/components/ui/table.d.ts +11 -0
  567. package/dist/components/ui/table.d.ts.map +1 -0
  568. package/dist/components/ui/table.js +21 -0
  569. package/dist/components/ui/table.js.map +1 -0
  570. package/dist/components/ui/tabs.d.ts +8 -0
  571. package/dist/components/ui/tabs.d.ts.map +1 -0
  572. package/dist/components/ui/tabs.js +13 -0
  573. package/dist/components/ui/tabs.js.map +1 -0
  574. package/dist/components/ui/textarea.d.ts +6 -0
  575. package/dist/components/ui/textarea.d.ts.map +1 -0
  576. package/dist/components/ui/textarea.js +9 -0
  577. package/dist/components/ui/textarea.js.map +1 -0
  578. package/dist/components/ui/toast.d.ts +16 -0
  579. package/dist/components/ui/toast.d.ts.map +1 -0
  580. package/dist/components/ui/toast.js +34 -0
  581. package/dist/components/ui/toast.js.map +1 -0
  582. package/dist/components/ui/toaster.d.ts +2 -0
  583. package/dist/components/ui/toaster.d.ts.map +1 -0
  584. package/dist/components/ui/toaster.js +10 -0
  585. package/dist/components/ui/toaster.js.map +1 -0
  586. package/dist/components/ui/toggle-group.d.ts +13 -0
  587. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  588. package/dist/components/ui/toggle-group.js +21 -0
  589. package/dist/components/ui/toggle-group.js.map +1 -0
  590. package/dist/components/ui/toggle.d.ts +13 -0
  591. package/dist/components/ui/toggle.d.ts.map +1 -0
  592. package/dist/components/ui/toggle.js +26 -0
  593. package/dist/components/ui/toggle.js.map +1 -0
  594. package/dist/components/ui/tooltip.d.ts +8 -0
  595. package/dist/components/ui/tooltip.d.ts.map +1 -0
  596. package/dist/components/ui/tooltip.js +11 -0
  597. package/dist/components/ui/tooltip.js.map +1 -0
  598. package/dist/components/ui/use-toast.d.ts +3 -0
  599. package/dist/components/ui/use-toast.d.ts.map +1 -0
  600. package/dist/components/ui/use-toast.js +3 -0
  601. package/dist/components/ui/use-toast.js.map +1 -0
  602. package/dist/components/workspace-app-card.d.ts +6 -0
  603. package/dist/components/workspace-app-card.d.ts.map +1 -0
  604. package/dist/components/workspace-app-card.js +105 -0
  605. package/dist/components/workspace-app-card.js.map +1 -0
  606. package/dist/components/workspace-resource-effective-stack.d.ts +11 -0
  607. package/dist/components/workspace-resource-effective-stack.d.ts.map +1 -0
  608. package/dist/components/workspace-resource-effective-stack.js +59 -0
  609. package/dist/components/workspace-resource-effective-stack.js.map +1 -0
  610. package/dist/components/workspace-resource-impact-preview.d.ts +9 -0
  611. package/dist/components/workspace-resource-impact-preview.d.ts.map +1 -0
  612. package/dist/components/workspace-resource-impact-preview.js +39 -0
  613. package/dist/components/workspace-resource-impact-preview.js.map +1 -0
  614. package/dist/config.d.ts +33 -0
  615. package/dist/config.d.ts.map +1 -0
  616. package/dist/config.js +7 -0
  617. package/dist/config.js.map +1 -0
  618. package/dist/db/index.d.ts +7 -0
  619. package/dist/db/index.d.ts.map +1 -0
  620. package/dist/db/index.js +10 -0
  621. package/dist/db/index.js.map +1 -0
  622. package/dist/db/migrations.d.ts +5 -0
  623. package/dist/db/migrations.d.ts.map +1 -0
  624. package/dist/db/migrations.js +225 -0
  625. package/dist/db/migrations.js.map +1 -0
  626. package/dist/db/schema.d.ts +3058 -0
  627. package/dist/db/schema.d.ts.map +1 -0
  628. package/dist/db/schema.js +190 -0
  629. package/dist/db/schema.js.map +1 -0
  630. package/dist/hooks/use-mobile.d.ts +2 -0
  631. package/dist/hooks/use-mobile.d.ts.map +1 -0
  632. package/dist/hooks/use-mobile.js +16 -0
  633. package/dist/hooks/use-mobile.js.map +1 -0
  634. package/dist/hooks/use-navigation-state.d.ts +14 -0
  635. package/dist/hooks/use-navigation-state.d.ts.map +1 -0
  636. package/dist/hooks/use-navigation-state.js +257 -0
  637. package/dist/hooks/use-navigation-state.js.map +1 -0
  638. package/dist/hooks/use-toast.d.ts +45 -0
  639. package/dist/hooks/use-toast.d.ts.map +1 -0
  640. package/dist/hooks/use-toast.js +127 -0
  641. package/dist/hooks/use-toast.js.map +1 -0
  642. package/dist/index.d.ts +15 -0
  643. package/dist/index.d.ts.map +1 -0
  644. package/dist/index.js +15 -0
  645. package/dist/index.js.map +1 -0
  646. package/dist/lib/automation-display.d.ts +13 -0
  647. package/dist/lib/automation-display.d.ts.map +1 -0
  648. package/dist/lib/automation-display.js +62 -0
  649. package/dist/lib/automation-display.js.map +1 -0
  650. package/dist/lib/automations.d.ts +28 -0
  651. package/dist/lib/automations.d.ts.map +1 -0
  652. package/dist/lib/automations.js +27 -0
  653. package/dist/lib/automations.js.map +1 -0
  654. package/dist/lib/catch-all-target.d.ts +17 -0
  655. package/dist/lib/catch-all-target.d.ts.map +1 -0
  656. package/dist/lib/catch-all-target.js +103 -0
  657. package/dist/lib/catch-all-target.js.map +1 -0
  658. package/dist/lib/overview-chat.d.ts +4 -0
  659. package/dist/lib/overview-chat.d.ts.map +1 -0
  660. package/dist/lib/overview-chat.js +21 -0
  661. package/dist/lib/overview-chat.js.map +1 -0
  662. package/dist/lib/task-queue.d.ts +19 -0
  663. package/dist/lib/task-queue.d.ts.map +1 -0
  664. package/dist/lib/task-queue.js +54 -0
  665. package/dist/lib/task-queue.js.map +1 -0
  666. package/dist/lib/thread-link-preview.d.ts +23 -0
  667. package/dist/lib/thread-link-preview.d.ts.map +1 -0
  668. package/dist/lib/thread-link-preview.js +150 -0
  669. package/dist/lib/thread-link-preview.js.map +1 -0
  670. package/dist/lib/utils.d.ts +3 -0
  671. package/dist/lib/utils.d.ts.map +1 -0
  672. package/dist/lib/utils.js +6 -0
  673. package/dist/lib/utils.js.map +1 -0
  674. package/dist/lib/workspace-apps.d.ts +25 -0
  675. package/dist/lib/workspace-apps.d.ts.map +1 -0
  676. package/dist/lib/workspace-apps.js +9 -0
  677. package/dist/lib/workspace-apps.js.map +1 -0
  678. package/dist/routes/index.d.ts +32 -0
  679. package/dist/routes/index.d.ts.map +1 -0
  680. package/dist/routes/index.js +64 -0
  681. package/dist/routes/index.js.map +1 -0
  682. package/dist/routes/pages/$appId.d.ts +8 -0
  683. package/dist/routes/pages/$appId.d.ts.map +1 -0
  684. package/dist/routes/pages/$appId.js +103 -0
  685. package/dist/routes/pages/$appId.js.map +1 -0
  686. package/dist/routes/pages/_index.d.ts +22 -0
  687. package/dist/routes/pages/_index.d.ts.map +1 -0
  688. package/dist/routes/pages/_index.js +48 -0
  689. package/dist/routes/pages/_index.js.map +1 -0
  690. package/dist/routes/pages/agents.d.ts +5 -0
  691. package/dist/routes/pages/agents.d.ts.map +1 -0
  692. package/dist/routes/pages/agents.js +89 -0
  693. package/dist/routes/pages/agents.js.map +1 -0
  694. package/dist/routes/pages/approval.d.ts +5 -0
  695. package/dist/routes/pages/approval.d.ts.map +1 -0
  696. package/dist/routes/pages/approval.js +51 -0
  697. package/dist/routes/pages/approval.js.map +1 -0
  698. package/dist/routes/pages/approvals.d.ts +5 -0
  699. package/dist/routes/pages/approvals.d.ts.map +1 -0
  700. package/dist/routes/pages/approvals.js +48 -0
  701. package/dist/routes/pages/approvals.js.map +1 -0
  702. package/dist/routes/pages/apps.$appId.d.ts +5 -0
  703. package/dist/routes/pages/apps.$appId.d.ts.map +1 -0
  704. package/dist/routes/pages/apps.$appId.js +29 -0
  705. package/dist/routes/pages/apps.$appId.js.map +1 -0
  706. package/dist/routes/pages/apps.d.ts +5 -0
  707. package/dist/routes/pages/apps.d.ts.map +1 -0
  708. package/dist/routes/pages/apps.js +90 -0
  709. package/dist/routes/pages/apps.js.map +1 -0
  710. package/dist/routes/pages/audit.d.ts +5 -0
  711. package/dist/routes/pages/audit.d.ts.map +1 -0
  712. package/dist/routes/pages/audit.js +11 -0
  713. package/dist/routes/pages/audit.js.map +1 -0
  714. package/dist/routes/pages/automations.d.ts +5 -0
  715. package/dist/routes/pages/automations.d.ts.map +1 -0
  716. package/dist/routes/pages/automations.js +106 -0
  717. package/dist/routes/pages/automations.js.map +1 -0
  718. package/dist/routes/pages/chat.d.ts +5 -0
  719. package/dist/routes/pages/chat.d.ts.map +1 -0
  720. package/dist/routes/pages/chat.js +115 -0
  721. package/dist/routes/pages/chat.js.map +1 -0
  722. package/dist/routes/pages/destinations.d.ts +5 -0
  723. package/dist/routes/pages/destinations.d.ts.map +1 -0
  724. package/dist/routes/pages/destinations.js +90 -0
  725. package/dist/routes/pages/destinations.js.map +1 -0
  726. package/dist/routes/pages/dream-settings.d.ts +34 -0
  727. package/dist/routes/pages/dream-settings.d.ts.map +1 -0
  728. package/dist/routes/pages/dream-settings.js +68 -0
  729. package/dist/routes/pages/dream-settings.js.map +1 -0
  730. package/dist/routes/pages/dreams.d.ts +5 -0
  731. package/dist/routes/pages/dreams.d.ts.map +1 -0
  732. package/dist/routes/pages/dreams.js +436 -0
  733. package/dist/routes/pages/dreams.js.map +1 -0
  734. package/dist/routes/pages/extensions.$id.d.ts +5 -0
  735. package/dist/routes/pages/extensions.$id.d.ts.map +1 -0
  736. package/dist/routes/pages/extensions.$id.js +9 -0
  737. package/dist/routes/pages/extensions.$id.js.map +1 -0
  738. package/dist/routes/pages/extensions._index.d.ts +5 -0
  739. package/dist/routes/pages/extensions._index.d.ts.map +1 -0
  740. package/dist/routes/pages/extensions._index.js +9 -0
  741. package/dist/routes/pages/extensions._index.js.map +1 -0
  742. package/dist/routes/pages/identities.d.ts +5 -0
  743. package/dist/routes/pages/identities.d.ts.map +1 -0
  744. package/dist/routes/pages/identities.js +18 -0
  745. package/dist/routes/pages/identities.js.map +1 -0
  746. package/dist/routes/pages/integrations.d.ts +5 -0
  747. package/dist/routes/pages/integrations.d.ts.map +1 -0
  748. package/dist/routes/pages/integrations.js +152 -0
  749. package/dist/routes/pages/integrations.js.map +1 -0
  750. package/dist/routes/pages/messaging.d.ts +5 -0
  751. package/dist/routes/pages/messaging.d.ts.map +1 -0
  752. package/dist/routes/pages/messaging.js +10 -0
  753. package/dist/routes/pages/messaging.js.map +1 -0
  754. package/dist/routes/pages/metrics.d.ts +5 -0
  755. package/dist/routes/pages/metrics.d.ts.map +1 -0
  756. package/dist/routes/pages/metrics.js +175 -0
  757. package/dist/routes/pages/metrics.js.map +1 -0
  758. package/dist/routes/pages/new-app.d.ts +5 -0
  759. package/dist/routes/pages/new-app.d.ts.map +1 -0
  760. package/dist/routes/pages/new-app.js +11 -0
  761. package/dist/routes/pages/new-app.js.map +1 -0
  762. package/dist/routes/pages/overview.d.ts +18 -0
  763. package/dist/routes/pages/overview.d.ts.map +1 -0
  764. package/dist/routes/pages/overview.js +19 -0
  765. package/dist/routes/pages/overview.js.map +1 -0
  766. package/dist/routes/pages/settings.d.ts +5 -0
  767. package/dist/routes/pages/settings.d.ts.map +1 -0
  768. package/dist/routes/pages/settings.js +18 -0
  769. package/dist/routes/pages/settings.js.map +1 -0
  770. package/dist/routes/pages/team.d.ts +5 -0
  771. package/dist/routes/pages/team.d.ts.map +1 -0
  772. package/dist/routes/pages/team.js +9 -0
  773. package/dist/routes/pages/team.js.map +1 -0
  774. package/dist/routes/pages/thread-debug.d.ts +5 -0
  775. package/dist/routes/pages/thread-debug.d.ts.map +1 -0
  776. package/dist/routes/pages/thread-debug.js +161 -0
  777. package/dist/routes/pages/thread-debug.js.map +1 -0
  778. package/dist/routes/pages/tools.$id.d.ts +5 -0
  779. package/dist/routes/pages/tools.$id.d.ts.map +1 -0
  780. package/dist/routes/pages/tools.$id.js +9 -0
  781. package/dist/routes/pages/tools.$id.js.map +1 -0
  782. package/dist/routes/pages/tools._index.d.ts +5 -0
  783. package/dist/routes/pages/tools._index.d.ts.map +1 -0
  784. package/dist/routes/pages/tools._index.js +9 -0
  785. package/dist/routes/pages/tools._index.js.map +1 -0
  786. package/dist/routes/pages/vault.d.ts +5 -0
  787. package/dist/routes/pages/vault.d.ts.map +1 -0
  788. package/dist/routes/pages/vault.js +194 -0
  789. package/dist/routes/pages/vault.js.map +1 -0
  790. package/dist/routes/pages/workspace.d.ts +5 -0
  791. package/dist/routes/pages/workspace.d.ts.map +1 -0
  792. package/dist/routes/pages/workspace.js +327 -0
  793. package/dist/routes/pages/workspace.js.map +1 -0
  794. package/dist/server/index.d.ts +44 -0
  795. package/dist/server/index.d.ts.map +1 -0
  796. package/dist/server/index.js +68 -0
  797. package/dist/server/index.js.map +1 -0
  798. package/dist/server/lib/app-creation-store.d.ts +156 -0
  799. package/dist/server/lib/app-creation-store.d.ts.map +1 -0
  800. package/dist/server/lib/app-creation-store.js +1507 -0
  801. package/dist/server/lib/app-creation-store.js.map +1 -0
  802. package/dist/server/lib/dispatch-integrations.d.ts +10 -0
  803. package/dist/server/lib/dispatch-integrations.d.ts.map +1 -0
  804. package/dist/server/lib/dispatch-integrations.js +244 -0
  805. package/dist/server/lib/dispatch-integrations.js.map +1 -0
  806. package/dist/server/lib/dispatch-remote-commands.d.ts +83 -0
  807. package/dist/server/lib/dispatch-remote-commands.d.ts.map +1 -0
  808. package/dist/server/lib/dispatch-remote-commands.js +256 -0
  809. package/dist/server/lib/dispatch-remote-commands.js.map +1 -0
  810. package/dist/server/lib/dispatch-store.d.ts +339 -0
  811. package/dist/server/lib/dispatch-store.d.ts.map +1 -0
  812. package/dist/server/lib/dispatch-store.js +685 -0
  813. package/dist/server/lib/dispatch-store.js.map +1 -0
  814. package/dist/server/lib/dreams-store.d.ts +398 -0
  815. package/dist/server/lib/dreams-store.d.ts.map +1 -0
  816. package/dist/server/lib/dreams-store.js +2330 -0
  817. package/dist/server/lib/dreams-store.js.map +1 -0
  818. package/dist/server/lib/env-config.d.ts +3 -0
  819. package/dist/server/lib/env-config.d.ts.map +1 -0
  820. package/dist/server/lib/env-config.js +48 -0
  821. package/dist/server/lib/env-config.js.map +1 -0
  822. package/dist/server/lib/mcp-access-store.d.ts +16 -0
  823. package/dist/server/lib/mcp-access-store.d.ts.map +1 -0
  824. package/dist/server/lib/mcp-access-store.js +64 -0
  825. package/dist/server/lib/mcp-access-store.js.map +1 -0
  826. package/dist/server/lib/mcp-gateway.d.ts +51 -0
  827. package/dist/server/lib/mcp-gateway.d.ts.map +1 -0
  828. package/dist/server/lib/mcp-gateway.js +477 -0
  829. package/dist/server/lib/mcp-gateway.js.map +1 -0
  830. package/dist/server/lib/onboarding-steps.d.ts +12 -0
  831. package/dist/server/lib/onboarding-steps.d.ts.map +1 -0
  832. package/dist/server/lib/onboarding-steps.js +47 -0
  833. package/dist/server/lib/onboarding-steps.js.map +1 -0
  834. package/dist/server/lib/pre-auth-routing.d.ts +2 -0
  835. package/dist/server/lib/pre-auth-routing.d.ts.map +1 -0
  836. package/dist/server/lib/pre-auth-routing.js +136 -0
  837. package/dist/server/lib/pre-auth-routing.js.map +1 -0
  838. package/dist/server/lib/provider-api.d.ts +27 -0
  839. package/dist/server/lib/provider-api.d.ts.map +1 -0
  840. package/dist/server/lib/provider-api.js +49 -0
  841. package/dist/server/lib/provider-api.js.map +1 -0
  842. package/dist/server/lib/thread-debug-store.d.ts +109 -0
  843. package/dist/server/lib/thread-debug-store.d.ts.map +1 -0
  844. package/dist/server/lib/thread-debug-store.js +590 -0
  845. package/dist/server/lib/thread-debug-store.js.map +1 -0
  846. package/dist/server/lib/thread-link-preview.d.ts +3 -0
  847. package/dist/server/lib/thread-link-preview.d.ts.map +1 -0
  848. package/dist/server/lib/thread-link-preview.js +28 -0
  849. package/dist/server/lib/thread-link-preview.js.map +1 -0
  850. package/dist/server/lib/usage-metrics-store.d.ts +96 -0
  851. package/dist/server/lib/usage-metrics-store.d.ts.map +1 -0
  852. package/dist/server/lib/usage-metrics-store.js +422 -0
  853. package/dist/server/lib/usage-metrics-store.js.map +1 -0
  854. package/dist/server/lib/vault-store.d.ts +344 -0
  855. package/dist/server/lib/vault-store.d.ts.map +1 -0
  856. package/dist/server/lib/vault-store.js +874 -0
  857. package/dist/server/lib/vault-store.js.map +1 -0
  858. package/dist/server/lib/workspace-resources-store.d.ts +358 -0
  859. package/dist/server/lib/workspace-resources-store.d.ts.map +1 -0
  860. package/dist/server/lib/workspace-resources-store.js +991 -0
  861. package/dist/server/lib/workspace-resources-store.js.map +1 -0
  862. package/dist/server/plugins/agent-chat.d.ts +3 -0
  863. package/dist/server/plugins/agent-chat.d.ts.map +1 -0
  864. package/dist/server/plugins/agent-chat.js +67 -0
  865. package/dist/server/plugins/agent-chat.js.map +1 -0
  866. package/dist/server/plugins/auth.d.ts +9 -0
  867. package/dist/server/plugins/auth.d.ts.map +1 -0
  868. package/dist/server/plugins/auth.js +30 -0
  869. package/dist/server/plugins/auth.js.map +1 -0
  870. package/dist/server/plugins/core-routes.d.ts +3 -0
  871. package/dist/server/plugins/core-routes.d.ts.map +1 -0
  872. package/dist/server/plugins/core-routes.js +10 -0
  873. package/dist/server/plugins/core-routes.js.map +1 -0
  874. package/dist/server/plugins/db.d.ts +3 -0
  875. package/dist/server/plugins/db.d.ts.map +1 -0
  876. package/dist/server/plugins/db.js +6 -0
  877. package/dist/server/plugins/db.js.map +1 -0
  878. package/dist/server/plugins/integrations.d.ts +8 -0
  879. package/dist/server/plugins/integrations.d.ts.map +1 -0
  880. package/dist/server/plugins/integrations.js +67 -0
  881. package/dist/server/plugins/integrations.js.map +1 -0
  882. package/package.json +113 -0
  883. package/src/actions/apply-dream-proposal.ts +13 -0
  884. package/src/actions/approve-dispatch-change.ts +12 -0
  885. package/src/actions/approve-vault-request.ts +24 -0
  886. package/src/actions/archive-workspace-app.ts +17 -0
  887. package/src/actions/ask_app.ts +14 -0
  888. package/src/actions/create-dream-report.ts +77 -0
  889. package/src/actions/create-link-token.ts +13 -0
  890. package/src/actions/create-pylon-ticket.ts +111 -0
  891. package/src/actions/create-vault-grant.ts +16 -0
  892. package/src/actions/create-vault-secret.ts +28 -0
  893. package/src/actions/create-workspace-resource-grant.ts +16 -0
  894. package/src/actions/create-workspace-resource.ts +30 -0
  895. package/src/actions/create_embed_session.ts +30 -0
  896. package/src/actions/delete-destination.ts +12 -0
  897. package/src/actions/delete-staged-dataset.ts +40 -0
  898. package/src/actions/delete-vault-secret.ts +13 -0
  899. package/src/actions/delete-workspace-resource.ts +13 -0
  900. package/src/actions/deny-vault-request.ts +13 -0
  901. package/src/actions/ensure-dream-job.ts +77 -0
  902. package/src/actions/get-agent-thread-debug.ts +26 -0
  903. package/src/actions/get-app-creation-settings.ts +12 -0
  904. package/src/actions/get-dispatch-settings.ts +11 -0
  905. package/src/actions/get-dream-settings.ts +13 -0
  906. package/src/actions/get-dream.ts +15 -0
  907. package/src/actions/get-vault-access-settings.ts +12 -0
  908. package/src/actions/get-workspace-info.ts +12 -0
  909. package/src/actions/get-workspace-resource-effective-context.ts +35 -0
  910. package/src/actions/grant-vault-secrets-to-app.ts +21 -0
  911. package/src/actions/grant-workspace-resources-to-app.ts +17 -0
  912. package/src/actions/index.spec.ts +32 -0
  913. package/src/actions/index.ts +186 -0
  914. package/src/actions/list-agent-thread-sources.ts +13 -0
  915. package/src/actions/list-available-workspace-templates.ts +12 -0
  916. package/src/actions/list-connected-agents.ts +103 -0
  917. package/src/actions/list-destinations.ts +11 -0
  918. package/src/actions/list-dispatch-approvals.ts +11 -0
  919. package/src/actions/list-dispatch-audit.ts +13 -0
  920. package/src/actions/list-dispatch-overview.ts +19 -0
  921. package/src/actions/list-dispatch-usage-metrics.ts +20 -0
  922. package/src/actions/list-dream-candidates.ts +78 -0
  923. package/src/actions/list-dreams.ts +18 -0
  924. package/src/actions/list-integrations-catalog.ts +12 -0
  925. package/src/actions/list-linked-identities.ts +11 -0
  926. package/src/actions/list-mcp-app-access.ts +27 -0
  927. package/src/actions/list-staged-datasets.ts +37 -0
  928. package/src/actions/list-vault-audit.ts +17 -0
  929. package/src/actions/list-vault-grants.ts +15 -0
  930. package/src/actions/list-vault-requests.ts +17 -0
  931. package/src/actions/list-vault-secret-options.ts +21 -0
  932. package/src/actions/list-vault-secrets.ts +27 -0
  933. package/src/actions/list-workspace-apps.ts +30 -0
  934. package/src/actions/list-workspace-resource-grants.ts +15 -0
  935. package/src/actions/list-workspace-resource-options.ts +17 -0
  936. package/src/actions/list-workspace-resources-for-app.ts +14 -0
  937. package/src/actions/list-workspace-resources.ts +17 -0
  938. package/src/actions/list_apps.ts +28 -0
  939. package/src/actions/navigate.ts +53 -0
  940. package/src/actions/open_app.spec.ts +106 -0
  941. package/src/actions/open_app.ts +152 -0
  942. package/src/actions/preview-dream-proposal.ts +15 -0
  943. package/src/actions/preview-workspace-resource-change.ts +26 -0
  944. package/src/actions/provider-api-catalog.ts +27 -0
  945. package/src/actions/provider-api-docs.ts +73 -0
  946. package/src/actions/provider-api-register.ts +198 -0
  947. package/src/actions/provider-api-request.ts +231 -0
  948. package/src/actions/query-staged-dataset.ts +126 -0
  949. package/src/actions/reject-dispatch-change.ts +13 -0
  950. package/src/actions/reject-dream-proposal.ts +13 -0
  951. package/src/actions/remove-pending-workspace-app.ts +17 -0
  952. package/src/actions/request-vault-secret.ts +17 -0
  953. package/src/actions/restore-starter-workspace-resources.ts +18 -0
  954. package/src/actions/revoke-vault-grant.ts +12 -0
  955. package/src/actions/revoke-workspace-resource-grant.ts +16 -0
  956. package/src/actions/scaffold-workspace-app.spec.ts +33 -0
  957. package/src/actions/scaffold-workspace-app.ts +50 -0
  958. package/src/actions/search-agent-threads.ts +31 -0
  959. package/src/actions/send-code-agent-remote-command.ts +60 -0
  960. package/src/actions/send-platform-message.ts +101 -0
  961. package/src/actions/set-app-creation-settings.ts +20 -0
  962. package/src/actions/set-dispatch-approval-policy.ts +25 -0
  963. package/src/actions/set-dream-settings.spec.ts +81 -0
  964. package/src/actions/set-dream-settings.ts +45 -0
  965. package/src/actions/set-mcp-app-access.ts +60 -0
  966. package/src/actions/set-vault-access-settings.ts +17 -0
  967. package/src/actions/start-workspace-app-creation.ts +49 -0
  968. package/src/actions/sync-vault-to-app.ts +15 -0
  969. package/src/actions/unarchive-workspace-app.ts +17 -0
  970. package/src/actions/update-vault-secret.ts +49 -0
  971. package/src/actions/update-workspace-app-metadata.ts +33 -0
  972. package/src/actions/update-workspace-resource.ts +20 -0
  973. package/src/actions/upsert-destination.ts +30 -0
  974. package/src/actions/view-screen.ts +249 -0
  975. package/src/components/agents-panel.tsx +358 -0
  976. package/src/components/app-keys-popover.tsx +258 -0
  977. package/src/components/approval-value-block.spec.tsx +60 -0
  978. package/src/components/approval-value-block.tsx +33 -0
  979. package/src/components/create-app-popover.tsx +598 -0
  980. package/src/components/dispatch-control-plane.tsx +228 -0
  981. package/src/components/dispatch-shell.tsx +53 -0
  982. package/src/components/index.ts +17 -0
  983. package/src/components/layout/Header.tsx +93 -0
  984. package/src/components/layout/HeaderActions.tsx +84 -0
  985. package/src/components/layout/Layout.tsx +981 -0
  986. package/src/components/messaging-setup-panel.tsx +677 -0
  987. package/src/components/task-queue-health.tsx +166 -0
  988. package/src/components/ui/accordion.tsx +56 -0
  989. package/src/components/ui/alert-dialog.tsx +139 -0
  990. package/src/components/ui/alert.tsx +59 -0
  991. package/src/components/ui/aspect-ratio.tsx +5 -0
  992. package/src/components/ui/avatar.tsx +48 -0
  993. package/src/components/ui/badge.tsx +37 -0
  994. package/src/components/ui/breadcrumb.tsx +115 -0
  995. package/src/components/ui/button.tsx +57 -0
  996. package/src/components/ui/calendar.tsx +68 -0
  997. package/src/components/ui/card.tsx +86 -0
  998. package/src/components/ui/carousel.tsx +260 -0
  999. package/src/components/ui/chart.tsx +375 -0
  1000. package/src/components/ui/checkbox.tsx +28 -0
  1001. package/src/components/ui/collapsible.tsx +9 -0
  1002. package/src/components/ui/command.tsx +154 -0
  1003. package/src/components/ui/context-menu.tsx +198 -0
  1004. package/src/components/ui/dialog.tsx +120 -0
  1005. package/src/components/ui/drawer.tsx +128 -0
  1006. package/src/components/ui/dropdown-menu.tsx +198 -0
  1007. package/src/components/ui/form.tsx +177 -0
  1008. package/src/components/ui/hover-card.tsx +27 -0
  1009. package/src/components/ui/input-otp.tsx +69 -0
  1010. package/src/components/ui/input.tsx +22 -0
  1011. package/src/components/ui/label.tsx +24 -0
  1012. package/src/components/ui/menubar.tsx +235 -0
  1013. package/src/components/ui/navigation-menu.tsx +128 -0
  1014. package/src/components/ui/pagination.tsx +121 -0
  1015. package/src/components/ui/popover.tsx +29 -0
  1016. package/src/components/ui/progress.tsx +26 -0
  1017. package/src/components/ui/radio-group.tsx +42 -0
  1018. package/src/components/ui/resizable.tsx +43 -0
  1019. package/src/components/ui/scroll-area.tsx +46 -0
  1020. package/src/components/ui/select.tsx +158 -0
  1021. package/src/components/ui/separator.tsx +29 -0
  1022. package/src/components/ui/sheet.tsx +139 -0
  1023. package/src/components/ui/sidebar.tsx +777 -0
  1024. package/src/components/ui/skeleton.tsx +15 -0
  1025. package/src/components/ui/slider.tsx +26 -0
  1026. package/src/components/ui/sonner.tsx +58 -0
  1027. package/src/components/ui/spinner.tsx +17 -0
  1028. package/src/components/ui/switch.tsx +27 -0
  1029. package/src/components/ui/table.tsx +117 -0
  1030. package/src/components/ui/tabs.tsx +53 -0
  1031. package/src/components/ui/textarea.tsx +23 -0
  1032. package/src/components/ui/toast.tsx +127 -0
  1033. package/src/components/ui/toaster.tsx +33 -0
  1034. package/src/components/ui/toggle-group.tsx +59 -0
  1035. package/src/components/ui/toggle.tsx +43 -0
  1036. package/src/components/ui/tooltip.tsx +28 -0
  1037. package/src/components/ui/use-toast.ts +3 -0
  1038. package/src/components/workspace-app-card.tsx +450 -0
  1039. package/src/components/workspace-resource-effective-stack.spec.tsx +126 -0
  1040. package/src/components/workspace-resource-effective-stack.tsx +142 -0
  1041. package/src/components/workspace-resource-impact-preview.spec.tsx +148 -0
  1042. package/src/components/workspace-resource-impact-preview.tsx +117 -0
  1043. package/src/config.ts +35 -0
  1044. package/src/db/index.ts +13 -0
  1045. package/src/db/migrations.spec.ts +80 -0
  1046. package/src/db/migrations.ts +224 -0
  1047. package/src/db/schema.ts +204 -0
  1048. package/src/hooks/use-mobile.tsx +21 -0
  1049. package/src/hooks/use-navigation-state.spec.ts +45 -0
  1050. package/src/hooks/use-navigation-state.ts +295 -0
  1051. package/src/hooks/use-toast.ts +188 -0
  1052. package/src/index.ts +19 -0
  1053. package/src/lib/automation-display.spec.ts +95 -0
  1054. package/src/lib/automation-display.ts +70 -0
  1055. package/src/lib/automations.ts +60 -0
  1056. package/src/lib/catch-all-target.spec.ts +156 -0
  1057. package/src/lib/catch-all-target.ts +125 -0
  1058. package/src/lib/overview-chat.spec.ts +63 -0
  1059. package/src/lib/overview-chat.ts +26 -0
  1060. package/src/lib/task-queue.spec.ts +57 -0
  1061. package/src/lib/task-queue.ts +72 -0
  1062. package/src/lib/thread-link-preview.ts +160 -0
  1063. package/src/lib/utils.ts +6 -0
  1064. package/src/lib/workspace-apps.ts +31 -0
  1065. package/src/routes/index.ts +64 -0
  1066. package/src/routes/pages/$appId.tsx +193 -0
  1067. package/src/routes/pages/_index.tsx +60 -0
  1068. package/src/routes/pages/agents.tsx +216 -0
  1069. package/src/routes/pages/approval.tsx +287 -0
  1070. package/src/routes/pages/approvals.tsx +158 -0
  1071. package/src/routes/pages/apps.$appId.tsx +124 -0
  1072. package/src/routes/pages/apps.tsx +396 -0
  1073. package/src/routes/pages/audit.tsx +42 -0
  1074. package/src/routes/pages/automations.tsx +280 -0
  1075. package/src/routes/pages/chat.tsx +194 -0
  1076. package/src/routes/pages/destinations.tsx +274 -0
  1077. package/src/routes/pages/dream-settings.spec.ts +131 -0
  1078. package/src/routes/pages/dream-settings.ts +103 -0
  1079. package/src/routes/pages/dreams.tsx +1837 -0
  1080. package/src/routes/pages/extensions.$id.tsx +9 -0
  1081. package/src/routes/pages/extensions._index.tsx +9 -0
  1082. package/src/routes/pages/identities.tsx +92 -0
  1083. package/src/routes/pages/integrations.tsx +451 -0
  1084. package/src/routes/pages/messaging.tsx +17 -0
  1085. package/src/routes/pages/metrics.tsx +777 -0
  1086. package/src/routes/pages/new-app.tsx +19 -0
  1087. package/src/routes/pages/overview.tsx +22 -0
  1088. package/src/routes/pages/settings.tsx +122 -0
  1089. package/src/routes/pages/team.tsx +9 -0
  1090. package/src/routes/pages/thread-debug.tsx +690 -0
  1091. package/src/routes/pages/tools.$id.tsx +9 -0
  1092. package/src/routes/pages/tools._index.tsx +9 -0
  1093. package/src/routes/pages/vault.tsx +874 -0
  1094. package/src/routes/pages/workspace.tsx +1162 -0
  1095. package/src/server/index.ts +79 -0
  1096. package/src/server/lib/app-creation-store.spec.ts +379 -0
  1097. package/src/server/lib/app-creation-store.ts +1933 -0
  1098. package/src/server/lib/dispatch-integrations.spec.ts +277 -0
  1099. package/src/server/lib/dispatch-integrations.ts +302 -0
  1100. package/src/server/lib/dispatch-remote-commands.spec.ts +168 -0
  1101. package/src/server/lib/dispatch-remote-commands.ts +375 -0
  1102. package/src/server/lib/dispatch-store.ts +927 -0
  1103. package/src/server/lib/dreams-store.spec.ts +1492 -0
  1104. package/src/server/lib/dreams-store.ts +3187 -0
  1105. package/src/server/lib/env-config.ts +49 -0
  1106. package/src/server/lib/mcp-access-store.spec.ts +59 -0
  1107. package/src/server/lib/mcp-access-store.ts +104 -0
  1108. package/src/server/lib/mcp-gateway.spec.ts +693 -0
  1109. package/src/server/lib/mcp-gateway.ts +627 -0
  1110. package/src/server/lib/onboarding-steps.ts +50 -0
  1111. package/src/server/lib/pre-auth-routing.ts +159 -0
  1112. package/src/server/lib/provider-api.ts +69 -0
  1113. package/src/server/lib/thread-debug-store.ts +784 -0
  1114. package/src/server/lib/thread-link-preview.spec.ts +127 -0
  1115. package/src/server/lib/thread-link-preview.ts +32 -0
  1116. package/src/server/lib/usage-metrics-store.spec.ts +102 -0
  1117. package/src/server/lib/usage-metrics-store.ts +659 -0
  1118. package/src/server/lib/vault-store.spec.ts +189 -0
  1119. package/src/server/lib/vault-store.ts +1234 -0
  1120. package/src/server/lib/workspace-resource-approval-lifecycle.spec.ts +227 -0
  1121. package/src/server/lib/workspace-resources-store.spec.ts +1108 -0
  1122. package/src/server/lib/workspace-resources-store.ts +1396 -0
  1123. package/src/server/plugins/agent-chat.ts +69 -0
  1124. package/src/server/plugins/auth.ts +35 -0
  1125. package/src/server/plugins/core-routes.ts +12 -0
  1126. package/src/server/plugins/db.ts +7 -0
  1127. package/src/server/plugins/integrations.ts +77 -0
  1128. package/src/styles/dispatch-css.spec.ts +65 -0
  1129. package/src/styles/dispatch.css +108 -0
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useActionQuery } from "@agent-native/core/client";
3
+ import { DispatchShell } from "../../components/dispatch-shell.js";
4
+ export function meta() {
5
+ return [{ title: "Audit — Dispatch" }];
6
+ }
7
+ export default function AuditRoute() {
8
+ const { data } = useActionQuery("list-dispatch-audit", { limit: 100 });
9
+ return (_jsx(DispatchShell, { title: "Audit", description: "Change history for routes, settings, and approvals.", children: _jsx("section", { className: "rounded-2xl border bg-card p-5", children: _jsxs("div", { className: "space-y-3", children: [(data || []).map((event) => (_jsxs("div", { className: "rounded-xl border bg-muted/30 px-4 py-3", children: [_jsx("div", { className: "text-sm font-medium text-foreground", children: event.summary }), _jsxs("div", { className: "mt-1 text-xs text-muted-foreground", children: [event.actor, " \u00B7 ", event.action, " \u00B7", " ", new Date(event.createdAt).toLocaleString()] })] }, event.id))), (data?.length || 0) === 0 && (_jsx("div", { className: "rounded-xl border border-dashed px-4 py-6 text-sm text-muted-foreground", children: "No audit entries yet." }))] }) }) }));
10
+ }
11
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/routes/pages/audit.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,MAAM,UAAU,IAAI;IAClB,OAAO,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU;IAChC,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAEvE,OAAO,CACL,KAAC,aAAa,IACZ,KAAK,EAAC,OAAO,EACb,WAAW,EAAC,qDAAqD,YAEjE,kBAAS,SAAS,EAAC,gCAAgC,YACjD,eAAK,SAAS,EAAC,WAAW,aACvB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAChC,eAEE,SAAS,EAAC,yCAAyC,aAEnD,cAAK,SAAS,EAAC,qCAAqC,YACjD,KAAK,CAAC,OAAO,GACV,EACN,eAAK,SAAS,EAAC,oCAAoC,aAChD,KAAK,CAAC,KAAK,cAAK,KAAK,CAAC,MAAM,aAAI,GAAG,EACnC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,IACvC,KATD,KAAK,CAAC,EAAE,CAUT,CACP,CAAC,EACD,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAC5B,cAAK,SAAS,EAAC,yEAAyE,sCAElF,CACP,IACG,GACE,GACI,CACjB,CAAC;AACJ,CAAC","sourcesContent":["import { useActionQuery } from \"@agent-native/core/client\";\r\n\r\nimport { DispatchShell } from \"../../components/dispatch-shell\";\r\n\r\nexport function meta() {\r\n return [{ title: \"Audit — Dispatch\" }];\r\n}\r\n\r\nexport default function AuditRoute() {\r\n const { data } = useActionQuery(\"list-dispatch-audit\", { limit: 100 });\r\n\r\n return (\r\n <DispatchShell\r\n title=\"Audit\"\r\n description=\"Change history for routes, settings, and approvals.\"\r\n >\r\n <section className=\"rounded-2xl border bg-card p-5\">\r\n <div className=\"space-y-3\">\r\n {(data || []).map((event: any) => (\r\n <div\r\n key={event.id}\r\n className=\"rounded-xl border bg-muted/30 px-4 py-3\"\r\n >\r\n <div className=\"text-sm font-medium text-foreground\">\r\n {event.summary}\r\n </div>\r\n <div className=\"mt-1 text-xs text-muted-foreground\">\r\n {event.actor} · {event.action} ·{\" \"}\r\n {new Date(event.createdAt).toLocaleString()}\r\n </div>\r\n </div>\r\n ))}\r\n {(data?.length || 0) === 0 && (\r\n <div className=\"rounded-xl border border-dashed px-4 py-6 text-sm text-muted-foreground\">\r\n No audit entries yet.\r\n </div>\r\n )}\r\n </div>\r\n </section>\r\n </DispatchShell>\r\n );\r\n}\r\n"]}
@@ -0,0 +1,5 @@
1
+ export declare function meta(): {
2
+ title: string;
3
+ }[];
4
+ export default function AutomationsRoute(): import("node_modules/@types/react").JSX.Element;
5
+ //# sourceMappingURL=automations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automations.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/automations.tsx"],"names":[],"mappings":"AAuCA,wBAAgB,IAAI;;IAEnB;AAoID,MAAM,CAAC,OAAO,UAAU,gBAAgB,oDA0GvC"}
@@ -0,0 +1,106 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { PromptComposer, sendToAgentChat, useChangeVersions, } from "@agent-native/core/client";
3
+ import { IconPlus, IconSettingsAutomation } from "@tabler/icons-react";
4
+ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
5
+ import { useMemo, useState } from "react";
6
+ import { toast } from "sonner";
7
+ import { DispatchShell } from "../../components/dispatch-shell.js";
8
+ import { Badge } from "../../components/ui/badge.js";
9
+ import { Button } from "../../components/ui/button.js";
10
+ import { Popover, PopoverContent, PopoverTrigger, } from "../../components/ui/popover.js";
11
+ import { Skeleton } from "../../components/ui/skeleton.js";
12
+ import { Switch } from "../../components/ui/switch.js";
13
+ import { automationIdentity, automationLastRun, automationNextRun, automationStatus, automationTarget, sortAutomations, } from "../../lib/automation-display.js";
14
+ import { listDispatchAutomations, setDispatchAutomationEnabled, } from "../../lib/automations.js";
15
+ import { cn } from "../../lib/utils.js";
16
+ const AUTOMATIONS_QUERY_KEY = ["dispatch-automations"];
17
+ export function meta() {
18
+ return [{ title: "Automations — Dispatch" }];
19
+ }
20
+ function StatusDot({ tone }) {
21
+ return (_jsx("span", { className: cn("size-2 shrink-0 rounded-full", tone === "success" && "bg-emerald-500", tone === "warning" && "bg-amber-500", tone === "danger" && "bg-destructive", tone === "muted" && "bg-muted-foreground/35", tone === "default" && "bg-primary") }));
22
+ }
23
+ function useAutomations() {
24
+ const version = useChangeVersions(["action", "screen-refresh"]);
25
+ return useQuery({
26
+ queryKey: [...AUTOMATIONS_QUERY_KEY, version],
27
+ queryFn: listDispatchAutomations,
28
+ placeholderData: (prev) => prev,
29
+ refetchInterval: 15_000,
30
+ staleTime: 5_000,
31
+ });
32
+ }
33
+ function useToggleAutomation() {
34
+ const queryClient = useQueryClient();
35
+ return useMutation({
36
+ mutationFn: setDispatchAutomationEnabled,
37
+ onMutate: async (input) => {
38
+ await queryClient.cancelQueries({ queryKey: AUTOMATIONS_QUERY_KEY });
39
+ const snapshots = queryClient.getQueriesData({
40
+ queryKey: AUTOMATIONS_QUERY_KEY,
41
+ });
42
+ queryClient.setQueriesData({ queryKey: AUTOMATIONS_QUERY_KEY }, (rows) => rows?.map((item) => automationIdentity(item) === automationIdentity(input)
43
+ ? { ...item, enabled: input.enabled }
44
+ : item));
45
+ return { snapshots };
46
+ },
47
+ onError: (err, _input, context) => {
48
+ for (const [queryKey, data] of context?.snapshots ?? []) {
49
+ queryClient.setQueryData(queryKey, data);
50
+ }
51
+ toast.error(`Could not update automation: ${err instanceof Error ? err.message : String(err)}`);
52
+ },
53
+ onSuccess: (updated) => {
54
+ queryClient.setQueriesData({ queryKey: AUTOMATIONS_QUERY_KEY }, (rows) => rows?.map((item) => automationIdentity(item) === automationIdentity(updated)
55
+ ? updated
56
+ : item));
57
+ },
58
+ onSettled: () => {
59
+ void queryClient.invalidateQueries({ queryKey: AUTOMATIONS_QUERY_KEY });
60
+ },
61
+ });
62
+ }
63
+ function CreateAutomationButton() {
64
+ const [open, setOpen] = useState(false);
65
+ const [scope, setScope] = useState("personal");
66
+ function handleSubmit(text) {
67
+ const trimmed = text.trim();
68
+ if (!trimmed)
69
+ return;
70
+ window.dispatchEvent(new CustomEvent("agent-panel:set-mode", {
71
+ detail: { mode: "chat" },
72
+ }));
73
+ sendToAgentChat({
74
+ message: trimmed,
75
+ context: `The user wants to create a new automation. Scope: ${scope}. Use manage-automations with action=define to create it. Ask clarifying questions if needed about what event to trigger on, conditions, and what actions to take.`,
76
+ submit: true,
77
+ newTab: true,
78
+ });
79
+ setOpen(false);
80
+ }
81
+ return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { size: "sm", children: [_jsx(IconPlus, { size: 14 }), "New automation"] }) }), _jsxs(PopoverContent, { align: "end", className: "w-[min(100vw-2rem,24rem)] p-3", children: [_jsx("p", { className: "pb-2 text-sm font-semibold text-foreground", children: "New automation" }), _jsx(PromptComposer, { autoFocus: true, placeholder: "Describe what you want to automate...", draftScope: "dispatch-automations:create", onSubmit: handleSubmit }), _jsxs("select", { value: scope, onChange: (event) => setScope(event.target.value), className: "mt-2 w-full cursor-pointer rounded-md border border-input bg-background px-3 py-1.5 text-xs text-foreground", children: [_jsx("option", { value: "personal", children: "Personal" }), _jsx("option", { value: "organization", children: "Organization" })] })] })] }));
82
+ }
83
+ export default function AutomationsRoute() {
84
+ const automationsQuery = useAutomations();
85
+ const toggleAutomation = useToggleAutomation();
86
+ const automations = automationsQuery.data ?? [];
87
+ const ordered = useMemo(() => sortAutomations(automations), [automations]);
88
+ const enabledCount = automations.filter((item) => item.enabled).length;
89
+ const errorCount = automations.filter((item) => item.enabled && item.lastStatus === "error").length;
90
+ const pendingToggleIdentity = toggleAutomation.isPending
91
+ ? toggleAutomation.variables
92
+ ? automationIdentity(toggleAutomation.variables)
93
+ : null
94
+ : null;
95
+ return (_jsx(DispatchShell, { title: "Automations", description: "See scheduled and event-triggered jobs, pause them, or ask the agent to create one.", children: _jsxs("section", { className: "flex flex-col gap-4", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2 text-sm text-muted-foreground", children: [_jsx(IconSettingsAutomation, { size: 16, className: "shrink-0" }), _jsxs("span", { children: [enabledCount, " enabled", errorCount > 0 ? ` · ${errorCount} errors` : ""] })] }), _jsx(CreateAutomationButton, {})] }), _jsx("div", { className: "divide-y rounded-lg border bg-card", children: automationsQuery.isLoading && ordered.length === 0 ? (Array.from({ length: 4 }).map((_, index) => (_jsxs("div", { className: "px-4 py-3", children: [_jsx(Skeleton, { className: "h-4 w-40" }), _jsx(Skeleton, { className: "mt-2 h-3 w-28" })] }, index)))) : ordered.length > 0 ? (ordered.map((item) => {
96
+ const status = automationStatus(item);
97
+ const canUpdate = item.canUpdate !== false;
98
+ const isToggling = pendingToggleIdentity === automationIdentity(item);
99
+ return (_jsxs("div", { className: "grid grid-cols-[minmax(0,1fr)_auto] gap-3 px-4 py-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx(StatusDot, { tone: status.tone }), _jsx("span", { className: "truncate text-sm font-medium text-foreground", children: item.name })] }), _jsx("div", { className: "mt-1 truncate text-xs text-muted-foreground", children: automationTarget(item) }), _jsxs("div", { className: "mt-1 flex flex-wrap gap-x-3 gap-y-1 text-[11px] text-muted-foreground", children: [_jsxs("span", { children: ["Last ", automationLastRun(item)] }), _jsxs("span", { children: ["Next ", automationNextRun(item)] })] }), item.lastError ? (_jsx("div", { className: "mt-1 truncate text-xs text-destructive", children: item.lastError })) : null] }), _jsxs("div", { className: "flex flex-col items-end gap-2", children: [_jsx(Badge, { variant: status.tone === "danger" ? "destructive" : "outline", className: "h-5", children: status.label }), _jsx(Switch, { checked: !!item.enabled, disabled: !canUpdate || isToggling, "aria-label": `${item.enabled ? "Disable" : "Enable"} automation ${item.name}`, onCheckedChange: (checked) => toggleAutomation.mutate({
100
+ owner: item.owner,
101
+ path: item.path,
102
+ enabled: checked,
103
+ }) })] })] }, item.id));
104
+ })) : (_jsx("div", { className: "px-4 py-10 text-center text-sm text-muted-foreground", children: "No automations yet. Create one here, or ask Dispatch to set up a scheduled or event-triggered job." })) })] }) }));
105
+ }
106
+ //# sourceMappingURL=automations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automations.js","sourceRoot":"","sources":["../../../src/routes/pages/automations.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\r\n PromptComposer,\r\n sendToAgentChat,\r\n useChangeVersions,\r\n} from \"@agent-native/core/client\";\r\nimport { IconPlus, IconSettingsAutomation } from \"@tabler/icons-react\";\r\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { useMemo, useState } from \"react\";\r\nimport { toast } from \"sonner\";\r\n\r\nimport { DispatchShell } from \"../../components/dispatch-shell\";\r\nimport { Badge } from \"../../components/ui/badge\";\r\nimport { Button } from \"../../components/ui/button\";\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from \"../../components/ui/popover\";\r\nimport { Skeleton } from \"../../components/ui/skeleton\";\r\nimport { Switch } from \"../../components/ui/switch\";\r\nimport {\r\n automationIdentity,\r\n automationLastRun,\r\n automationNextRun,\r\n automationStatus,\r\n automationTarget,\r\n sortAutomations,\r\n type AutomationStatusTone,\r\n} from \"../../lib/automation-display\";\r\nimport {\r\n listDispatchAutomations,\r\n setDispatchAutomationEnabled,\r\n type DispatchAutomationItem,\r\n type SetDispatchAutomationEnabledInput,\r\n} from \"../../lib/automations\";\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst AUTOMATIONS_QUERY_KEY = [\"dispatch-automations\"] as const;\r\n\r\nexport function meta() {\r\n return [{ title: \"Automations — Dispatch\" }];\r\n}\r\n\r\nfunction StatusDot({ tone }: { tone: AutomationStatusTone }) {\r\n return (\r\n <span\r\n className={cn(\r\n \"size-2 shrink-0 rounded-full\",\r\n tone === \"success\" && \"bg-emerald-500\",\r\n tone === \"warning\" && \"bg-amber-500\",\r\n tone === \"danger\" && \"bg-destructive\",\r\n tone === \"muted\" && \"bg-muted-foreground/35\",\r\n tone === \"default\" && \"bg-primary\",\r\n )}\r\n />\r\n );\r\n}\r\n\r\nfunction useAutomations() {\r\n const version = useChangeVersions([\"action\", \"screen-refresh\"]);\r\n return useQuery<DispatchAutomationItem[]>({\r\n queryKey: [...AUTOMATIONS_QUERY_KEY, version],\r\n queryFn: listDispatchAutomations,\r\n placeholderData: (prev) => prev,\r\n refetchInterval: 15_000,\r\n staleTime: 5_000,\r\n });\r\n}\r\n\r\nfunction useToggleAutomation() {\r\n const queryClient = useQueryClient();\r\n\r\n return useMutation({\r\n mutationFn: setDispatchAutomationEnabled,\r\n onMutate: async (input: SetDispatchAutomationEnabledInput) => {\r\n await queryClient.cancelQueries({ queryKey: AUTOMATIONS_QUERY_KEY });\r\n const snapshots = queryClient.getQueriesData<DispatchAutomationItem[]>({\r\n queryKey: AUTOMATIONS_QUERY_KEY,\r\n });\r\n\r\n queryClient.setQueriesData<DispatchAutomationItem[]>(\r\n { queryKey: AUTOMATIONS_QUERY_KEY },\r\n (rows) =>\r\n rows?.map((item) =>\r\n automationIdentity(item) === automationIdentity(input)\r\n ? { ...item, enabled: input.enabled }\r\n : item,\r\n ),\r\n );\r\n\r\n return { snapshots };\r\n },\r\n onError: (err, _input, context) => {\r\n for (const [queryKey, data] of context?.snapshots ?? []) {\r\n queryClient.setQueryData(queryKey, data);\r\n }\r\n toast.error(\r\n `Could not update automation: ${\r\n err instanceof Error ? err.message : String(err)\r\n }`,\r\n );\r\n },\r\n onSuccess: (updated) => {\r\n queryClient.setQueriesData<DispatchAutomationItem[]>(\r\n { queryKey: AUTOMATIONS_QUERY_KEY },\r\n (rows) =>\r\n rows?.map((item) =>\r\n automationIdentity(item) === automationIdentity(updated)\r\n ? updated\r\n : item,\r\n ),\r\n );\r\n },\r\n onSettled: () => {\r\n void queryClient.invalidateQueries({ queryKey: AUTOMATIONS_QUERY_KEY });\r\n },\r\n });\r\n}\r\n\r\nfunction CreateAutomationButton() {\r\n const [open, setOpen] = useState(false);\r\n const [scope, setScope] = useState<\"personal\" | \"organization\">(\"personal\");\r\n\r\n function handleSubmit(text: string) {\r\n const trimmed = text.trim();\r\n if (!trimmed) return;\r\n window.dispatchEvent(\r\n new CustomEvent(\"agent-panel:set-mode\", {\r\n detail: { mode: \"chat\" },\r\n }),\r\n );\r\n sendToAgentChat({\r\n message: trimmed,\r\n context: `The user wants to create a new automation. Scope: ${scope}. Use manage-automations with action=define to create it. Ask clarifying questions if needed about what event to trigger on, conditions, and what actions to take.`,\r\n submit: true,\r\n newTab: true,\r\n });\r\n setOpen(false);\r\n }\r\n\r\n return (\r\n <Popover open={open} onOpenChange={setOpen}>\r\n <PopoverTrigger asChild>\r\n <Button size=\"sm\">\r\n <IconPlus size={14} />\r\n New automation\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent align=\"end\" className=\"w-[min(100vw-2rem,24rem)] p-3\">\r\n <p className=\"pb-2 text-sm font-semibold text-foreground\">\r\n New automation\r\n </p>\r\n <PromptComposer\r\n autoFocus\r\n placeholder=\"Describe what you want to automate...\"\r\n draftScope=\"dispatch-automations:create\"\r\n onSubmit={handleSubmit}\r\n />\r\n <select\r\n value={scope}\r\n onChange={(event) =>\r\n setScope(event.target.value as \"personal\" | \"organization\")\r\n }\r\n className=\"mt-2 w-full cursor-pointer rounded-md border border-input bg-background px-3 py-1.5 text-xs text-foreground\"\r\n >\r\n <option value=\"personal\">Personal</option>\r\n <option value=\"organization\">Organization</option>\r\n </select>\r\n </PopoverContent>\r\n </Popover>\r\n );\r\n}\r\n\r\nexport default function AutomationsRoute() {\r\n const automationsQuery = useAutomations();\r\n const toggleAutomation = useToggleAutomation();\r\n const automations = automationsQuery.data ?? [];\r\n const ordered = useMemo(() => sortAutomations(automations), [automations]);\r\n const enabledCount = automations.filter((item) => item.enabled).length;\r\n const errorCount = automations.filter(\r\n (item) => item.enabled && item.lastStatus === \"error\",\r\n ).length;\r\n const pendingToggleIdentity = toggleAutomation.isPending\r\n ? toggleAutomation.variables\r\n ? automationIdentity(toggleAutomation.variables)\r\n : null\r\n : null;\r\n\r\n return (\r\n <DispatchShell\r\n title=\"Automations\"\r\n description=\"See scheduled and event-triggered jobs, pause them, or ask the agent to create one.\"\r\n >\r\n <section className=\"flex flex-col gap-4\">\r\n <div className=\"flex flex-wrap items-center justify-between gap-3\">\r\n <div className=\"flex min-w-0 items-center gap-2 text-sm text-muted-foreground\">\r\n <IconSettingsAutomation size={16} className=\"shrink-0\" />\r\n <span>\r\n {enabledCount} enabled\r\n {errorCount > 0 ? ` · ${errorCount} errors` : \"\"}\r\n </span>\r\n </div>\r\n <CreateAutomationButton />\r\n </div>\r\n\r\n <div className=\"divide-y rounded-lg border bg-card\">\r\n {automationsQuery.isLoading && ordered.length === 0 ? (\r\n Array.from({ length: 4 }).map((_, index) => (\r\n <div key={index} className=\"px-4 py-3\">\r\n <Skeleton className=\"h-4 w-40\" />\r\n <Skeleton className=\"mt-2 h-3 w-28\" />\r\n </div>\r\n ))\r\n ) : ordered.length > 0 ? (\r\n ordered.map((item) => {\r\n const status = automationStatus(item);\r\n const canUpdate = item.canUpdate !== false;\r\n const isToggling =\r\n pendingToggleIdentity === automationIdentity(item);\r\n return (\r\n <div\r\n key={item.id}\r\n className=\"grid grid-cols-[minmax(0,1fr)_auto] gap-3 px-4 py-3\"\r\n >\r\n <div className=\"min-w-0\">\r\n <div className=\"flex min-w-0 items-center gap-2\">\r\n <StatusDot tone={status.tone} />\r\n <span className=\"truncate text-sm font-medium text-foreground\">\r\n {item.name}\r\n </span>\r\n </div>\r\n <div className=\"mt-1 truncate text-xs text-muted-foreground\">\r\n {automationTarget(item)}\r\n </div>\r\n <div className=\"mt-1 flex flex-wrap gap-x-3 gap-y-1 text-[11px] text-muted-foreground\">\r\n <span>Last {automationLastRun(item)}</span>\r\n <span>Next {automationNextRun(item)}</span>\r\n </div>\r\n {item.lastError ? (\r\n <div className=\"mt-1 truncate text-xs text-destructive\">\r\n {item.lastError}\r\n </div>\r\n ) : null}\r\n </div>\r\n <div className=\"flex flex-col items-end gap-2\">\r\n <Badge\r\n variant={\r\n status.tone === \"danger\" ? \"destructive\" : \"outline\"\r\n }\r\n className=\"h-5\"\r\n >\r\n {status.label}\r\n </Badge>\r\n <Switch\r\n checked={!!item.enabled}\r\n disabled={!canUpdate || isToggling}\r\n aria-label={`${item.enabled ? \"Disable\" : \"Enable\"} automation ${item.name}`}\r\n onCheckedChange={(checked) =>\r\n toggleAutomation.mutate({\r\n owner: item.owner,\r\n path: item.path,\r\n enabled: checked,\r\n })\r\n }\r\n />\r\n </div>\r\n </div>\r\n );\r\n })\r\n ) : (\r\n <div className=\"px-4 py-10 text-center text-sm text-muted-foreground\">\r\n No automations yet. Create one here, or ask Dispatch to set up a\r\n scheduled or event-triggered job.\r\n </div>\r\n )}\r\n </div>\r\n </section>\r\n </DispatchShell>\r\n );\r\n}\r\n"]}
@@ -0,0 +1,5 @@
1
+ export declare function meta(): {
2
+ title: string;
3
+ }[];
4
+ export default function ChatRoute(): import("node_modules/@types/react").JSX.Element;
5
+ //# sourceMappingURL=chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/chat.tsx"],"names":[],"mappings":"AAmFA,wBAAgB,IAAI;;IAEnB;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,oDA0GhC"}
@@ -0,0 +1,115 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AgentChatSurface, appBasePath, appPath, markAgentChatHomeHandoff, } from "@agent-native/core/client";
3
+ import { useCallback, useEffect, useMemo, useRef, } from "react";
4
+ import { useLocation, useNavigate } from "react-router";
5
+ import { submitOverviewPrompt } from "../../lib/overview-chat.js";
6
+ function chatThreadPath(threadId) {
7
+ return threadId ? `/chat/${encodeURIComponent(threadId)}` : "/chat";
8
+ }
9
+ function stripBasePath(pathname) {
10
+ const basePath = appBasePath();
11
+ if (!basePath)
12
+ return pathname;
13
+ if (pathname === basePath)
14
+ return "/";
15
+ if (pathname.startsWith(`${basePath}/`)) {
16
+ return pathname.slice(basePath.length) || "/";
17
+ }
18
+ return pathname;
19
+ }
20
+ // The chat surface renders for both `/chat` and the `/chat/:threadId` deep
21
+ // link. The thread id is read from the pathname (not `useParams`) because the
22
+ // param is owned by the nested deep-link route, not this leaf component.
23
+ function threadIdFromPath(pathname) {
24
+ const match = stripBasePath(pathname).match(/^\/chat\/([^/]+)/);
25
+ if (!match)
26
+ return null;
27
+ try {
28
+ const value = decodeURIComponent(match[1]).trim();
29
+ return value || null;
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
35
+ // Mirror the basename handling Dispatch's nav links use: pass a router-local
36
+ // path when the live URL is already under the mount, otherwise prefix it.
37
+ function dispatchNavTarget(path) {
38
+ if (typeof window === "undefined")
39
+ return path;
40
+ const basePath = appBasePath();
41
+ if (!basePath)
42
+ return path;
43
+ const pathname = window.location.pathname;
44
+ const routerHasBasename = pathname === basePath || pathname.startsWith(`${basePath}/`);
45
+ return routerHasBasename ? path : appPath(path);
46
+ }
47
+ function DispatchAgentChatSurface(props) {
48
+ return _jsx(AgentChatSurface, { ...props });
49
+ }
50
+ export function meta() {
51
+ return [{ title: "Chat — Dispatch" }];
52
+ }
53
+ export default function ChatRoute() {
54
+ const location = useLocation();
55
+ const navigate = useNavigate();
56
+ const routeThreadId = threadIdFromPath(location.pathname);
57
+ const handledStateIds = useRef(new Set());
58
+ const navigateThreadUrl = useCallback((path, options) => navigate(dispatchNavTarget(path), options), [navigate]);
59
+ const threadUrlSync = useMemo(() => ({
60
+ routeThreadId: routeThreadId ?? null,
61
+ getPath: chatThreadPath,
62
+ navigate: navigateThreadUrl,
63
+ }), [routeThreadId, navigateThreadUrl]);
64
+ const state = location.state;
65
+ const prompt = state?.dispatchPrompt;
66
+ const thread = state?.dispatchThread;
67
+ useEffect(() => {
68
+ const message = prompt?.message?.trim();
69
+ const threadId = thread?.threadId?.trim();
70
+ if (!message && !threadId)
71
+ return;
72
+ const stateId = String(prompt?.id ?? thread?.id ?? `${message ?? ""}:${threadId ?? ""}`);
73
+ if (handledStateIds.current.has(stateId))
74
+ return;
75
+ handledStateIds.current.add(stateId);
76
+ const timer = window.setTimeout(() => {
77
+ if (threadId) {
78
+ window.dispatchEvent(new CustomEvent("agent-chat:open-thread", {
79
+ detail: { threadId },
80
+ }));
81
+ }
82
+ if (message) {
83
+ submitOverviewPrompt(message, prompt?.selectedModel, {
84
+ openSidebar: false,
85
+ });
86
+ }
87
+ navigate(`${location.pathname}${location.search}${location.hash}`, {
88
+ replace: true,
89
+ state: null,
90
+ });
91
+ }, 0);
92
+ return () => window.clearTimeout(timer);
93
+ }, [
94
+ location.hash,
95
+ location.pathname,
96
+ location.search,
97
+ navigate,
98
+ prompt?.id,
99
+ prompt?.message,
100
+ prompt?.selectedModel,
101
+ thread?.id,
102
+ thread?.threadId,
103
+ ]);
104
+ useEffect(() => {
105
+ function handleChatRunning(event) {
106
+ const detail = event.detail;
107
+ if (detail?.isRunning === true)
108
+ markAgentChatHomeHandoff("dispatch");
109
+ }
110
+ window.addEventListener("agentNative.chatRunning", handleChatRunning);
111
+ return () => window.removeEventListener("agentNative.chatRunning", handleChatRunning);
112
+ }, []);
113
+ return (_jsx("div", { className: "flex h-full min-h-0 flex-col bg-background", children: _jsx(DispatchAgentChatSurface, { mode: "page", chatViewTransition: true, className: "dispatch-chat-panel", defaultMode: "chat", storageKey: "dispatch", threadUrlSync: threadUrlSync, showHeader: false, showTabBar: false, dynamicSuggestions: false, suggestions: [], emptyStateText: "Ask Dispatch to create apps, route work, or manage the workspace.", emptyStateDisplay: "hidden", centerComposerWhenEmpty: true, composerLayoutVariant: "hero", composerPlaceholder: "Ask Dispatch...", composerSlot: _jsxs("div", { className: "dispatch-chat-intro", children: [_jsx("h1", { children: "What should Dispatch do next?" }), _jsx("p", { children: "Create apps, manage shared keys, and route work across agents." })] }) }) }));
114
+ }
115
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/routes/pages/chat.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\r\n AgentChatSurface,\r\n appBasePath,\r\n appPath,\r\n markAgentChatHomeHandoff,\r\n} from \"@agent-native/core/client\";\r\nimport {\r\n useCallback,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n type ComponentProps,\r\n} from \"react\";\r\nimport { useLocation, useNavigate } from \"react-router\";\r\n\r\nimport { submitOverviewPrompt } from \"../../lib/overview-chat\";\r\n\r\nfunction chatThreadPath(threadId: string | null): string {\r\n return threadId ? `/chat/${encodeURIComponent(threadId)}` : \"/chat\";\r\n}\r\n\r\nfunction stripBasePath(pathname: string): string {\r\n const basePath = appBasePath();\r\n if (!basePath) return pathname;\r\n if (pathname === basePath) return \"/\";\r\n if (pathname.startsWith(`${basePath}/`)) {\r\n return pathname.slice(basePath.length) || \"/\";\r\n }\r\n return pathname;\r\n}\r\n\r\n// The chat surface renders for both `/chat` and the `/chat/:threadId` deep\r\n// link. The thread id is read from the pathname (not `useParams`) because the\r\n// param is owned by the nested deep-link route, not this leaf component.\r\nfunction threadIdFromPath(pathname: string): string | null {\r\n const match = stripBasePath(pathname).match(/^\\/chat\\/([^/]+)/);\r\n if (!match) return null;\r\n try {\r\n const value = decodeURIComponent(match[1]).trim();\r\n return value || null;\r\n } catch {\r\n return null;\r\n }\r\n}\r\n\r\n// Mirror the basename handling Dispatch's nav links use: pass a router-local\r\n// path when the live URL is already under the mount, otherwise prefix it.\r\nfunction dispatchNavTarget(path: string): string {\r\n if (typeof window === \"undefined\") return path;\r\n const basePath = appBasePath();\r\n if (!basePath) return path;\r\n const pathname = window.location.pathname;\r\n const routerHasBasename =\r\n pathname === basePath || pathname.startsWith(`${basePath}/`);\r\n return routerHasBasename ? path : appPath(path);\r\n}\r\n\r\ninterface DispatchThreadUrlSync {\r\n routeThreadId: string | null;\r\n getPath: (threadId: string | null) => string;\r\n navigate: (path: string, options?: { replace?: boolean }) => void;\r\n}\r\n\r\ntype DispatchAgentChatSurfaceProps = ComponentProps<typeof AgentChatSurface> & {\r\n threadUrlSync?: DispatchThreadUrlSync;\r\n};\r\n\r\nfunction DispatchAgentChatSurface(props: DispatchAgentChatSurfaceProps) {\r\n return <AgentChatSurface {...props} />;\r\n}\r\n\r\ninterface DispatchChatLocationState {\r\n dispatchPrompt?: {\r\n id?: string | number;\r\n message?: string;\r\n selectedModel?: string | null;\r\n };\r\n dispatchThread?: {\r\n id?: string | number;\r\n threadId?: string;\r\n };\r\n}\r\n\r\nexport function meta() {\r\n return [{ title: \"Chat — Dispatch\" }];\r\n}\r\n\r\nexport default function ChatRoute() {\r\n const location = useLocation();\r\n const navigate = useNavigate();\r\n const routeThreadId = threadIdFromPath(location.pathname);\r\n const handledStateIds = useRef(new Set<string>());\r\n\r\n const navigateThreadUrl = useCallback(\r\n (path: string, options?: { replace?: boolean }) =>\r\n navigate(dispatchNavTarget(path), options),\r\n [navigate],\r\n );\r\n const threadUrlSync = useMemo<DispatchThreadUrlSync>(\r\n () => ({\r\n routeThreadId: routeThreadId ?? null,\r\n getPath: chatThreadPath,\r\n navigate: navigateThreadUrl,\r\n }),\r\n [routeThreadId, navigateThreadUrl],\r\n );\r\n const state = location.state as DispatchChatLocationState | null;\r\n const prompt = state?.dispatchPrompt;\r\n const thread = state?.dispatchThread;\r\n\r\n useEffect(() => {\r\n const message = prompt?.message?.trim();\r\n const threadId = thread?.threadId?.trim();\r\n if (!message && !threadId) return;\r\n\r\n const stateId = String(\r\n prompt?.id ?? thread?.id ?? `${message ?? \"\"}:${threadId ?? \"\"}`,\r\n );\r\n if (handledStateIds.current.has(stateId)) return;\r\n handledStateIds.current.add(stateId);\r\n\r\n const timer = window.setTimeout(() => {\r\n if (threadId) {\r\n window.dispatchEvent(\r\n new CustomEvent(\"agent-chat:open-thread\", {\r\n detail: { threadId },\r\n }),\r\n );\r\n }\r\n if (message) {\r\n submitOverviewPrompt(message, prompt?.selectedModel, {\r\n openSidebar: false,\r\n });\r\n }\r\n navigate(`${location.pathname}${location.search}${location.hash}`, {\r\n replace: true,\r\n state: null,\r\n });\r\n }, 0);\r\n\r\n return () => window.clearTimeout(timer);\r\n }, [\r\n location.hash,\r\n location.pathname,\r\n location.search,\r\n navigate,\r\n prompt?.id,\r\n prompt?.message,\r\n prompt?.selectedModel,\r\n thread?.id,\r\n thread?.threadId,\r\n ]);\r\n\r\n useEffect(() => {\r\n function handleChatRunning(event: Event) {\r\n const detail = (event as CustomEvent).detail;\r\n if (detail?.isRunning === true) markAgentChatHomeHandoff(\"dispatch\");\r\n }\r\n\r\n window.addEventListener(\"agentNative.chatRunning\", handleChatRunning);\r\n return () =>\r\n window.removeEventListener(\"agentNative.chatRunning\", handleChatRunning);\r\n }, []);\r\n\r\n return (\r\n <div className=\"flex h-full min-h-0 flex-col bg-background\">\r\n <DispatchAgentChatSurface\r\n mode=\"page\"\r\n chatViewTransition\r\n className=\"dispatch-chat-panel\"\r\n defaultMode=\"chat\"\r\n storageKey=\"dispatch\"\r\n threadUrlSync={threadUrlSync}\r\n showHeader={false}\r\n showTabBar={false}\r\n dynamicSuggestions={false}\r\n suggestions={[]}\r\n emptyStateText=\"Ask Dispatch to create apps, route work, or manage the workspace.\"\r\n emptyStateDisplay=\"hidden\"\r\n centerComposerWhenEmpty\r\n composerLayoutVariant=\"hero\"\r\n composerPlaceholder=\"Ask Dispatch...\"\r\n composerSlot={\r\n <div className=\"dispatch-chat-intro\">\r\n <h1>What should Dispatch do next?</h1>\r\n <p>\r\n Create apps, manage shared keys, and route work across agents.\r\n </p>\r\n </div>\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n"]}
@@ -0,0 +1,5 @@
1
+ export declare function meta(): {
2
+ title: string;
3
+ }[];
4
+ export default function DestinationsRoute(): import("node_modules/@types/react").JSX.Element;
5
+ //# sourceMappingURL=destinations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destinations.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/destinations.tsx"],"names":[],"mappings":"AAgCA,wBAAgB,IAAI;;IAEnB;AA4CD,MAAM,CAAC,OAAO,UAAU,iBAAiB,oDAmMxC"}
@@ -0,0 +1,90 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useActionMutation, useActionQuery, useT, } from "@agent-native/core/client";
3
+ import { useState } from "react";
4
+ import { toast } from "sonner";
5
+ import { DispatchShell } from "../../components/dispatch-shell.js";
6
+ import { TaskQueueHealth } from "../../components/task-queue-health.js";
7
+ import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "../../components/ui/alert-dialog.js";
8
+ import { Button } from "../../components/ui/button.js";
9
+ import { Input } from "../../components/ui/input.js";
10
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "../../components/ui/select.js";
11
+ import { Textarea } from "../../components/ui/textarea.js";
12
+ export function meta() {
13
+ return [{ title: "Destinations — Dispatch" }];
14
+ }
15
+ function QuickSendRow({ destination, }) {
16
+ const t = useT();
17
+ const [text, setText] = useState("");
18
+ const send = useActionMutation("send-platform-message", {
19
+ onSuccess: () => {
20
+ toast.success(t("dispatch.pages.messageSent"));
21
+ setText("");
22
+ },
23
+ onError: (error) => {
24
+ toast.error(error instanceof Error
25
+ ? error.message
26
+ : t("dispatch.pages.unableToSendMessage"));
27
+ },
28
+ });
29
+ return (_jsxs("div", { className: "mt-3 flex gap-2", children: [_jsx(Input, { value: text, onChange: (event) => setText(event.target.value), placeholder: t("dispatch.pages.quickTestMessage") }), _jsx(Button, { onClick: () => send.mutate({
30
+ destinationId: destination.id,
31
+ text: text || `Test message to ${destination.name}`,
32
+ }), disabled: send.isPending, children: t("dispatch.pages.send") })] }));
33
+ }
34
+ export default function DestinationsRoute() {
35
+ const t = useT();
36
+ const { data } = useActionQuery("list-destinations", {});
37
+ const [form, setForm] = useState({
38
+ name: "",
39
+ platform: "slack",
40
+ destination: "",
41
+ threadRef: "",
42
+ notes: "",
43
+ });
44
+ const upsert = useActionMutation("upsert-destination", {
45
+ onSuccess: () => {
46
+ toast.success(t("dispatch.pages.destinationSaved"));
47
+ setForm((current) => ({
48
+ ...current,
49
+ name: "",
50
+ destination: "",
51
+ threadRef: "",
52
+ notes: "",
53
+ }));
54
+ },
55
+ });
56
+ const remove = useActionMutation("delete-destination", {
57
+ onSuccess: () => toast.success(t("dispatch.pages.destinationRemoved")),
58
+ });
59
+ return (_jsx(DispatchShell, { title: t("dispatch.nav.destinations"), description: t("dispatch.pages.destinationsDescription"), children: _jsxs("div", { className: "flex flex-col gap-4", children: [_jsx(TaskQueueHealth, {}), _jsxs("div", { className: "grid gap-4 xl:grid-cols-[minmax(0,1.1fr)_minmax(0,0.9fr)]", children: [_jsxs("section", { className: "rounded-2xl border bg-card p-5", children: [_jsx("h2", { className: "text-lg font-semibold text-foreground", children: t("dispatch.pages.savedDestinations") }), _jsxs("div", { className: "mt-4 space-y-3", children: [(data || []).map((destination) => (_jsxs("div", { className: "rounded-xl border bg-muted/30 p-4", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { children: [_jsx("div", { className: "text-sm font-medium text-foreground", children: destination.name }), _jsxs("div", { className: "mt-1 text-xs text-muted-foreground", children: [destination.platform, " \u00B7 ", destination.destination, destination.threadRef
60
+ ? ` · thread ${destination.threadRef}`
61
+ : ""] }), destination.notes && (_jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: destination.notes }))] }), _jsxs(AlertDialog, { children: [_jsx(AlertDialogTrigger, { asChild: true, children: _jsx(Button, { variant: "outline", size: "sm", children: t("dispatch.pages.delete") }) }), _jsxs(AlertDialogContent, { children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: t("dispatch.pages.deleteDestinationTitle") }), _jsx(AlertDialogDescription, { children: t("dispatch.pages.deleteDestinationDescription", {
62
+ name: destination.name,
63
+ }) })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { children: t("dispatch.pages.cancel") }), _jsx(AlertDialogAction, { onClick: () => remove.mutate({ id: destination.id }), children: t("dispatch.pages.delete") })] })] })] })] }), _jsx(QuickSendRow, { destination: destination })] }, destination.id))), (data?.length || 0) === 0 && (_jsx("div", { className: "rounded-xl border border-dashed px-4 py-8 text-sm text-muted-foreground", children: t("dispatch.pages.noDestinations") }))] })] }), _jsxs("section", { className: "rounded-2xl border bg-card p-5", children: [_jsx("h2", { className: "text-lg font-semibold text-foreground", children: t("dispatch.pages.addDestination") }), _jsxs("div", { className: "mt-4 space-y-3", children: [_jsx(Input, { value: form.name, onChange: (event) => setForm((current) => ({
64
+ ...current,
65
+ name: event.target.value,
66
+ })), placeholder: t("dispatch.pages.dailyDigestChannel") }), _jsxs(Select, { value: form.platform, onValueChange: (value) => setForm((current) => ({
67
+ ...current,
68
+ platform: value,
69
+ })), children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "slack", children: "Slack" }), _jsx(SelectItem, { value: "telegram", children: "Telegram" }), _jsx(SelectItem, { value: "email", children: "Email" })] })] }), _jsx(Input, { value: form.destination, onChange: (event) => setForm((current) => ({
70
+ ...current,
71
+ destination: event.target.value,
72
+ })), placeholder: form.platform === "slack"
73
+ ? "C0123456789"
74
+ : form.platform === "email"
75
+ ? "teammate+qa@agent-native.test"
76
+ : "123456789" }), _jsx(Input, { value: form.threadRef, onChange: (event) => setForm((current) => ({
77
+ ...current,
78
+ threadRef: event.target.value,
79
+ })), placeholder: t("dispatch.pages.optionalThreadOrTopicId") }), _jsx(Textarea, { value: form.notes, onChange: (event) => setForm((current) => ({
80
+ ...current,
81
+ notes: event.target.value,
82
+ })), placeholder: t("dispatch.pages.destinationNotes") }), _jsx(Button, { className: "w-full", onClick: () => upsert.mutate({
83
+ name: form.name,
84
+ platform: form.platform,
85
+ destination: form.destination,
86
+ threadRef: form.threadRef || undefined,
87
+ notes: form.notes || undefined,
88
+ }), disabled: !form.name || !form.destination, children: t("dispatch.pages.saveDestination") })] })] })] })] }) }));
89
+ }
90
+ //# sourceMappingURL=destinations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destinations.js","sourceRoot":"","sources":["../../../src/routes/pages/destinations.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\r\n useActionMutation,\r\n useActionQuery,\r\n useT,\r\n} from \"@agent-native/core/client\";\r\nimport { useState } from \"react\";\r\nimport { toast } from \"sonner\";\r\n\r\nimport { DispatchShell } from \"../../components/dispatch-shell\";\r\nimport { TaskQueueHealth } from \"../../components/task-queue-health\";\r\nimport {\r\n AlertDialog,\r\n AlertDialogAction,\r\n AlertDialogCancel,\r\n AlertDialogContent,\r\n AlertDialogDescription,\r\n AlertDialogFooter,\r\n AlertDialogHeader,\r\n AlertDialogTitle,\r\n AlertDialogTrigger,\r\n} from \"../../components/ui/alert-dialog\";\r\nimport { Button } from \"../../components/ui/button\";\r\nimport { Input } from \"../../components/ui/input\";\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from \"../../components/ui/select\";\r\nimport { Textarea } from \"../../components/ui/textarea\";\r\n\r\nexport function meta() {\r\n return [{ title: \"Destinations — Dispatch\" }];\r\n}\r\n\r\nfunction QuickSendRow({\r\n destination,\r\n}: {\r\n destination: { id: string; name: string };\r\n}) {\r\n const t = useT();\r\n const [text, setText] = useState(\"\");\r\n const send = useActionMutation(\"send-platform-message\", {\r\n onSuccess: () => {\r\n toast.success(t(\"dispatch.pages.messageSent\"));\r\n setText(\"\");\r\n },\r\n onError: (error) => {\r\n toast.error(\r\n error instanceof Error\r\n ? error.message\r\n : t(\"dispatch.pages.unableToSendMessage\"),\r\n );\r\n },\r\n });\r\n return (\r\n <div className=\"mt-3 flex gap-2\">\r\n <Input\r\n value={text}\r\n onChange={(event) => setText(event.target.value)}\r\n placeholder={t(\"dispatch.pages.quickTestMessage\")}\r\n />\r\n <Button\r\n onClick={() =>\r\n send.mutate({\r\n destinationId: destination.id,\r\n text: text || `Test message to ${destination.name}`,\r\n })\r\n }\r\n disabled={send.isPending}\r\n >\r\n {t(\"dispatch.pages.send\")}\r\n </Button>\r\n </div>\r\n );\r\n}\r\n\r\nexport default function DestinationsRoute() {\r\n const t = useT();\r\n const { data } = useActionQuery(\"list-destinations\", {});\r\n const [form, setForm] = useState({\r\n name: \"\",\r\n platform: \"slack\",\r\n destination: \"\",\r\n threadRef: \"\",\r\n notes: \"\",\r\n });\r\n\r\n const upsert = useActionMutation(\"upsert-destination\", {\r\n onSuccess: () => {\r\n toast.success(t(\"dispatch.pages.destinationSaved\"));\r\n setForm((current) => ({\r\n ...current,\r\n name: \"\",\r\n destination: \"\",\r\n threadRef: \"\",\r\n notes: \"\",\r\n }));\r\n },\r\n });\r\n const remove = useActionMutation(\"delete-destination\", {\r\n onSuccess: () => toast.success(t(\"dispatch.pages.destinationRemoved\")),\r\n });\r\n\r\n return (\r\n <DispatchShell\r\n title={t(\"dispatch.nav.destinations\")}\r\n description={t(\"dispatch.pages.destinationsDescription\")}\r\n >\r\n <div className=\"flex flex-col gap-4\">\r\n <TaskQueueHealth />\r\n <div className=\"grid gap-4 xl:grid-cols-[minmax(0,1.1fr)_minmax(0,0.9fr)]\">\r\n <section className=\"rounded-2xl border bg-card p-5\">\r\n <h2 className=\"text-lg font-semibold text-foreground\">\r\n {t(\"dispatch.pages.savedDestinations\")}\r\n </h2>\r\n <div className=\"mt-4 space-y-3\">\r\n {(data || []).map((destination: any) => (\r\n <div\r\n key={destination.id}\r\n className=\"rounded-xl border bg-muted/30 p-4\"\r\n >\r\n <div className=\"flex items-start justify-between gap-3\">\r\n <div>\r\n <div className=\"text-sm font-medium text-foreground\">\r\n {destination.name}\r\n </div>\r\n <div className=\"mt-1 text-xs text-muted-foreground\">\r\n {destination.platform} · {destination.destination}\r\n {destination.threadRef\r\n ? ` · thread ${destination.threadRef}`\r\n : \"\"}\r\n </div>\r\n {destination.notes && (\r\n <p className=\"mt-2 text-sm text-muted-foreground\">\r\n {destination.notes}\r\n </p>\r\n )}\r\n </div>\r\n <AlertDialog>\r\n <AlertDialogTrigger asChild>\r\n <Button variant=\"outline\" size=\"sm\">\r\n {t(\"dispatch.pages.delete\")}\r\n </Button>\r\n </AlertDialogTrigger>\r\n <AlertDialogContent>\r\n <AlertDialogHeader>\r\n <AlertDialogTitle>\r\n {t(\"dispatch.pages.deleteDestinationTitle\")}\r\n </AlertDialogTitle>\r\n <AlertDialogDescription>\r\n {t(\"dispatch.pages.deleteDestinationDescription\", {\r\n name: destination.name,\r\n })}\r\n </AlertDialogDescription>\r\n </AlertDialogHeader>\r\n <AlertDialogFooter>\r\n <AlertDialogCancel>\r\n {t(\"dispatch.pages.cancel\")}\r\n </AlertDialogCancel>\r\n <AlertDialogAction\r\n onClick={() =>\r\n remove.mutate({ id: destination.id })\r\n }\r\n >\r\n {t(\"dispatch.pages.delete\")}\r\n </AlertDialogAction>\r\n </AlertDialogFooter>\r\n </AlertDialogContent>\r\n </AlertDialog>\r\n </div>\r\n <QuickSendRow destination={destination} />\r\n </div>\r\n ))}\r\n {(data?.length || 0) === 0 && (\r\n <div className=\"rounded-xl border border-dashed px-4 py-8 text-sm text-muted-foreground\">\r\n {t(\"dispatch.pages.noDestinations\")}\r\n </div>\r\n )}\r\n </div>\r\n </section>\r\n\r\n <section className=\"rounded-2xl border bg-card p-5\">\r\n <h2 className=\"text-lg font-semibold text-foreground\">\r\n {t(\"dispatch.pages.addDestination\")}\r\n </h2>\r\n <div className=\"mt-4 space-y-3\">\r\n <Input\r\n value={form.name}\r\n onChange={(event) =>\r\n setForm((current) => ({\r\n ...current,\r\n name: event.target.value,\r\n }))\r\n }\r\n placeholder={t(\"dispatch.pages.dailyDigestChannel\")}\r\n />\r\n <Select\r\n value={form.platform}\r\n onValueChange={(value) =>\r\n setForm((current) => ({\r\n ...current,\r\n platform: value,\r\n }))\r\n }\r\n >\r\n <SelectTrigger>\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n <SelectItem value=\"slack\">Slack</SelectItem>\r\n <SelectItem value=\"telegram\">Telegram</SelectItem>\r\n <SelectItem value=\"email\">Email</SelectItem>\r\n </SelectContent>\r\n </Select>\r\n <Input\r\n value={form.destination}\r\n onChange={(event) =>\r\n setForm((current) => ({\r\n ...current,\r\n destination: event.target.value,\r\n }))\r\n }\r\n placeholder={\r\n form.platform === \"slack\"\r\n ? \"C0123456789\"\r\n : form.platform === \"email\"\r\n ? \"teammate+qa@agent-native.test\"\r\n : \"123456789\"\r\n }\r\n />\r\n <Input\r\n value={form.threadRef}\r\n onChange={(event) =>\r\n setForm((current) => ({\r\n ...current,\r\n threadRef: event.target.value,\r\n }))\r\n }\r\n placeholder={t(\"dispatch.pages.optionalThreadOrTopicId\")}\r\n />\r\n <Textarea\r\n value={form.notes}\r\n onChange={(event) =>\r\n setForm((current) => ({\r\n ...current,\r\n notes: event.target.value,\r\n }))\r\n }\r\n placeholder={t(\"dispatch.pages.destinationNotes\")}\r\n />\r\n <Button\r\n className=\"w-full\"\r\n onClick={() =>\r\n upsert.mutate({\r\n name: form.name,\r\n platform: form.platform as \"slack\" | \"telegram\" | \"email\",\r\n destination: form.destination,\r\n threadRef: form.threadRef || undefined,\r\n notes: form.notes || undefined,\r\n })\r\n }\r\n disabled={!form.name || !form.destination}\r\n >\r\n {t(\"dispatch.pages.saveDestination\")}\r\n </Button>\r\n </div>\r\n </section>\r\n </div>\r\n </div>\r\n </DispatchShell>\r\n );\r\n}\r\n"]}
@@ -0,0 +1,34 @@
1
+ export interface DreamSettings {
2
+ enabled: boolean;
3
+ schedule: string;
4
+ sourceId: string;
5
+ sourceIds?: string[];
6
+ allSources: boolean;
7
+ query?: string | null;
8
+ limit: number;
9
+ sourceTimeoutMs: number;
10
+ sourceConcurrency?: number;
11
+ sourceStartStaggerMs?: number;
12
+ threadConcurrency?: number;
13
+ threadTimeoutMs?: number;
14
+ minCandidateCount: number;
15
+ }
16
+ export interface DreamSettingsDraft {
17
+ enabled: boolean;
18
+ schedule: string;
19
+ sourceId: string;
20
+ sourceIdsText: string;
21
+ allSources: boolean;
22
+ query: string;
23
+ limit: string;
24
+ sourceTimeoutMs: string;
25
+ sourceConcurrency: string;
26
+ sourceStartStaggerMs: string;
27
+ threadConcurrency: string;
28
+ threadTimeoutMs: string;
29
+ minCandidateCount: string;
30
+ }
31
+ export declare function dreamSettingsToDraft(settings: DreamSettings | null | undefined): DreamSettingsDraft;
32
+ export declare function splitSourceIds(value: string): string[];
33
+ export declare function dreamSettingsUpdateFromDraft(draft: DreamSettingsDraft): Partial<DreamSettings>;
34
+ //# sourceMappingURL=dream-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dream-settings.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/dream-settings.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GACzC,kBAAkB,CAgBpB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAKtD;AASD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,aAAa,CAAC,CAkCxB"}
@@ -0,0 +1,68 @@
1
+ export function dreamSettingsToDraft(settings) {
2
+ return {
3
+ enabled: settings?.enabled ?? false,
4
+ schedule: settings?.schedule ?? "0 9 * * 1",
5
+ sourceId: settings?.sourceId ?? "all",
6
+ sourceIdsText: (settings?.sourceIds ?? []).join("\n"),
7
+ allSources: settings?.allSources ?? true,
8
+ query: settings?.query ?? "",
9
+ limit: String(settings?.limit ?? 8),
10
+ sourceTimeoutMs: String(settings?.sourceTimeoutMs ?? 30_000),
11
+ sourceConcurrency: String(settings?.sourceConcurrency ?? 2),
12
+ sourceStartStaggerMs: String(settings?.sourceStartStaggerMs ?? 250),
13
+ threadConcurrency: String(settings?.threadConcurrency ?? 3),
14
+ threadTimeoutMs: String(settings?.threadTimeoutMs ?? 8_000),
15
+ minCandidateCount: String(settings?.minCandidateCount ?? 1),
16
+ };
17
+ }
18
+ export function splitSourceIds(value) {
19
+ return value
20
+ .split(/[\n,]/)
21
+ .map((item) => item.trim())
22
+ .filter(Boolean);
23
+ }
24
+ function numberOrUndefined(value) {
25
+ const trimmed = value.trim();
26
+ if (!trimmed)
27
+ return undefined;
28
+ const numeric = Number(trimmed);
29
+ return Number.isFinite(numeric) ? numeric : undefined;
30
+ }
31
+ export function dreamSettingsUpdateFromDraft(draft) {
32
+ const sourceIds = splitSourceIds(draft.sourceIdsText);
33
+ const update = {
34
+ enabled: draft.enabled,
35
+ schedule: draft.schedule.trim(),
36
+ sourceId: draft.sourceId.trim() || (draft.allSources ? "all" : "current"),
37
+ sourceIds,
38
+ allSources: draft.allSources,
39
+ query: draft.query.trim(),
40
+ };
41
+ const limit = numberOrUndefined(draft.limit);
42
+ if (limit !== undefined)
43
+ update.limit = limit;
44
+ const sourceTimeoutMs = numberOrUndefined(draft.sourceTimeoutMs);
45
+ if (sourceTimeoutMs !== undefined)
46
+ update.sourceTimeoutMs = sourceTimeoutMs;
47
+ const sourceConcurrency = numberOrUndefined(draft.sourceConcurrency);
48
+ if (sourceConcurrency !== undefined) {
49
+ update.sourceConcurrency = sourceConcurrency;
50
+ }
51
+ const sourceStartStaggerMs = numberOrUndefined(draft.sourceStartStaggerMs);
52
+ if (sourceStartStaggerMs !== undefined) {
53
+ update.sourceStartStaggerMs = sourceStartStaggerMs;
54
+ }
55
+ const threadConcurrency = numberOrUndefined(draft.threadConcurrency);
56
+ if (threadConcurrency !== undefined) {
57
+ update.threadConcurrency = threadConcurrency;
58
+ }
59
+ const threadTimeoutMs = numberOrUndefined(draft.threadTimeoutMs);
60
+ if (threadTimeoutMs !== undefined)
61
+ update.threadTimeoutMs = threadTimeoutMs;
62
+ const minCandidateCount = numberOrUndefined(draft.minCandidateCount);
63
+ if (minCandidateCount !== undefined) {
64
+ update.minCandidateCount = minCandidateCount;
65
+ }
66
+ return update;
67
+ }
68
+ //# sourceMappingURL=dream-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dream-settings.js","sourceRoot":"","sources":["../../../src/routes/pages/dream-settings.ts"],"names":[],"mappings":"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","sourcesContent":["export interface DreamSettings {\r\n enabled: boolean;\r\n schedule: string;\r\n sourceId: string;\r\n sourceIds?: string[];\r\n allSources: boolean;\r\n query?: string | null;\r\n limit: number;\r\n sourceTimeoutMs: number;\r\n sourceConcurrency?: number;\r\n sourceStartStaggerMs?: number;\r\n threadConcurrency?: number;\r\n threadTimeoutMs?: number;\r\n minCandidateCount: number;\r\n}\r\n\r\nexport interface DreamSettingsDraft {\r\n enabled: boolean;\r\n schedule: string;\r\n sourceId: string;\r\n sourceIdsText: string;\r\n allSources: boolean;\r\n query: string;\r\n limit: string;\r\n sourceTimeoutMs: string;\r\n sourceConcurrency: string;\r\n sourceStartStaggerMs: string;\r\n threadConcurrency: string;\r\n threadTimeoutMs: string;\r\n minCandidateCount: string;\r\n}\r\n\r\nexport function dreamSettingsToDraft(\r\n settings: DreamSettings | null | undefined,\r\n): DreamSettingsDraft {\r\n return {\r\n enabled: settings?.enabled ?? false,\r\n schedule: settings?.schedule ?? \"0 9 * * 1\",\r\n sourceId: settings?.sourceId ?? \"all\",\r\n sourceIdsText: (settings?.sourceIds ?? []).join(\"\\n\"),\r\n allSources: settings?.allSources ?? true,\r\n query: settings?.query ?? \"\",\r\n limit: String(settings?.limit ?? 8),\r\n sourceTimeoutMs: String(settings?.sourceTimeoutMs ?? 30_000),\r\n sourceConcurrency: String(settings?.sourceConcurrency ?? 2),\r\n sourceStartStaggerMs: String(settings?.sourceStartStaggerMs ?? 250),\r\n threadConcurrency: String(settings?.threadConcurrency ?? 3),\r\n threadTimeoutMs: String(settings?.threadTimeoutMs ?? 8_000),\r\n minCandidateCount: String(settings?.minCandidateCount ?? 1),\r\n };\r\n}\r\n\r\nexport function splitSourceIds(value: string): string[] {\r\n return value\r\n .split(/[\\n,]/)\r\n .map((item) => item.trim())\r\n .filter(Boolean);\r\n}\r\n\r\nfunction numberOrUndefined(value: string): number | undefined {\r\n const trimmed = value.trim();\r\n if (!trimmed) return undefined;\r\n const numeric = Number(trimmed);\r\n return Number.isFinite(numeric) ? numeric : undefined;\r\n}\r\n\r\nexport function dreamSettingsUpdateFromDraft(\r\n draft: DreamSettingsDraft,\r\n): Partial<DreamSettings> {\r\n const sourceIds = splitSourceIds(draft.sourceIdsText);\r\n const update: Partial<DreamSettings> = {\r\n enabled: draft.enabled,\r\n schedule: draft.schedule.trim(),\r\n sourceId: draft.sourceId.trim() || (draft.allSources ? \"all\" : \"current\"),\r\n sourceIds,\r\n allSources: draft.allSources,\r\n query: draft.query.trim(),\r\n };\r\n\r\n const limit = numberOrUndefined(draft.limit);\r\n if (limit !== undefined) update.limit = limit;\r\n const sourceTimeoutMs = numberOrUndefined(draft.sourceTimeoutMs);\r\n if (sourceTimeoutMs !== undefined) update.sourceTimeoutMs = sourceTimeoutMs;\r\n const sourceConcurrency = numberOrUndefined(draft.sourceConcurrency);\r\n if (sourceConcurrency !== undefined) {\r\n update.sourceConcurrency = sourceConcurrency;\r\n }\r\n const sourceStartStaggerMs = numberOrUndefined(draft.sourceStartStaggerMs);\r\n if (sourceStartStaggerMs !== undefined) {\r\n update.sourceStartStaggerMs = sourceStartStaggerMs;\r\n }\r\n const threadConcurrency = numberOrUndefined(draft.threadConcurrency);\r\n if (threadConcurrency !== undefined) {\r\n update.threadConcurrency = threadConcurrency;\r\n }\r\n const threadTimeoutMs = numberOrUndefined(draft.threadTimeoutMs);\r\n if (threadTimeoutMs !== undefined) update.threadTimeoutMs = threadTimeoutMs;\r\n const minCandidateCount = numberOrUndefined(draft.minCandidateCount);\r\n if (minCandidateCount !== undefined) {\r\n update.minCandidateCount = minCandidateCount;\r\n }\r\n return update;\r\n}\r\n"]}
@@ -0,0 +1,5 @@
1
+ export declare function meta(): {
2
+ title: string;
3
+ }[];
4
+ export default function DreamsRoute(): import("node_modules/@types/react").JSX.Element;
5
+ //# sourceMappingURL=dreams.d.ts.map