@agent-native/dispatch 0.0.0-beta-20260819155526

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 (1482) hide show
  1. package/README.md +146 -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 +29 -0
  19. package/dist/actions/ask_app.d.ts.map +1 -0
  20. package/dist/actions/ask_app.js +23 -0
  21. package/dist/actions/ask_app.js.map +1 -0
  22. package/dist/actions/ask_app_status.d.ts +27 -0
  23. package/dist/actions/ask_app_status.d.ts.map +1 -0
  24. package/dist/actions/ask_app_status.js +14 -0
  25. package/dist/actions/ask_app_status.js.map +1 -0
  26. package/dist/actions/connect-external-agent.d.ts +18 -0
  27. package/dist/actions/connect-external-agent.d.ts.map +1 -0
  28. package/dist/actions/connect-external-agent.js +68 -0
  29. package/dist/actions/connect-external-agent.js.map +1 -0
  30. package/dist/actions/create-browser-chat-session.d.ts +15 -0
  31. package/dist/actions/create-browser-chat-session.d.ts.map +1 -0
  32. package/dist/actions/create-browser-chat-session.js +75 -0
  33. package/dist/actions/create-browser-chat-session.js.map +1 -0
  34. package/dist/actions/create-dream-report.d.ts +59 -0
  35. package/dist/actions/create-dream-report.d.ts.map +1 -0
  36. package/dist/actions/create-dream-report.js +67 -0
  37. package/dist/actions/create-dream-report.js.map +1 -0
  38. package/dist/actions/create-link-token.d.ts +10 -0
  39. package/dist/actions/create-link-token.d.ts.map +1 -0
  40. package/dist/actions/create-link-token.js +11 -0
  41. package/dist/actions/create-link-token.js.map +1 -0
  42. package/dist/actions/create-pylon-ticket.d.ts +17 -0
  43. package/dist/actions/create-pylon-ticket.d.ts.map +1 -0
  44. package/dist/actions/create-pylon-ticket.js +95 -0
  45. package/dist/actions/create-pylon-ticket.js.map +1 -0
  46. package/dist/actions/create-vault-grant.d.ts +17 -0
  47. package/dist/actions/create-vault-grant.d.ts.map +1 -0
  48. package/dist/actions/create-vault-grant.js +14 -0
  49. package/dist/actions/create-vault-grant.js.map +1 -0
  50. package/dist/actions/create-vault-secret.d.ts +21 -0
  51. package/dist/actions/create-vault-secret.d.ts.map +1 -0
  52. package/dist/actions/create-vault-secret.js +26 -0
  53. package/dist/actions/create-vault-secret.js.map +1 -0
  54. package/dist/actions/create-workspace-resource-grant.d.ts +16 -0
  55. package/dist/actions/create-workspace-resource-grant.d.ts.map +1 -0
  56. package/dist/actions/create-workspace-resource-grant.js +14 -0
  57. package/dist/actions/create-workspace-resource-grant.js.map +1 -0
  58. package/dist/actions/create-workspace-resource.d.ts +40 -0
  59. package/dist/actions/create-workspace-resource.d.ts.map +1 -0
  60. package/dist/actions/create-workspace-resource.js +29 -0
  61. package/dist/actions/create-workspace-resource.js.map +1 -0
  62. package/dist/actions/create_embed_session.d.ts +13 -0
  63. package/dist/actions/create_embed_session.d.ts.map +1 -0
  64. package/dist/actions/create_embed_session.js +28 -0
  65. package/dist/actions/create_embed_session.js.map +1 -0
  66. package/dist/actions/create_workspace_app_embed_session.d.ts +19 -0
  67. package/dist/actions/create_workspace_app_embed_session.d.ts.map +1 -0
  68. package/dist/actions/create_workspace_app_embed_session.js +89 -0
  69. package/dist/actions/create_workspace_app_embed_session.js.map +1 -0
  70. package/dist/actions/delete-destination.d.ts +34 -0
  71. package/dist/actions/delete-destination.d.ts.map +1 -0
  72. package/dist/actions/delete-destination.js +11 -0
  73. package/dist/actions/delete-destination.js.map +1 -0
  74. package/dist/actions/delete-staged-dataset.d.ts +10 -0
  75. package/dist/actions/delete-staged-dataset.d.ts.map +1 -0
  76. package/dist/actions/delete-staged-dataset.js +8 -0
  77. package/dist/actions/delete-staged-dataset.js.map +1 -0
  78. package/dist/actions/delete-vault-secret.d.ts +17 -0
  79. package/dist/actions/delete-vault-secret.d.ts.map +1 -0
  80. package/dist/actions/delete-vault-secret.js +11 -0
  81. package/dist/actions/delete-vault-secret.js.map +1 -0
  82. package/dist/actions/delete-workspace-resource.d.ts +35 -0
  83. package/dist/actions/delete-workspace-resource.d.ts.map +1 -0
  84. package/dist/actions/delete-workspace-resource.js +11 -0
  85. package/dist/actions/delete-workspace-resource.js.map +1 -0
  86. package/dist/actions/deny-vault-request.d.ts +19 -0
  87. package/dist/actions/deny-vault-request.d.ts.map +1 -0
  88. package/dist/actions/deny-vault-request.js +12 -0
  89. package/dist/actions/deny-vault-request.js.map +1 -0
  90. package/dist/actions/ensure-dream-job.d.ts +33 -0
  91. package/dist/actions/ensure-dream-job.d.ts.map +1 -0
  92. package/dist/actions/ensure-dream-job.js +73 -0
  93. package/dist/actions/ensure-dream-job.js.map +1 -0
  94. package/dist/actions/get-agent-thread-debug.d.ts +72 -0
  95. package/dist/actions/get-agent-thread-debug.d.ts.map +1 -0
  96. package/dist/actions/get-agent-thread-debug.js +37 -0
  97. package/dist/actions/get-agent-thread-debug.js.map +1 -0
  98. package/dist/actions/get-app-creation-settings.d.ts +3 -0
  99. package/dist/actions/get-app-creation-settings.d.ts.map +1 -0
  100. package/dist/actions/get-app-creation-settings.js +10 -0
  101. package/dist/actions/get-app-creation-settings.js.map +1 -0
  102. package/dist/actions/get-dispatch-settings.d.ts +3 -0
  103. package/dist/actions/get-dispatch-settings.d.ts.map +1 -0
  104. package/dist/actions/get-dispatch-settings.js +10 -0
  105. package/dist/actions/get-dispatch-settings.js.map +1 -0
  106. package/dist/actions/get-dream-settings.d.ts +3 -0
  107. package/dist/actions/get-dream-settings.d.ts.map +1 -0
  108. package/dist/actions/get-dream-settings.js +11 -0
  109. package/dist/actions/get-dream-settings.js.map +1 -0
  110. package/dist/actions/get-dream.d.ts +48 -0
  111. package/dist/actions/get-dream.d.ts.map +1 -0
  112. package/dist/actions/get-dream.js +13 -0
  113. package/dist/actions/get-dream.js.map +1 -0
  114. package/dist/actions/get-vault-access-settings.d.ts +3 -0
  115. package/dist/actions/get-vault-access-settings.d.ts.map +1 -0
  116. package/dist/actions/get-vault-access-settings.js +10 -0
  117. package/dist/actions/get-vault-access-settings.js.map +1 -0
  118. package/dist/actions/get-workspace-info.d.ts +3 -0
  119. package/dist/actions/get-workspace-info.d.ts.map +1 -0
  120. package/dist/actions/get-workspace-info.js +10 -0
  121. package/dist/actions/get-workspace-info.js.map +1 -0
  122. package/dist/actions/get-workspace-resource-effective-context.d.ts +8 -0
  123. package/dist/actions/get-workspace-resource-effective-context.d.ts.map +1 -0
  124. package/dist/actions/get-workspace-resource-effective-context.js +27 -0
  125. package/dist/actions/get-workspace-resource-effective-context.js.map +1 -0
  126. package/dist/actions/grant-vault-secrets-to-app.d.ts +27 -0
  127. package/dist/actions/grant-vault-secrets-to-app.d.ts.map +1 -0
  128. package/dist/actions/grant-vault-secrets-to-app.js +19 -0
  129. package/dist/actions/grant-vault-secrets-to-app.js.map +1 -0
  130. package/dist/actions/grant-workspace-resources-to-app.d.ts +17 -0
  131. package/dist/actions/grant-workspace-resources-to-app.d.ts.map +1 -0
  132. package/dist/actions/grant-workspace-resources-to-app.js +15 -0
  133. package/dist/actions/grant-workspace-resources-to-app.js.map +1 -0
  134. package/dist/actions/import-agent-pack.d.ts +96 -0
  135. package/dist/actions/import-agent-pack.d.ts.map +1 -0
  136. package/dist/actions/import-agent-pack.js +116 -0
  137. package/dist/actions/import-agent-pack.js.map +1 -0
  138. package/dist/actions/import-agent.d.ts +60 -0
  139. package/dist/actions/import-agent.d.ts.map +1 -0
  140. package/dist/actions/import-agent.js +82 -0
  141. package/dist/actions/import-agent.js.map +1 -0
  142. package/dist/actions/index.d.ts +9 -0
  143. package/dist/actions/index.d.ts.map +1 -0
  144. package/dist/actions/index.js +207 -0
  145. package/dist/actions/index.js.map +1 -0
  146. package/dist/actions/list-agent-pack.d.ts +36 -0
  147. package/dist/actions/list-agent-pack.d.ts.map +1 -0
  148. package/dist/actions/list-agent-pack.js +32 -0
  149. package/dist/actions/list-agent-pack.js.map +1 -0
  150. package/dist/actions/list-agent-run-failures.d.ts +65 -0
  151. package/dist/actions/list-agent-run-failures.d.ts.map +1 -0
  152. package/dist/actions/list-agent-run-failures.js +42 -0
  153. package/dist/actions/list-agent-run-failures.js.map +1 -0
  154. package/dist/actions/list-agent-thread-sources.d.ts +9 -0
  155. package/dist/actions/list-agent-thread-sources.d.ts.map +1 -0
  156. package/dist/actions/list-agent-thread-sources.js +11 -0
  157. package/dist/actions/list-agent-thread-sources.js.map +1 -0
  158. package/dist/actions/list-available-workspace-templates.d.ts +3 -0
  159. package/dist/actions/list-available-workspace-templates.d.ts.map +1 -0
  160. package/dist/actions/list-available-workspace-templates.js +10 -0
  161. package/dist/actions/list-available-workspace-templates.js.map +1 -0
  162. package/dist/actions/list-connected-agents.d.ts +14 -0
  163. package/dist/actions/list-connected-agents.d.ts.map +1 -0
  164. package/dist/actions/list-connected-agents.js +87 -0
  165. package/dist/actions/list-connected-agents.js.map +1 -0
  166. package/dist/actions/list-curated-workspace-templates.d.ts +3 -0
  167. package/dist/actions/list-curated-workspace-templates.d.ts.map +1 -0
  168. package/dist/actions/list-curated-workspace-templates.js +10 -0
  169. package/dist/actions/list-curated-workspace-templates.js.map +1 -0
  170. package/dist/actions/list-destinations.d.ts +15 -0
  171. package/dist/actions/list-destinations.d.ts.map +1 -0
  172. package/dist/actions/list-destinations.js +10 -0
  173. package/dist/actions/list-destinations.js.map +1 -0
  174. package/dist/actions/list-dispatch-approvals.d.ts +20 -0
  175. package/dist/actions/list-dispatch-approvals.d.ts.map +1 -0
  176. package/dist/actions/list-dispatch-approvals.js +10 -0
  177. package/dist/actions/list-dispatch-approvals.js.map +1 -0
  178. package/dist/actions/list-dispatch-audit.d.ts +16 -0
  179. package/dist/actions/list-dispatch-audit.d.ts.map +1 -0
  180. package/dist/actions/list-dispatch-audit.js +12 -0
  181. package/dist/actions/list-dispatch-audit.js.map +1 -0
  182. package/dist/actions/list-dispatch-overview.d.ts +61 -0
  183. package/dist/actions/list-dispatch-overview.d.ts.map +1 -0
  184. package/dist/actions/list-dispatch-overview.js +17 -0
  185. package/dist/actions/list-dispatch-overview.js.map +1 -0
  186. package/dist/actions/list-dispatch-usage-metrics.d.ts +7 -0
  187. package/dist/actions/list-dispatch-usage-metrics.d.ts.map +1 -0
  188. package/dist/actions/list-dispatch-usage-metrics.js +28 -0
  189. package/dist/actions/list-dispatch-usage-metrics.js.map +1 -0
  190. package/dist/actions/list-dream-candidates.d.ts +24 -0
  191. package/dist/actions/list-dream-candidates.d.ts.map +1 -0
  192. package/dist/actions/list-dream-candidates.js +68 -0
  193. package/dist/actions/list-dream-candidates.js.map +1 -0
  194. package/dist/actions/list-dreams.d.ts +29 -0
  195. package/dist/actions/list-dreams.d.ts.map +1 -0
  196. package/dist/actions/list-dreams.js +17 -0
  197. package/dist/actions/list-dreams.js.map +1 -0
  198. package/dist/actions/list-integrations-catalog.d.ts +3 -0
  199. package/dist/actions/list-integrations-catalog.d.ts.map +1 -0
  200. package/dist/actions/list-integrations-catalog.js +10 -0
  201. package/dist/actions/list-integrations-catalog.js.map +1 -0
  202. package/dist/actions/list-linked-identities.d.ts +29 -0
  203. package/dist/actions/list-linked-identities.d.ts.map +1 -0
  204. package/dist/actions/list-linked-identities.js +10 -0
  205. package/dist/actions/list-linked-identities.js.map +1 -0
  206. package/dist/actions/list-mcp-app-access.d.ts +14 -0
  207. package/dist/actions/list-mcp-app-access.d.ts.map +1 -0
  208. package/dist/actions/list-mcp-app-access.js +25 -0
  209. package/dist/actions/list-mcp-app-access.js.map +1 -0
  210. package/dist/actions/list-staged-datasets.d.ts +13 -0
  211. package/dist/actions/list-staged-datasets.d.ts.map +1 -0
  212. package/dist/actions/list-staged-datasets.js +8 -0
  213. package/dist/actions/list-staged-datasets.js.map +1 -0
  214. package/dist/actions/list-vault-audit.d.ts +16 -0
  215. package/dist/actions/list-vault-audit.d.ts.map +1 -0
  216. package/dist/actions/list-vault-audit.js +15 -0
  217. package/dist/actions/list-vault-audit.js.map +1 -0
  218. package/dist/actions/list-vault-grants.d.ts +17 -0
  219. package/dist/actions/list-vault-grants.d.ts.map +1 -0
  220. package/dist/actions/list-vault-grants.js +13 -0
  221. package/dist/actions/list-vault-grants.js.map +1 -0
  222. package/dist/actions/list-vault-requests.d.ts +18 -0
  223. package/dist/actions/list-vault-requests.d.ts.map +1 -0
  224. package/dist/actions/list-vault-requests.js +15 -0
  225. package/dist/actions/list-vault-requests.js.map +1 -0
  226. package/dist/actions/list-vault-secret-options.d.ts +9 -0
  227. package/dist/actions/list-vault-secret-options.d.ts.map +1 -0
  228. package/dist/actions/list-vault-secret-options.js +12 -0
  229. package/dist/actions/list-vault-secret-options.js.map +1 -0
  230. package/dist/actions/list-vault-secrets.d.ts +13 -0
  231. package/dist/actions/list-vault-secrets.d.ts.map +1 -0
  232. package/dist/actions/list-vault-secrets.js +25 -0
  233. package/dist/actions/list-vault-secrets.js.map +1 -0
  234. package/dist/actions/list-workspace-apps.d.ts +7 -0
  235. package/dist/actions/list-workspace-apps.d.ts.map +1 -0
  236. package/dist/actions/list-workspace-apps.js +31 -0
  237. package/dist/actions/list-workspace-apps.js.map +1 -0
  238. package/dist/actions/list-workspace-resource-grants.d.ts +16 -0
  239. package/dist/actions/list-workspace-resource-grants.d.ts.map +1 -0
  240. package/dist/actions/list-workspace-resource-grants.js +13 -0
  241. package/dist/actions/list-workspace-resource-grants.js.map +1 -0
  242. package/dist/actions/list-workspace-resource-options.d.ts +5 -0
  243. package/dist/actions/list-workspace-resource-options.d.ts.map +1 -0
  244. package/dist/actions/list-workspace-resource-options.js +22 -0
  245. package/dist/actions/list-workspace-resource-options.js.map +1 -0
  246. package/dist/actions/list-workspace-resources-for-app.d.ts +15 -0
  247. package/dist/actions/list-workspace-resources-for-app.d.ts.map +1 -0
  248. package/dist/actions/list-workspace-resources-for-app.js +12 -0
  249. package/dist/actions/list-workspace-resources-for-app.js.map +1 -0
  250. package/dist/actions/list-workspace-resources.d.ts +18 -0
  251. package/dist/actions/list-workspace-resources.d.ts.map +1 -0
  252. package/dist/actions/list-workspace-resources.js +22 -0
  253. package/dist/actions/list-workspace-resources.js.map +1 -0
  254. package/dist/actions/list_apps.d.ts +15 -0
  255. package/dist/actions/list_apps.d.ts.map +1 -0
  256. package/dist/actions/list_apps.js +34 -0
  257. package/dist/actions/list_apps.js.map +1 -0
  258. package/dist/actions/navigate.d.ts +23 -0
  259. package/dist/actions/navigate.d.ts.map +1 -0
  260. package/dist/actions/navigate.js +53 -0
  261. package/dist/actions/navigate.js.map +1 -0
  262. package/dist/actions/open_app.d.ts +20 -0
  263. package/dist/actions/open_app.d.ts.map +1 -0
  264. package/dist/actions/open_app.js +123 -0
  265. package/dist/actions/open_app.js.map +1 -0
  266. package/dist/actions/preview-dream-proposal.d.ts +43 -0
  267. package/dist/actions/preview-dream-proposal.d.ts.map +1 -0
  268. package/dist/actions/preview-dream-proposal.js +13 -0
  269. package/dist/actions/preview-dream-proposal.js.map +1 -0
  270. package/dist/actions/preview-workspace-resource-change.d.ts +8 -0
  271. package/dist/actions/preview-workspace-resource-change.d.ts.map +1 -0
  272. package/dist/actions/preview-workspace-resource-change.js +24 -0
  273. package/dist/actions/preview-workspace-resource-change.js.map +1 -0
  274. package/dist/actions/provider-api-catalog.d.ts +28 -0
  275. package/dist/actions/provider-api-catalog.d.ts.map +1 -0
  276. package/dist/actions/provider-api-catalog.js +8 -0
  277. package/dist/actions/provider-api-catalog.js.map +1 -0
  278. package/dist/actions/provider-api-docs.d.ts +41 -0
  279. package/dist/actions/provider-api-docs.d.ts.map +1 -0
  280. package/dist/actions/provider-api-docs.js +12 -0
  281. package/dist/actions/provider-api-docs.js.map +1 -0
  282. package/dist/actions/provider-api-register.d.ts +109 -0
  283. package/dist/actions/provider-api-register.d.ts.map +1 -0
  284. package/dist/actions/provider-api-register.js +33 -0
  285. package/dist/actions/provider-api-register.js.map +1 -0
  286. package/dist/actions/provider-api-request.d.ts +67 -0
  287. package/dist/actions/provider-api-request.d.ts.map +1 -0
  288. package/dist/actions/provider-api-request.js +13 -0
  289. package/dist/actions/provider-api-request.js.map +1 -0
  290. package/dist/actions/query-staged-dataset.d.ts +45 -0
  291. package/dist/actions/query-staged-dataset.d.ts.map +1 -0
  292. package/dist/actions/query-staged-dataset.js +8 -0
  293. package/dist/actions/query-staged-dataset.js.map +1 -0
  294. package/dist/actions/read-slack-thread-context.d.ts +29 -0
  295. package/dist/actions/read-slack-thread-context.d.ts.map +1 -0
  296. package/dist/actions/read-slack-thread-context.js +138 -0
  297. package/dist/actions/read-slack-thread-context.js.map +1 -0
  298. package/dist/actions/reject-dispatch-change.d.ts +23 -0
  299. package/dist/actions/reject-dispatch-change.d.ts.map +1 -0
  300. package/dist/actions/reject-dispatch-change.js +12 -0
  301. package/dist/actions/reject-dispatch-change.js.map +1 -0
  302. package/dist/actions/reject-dream-proposal.d.ts +27 -0
  303. package/dist/actions/reject-dream-proposal.d.ts.map +1 -0
  304. package/dist/actions/reject-dream-proposal.js +12 -0
  305. package/dist/actions/reject-dream-proposal.js.map +1 -0
  306. package/dist/actions/remix-workspace-template.d.ts +48 -0
  307. package/dist/actions/remix-workspace-template.d.ts.map +1 -0
  308. package/dist/actions/remix-workspace-template.js +79 -0
  309. package/dist/actions/remix-workspace-template.js.map +1 -0
  310. package/dist/actions/remove-pending-workspace-app.d.ts +7 -0
  311. package/dist/actions/remove-pending-workspace-app.d.ts.map +1 -0
  312. package/dist/actions/remove-pending-workspace-app.js +15 -0
  313. package/dist/actions/remove-pending-workspace-app.js.map +1 -0
  314. package/dist/actions/request-vault-secret.d.ts +20 -0
  315. package/dist/actions/request-vault-secret.d.ts.map +1 -0
  316. package/dist/actions/request-vault-secret.js +15 -0
  317. package/dist/actions/request-vault-secret.js.map +1 -0
  318. package/dist/actions/resolve-integration-source-context.d.ts +5 -0
  319. package/dist/actions/resolve-integration-source-context.d.ts.map +1 -0
  320. package/dist/actions/resolve-integration-source-context.js +30 -0
  321. package/dist/actions/resolve-integration-source-context.js.map +1 -0
  322. package/dist/actions/restore-starter-workspace-resources.d.ts +9 -0
  323. package/dist/actions/restore-starter-workspace-resources.d.ts.map +1 -0
  324. package/dist/actions/restore-starter-workspace-resources.js +14 -0
  325. package/dist/actions/restore-starter-workspace-resources.js.map +1 -0
  326. package/dist/actions/revoke-vault-grant.d.ts +16 -0
  327. package/dist/actions/revoke-vault-grant.d.ts.map +1 -0
  328. package/dist/actions/revoke-vault-grant.js +11 -0
  329. package/dist/actions/revoke-vault-grant.js.map +1 -0
  330. package/dist/actions/revoke-workspace-resource-grant.d.ts +15 -0
  331. package/dist/actions/revoke-workspace-resource-grant.d.ts.map +1 -0
  332. package/dist/actions/revoke-workspace-resource-grant.js +11 -0
  333. package/dist/actions/revoke-workspace-resource-grant.js.map +1 -0
  334. package/dist/actions/scaffold-workspace-app.d.ts +10 -0
  335. package/dist/actions/scaffold-workspace-app.d.ts.map +1 -0
  336. package/dist/actions/scaffold-workspace-app.js +41 -0
  337. package/dist/actions/scaffold-workspace-app.js.map +1 -0
  338. package/dist/actions/search-agent-threads.d.ts +32 -0
  339. package/dist/actions/search-agent-threads.d.ts.map +1 -0
  340. package/dist/actions/search-agent-threads.js +25 -0
  341. package/dist/actions/search-agent-threads.js.map +1 -0
  342. package/dist/actions/send-code-agent-remote-command.d.ts +34 -0
  343. package/dist/actions/send-code-agent-remote-command.d.ts.map +1 -0
  344. package/dist/actions/send-code-agent-remote-command.js +53 -0
  345. package/dist/actions/send-code-agent-remote-command.js.map +1 -0
  346. package/dist/actions/send-platform-message.d.ts +15 -0
  347. package/dist/actions/send-platform-message.d.ts.map +1 -0
  348. package/dist/actions/send-platform-message.js +96 -0
  349. package/dist/actions/send-platform-message.js.map +1 -0
  350. package/dist/actions/set-app-creation-settings.d.ts +5 -0
  351. package/dist/actions/set-app-creation-settings.d.ts.map +1 -0
  352. package/dist/actions/set-app-creation-settings.js +18 -0
  353. package/dist/actions/set-app-creation-settings.js.map +1 -0
  354. package/dist/actions/set-dispatch-approval-policy.d.ts +23 -0
  355. package/dist/actions/set-dispatch-approval-policy.d.ts.map +1 -0
  356. package/dist/actions/set-dispatch-approval-policy.js +19 -0
  357. package/dist/actions/set-dispatch-approval-policy.js.map +1 -0
  358. package/dist/actions/set-dream-settings.d.ts +17 -0
  359. package/dist/actions/set-dream-settings.d.ts.map +1 -0
  360. package/dist/actions/set-dream-settings.js +41 -0
  361. package/dist/actions/set-dream-settings.js.map +1 -0
  362. package/dist/actions/set-mcp-app-access.d.ts +17 -0
  363. package/dist/actions/set-mcp-app-access.d.ts.map +1 -0
  364. package/dist/actions/set-mcp-app-access.js +43 -0
  365. package/dist/actions/set-mcp-app-access.js.map +1 -0
  366. package/dist/actions/set-vault-access-settings.d.ts +5 -0
  367. package/dist/actions/set-vault-access-settings.d.ts.map +1 -0
  368. package/dist/actions/set-vault-access-settings.js +13 -0
  369. package/dist/actions/set-vault-access-settings.js.map +1 -0
  370. package/dist/actions/start-workspace-app-creation.d.ts +10 -0
  371. package/dist/actions/start-workspace-app-creation.d.ts.map +1 -0
  372. package/dist/actions/start-workspace-app-creation.js +43 -0
  373. package/dist/actions/start-workspace-app-creation.js.map +1 -0
  374. package/dist/actions/sync-vault-to-app.d.ts +32 -0
  375. package/dist/actions/sync-vault-to-app.d.ts.map +1 -0
  376. package/dist/actions/sync-vault-to-app.js +13 -0
  377. package/dist/actions/sync-vault-to-app.js.map +1 -0
  378. package/dist/actions/unarchive-workspace-app.d.ts +7 -0
  379. package/dist/actions/unarchive-workspace-app.d.ts.map +1 -0
  380. package/dist/actions/unarchive-workspace-app.js +15 -0
  381. package/dist/actions/unarchive-workspace-app.js.map +1 -0
  382. package/dist/actions/update-vault-secret.d.ts +22 -0
  383. package/dist/actions/update-vault-secret.d.ts.map +1 -0
  384. package/dist/actions/update-vault-secret.js +43 -0
  385. package/dist/actions/update-vault-secret.js.map +1 -0
  386. package/dist/actions/update-workspace-app-metadata.d.ts +7 -0
  387. package/dist/actions/update-workspace-app-metadata.d.ts.map +1 -0
  388. package/dist/actions/update-workspace-app-metadata.js +30 -0
  389. package/dist/actions/update-workspace-app-metadata.js.map +1 -0
  390. package/dist/actions/update-workspace-resource.d.ts +39 -0
  391. package/dist/actions/update-workspace-resource.d.ts.map +1 -0
  392. package/dist/actions/update-workspace-resource.js +18 -0
  393. package/dist/actions/update-workspace-resource.js.map +1 -0
  394. package/dist/actions/upsert-destination.d.ts +39 -0
  395. package/dist/actions/upsert-destination.d.ts.map +1 -0
  396. package/dist/actions/upsert-destination.js +26 -0
  397. package/dist/actions/upsert-destination.js.map +1 -0
  398. package/dist/actions/view-screen.d.ts +11 -0
  399. package/dist/actions/view-screen.d.ts.map +1 -0
  400. package/dist/actions/view-screen.js +332 -0
  401. package/dist/actions/view-screen.js.map +1 -0
  402. package/dist/client/transactional-emails.d.ts +57 -0
  403. package/dist/client/transactional-emails.d.ts.map +1 -0
  404. package/dist/client/transactional-emails.js +116 -0
  405. package/dist/client/transactional-emails.js.map +1 -0
  406. package/dist/components/action-query-error.d.ts +8 -0
  407. package/dist/components/action-query-error.d.ts.map +1 -0
  408. package/dist/components/action-query-error.js +10 -0
  409. package/dist/components/action-query-error.js.map +1 -0
  410. package/dist/components/admin-navigation.d.ts +16 -0
  411. package/dist/components/admin-navigation.d.ts.map +1 -0
  412. package/dist/components/admin-navigation.js +193 -0
  413. package/dist/components/admin-navigation.js.map +1 -0
  414. package/dist/components/agents-panel.d.ts +16 -0
  415. package/dist/components/agents-panel.d.ts.map +1 -0
  416. package/dist/components/agents-panel.js +133 -0
  417. package/dist/components/agents-panel.js.map +1 -0
  418. package/dist/components/app-icon.d.ts +10 -0
  419. package/dist/components/app-icon.d.ts.map +1 -0
  420. package/dist/components/app-icon.js +107 -0
  421. package/dist/components/app-icon.js.map +1 -0
  422. package/dist/components/app-keys-popover.d.ts +15 -0
  423. package/dist/components/app-keys-popover.d.ts.map +1 -0
  424. package/dist/components/app-keys-popover.js +115 -0
  425. package/dist/components/app-keys-popover.js.map +1 -0
  426. package/dist/components/app-list-row.d.ts +12 -0
  427. package/dist/components/app-list-row.d.ts.map +1 -0
  428. package/dist/components/app-list-row.js +11 -0
  429. package/dist/components/app-list-row.js.map +1 -0
  430. package/dist/components/app-open-actions.d.ts +2 -0
  431. package/dist/components/app-open-actions.d.ts.map +1 -0
  432. package/dist/components/app-open-actions.js +2 -0
  433. package/dist/components/app-open-actions.js.map +1 -0
  434. package/dist/components/app-row-settings.d.ts +6 -0
  435. package/dist/components/app-row-settings.d.ts.map +1 -0
  436. package/dist/components/app-row-settings.js +11 -0
  437. package/dist/components/app-row-settings.js.map +1 -0
  438. package/dist/components/approval-value-block.d.ts +7 -0
  439. package/dist/components/approval-value-block.d.ts.map +1 -0
  440. package/dist/components/approval-value-block.js +22 -0
  441. package/dist/components/approval-value-block.js.map +1 -0
  442. package/dist/components/automation-run-history-dialog.d.ts +9 -0
  443. package/dist/components/automation-run-history-dialog.d.ts.map +1 -0
  444. package/dist/components/automation-run-history-dialog.js +63 -0
  445. package/dist/components/automation-run-history-dialog.js.map +1 -0
  446. package/dist/components/connected-app-card.d.ts +6 -0
  447. package/dist/components/connected-app-card.d.ts.map +1 -0
  448. package/dist/components/connected-app-card.js +13 -0
  449. package/dist/components/connected-app-card.js.map +1 -0
  450. package/dist/components/create-app-popover.d.ts +29 -0
  451. package/dist/components/create-app-popover.d.ts.map +1 -0
  452. package/dist/components/create-app-popover.js +262 -0
  453. package/dist/components/create-app-popover.js.map +1 -0
  454. package/dist/components/dispatch-control-plane.d.ts +2 -0
  455. package/dist/components/dispatch-control-plane.d.ts.map +1 -0
  456. package/dist/components/dispatch-control-plane.js +114 -0
  457. package/dist/components/dispatch-control-plane.js.map +1 -0
  458. package/dist/components/dispatch-shell.d.ts +13 -0
  459. package/dist/components/dispatch-shell.d.ts.map +1 -0
  460. package/dist/components/dispatch-shell.js +21 -0
  461. package/dist/components/dispatch-shell.js.map +1 -0
  462. package/dist/components/docs-link.d.ts +16 -0
  463. package/dist/components/docs-link.d.ts.map +1 -0
  464. package/dist/components/docs-link.js +34 -0
  465. package/dist/components/docs-link.js.map +1 -0
  466. package/dist/components/index.d.ts +17 -0
  467. package/dist/components/index.d.ts.map +1 -0
  468. package/dist/components/index.js +16 -0
  469. package/dist/components/index.js.map +1 -0
  470. package/dist/components/layout/Header.d.ts +5 -0
  471. package/dist/components/layout/Header.d.ts.map +1 -0
  472. package/dist/components/layout/Header.js +61 -0
  473. package/dist/components/layout/Header.js.map +1 -0
  474. package/dist/components/layout/HeaderActions.d.ts +2 -0
  475. package/dist/components/layout/HeaderActions.d.ts.map +1 -0
  476. package/dist/components/layout/HeaderActions.js +2 -0
  477. package/dist/components/layout/HeaderActions.js.map +1 -0
  478. package/dist/components/layout/Layout.d.ts +60 -0
  479. package/dist/components/layout/Layout.d.ts.map +1 -0
  480. package/dist/components/layout/Layout.js +1302 -0
  481. package/dist/components/layout/Layout.js.map +1 -0
  482. package/dist/components/layout/workspace-apps-rail.d.ts +5 -0
  483. package/dist/components/layout/workspace-apps-rail.d.ts.map +1 -0
  484. package/dist/components/layout/workspace-apps-rail.js +56 -0
  485. package/dist/components/layout/workspace-apps-rail.js.map +1 -0
  486. package/dist/components/messaging-setup-panel.d.ts +2 -0
  487. package/dist/components/messaging-setup-panel.d.ts.map +1 -0
  488. package/dist/components/messaging-setup-panel.js +414 -0
  489. package/dist/components/messaging-setup-panel.js.map +1 -0
  490. package/dist/components/other-apps-section.d.ts +33 -0
  491. package/dist/components/other-apps-section.d.ts.map +1 -0
  492. package/dist/components/other-apps-section.js +66 -0
  493. package/dist/components/other-apps-section.js.map +1 -0
  494. package/dist/components/simple-agents-panel.d.ts +12 -0
  495. package/dist/components/simple-agents-panel.d.ts.map +1 -0
  496. package/dist/components/simple-agents-panel.js +438 -0
  497. package/dist/components/simple-agents-panel.js.map +1 -0
  498. package/dist/components/task-queue-health.d.ts +2 -0
  499. package/dist/components/task-queue-health.d.ts.map +1 -0
  500. package/dist/components/task-queue-health.js +58 -0
  501. package/dist/components/task-queue-health.js.map +1 -0
  502. package/dist/components/transactional-email-activity.d.ts +24 -0
  503. package/dist/components/transactional-email-activity.d.ts.map +1 -0
  504. package/dist/components/transactional-email-activity.js +31 -0
  505. package/dist/components/transactional-email-activity.js.map +1 -0
  506. package/dist/components/transactional-email-metrics.d.ts +40 -0
  507. package/dist/components/transactional-email-metrics.d.ts.map +1 -0
  508. package/dist/components/transactional-email-metrics.js +44 -0
  509. package/dist/components/transactional-email-metrics.js.map +1 -0
  510. package/dist/components/transactional-email-preview.d.ts +7 -0
  511. package/dist/components/transactional-email-preview.d.ts.map +1 -0
  512. package/dist/components/transactional-email-preview.js +41 -0
  513. package/dist/components/transactional-email-preview.js.map +1 -0
  514. package/dist/components/ui/accordion.d.ts +8 -0
  515. package/dist/components/ui/accordion.d.ts.map +1 -0
  516. package/dist/components/ui/accordion.js +14 -0
  517. package/dist/components/ui/accordion.js.map +1 -0
  518. package/dist/components/ui/alert-dialog.d.ts +21 -0
  519. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  520. package/dist/components/ui/alert-dialog.js +27 -0
  521. package/dist/components/ui/alert-dialog.js.map +1 -0
  522. package/dist/components/ui/alert.d.ts +9 -0
  523. package/dist/components/ui/alert.d.ts.map +1 -0
  524. package/dist/components/ui/alert.js +23 -0
  525. package/dist/components/ui/alert.js.map +1 -0
  526. package/dist/components/ui/aspect-ratio.d.ts +4 -0
  527. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  528. package/dist/components/ui/aspect-ratio.js +4 -0
  529. package/dist/components/ui/aspect-ratio.js.map +1 -0
  530. package/dist/components/ui/avatar.d.ts +7 -0
  531. package/dist/components/ui/avatar.d.ts.map +1 -0
  532. package/dist/components/ui/avatar.js +12 -0
  533. package/dist/components/ui/avatar.js.map +1 -0
  534. package/dist/components/ui/badge.d.ts +10 -0
  535. package/dist/components/ui/badge.d.ts.map +1 -0
  536. package/dist/components/ui/badge.js +21 -0
  537. package/dist/components/ui/badge.js.map +1 -0
  538. package/dist/components/ui/breadcrumb.d.ts +20 -0
  539. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  540. package/dist/components/ui/breadcrumb.js +24 -0
  541. package/dist/components/ui/breadcrumb.js.map +1 -0
  542. package/dist/components/ui/button.d.ts +12 -0
  543. package/dist/components/ui/button.d.ts.map +1 -0
  544. package/dist/components/ui/button.js +34 -0
  545. package/dist/components/ui/button.js.map +1 -0
  546. package/dist/components/ui/calendar.d.ts +9 -0
  547. package/dist/components/ui/calendar.d.ts.map +1 -0
  548. package/dist/components/ui/calendar.js +41 -0
  549. package/dist/components/ui/calendar.js.map +1 -0
  550. package/dist/components/ui/card.d.ts +9 -0
  551. package/dist/components/ui/card.d.ts.map +1 -0
  552. package/dist/components/ui/card.js +17 -0
  553. package/dist/components/ui/card.js.map +1 -0
  554. package/dist/components/ui/carousel.d.ts +19 -0
  555. package/dist/components/ui/carousel.d.ts.map +1 -0
  556. package/dist/components/ui/carousel.js +99 -0
  557. package/dist/components/ui/carousel.js.map +1 -0
  558. package/dist/components/ui/chart.d.ts +80 -0
  559. package/dist/components/ui/chart.d.ts.map +1 -0
  560. package/dist/components/ui/chart.js +131 -0
  561. package/dist/components/ui/chart.js.map +1 -0
  562. package/dist/components/ui/checkbox.d.ts +5 -0
  563. package/dist/components/ui/checkbox.d.ts.map +1 -0
  564. package/dist/components/ui/checkbox.js +9 -0
  565. package/dist/components/ui/checkbox.js.map +1 -0
  566. package/dist/components/ui/collapsible.d.ts +6 -0
  567. package/dist/components/ui/collapsible.d.ts.map +1 -0
  568. package/dist/components/ui/collapsible.js +6 -0
  569. package/dist/components/ui/collapsible.js.map +1 -0
  570. package/dist/components/ui/command.d.ts +83 -0
  571. package/dist/components/ui/command.d.ts.map +1 -0
  572. package/dist/components/ui/command.js +29 -0
  573. package/dist/components/ui/command.js.map +1 -0
  574. package/dist/components/ui/context-menu.d.ts +28 -0
  575. package/dist/components/ui/context-menu.d.ts.map +1 -0
  576. package/dist/components/ui/context-menu.js +34 -0
  577. package/dist/components/ui/context-menu.js.map +1 -0
  578. package/dist/components/ui/dialog.d.ts +2 -0
  579. package/dist/components/ui/dialog.d.ts.map +1 -0
  580. package/dist/components/ui/dialog.js +2 -0
  581. package/dist/components/ui/dialog.js.map +1 -0
  582. package/dist/components/ui/drawer.d.ts +23 -0
  583. package/dist/components/ui/drawer.d.ts.map +1 -0
  584. package/dist/components/ui/drawer.js +23 -0
  585. package/dist/components/ui/drawer.js.map +1 -0
  586. package/dist/components/ui/dropdown-menu.d.ts +2 -0
  587. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  588. package/dist/components/ui/dropdown-menu.js +2 -0
  589. package/dist/components/ui/dropdown-menu.js.map +1 -0
  590. package/dist/components/ui/form.d.ts +26 -0
  591. package/dist/components/ui/form.d.ts.map +1 -0
  592. package/dist/components/ui/form.js +63 -0
  593. package/dist/components/ui/form.js.map +1 -0
  594. package/dist/components/ui/hover-card.d.ts +7 -0
  595. package/dist/components/ui/hover-card.d.ts.map +1 -0
  596. package/dist/components/ui/hover-card.js +10 -0
  597. package/dist/components/ui/hover-card.js.map +1 -0
  598. package/dist/components/ui/input-otp.d.ts +35 -0
  599. package/dist/components/ui/input-otp.d.ts.map +1 -0
  600. package/dist/components/ui/input-otp.js +19 -0
  601. package/dist/components/ui/input-otp.js.map +1 -0
  602. package/dist/components/ui/input.d.ts +4 -0
  603. package/dist/components/ui/input.d.ts.map +1 -0
  604. package/dist/components/ui/input.js +9 -0
  605. package/dist/components/ui/input.js.map +1 -0
  606. package/dist/components/ui/label.d.ts +6 -0
  607. package/dist/components/ui/label.d.ts.map +1 -0
  608. package/dist/components/ui/label.js +10 -0
  609. package/dist/components/ui/label.js.map +1 -0
  610. package/dist/components/ui/menubar.d.ts +29 -0
  611. package/dist/components/ui/menubar.d.ts.map +1 -0
  612. package/dist/components/ui/menubar.js +41 -0
  613. package/dist/components/ui/menubar.js.map +1 -0
  614. package/dist/components/ui/navigation-menu.d.ts +13 -0
  615. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  616. package/dist/components/ui/navigation-menu.js +25 -0
  617. package/dist/components/ui/navigation-menu.js.map +1 -0
  618. package/dist/components/ui/pagination.d.ts +29 -0
  619. package/dist/components/ui/pagination.d.ts.map +1 -0
  620. package/dist/components/ui/pagination.js +24 -0
  621. package/dist/components/ui/pagination.js.map +1 -0
  622. package/dist/components/ui/popover.d.ts +8 -0
  623. package/dist/components/ui/popover.d.ts.map +1 -0
  624. package/dist/components/ui/popover.js +11 -0
  625. package/dist/components/ui/popover.js.map +1 -0
  626. package/dist/components/ui/progress.d.ts +5 -0
  627. package/dist/components/ui/progress.d.ts.map +1 -0
  628. package/dist/components/ui/progress.js +8 -0
  629. package/dist/components/ui/progress.js.map +1 -0
  630. package/dist/components/ui/radio-group.d.ts +6 -0
  631. package/dist/components/ui/radio-group.d.ts.map +1 -0
  632. package/dist/components/ui/radio-group.js +15 -0
  633. package/dist/components/ui/radio-group.js.map +1 -0
  634. package/dist/components/ui/resizable.d.ts +8 -0
  635. package/dist/components/ui/resizable.d.ts.map +1 -0
  636. package/dist/components/ui/resizable.js +9 -0
  637. package/dist/components/ui/resizable.js.map +1 -0
  638. package/dist/components/ui/scroll-area.d.ts +6 -0
  639. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  640. package/dist/components/ui/scroll-area.js +12 -0
  641. package/dist/components/ui/scroll-area.js.map +1 -0
  642. package/dist/components/ui/select.d.ts +2 -0
  643. package/dist/components/ui/select.d.ts.map +1 -0
  644. package/dist/components/ui/select.js +2 -0
  645. package/dist/components/ui/select.js.map +1 -0
  646. package/dist/components/ui/separator.d.ts +5 -0
  647. package/dist/components/ui/separator.d.ts.map +1 -0
  648. package/dist/components/ui/separator.js +8 -0
  649. package/dist/components/ui/separator.js.map +1 -0
  650. package/dist/components/ui/sheet.d.ts +26 -0
  651. package/dist/components/ui/sheet.d.ts.map +1 -0
  652. package/dist/components/ui/sheet.js +37 -0
  653. package/dist/components/ui/sheet.js.map +1 -0
  654. package/dist/components/ui/sidebar.d.ts +67 -0
  655. package/dist/components/ui/sidebar.d.ts.map +1 -0
  656. package/dist/components/ui/sidebar.js +233 -0
  657. package/dist/components/ui/sidebar.js.map +1 -0
  658. package/dist/components/ui/skeleton.d.ts +3 -0
  659. package/dist/components/ui/skeleton.d.ts.map +1 -0
  660. package/dist/components/ui/skeleton.js +7 -0
  661. package/dist/components/ui/skeleton.js.map +1 -0
  662. package/dist/components/ui/slider.d.ts +5 -0
  663. package/dist/components/ui/slider.d.ts.map +1 -0
  664. package/dist/components/ui/slider.js +8 -0
  665. package/dist/components/ui/slider.js.map +1 -0
  666. package/dist/components/ui/sonner.d.ts +5 -0
  667. package/dist/components/ui/sonner.d.ts.map +1 -0
  668. package/dist/components/ui/sonner.js +25 -0
  669. package/dist/components/ui/sonner.js.map +1 -0
  670. package/dist/components/ui/spinner.d.ts +3 -0
  671. package/dist/components/ui/spinner.d.ts.map +1 -0
  672. package/dist/components/ui/spinner.js +7 -0
  673. package/dist/components/ui/spinner.js.map +1 -0
  674. package/dist/components/ui/switch.d.ts +5 -0
  675. package/dist/components/ui/switch.d.ts.map +1 -0
  676. package/dist/components/ui/switch.js +8 -0
  677. package/dist/components/ui/switch.js.map +1 -0
  678. package/dist/components/ui/table.d.ts +11 -0
  679. package/dist/components/ui/table.d.ts.map +1 -0
  680. package/dist/components/ui/table.js +21 -0
  681. package/dist/components/ui/table.js.map +1 -0
  682. package/dist/components/ui/tabs.d.ts +8 -0
  683. package/dist/components/ui/tabs.d.ts.map +1 -0
  684. package/dist/components/ui/tabs.js +13 -0
  685. package/dist/components/ui/tabs.js.map +1 -0
  686. package/dist/components/ui/textarea.d.ts +6 -0
  687. package/dist/components/ui/textarea.d.ts.map +1 -0
  688. package/dist/components/ui/textarea.js +9 -0
  689. package/dist/components/ui/textarea.js.map +1 -0
  690. package/dist/components/ui/toast.d.ts +16 -0
  691. package/dist/components/ui/toast.d.ts.map +1 -0
  692. package/dist/components/ui/toast.js +34 -0
  693. package/dist/components/ui/toast.js.map +1 -0
  694. package/dist/components/ui/toaster.d.ts +2 -0
  695. package/dist/components/ui/toaster.d.ts.map +1 -0
  696. package/dist/components/ui/toaster.js +10 -0
  697. package/dist/components/ui/toaster.js.map +1 -0
  698. package/dist/components/ui/toggle-group.d.ts +13 -0
  699. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  700. package/dist/components/ui/toggle-group.js +21 -0
  701. package/dist/components/ui/toggle-group.js.map +1 -0
  702. package/dist/components/ui/toggle.d.ts +13 -0
  703. package/dist/components/ui/toggle.d.ts.map +1 -0
  704. package/dist/components/ui/toggle.js +26 -0
  705. package/dist/components/ui/toggle.js.map +1 -0
  706. package/dist/components/ui/tooltip.d.ts +8 -0
  707. package/dist/components/ui/tooltip.d.ts.map +1 -0
  708. package/dist/components/ui/tooltip.js +11 -0
  709. package/dist/components/ui/tooltip.js.map +1 -0
  710. package/dist/components/ui/use-toast.d.ts +3 -0
  711. package/dist/components/ui/use-toast.d.ts.map +1 -0
  712. package/dist/components/ui/use-toast.js +3 -0
  713. package/dist/components/ui/use-toast.js.map +1 -0
  714. package/dist/components/usage-alerts-panel.d.ts +11 -0
  715. package/dist/components/usage-alerts-panel.d.ts.map +1 -0
  716. package/dist/components/usage-alerts-panel.js +125 -0
  717. package/dist/components/usage-alerts-panel.js.map +1 -0
  718. package/dist/components/workspace-app-card.d.ts +8 -0
  719. package/dist/components/workspace-app-card.d.ts.map +1 -0
  720. package/dist/components/workspace-app-card.js +198 -0
  721. package/dist/components/workspace-app-card.js.map +1 -0
  722. package/dist/components/workspace-app-host.d.ts +50 -0
  723. package/dist/components/workspace-app-host.d.ts.map +1 -0
  724. package/dist/components/workspace-app-host.js +386 -0
  725. package/dist/components/workspace-app-host.js.map +1 -0
  726. package/dist/components/workspace-app-search.d.ts +10 -0
  727. package/dist/components/workspace-app-search.d.ts.map +1 -0
  728. package/dist/components/workspace-app-search.js +27 -0
  729. package/dist/components/workspace-app-search.js.map +1 -0
  730. package/dist/components/workspace-resource-effective-stack.d.ts +11 -0
  731. package/dist/components/workspace-resource-effective-stack.d.ts.map +1 -0
  732. package/dist/components/workspace-resource-effective-stack.js +65 -0
  733. package/dist/components/workspace-resource-effective-stack.js.map +1 -0
  734. package/dist/components/workspace-resource-impact-preview.d.ts +9 -0
  735. package/dist/components/workspace-resource-impact-preview.d.ts.map +1 -0
  736. package/dist/components/workspace-resource-impact-preview.js +44 -0
  737. package/dist/components/workspace-resource-impact-preview.js.map +1 -0
  738. package/dist/components/workspace-template-card.d.ts +58 -0
  739. package/dist/components/workspace-template-card.d.ts.map +1 -0
  740. package/dist/components/workspace-template-card.js +113 -0
  741. package/dist/components/workspace-template-card.js.map +1 -0
  742. package/dist/config.d.ts +40 -0
  743. package/dist/config.d.ts.map +1 -0
  744. package/dist/config.js +7 -0
  745. package/dist/config.js.map +1 -0
  746. package/dist/db/index.d.ts +7 -0
  747. package/dist/db/index.d.ts.map +1 -0
  748. package/dist/db/index.js +35 -0
  749. package/dist/db/index.js.map +1 -0
  750. package/dist/db/migrations.d.ts +3 -0
  751. package/dist/db/migrations.d.ts.map +1 -0
  752. package/dist/db/migrations.js +250 -0
  753. package/dist/db/migrations.js.map +1 -0
  754. package/dist/db/schema.d.ts +3059 -0
  755. package/dist/db/schema.d.ts.map +1 -0
  756. package/dist/db/schema.js +194 -0
  757. package/dist/db/schema.js.map +1 -0
  758. package/dist/hooks/use-mobile.d.ts +2 -0
  759. package/dist/hooks/use-mobile.d.ts.map +1 -0
  760. package/dist/hooks/use-mobile.js +2 -0
  761. package/dist/hooks/use-mobile.js.map +1 -0
  762. package/dist/hooks/use-navigation-state.d.ts +25 -0
  763. package/dist/hooks/use-navigation-state.d.ts.map +1 -0
  764. package/dist/hooks/use-navigation-state.js +353 -0
  765. package/dist/hooks/use-navigation-state.js.map +1 -0
  766. package/dist/hooks/use-toast.d.ts +45 -0
  767. package/dist/hooks/use-toast.d.ts.map +1 -0
  768. package/dist/hooks/use-toast.js +127 -0
  769. package/dist/hooks/use-toast.js.map +1 -0
  770. package/dist/index.d.ts +15 -0
  771. package/dist/index.d.ts.map +1 -0
  772. package/dist/index.js +15 -0
  773. package/dist/index.js.map +1 -0
  774. package/dist/lib/agent-pack.d.ts +31 -0
  775. package/dist/lib/agent-pack.d.ts.map +1 -0
  776. package/dist/lib/agent-pack.js +149 -0
  777. package/dist/lib/agent-pack.js.map +1 -0
  778. package/dist/lib/automation-display.d.ts +22 -0
  779. package/dist/lib/automation-display.d.ts.map +1 -0
  780. package/dist/lib/automation-display.js +88 -0
  781. package/dist/lib/automation-display.js.map +1 -0
  782. package/dist/lib/automations.d.ts +32 -0
  783. package/dist/lib/automations.d.ts.map +1 -0
  784. package/dist/lib/automations.js +28 -0
  785. package/dist/lib/automations.js.map +1 -0
  786. package/dist/lib/browser-chat-bridge.d.ts +8 -0
  787. package/dist/lib/browser-chat-bridge.d.ts.map +1 -0
  788. package/dist/lib/browser-chat-bridge.js +48 -0
  789. package/dist/lib/browser-chat-bridge.js.map +1 -0
  790. package/dist/lib/browser-chat-protocol.d.ts +33 -0
  791. package/dist/lib/browser-chat-protocol.d.ts.map +1 -0
  792. package/dist/lib/browser-chat-protocol.js +82 -0
  793. package/dist/lib/browser-chat-protocol.js.map +1 -0
  794. package/dist/lib/catch-all-target.d.ts +17 -0
  795. package/dist/lib/catch-all-target.d.ts.map +1 -0
  796. package/dist/lib/catch-all-target.js +103 -0
  797. package/dist/lib/catch-all-target.js.map +1 -0
  798. package/dist/lib/embed-session-recovery.d.ts +3 -0
  799. package/dist/lib/embed-session-recovery.d.ts.map +1 -0
  800. package/dist/lib/embed-session-recovery.js +18 -0
  801. package/dist/lib/embed-session-recovery.js.map +1 -0
  802. package/dist/lib/other-apps.d.ts +16 -0
  803. package/dist/lib/other-apps.d.ts.map +1 -0
  804. package/dist/lib/other-apps.js +36 -0
  805. package/dist/lib/other-apps.js.map +1 -0
  806. package/dist/lib/overview-chat.d.ts +9 -0
  807. package/dist/lib/overview-chat.d.ts.map +1 -0
  808. package/dist/lib/overview-chat.js +16 -0
  809. package/dist/lib/overview-chat.js.map +1 -0
  810. package/dist/lib/simple-agent-profile.d.ts +36 -0
  811. package/dist/lib/simple-agent-profile.d.ts.map +1 -0
  812. package/dist/lib/simple-agent-profile.js +183 -0
  813. package/dist/lib/simple-agent-profile.js.map +1 -0
  814. package/dist/lib/task-queue.d.ts +19 -0
  815. package/dist/lib/task-queue.d.ts.map +1 -0
  816. package/dist/lib/task-queue.js +54 -0
  817. package/dist/lib/task-queue.js.map +1 -0
  818. package/dist/lib/thread-link-preview.d.ts +23 -0
  819. package/dist/lib/thread-link-preview.d.ts.map +1 -0
  820. package/dist/lib/thread-link-preview.js +150 -0
  821. package/dist/lib/thread-link-preview.js.map +1 -0
  822. package/dist/lib/utils.d.ts +3 -0
  823. package/dist/lib/utils.d.ts.map +1 -0
  824. package/dist/lib/utils.js +6 -0
  825. package/dist/lib/utils.js.map +1 -0
  826. package/dist/lib/workspace-app-layout.d.ts +19 -0
  827. package/dist/lib/workspace-app-layout.d.ts.map +1 -0
  828. package/dist/lib/workspace-app-layout.js +75 -0
  829. package/dist/lib/workspace-app-layout.js.map +1 -0
  830. package/dist/lib/workspace-apps.d.ts +72 -0
  831. package/dist/lib/workspace-apps.d.ts.map +1 -0
  832. package/dist/lib/workspace-apps.js +228 -0
  833. package/dist/lib/workspace-apps.js.map +1 -0
  834. package/dist/lib/workspace-apps.test.d.ts +2 -0
  835. package/dist/lib/workspace-apps.test.d.ts.map +1 -0
  836. package/dist/lib/workspace-apps.test.js +105 -0
  837. package/dist/lib/workspace-apps.test.js.map +1 -0
  838. package/dist/routes/index.d.ts +32 -0
  839. package/dist/routes/index.d.ts.map +1 -0
  840. package/dist/routes/index.js +89 -0
  841. package/dist/routes/index.js.map +1 -0
  842. package/dist/routes/pages/$appId.d.ts +8 -0
  843. package/dist/routes/pages/$appId.d.ts.map +1 -0
  844. package/dist/routes/pages/$appId.js +126 -0
  845. package/dist/routes/pages/$appId.js.map +1 -0
  846. package/dist/routes/pages/_index.d.ts +22 -0
  847. package/dist/routes/pages/_index.d.ts.map +1 -0
  848. package/dist/routes/pages/_index.js +53 -0
  849. package/dist/routes/pages/_index.js.map +1 -0
  850. package/dist/routes/pages/_index.test.d.ts +2 -0
  851. package/dist/routes/pages/_index.test.d.ts.map +1 -0
  852. package/dist/routes/pages/_index.test.js +29 -0
  853. package/dist/routes/pages/_index.test.js.map +1 -0
  854. package/dist/routes/pages/admin._index.d.ts +5 -0
  855. package/dist/routes/pages/admin._index.d.ts.map +1 -0
  856. package/dist/routes/pages/admin._index.js +44 -0
  857. package/dist/routes/pages/admin._index.js.map +1 -0
  858. package/dist/routes/pages/admin.d.ts +5 -0
  859. package/dist/routes/pages/admin.d.ts.map +1 -0
  860. package/dist/routes/pages/admin.js +10 -0
  861. package/dist/routes/pages/admin.js.map +1 -0
  862. package/dist/routes/pages/agent-integrations.d.ts +5 -0
  863. package/dist/routes/pages/agent-integrations.d.ts.map +1 -0
  864. package/dist/routes/pages/agent-integrations.js +15 -0
  865. package/dist/routes/pages/agent-integrations.js.map +1 -0
  866. package/dist/routes/pages/agents.d.ts +5 -0
  867. package/dist/routes/pages/agents.d.ts.map +1 -0
  868. package/dist/routes/pages/agents.js +96 -0
  869. package/dist/routes/pages/agents.js.map +1 -0
  870. package/dist/routes/pages/approval.d.ts +5 -0
  871. package/dist/routes/pages/approval.d.ts.map +1 -0
  872. package/dist/routes/pages/approval.js +58 -0
  873. package/dist/routes/pages/approval.js.map +1 -0
  874. package/dist/routes/pages/approvals.d.ts +5 -0
  875. package/dist/routes/pages/approvals.d.ts.map +1 -0
  876. package/dist/routes/pages/approvals.js +55 -0
  877. package/dist/routes/pages/approvals.js.map +1 -0
  878. package/dist/routes/pages/apps.$appId.d.ts +6 -0
  879. package/dist/routes/pages/apps.$appId.d.ts.map +1 -0
  880. package/dist/routes/pages/apps.$appId.js +15 -0
  881. package/dist/routes/pages/apps.$appId.js.map +1 -0
  882. package/dist/routes/pages/apps.d.ts +5 -0
  883. package/dist/routes/pages/apps.d.ts.map +1 -0
  884. package/dist/routes/pages/apps.js +113 -0
  885. package/dist/routes/pages/apps.js.map +1 -0
  886. package/dist/routes/pages/audit.d.ts +5 -0
  887. package/dist/routes/pages/audit.d.ts.map +1 -0
  888. package/dist/routes/pages/audit.js +14 -0
  889. package/dist/routes/pages/audit.js.map +1 -0
  890. package/dist/routes/pages/automations.d.ts +5 -0
  891. package/dist/routes/pages/automations.d.ts.map +1 -0
  892. package/dist/routes/pages/automations.js +124 -0
  893. package/dist/routes/pages/automations.js.map +1 -0
  894. package/dist/routes/pages/browser-chat.d.ts +5 -0
  895. package/dist/routes/pages/browser-chat.d.ts.map +1 -0
  896. package/dist/routes/pages/browser-chat.js +43 -0
  897. package/dist/routes/pages/browser-chat.js.map +1 -0
  898. package/dist/routes/pages/browser-connect.d.ts +5 -0
  899. package/dist/routes/pages/browser-connect.d.ts.map +1 -0
  900. package/dist/routes/pages/browser-connect.js +72 -0
  901. package/dist/routes/pages/browser-connect.js.map +1 -0
  902. package/dist/routes/pages/chat.d.ts +5 -0
  903. package/dist/routes/pages/chat.d.ts.map +1 -0
  904. package/dist/routes/pages/chat.js +192 -0
  905. package/dist/routes/pages/chat.js.map +1 -0
  906. package/dist/routes/pages/destinations.d.ts +5 -0
  907. package/dist/routes/pages/destinations.d.ts.map +1 -0
  908. package/dist/routes/pages/destinations.js +96 -0
  909. package/dist/routes/pages/destinations.js.map +1 -0
  910. package/dist/routes/pages/dream-settings.d.ts +34 -0
  911. package/dist/routes/pages/dream-settings.d.ts.map +1 -0
  912. package/dist/routes/pages/dream-settings.js +68 -0
  913. package/dist/routes/pages/dream-settings.js.map +1 -0
  914. package/dist/routes/pages/dreams.d.ts +5 -0
  915. package/dist/routes/pages/dreams.d.ts.map +1 -0
  916. package/dist/routes/pages/dreams.js +455 -0
  917. package/dist/routes/pages/dreams.js.map +1 -0
  918. package/dist/routes/pages/extensions.$id.d.ts +5 -0
  919. package/dist/routes/pages/extensions.$id.d.ts.map +1 -0
  920. package/dist/routes/pages/extensions.$id.js +9 -0
  921. package/dist/routes/pages/extensions.$id.js.map +1 -0
  922. package/dist/routes/pages/extensions._index.d.ts +5 -0
  923. package/dist/routes/pages/extensions._index.d.ts.map +1 -0
  924. package/dist/routes/pages/extensions._index.js +9 -0
  925. package/dist/routes/pages/extensions._index.js.map +1 -0
  926. package/dist/routes/pages/identities.d.ts +5 -0
  927. package/dist/routes/pages/identities.d.ts.map +1 -0
  928. package/dist/routes/pages/identities.js +20 -0
  929. package/dist/routes/pages/identities.js.map +1 -0
  930. package/dist/routes/pages/integrations.d.ts +5 -0
  931. package/dist/routes/pages/integrations.d.ts.map +1 -0
  932. package/dist/routes/pages/integrations.js +196 -0
  933. package/dist/routes/pages/integrations.js.map +1 -0
  934. package/dist/routes/pages/messaging.d.ts +5 -0
  935. package/dist/routes/pages/messaging.d.ts.map +1 -0
  936. package/dist/routes/pages/messaging.js +10 -0
  937. package/dist/routes/pages/messaging.js.map +1 -0
  938. package/dist/routes/pages/metrics.d.ts +5 -0
  939. package/dist/routes/pages/metrics.d.ts.map +1 -0
  940. package/dist/routes/pages/metrics.js +305 -0
  941. package/dist/routes/pages/metrics.js.map +1 -0
  942. package/dist/routes/pages/new-app.d.ts +5 -0
  943. package/dist/routes/pages/new-app.d.ts.map +1 -0
  944. package/dist/routes/pages/new-app.js +12 -0
  945. package/dist/routes/pages/new-app.js.map +1 -0
  946. package/dist/routes/pages/operations.d.ts +5 -0
  947. package/dist/routes/pages/operations.d.ts.map +1 -0
  948. package/dist/routes/pages/operations.js +53 -0
  949. package/dist/routes/pages/operations.js.map +1 -0
  950. package/dist/routes/pages/overview.d.ts +18 -0
  951. package/dist/routes/pages/overview.d.ts.map +1 -0
  952. package/dist/routes/pages/overview.js +19 -0
  953. package/dist/routes/pages/overview.js.map +1 -0
  954. package/dist/routes/pages/settings.d.ts +5 -0
  955. package/dist/routes/pages/settings.d.ts.map +1 -0
  956. package/dist/routes/pages/settings.js +57 -0
  957. package/dist/routes/pages/settings.js.map +1 -0
  958. package/dist/routes/pages/team.d.ts +5 -0
  959. package/dist/routes/pages/team.d.ts.map +1 -0
  960. package/dist/routes/pages/team.js +9 -0
  961. package/dist/routes/pages/team.js.map +1 -0
  962. package/dist/routes/pages/thread-debug.d.ts +5 -0
  963. package/dist/routes/pages/thread-debug.d.ts.map +1 -0
  964. package/dist/routes/pages/thread-debug.js +563 -0
  965. package/dist/routes/pages/thread-debug.js.map +1 -0
  966. package/dist/routes/pages/tools.$id.d.ts +5 -0
  967. package/dist/routes/pages/tools.$id.d.ts.map +1 -0
  968. package/dist/routes/pages/tools.$id.js +9 -0
  969. package/dist/routes/pages/tools.$id.js.map +1 -0
  970. package/dist/routes/pages/tools._index.d.ts +5 -0
  971. package/dist/routes/pages/tools._index.d.ts.map +1 -0
  972. package/dist/routes/pages/tools._index.js +9 -0
  973. package/dist/routes/pages/tools._index.js.map +1 -0
  974. package/dist/routes/pages/transactional-email.$appId.$id.d.ts +5 -0
  975. package/dist/routes/pages/transactional-email.$appId.$id.d.ts.map +1 -0
  976. package/dist/routes/pages/transactional-email.$appId.$id.js +147 -0
  977. package/dist/routes/pages/transactional-email.$appId.$id.js.map +1 -0
  978. package/dist/routes/pages/transactional-email.d.ts +5 -0
  979. package/dist/routes/pages/transactional-email.d.ts.map +1 -0
  980. package/dist/routes/pages/transactional-email.js +143 -0
  981. package/dist/routes/pages/transactional-email.js.map +1 -0
  982. package/dist/routes/pages/vault.d.ts +5 -0
  983. package/dist/routes/pages/vault.d.ts.map +1 -0
  984. package/dist/routes/pages/vault.js +214 -0
  985. package/dist/routes/pages/vault.js.map +1 -0
  986. package/dist/routes/pages/workspace.d.ts +5 -0
  987. package/dist/routes/pages/workspace.d.ts.map +1 -0
  988. package/dist/routes/pages/workspace.js +336 -0
  989. package/dist/routes/pages/workspace.js.map +1 -0
  990. package/dist/server/index.d.ts +44 -0
  991. package/dist/server/index.d.ts.map +1 -0
  992. package/dist/server/index.js +71 -0
  993. package/dist/server/index.js.map +1 -0
  994. package/dist/server/lib/agent-pack-store.d.ts +24 -0
  995. package/dist/server/lib/agent-pack-store.d.ts.map +1 -0
  996. package/dist/server/lib/agent-pack-store.js +22 -0
  997. package/dist/server/lib/agent-pack-store.js.map +1 -0
  998. package/dist/server/lib/app-creation-store.d.ts +164 -0
  999. package/dist/server/lib/app-creation-store.d.ts.map +1 -0
  1000. package/dist/server/lib/app-creation-store.js +1975 -0
  1001. package/dist/server/lib/app-creation-store.js.map +1 -0
  1002. package/dist/server/lib/browser-extension-allowlist.d.ts +9 -0
  1003. package/dist/server/lib/browser-extension-allowlist.d.ts.map +1 -0
  1004. package/dist/server/lib/browser-extension-allowlist.js +39 -0
  1005. package/dist/server/lib/browser-extension-allowlist.js.map +1 -0
  1006. package/dist/server/lib/curated-workspace-templates.d.ts +22 -0
  1007. package/dist/server/lib/curated-workspace-templates.d.ts.map +1 -0
  1008. package/dist/server/lib/curated-workspace-templates.js +137 -0
  1009. package/dist/server/lib/curated-workspace-templates.js.map +1 -0
  1010. package/dist/server/lib/dispatch-integrations.d.ts +16 -0
  1011. package/dist/server/lib/dispatch-integrations.d.ts.map +1 -0
  1012. package/dist/server/lib/dispatch-integrations.js +411 -0
  1013. package/dist/server/lib/dispatch-integrations.js.map +1 -0
  1014. package/dist/server/lib/dispatch-remote-commands.d.ts +83 -0
  1015. package/dist/server/lib/dispatch-remote-commands.d.ts.map +1 -0
  1016. package/dist/server/lib/dispatch-remote-commands.js +256 -0
  1017. package/dist/server/lib/dispatch-remote-commands.js.map +1 -0
  1018. package/dist/server/lib/dispatch-routing.d.ts +6 -0
  1019. package/dist/server/lib/dispatch-routing.d.ts.map +1 -0
  1020. package/dist/server/lib/dispatch-routing.js +30 -0
  1021. package/dist/server/lib/dispatch-routing.js.map +1 -0
  1022. package/dist/server/lib/dispatch-store.d.ts +342 -0
  1023. package/dist/server/lib/dispatch-store.d.ts.map +1 -0
  1024. package/dist/server/lib/dispatch-store.js +725 -0
  1025. package/dist/server/lib/dispatch-store.js.map +1 -0
  1026. package/dist/server/lib/dreams-store.d.ts +398 -0
  1027. package/dist/server/lib/dreams-store.d.ts.map +1 -0
  1028. package/dist/server/lib/dreams-store.js +2330 -0
  1029. package/dist/server/lib/dreams-store.js.map +1 -0
  1030. package/dist/server/lib/env-config.d.ts +3 -0
  1031. package/dist/server/lib/env-config.d.ts.map +1 -0
  1032. package/dist/server/lib/env-config.js +98 -0
  1033. package/dist/server/lib/env-config.js.map +1 -0
  1034. package/dist/server/lib/mcp-access-store.d.ts +16 -0
  1035. package/dist/server/lib/mcp-access-store.d.ts.map +1 -0
  1036. package/dist/server/lib/mcp-access-store.js +92 -0
  1037. package/dist/server/lib/mcp-access-store.js.map +1 -0
  1038. package/dist/server/lib/mcp-gateway.d.ts +90 -0
  1039. package/dist/server/lib/mcp-gateway.d.ts.map +1 -0
  1040. package/dist/server/lib/mcp-gateway.js +1036 -0
  1041. package/dist/server/lib/mcp-gateway.js.map +1 -0
  1042. package/dist/server/lib/onboarding-steps.d.ts +12 -0
  1043. package/dist/server/lib/onboarding-steps.d.ts.map +1 -0
  1044. package/dist/server/lib/onboarding-steps.js +72 -0
  1045. package/dist/server/lib/onboarding-steps.js.map +1 -0
  1046. package/dist/server/lib/provider-api.d.ts +29 -0
  1047. package/dist/server/lib/provider-api.d.ts.map +1 -0
  1048. package/dist/server/lib/provider-api.js +49 -0
  1049. package/dist/server/lib/provider-api.js.map +1 -0
  1050. package/dist/server/lib/thread-debug-store.d.ts +194 -0
  1051. package/dist/server/lib/thread-debug-store.d.ts.map +1 -0
  1052. package/dist/server/lib/thread-debug-store.js +849 -0
  1053. package/dist/server/lib/thread-debug-store.js.map +1 -0
  1054. package/dist/server/lib/thread-link-preview.d.ts +3 -0
  1055. package/dist/server/lib/thread-link-preview.d.ts.map +1 -0
  1056. package/dist/server/lib/thread-link-preview.js +28 -0
  1057. package/dist/server/lib/thread-link-preview.js.map +1 -0
  1058. package/dist/server/lib/usage-metrics-store.d.ts +113 -0
  1059. package/dist/server/lib/usage-metrics-store.d.ts.map +1 -0
  1060. package/dist/server/lib/usage-metrics-store.js +580 -0
  1061. package/dist/server/lib/usage-metrics-store.js.map +1 -0
  1062. package/dist/server/lib/vault-boot-resync.d.ts +23 -0
  1063. package/dist/server/lib/vault-boot-resync.d.ts.map +1 -0
  1064. package/dist/server/lib/vault-boot-resync.js +44 -0
  1065. package/dist/server/lib/vault-boot-resync.js.map +1 -0
  1066. package/dist/server/lib/vault-store.d.ts +381 -0
  1067. package/dist/server/lib/vault-store.d.ts.map +1 -0
  1068. package/dist/server/lib/vault-store.js +1106 -0
  1069. package/dist/server/lib/vault-store.js.map +1 -0
  1070. package/dist/server/lib/workspace-app-action-auth.d.ts +9 -0
  1071. package/dist/server/lib/workspace-app-action-auth.d.ts.map +1 -0
  1072. package/dist/server/lib/workspace-app-action-auth.js +102 -0
  1073. package/dist/server/lib/workspace-app-action-auth.js.map +1 -0
  1074. package/dist/server/lib/workspace-app-chat-proxy.d.ts +52 -0
  1075. package/dist/server/lib/workspace-app-chat-proxy.d.ts.map +1 -0
  1076. package/dist/server/lib/workspace-app-chat-proxy.js +306 -0
  1077. package/dist/server/lib/workspace-app-chat-proxy.js.map +1 -0
  1078. package/dist/server/lib/workspace-resources-store.d.ts +372 -0
  1079. package/dist/server/lib/workspace-resources-store.d.ts.map +1 -0
  1080. package/dist/server/lib/workspace-resources-store.js +1000 -0
  1081. package/dist/server/lib/workspace-resources-store.js.map +1 -0
  1082. package/dist/server/plugins/agent-chat.d.ts +3 -0
  1083. package/dist/server/plugins/agent-chat.d.ts.map +1 -0
  1084. package/dist/server/plugins/agent-chat.js +94 -0
  1085. package/dist/server/plugins/agent-chat.js.map +1 -0
  1086. package/dist/server/plugins/auth.d.ts +9 -0
  1087. package/dist/server/plugins/auth.d.ts.map +1 -0
  1088. package/dist/server/plugins/auth.js +31 -0
  1089. package/dist/server/plugins/auth.js.map +1 -0
  1090. package/dist/server/plugins/core-routes.d.ts +4 -0
  1091. package/dist/server/plugins/core-routes.d.ts.map +1 -0
  1092. package/dist/server/plugins/core-routes.js +18 -0
  1093. package/dist/server/plugins/core-routes.js.map +1 -0
  1094. package/dist/server/plugins/db.d.ts +11 -0
  1095. package/dist/server/plugins/db.d.ts.map +1 -0
  1096. package/dist/server/plugins/db.js +18 -0
  1097. package/dist/server/plugins/db.js.map +1 -0
  1098. package/dist/server/plugins/integrations.d.ts +8 -0
  1099. package/dist/server/plugins/integrations.d.ts.map +1 -0
  1100. package/dist/server/plugins/integrations.js +72 -0
  1101. package/dist/server/plugins/integrations.js.map +1 -0
  1102. package/dist/shared/app-roles.d.ts +9 -0
  1103. package/dist/shared/app-roles.d.ts.map +1 -0
  1104. package/dist/shared/app-roles.js +7 -0
  1105. package/dist/shared/app-roles.js.map +1 -0
  1106. package/dist/shared/chat-first-pane.d.ts +8 -0
  1107. package/dist/shared/chat-first-pane.d.ts.map +1 -0
  1108. package/dist/shared/chat-first-pane.js +8 -0
  1109. package/dist/shared/chat-first-pane.js.map +1 -0
  1110. package/dist/shared/feature-flags.d.ts +8 -0
  1111. package/dist/shared/feature-flags.d.ts.map +1 -0
  1112. package/dist/shared/feature-flags.js +17 -0
  1113. package/dist/shared/feature-flags.js.map +1 -0
  1114. package/dist/shared/workspace-app-chat.d.ts +23 -0
  1115. package/dist/shared/workspace-app-chat.d.ts.map +1 -0
  1116. package/dist/shared/workspace-app-chat.js +45 -0
  1117. package/dist/shared/workspace-app-chat.js.map +1 -0
  1118. package/dist/shared/workspace-sso.d.ts +48 -0
  1119. package/dist/shared/workspace-sso.d.ts.map +1 -0
  1120. package/dist/shared/workspace-sso.js +142 -0
  1121. package/dist/shared/workspace-sso.js.map +1 -0
  1122. package/package.json +118 -0
  1123. package/src/actions/apply-dream-proposal.ts +13 -0
  1124. package/src/actions/approve-dispatch-change.ts +12 -0
  1125. package/src/actions/approve-vault-request.ts +24 -0
  1126. package/src/actions/archive-workspace-app.ts +17 -0
  1127. package/src/actions/ask_app.ts +26 -0
  1128. package/src/actions/ask_app_status.ts +16 -0
  1129. package/src/actions/connect-external-agent.ts +92 -0
  1130. package/src/actions/create-browser-chat-session.spec.ts +122 -0
  1131. package/src/actions/create-browser-chat-session.ts +99 -0
  1132. package/src/actions/create-dream-report.ts +77 -0
  1133. package/src/actions/create-link-token.ts +13 -0
  1134. package/src/actions/create-pylon-ticket.ts +111 -0
  1135. package/src/actions/create-vault-grant.ts +16 -0
  1136. package/src/actions/create-vault-secret.ts +28 -0
  1137. package/src/actions/create-workspace-resource-grant.ts +16 -0
  1138. package/src/actions/create-workspace-resource.ts +37 -0
  1139. package/src/actions/create_embed_session.ts +30 -0
  1140. package/src/actions/create_workspace_app_embed_session.spec.ts +122 -0
  1141. package/src/actions/create_workspace_app_embed_session.ts +102 -0
  1142. package/src/actions/delete-destination.ts +12 -0
  1143. package/src/actions/delete-staged-dataset.ts +10 -0
  1144. package/src/actions/delete-vault-secret.ts +13 -0
  1145. package/src/actions/delete-workspace-resource.ts +13 -0
  1146. package/src/actions/deny-vault-request.ts +13 -0
  1147. package/src/actions/ensure-dream-job.ts +77 -0
  1148. package/src/actions/get-agent-thread-debug.ts +41 -0
  1149. package/src/actions/get-app-creation-settings.ts +12 -0
  1150. package/src/actions/get-dispatch-settings.ts +11 -0
  1151. package/src/actions/get-dream-settings.ts +13 -0
  1152. package/src/actions/get-dream.ts +15 -0
  1153. package/src/actions/get-vault-access-settings.ts +12 -0
  1154. package/src/actions/get-workspace-info.ts +12 -0
  1155. package/src/actions/get-workspace-resource-effective-context.ts +35 -0
  1156. package/src/actions/grant-vault-secrets-to-app.ts +21 -0
  1157. package/src/actions/grant-workspace-resources-to-app.ts +17 -0
  1158. package/src/actions/import-agent-pack.ts +146 -0
  1159. package/src/actions/import-agent.ts +102 -0
  1160. package/src/actions/index.spec.ts +59 -0
  1161. package/src/actions/index.ts +210 -0
  1162. package/src/actions/list-agent-pack.ts +43 -0
  1163. package/src/actions/list-agent-run-failures.ts +50 -0
  1164. package/src/actions/list-agent-thread-sources.ts +13 -0
  1165. package/src/actions/list-available-workspace-templates.ts +12 -0
  1166. package/src/actions/list-connected-agents.spec.ts +73 -0
  1167. package/src/actions/list-connected-agents.ts +112 -0
  1168. package/src/actions/list-curated-workspace-templates.spec.ts +36 -0
  1169. package/src/actions/list-curated-workspace-templates.ts +12 -0
  1170. package/src/actions/list-destinations.ts +11 -0
  1171. package/src/actions/list-dispatch-approvals.ts +11 -0
  1172. package/src/actions/list-dispatch-audit.ts +13 -0
  1173. package/src/actions/list-dispatch-overview.ts +19 -0
  1174. package/src/actions/list-dispatch-usage-metrics.ts +30 -0
  1175. package/src/actions/list-dream-candidates.ts +78 -0
  1176. package/src/actions/list-dreams.ts +18 -0
  1177. package/src/actions/list-integrations-catalog.ts +12 -0
  1178. package/src/actions/list-linked-identities.ts +11 -0
  1179. package/src/actions/list-mcp-app-access.ts +27 -0
  1180. package/src/actions/list-staged-datasets.ts +10 -0
  1181. package/src/actions/list-vault-audit.ts +17 -0
  1182. package/src/actions/list-vault-grants.ts +15 -0
  1183. package/src/actions/list-vault-requests.ts +17 -0
  1184. package/src/actions/list-vault-secret-options.ts +14 -0
  1185. package/src/actions/list-vault-secrets.ts +27 -0
  1186. package/src/actions/list-workspace-apps.ts +33 -0
  1187. package/src/actions/list-workspace-resource-grants.ts +15 -0
  1188. package/src/actions/list-workspace-resource-options.ts +24 -0
  1189. package/src/actions/list-workspace-resources-for-app.ts +14 -0
  1190. package/src/actions/list-workspace-resources.ts +24 -0
  1191. package/src/actions/list_apps.spec.ts +52 -0
  1192. package/src/actions/list_apps.ts +36 -0
  1193. package/src/actions/navigate.ts +53 -0
  1194. package/src/actions/open_app.spec.ts +106 -0
  1195. package/src/actions/open_app.ts +152 -0
  1196. package/src/actions/preview-dream-proposal.ts +15 -0
  1197. package/src/actions/preview-workspace-resource-change.ts +26 -0
  1198. package/src/actions/provider-api-audit.spec.ts +51 -0
  1199. package/src/actions/provider-api-catalog.ts +14 -0
  1200. package/src/actions/provider-api-docs.ts +24 -0
  1201. package/src/actions/provider-api-register.spec.ts +193 -0
  1202. package/src/actions/provider-api-register.ts +35 -0
  1203. package/src/actions/provider-api-request.ts +28 -0
  1204. package/src/actions/query-staged-dataset.ts +10 -0
  1205. package/src/actions/read-slack-thread-context.spec.ts +134 -0
  1206. package/src/actions/read-slack-thread-context.ts +171 -0
  1207. package/src/actions/reject-dispatch-change.ts +13 -0
  1208. package/src/actions/reject-dream-proposal.ts +13 -0
  1209. package/src/actions/remix-workspace-template.spec.ts +145 -0
  1210. package/src/actions/remix-workspace-template.ts +106 -0
  1211. package/src/actions/remove-pending-workspace-app.ts +17 -0
  1212. package/src/actions/request-vault-secret.ts +17 -0
  1213. package/src/actions/resolve-integration-source-context.spec.ts +78 -0
  1214. package/src/actions/resolve-integration-source-context.ts +37 -0
  1215. package/src/actions/restore-starter-workspace-resources.ts +18 -0
  1216. package/src/actions/revoke-vault-grant.ts +12 -0
  1217. package/src/actions/revoke-workspace-resource-grant.ts +16 -0
  1218. package/src/actions/scaffold-workspace-app.spec.ts +33 -0
  1219. package/src/actions/scaffold-workspace-app.ts +57 -0
  1220. package/src/actions/search-agent-threads.ts +31 -0
  1221. package/src/actions/send-code-agent-remote-command.ts +60 -0
  1222. package/src/actions/send-platform-message.spec.ts +129 -0
  1223. package/src/actions/send-platform-message.ts +150 -0
  1224. package/src/actions/set-app-creation-settings.ts +22 -0
  1225. package/src/actions/set-dispatch-approval-policy.ts +25 -0
  1226. package/src/actions/set-dream-settings.spec.ts +81 -0
  1227. package/src/actions/set-dream-settings.ts +45 -0
  1228. package/src/actions/set-mcp-app-access.spec.ts +73 -0
  1229. package/src/actions/set-mcp-app-access.ts +56 -0
  1230. package/src/actions/set-vault-access-settings.ts +17 -0
  1231. package/src/actions/start-workspace-app-creation.ts +55 -0
  1232. package/src/actions/sync-vault-to-app.ts +15 -0
  1233. package/src/actions/unarchive-workspace-app.ts +17 -0
  1234. package/src/actions/update-vault-secret.ts +49 -0
  1235. package/src/actions/update-workspace-app-metadata.ts +33 -0
  1236. package/src/actions/update-workspace-resource.ts +20 -0
  1237. package/src/actions/upsert-destination.ts +30 -0
  1238. package/src/actions/view-screen.spec.ts +212 -0
  1239. package/src/actions/view-screen.ts +398 -0
  1240. package/src/client/transactional-emails.spec.ts +91 -0
  1241. package/src/client/transactional-emails.ts +201 -0
  1242. package/src/components/action-query-error.spec.tsx +56 -0
  1243. package/src/components/action-query-error.tsx +32 -0
  1244. package/src/components/admin-navigation.tsx +329 -0
  1245. package/src/components/agents-panel.tsx +383 -0
  1246. package/src/components/app-icon.spec.tsx +44 -0
  1247. package/src/components/app-icon.tsx +177 -0
  1248. package/src/components/app-keys-popover.spec.tsx +146 -0
  1249. package/src/components/app-keys-popover.tsx +300 -0
  1250. package/src/components/app-list-row.tsx +40 -0
  1251. package/src/components/app-open-actions.tsx +5 -0
  1252. package/src/components/app-row-settings.tsx +54 -0
  1253. package/src/components/approval-value-block.spec.tsx +60 -0
  1254. package/src/components/approval-value-block.tsx +33 -0
  1255. package/src/components/automation-run-history-dialog.tsx +247 -0
  1256. package/src/components/connected-app-card.tsx +39 -0
  1257. package/src/components/create-app-popover.spec.tsx +376 -0
  1258. package/src/components/create-app-popover.tsx +677 -0
  1259. package/src/components/dispatch-control-plane.spec.tsx +344 -0
  1260. package/src/components/dispatch-control-plane.tsx +416 -0
  1261. package/src/components/dispatch-shell.tsx +59 -0
  1262. package/src/components/docs-link.tsx +52 -0
  1263. package/src/components/index.ts +21 -0
  1264. package/src/components/layout/Header.tsx +100 -0
  1265. package/src/components/layout/HeaderActions.tsx +1 -0
  1266. package/src/components/layout/Layout.app-chat.spec.ts +31 -0
  1267. package/src/components/layout/Layout.spec.tsx +549 -0
  1268. package/src/components/layout/Layout.tsx +2532 -0
  1269. package/src/components/layout/workspace-apps-rail.tsx +132 -0
  1270. package/src/components/messaging-setup-panel.spec.tsx +261 -0
  1271. package/src/components/messaging-setup-panel.tsx +1131 -0
  1272. package/src/components/other-apps-section.tsx +223 -0
  1273. package/src/components/simple-agents-panel.spec.tsx +153 -0
  1274. package/src/components/simple-agents-panel.tsx +1311 -0
  1275. package/src/components/task-queue-health.tsx +175 -0
  1276. package/src/components/transactional-email-activity.tsx +102 -0
  1277. package/src/components/transactional-email-metrics.tsx +127 -0
  1278. package/src/components/transactional-email-preview.tsx +88 -0
  1279. package/src/components/ui/accordion.tsx +56 -0
  1280. package/src/components/ui/alert-dialog.tsx +139 -0
  1281. package/src/components/ui/alert.tsx +59 -0
  1282. package/src/components/ui/aspect-ratio.tsx +5 -0
  1283. package/src/components/ui/avatar.tsx +48 -0
  1284. package/src/components/ui/badge.tsx +37 -0
  1285. package/src/components/ui/breadcrumb.tsx +115 -0
  1286. package/src/components/ui/button.tsx +56 -0
  1287. package/src/components/ui/calendar.tsx +68 -0
  1288. package/src/components/ui/card.tsx +86 -0
  1289. package/src/components/ui/carousel.tsx +260 -0
  1290. package/src/components/ui/chart.tsx +375 -0
  1291. package/src/components/ui/checkbox.tsx +28 -0
  1292. package/src/components/ui/collapsible.tsx +9 -0
  1293. package/src/components/ui/command.tsx +154 -0
  1294. package/src/components/ui/context-menu.tsx +198 -0
  1295. package/src/components/ui/dialog.tsx +1 -0
  1296. package/src/components/ui/drawer.tsx +128 -0
  1297. package/src/components/ui/dropdown-menu.tsx +1 -0
  1298. package/src/components/ui/form.tsx +177 -0
  1299. package/src/components/ui/hover-card.tsx +27 -0
  1300. package/src/components/ui/input-otp.tsx +69 -0
  1301. package/src/components/ui/input.tsx +22 -0
  1302. package/src/components/ui/label.tsx +24 -0
  1303. package/src/components/ui/menubar.tsx +235 -0
  1304. package/src/components/ui/navigation-menu.tsx +128 -0
  1305. package/src/components/ui/pagination.tsx +121 -0
  1306. package/src/components/ui/popover.tsx +31 -0
  1307. package/src/components/ui/progress.tsx +26 -0
  1308. package/src/components/ui/radio-group.tsx +42 -0
  1309. package/src/components/ui/resizable.tsx +43 -0
  1310. package/src/components/ui/scroll-area.tsx +46 -0
  1311. package/src/components/ui/select.tsx +1 -0
  1312. package/src/components/ui/separator.tsx +29 -0
  1313. package/src/components/ui/sheet.tsx +139 -0
  1314. package/src/components/ui/sidebar.tsx +777 -0
  1315. package/src/components/ui/skeleton.tsx +15 -0
  1316. package/src/components/ui/slider.tsx +26 -0
  1317. package/src/components/ui/sonner.tsx +58 -0
  1318. package/src/components/ui/spinner.tsx +17 -0
  1319. package/src/components/ui/switch.tsx +27 -0
  1320. package/src/components/ui/table.tsx +117 -0
  1321. package/src/components/ui/tabs.tsx +53 -0
  1322. package/src/components/ui/textarea.tsx +23 -0
  1323. package/src/components/ui/toast.tsx +127 -0
  1324. package/src/components/ui/toaster.tsx +33 -0
  1325. package/src/components/ui/toggle-group.tsx +59 -0
  1326. package/src/components/ui/toggle.tsx +43 -0
  1327. package/src/components/ui/tooltip.tsx +28 -0
  1328. package/src/components/ui/use-toast.ts +3 -0
  1329. package/src/components/usage-alerts-panel.tsx +445 -0
  1330. package/src/components/workspace-app-card.spec.tsx +408 -0
  1331. package/src/components/workspace-app-card.tsx +711 -0
  1332. package/src/components/workspace-app-chat-rail.spec.tsx +182 -0
  1333. package/src/components/workspace-app-host.spec.tsx +688 -0
  1334. package/src/components/workspace-app-host.tsx +756 -0
  1335. package/src/components/workspace-app-search.tsx +96 -0
  1336. package/src/components/workspace-resource-effective-stack.spec.tsx +126 -0
  1337. package/src/components/workspace-resource-effective-stack.tsx +159 -0
  1338. package/src/components/workspace-resource-impact-preview.spec.tsx +148 -0
  1339. package/src/components/workspace-resource-impact-preview.tsx +128 -0
  1340. package/src/components/workspace-template-card.spec.tsx +228 -0
  1341. package/src/components/workspace-template-card.tsx +363 -0
  1342. package/src/config.ts +42 -0
  1343. package/src/db/index.ts +40 -0
  1344. package/src/db/migrations.spec.ts +84 -0
  1345. package/src/db/migrations.ts +251 -0
  1346. package/src/db/schema.ts +209 -0
  1347. package/src/hooks/use-mobile.tsx +1 -0
  1348. package/src/hooks/use-navigation-state.spec.ts +166 -0
  1349. package/src/hooks/use-navigation-state.ts +400 -0
  1350. package/src/hooks/use-toast.ts +188 -0
  1351. package/src/index.ts +19 -0
  1352. package/src/lib/agent-pack.spec.ts +47 -0
  1353. package/src/lib/agent-pack.ts +226 -0
  1354. package/src/lib/automation-display.spec.ts +149 -0
  1355. package/src/lib/automation-display.ts +108 -0
  1356. package/src/lib/automations.spec.ts +64 -0
  1357. package/src/lib/automations.ts +66 -0
  1358. package/src/lib/browser-chat-bridge.spec.ts +151 -0
  1359. package/src/lib/browser-chat-bridge.ts +79 -0
  1360. package/src/lib/browser-chat-protocol.spec.ts +113 -0
  1361. package/src/lib/browser-chat-protocol.ts +124 -0
  1362. package/src/lib/catch-all-target.spec.ts +156 -0
  1363. package/src/lib/catch-all-target.ts +125 -0
  1364. package/src/lib/embed-session-recovery.spec.ts +63 -0
  1365. package/src/lib/embed-session-recovery.ts +26 -0
  1366. package/src/lib/other-apps.spec.ts +133 -0
  1367. package/src/lib/other-apps.ts +57 -0
  1368. package/src/lib/overview-chat.spec.ts +51 -0
  1369. package/src/lib/overview-chat.ts +29 -0
  1370. package/src/lib/simple-agent-profile.spec.ts +77 -0
  1371. package/src/lib/simple-agent-profile.ts +247 -0
  1372. package/src/lib/task-queue.spec.ts +57 -0
  1373. package/src/lib/task-queue.ts +72 -0
  1374. package/src/lib/thread-link-preview.ts +160 -0
  1375. package/src/lib/utils.ts +6 -0
  1376. package/src/lib/workspace-app-layout.spec.ts +47 -0
  1377. package/src/lib/workspace-app-layout.ts +121 -0
  1378. package/src/lib/workspace-apps.spec.ts +175 -0
  1379. package/src/lib/workspace-apps.test.ts +151 -0
  1380. package/src/lib/workspace-apps.ts +306 -0
  1381. package/src/routes/index.spec.ts +39 -0
  1382. package/src/routes/index.ts +95 -0
  1383. package/src/routes/pages/$appId.spec.tsx +115 -0
  1384. package/src/routes/pages/$appId.tsx +240 -0
  1385. package/src/routes/pages/_index.test.ts +34 -0
  1386. package/src/routes/pages/_index.tsx +65 -0
  1387. package/src/routes/pages/admin._index.tsx +107 -0
  1388. package/src/routes/pages/admin.tsx +15 -0
  1389. package/src/routes/pages/agent-integrations.tsx +24 -0
  1390. package/src/routes/pages/agents.tsx +251 -0
  1391. package/src/routes/pages/approval.tsx +301 -0
  1392. package/src/routes/pages/approvals.tsx +198 -0
  1393. package/src/routes/pages/apps.$appId.spec.tsx +66 -0
  1394. package/src/routes/pages/apps.$appId.tsx +22 -0
  1395. package/src/routes/pages/apps.tsx +431 -0
  1396. package/src/routes/pages/audit.tsx +71 -0
  1397. package/src/routes/pages/automations.tsx +363 -0
  1398. package/src/routes/pages/browser-chat.spec.tsx +121 -0
  1399. package/src/routes/pages/browser-chat.tsx +89 -0
  1400. package/src/routes/pages/browser-connect.spec.tsx +137 -0
  1401. package/src/routes/pages/browser-connect.tsx +143 -0
  1402. package/src/routes/pages/chat.spec.tsx +183 -0
  1403. package/src/routes/pages/chat.tsx +335 -0
  1404. package/src/routes/pages/destinations.tsx +309 -0
  1405. package/src/routes/pages/dream-settings.spec.ts +131 -0
  1406. package/src/routes/pages/dream-settings.ts +103 -0
  1407. package/src/routes/pages/dreams.tsx +1812 -0
  1408. package/src/routes/pages/extensions.$id.tsx +9 -0
  1409. package/src/routes/pages/extensions._index.tsx +9 -0
  1410. package/src/routes/pages/identities.tsx +106 -0
  1411. package/src/routes/pages/integrations.tsx +541 -0
  1412. package/src/routes/pages/messaging.tsx +17 -0
  1413. package/src/routes/pages/metrics.tsx +1135 -0
  1414. package/src/routes/pages/new-app.tsx +20 -0
  1415. package/src/routes/pages/operations.tsx +132 -0
  1416. package/src/routes/pages/overview.tsx +22 -0
  1417. package/src/routes/pages/settings.tsx +196 -0
  1418. package/src/routes/pages/team.tsx +9 -0
  1419. package/src/routes/pages/thread-debug.spec.tsx +370 -0
  1420. package/src/routes/pages/thread-debug.tsx +1923 -0
  1421. package/src/routes/pages/tools.$id.tsx +9 -0
  1422. package/src/routes/pages/tools._index.tsx +9 -0
  1423. package/src/routes/pages/transactional-email.$appId.$id.tsx +369 -0
  1424. package/src/routes/pages/transactional-email.tsx +575 -0
  1425. package/src/routes/pages/vault.tsx +978 -0
  1426. package/src/routes/pages/workspace.tsx +1213 -0
  1427. package/src/server/index.ts +86 -0
  1428. package/src/server/lib/agent-pack-store.ts +35 -0
  1429. package/src/server/lib/app-creation-store.spec.ts +1018 -0
  1430. package/src/server/lib/app-creation-store.ts +2567 -0
  1431. package/src/server/lib/approval-fencing.spec.ts +489 -0
  1432. package/src/server/lib/browser-extension-allowlist.spec.ts +76 -0
  1433. package/src/server/lib/browser-extension-allowlist.ts +58 -0
  1434. package/src/server/lib/curated-workspace-templates.spec.ts +56 -0
  1435. package/src/server/lib/curated-workspace-templates.ts +187 -0
  1436. package/src/server/lib/dispatch-integrations.spec.ts +428 -0
  1437. package/src/server/lib/dispatch-integrations.ts +528 -0
  1438. package/src/server/lib/dispatch-remote-commands.spec.ts +168 -0
  1439. package/src/server/lib/dispatch-remote-commands.ts +375 -0
  1440. package/src/server/lib/dispatch-routing.spec.ts +44 -0
  1441. package/src/server/lib/dispatch-routing.ts +42 -0
  1442. package/src/server/lib/dispatch-store.ts +1008 -0
  1443. package/src/server/lib/dreams-store.spec.ts +1492 -0
  1444. package/src/server/lib/dreams-store.ts +3187 -0
  1445. package/src/server/lib/env-config.ts +99 -0
  1446. package/src/server/lib/mcp-access-store.spec.ts +171 -0
  1447. package/src/server/lib/mcp-access-store.ts +138 -0
  1448. package/src/server/lib/mcp-gateway.spec.ts +1583 -0
  1449. package/src/server/lib/mcp-gateway.ts +1388 -0
  1450. package/src/server/lib/onboarding-steps.ts +82 -0
  1451. package/src/server/lib/provider-api.ts +69 -0
  1452. package/src/server/lib/thread-debug-store.spec.ts +439 -0
  1453. package/src/server/lib/thread-debug-store.ts +1170 -0
  1454. package/src/server/lib/thread-link-preview.spec.ts +127 -0
  1455. package/src/server/lib/thread-link-preview.ts +32 -0
  1456. package/src/server/lib/usage-metrics-store.spec.ts +240 -0
  1457. package/src/server/lib/usage-metrics-store.ts +879 -0
  1458. package/src/server/lib/vault-boot-resync.spec.ts +68 -0
  1459. package/src/server/lib/vault-boot-resync.ts +50 -0
  1460. package/src/server/lib/vault-store.spec.ts +541 -0
  1461. package/src/server/lib/vault-store.ts +1540 -0
  1462. package/src/server/lib/workspace-app-action-auth.spec.ts +212 -0
  1463. package/src/server/lib/workspace-app-action-auth.ts +122 -0
  1464. package/src/server/lib/workspace-app-chat-proxy.spec.ts +322 -0
  1465. package/src/server/lib/workspace-app-chat-proxy.ts +389 -0
  1466. package/src/server/lib/workspace-resource-approval-lifecycle.spec.ts +227 -0
  1467. package/src/server/lib/workspace-resources-store.spec.ts +1108 -0
  1468. package/src/server/lib/workspace-resources-store.ts +1403 -0
  1469. package/src/server/plugins/agent-chat.spec.ts +43 -0
  1470. package/src/server/plugins/agent-chat.ts +99 -0
  1471. package/src/server/plugins/auth.spec.ts +45 -0
  1472. package/src/server/plugins/auth.ts +36 -0
  1473. package/src/server/plugins/core-routes.ts +29 -0
  1474. package/src/server/plugins/db.ts +20 -0
  1475. package/src/server/plugins/integrations.ts +82 -0
  1476. package/src/shared/app-roles.ts +8 -0
  1477. package/src/shared/chat-first-pane.ts +7 -0
  1478. package/src/shared/feature-flags.ts +20 -0
  1479. package/src/shared/workspace-app-chat.ts +45 -0
  1480. package/src/shared/workspace-sso.ts +173 -0
  1481. package/src/styles/dispatch-css.spec.ts +87 -0
  1482. package/src/styles/dispatch.css +146 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dreams.js","sourceRoot":"","sources":["../../../src/routes/pages/dreams.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n useActionMutation,\n useActionQuery,\n} from \"@agent-native/core/client/hooks\";\nimport {\n IconAlertTriangle,\n IconCalendarTime,\n IconCheck,\n IconDatabase,\n IconFileDiff,\n IconPlayerPlay,\n IconRefresh,\n IconSettings,\n IconX,\n} from \"@tabler/icons-react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useSearchParams } from \"react-router\";\nimport { toast } from \"sonner\";\n\nimport { DispatchShell } from \"../../components/dispatch-shell\";\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"../../components/ui/accordion\";\nimport { Alert, AlertDescription, AlertTitle } from \"../../components/ui/alert\";\nimport { Badge } from \"../../components/ui/badge\";\nimport { Button } from \"../../components/ui/button\";\nimport { Input } from \"../../components/ui/input\";\nimport { Label } from \"../../components/ui/label\";\nimport { ScrollArea } from \"../../components/ui/scroll-area\";\nimport { Separator } from \"../../components/ui/separator\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from \"../../components/ui/sheet\";\nimport { Skeleton } from \"../../components/ui/skeleton\";\nimport { Spinner } from \"../../components/ui/spinner\";\nimport { Switch } from \"../../components/ui/switch\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../../components/ui/table\";\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"../../components/ui/tabs\";\nimport { Textarea } from \"../../components/ui/textarea\";\nimport { cn } from \"../../lib/utils\";\nimport {\n dreamSettingsToDraft,\n dreamSettingsUpdateFromDraft,\n splitSourceIds,\n type DreamSettings,\n type DreamSettingsDraft,\n} from \"./dream-settings\";\n\nexport function meta() {\n return [{ title: \"Dreams — Dispatch\" }];\n}\n\ntype DreamStatus =\n | \"running\"\n | \"completed\"\n | \"failed\"\n | \"pending\"\n | \"applied\"\n | \"rejected\"\n | \"stale\"\n | string;\n\ninterface DreamPass {\n id: string;\n title?: string | null;\n summary?: string | null;\n status?: DreamStatus | null;\n sourceId?: string | null;\n query?: string | null;\n error?: string | null;\n createdAt?: number | string | null;\n startedAt?: number | string | null;\n completedAt?: number | string | null;\n updatedAt?: number | string | null;\n candidateCount?: number | null;\n inspectedThreadCount?: number | null;\n inspectedRunCount?: number | null;\n proposalCount?: number | null;\n proposalCounts?: Record<string, number> | null;\n appliedCount?: number | null;\n rejectedCount?: number | null;\n sourceHealth?: DreamSourceHealth[] | null;\n}\n\ninterface DreamEvidence {\n id?: string | null;\n label?: string | null;\n title?: string | null;\n source?: string | null;\n sourceId?: string | null;\n threadId?: string | null;\n threadTitle?: string | null;\n runId?: string | null;\n kind?: string | null;\n quote?: string | null;\n snippet?: string | null;\n summary?: string | null;\n confidence?: number | null;\n createdAt?: number | string | null;\n [key: string]: unknown;\n}\n\ninterface DreamProposal {\n id: string;\n dreamId?: string | null;\n title?: string | null;\n summary?: string | null;\n status?: DreamStatus | null;\n targetType?: string | null;\n targetPath?: string | null;\n type?: string | null;\n target?: string | null;\n path?: string | null;\n risk?: string | null;\n confidence?: number | null;\n rationale?: string | null;\n content?: string | null;\n evidence?: DreamEvidence[] | null;\n sourceRunIds?: string[] | null;\n createdAt?: number | string | null;\n}\n\ninterface CandidateRun {\n id?: string;\n thread?: {\n id: string;\n ownerEmail: string;\n title: string;\n preview: string;\n messageCount: number;\n createdAt: number;\n updatedAt: number;\n };\n title?: string | null;\n summary?: string | null;\n preview?: string | null;\n ownerEmail?: string | null;\n sourceId?: string | null;\n sourceLabel?: string | null;\n threadId?: string | null;\n runId?: string | null;\n status?: string | null;\n score?: number | null;\n reasons?:\n | string[]\n | Array<{\n code: string;\n label: string;\n score: number;\n evidenceCount: number;\n }>\n | null;\n signals?: string[] | null;\n latestRunStatus?: string | null;\n updatedAt?: number | string | null;\n startedAt?: number | string | null;\n completedAt?: number | string | null;\n evidence?: DreamEvidence[] | null;\n}\n\ninterface DreamSourceHealth {\n sourceId: string;\n label?: string | null;\n status: \"ok\" | \"timed_out\" | \"error\" | string;\n startedAt?: number | string | null;\n completedAt?: number | string | null;\n durationMs: number;\n timeoutMs?: number | null;\n inspectedThreadCount: number;\n candidateCount: number;\n errorCount: number;\n threadErrorCount?: number | null;\n message?: string | null;\n}\n\ninterface DreamDetail {\n dream?: DreamPass | null;\n report?: string | null;\n summary?: string | null;\n proposals?: DreamProposal[] | null;\n candidates?: CandidateRun[] | null;\n inspectedRuns?: CandidateRun[] | null;\n evidence?: DreamEvidence[] | null;\n [key: string]: unknown;\n}\n\ntype ListDreamsResponse =\n | DreamPass[]\n | {\n dreams?: DreamPass[];\n items?: DreamPass[];\n results?: DreamPass[];\n };\n\ntype ListCandidatesResponse =\n | CandidateRun[]\n | {\n candidates?: CandidateRun[];\n items?: CandidateRun[];\n results?: CandidateRun[];\n sources?: DreamSourceHealth[];\n sourceHealth?: DreamSourceHealth[];\n };\n\ntype GetDreamResponse = DreamDetail | null;\n\ninterface CreateDreamReportParams {\n sourceId?: string;\n sourceIds?: string[];\n allSources?: boolean;\n query?: string;\n ownerEmail?: string;\n limit?: number;\n sourceTimeoutMs?: number;\n sourceConcurrency?: number;\n sourceStartStaggerMs?: number;\n threadConcurrency?: number;\n threadTimeoutMs?: number;\n title?: string;\n}\n\ninterface CreateDreamReportResult {\n id?: string;\n dreamId?: string;\n dream?: DreamPass;\n}\n\ninterface ProposalMutationParams {\n id: string;\n reason?: string;\n}\n\ninterface DreamProposalPreview {\n operation?: \"create\" | \"update\" | \"append\" | string;\n targetExists?: boolean;\n currentContent?: string | null;\n proposedContent?: string | null;\n target?: {\n type?: string | null;\n path?: string | null;\n kind?: string | null;\n resourceId?: string | null;\n };\n approval?: {\n required?: boolean;\n policyEnabled?: boolean;\n willRequestApproval?: boolean;\n };\n}\n\nfunction normalizeArray<T>(value: unknown, keys: readonly string[]): T[] {\n if (Array.isArray(value)) return value as T[];\n if (!value || typeof value !== \"object\") return [];\n const record = value as Record<string, unknown>;\n for (const key of keys) {\n if (Array.isArray(record[key])) return record[key] as T[];\n }\n return [];\n}\n\nfunction normalizeSourceHealth(value: unknown): DreamSourceHealth[] {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return [];\n const record = value as Record<string, unknown>;\n if (Array.isArray(record.sources)) {\n return record.sources as DreamSourceHealth[];\n }\n if (Array.isArray(record.sourceHealth)) {\n return record.sourceHealth as DreamSourceHealth[];\n }\n return [];\n}\n\nfunction formatDate(value: number | string | null | undefined): string {\n if (value == null || value === \"\") return \"n/a\";\n const numeric = Number(value);\n const date = Number.isFinite(numeric) ? new Date(numeric) : new Date(value);\n if (Number.isNaN(date.getTime())) return \"n/a\";\n return date.toLocaleString();\n}\n\nfunction compactDate(value: number | string | null | undefined): string {\n if (value == null || value === \"\") return \"n/a\";\n const numeric = Number(value);\n const date = Number.isFinite(numeric) ? new Date(numeric) : new Date(value);\n if (Number.isNaN(date.getTime())) return \"n/a\";\n return date.toLocaleDateString(undefined, {\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n });\n}\n\nfunction json(value: unknown): string {\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n}\n\nfunction plural(value: number, singular: string, pluralLabel = `${singular}s`) {\n return `${value} ${value === 1 ? singular : pluralLabel}`;\n}\n\nfunction dreamLabel(dream: DreamPass, index: number): string {\n return dream.title || `Dream pass ${index + 1}`;\n}\n\nfunction proposalTarget(proposal: DreamProposal): string {\n return (\n proposal.targetPath ||\n proposal.path ||\n proposal.target ||\n proposal.targetType ||\n proposal.type ||\n \"memory\"\n );\n}\n\nfunction evidenceLabel(evidence: DreamEvidence, index: number): string {\n return (\n evidence.label ||\n evidence.title ||\n evidence.threadTitle ||\n evidence.source ||\n evidence.threadId ||\n evidence.runId ||\n `Evidence ${index + 1}`\n );\n}\n\nfunction candidateLabel(candidate: CandidateRun): string {\n return (\n candidate.thread?.title ||\n candidate.title ||\n candidate.summary ||\n candidate.thread?.preview ||\n candidate.preview ||\n candidate.thread?.id ||\n candidate.threadId ||\n candidate.runId ||\n candidate.id ||\n \"candidate\"\n );\n}\n\nfunction candidateSignals(candidate: CandidateRun): string[] {\n const reasons = (candidate.reasons ?? []).map((reason) =>\n typeof reason === \"string\" ? reason : reason.label,\n );\n return [...reasons, ...(candidate.signals ?? [])].filter(Boolean);\n}\n\nfunction candidateId(candidate: CandidateRun): string {\n return (\n candidate.id ||\n candidate.thread?.id ||\n candidate.threadId ||\n candidate.runId ||\n candidateLabel(candidate)\n );\n}\n\nfunction candidateStatus(candidate: CandidateRun): string {\n return candidate.latestRunStatus || candidate.status || \"unknown\";\n}\n\nfunction candidateOwner(candidate: CandidateRun): string {\n return candidate.thread?.ownerEmail || candidate.ownerEmail || \"n/a\";\n}\n\nfunction candidateUpdatedAt(candidate: CandidateRun): number | string | null {\n return (\n candidate.updatedAt ||\n candidate.completedAt ||\n candidate.startedAt ||\n candidate.thread?.updatedAt ||\n null\n );\n}\n\nfunction dreamProposalCount(dream: DreamPass): number {\n return dream.proposalCount ?? dream.proposalCounts?.total ?? 0;\n}\n\nfunction dreamInspectedCount(dream: DreamPass): number {\n return dream.inspectedThreadCount ?? dream.inspectedRunCount ?? 0;\n}\n\nfunction resultDreamId(result: CreateDreamReportResult | null | undefined) {\n return result?.dream?.id || result?.dreamId || result?.id || null;\n}\n\nfunction statusVariant(status: DreamStatus | null | undefined) {\n const normalized = String(status || \"pending\").toLowerCase();\n if (normalized === \"failed\") return \"destructive\" as const;\n if (normalized === \"completed\" || normalized === \"applied\")\n return \"default\" as const;\n if (normalized === \"rejected\" || normalized === \"stale\")\n return \"outline\" as const;\n return \"secondary\" as const;\n}\n\nfunction sourceStatusVariant(status: string | null | undefined) {\n const normalized = String(status || \"ok\").toLowerCase();\n if (normalized === \"error\" || normalized === \"timed_out\") {\n return \"destructive\" as const;\n }\n return \"secondary\" as const;\n}\n\nfunction StatusBadge({ status }: { status?: DreamStatus | null }) {\n const normalized = String(status || \"pending\").toLowerCase();\n return (\n <Badge variant={statusVariant(status)} className=\"capitalize\">\n {normalized.replace(/_/g, \" \")}\n </Badge>\n );\n}\n\nfunction SourceHealthPanel({ sources }: { sources: DreamSourceHealth[] }) {\n if (sources.length === 0) return null;\n const unhealthyCount = sources.filter(\n (source) => String(source.status).toLowerCase() !== \"ok\",\n ).length;\n return (\n <Alert variant={unhealthyCount > 0 ? \"destructive\" : \"default\"}>\n <IconDatabase className=\"h-4 w-4\" />\n <AlertTitle>Source health</AlertTitle>\n <AlertDescription>\n <div className=\"mt-2 flex flex-wrap gap-1.5\">\n {sources.map((source) => (\n <Badge\n key={source.sourceId}\n variant={sourceStatusVariant(source.status)}\n className=\"gap-1\"\n title={\n source.message ||\n `${source.inspectedThreadCount} inspected, ${source.candidateCount} candidates, ${source.durationMs}ms of ${source.timeoutMs ?? \"n/a\"}ms`\n }\n >\n {source.label || source.sourceId}:{\" \"}\n {String(source.status).replace(/_/g, \" \")} · {source.durationMs}\n ms\n </Badge>\n ))}\n </div>\n </AlertDescription>\n </Alert>\n );\n}\n\nfunction isApprovalRequestResult(value: unknown): boolean {\n if (!value || typeof value !== \"object\") return false;\n const record = value as Record<string, unknown>;\n const result = record.result as Record<string, unknown> | undefined;\n return result?.approvalRequired === true;\n}\n\nfunction QueryState({ error, label }: { error: unknown; label: string }) {\n if (!error) return null;\n return (\n <Alert variant=\"destructive\">\n <IconAlertTriangle className=\"h-4 w-4\" />\n <AlertTitle>{label}</AlertTitle>\n <AlertDescription>\n {error instanceof Error ? error.message : String(error)}\n </AlertDescription>\n </Alert>\n );\n}\n\nfunction RawBlock({ value }: { value: unknown }) {\n return (\n <pre className=\"max-h-64 overflow-auto rounded-md border bg-muted/30 p-3 text-xs leading-relaxed text-foreground whitespace-pre-wrap break-words\">\n {typeof value === \"string\" ? value : json(value)}\n </pre>\n );\n}\n\nfunction EmptyPanel({\n title,\n description,\n}: {\n title: string;\n description: string;\n}) {\n return (\n <div className=\"rounded-lg border border-dashed bg-muted/20 px-4 py-8 text-center\">\n <div className=\"text-sm font-medium text-foreground\">{title}</div>\n <div className=\"mx-auto mt-1 max-w-md text-xs leading-relaxed text-muted-foreground\">\n {description}\n </div>\n </div>\n );\n}\n\nfunction DreamListSkeleton() {\n return (\n <div className=\"space-y-2\">\n {Array.from({ length: 5 }).map((_, index) => (\n <div key={index} className=\"rounded-lg border p-3\">\n <Skeleton className=\"h-4 w-2/3\" />\n <Skeleton className=\"mt-2 h-3 w-full\" />\n <Skeleton className=\"mt-2 h-3 w-1/2\" />\n </div>\n ))}\n </div>\n );\n}\n\nfunction ProposalSkeleton() {\n return (\n <div className=\"space-y-3\">\n {Array.from({ length: 3 }).map((_, index) => (\n <div key={index} className=\"rounded-lg border p-4\">\n <Skeleton className=\"h-4 w-1/2\" />\n <Skeleton className=\"mt-3 h-3 w-full\" />\n <Skeleton className=\"mt-2 h-3 w-3/4\" />\n </div>\n ))}\n </div>\n );\n}\n\nfunction DreamSettingsSheet({\n open,\n onOpenChange,\n draft,\n onDraftChange,\n onSave,\n saving,\n loading,\n}: {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n draft: DreamSettingsDraft;\n onDraftChange: (draft: DreamSettingsDraft) => void;\n onSave: () => void;\n saving: boolean;\n loading: boolean;\n}) {\n const sourceIds = splitSourceIds(draft.sourceIdsText);\n const canSave = draft.schedule.trim().length > 0;\n\n function update<K extends keyof DreamSettingsDraft>(\n key: K,\n value: DreamSettingsDraft[K],\n ) {\n onDraftChange({ ...draft, [key]: value });\n }\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetTrigger asChild>\n <Button variant=\"outline\" disabled={loading}>\n <IconSettings size={15} className=\"mr-1.5\" />\n Settings\n </Button>\n </SheetTrigger>\n <SheetContent className=\"flex w-full flex-col p-0 sm:max-w-2xl\">\n <SheetHeader className=\"border-b px-5 py-4\">\n <div className=\"flex flex-wrap items-center gap-2 pr-8\">\n <Badge variant={draft.enabled ? \"default\" : \"secondary\"}>\n {draft.enabled ? \"Enabled\" : \"Paused\"}\n </Badge>\n <Badge variant=\"outline\" className=\"font-mono\">\n {draft.schedule || \"No schedule\"}\n </Badge>\n </div>\n <SheetTitle className=\"mt-2 text-base\">Dream settings</SheetTitle>\n <SheetDescription>\n Configure recurring dream scope, schedule, and scan limits.\n </SheetDescription>\n </SheetHeader>\n\n <ScrollArea className=\"min-h-0 flex-1\">\n <div className=\"space-y-6 p-5\">\n <section className=\"space-y-3\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Schedule\n </div>\n <div className=\"flex items-center justify-between gap-4 rounded-lg border bg-muted/20 px-3 py-3\">\n <div>\n <Label htmlFor=\"dream-enabled\">Recurring dreams</Label>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n Saved setting used by dream jobs.\n </div>\n </div>\n <Switch\n id=\"dream-enabled\"\n checked={draft.enabled}\n onCheckedChange={(checked) => update(\"enabled\", checked)}\n />\n </div>\n <div className=\"grid gap-4 sm:grid-cols-[minmax(0,1fr)_180px]\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-schedule\">Cron schedule</Label>\n <Input\n id=\"dream-schedule\"\n value={draft.schedule}\n onChange={(event) => update(\"schedule\", event.target.value)}\n placeholder=\"0 9 * * 1\"\n className=\"font-mono\"\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-min-candidates\">Min candidates</Label>\n <Input\n id=\"dream-min-candidates\"\n type=\"number\"\n min={0}\n max={50}\n value={draft.minCandidateCount}\n onChange={(event) =>\n update(\"minCandidateCount\", event.target.value)\n }\n />\n </div>\n </div>\n </section>\n\n <Separator />\n\n <section className=\"space-y-3\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Sources\n </div>\n <div className=\"flex items-center justify-between gap-4 rounded-lg border bg-muted/20 px-3 py-3\">\n <div>\n <Label htmlFor=\"dream-all-sources\">All sources</Label>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n Scan every connected thread-debug source.\n </div>\n </div>\n <Switch\n id=\"dream-all-sources\"\n checked={draft.allSources}\n onCheckedChange={(checked) => update(\"allSources\", checked)}\n />\n </div>\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-source-id\">Source ID</Label>\n <Input\n id=\"dream-source-id\"\n value={draft.sourceId}\n onChange={(event) => update(\"sourceId\", event.target.value)}\n disabled={draft.allSources || sourceIds.length > 0}\n placeholder=\"current\"\n className=\"font-mono\"\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-query\">Query</Label>\n <Input\n id=\"dream-query\"\n value={draft.query}\n onChange={(event) => update(\"query\", event.target.value)}\n placeholder=\"Optional search term\"\n />\n </div>\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-source-ids\">Explicit source IDs</Label>\n <Textarea\n id=\"dream-source-ids\"\n value={draft.sourceIdsText}\n onChange={(event) =>\n update(\"sourceIdsText\", event.target.value)\n }\n disabled={draft.allSources}\n rows={3}\n placeholder=\"One source ID per line\"\n className=\"font-mono\"\n />\n </div>\n </section>\n\n <Separator />\n\n <section className=\"space-y-3\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Scan Limits\n </div>\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-limit\">Candidate limit</Label>\n <Input\n id=\"dream-limit\"\n type=\"number\"\n min={1}\n max={50}\n value={draft.limit}\n onChange={(event) => update(\"limit\", event.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-source-timeout\">\n Source timeout ms\n </Label>\n <Input\n id=\"dream-source-timeout\"\n type=\"number\"\n min={1000}\n max={60000}\n value={draft.sourceTimeoutMs}\n onChange={(event) =>\n update(\"sourceTimeoutMs\", event.target.value)\n }\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-source-concurrency\">\n Source concurrency\n </Label>\n <Input\n id=\"dream-source-concurrency\"\n type=\"number\"\n min={1}\n max={8}\n value={draft.sourceConcurrency}\n onChange={(event) =>\n update(\"sourceConcurrency\", event.target.value)\n }\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-start-stagger\">Start stagger ms</Label>\n <Input\n id=\"dream-start-stagger\"\n type=\"number\"\n min={0}\n max={5000}\n value={draft.sourceStartStaggerMs}\n onChange={(event) =>\n update(\"sourceStartStaggerMs\", event.target.value)\n }\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-thread-concurrency\">\n Thread concurrency\n </Label>\n <Input\n id=\"dream-thread-concurrency\"\n type=\"number\"\n min={1}\n max={10}\n value={draft.threadConcurrency}\n onChange={(event) =>\n update(\"threadConcurrency\", event.target.value)\n }\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-thread-timeout\">\n Thread timeout ms\n </Label>\n <Input\n id=\"dream-thread-timeout\"\n type=\"number\"\n min={1000}\n max={30000}\n value={draft.threadTimeoutMs}\n onChange={(event) =>\n update(\"threadTimeoutMs\", event.target.value)\n }\n />\n </div>\n </div>\n </section>\n </div>\n </ScrollArea>\n\n <SheetFooter className=\"gap-2 border-t px-5 py-4\">\n <Button variant=\"outline\" onClick={() => onOpenChange(false)}>\n Close\n </Button>\n <Button disabled={!canSave || saving} onClick={onSave}>\n {saving ? <Spinner className=\"mr-1.5 size-3.5\" /> : null}\n Save settings\n </Button>\n </SheetFooter>\n </SheetContent>\n </Sheet>\n );\n}\n\nfunction ProposalCard({\n proposal,\n applying,\n rejecting,\n onApply,\n onReject,\n}: {\n proposal: DreamProposal;\n applying: boolean;\n rejecting: boolean;\n onApply: () => void;\n onReject: (reason?: string) => void;\n}) {\n const [open, setOpen] = useState(false);\n const [rejectReason, setRejectReason] = useState(\"\");\n const evidence = proposal.evidence ?? [];\n const sourceRunIds = proposal.sourceRunIds ?? [];\n const status = String(proposal.status || \"pending\").toLowerCase();\n const canAct = status === \"pending\";\n const needsApproval =\n proposal.targetType != null && proposal.targetType !== \"personal-memory\";\n const previewQuery = useActionQuery<DreamProposalPreview>(\n \"preview-dream-proposal\",\n { id: proposal.id },\n { enabled: open, staleTime: 0 },\n );\n const preview = previewQuery.data;\n\n return (\n <div className=\"rounded-lg bg-card\">\n <div className=\"flex flex-col gap-3 border-b px-4 py-3 md:flex-row md:items-start md:justify-between\">\n <div className=\"min-w-0\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <StatusBadge status={proposal.status} />\n <Badge variant=\"outline\" className=\"font-mono\">\n {proposalTarget(proposal)}\n </Badge>\n {proposal.risk ? (\n <Badge variant=\"secondary\" className=\"capitalize\">\n {proposal.risk} risk\n </Badge>\n ) : null}\n </div>\n <div className=\"mt-2 text-sm font-medium text-foreground\">\n {proposal.title || proposal.summary || proposal.id}\n </div>\n {proposal.summary && proposal.title ? (\n <div className=\"mt-1 text-xs leading-relaxed text-muted-foreground\">\n {proposal.summary}\n </div>\n ) : null}\n </div>\n <div className=\"flex shrink-0 gap-2\">\n <Sheet open={open} onOpenChange={setOpen}>\n <SheetTrigger asChild>\n <Button size=\"sm\" variant={canAct ? \"default\" : \"outline\"}>\n <IconFileDiff size={14} className=\"mr-1.5\" />\n Review\n </Button>\n </SheetTrigger>\n <SheetContent className=\"flex w-full flex-col p-0 sm:max-w-3xl\">\n <SheetHeader className=\"border-b px-5 py-4\">\n <div className=\"flex flex-wrap items-center gap-2 pr-8\">\n <StatusBadge status={proposal.status} />\n <Badge variant=\"outline\" className=\"font-mono\">\n {preview?.target?.path || proposalTarget(proposal)}\n </Badge>\n <Badge variant=\"secondary\" className=\"capitalize\">\n {preview?.operation || \"review\"}\n </Badge>\n {preview?.approval?.willRequestApproval ? (\n <Badge variant=\"secondary\">Approval request</Badge>\n ) : null}\n </div>\n <SheetTitle className=\"mt-2 text-base\">\n {proposal.title || proposal.summary || proposal.id}\n </SheetTitle>\n <SheetDescription>\n {proposal.summary ||\n \"Review the target, evidence, and proposed content before applying this dream proposal.\"}\n </SheetDescription>\n </SheetHeader>\n\n <ScrollArea className=\"min-h-0 flex-1\">\n <div className=\"space-y-5 p-5\">\n {previewQuery.error ? (\n <QueryState\n error={previewQuery.error}\n label=\"Could not preview proposal\"\n />\n ) : null}\n {previewQuery.isLoading ? <ProposalSkeleton /> : null}\n\n <div className=\"grid gap-3 sm:grid-cols-2\">\n <div className=\"rounded-lg border bg-muted/20 p-3\">\n <div className=\"text-[11px] font-medium uppercase tracking-wide text-muted-foreground\">\n Target\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-foreground\">\n {preview?.target?.path || proposalTarget(proposal)}\n </div>\n <div className=\"mt-2 flex flex-wrap gap-1.5\">\n <Badge variant=\"outline\">\n {preview?.target?.type ||\n proposal.targetType ||\n \"memory\"}\n </Badge>\n {preview?.targetExists ? (\n <Badge variant=\"secondary\">Existing target</Badge>\n ) : (\n <Badge variant=\"secondary\">New target</Badge>\n )}\n </div>\n </div>\n <div className=\"rounded-lg border bg-muted/20 p-3\">\n <div className=\"text-[11px] font-medium uppercase tracking-wide text-muted-foreground\">\n Review gate\n </div>\n <div className=\"mt-1 text-xs leading-relaxed text-foreground\">\n {preview?.approval?.willRequestApproval\n ? \"Applying will create a Dispatch approval request.\"\n : needsApproval\n ? \"Applying writes a shared/workspace resource because approvals are disabled.\"\n : \"Applying writes personal memory directly.\"}\n </div>\n <div className=\"mt-2 flex flex-wrap gap-1.5\">\n {proposal.risk ? (\n <Badge variant=\"outline\" className=\"capitalize\">\n {proposal.risk} risk\n </Badge>\n ) : null}\n {proposal.confidence != null ? (\n <Badge variant=\"outline\">\n {proposal.confidence}% confidence\n </Badge>\n ) : null}\n </div>\n </div>\n </div>\n\n {proposal.rationale ? (\n <div>\n <div className=\"text-xs font-medium text-foreground\">\n Rationale\n </div>\n <div className=\"mt-1 text-xs leading-relaxed text-muted-foreground\">\n {proposal.rationale}\n </div>\n </div>\n ) : null}\n\n <Separator />\n\n <div className=\"grid gap-4 lg:grid-cols-2\">\n <div>\n <div className=\"mb-2 text-xs font-medium text-foreground\">\n Current target\n </div>\n {preview?.currentContent ? (\n <RawBlock value={preview.currentContent} />\n ) : (\n <EmptyPanel\n title=\"No existing content\"\n description=\"This proposal would create a new target or append to an empty target.\"\n />\n )}\n </div>\n <div>\n <div className=\"mb-2 text-xs font-medium text-foreground\">\n Proposed content\n </div>\n <RawBlock\n value={preview?.proposedContent || proposal.content}\n />\n </div>\n </div>\n\n <Separator />\n\n <div>\n <div className=\"mb-2 text-xs font-medium text-foreground\">\n Evidence\n </div>\n {sourceRunIds.length > 0 ? (\n <div className=\"mb-2 flex flex-wrap gap-1.5\">\n {sourceRunIds.map((id) => (\n <Badge\n key={id}\n variant=\"outline\"\n className=\"font-mono\"\n >\n {id}\n </Badge>\n ))}\n </div>\n ) : null}\n {evidence.length > 0 ? (\n <div className=\"space-y-2\">\n {evidence.map((item, index) => (\n <div\n key={item.id || `${proposal.id}-review-${index}`}\n className=\"rounded-md border bg-muted/20 px-3 py-2\"\n >\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <div className=\"text-xs font-medium text-foreground\">\n {evidenceLabel(item, index)}\n </div>\n <div className=\"text-[11px] text-muted-foreground\">\n {formatDate(item.createdAt)}\n </div>\n </div>\n <div className=\"mt-1 text-xs leading-relaxed text-muted-foreground\">\n {item.quote ||\n item.snippet ||\n item.summary ||\n \"No text\"}\n </div>\n </div>\n ))}\n </div>\n ) : (\n <EmptyPanel\n title=\"No structured evidence\"\n description=\"The proposal did not include compact evidence records.\"\n />\n )}\n </div>\n\n {canAct ? (\n <div className=\"space-y-2\">\n <Label htmlFor={`reject-${proposal.id}`}>\n Rejection reason\n </Label>\n <Textarea\n id={`reject-${proposal.id}`}\n value={rejectReason}\n onChange={(event) =>\n setRejectReason(event.target.value)\n }\n placeholder=\"Optional note for the audit log\"\n />\n </div>\n ) : null}\n </div>\n </ScrollArea>\n\n <SheetFooter className=\"gap-2 border-t px-5 py-4\">\n <Button\n variant=\"outline\"\n disabled={!canAct || applying || rejecting}\n onClick={() => {\n onReject(rejectReason.trim() || undefined);\n setOpen(false);\n }}\n >\n {rejecting ? (\n <Spinner className=\"mr-1.5 size-3.5\" />\n ) : (\n <IconX size={14} className=\"mr-1.5\" />\n )}\n Reject\n </Button>\n <Button\n disabled={!canAct || applying || rejecting}\n onClick={() => {\n onApply();\n setOpen(false);\n }}\n >\n {applying ? (\n <Spinner className=\"mr-1.5 size-3.5\" />\n ) : (\n <IconCheck size={14} className=\"mr-1.5\" />\n )}\n {needsApproval ? \"Request approval\" : \"Apply\"}\n </Button>\n </SheetFooter>\n </SheetContent>\n </Sheet>\n </div>\n </div>\n\n <Accordion type=\"multiple\" className=\"px-4\">\n <AccordionItem value=\"evidence\" className=\"border-b-0\">\n <AccordionTrigger className=\"py-3 text-xs hover:no-underline\">\n Evidence and provenance\n </AccordionTrigger>\n <AccordionContent className=\"space-y-3 pb-4\">\n {sourceRunIds.length > 0 ? (\n <div className=\"flex flex-wrap gap-1.5\">\n {sourceRunIds.map((id) => (\n <Badge key={id} variant=\"outline\" className=\"font-mono\">\n {id}\n </Badge>\n ))}\n </div>\n ) : null}\n {evidence.length > 0 ? (\n <div className=\"space-y-2\">\n {evidence.map((item, index) => (\n <div\n key={item.id || `${proposal.id}-evidence-${index}`}\n className=\"rounded-md border bg-muted/20 px-3 py-2\"\n >\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <div className=\"text-xs font-medium text-foreground\">\n {evidenceLabel(item, index)}\n </div>\n <div className=\"text-[11px] text-muted-foreground\">\n {formatDate(item.createdAt)}\n </div>\n </div>\n <div className=\"mt-1 text-xs leading-relaxed text-muted-foreground\">\n {item.quote || item.snippet || item.summary || \"No text\"}\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"text-xs text-muted-foreground\">\n No structured evidence attached yet.\n </div>\n )}\n </AccordionContent>\n </AccordionItem>\n {proposal.content ? (\n <AccordionItem value=\"content\" className=\"border-b-0\">\n <AccordionTrigger className=\"py-3 text-xs hover:no-underline\">\n Proposed content\n </AccordionTrigger>\n <AccordionContent className=\"pb-4\">\n <RawBlock value={proposal.content} />\n </AccordionContent>\n </AccordionItem>\n ) : null}\n </Accordion>\n </div>\n );\n}\n\nexport default function DreamsRoute() {\n const [searchParams, setSearchParams] = useSearchParams();\n const [selectedDreamId, setSelectedDreamId] = useState<string | null>(\n searchParams.get(\"dreamId\"),\n );\n const [settingsOpen, setSettingsOpen] = useState(false);\n const [settingsDraft, setSettingsDraft] = useState<DreamSettingsDraft>(() =>\n dreamSettingsToDraft(null),\n );\n\n const dreamsQuery = useActionQuery<ListDreamsResponse>(\n \"list-dreams\",\n { limit: 25 },\n { staleTime: 15_000 },\n );\n const candidatesQuery = useActionQuery<ListCandidatesResponse>(\n \"list-dream-candidates\",\n {\n limit: 25,\n sourceTimeoutMs: 30_000,\n sourceConcurrency: 2,\n sourceStartStaggerMs: 250,\n threadConcurrency: 3,\n threadTimeoutMs: 8_000,\n },\n { staleTime: 15_000 },\n );\n const dreamSettingsQuery = useActionQuery<DreamSettings>(\n \"get-dream-settings\",\n {},\n { staleTime: 30_000 },\n );\n const dreamDetailQuery = useActionQuery<GetDreamResponse>(\n \"get-dream\",\n { id: selectedDreamId ?? \"\" },\n { enabled: !!selectedDreamId, staleTime: 10_000 },\n );\n\n const dreams = useMemo(\n () =>\n normalizeArray<DreamPass>(dreamsQuery.data, [\n \"dreams\",\n \"items\",\n \"results\",\n ]),\n [dreamsQuery.data],\n );\n const candidates = useMemo(\n () =>\n normalizeArray<CandidateRun>(candidatesQuery.data, [\n \"candidates\",\n \"items\",\n \"results\",\n ]),\n [candidatesQuery.data],\n );\n const candidateSourceHealth = useMemo(\n () => normalizeSourceHealth(candidatesQuery.data),\n [candidatesQuery.data],\n );\n\n useEffect(() => {\n const urlDreamId = searchParams.get(\"dreamId\");\n if (urlDreamId && urlDreamId !== selectedDreamId) {\n setSelectedDreamId(urlDreamId);\n return;\n }\n if (\n selectedDreamId &&\n dreams.some((dream) => dream.id === selectedDreamId)\n ) {\n return;\n }\n if (dreamsQuery.isLoading) return;\n // If the query failed, normalizeArray returns [] but the list is not\n // confirmed empty — preserve the current selection so dreamDetailQuery\n // can still load the detail from the URL param.\n if (dreamsQuery.error) return;\n const nextId = dreams[0]?.id ?? null;\n setSelectedDreamId(nextId);\n if (nextId && nextId !== urlDreamId) {\n const next = new URLSearchParams(searchParams);\n next.set(\"dreamId\", nextId);\n setSearchParams(next, { replace: true });\n } else if (!nextId && urlDreamId) {\n // List settled successfully with no rows — remove the stale URL param\n // so dreamDetailQuery does not fire for an ID that cannot be found.\n const next = new URLSearchParams(searchParams);\n next.delete(\"dreamId\");\n setSearchParams(next, { replace: true });\n }\n }, [\n dreams,\n dreamsQuery.isLoading,\n dreamsQuery.error,\n searchParams,\n selectedDreamId,\n setSearchParams,\n ]);\n\n function selectDream(dreamId: string) {\n setSelectedDreamId(dreamId);\n const next = new URLSearchParams(searchParams);\n next.set(\"dreamId\", dreamId);\n setSearchParams(next, { replace: true });\n }\n\n const createDream = useActionMutation<\n CreateDreamReportResult,\n CreateDreamReportParams\n >(\"create-dream-report\", {\n onSuccess: (result) => {\n const nextId = resultDreamId(result);\n if (nextId) selectDream(nextId);\n toast.success(\"Dream report created\");\n },\n onError: (err) => toast.error(String(err)),\n });\n\n const applyProposal = useActionMutation<unknown, ProposalMutationParams>(\n \"apply-dream-proposal\",\n {\n onSuccess: (result) => {\n toast.success(\n isApprovalRequestResult(result)\n ? \"Approval requested\"\n : \"Proposal applied\",\n );\n dreamDetailQuery.refetch();\n dreamsQuery.refetch();\n },\n onError: (err) => toast.error(String(err)),\n },\n );\n\n const rejectProposal = useActionMutation<unknown, ProposalMutationParams>(\n \"reject-dream-proposal\",\n {\n onSuccess: () => {\n toast.success(\"Proposal rejected\");\n dreamDetailQuery.refetch();\n dreamsQuery.refetch();\n },\n onError: (err) => toast.error(String(err)),\n },\n );\n const ensureDreamSchedule = useActionMutation<\n unknown,\n Partial<DreamSettings>\n >(\"ensure-dream-job\", {\n onSuccess: () => {\n toast.success(\"Dream schedule updated\");\n dreamSettingsQuery.refetch();\n },\n onError: (err) => toast.error(String(err)),\n });\n const saveDreamSettings = useActionMutation<\n DreamSettings,\n Partial<DreamSettings>\n >(\"set-dream-settings\", {\n onSuccess: (settings) => {\n toast.success(\"Dream settings saved\");\n setSettingsDraft(dreamSettingsToDraft(settings));\n setSettingsOpen(false);\n dreamSettingsQuery.refetch();\n candidatesQuery.refetch();\n },\n onError: (err) => toast.error(String(err)),\n });\n\n const detail = dreamDetailQuery.data ?? null;\n const dreamSettings = dreamSettingsQuery.data ?? null;\n const selectedDream =\n detail?.dream ?? dreams.find((dream) => dream.id === selectedDreamId);\n const proposals: DreamProposal[] = detail?.proposals ?? [];\n const inspectedRuns: CandidateRun[] =\n detail?.inspectedRuns ?? detail?.candidates ?? [];\n const evidenceItems: DreamEvidence[] = detail?.evidence ?? [];\n const selectedSourceHealth: DreamSourceHealth[] =\n selectedDream?.sourceHealth ?? [];\n const appliedProposalCount = proposals.filter(\n (proposal) => String(proposal.status || \"\").toLowerCase() === \"applied\",\n ).length;\n\n useEffect(() => {\n if (dreamSettings && !settingsOpen) {\n setSettingsDraft(dreamSettingsToDraft(dreamSettings));\n }\n }, [dreamSettings, settingsOpen]);\n\n function handleSettingsOpenChange(open: boolean) {\n if (open) {\n setSettingsDraft(dreamSettingsToDraft(dreamSettings));\n }\n setSettingsOpen(open);\n }\n\n function saveSettings() {\n const update = dreamSettingsUpdateFromDraft(settingsDraft);\n if (!update.schedule) {\n toast.error(\"Add a cron schedule before saving\");\n return;\n }\n saveDreamSettings.mutate(update);\n }\n\n function runDream(scanAllSources = false) {\n createDream.mutate({\n sourceId: scanAllSources ? \"all\" : \"current\",\n allSources: scanAllSources,\n limit: scanAllSources\n ? 8\n : candidates.length > 0\n ? candidates.length\n : 20,\n sourceTimeoutMs: dreamSettings?.sourceTimeoutMs ?? 30_000,\n sourceConcurrency: dreamSettings?.sourceConcurrency ?? 2,\n sourceStartStaggerMs: dreamSettings?.sourceStartStaggerMs ?? 250,\n threadConcurrency: dreamSettings?.threadConcurrency ?? 3,\n threadTimeoutMs: dreamSettings?.threadTimeoutMs ?? 8_000,\n });\n }\n\n function ensureSchedule() {\n ensureDreamSchedule.mutate({\n schedule: dreamSettings?.schedule,\n sourceId: dreamSettings?.sourceId ?? \"all\",\n sourceIds: dreamSettings?.sourceIds,\n allSources: dreamSettings?.allSources ?? true,\n query: dreamSettings?.query ?? undefined,\n limit: dreamSettings?.limit ?? 8,\n sourceTimeoutMs: dreamSettings?.sourceTimeoutMs ?? 30_000,\n sourceConcurrency: dreamSettings?.sourceConcurrency ?? 2,\n sourceStartStaggerMs: dreamSettings?.sourceStartStaggerMs ?? 250,\n threadConcurrency: dreamSettings?.threadConcurrency ?? 3,\n threadTimeoutMs: dreamSettings?.threadTimeoutMs ?? 8_000,\n minCandidateCount: dreamSettings?.minCandidateCount ?? 1,\n });\n }\n\n return (\n <DispatchShell\n title=\"Dreams\"\n description=\"Review agent runs, propose memory improvements, and apply evidence-backed learning changes.\"\n >\n <div className=\"space-y-4\">\n <div className=\"flex flex-wrap items-center justify-between gap-3 border-b pb-3\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1\">\n {dreamSettings ? (\n <Badge variant=\"outline\" className=\"max-w-full truncate\">\n {dreamSettings.enabled ? \"Enabled\" : \"Paused\"} ·{\" \"}\n {dreamSettings.allSources\n ? \"All sources\"\n : dreamSettings.sourceId}{\" \"}\n · {dreamSettings.schedule}\n </Badge>\n ) : null}\n <span className=\"text-xs text-muted-foreground\">\n {dreams.length} passes · {candidates.length} candidate runs\n </span>\n </div>\n <div className=\"flex flex-wrap items-center gap-2\">\n <DreamSettingsSheet\n open={settingsOpen}\n onOpenChange={handleSettingsOpenChange}\n draft={settingsDraft}\n onDraftChange={setSettingsDraft}\n onSave={saveSettings}\n saving={saveDreamSettings.isPending}\n loading={dreamSettingsQuery.isLoading}\n />\n <Button\n variant=\"outline\"\n onClick={() => {\n dreamsQuery.refetch();\n candidatesQuery.refetch();\n if (selectedDreamId) dreamDetailQuery.refetch();\n }}\n >\n <IconRefresh size={15} className=\"mr-1.5\" />\n Refresh\n </Button>\n <Button\n variant=\"outline\"\n onClick={ensureSchedule}\n disabled={ensureDreamSchedule.isPending}\n >\n {ensureDreamSchedule.isPending ? (\n <Spinner className=\"mr-1.5 size-3.5\" />\n ) : (\n <IconCalendarTime size={15} className=\"mr-1.5\" />\n )}\n Ensure schedule\n </Button>\n <Button\n variant=\"outline\"\n onClick={() => runDream(true)}\n disabled={createDream.isPending}\n >\n {createDream.isPending ? (\n <Spinner className=\"mr-1.5 size-3.5\" />\n ) : (\n <IconDatabase size={15} className=\"mr-1.5\" />\n )}\n Run all sources\n </Button>\n <Button\n onClick={() => runDream(false)}\n disabled={createDream.isPending}\n >\n {createDream.isPending ? (\n <Spinner className=\"mr-1.5 size-3.5\" />\n ) : (\n <IconPlayerPlay size={15} className=\"mr-1.5\" />\n )}\n Run dream\n </Button>\n </div>\n </div>\n\n <div className=\"grid gap-4 lg:grid-cols-[280px_minmax(0,1fr)]\">\n <section className=\"min-w-0 rounded-lg bg-card\">\n <div className=\"border-b px-4 py-3\">\n <div className=\"text-sm font-semibold text-foreground\">\n Recent passes\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n Reports generated from prior agent activity.\n </div>\n </div>\n <div className=\"max-h-[720px] overflow-auto p-3\">\n <QueryState\n error={dreamsQuery.error}\n label=\"Could not load dream passes\"\n />\n {dreamsQuery.isLoading ? <DreamListSkeleton /> : null}\n {!dreamsQuery.isLoading && !dreamsQuery.error ? (\n dreams.length > 0 ? (\n <div className=\"space-y-2\">\n {dreams.map((dream, index) => {\n const selected = dream.id === selectedDreamId;\n return (\n <button\n key={dream.id}\n type=\"button\"\n onClick={() => selectDream(dream.id)}\n className={cn(\n \"w-full rounded-lg border px-3 py-3 text-left transition-colors\",\n selected\n ? \"border-foreground bg-muted\"\n : \"bg-background hover:border-foreground/30 hover:bg-muted/40\",\n )}\n >\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"min-w-0\">\n <div className=\"truncate text-sm font-medium text-foreground\">\n {dreamLabel(dream, index)}\n </div>\n <div className=\"mt-1 truncate font-mono text-[11px] text-muted-foreground\">\n {dream.id}\n </div>\n </div>\n <StatusBadge status={dream.status} />\n </div>\n <div className=\"mt-2 line-clamp-2 text-xs leading-relaxed text-muted-foreground\">\n {dream.summary || \"No summary yet.\"}\n </div>\n <div className=\"mt-3 flex flex-wrap gap-1.5\">\n <Badge variant=\"outline\">\n {plural(dreamProposalCount(dream), \"proposal\")}\n </Badge>\n <Badge variant=\"outline\">\n {plural(dreamInspectedCount(dream), \"run\")}\n </Badge>\n </div>\n <div className=\"mt-2 text-[11px] text-muted-foreground\">\n {compactDate(\n dream.completedAt ??\n dream.updatedAt ??\n dream.startedAt ??\n dream.createdAt,\n )}\n </div>\n </button>\n );\n })}\n </div>\n ) : (\n <EmptyPanel\n title=\"No dreams yet\"\n description=\"Run the first dream pass to review recent agent history and generate proposed memory changes.\"\n />\n )\n ) : null}\n </div>\n </section>\n\n <section className=\"min-w-0 rounded-lg bg-card\">\n <div className=\"border-b px-4 py-3\">\n <div className=\"flex flex-wrap items-center justify-between gap-3\">\n <div className=\"min-w-0\">\n <div className=\"truncate text-sm font-semibold text-foreground\">\n {selectedDream\n ? selectedDream.title || selectedDream.id\n : \"Dream detail\"}\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n {selectedDream\n ? `Completed ${formatDate(\n selectedDream.completedAt ??\n selectedDream.updatedAt ??\n selectedDream.createdAt,\n )}`\n : \"Select a pass or run a new dream.\"}\n </div>\n </div>\n {selectedDream ? (\n <div className=\"flex flex-wrap gap-1.5\">\n <StatusBadge status={selectedDream.status} />\n <Badge variant=\"outline\">\n {plural(appliedProposalCount, \"applied\", \"applied\")}\n </Badge>\n </div>\n ) : null}\n </div>\n </div>\n\n <div className=\"p-4\">\n <QueryState\n error={dreamDetailQuery.error}\n label=\"Could not load dream detail\"\n />\n {dreamDetailQuery.isLoading ? <ProposalSkeleton /> : null}\n {!selectedDreamId && !dreamDetailQuery.isLoading ? (\n <EmptyPanel\n title=\"Nothing selected\"\n description=\"Choose a recent dream pass or run one from candidate agent runs.\"\n />\n ) : null}\n {selectedDreamId &&\n !dreamDetailQuery.isLoading &&\n !dreamDetailQuery.error ? (\n <Tabs defaultValue=\"proposals\" className=\"w-full\">\n <TabsList className=\"grid w-full grid-cols-3\">\n <TabsTrigger value=\"proposals\">Proposals</TabsTrigger>\n <TabsTrigger value=\"report\">Report</TabsTrigger>\n <TabsTrigger value=\"sources\">Sources</TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"proposals\" className=\"mt-4\">\n {proposals.length > 0 ? (\n <div className=\"space-y-3\">\n {proposals.map((proposal) => (\n <ProposalCard\n key={proposal.id}\n proposal={proposal}\n applying={\n applyProposal.isPending &&\n applyProposal.variables?.id === proposal.id\n }\n rejecting={\n rejectProposal.isPending &&\n rejectProposal.variables?.id === proposal.id\n }\n onApply={() =>\n applyProposal.mutate({\n id: proposal.id,\n })\n }\n onReject={(reason) =>\n rejectProposal.mutate({\n id: proposal.id,\n reason,\n })\n }\n />\n ))}\n </div>\n ) : (\n <EmptyPanel\n title=\"No proposals\"\n description=\"This dream did not produce reviewable memory, skill, job, or instruction changes.\"\n />\n )}\n </TabsContent>\n\n <TabsContent value=\"report\" className=\"mt-4\">\n {detail?.report || detail?.summary ? (\n <RawBlock value={detail.report || detail.summary || \"\"} />\n ) : (\n <EmptyPanel\n title=\"No report text\"\n description=\"The dream detail action did not return a report body.\"\n />\n )}\n </TabsContent>\n\n <TabsContent value=\"sources\" className=\"mt-4\">\n {selectedSourceHealth.length > 0 ? (\n <div className=\"mb-4\">\n <SourceHealthPanel sources={selectedSourceHealth} />\n </div>\n ) : null}\n {inspectedRuns.length > 0 || evidenceItems.length ? (\n <Accordion type=\"multiple\" className=\"rounded-lg border\">\n {inspectedRuns.map((run, index) => (\n <AccordionItem\n key={candidateId(run)}\n value={candidateId(run) || `run-${index}`}\n className=\"px-4\"\n >\n <AccordionTrigger className=\"text-sm hover:no-underline\">\n <span className=\"min-w-0 truncate text-left\">\n {candidateLabel(run)}\n </span>\n </AccordionTrigger>\n <AccordionContent className=\"pb-4\">\n <div className=\"grid gap-2 text-xs text-muted-foreground sm:grid-cols-2\">\n <div>\n Thread:{\" \"}\n <span className=\"font-mono text-foreground\">\n {run.thread?.id ?? run.threadId ?? \"n/a\"}\n </span>\n </div>\n <div>\n Run:{\" \"}\n <span className=\"font-mono text-foreground\">\n {run.runId ?? run.id}\n </span>\n </div>\n <div>Owner: {candidateOwner(run)}</div>\n <div>Status: {candidateStatus(run)}</div>\n </div>\n {candidateSignals(run).length > 0 ? (\n <div className=\"mt-3 flex flex-wrap gap-1.5\">\n {candidateSignals(run).map((signal) => (\n <Badge key={signal} variant=\"outline\">\n {signal}\n </Badge>\n ))}\n </div>\n ) : null}\n </AccordionContent>\n </AccordionItem>\n ))}\n {evidenceItems.map((item, index) => (\n <AccordionItem\n key={item.id || `evidence-${index}`}\n value={item.id || `evidence-${index}`}\n className=\"px-4\"\n >\n <AccordionTrigger className=\"text-sm hover:no-underline\">\n {evidenceLabel(item, index)}\n </AccordionTrigger>\n <AccordionContent className=\"pb-4\">\n <RawBlock value={item} />\n </AccordionContent>\n </AccordionItem>\n ))}\n </Accordion>\n ) : (\n <EmptyPanel\n title=\"No source runs\"\n description=\"This dream has no structured source list yet.\"\n />\n )}\n </TabsContent>\n </Tabs>\n ) : null}\n </div>\n </section>\n </div>\n\n <section className=\"min-w-0 rounded-lg bg-card\">\n <div className=\"border-b px-4 py-3\">\n <div>\n <div className=\"text-sm font-semibold text-foreground\">\n Candidate runs\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n Grounded signals ready for review.\n </div>\n </div>\n </div>\n <div className=\"max-h-[720px] overflow-auto p-3\">\n <QueryState\n error={candidatesQuery.error}\n label=\"Could not load candidates\"\n />\n {candidatesQuery.isLoading ? <DreamListSkeleton /> : null}\n {!candidatesQuery.isLoading &&\n !candidatesQuery.error &&\n candidateSourceHealth.length > 0 ? (\n <div className=\"mb-3\">\n <SourceHealthPanel sources={candidateSourceHealth} />\n </div>\n ) : null}\n {!candidatesQuery.isLoading && !candidatesQuery.error ? (\n candidates.length > 0 ? (\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Run</TableHead>\n <TableHead>Signals</TableHead>\n <TableHead className=\"w-20 text-right\">Score</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {candidates.map((candidate) => {\n const id = candidateId(candidate);\n const signals = candidateSignals(candidate);\n return (\n <TableRow key={id}>\n <TableCell className=\"min-w-0 py-3\">\n <div className=\"max-w-[230px] truncate text-sm font-medium text-foreground\">\n {candidateLabel(candidate)}\n </div>\n <div className=\"mt-1 truncate font-mono text-[11px] text-muted-foreground\">\n {candidate.thread?.id ??\n candidate.threadId ??\n candidate.runId ??\n id}\n </div>\n <div className=\"mt-1 text-[11px] text-muted-foreground\">\n {candidateOwner(candidate)} ·{\" \"}\n {compactDate(candidateUpdatedAt(candidate))}\n </div>\n </TableCell>\n <TableCell className=\"py-3\">\n <div className=\"mt-1 flex flex-wrap gap-1\">\n <Badge variant=\"outline\">\n {candidateStatus(candidate)}\n </Badge>\n {signals.slice(0, 2).map((signal) => (\n <Badge key={signal} variant=\"secondary\">\n {signal}\n </Badge>\n ))}\n </div>\n </TableCell>\n <TableCell className=\"py-3 text-right text-sm tabular-nums text-muted-foreground\">\n {candidate.score ?? \"n/a\"}\n </TableCell>\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n ) : (\n <EmptyPanel\n title=\"No candidates\"\n description=\"No recent runs matched the dream candidate heuristics.\"\n />\n )\n ) : null}\n </div>\n </section>\n </div>\n </DispatchShell>\n );\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export declare function meta(): {
2
+ title: string;
3
+ }[];
4
+ export default function ExtensionViewerRoute(): import("node_modules/@types/react").JSX.Element;
5
+ //# sourceMappingURL=extensions.$id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.$id.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/extensions.$id.tsx"],"names":[],"mappings":"AAEA,wBAAgB,IAAI;;IAEnB;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,oDAE3C"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ExtensionViewerPage } from "@agent-native/core/client/extensions";
3
+ export function meta() {
4
+ return [{ title: "Extension \u2014 Dispatch" }];
5
+ }
6
+ export default function ExtensionViewerRoute() {
7
+ return _jsx(ExtensionViewerPage, {});
8
+ }
9
+ //# sourceMappingURL=extensions.$id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.$id.js","sourceRoot":"","sources":["../../../src/routes/pages/extensions.$id.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,MAAM,UAAU,IAAI;IAClB,OAAO,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB;IAC1C,OAAO,KAAC,mBAAmB,KAAG,CAAC;AACjC,CAAC","sourcesContent":["import { ExtensionViewerPage } from \"@agent-native/core/client/extensions\";\n\nexport function meta() {\n return [{ title: \"Extension \\u2014 Dispatch\" }];\n}\n\nexport default function ExtensionViewerRoute() {\n return <ExtensionViewerPage />;\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export declare function meta(): {
2
+ title: string;
3
+ }[];
4
+ export default function ExtensionsRoute(): import("node_modules/@types/react").JSX.Element;
5
+ //# sourceMappingURL=extensions._index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions._index.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/extensions._index.tsx"],"names":[],"mappings":"AAEA,wBAAgB,IAAI;;IAEnB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,oDAEtC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ExtensionsListPage } from "@agent-native/core/client/extensions";
3
+ export function meta() {
4
+ return [{ title: "Extensions \u2014 Dispatch" }];
5
+ }
6
+ export default function ExtensionsRoute() {
7
+ return _jsx(ExtensionsListPage, {});
8
+ }
9
+ //# sourceMappingURL=extensions._index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions._index.js","sourceRoot":"","sources":["../../../src/routes/pages/extensions._index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,MAAM,UAAU,IAAI;IAClB,OAAO,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,eAAe;IACrC,OAAO,KAAC,kBAAkB,KAAG,CAAC;AAChC,CAAC","sourcesContent":["import { ExtensionsListPage } from \"@agent-native/core/client/extensions\";\n\nexport function meta() {\n return [{ title: \"Extensions \\u2014 Dispatch\" }];\n}\n\nexport default function ExtensionsRoute() {\n return <ExtensionsListPage />;\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export declare function meta(): {
2
+ title: string;
3
+ }[];
4
+ export default function IdentitiesRoute(): import("node_modules/@types/react").JSX.Element;
5
+ //# sourceMappingURL=identities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identities.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/identities.tsx"],"names":[],"mappings":"AAUA,wBAAgB,IAAI;;IAEnB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,oDA2FtC"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useActionMutation, useActionQuery, } from "@agent-native/core/client/hooks";
3
+ import { toast } from "sonner";
4
+ import { ActionQueryError } from "../../components/action-query-error.js";
5
+ import { DispatchShell } from "../../components/dispatch-shell.js";
6
+ import { Button } from "../../components/ui/button.js";
7
+ export function meta() {
8
+ return [{ title: "Identities — Dispatch" }];
9
+ }
10
+ export default function IdentitiesRoute() {
11
+ const query = useActionQuery("list-linked-identities", {});
12
+ const { data } = query;
13
+ const createToken = useActionMutation("create-link-token", {
14
+ onSuccess: () => toast.success("Link token created"),
15
+ });
16
+ return (_jsx(DispatchShell, { title: "Identities", description: "Link external senders to workspace users.", children: query.isError ? (_jsx(ActionQueryError, { error: query.error, onRetry: () => void query.refetch() })) : (_jsxs("div", { className: "grid gap-4 xl:grid-cols-2", children: [_jsxs("section", { className: "rounded-2xl bg-card p-5", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsx("h2", { className: "text-lg font-semibold text-foreground", children: "Active links" }), _jsxs("div", { className: "flex shrink-0 gap-2", children: [_jsx(Button, { variant: "outline", onClick: () => createToken.mutate({ platform: "slack" }), children: "New Slack token" }), _jsx(Button, { onClick: () => createToken.mutate({ platform: "telegram" }), children: "New Telegram token" })] })] }), _jsxs("div", { className: "mt-4 space-y-3", children: [(data?.links || []).map((link) => (_jsxs("div", { className: "rounded-xl border bg-muted/30 px-4 py-3", children: [_jsx("div", { className: "text-sm font-medium text-foreground", children: link.externalUserName || link.externalUserId }), _jsxs("div", { className: "mt-1 text-xs text-muted-foreground", children: [link.platform, " \u2192 ", link.ownerEmail] })] }, link.id))), (data?.links?.length || 0) === 0 && (_jsxs("div", { className: "rounded-xl border border-dashed px-4 py-8 text-sm text-muted-foreground", children: ["No linked identities yet. Generate a token and ask the user to send ", _jsx("code", { children: "/link TOKEN" }), " from Slack or Telegram."] }))] })] }), _jsxs("section", { className: "rounded-2xl bg-card p-5", children: [_jsx("h2", { className: "text-lg font-semibold text-foreground", children: "Link tokens" }), _jsxs("div", { className: "mt-4 space-y-3", children: [(data?.tokens || []).map((token) => (_jsxs("div", { className: "rounded-xl border px-4 py-3", children: [_jsxs("div", { className: "text-sm font-medium text-foreground", children: ["/link ", token.token] }), _jsxs("div", { className: "mt-1 text-xs text-muted-foreground", children: [token.platform, " \u00B7 expires", " ", new Date(token.expiresAt).toLocaleString(), token.claimedAt
17
+ ? ` · claimed by ${token.claimedByExternalUserName || token.claimedByExternalUserId}`
18
+ : " · waiting to be claimed"] })] }, token.id))), (data?.tokens?.length || 0) === 0 && (_jsx("div", { className: "rounded-xl border border-dashed px-4 py-8 text-sm text-muted-foreground", children: "No active link tokens." }))] })] })] })) }));
19
+ }
20
+ //# sourceMappingURL=identities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identities.js","sourceRoot":"","sources":["../../../src/routes/pages/identities.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n useActionMutation,\n useActionQuery,\n} from \"@agent-native/core/client/hooks\";\nimport { toast } from \"sonner\";\n\nimport { ActionQueryError } from \"../../components/action-query-error\";\nimport { DispatchShell } from \"../../components/dispatch-shell\";\nimport { Button } from \"../../components/ui/button\";\n\nexport function meta() {\n return [{ title: \"Identities — Dispatch\" }];\n}\n\nexport default function IdentitiesRoute() {\n const query = useActionQuery(\"list-linked-identities\", {});\n const { data } = query;\n const createToken = useActionMutation(\"create-link-token\", {\n onSuccess: () => toast.success(\"Link token created\"),\n });\n\n return (\n <DispatchShell\n title=\"Identities\"\n description=\"Link external senders to workspace users.\"\n >\n {query.isError ? (\n <ActionQueryError\n error={query.error}\n onRetry={() => void query.refetch()}\n />\n ) : (\n <div className=\"grid gap-4 xl:grid-cols-2\">\n <section className=\"rounded-2xl bg-card p-5\">\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <h2 className=\"text-lg font-semibold text-foreground\">\n Active links\n </h2>\n <div className=\"flex shrink-0 gap-2\">\n <Button\n variant=\"outline\"\n onClick={() => createToken.mutate({ platform: \"slack\" })}\n >\n New Slack token\n </Button>\n <Button\n onClick={() => createToken.mutate({ platform: \"telegram\" })}\n >\n New Telegram token\n </Button>\n </div>\n </div>\n <div className=\"mt-4 space-y-3\">\n {(data?.links || []).map((link: any) => (\n <div\n key={link.id}\n className=\"rounded-xl border bg-muted/30 px-4 py-3\"\n >\n <div className=\"text-sm font-medium text-foreground\">\n {link.externalUserName || link.externalUserId}\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n {link.platform} → {link.ownerEmail}\n </div>\n </div>\n ))}\n {(data?.links?.length || 0) === 0 && (\n <div className=\"rounded-xl border border-dashed px-4 py-8 text-sm text-muted-foreground\">\n No linked identities yet. Generate a token and ask the user to\n send <code>/link TOKEN</code> from Slack or Telegram.\n </div>\n )}\n </div>\n </section>\n\n <section className=\"rounded-2xl bg-card p-5\">\n <h2 className=\"text-lg font-semibold text-foreground\">\n Link tokens\n </h2>\n <div className=\"mt-4 space-y-3\">\n {(data?.tokens || []).map((token: any) => (\n <div key={token.id} className=\"rounded-xl border px-4 py-3\">\n <div className=\"text-sm font-medium text-foreground\">\n /link {token.token}\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n {token.platform} · expires{\" \"}\n {new Date(token.expiresAt).toLocaleString()}\n {token.claimedAt\n ? ` · claimed by ${token.claimedByExternalUserName || token.claimedByExternalUserId}`\n : \" · waiting to be claimed\"}\n </div>\n </div>\n ))}\n {(data?.tokens?.length || 0) === 0 && (\n <div className=\"rounded-xl border border-dashed px-4 py-8 text-sm text-muted-foreground\">\n No active link tokens.\n </div>\n )}\n </div>\n </section>\n </div>\n )}\n </DispatchShell>\n );\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export declare function meta(): {
2
+ title: string;
3
+ }[];
4
+ export default function ConnectionsRoute(): import("node_modules/@types/react").JSX.Element;
5
+ //# sourceMappingURL=integrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/integrations.tsx"],"names":[],"mappings":"AAuCA,wBAAgB,IAAI;;IAEnB;AA2TD,MAAM,CAAC,OAAO,UAAU,gBAAgB,oDAwLvC"}
@@ -0,0 +1,196 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useActionMutation, useActionQuery, } from "@agent-native/core/client/hooks";
3
+ import { getDefaultMcpIntegrations, McpIntegrationLogo, } from "@agent-native/core/client/resources";
4
+ import { IconChevronRight, IconLink, IconPlugConnected, IconSearch, } from "@tabler/icons-react";
5
+ import { useQueryClient } from "@tanstack/react-query";
6
+ import { useMemo, useState } from "react";
7
+ import { Link } from "react-router";
8
+ import { toast } from "sonner";
9
+ import { ActionQueryError } from "../../components/action-query-error.js";
10
+ import { DispatchShell } from "../../components/dispatch-shell.js";
11
+ import { Button } from "../../components/ui/button.js";
12
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "../../components/ui/collapsible.js";
13
+ import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "../../components/ui/dialog.js";
14
+ import { Input } from "../../components/ui/input.js";
15
+ import { Label } from "../../components/ui/label.js";
16
+ import { Skeleton } from "../../components/ui/skeleton.js";
17
+ export function meta() {
18
+ return [{ title: "Connections — Dispatch" }];
19
+ }
20
+ function inferProviderFromKey(key, label) {
21
+ const haystack = `${key} ${label}`.toLowerCase();
22
+ for (const provider of [
23
+ "google",
24
+ "slack",
25
+ "sendgrid",
26
+ "github",
27
+ "stripe",
28
+ "hubspot",
29
+ "jira",
30
+ "bigquery",
31
+ "anthropic",
32
+ "openai",
33
+ ]) {
34
+ if (haystack.includes(provider))
35
+ return provider;
36
+ }
37
+ return "other";
38
+ }
39
+ const MCP_INTEGRATIONS_BY_ID = new Map(getDefaultMcpIntegrations().map((integration) => [
40
+ integration.id,
41
+ integration,
42
+ ]));
43
+ const CREDENTIAL_PROVIDER_LOGO_IDS = {
44
+ google: "google-workspace",
45
+ bigquery: "google-workspace",
46
+ jira: "atlassian",
47
+ };
48
+ function credentialLogo(service) {
49
+ const providerId = inferProviderFromKey(service.key, service.label);
50
+ const integration = MCP_INTEGRATIONS_BY_ID.get(CREDENTIAL_PROVIDER_LOGO_IDS[providerId] ?? providerId);
51
+ if (!integration?.logoUrl) {
52
+ return _jsx(IconPlugConnected, { className: "size-4 text-muted-foreground" });
53
+ }
54
+ return (_jsx(McpIntegrationLogo, { name: service.label, logoUrl: integration.logoUrl, integrationId: integration.id, className: "size-full rounded-md border-0 bg-transparent", imageClassName: "size-full p-1" }));
55
+ }
56
+ function ConnectDialog({ service, open, onOpenChange, accessMode, }) {
57
+ const [value, setValue] = useState("");
58
+ const qc = useQueryClient();
59
+ const configuredApps = service.apps.filter((app) => app.configured);
60
+ const configuredAppNames = configuredApps
61
+ .map((app) => app.appName)
62
+ .join(", ");
63
+ const createSecret = useActionMutation("create-vault-secret", {});
64
+ const createGrant = useActionMutation("create-vault-grant", {});
65
+ const syncToApp = useActionMutation("sync-vault-to-app", {});
66
+ function reset() {
67
+ setValue("");
68
+ }
69
+ async function handleSave() {
70
+ const trimmed = value.trim();
71
+ if (!trimmed) {
72
+ toast.error("Enter a value to save");
73
+ return;
74
+ }
75
+ try {
76
+ // 1. Create the secret (or get the existing one — server treats key as
77
+ // the unique identifier). The server returns { secret: { id, ... } }.
78
+ const created = await createSecret.mutateAsync({
79
+ credentialKey: service.key,
80
+ name: service.label,
81
+ value: trimmed,
82
+ provider: inferProviderFromKey(service.key, service.label),
83
+ });
84
+ const secretId = created?.secret?.id ??
85
+ created?.id;
86
+ if (!secretId) {
87
+ throw new Error("Secret created but id missing");
88
+ }
89
+ // 2. Manual mode needs grants; all-apps mode only needs sync.
90
+ if (accessMode === "manual") {
91
+ const targets = service.apps.filter((a) => !a.vaultGranted);
92
+ for (const app of targets) {
93
+ try {
94
+ await createGrant.mutateAsync({
95
+ secretId,
96
+ appId: app.appId,
97
+ });
98
+ }
99
+ catch (err) {
100
+ console.warn(`grant to ${app.appId} failed`, err);
101
+ }
102
+ }
103
+ }
104
+ for (const app of service.apps) {
105
+ try {
106
+ await syncToApp.mutateAsync({ appId: app.appId });
107
+ }
108
+ catch (err) {
109
+ console.warn(`sync to ${app.appId} failed`, err);
110
+ }
111
+ }
112
+ qc.invalidateQueries({
113
+ queryKey: ["action", "list-integrations-catalog"],
114
+ });
115
+ toast.success(`Connected ${service.label}`);
116
+ onOpenChange(false);
117
+ reset();
118
+ }
119
+ catch (err) {
120
+ toast.error(err?.message ?? "Failed to save credential");
121
+ }
122
+ }
123
+ const pending = createSecret.isPending || createGrant.isPending || syncToApp.isPending;
124
+ return (_jsx(Dialog, { open: open, onOpenChange: (next) => {
125
+ if (!next)
126
+ reset();
127
+ onOpenChange(next);
128
+ }, children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsxs(DialogTitle, { children: ["Connect ", service.label] }), _jsxs(DialogDescription, { children: [configuredApps.length > 0
129
+ ? `Configured in ${configuredAppNames}. `
130
+ : "No app currently reports this key as configured. ", "Saving it creates a workspace vault entry using this exact key name. Apps need the same key name to use it."] })] }), _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { children: [_jsx(Label, { className: "text-xs text-muted-foreground", children: "Key" }), _jsx("div", { className: "font-mono text-sm", children: service.key })] }), _jsxs("div", { children: [_jsx(Label, { htmlFor: "connector-value", children: "Value" }), _jsx(Input, { id: "connector-value", type: "password", autoComplete: "off", value: value, onChange: (e) => setValue(e.target.value), placeholder: `Paste your ${service.label} key…`, autoFocus: true })] })] }), _jsxs(DialogFooter, { children: [_jsx(Button, { variant: "outline", onClick: () => onOpenChange(false), disabled: pending, children: "Cancel" }), _jsx(Button, { onClick: handleSave, disabled: pending || !value.trim(), children: pending ? "Saving…" : "Connect" })] })] }) }));
131
+ }
132
+ function ConnectorCard({ service, accessMode, }) {
133
+ const [open, setOpen] = useState(false);
134
+ const configuredApps = service.apps.filter((app) => app.configured);
135
+ const vaultApps = service.apps.filter((app) => app.vaultGranted);
136
+ const isAvailable = configuredApps.length > 0 || vaultApps.length > 0;
137
+ const configuredAppNames = configuredApps
138
+ .map((app) => app.appName)
139
+ .join(", ");
140
+ const vaultAppNames = vaultApps.map((app) => app.appName).join(", ");
141
+ return (_jsxs(_Fragment, { children: [_jsxs("article", { className: "flex min-w-0 items-center gap-3 border-b border-border/60 py-3.5 last:border-b-0", children: [_jsx("div", { className: "flex size-8 shrink-0 items-center justify-center rounded-md bg-muted", children: credentialLogo(service) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx("span", { className: "truncate text-sm font-medium text-foreground", children: service.label }), _jsx("span", { className: isAvailable
142
+ ? "shrink-0 text-[11px] font-medium text-emerald-600 dark:text-emerald-400"
143
+ : "shrink-0 text-[11px] font-medium text-muted-foreground", children: vaultApps.length > 0 ? "Connected" : "App key" })] }), _jsx("p", { className: "mt-0.5 truncate font-mono text-[11px] leading-5 text-muted-foreground/80", children: service.key }), _jsxs("p", { className: "mt-0.5 truncate text-xs leading-5 text-muted-foreground", children: ["Declared by ", service.apps.length, " ", service.apps.length === 1 ? "app" : "apps", configuredApps.length > 0 ? ` · ${configuredAppNames}` : "", vaultApps.length > 0 ? ` · Vault: ${vaultAppNames}` : ""] })] }), _jsxs("button", { type: "button", onClick: () => setOpen(true), className: "inline-flex h-8 shrink-0 items-center justify-center gap-1 rounded-md border border-border bg-background px-2.5 text-xs font-medium text-foreground transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: [isAvailable ? "Manage" : "Connect", _jsx(IconChevronRight, { className: "size-3.5 rtl:-scale-x-100" })] })] }), _jsx(ConnectDialog, { service: service, open: open, onOpenChange: setOpen, accessMode: accessMode })] }));
144
+ }
145
+ function PerAppDetailRow({ app }) {
146
+ const total = (app.integrations ?? []).length;
147
+ const ok = (app.integrations ?? []).filter((i) => i.configured).length;
148
+ return (_jsxs("div", { className: "flex items-center justify-between border-t px-4 py-2.5 first:border-t-0", children: [_jsxs("div", { className: "flex items-center gap-2 min-w-0", children: [_jsx("div", { className: "h-5 w-5 rounded text-[10px] font-bold text-white flex items-center justify-center shrink-0", style: { backgroundColor: app.color }, children: app.appName.charAt(0).toUpperCase() }), _jsx("span", { className: "text-sm truncate", children: app.appName }), !app.reachable && (_jsx("span", { className: "text-xs text-muted-foreground", children: "offline" }))] }), _jsx("span", { className: "text-xs text-muted-foreground", children: total === 0 ? "no integrations" : `${ok}/${total}` })] }));
149
+ }
150
+ export default function ConnectionsRoute() {
151
+ const catalogQuery = useActionQuery("list-integrations-catalog", {});
152
+ const accessQuery = useActionQuery("get-vault-access-settings", {});
153
+ const { data: catalog } = catalogQuery;
154
+ const { data: accessSettings } = accessQuery;
155
+ const isLoading = catalogQuery.isLoading || accessQuery.isLoading;
156
+ const apps = catalog || [];
157
+ const accessMode = accessSettings?.mode === "manual" ? "manual" : "all-apps";
158
+ const [query, setQuery] = useState("");
159
+ const services = useMemo(() => {
160
+ const map = new Map();
161
+ for (const app of apps) {
162
+ for (const intg of app.integrations ?? []) {
163
+ if (!map.has(intg.key)) {
164
+ map.set(intg.key, {
165
+ key: intg.key,
166
+ label: intg.label,
167
+ apps: [],
168
+ });
169
+ }
170
+ map.get(intg.key).apps.push({
171
+ appId: app.appId,
172
+ appName: app.appName,
173
+ color: app.color,
174
+ configured: intg.configured,
175
+ vaultGranted: intg.vaultGranted,
176
+ vaultSecretId: intg.vaultSecretId,
177
+ });
178
+ }
179
+ }
180
+ return Array.from(map.values()).sort((a, b) => a.label.localeCompare(b.label));
181
+ }, [apps]);
182
+ const filteredServices = useMemo(() => {
183
+ const normalized = query.trim().toLowerCase();
184
+ if (!normalized)
185
+ return services;
186
+ return services.filter((service) => service.label.toLowerCase().includes(normalized) ||
187
+ service.key.toLowerCase().includes(normalized));
188
+ }, [query, services]);
189
+ const available = filteredServices.filter((s) => !s.apps.some((a) => a.configured));
190
+ const connected = filteredServices.filter((s) => s.apps.some((a) => a.configured));
191
+ return (_jsxs(DispatchShell, { title: "Connections", description: "Connect workspace credentials declared by apps and manage how they are shared.", children: [catalogQuery.isError || accessQuery.isError ? (_jsx(ActionQueryError, { error: catalogQuery.error ?? accessQuery.error, onRetry: () => {
192
+ void catalogQuery.refetch();
193
+ void accessQuery.refetch();
194
+ } })) : null, !catalogQuery.isError && !isLoading ? (_jsxs("div", { className: "mb-5 flex items-center gap-3", children: [_jsxs("div", { className: "relative min-w-0 flex-1", children: [_jsx(IconSearch, { className: "pointer-events-none absolute start-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" }), _jsx(Input, { value: query, onChange: (event) => setQuery(event.target.value), placeholder: "Search credentials", "aria-label": "Search credentials", className: "h-9 ps-9" })] }), _jsxs("span", { className: "shrink-0 text-xs text-muted-foreground", children: [filteredServices.length, " credential", filteredServices.length === 1 ? "" : "s"] })] })) : null, !catalogQuery.isError && isLoading && services.length === 0 && (_jsx("div", { className: "overflow-hidden rounded-lg bg-card", children: Array.from({ length: 7 }).map((_, index) => (_jsxs("div", { className: "flex items-center gap-3 border-b px-4 py-3 last:border-b-0", children: [_jsx(Skeleton, { className: "size-8 rounded-md" }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx(Skeleton, { className: "h-4 w-40 max-w-full" }), _jsx(Skeleton, { className: "mt-1.5 h-3 w-56 max-w-full" })] }), _jsx(Skeleton, { className: "h-6 w-20 rounded-full" })] }, index))) })), !catalogQuery.isError && !isLoading && services.length === 0 && (_jsx("div", { className: "rounded-2xl border border-dashed px-6 py-12 text-center text-sm text-muted-foreground", children: "No apps with declared integrations are reachable yet." })), available.length > 0 && (_jsxs("section", { children: [_jsxs("div", { className: "mb-3 flex items-baseline justify-between", children: [_jsx("h2", { className: "text-sm font-medium text-foreground", children: "Not configured in apps" }), _jsx("span", { className: "text-xs text-muted-foreground", children: available.length })] }), _jsx("div", { className: "overflow-hidden rounded-lg bg-card", children: available.map((service) => (_jsx(ConnectorCard, { service: service, accessMode: accessMode }, service.key))) })] })), connected.length > 0 && (_jsxs("section", { children: [_jsxs("div", { className: "mb-3 mt-2 flex items-baseline justify-between", children: [_jsx("h2", { className: "text-sm font-medium text-foreground", children: "Configured in apps" }), _jsx("span", { className: "text-xs text-muted-foreground", children: connected.length })] }), _jsx("div", { className: "overflow-hidden rounded-lg bg-card", children: connected.map((service) => (_jsx(ConnectorCard, { service: service, accessMode: accessMode }, service.key))) })] })), apps.length > 0 && (_jsxs(Collapsible, { className: "mt-6 rounded-2xl bg-card", children: [_jsxs(CollapsibleTrigger, { className: "group flex w-full items-center justify-between px-4 py-3 text-sm", children: [_jsxs("span", { className: "flex items-center gap-2 text-muted-foreground", children: [_jsx(IconPlugConnected, { size: 14 }), "Per-app status"] }), _jsx(IconChevronRight, { size: 14, className: "text-muted-foreground transition group-data-[state=open]:rotate-90" })] }), _jsxs(CollapsibleContent, { children: [_jsx("div", { className: "border-t", children: apps.map((app) => (_jsx(PerAppDetailRow, { app: app }, app.appId))) }), _jsxs("div", { className: "flex items-center justify-end gap-1.5 border-t px-4 py-2.5 text-xs text-muted-foreground", children: [_jsx(IconLink, { size: 12 }), _jsx(Link, { to: "/admin/vault", className: "hover:underline", children: "Open vault for advanced sharing" })] })] })] }))] }));
195
+ }
196
+ //# sourceMappingURL=integrations.js.map