@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-store.js","sourceRoot":"","sources":["../../../src/server/lib/dreams-store.ts"],"names":[],"mappings":"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","sourcesContent":["import crypto from \"node:crypto\";\n\nimport {\n and,\n desc,\n eq,\n inArray,\n isNull,\n or,\n} from \"@agent-native/core/db/schema\";\nimport {\n resourceGetByPath,\n resourceList,\n resourcePut,\n SHARED_OWNER,\n} from \"@agent-native/core/resources/store\";\nimport {\n getOrgSetting,\n getUserSetting,\n putOrgSetting,\n putUserSetting,\n} from \"@agent-native/core/settings\";\n\nimport { getDb, schema } from \"../../db/index.js\";\nimport {\n createApprovalRequest,\n currentOrgId,\n currentOwnerEmail,\n getApprovalPolicy,\n recordAudit,\n type DispatchCtx,\n} from \"./dispatch-store.js\";\nimport {\n getAgentThreadDebug,\n listThreadDebugSources,\n searchAgentThreads,\n} from \"./thread-debug-store.js\";\nimport {\n createWorkspaceResource,\n listWorkspaceResources,\n updateWorkspaceResource,\n type WorkspaceResourceKind,\n type WorkspaceResourceScope,\n} from \"./workspace-resources-store.js\";\n\nconst DEFAULT_DREAM_LIMIT = 20;\nconst MAX_DREAM_LIMIT = 50;\nconst DEFAULT_SOURCE_TIMEOUT_MS = 15_000;\nconst MAX_SOURCE_TIMEOUT_MS = 60_000;\nconst DEFAULT_SOURCE_CONCURRENCY = 2;\nconst MAX_SOURCE_CONCURRENCY = 8;\nconst DEFAULT_SOURCE_START_STAGGER_MS = 250;\nconst MAX_SOURCE_START_STAGGER_MS = 5_000;\nconst DEFAULT_THREAD_CONCURRENCY = 3;\nconst MAX_THREAD_CONCURRENCY = 10;\nconst DEFAULT_THREAD_TIMEOUT_MS = 8_000;\nconst MAX_THREAD_TIMEOUT_MS = 30_000;\nconst MEMORY_INDEX_PATH = \"memory/MEMORY.md\";\nconst DREAM_JOB_PATH = \"jobs/dispatch-dream.md\";\nconst DEFAULT_DREAM_CRON = \"0 9 * * 1\";\nconst DREAM_SETTINGS_KEY = \"dispatch-dream-settings\";\n\ntype DreamRow = typeof schema.dispatchDreams.$inferSelect;\ntype DreamProposalRow = typeof schema.dispatchDreamProposals.$inferSelect;\n\ntype DreamStatus = \"running\" | \"completed\" | \"failed\";\ntype ProposalStatus = \"pending\" | \"approval_requested\" | \"applied\" | \"rejected\";\ntype ProposalTargetType =\n | \"personal-memory\"\n | \"shared-learnings\"\n | \"workspace-instruction\"\n | \"workspace-skill\"\n | \"workspace-knowledge\"\n | \"workspace-agent\";\ntype ProposalRisk = \"low\" | \"medium\" | \"high\";\ntype DreamSourceStatus = \"ok\" | \"timed_out\" | \"error\";\n\nexport interface DreamSourceHealth {\n sourceId: string;\n label?: string | null;\n status: DreamSourceStatus;\n startedAt: number;\n completedAt: number;\n durationMs: number;\n timeoutMs: number;\n inspectedThreadCount: number;\n candidateCount: number;\n errorCount: number;\n threadErrorCount: number;\n message?: string | null;\n}\n\ninterface DreamCandidateReason {\n code: string;\n label: string;\n score: number;\n evidenceCount: number;\n}\n\nexport interface DreamEvidence {\n kind: string;\n label: string;\n snippet: string;\n threadId: string;\n threadTitle?: string;\n sourceId?: string | null;\n runId?: string | null;\n messageIndex?: number;\n createdAt?: number | null;\n}\n\nexport interface DreamCandidate {\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 sourceId: string;\n score: number;\n reasons: DreamCandidateReason[];\n evidenceCounts: Record<string, number>;\n evidence: DreamEvidence[];\n latestRunStatus: string | null;\n}\n\nexport interface DreamProposalInput {\n targetType: ProposalTargetType;\n targetPath: string;\n title: string;\n summary: string;\n rationale: string;\n content: string;\n evidence: DreamEvidence[];\n confidence: number;\n risk: ProposalRisk;\n}\n\nexport interface DreamMemoryNote {\n path: string;\n content: string;\n}\n\nexport interface DreamMemoryContext {\n personalIndex: string;\n personalNotes: DreamMemoryNote[];\n sharedLearnings: string;\n workspaceResources?: DreamMemoryNote[];\n}\n\nexport interface DreamProposalBuildResult {\n proposals: DreamProposalInput[];\n guardrailNotes: string[];\n}\n\nexport interface DreamProposalBuildOptions {\n personalMemoryAllowed?: boolean;\n personalMemoryBlockReason?: string | null;\n}\n\nexport interface DreamSettings {\n scope: \"user\" | \"org\";\n scopeId: string;\n enabled: boolean;\n schedule: string;\n sourceId: string;\n sourceIds: string[];\n allSources: boolean;\n query: string | null;\n limit: number;\n sourceTimeoutMs: number;\n sourceConcurrency: number;\n sourceStartStaggerMs: number;\n threadConcurrency: number;\n threadTimeoutMs: number;\n minCandidateCount: number;\n}\n\nfunction id() {\n return crypto.randomUUID();\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction today() {\n return new Date().toISOString().slice(0, 10);\n}\n\nfunction clampLimit(limit: number | undefined) {\n return Math.max(1, Math.min(MAX_DREAM_LIMIT, limit ?? DEFAULT_DREAM_LIMIT));\n}\n\nfunction clampSourceTimeoutMs(timeoutMs: number | undefined) {\n const parsed = Number(timeoutMs ?? DEFAULT_SOURCE_TIMEOUT_MS);\n if (!Number.isFinite(parsed)) return DEFAULT_SOURCE_TIMEOUT_MS;\n return Math.max(1, Math.min(MAX_SOURCE_TIMEOUT_MS, Math.floor(parsed)));\n}\n\nfunction clampSourceConcurrency(value: number | undefined) {\n const parsed = Number(value ?? DEFAULT_SOURCE_CONCURRENCY);\n if (!Number.isFinite(parsed)) return DEFAULT_SOURCE_CONCURRENCY;\n return Math.max(1, Math.min(MAX_SOURCE_CONCURRENCY, Math.floor(parsed)));\n}\n\nfunction clampSourceStartStaggerMs(value: number | undefined) {\n const parsed = Number(value ?? DEFAULT_SOURCE_START_STAGGER_MS);\n if (!Number.isFinite(parsed)) return DEFAULT_SOURCE_START_STAGGER_MS;\n return Math.max(0, Math.min(MAX_SOURCE_START_STAGGER_MS, Math.floor(parsed)));\n}\n\nfunction clampThreadConcurrency(value: number | undefined) {\n const parsed = Number(value ?? DEFAULT_THREAD_CONCURRENCY);\n if (!Number.isFinite(parsed)) return DEFAULT_THREAD_CONCURRENCY;\n return Math.max(1, Math.min(MAX_THREAD_CONCURRENCY, Math.floor(parsed)));\n}\n\nfunction clampThreadTimeoutMs(\n value: number | undefined,\n sourceTimeoutMs: number,\n) {\n const fallback = Math.min(\n DEFAULT_THREAD_TIMEOUT_MS,\n Math.max(1_000, Math.floor(sourceTimeoutMs * 0.6)),\n );\n const parsed = Number(value ?? fallback);\n if (!Number.isFinite(parsed)) return fallback;\n return Math.max(\n 1,\n Math.min(MAX_THREAD_TIMEOUT_MS, sourceTimeoutMs, Math.floor(parsed)),\n );\n}\n\nfunction clampMinCandidateCount(value: number | undefined) {\n const parsed = Number(value ?? 1);\n if (!Number.isFinite(parsed)) return 1;\n return Math.max(0, Math.min(50, Math.floor(parsed)));\n}\n\nfunction dreamSettingsScope() {\n const orgId = currentOrgId();\n if (orgId) return { scope: \"org\" as const, scopeId: orgId };\n return { scope: \"user\" as const, scopeId: currentOwnerEmail() };\n}\n\nfunction normalizeSourceIds(value: unknown): string[] {\n if (!Array.isArray(value)) return [];\n return Array.from(\n new Set(\n value\n .map((entry) => String(entry ?? \"\").trim())\n .filter(Boolean)\n .slice(0, 50),\n ),\n );\n}\n\nfunction normalizeDreamSettings(\n raw: Record<string, unknown> | null | undefined,\n): Omit<DreamSettings, \"scope\" | \"scopeId\"> {\n const sourceIds = normalizeSourceIds(raw?.sourceIds);\n const sourceId = String(raw?.sourceId ?? \"\").trim() || \"all\";\n return {\n enabled: raw?.enabled === true,\n schedule:\n typeof raw?.schedule === \"string\" && cronLooksValid(raw.schedule)\n ? raw.schedule\n : DEFAULT_DREAM_CRON,\n sourceId,\n sourceIds,\n allSources:\n raw?.allSources === true || sourceId === \"all\" || sourceIds.length > 0,\n query:\n typeof raw?.query === \"string\" && raw.query.trim()\n ? raw.query.trim()\n : null,\n limit: clampLimit(Number(raw?.limit ?? 8)),\n sourceTimeoutMs: clampSourceTimeoutMs(\n Number(raw?.sourceTimeoutMs ?? 30_000),\n ),\n sourceConcurrency: clampSourceConcurrency(\n Number(raw?.sourceConcurrency ?? DEFAULT_SOURCE_CONCURRENCY),\n ),\n sourceStartStaggerMs: clampSourceStartStaggerMs(\n Number(raw?.sourceStartStaggerMs ?? DEFAULT_SOURCE_START_STAGGER_MS),\n ),\n threadConcurrency: clampThreadConcurrency(\n Number(raw?.threadConcurrency ?? DEFAULT_THREAD_CONCURRENCY),\n ),\n threadTimeoutMs: clampThreadTimeoutMs(\n Number(raw?.threadTimeoutMs ?? DEFAULT_THREAD_TIMEOUT_MS),\n clampSourceTimeoutMs(Number(raw?.sourceTimeoutMs ?? 30_000)),\n ),\n minCandidateCount: clampMinCandidateCount(\n Number(raw?.minCandidateCount ?? 1),\n ),\n };\n}\n\nexport async function getDreamSettings(): Promise<DreamSettings> {\n const scope = dreamSettingsScope();\n const raw =\n scope.scope === \"org\"\n ? await getOrgSetting(scope.scopeId, DREAM_SETTINGS_KEY)\n : await getUserSetting(scope.scopeId, DREAM_SETTINGS_KEY);\n return {\n ...scope,\n ...normalizeDreamSettings(raw as Record<string, unknown> | null),\n };\n}\n\nexport async function setDreamSettings(\n input: Partial<\n Pick<\n DreamSettings,\n | \"enabled\"\n | \"schedule\"\n | \"sourceId\"\n | \"sourceIds\"\n | \"allSources\"\n | \"query\"\n | \"limit\"\n | \"sourceTimeoutMs\"\n | \"sourceConcurrency\"\n | \"sourceStartStaggerMs\"\n | \"threadConcurrency\"\n | \"threadTimeoutMs\"\n | \"minCandidateCount\"\n >\n >,\n): Promise<DreamSettings> {\n if (input.schedule && !cronLooksValid(input.schedule)) {\n throw new Error(\n 'Invalid cron expression. Use a standard five-field cron like \"0 9 * * 1\".',\n );\n }\n const current = await getDreamSettings();\n const next = normalizeDreamSettings({\n ...current,\n ...input,\n sourceIds:\n input.sourceIds !== undefined\n ? normalizeSourceIds(input.sourceIds)\n : current.sourceIds,\n query:\n input.query === undefined\n ? current.query\n : input.query?.trim()\n ? input.query.trim()\n : null,\n });\n const scope = dreamSettingsScope();\n if (scope.scope === \"org\") {\n await putOrgSetting(scope.scopeId, DREAM_SETTINGS_KEY, next);\n } else {\n await putUserSetting(scope.scopeId, DREAM_SETTINGS_KEY, next);\n }\n await recordAudit({\n action: \"dream.settings.updated\",\n targetType: \"dream-settings\",\n targetId: DREAM_SETTINGS_KEY,\n summary: next.enabled\n ? \"Updated and enabled recurring Dispatch dream settings\"\n : \"Updated recurring Dispatch dream settings\",\n metadata: next,\n });\n return getDreamSettings();\n}\n\nclass DreamSourceTimeoutError extends Error {\n readonly code = \"DREAM_SOURCE_TIMEOUT\";\n\n constructor(sourceId: string, timeoutMs: number) {\n super(`Dream source \"${sourceId}\" timed out after ${timeoutMs}ms.`);\n this.name = \"DreamSourceTimeoutError\";\n }\n}\n\nasync function withTimeout<T>(\n promise: Promise<T>,\n sourceId: string,\n timeoutMs: number,\n): Promise<T> {\n let timeout: ReturnType<typeof setTimeout> | null = null;\n try {\n return await Promise.race([\n promise,\n new Promise<T>((_, reject) => {\n timeout = setTimeout(\n () => reject(new DreamSourceTimeoutError(sourceId, timeoutMs)),\n timeoutMs,\n );\n }),\n ]);\n } finally {\n if (timeout) clearTimeout(timeout);\n }\n}\n\nfunction isDreamSourceTimeout(error: unknown): boolean {\n return (\n error instanceof DreamSourceTimeoutError ||\n (error as any)?.code === \"DREAM_SOURCE_TIMEOUT\"\n );\n}\n\nfunction sleep(ms: number): Promise<void> {\n if (ms <= 0) return Promise.resolve();\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction compactErrorMessage(error: unknown): string {\n return compactText((error as Error)?.message ?? error, 320);\n}\n\nasync function mapWithConcurrency<T, R>(\n items: T[],\n concurrency: number,\n worker: (item: T, index: number) => Promise<R>,\n): Promise<R[]> {\n const results: R[] = new Array(items.length);\n let nextIndex = 0;\n const workerCount = Math.max(1, Math.min(concurrency, items.length));\n await Promise.all(\n Array.from({ length: workerCount }, async () => {\n while (nextIndex < items.length) {\n const index = nextIndex;\n nextIndex += 1;\n results[index] = await worker(items[index]!, index);\n }\n }),\n );\n return results;\n}\n\nfunction scopeFor<T extends { ownerEmail: any; orgId: any }>(\n table: T,\n ctx: DispatchCtx,\n) {\n if (!ctx.orgId) {\n return and(eq(table.ownerEmail, ctx.ownerEmail), isNull(table.orgId));\n }\n return or(eq(table.ownerEmail, ctx.ownerEmail), eq(table.orgId, ctx.orgId));\n}\n\nfunction safeJson(value: unknown): string {\n try {\n return JSON.stringify(value ?? null);\n } catch {\n return \"null\";\n }\n}\n\nfunction safeJsonParse<T>(value: unknown, fallback: T): T {\n if (value == null || value === \"\") return fallback;\n try {\n return JSON.parse(String(value)) as T;\n } catch {\n return fallback;\n }\n}\n\nfunction compactText(value: unknown, max = 260): string {\n const raw =\n typeof value === \"string\" ? value : value == null ? \"\" : safeJson(value);\n const redacted = raw\n .replace(/sk-[A-Za-z0-9_-]{12,}/g, \"sk-REDACTED\")\n .replace(/anthropic-[A-Za-z0-9_-]{12,}/gi, \"anthropic-REDACTED\")\n .replace(/Bearer\\s+[A-Za-z0-9._~+/=-]{12,}/gi, \"Bearer REDACTED\")\n .replace(/\\b[A-Za-z0-9+/]{32,}={0,2}\\b/g, \"REDACTED_TOKEN\")\n .replace(/\\s+/g, \" \")\n .trim();\n if (redacted.length <= max) return redacted;\n return `${redacted.slice(0, max - 1).trimEnd()}…`;\n}\n\nfunction slugify(value: string): string {\n const slug = value\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\")\n .slice(0, 64);\n return slug || \"dispatch-dream\";\n}\n\nfunction parseNumber(value: unknown): number | null {\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n}\n\nfunction objectText(value: unknown): string {\n return compactText(value, 1_200).toLowerCase();\n}\n\nfunction isFailureStatus(status: unknown): boolean {\n const value = String(status ?? \"\").toLowerCase();\n return (\n value.includes(\"fail\") ||\n value.includes(\"error\") ||\n value.includes(\"abort\") ||\n value.includes(\"cancel\") ||\n value.includes(\"timeout\")\n );\n}\n\nfunction isSuccessStatus(status: unknown): boolean {\n const value = String(status ?? \"\").toLowerCase();\n return (\n value === \"success\" ||\n value === \"succeeded\" ||\n value === \"completed\" ||\n value === \"complete\"\n );\n}\n\nfunction isNegativeFeedback(row: Record<string, unknown>): boolean {\n const text = objectText(row);\n const rating =\n parseNumber((row as any).rating) ??\n parseNumber((row as any).score) ??\n parseNumber((row as any).value);\n return (\n text.includes(\"thumbs_down\") ||\n text.includes(\"negative\") ||\n text.includes(\"bad\") ||\n text.includes(\"incorrect\") ||\n text.includes(\"not helpful\") ||\n (rating != null && rating <= 2)\n );\n}\n\nfunction lowerString(value: unknown): string {\n return String(value ?? \"\").toLowerCase();\n}\n\nfunction sameOwnerEmail(a: unknown, b: unknown): boolean {\n const left = String(a ?? \"\")\n .trim()\n .toLowerCase();\n const right = String(b ?? \"\")\n .trim()\n .toLowerCase();\n return Boolean(left && right && left === right);\n}\n\nfunction isEvalFailure(row: Record<string, unknown>): boolean {\n const passed = (row as any).passed;\n const score = parseNumber((row as any).score);\n const status = lowerString((row as any).status);\n const result = lowerString((row as any).result ?? (row as any).outcome);\n return (\n passed === false ||\n status === \"failed\" ||\n status === \"failure\" ||\n status === \"regression\" ||\n result === \"failed\" ||\n result === \"failure\" ||\n result === \"regression\" ||\n (score != null && score < 0.7)\n );\n}\n\nfunction isLowSatisfaction(row: Record<string, unknown>): boolean {\n const text = objectText(row);\n const score =\n parseNumber((row as any).score) ??\n parseNumber((row as any).satisfaction) ??\n parseNumber((row as any).value);\n return (\n text.includes(\"frustrat\") ||\n text.includes(\"unsatisfied\") ||\n text.includes(\"low\") ||\n (score != null && score < 0.65)\n );\n}\n\nfunction reason(\n code: string,\n label: string,\n score: number,\n evidenceCount: number,\n): DreamCandidateReason {\n return { code, label, score, evidenceCount };\n}\n\ntype DreamEvidenceInput = Omit<DreamEvidence, \"snippet\"> & {\n snippet: unknown;\n};\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === \"object\" && !Array.isArray(value));\n}\n\nfunction firstString(\n record: Record<string, unknown>,\n keys: string[],\n): string | null {\n for (const key of keys) {\n const value = record[key];\n if (typeof value === \"string\" && value.trim()) return value.trim();\n }\n return null;\n}\n\nfunction firstNumber(\n record: Record<string, unknown>,\n keys: string[],\n): number | null {\n for (const key of keys) {\n const value = parseNumber(record[key]);\n if (value != null) return value;\n }\n return null;\n}\n\nfunction metadataRecord(value: unknown): Record<string, unknown> {\n if (isRecord(value)) return value;\n if (typeof value !== \"string\" || !value.trim()) return {};\n const parsed = safeJsonParse<Record<string, unknown> | null>(value, null);\n return isRecord(parsed) ? parsed : {};\n}\n\nfunction maybeJsonRecord(value: unknown): Record<string, unknown> | null {\n if (isRecord(value)) return value;\n if (typeof value !== \"string\" || !value.trim().startsWith(\"{\")) return null;\n const parsed = safeJsonParse<Record<string, unknown> | null>(value, null);\n return isRecord(parsed) ? parsed : null;\n}\n\nfunction humanizeKey(value: string): string {\n return value\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n .replace(/[_-]+/g, \" \")\n .replace(/\\s+/g, \" \")\n .trim()\n .toLowerCase();\n}\n\nfunction formatNumber(value: number): string {\n return Number.isInteger(value) ? String(value) : value.toFixed(3);\n}\n\nfunction formatMetadataComparison(\n metadata: Record<string, unknown>,\n): string | null {\n for (const [key, rawActual] of Object.entries(metadata)) {\n if (!/^actual/i.test(key)) continue;\n const expectedKey = key.replace(/^actual/i, \"expected\");\n const actual = parseNumber(rawActual);\n const expected = parseNumber(metadata[expectedKey]);\n if (actual == null || expected == null) continue;\n const rawMetric = key.replace(/^actual/i, \"\");\n const normalizedMetric = rawMetric\n .replace(/[^a-z0-9]+/gi, \"\")\n .toLowerCase();\n const metric =\n normalizedMetric === \"ms\"\n ? \"latency\"\n : normalizedMetric.includes(\"cx\")\n ? \"cost\"\n : humanizeKey(rawMetric) || \"value\";\n const unit = /ms$/i.test(key) ? \"ms\" : \"\";\n return `${metric}: actual ${formatNumber(actual)}${unit}, expected ${formatNumber(expected)}${unit}`;\n }\n\n const actualMs = firstNumber(metadata, [\n \"actualMs\",\n \"actual_ms\",\n \"durationMs\",\n \"duration_ms\",\n ]);\n const expectedMs = firstNumber(metadata, [\n \"expectedMs\",\n \"expected_ms\",\n \"maxMs\",\n \"max_ms\",\n \"thresholdMs\",\n \"threshold_ms\",\n ]);\n if (actualMs != null && expectedMs != null) {\n return `latency: actual ${formatNumber(actualMs)}ms, expected ${formatNumber(expectedMs)}ms`;\n }\n\n return null;\n}\n\nfunction formatEvalFailureEvidence(value: unknown): string {\n const record = maybeJsonRecord(value);\n if (!record) return compactText(value);\n const metadata = metadataRecord(record.metadata ?? record.details);\n const name =\n firstString(record, [\n \"name\",\n \"criteria\",\n \"criterion\",\n \"evalName\",\n \"eval_id\",\n \"metric\",\n \"type\",\n ]) ?? \"evaluation\";\n const score = firstNumber(record, [\"score\", \"value\"]);\n const status =\n firstString(record, [\"status\", \"result\", \"outcome\"]) ??\n (record.passed === false ? \"failed\" : null);\n const message = firstString(record, [\n \"message\",\n \"error\",\n \"reason\",\n \"summary\",\n \"notes\",\n ]);\n const comparison = formatMetadataComparison(metadata);\n const pieces = [`${humanizeKey(name)}${status ? ` ${status}` : \" failed\"}`];\n if (score != null) pieces.push(`score ${formatNumber(score)}`);\n if (comparison) pieces.push(comparison);\n if (message) pieces.push(compactText(message, 120));\n return compactText(pieces.join(\"; \"), 240);\n}\n\nfunction formatToolErrorEvidence(value: unknown): string {\n const record = maybeJsonRecord(value);\n if (!record) return compactText(value);\n const event = isRecord(record.event) ? record.event : record;\n const parsedResult = safeJsonParse<Record<string, unknown> | null>(\n event.result,\n null,\n );\n const source = isRecord(parsedResult) ? parsedResult : event;\n const code = firstString(source, [\"errorCode\", \"code\", \"status\"]);\n const message =\n firstString(source, [\"error\", \"message\", \"reason\", \"result\"]) ??\n firstString(event, [\"error\", \"message\", \"reason\", \"result\"]);\n if (message && /^tool error\\b/i.test(message.trim())) {\n return compactText(message, 240);\n }\n const prefix = code ? `Tool error (${code})` : \"Tool error\";\n return compactText(`${prefix}: ${message ?? compactText(value, 180)}`, 240);\n}\n\nfunction formatFeedbackEvidence(kind: string, value: unknown): string {\n const record = maybeJsonRecord(value);\n if (!record) return compactText(value);\n const rating = firstNumber(record, [\"rating\", \"score\", \"satisfaction\"]);\n const message =\n firstString(record, [\n \"feedback\",\n \"comment\",\n \"message\",\n \"reason\",\n \"text\",\n \"body\",\n ]) ?? firstString(record, [\"status\", \"result\", \"outcome\"]);\n const prefix =\n kind === \"low-satisfaction\"\n ? \"Low satisfaction signal\"\n : \"Negative feedback\";\n const ratingText = rating != null ? ` (score ${formatNumber(rating)})` : \"\";\n return compactText(\n `${prefix}${ratingText}: ${message ?? compactText(value, 180)}`,\n 240,\n );\n}\n\nfunction formatSuccessEvidence(value: unknown): string {\n const record = maybeJsonRecord(value);\n if (!record) return compactText(value);\n const label =\n firstString(record, [\"title\", \"name\", \"summary\", \"description\", \"path\"]) ??\n firstString(record, [\"run_id\", \"id\"]);\n return compactText(`Successful checkpoint${label ? `: ${label}` : \"\"}`, 220);\n}\n\nfunction formatEvidenceSnippet(kind: string, value: unknown): string {\n if (kind === \"eval-failure\") return formatEvalFailureEvidence(value);\n if (kind === \"tool-error\") return formatToolErrorEvidence(value);\n if (kind === \"negative-feedback\" || kind === \"low-satisfaction\") {\n return formatFeedbackEvidence(kind, value);\n }\n if (kind === \"verified-success\") return formatSuccessEvidence(value);\n return compactText(value);\n}\n\nfunction normalizeEvidenceQuote(value: string): string {\n return value\n .toLowerCase()\n .replace(/[0-9a-f]{8}-[0-9a-f-]{27,}/g, \" id \")\n .replace(\n /\\b(?:run|thread|message|event)[_-]?id[:=]?\\s*[a-z0-9._:-]+/gi,\n \" id \",\n )\n .replace(/[^a-z0-9]+/g, \" \")\n .replace(/\\s+/g, \" \")\n .trim();\n}\n\nfunction evidenceDedupeKey(entry: DreamEvidence): string {\n return [\n entry.threadId,\n entry.kind,\n normalizeEvidenceQuote(entry.snippet),\n ].join(\"\\u0000\");\n}\n\nfunction normalizeEvidence(input: DreamEvidenceInput): DreamEvidence | null {\n const snippet = formatEvidenceSnippet(input.kind, input.snippet);\n if (!snippet.trim()) return null;\n return { ...input, snippet };\n}\n\nfunction addEvidence(\n bucket: DreamEvidence[],\n input: DreamEvidenceInput,\n max = 12,\n) {\n const normalized = normalizeEvidence(input);\n if (!normalized) return;\n const key = evidenceDedupeKey(normalized);\n if (bucket.some((entry) => evidenceDedupeKey(entry) === key)) return;\n if (bucket.length >= max) return;\n bucket.push(normalized);\n}\n\nfunction stripInjectedUserContext(text: string): string {\n const marker = text.search(/(?:^|\\n)\\s*<context>/i);\n return (marker >= 0 ? text.slice(0, marker) : text).trim();\n}\n\nfunction isCorrectionSignal(lower: string): boolean {\n return (\n /\\b(actually|wrong|not what i meant|you should)\\b/.test(lower) ||\n /\\b(don't|do not|never)\\b/.test(lower) ||\n /\\b(no|instead)\\b[,.!?:;-]/.test(lower) ||\n /\\bfrom now on\\b/.test(lower)\n );\n}\n\nfunction isToolErrorEvent(value: unknown): boolean {\n const event = (value as any)?.event ?? value;\n const type = lowerString(event?.type);\n const status = lowerString(event?.status);\n if (\n type.includes(\"error\") ||\n type.includes(\"exception\") ||\n type.includes(\"failed\") ||\n status === \"error\" ||\n status === \"failed\"\n ) {\n return true;\n }\n\n const result =\n typeof event?.result === \"string\"\n ? event.result.trim().toLowerCase()\n : typeof event?.error === \"string\"\n ? event.error.trim().toLowerCase()\n : \"\";\n if (!result) return false;\n if (\n result.startsWith(\"error:\") ||\n result.startsWith(\"failed:\") ||\n result.includes(\"exception\") ||\n result.includes(\"timed out\")\n ) {\n return true;\n }\n\n const parsed = safeJsonParse<Record<string, unknown> | null>(\n event?.result,\n null,\n );\n const parsedStatus = lowerString(parsed?.status ?? parsed?.state);\n return parsedStatus === \"failed\" || parsedStatus === \"error\";\n}\n\nfunction analyzeThreadDebug(debug: any, sourceId: string): DreamCandidate {\n const evidence: DreamEvidence[] = [];\n const reasons: DreamCandidateReason[] = [];\n const counts: Record<string, number> = {\n explicitCorrections: 0,\n rememberRequests: 0,\n failedRuns: 0,\n toolErrors: 0,\n negativeFeedback: 0,\n evalFailures: 0,\n lowSatisfaction: 0,\n frustration: 0,\n verifiedSuccess: 0,\n };\n\n const thread = debug.thread;\n const threadTitle = thread.title || thread.preview || thread.id;\n const messages = Array.isArray(debug.messages) ? debug.messages : [];\n\n for (const message of messages) {\n const text = stripInjectedUserContext(String(message?.text ?? \"\"));\n if (message?.role !== \"user\" || !text.trim()) continue;\n const lower = text.toLowerCase();\n const isRemember =\n /\\b(remember|for future|next time|from now on|always)\\b/.test(lower);\n const isCorrection = isCorrectionSignal(lower);\n const isFrustration =\n /\\b(frustrat|again|still|why did|keeps? doing|same mistake)\\b/.test(\n lower,\n );\n if (isRemember) {\n counts.rememberRequests += 1;\n addEvidence(evidence, {\n kind: \"remember-request\",\n label: \"User asked the agent to remember something\",\n snippet: text,\n threadId: thread.id,\n threadTitle,\n messageIndex: message.index,\n createdAt: parseNumber(message.createdAt),\n });\n }\n if (isCorrection) {\n counts.explicitCorrections += 1;\n addEvidence(evidence, {\n kind: \"explicit-correction\",\n label: \"User corrected the agent\",\n snippet: text,\n threadId: thread.id,\n threadTitle,\n messageIndex: message.index,\n createdAt: parseNumber(message.createdAt),\n });\n }\n if (isFrustration) {\n counts.frustration += 1;\n addEvidence(evidence, {\n kind: \"frustration\",\n label: \"User expressed friction or repeated failure\",\n snippet: text,\n threadId: thread.id,\n threadTitle,\n messageIndex: message.index,\n createdAt: parseNumber(message.createdAt),\n });\n }\n }\n\n const runs = Array.isArray(debug.runs) ? debug.runs : [];\n for (const run of runs) {\n if (isFailureStatus(run?.status) || run?.abortReason) {\n counts.failedRuns += 1;\n addEvidence(evidence, {\n kind: \"failed-run\",\n label: \"Run failed or aborted\",\n snippet: `${run?.status ?? \"unknown\"}${run?.abortReason ? `: ${run.abortReason}` : \"\"}`,\n threadId: thread.id,\n threadTitle,\n runId: run?.id ?? null,\n createdAt: parseNumber(run?.completedAt ?? run?.startedAt),\n });\n }\n const events = Array.isArray(run?.events) ? run.events : [];\n for (const event of events) {\n if (!isToolErrorEvent(event)) continue;\n counts.toolErrors += 1;\n addEvidence(evidence, {\n kind: \"tool-error\",\n label: \"Tool call reported an error\",\n snippet: event,\n threadId: thread.id,\n threadTitle,\n runId: run?.id ?? null,\n });\n }\n }\n\n const feedback = Array.isArray(debug.feedback) ? debug.feedback : [];\n for (const row of feedback) {\n if (!isNegativeFeedback(row)) continue;\n counts.negativeFeedback += 1;\n addEvidence(evidence, {\n kind: \"negative-feedback\",\n label: \"Negative feedback was recorded\",\n snippet: row,\n threadId: thread.id,\n threadTitle,\n });\n }\n\n const evals = Array.isArray(debug.evals) ? debug.evals : [];\n for (const row of evals) {\n if (!isEvalFailure(row)) continue;\n counts.evalFailures += 1;\n addEvidence(evidence, {\n kind: \"eval-failure\",\n label: \"Evaluation failed or scored low\",\n snippet: row,\n threadId: thread.id,\n threadTitle,\n runId: typeof row?.run_id === \"string\" ? row.run_id : null,\n });\n }\n\n const satisfaction = Array.isArray(debug.satisfaction)\n ? debug.satisfaction\n : [];\n for (const row of satisfaction) {\n if (!isLowSatisfaction(row)) continue;\n counts.lowSatisfaction += 1;\n addEvidence(evidence, {\n kind: \"low-satisfaction\",\n label: \"Satisfaction signal was low\",\n snippet: row,\n threadId: thread.id,\n threadTitle,\n });\n }\n\n const checkpoints = Array.isArray(debug.checkpoints) ? debug.checkpoints : [];\n const latestRunStatus =\n runs.length > 0 && typeof runs[0]?.status === \"string\"\n ? runs[0].status\n : null;\n if (\n runs.some((run: any) => isSuccessStatus(run?.status)) &&\n checkpoints.length > 0 &&\n counts.failedRuns === 0\n ) {\n counts.verifiedSuccess += 1;\n addEvidence(evidence, {\n kind: \"verified-success\",\n label: \"Successful run produced a checkpoint\",\n snippet: checkpoints[0],\n threadId: thread.id,\n threadTitle,\n runId:\n typeof checkpoints[0]?.run_id === \"string\"\n ? checkpoints[0].run_id\n : null,\n });\n }\n\n if (counts.rememberRequests) {\n reasons.push(\n reason(\n \"remember-request\",\n \"User explicitly asked the agent to remember something\",\n counts.rememberRequests * 30,\n counts.rememberRequests,\n ),\n );\n }\n if (counts.explicitCorrections) {\n reasons.push(\n reason(\n \"explicit-correction\",\n \"User corrections should be considered for memory\",\n counts.explicitCorrections * 25,\n counts.explicitCorrections,\n ),\n );\n }\n if (counts.failedRuns) {\n reasons.push(\n reason(\n \"failed-run\",\n \"Failed or aborted runs are useful dream material\",\n counts.failedRuns * 12,\n counts.failedRuns,\n ),\n );\n }\n if (counts.toolErrors) {\n reasons.push(\n reason(\n \"tool-error\",\n \"Tool errors repeated inside the run\",\n Math.min(30, counts.toolErrors * 4),\n counts.toolErrors,\n ),\n );\n }\n if (counts.negativeFeedback) {\n reasons.push(\n reason(\n \"negative-feedback\",\n \"User feedback indicates the run may contain a lesson\",\n counts.negativeFeedback * 20,\n counts.negativeFeedback,\n ),\n );\n }\n if (counts.evalFailures) {\n reasons.push(\n reason(\n \"eval-failure\",\n \"Evaluation signals found a failure\",\n counts.evalFailures * 20,\n counts.evalFailures,\n ),\n );\n }\n if (counts.lowSatisfaction || counts.frustration) {\n const total = counts.lowSatisfaction + counts.frustration;\n reasons.push(\n reason(\n \"satisfaction-friction\",\n \"Satisfaction or user wording suggests friction\",\n total * 10,\n total,\n ),\n );\n }\n if (counts.verifiedSuccess) {\n reasons.push(\n reason(\n \"verified-success\",\n \"Successful checkpointed workflow may be worth preserving\",\n 8,\n counts.verifiedSuccess,\n ),\n );\n }\n\n const score = reasons.reduce((sum, entry) => sum + entry.score, 0);\n\n return {\n thread: {\n id: thread.id,\n ownerEmail: thread.ownerEmail,\n title: thread.title,\n preview: thread.preview,\n messageCount: thread.messageCount,\n createdAt: thread.createdAt,\n updatedAt: thread.updatedAt,\n },\n sourceId,\n score,\n reasons,\n evidenceCounts: counts,\n evidence: evidence.map((entry) => ({\n ...entry,\n sourceId: entry.sourceId ?? sourceId,\n })),\n latestRunStatus,\n };\n}\n\ninterface ListDreamCandidatesInput {\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}\n\ninterface DreamSourceRef {\n id: string;\n label?: string | null;\n}\n\ninterface DreamSourceScanResult {\n source: Record<string, unknown>;\n access: Record<string, unknown> | null;\n query: string | null;\n inspectedThreadCount: number;\n candidateCount: number;\n errors: Array<Record<string, unknown>>;\n candidates: DreamCandidate[];\n sources: DreamSourceHealth[];\n}\n\nfunction wantsAllDreamSources(input: ListDreamCandidatesInput): boolean {\n return Boolean(input.allSources || input.sourceId?.trim() === \"all\");\n}\n\nasync function dreamSourceRefs(\n input: ListDreamCandidatesInput,\n): Promise<DreamSourceRef[]> {\n const explicit = Array.from(\n new Set(\n (input.sourceIds ?? [])\n .map((sourceId) => sourceId.trim())\n .filter(Boolean),\n ),\n );\n if (explicit.length > 0) {\n return explicit.map((sourceId) => ({ id: sourceId, label: sourceId }));\n }\n\n const sourceId = input.sourceId?.trim() || \"current\";\n if (!wantsAllDreamSources(input)) {\n return [{ id: sourceId, label: sourceId }];\n }\n\n const listed = await listThreadDebugSources();\n const sources = listed.sources\n .filter((source) => source.connected)\n .map((source) => ({ id: source.id, label: source.label }));\n return sources.length > 0\n ? sources\n : [{ id: \"current\", label: \"Current Dispatch DB\" }];\n}\n\nasync function inspectDreamSource(\n input: ListDreamCandidatesInput,\n sourceId: string,\n sourceTimeoutMs: number,\n): Promise<Omit<DreamSourceScanResult, \"sources\">> {\n const limit = clampLimit(input.limit);\n const threadConcurrency = clampThreadConcurrency(input.threadConcurrency);\n const threadTimeoutMs = clampThreadTimeoutMs(\n input.threadTimeoutMs,\n sourceTimeoutMs,\n );\n const search = await searchAgentThreads({\n sourceId,\n query: input.query,\n ownerEmail: input.ownerEmail,\n limit,\n });\n\n const inspected = await mapWithConcurrency(\n search.threads,\n threadConcurrency,\n async (thread) => {\n const startedAt = now();\n try {\n const debug = await withTimeout(\n getAgentThreadDebug({\n sourceId,\n threadId: thread.id,\n ownerEmail: input.ownerEmail,\n maxRuns: 10,\n maxEvents: 300,\n maxTraceSpans: 200,\n }),\n `${sourceId}:${thread.id}`,\n threadTimeoutMs,\n );\n return {\n candidate: analyzeThreadDebug(debug, sourceId),\n error: null,\n };\n } catch (error) {\n const timedOut = isDreamSourceTimeout(error);\n return {\n candidate: null,\n error: {\n threadId: thread.id,\n sourceId,\n durationMs: now() - startedAt,\n timedOut,\n message: timedOut\n ? `Timed out after ${threadTimeoutMs}ms`\n : String((error as Error)?.message ?? error),\n },\n };\n }\n },\n );\n\n const candidates = inspected\n .map((entry) => entry.candidate)\n .filter((entry): entry is DreamCandidate => Boolean(entry))\n .filter((entry) => entry.score > 0)\n .sort(\n (a, b) => b.score - a.score || b.thread.updatedAt - a.thread.updatedAt,\n );\n\n return {\n source: search.source,\n access: search.access,\n query: search.query,\n inspectedThreadCount: search.threads.length,\n candidateCount: candidates.length,\n errors: inspected\n .map((entry) => entry.error)\n .filter(\n (\n entry,\n ): entry is {\n threadId: string;\n sourceId: string;\n durationMs: number;\n timedOut: boolean;\n message: string;\n } => entry !== null,\n ) as Array<Record<string, unknown>>,\n candidates,\n };\n}\n\nasync function scanDreamSource(\n input: ListDreamCandidatesInput,\n source: DreamSourceRef,\n timeoutMs: number,\n): Promise<DreamSourceScanResult> {\n const startedAt = now();\n try {\n const result = await withTimeout(\n inspectDreamSource(input, source.id, timeoutMs),\n source.id,\n timeoutMs,\n );\n const completedAt = now();\n const durationMs = completedAt - startedAt;\n const sourceInfo = result.source ?? {};\n const sourceId = String(sourceInfo.id ?? source.id);\n const label = String(sourceInfo.label ?? source.label ?? source.id);\n return {\n ...result,\n sources: [\n {\n sourceId,\n label,\n status: \"ok\",\n startedAt,\n completedAt,\n durationMs,\n timeoutMs,\n inspectedThreadCount: result.inspectedThreadCount,\n candidateCount: result.candidateCount,\n errorCount: result.errors.length,\n threadErrorCount: result.errors.length,\n },\n ],\n };\n } catch (error) {\n const completedAt = now();\n const durationMs = completedAt - startedAt;\n const timedOut = isDreamSourceTimeout(error);\n const message = timedOut\n ? `Timed out after ${timeoutMs}ms`\n : compactErrorMessage(error);\n const status: DreamSourceStatus = timedOut ? \"timed_out\" : \"error\";\n return {\n source: {\n id: source.id,\n label: source.label ?? source.id,\n kind: \"unknown\",\n databaseUrlEnv: null,\n },\n access: null,\n query: input.query?.trim() || null,\n inspectedThreadCount: 0,\n candidateCount: 0,\n errors: [{ sourceId: source.id, message }],\n candidates: [],\n sources: [\n {\n sourceId: source.id,\n label: source.label ?? source.id,\n status,\n startedAt,\n completedAt,\n durationMs,\n timeoutMs,\n inspectedThreadCount: 0,\n candidateCount: 0,\n errorCount: 1,\n threadErrorCount: 0,\n message,\n },\n ],\n };\n }\n}\n\nexport async function listDreamCandidates(input: ListDreamCandidatesInput) {\n const timeoutMs = clampSourceTimeoutMs(input.sourceTimeoutMs);\n const sources = await dreamSourceRefs(input);\n const sourceConcurrency = clampSourceConcurrency(input.sourceConcurrency);\n const sourceStartStaggerMs = clampSourceStartStaggerMs(\n input.sourceStartStaggerMs,\n );\n const scanResults = await mapWithConcurrency(\n sources,\n sourceConcurrency,\n async (source, index) => {\n if (sources.length > 1 && sourceStartStaggerMs > 0) {\n await sleep((index % sourceConcurrency) * sourceStartStaggerMs);\n }\n return scanDreamSource(input, source, timeoutMs);\n },\n );\n const aggregate = wantsAllDreamSources(input) || sources.length > 1;\n const candidates = dedupeDreamCandidates(\n scanResults.flatMap((result) => result.candidates),\n ).sort(\n (a, b) => b.score - a.score || b.thread.updatedAt - a.thread.updatedAt,\n );\n const sourceHealth = scanResults.flatMap((result) => result.sources);\n\n return {\n source: aggregate\n ? {\n id: \"all\",\n label: \"All configured sources\",\n kind: \"aggregate\",\n databaseUrlEnv: null,\n }\n : scanResults[0]?.source,\n access: aggregate\n ? { scope: \"combined\", sourceCount: sources.length }\n : scanResults[0]?.access,\n query: input.query?.trim() || scanResults[0]?.query || null,\n inspectedThreadCount: scanResults.reduce(\n (sum, result) => sum + result.inspectedThreadCount,\n 0,\n ),\n candidateCount: candidates.length,\n errors: scanResults.flatMap((result) => result.errors),\n sources: sourceHealth,\n candidates,\n };\n}\n\nfunction describeOwnerScope(scope: string): string {\n return scope.includes(\"@\") ? \"another user\" : `\"${scope}\"`;\n}\n\nfunction personalMemoryBlockReasonForDream(\n result: Awaited<ReturnType<typeof listDreamCandidates>>,\n creatorEmail: string,\n): string | null {\n const otherOwnerCount = new Set(\n result.candidates\n .map((candidate) => candidate.thread.ownerEmail)\n .filter((owner) => owner && !sameOwnerEmail(owner, creatorEmail))\n .map((owner) => owner.trim().toLowerCase()),\n ).size;\n if (otherOwnerCount === 1) {\n return \"source evidence includes a thread owned by another user\";\n }\n if (otherOwnerCount > 1) {\n return `source evidence includes threads owned by ${otherOwnerCount} other users`;\n }\n\n const scope = String((result.access as any)?.scope ?? \"\").trim();\n if (scope && !sameOwnerEmail(scope, creatorEmail)) {\n return `the source owner scope is ${describeOwnerScope(scope)} rather than the dream creator's personal scope`;\n }\n return null;\n}\n\nfunction evidenceSummary(evidence: DreamEvidence[], max = 6): string {\n return evidence\n .slice(0, max)\n .map((entry) => {\n const title = entry.threadTitle || entry.threadId;\n return `- ${entry.label} in ${title} (${entry.threadId}): ${entry.snippet}`;\n })\n .join(\"\\n\");\n}\n\nfunction collectCandidateEvidence(\n candidates: DreamCandidate[],\n kinds: string[],\n): DreamEvidence[] {\n const allowed = new Set(kinds);\n const evidence: DreamEvidence[] = [];\n for (const candidate of candidates) {\n for (const entry of candidate.evidence) {\n if (!allowed.has(entry.kind)) continue;\n addEvidence(\n evidence,\n {\n ...entry,\n sourceId: entry.sourceId ?? candidate.sourceId,\n },\n 80,\n );\n }\n }\n return evidence;\n}\n\nfunction dedupeDreamCandidates(candidates: DreamCandidate[]): DreamCandidate[] {\n const byThread = new Map<string, DreamCandidate>();\n for (const candidate of candidates) {\n const key = `${candidate.thread.ownerEmail.trim().toLowerCase()}:${candidate.thread.id}`;\n const existing = byThread.get(key);\n if (\n !existing ||\n candidate.score > existing.score ||\n (candidate.score === existing.score &&\n candidate.thread.updatedAt > existing.thread.updatedAt)\n ) {\n byThread.set(key, candidate);\n }\n }\n return [...byThread.values()];\n}\n\nfunction uniqueEvidenceThreads(evidence: DreamEvidence[]): Set<string> {\n return new Set(\n evidence\n .map((entry) => entry.threadId?.trim())\n .filter((threadId): threadId is string => Boolean(threadId)),\n );\n}\n\nfunction uniqueEvidenceSources(evidence: DreamEvidence[]): Set<string> {\n return new Set(\n evidence\n .map((entry) => entry.sourceId?.trim())\n .filter((sourceId): sourceId is string => Boolean(sourceId)),\n );\n}\n\nfunction evidenceSpansMultipleThreadsOrSources(\n evidence: DreamEvidence[],\n): boolean {\n return (\n uniqueEvidenceThreads(evidence).size >= 2 ||\n uniqueEvidenceSources(evidence).size >= 2\n );\n}\n\nfunction evidenceStrengthCount(evidence: DreamEvidence[]): number {\n return Math.max(\n uniqueEvidenceThreads(evidence).size,\n uniqueEvidenceSources(evidence).size,\n );\n}\n\nconst UI_WORDING_TERMS =\n /\\b(ui|screen|page|view|button|label|copy|wording|modal|dialog|dropdown|menu|toolbar|sidebar|composer|sheet|tab|card|toast|form|field|layout|click|open|close)\\b/i;\n\nfunction looksLikeSingleAppUiWordingCorrection(\n evidence: DreamEvidence[],\n): boolean {\n if (uniqueEvidenceSources(evidence).size > 1) return false;\n return evidence.some((entry) => {\n if (![\"explicit-correction\", \"remember-request\"].includes(entry.kind)) {\n return false;\n }\n return UI_WORDING_TERMS.test(entry.snippet);\n });\n}\n\nconst NON_DURABLE_FAILURE_TERMS =\n /\\b(credits[- ]?limit|daily ai credits|current plan|missing[_ -]?credentials|no llm provider|provider key|connect builder\\.io|email[_ -]?verification[_ -]?required|verify their email|gateway)\\b/i;\n\nfunction isDurableFailureEvidence(entry: DreamEvidence): boolean {\n if (entry.kind === \"eval-failure\") return false;\n if (entry.kind === \"tool-error\") {\n return !NON_DURABLE_FAILURE_TERMS.test(entry.snippet);\n }\n if (entry.kind === \"failed-run\") {\n const normalized = normalizeEvidenceQuote(entry.snippet);\n return Boolean(\n normalized && ![\"errored\", \"failed\", \"aborted\"].includes(normalized),\n );\n }\n return true;\n}\n\nfunction proposalFailureEvidence(\n evidence: DreamEvidence[],\n max = 10,\n): DreamEvidence[] {\n const durable = evidence.filter(isDurableFailureEvidence);\n const supporting = evidence.filter((entry) => entry.kind === \"eval-failure\");\n return [...durable, ...supporting].slice(0, max);\n}\n\nfunction evidenceProvenance(date: string, evidence: DreamEvidence[]): string {\n const threads = [...uniqueEvidenceThreads(evidence)].slice(0, 8).join(\", \");\n const sources = [...uniqueEvidenceSources(evidence)].slice(0, 8).join(\", \");\n return `Provenance: Dispatch dream ${date}; source threads: ${threads || \"none recorded\"}${sources ? `; sources: ${sources}` : \"\"}`;\n}\n\nfunction addSuppressionNote(notes: string[], note: string) {\n if (!notes.includes(note)) notes.push(note);\n}\n\nfunction noProposalSuppressionNotes(input: {\n explicitEvidence: DreamEvidence[];\n failureEvidence: DreamEvidence[];\n durableFailureEvidence: DreamEvidence[];\n successEvidence: DreamEvidence[];\n personalMemoryAllowed: boolean;\n personalMemoryBlockReason: string;\n}): string[] {\n const notes: string[] = [];\n\n if (input.explicitEvidence.length > 0) {\n if (!input.personalMemoryAllowed) {\n if (!evidenceSpansMultipleThreadsOrSources(input.explicitEvidence)) {\n addSuppressionNote(\n notes,\n `Skipped explicit user-correction proposals because personal memory is blocked (${input.personalMemoryBlockReason}) and the remaining correction evidence did not span multiple threads or source apps.`,\n );\n } else if (input.explicitEvidence.length < 2) {\n addSuppressionNote(\n notes,\n `Skipped explicit user-correction proposals because personal memory is blocked (${input.personalMemoryBlockReason}) and only one source-backed correction survived filtering.`,\n );\n }\n }\n\n if (looksLikeSingleAppUiWordingCorrection(input.explicitEvidence)) {\n addSuppressionNote(\n notes,\n \"Skipped workspace-instruction promotion for explicit corrections because the evidence looked like single-app UI wording rather than an all-app operating rule.\",\n );\n }\n }\n\n if (input.failureEvidence.length > 0) {\n if (input.durableFailureEvidence.length === 0) {\n addSuppressionNote(\n notes,\n \"Skipped failure proposals because the signals were eval-only noise or non-durable setup, quota, provider, or verification issues.\",\n );\n } else if (input.durableFailureEvidence.length < 2) {\n addSuppressionNote(\n notes,\n \"Skipped failure proposals because fewer than two durable failure signals survived filtering.\",\n );\n } else if (\n !evidenceSpansMultipleThreadsOrSources(input.durableFailureEvidence)\n ) {\n addSuppressionNote(\n notes,\n \"Skipped failure proposals because durable failure evidence did not span multiple threads or source apps.\",\n );\n } else if (input.durableFailureEvidence.length < 4) {\n addSuppressionNote(\n notes,\n \"Skipped workspace-instruction promotion for failures because fewer than four durable failure signals survived filtering.\",\n );\n }\n }\n\n if (\n input.successEvidence.length > 0 &&\n (input.successEvidence.length < 2 ||\n !evidenceSpansMultipleThreadsOrSources(input.successEvidence))\n ) {\n addSuppressionNote(\n notes,\n \"Skipped success-pattern proposals because successful checkpoint evidence did not repeat across multiple threads or source apps.\",\n );\n }\n\n return notes;\n}\n\nconst STOP_WORDS = new Set([\n \"about\",\n \"after\",\n \"again\",\n \"agent\",\n \"always\",\n \"because\",\n \"before\",\n \"being\",\n \"could\",\n \"dispatch\",\n \"doing\",\n \"dream\",\n \"found\",\n \"from\",\n \"have\",\n \"into\",\n \"just\",\n \"latest\",\n \"memory\",\n \"next\",\n \"note\",\n \"please\",\n \"proposal\",\n \"recent\",\n \"remember\",\n \"review\",\n \"should\",\n \"source\",\n \"summary\",\n \"that\",\n \"their\",\n \"there\",\n \"these\",\n \"thing\",\n \"thread\",\n \"threads\",\n \"user\",\n \"using\",\n \"with\",\n \"would\",\n]);\n\nfunction emptyMemoryContext(): DreamMemoryContext {\n return {\n personalIndex: \"\",\n personalNotes: [],\n sharedLearnings: \"\",\n workspaceResources: [],\n };\n}\n\nfunction normalizeMemoryText(value: string): string {\n return value\n .toLowerCase()\n .replace(/`[^`]*`/g, \" \")\n .replace(/\\[[^\\]]*\\]\\([^)]*\\)/g, \" \")\n .replace(/https?:\\/\\/\\S+/g, \" \")\n .replace(/[^a-z0-9@._/-]+/g, \" \")\n .replace(/\\s+/g, \" \")\n .trim();\n}\n\nfunction tokenSet(value: string): Set<string> {\n const tokens = normalizeMemoryText(value)\n .split(\" \")\n .filter((token) => token.length >= 4 && !STOP_WORDS.has(token));\n return new Set(tokens);\n}\n\nfunction containmentScore(needle: string, haystack: string): number {\n const needleTokens = tokenSet(needle);\n if (needleTokens.size === 0) return 0;\n const haystackTokens = tokenSet(haystack);\n let matches = 0;\n for (const token of needleTokens) {\n if (haystackTokens.has(token)) matches += 1;\n }\n return matches / needleTokens.size;\n}\n\nfunction hasExactSourceMatch(\n evidence: DreamEvidence[],\n content: string,\n): boolean {\n const normalized = normalizeMemoryText(content);\n return evidence.some((entry) => {\n if (entry.threadId && normalized.includes(entry.threadId.toLowerCase())) {\n return true;\n }\n if (entry.runId && normalized.includes(entry.runId.toLowerCase())) {\n return true;\n }\n return false;\n });\n}\n\nfunction evidenceSignalText(evidence: DreamEvidence[]): string {\n return evidence.map((entry) => entry.snippet).join(\"\\n\");\n}\n\nfunction hasCorrectionLanguage(evidence: DreamEvidence[]): boolean {\n return evidence.some((entry) => {\n if (entry.kind !== \"explicit-correction\") return false;\n const text = entry.snippet.toLowerCase();\n return /\\b(actually|instead|don't|do not|never|wrong|not what i meant|from now on|you should)\\b/.test(\n text,\n );\n });\n}\n\nfunction findPersonalMemoryMatch(\n memoryContext: DreamMemoryContext,\n evidence: DreamEvidence[],\n): {\n note: DreamMemoryNote;\n score: number;\n exactSource: boolean;\n} | null {\n const signal = evidenceSignalText(evidence);\n let best: {\n note: DreamMemoryNote;\n score: number;\n exactSource: boolean;\n } | null = null;\n\n for (const note of memoryContext.personalNotes) {\n const exactSource = hasExactSourceMatch(evidence, note.content);\n const score = exactSource ? 1 : containmentScore(signal, note.content);\n if (!best || score > best.score) {\n best = { note, score, exactSource };\n }\n }\n\n if (!best) return null;\n if (best.exactSource || best.score >= 0.42) return best;\n return null;\n}\n\nfunction sharedLearningLooksCaptured(\n memoryContext: DreamMemoryContext,\n evidence: DreamEvidence[],\n): boolean {\n if (!memoryContext.sharedLearnings.trim()) return false;\n if (hasExactSourceMatch(evidence, memoryContext.sharedLearnings)) return true;\n return (\n containmentScore(\n evidenceSignalText(evidence),\n memoryContext.sharedLearnings,\n ) >= 0.58\n );\n}\n\nfunction workspaceResourceLooksCaptured(\n memoryContext: DreamMemoryContext,\n evidence: DreamEvidence[],\n): boolean {\n const resources = memoryContext.workspaceResources ?? [];\n if (resources.length === 0) return false;\n return resources.some((resource) => {\n if (hasExactSourceMatch(evidence, resource.content)) return true;\n return (\n containmentScore(evidenceSignalText(evidence), resource.content) >= 0.62\n );\n });\n}\n\nfunction personalIndexLooksCaptured(\n memoryContext: DreamMemoryContext,\n evidence: DreamEvidence[],\n): boolean {\n if (!memoryContext.personalIndex.trim()) return false;\n if (hasExactSourceMatch(evidence, memoryContext.personalIndex)) return true;\n return (\n containmentScore(\n evidenceSignalText(evidence),\n memoryContext.personalIndex,\n ) >= 0.72\n );\n}\n\nfunction proposalLooksCaptured(\n proposal: DreamProposalInput,\n memoryContext: DreamMemoryContext,\n): boolean {\n if (proposal.targetType === \"shared-learnings\") {\n return sharedLearningLooksCaptured(memoryContext, proposal.evidence);\n }\n if (proposal.targetType.startsWith(\"workspace-\")) {\n return workspaceResourceLooksCaptured(memoryContext, proposal.evidence);\n }\n if (personalIndexLooksCaptured(memoryContext, proposal.evidence)) {\n return true;\n }\n const match = findPersonalMemoryMatch(memoryContext, proposal.evidence);\n return Boolean(match?.exactSource || (match && match.score >= 0.72));\n}\n\nasync function loadDreamMemoryContext(\n owner: string,\n): Promise<DreamMemoryContext> {\n const [index, shared, personalMetas, workspaceResources] = await Promise.all([\n resourceGetByPath(owner, MEMORY_INDEX_PATH),\n resourceGetByPath(SHARED_OWNER, \"LEARNINGS.md\"),\n resourceList(owner, \"memory/\").catch(() => []),\n listWorkspaceResources().catch(() => []),\n ]);\n const paths = personalMetas\n .map((entry) => entry.path)\n .filter((path) => path !== MEMORY_INDEX_PATH && path.endsWith(\".md\"))\n .slice(0, 30);\n const personalNotes = (\n await Promise.all(\n paths.map(async (path) => {\n const resource = await resourceGetByPath(owner, path).catch(() => null);\n if (!resource?.content) return null;\n return { path, content: resource.content };\n }),\n )\n ).filter((entry): entry is DreamMemoryNote => Boolean(entry));\n\n return {\n personalIndex: index?.content ?? \"\",\n personalNotes,\n sharedLearnings: shared?.content ?? \"\",\n workspaceResources: workspaceResources.map((resource) => ({\n path: resource.path,\n content: resource.content,\n })),\n };\n}\n\nfunction applyMemoryGuardrails(\n proposals: DreamProposalInput[],\n memoryContext: DreamMemoryContext,\n): DreamProposalBuildResult {\n const guarded: DreamProposalInput[] = [];\n const guardrailNotes: string[] = [];\n\n for (const proposal of proposals) {\n if (\n proposal.targetType === \"personal-memory\" &&\n hasCorrectionLanguage(proposal.evidence)\n ) {\n const match = findPersonalMemoryMatch(memoryContext, proposal.evidence);\n if (match?.exactSource) {\n guardrailNotes.push(\n `Skipped duplicate proposal \"${proposal.title}\" because existing memory already appears to capture the source evidence.`,\n );\n continue;\n }\n if (match && match.score >= 0.42) {\n guarded.push({\n ...proposal,\n targetPath: match.note.path,\n title: \"Update existing memory from recent corrections\",\n summary: `Existing memory at ${match.note.path} may be stale; update it with the latest explicit correction evidence.`,\n rationale: `${proposal.rationale} A related personal memory already exists, so the dream should update it instead of creating a parallel note.`,\n content: [\n \"# Dispatch Dream Memory Update\",\n \"\",\n `Existing memory: ${match.note.path}`,\n \"\",\n \"Recent agent runs contained newer explicit user-grounded lessons:\",\n \"\",\n evidenceSummary(proposal.evidence, 10),\n ].join(\"\\n\"),\n });\n guardrailNotes.push(\n `Retargeted proposal \"${proposal.title}\" to existing memory ${match.note.path} to avoid creating a stale duplicate.`,\n );\n continue;\n }\n }\n\n if (proposalLooksCaptured(proposal, memoryContext)) {\n guardrailNotes.push(\n `Skipped duplicate proposal \"${proposal.title}\" because existing memory already appears to capture the source evidence.`,\n );\n continue;\n }\n\n guarded.push(proposal);\n }\n\n return { proposals: guarded, guardrailNotes };\n}\n\nfunction makeReport(input: {\n title: string;\n sourceId: string;\n query: string | null;\n candidates: DreamCandidate[];\n inspectedThreadCount: number;\n proposals: DreamProposalInput[];\n guardrailNotes?: string[];\n sourceHealth?: DreamSourceHealth[];\n}) {\n const completedSourceCount =\n input.sourceHealth?.filter((source) => source.status === \"ok\").length ?? 0;\n const lines = [\n `# ${input.title}`,\n \"\",\n `Generated: ${new Date().toISOString()}`,\n `Source: ${input.sourceId}`,\n `Query: ${input.query || \"(recent threads)\"}`,\n `Inspected threads: ${input.inspectedThreadCount}`,\n `Candidates: ${input.candidates.length}`,\n `Proposals: ${input.proposals.length}`,\n ];\n\n if (input.sourceHealth && input.sourceHealth.length > 0) {\n lines.push(\n `Sources completed: ${completedSourceCount}/${input.sourceHealth.length}`,\n );\n lines.push(\"\", \"## Source Health\");\n for (const source of input.sourceHealth) {\n const label = source.label || source.sourceId;\n const message = source.message\n ? ` — ${compactText(source.message, 160)}`\n : \"\";\n lines.push(\n `- ${label} (${source.sourceId}): ${source.status} in ${source.durationMs}ms, ${source.inspectedThreadCount} inspected, ${source.candidateCount} candidates, ${source.errorCount} errors${message}`,\n );\n }\n }\n\n lines.push(\"\", \"## Candidate Signals\");\n\n if (input.candidates.length === 0) {\n lines.push(\"\", \"No dream-worthy signals were found in this pass.\");\n } else {\n for (const candidate of input.candidates.slice(0, 12)) {\n lines.push(\n \"\",\n `### ${candidate.thread.title || candidate.thread.id}`,\n \"\",\n `- Thread: ${candidate.thread.id}`,\n `- Score: ${candidate.score}`,\n `- Latest run status: ${candidate.latestRunStatus || \"unknown\"}`,\n `- Reasons: ${candidate.reasons.map((entry) => entry.label).join(\"; \")}`,\n \"\",\n \"Evidence:\",\n evidenceSummary(candidate.evidence, 4) ||\n \"- No compact evidence available.\",\n );\n }\n }\n\n if (input.guardrailNotes && input.guardrailNotes.length > 0) {\n lines.push(\"\", \"## Proposal Guardrails\");\n for (const note of input.guardrailNotes) {\n lines.push(\"\", `- ${note}`);\n }\n }\n\n lines.push(\"\", \"## Proposals\");\n if (input.proposals.length === 0) {\n lines.push(\"\", \"No durable changes were proposed.\");\n } else {\n for (const proposal of input.proposals) {\n lines.push(\n \"\",\n `### ${proposal.title}`,\n \"\",\n `- Target: ${proposal.targetType} at ${proposal.targetPath}`,\n `- Confidence: ${proposal.confidence}`,\n `- Risk: ${proposal.risk}`,\n `- Summary: ${proposal.summary}`,\n \"\",\n \"Evidence:\",\n evidenceSummary(proposal.evidence, 5),\n );\n }\n }\n\n return lines.join(\"\\n\").trimEnd() + \"\\n\";\n}\n\nexport function buildProposalInputs(\n candidates: DreamCandidate[],\n memoryContext: DreamMemoryContext = emptyMemoryContext(),\n options: DreamProposalBuildOptions = {},\n): DreamProposalBuildResult {\n const proposals: DreamProposalInput[] = [];\n const personalMemoryAllowed = options.personalMemoryAllowed ?? true;\n const personalMemoryBlockReason =\n options.personalMemoryBlockReason?.trim() ||\n \"source owner scope differs from the dream creator's personal scope\";\n let routedPersonalMemory = false;\n const explicitEvidence = collectCandidateEvidence(candidates, [\n \"remember-request\",\n \"explicit-correction\",\n ]);\n const failureEvidence = collectCandidateEvidence(candidates, [\n \"failed-run\",\n \"tool-error\",\n \"negative-feedback\",\n \"eval-failure\",\n \"low-satisfaction\",\n \"frustration\",\n ]);\n const durableFailureEvidence = failureEvidence.filter(\n isDurableFailureEvidence,\n );\n const failureProposalEvidence = proposalFailureEvidence(failureEvidence, 10);\n const successEvidence = collectCandidateEvidence(candidates, [\n \"verified-success\",\n ]);\n const date = today();\n const explicitStrengthCount = evidenceStrengthCount(explicitEvidence);\n const durableFailureStrengthCount = evidenceStrengthCount(\n durableFailureEvidence,\n );\n const successStrengthCount = evidenceStrengthCount(successEvidence);\n\n if (explicitEvidence.length > 0) {\n const title = `Dispatch dream memory ${date}`;\n if (personalMemoryAllowed) {\n proposals.push({\n targetType: \"personal-memory\",\n targetPath: `memory/${slugify(title)}.md`,\n title: \"Save explicit user corrections from recent agent runs\",\n summary:\n \"Recent threads contain explicit user corrections or remember requests that may be worth preserving as personal memory.\",\n rationale:\n \"Explicit user corrections and remember requests are high-signal, user-grounded evidence for personal memory.\",\n content: [\n \"# Dispatch Dream Memory\",\n \"\",\n \"Recent agent runs contained explicit user-grounded lessons:\",\n \"\",\n evidenceSummary(explicitEvidence, 10),\n ].join(\"\\n\"),\n evidence: explicitEvidence.slice(0, 10),\n confidence: Math.min(95, 70 + explicitEvidence.length * 5),\n risk: \"low\",\n });\n } else if (\n explicitEvidence.length >= 2 &&\n evidenceSpansMultipleThreadsOrSources(explicitEvidence)\n ) {\n routedPersonalMemory = true;\n proposals.push({\n targetType: \"shared-learnings\",\n targetPath: \"LEARNINGS.md\",\n title: \"Review explicit user corrections as shared learnings\",\n summary:\n \"Recent admin-visible threads contain explicit user corrections or remember requests that should stay reviewable as shared learnings instead of personal memory.\",\n rationale: `Personal memory is blocked because ${personalMemoryBlockReason}. Shared learnings keep the evidence visible for review without writing another user's snippets into the dream creator's memory.`,\n content: [\n \"Recent Dispatch dream review found explicit user-grounded lessons in admin-visible threads.\",\n \"\",\n `Provenance: Personal memory was disabled for this proposal because ${personalMemoryBlockReason}.`,\n \"\",\n evidenceSummary(explicitEvidence, 10),\n ].join(\"\\n\"),\n evidence: explicitEvidence.slice(0, 10),\n confidence: Math.min(95, 70 + explicitEvidence.length * 5),\n risk: \"medium\",\n });\n }\n }\n\n if (\n durableFailureEvidence.length >= 2 &&\n evidenceSpansMultipleThreadsOrSources(durableFailureEvidence)\n ) {\n proposals.push({\n targetType: \"shared-learnings\",\n targetPath: \"LEARNINGS.md\",\n title: \"Record recurring Dispatch agent-run failure patterns\",\n summary:\n \"Multiple recent threads or source apps show failure, tool-error, eval, or satisfaction signals that should be reviewed as a team learning.\",\n rationale:\n \"Repeated grounded failure signals across more than one thread or source app are good candidates for shared learnings, but remain pending for review.\",\n content: [\n \"Recent Dispatch dream review found recurring agent-run failure signals.\",\n \"\",\n evidenceSummary(failureProposalEvidence, 8),\n ].join(\"\\n\"),\n evidence: failureProposalEvidence.slice(0, 8),\n confidence: Math.min(85, 50 + durableFailureStrengthCount * 10),\n risk: \"medium\",\n });\n }\n\n if (\n explicitEvidence.length >= 3 &&\n evidenceSpansMultipleThreadsOrSources(explicitEvidence) &&\n !looksLikeSingleAppUiWordingCorrection(explicitEvidence)\n ) {\n proposals.push({\n targetType: \"workspace-instruction\",\n targetPath: `instructions/${slugify(`dream-corrections-${date}`)}.md`,\n title: \"Create workspace instruction from repeated user corrections\",\n summary:\n \"Repeated explicit user corrections or remember requests should become an all-app workspace instruction after review.\",\n rationale:\n \"Repeated corrections across more than one thread or source app are stronger than one-off memory. A workspace instruction lets every app inherit the reviewed behavior.\",\n content: [\n \"# Dream-Derived Workspace Instruction\",\n \"\",\n \"Apply this only after reviewing the cited source threads.\",\n \"\",\n \"Recent agent runs contained repeated user-grounded corrections or remember requests:\",\n \"\",\n evidenceSummary(explicitEvidence, 10),\n \"\",\n \"Instruction draft:\",\n \"\",\n \"- Preserve explicit user corrections as durable behavior only when the evidence is user-authored and source-backed.\",\n \"- Prefer existing workspace resources, skills, and app conventions before introducing a new pattern.\",\n \"- If the same correction appears across apps or threads, treat it as a candidate for a workspace-level instruction instead of only personal memory.\",\n \"\",\n evidenceProvenance(date, explicitEvidence),\n ].join(\"\\n\"),\n evidence: explicitEvidence.slice(0, 10),\n confidence: Math.min(90, 60 + explicitStrengthCount * 8),\n risk: \"medium\",\n });\n }\n\n if (\n durableFailureEvidence.length >= 4 &&\n evidenceSpansMultipleThreadsOrSources(durableFailureEvidence)\n ) {\n proposals.push({\n targetType: \"workspace-instruction\",\n targetPath: `instructions/${slugify(`dream-run-reliability-${date}`)}.md`,\n title: \"Create workspace instruction for recurring agent-run friction\",\n summary:\n \"Recurring frustration and failure signals across threads or source apps should become a reviewed workspace reliability instruction.\",\n rationale:\n \"Repeated failure or frustration signals across multiple threads or source apps are useful as a shared guardrail, but they need review before they affect all app agents.\",\n content: [\n \"# Dream-Derived Agent Reliability Instruction\",\n \"\",\n \"Apply this only after reviewing the cited source threads.\",\n \"\",\n \"Recent agent runs contained recurring friction or failure signals:\",\n \"\",\n evidenceSummary(failureProposalEvidence, 10),\n \"\",\n \"Instruction draft:\",\n \"\",\n \"- When a task repeats a prior failure mode, pause to inspect source context, previous attempts, and existing docs before changing code or data.\",\n \"- Prefer small, verified changes with provenance over broad rewrites when responding to user frustration.\",\n \"- Convert repeated failures into a durable workspace resource only after evidence spans multiple threads or apps.\",\n \"\",\n evidenceProvenance(date, failureProposalEvidence),\n ].join(\"\\n\"),\n evidence: failureProposalEvidence.slice(0, 10),\n confidence: Math.min(85, 50 + durableFailureStrengthCount * 8),\n risk: \"medium\",\n });\n }\n\n if (\n proposals.length === 0 &&\n successEvidence.length >= 2 &&\n evidenceSpansMultipleThreadsOrSources(successEvidence)\n ) {\n if (personalMemoryAllowed) {\n proposals.push({\n targetType: \"personal-memory\",\n targetPath: `memory/${slugify(`dispatch-success-patterns-${date}`)}.md`,\n title: \"Preserve successful Dispatch workflow patterns\",\n summary:\n \"Recent successful checkpointed runs may contain reusable workflow patterns.\",\n rationale:\n \"Checkpointed successful runs are lower-risk candidates for personal memory when no correction or failure proposals are present.\",\n content: [\n \"# Successful Dispatch Patterns\",\n \"\",\n \"Recent checkpointed runs worth reviewing:\",\n \"\",\n evidenceSummary(successEvidence, 8),\n ].join(\"\\n\"),\n evidence: successEvidence.slice(0, 8),\n confidence: 60,\n risk: \"low\",\n });\n } else {\n routedPersonalMemory = true;\n proposals.push({\n targetType: \"shared-learnings\",\n targetPath: \"LEARNINGS.md\",\n title: \"Review successful Dispatch workflow patterns\",\n summary:\n \"Recent successful checkpointed runs may contain reusable workflow patterns, but the source scope is not personal to the dream creator.\",\n rationale: `Personal memory is blocked because ${personalMemoryBlockReason}. Shared learnings keep the cross-owner workflow evidence reviewable.`,\n content: [\n \"Recent Dispatch dream review found checkpointed runs worth reviewing.\",\n \"\",\n `Provenance: Personal memory was disabled for this proposal because ${personalMemoryBlockReason}.`,\n \"\",\n evidenceSummary(successEvidence, 8),\n ].join(\"\\n\"),\n evidence: successEvidence.slice(0, 8),\n confidence: 60,\n risk: \"medium\",\n });\n }\n }\n\n if (\n successEvidence.length >= 2 &&\n evidenceSpansMultipleThreadsOrSources(successEvidence)\n ) {\n proposals.push({\n targetType: \"workspace-skill\",\n targetPath: `skills/${slugify(`dispatch-success-patterns-${date}`)}/SKILL.md`,\n title: \"Create workspace skill from successful Dispatch patterns\",\n summary:\n \"Successful checkpointed workflows across multiple threads may deserve a reusable all-app skill.\",\n rationale:\n \"Repeated successful, checkpointed workflows are candidates for reusable skills when they can be stated as a repeatable procedure and reviewed by a human.\",\n content: [\n \"---\",\n `name: ${slugify(`dispatch-success-patterns-${date}`)}`,\n \"description: >-\",\n \" Use when a task resembles recent successful Dispatch workflows and the agent needs a reviewed repeatable procedure.\",\n \"---\",\n \"\",\n \"# Dispatch Success Patterns\",\n \"\",\n \"This skill was drafted from a Dispatch dream report. Review and tighten it before applying broadly.\",\n \"\",\n \"## Source Evidence\",\n \"\",\n evidenceSummary(successEvidence, 10),\n \"\",\n \"## Procedure Draft\",\n \"\",\n \"1. Identify the source thread or workflow that most closely matches the current task.\",\n \"2. Reuse the verified sequence of actions only after checking current app state and available actions.\",\n \"3. Run the smallest relevant verification step before presenting the result.\",\n \"4. Record any user correction as a new dream candidate rather than silently broadening the skill.\",\n ].join(\"\\n\"),\n evidence: successEvidence.slice(0, 10),\n confidence: Math.min(80, 50 + successStrengthCount * 10),\n risk: \"medium\",\n });\n }\n\n const suppressionNotes = noProposalSuppressionNotes({\n explicitEvidence,\n failureEvidence,\n durableFailureEvidence,\n successEvidence,\n personalMemoryAllowed,\n personalMemoryBlockReason,\n });\n const result = applyMemoryGuardrails(proposals, memoryContext);\n if (routedPersonalMemory) {\n result.guardrailNotes.unshift(\n `Routed personal-memory dream proposals to shared learnings because ${personalMemoryBlockReason}.`,\n );\n }\n if (result.proposals.length === 0) {\n for (const note of suppressionNotes) {\n addSuppressionNote(result.guardrailNotes, note);\n }\n }\n return result;\n}\n\nfunction summarizeDream(\n candidates: DreamCandidate[],\n proposals: number,\n sourceHealth: DreamSourceHealth[] = [],\n): string {\n const failedSources = sourceHealth.filter((source) => source.status !== \"ok\");\n const sourcePrefix =\n sourceHealth.length > 1\n ? `${sourceHealth.length - failedSources.length}/${sourceHealth.length} sources completed${failedSources.length > 0 ? ` with ${failedSources.length} partial` : \"\"}. `\n : \"\";\n if (candidates.length === 0) {\n return `${sourcePrefix}No dream-worthy signals were found in the inspected threads.`;\n }\n const topReason = candidates[0]?.reasons[0]?.label ?? \"agent-run signals\";\n return `${sourcePrefix}Reviewed ${candidates.length} candidate thread(s), led by ${topReason}. Created ${proposals} proposal(s).`;\n}\n\nfunction serializeProposal(row: DreamProposalRow) {\n return {\n ...row,\n evidence: safeJsonParse<DreamEvidence[]>(row.evidence, []),\n };\n}\n\nfunction serializeDream(row: DreamRow) {\n return {\n ...row,\n sourceHealth: safeJsonParse<DreamSourceHealth[]>(\n (row as DreamRow & { sourceHealth?: string | null }).sourceHealth,\n [],\n ),\n };\n}\n\nasync function getDreamRow(\n dreamId: string,\n ctx: DispatchCtx = { ownerEmail: currentOwnerEmail(), orgId: currentOrgId() },\n) {\n const db = getDb();\n const [row] = await db\n .select()\n .from(schema.dispatchDreams)\n .where(\n and(\n eq(schema.dispatchDreams.id, dreamId),\n scopeFor(schema.dispatchDreams, ctx),\n ),\n )\n .limit(1);\n return row ?? null;\n}\n\nasync function getProposalRow(\n proposalId: string,\n ctx: DispatchCtx = { ownerEmail: currentOwnerEmail(), orgId: currentOrgId() },\n) {\n const db = getDb();\n const [row] = await db\n .select()\n .from(schema.dispatchDreamProposals)\n .where(\n and(\n eq(schema.dispatchDreamProposals.id, proposalId),\n scopeFor(schema.dispatchDreamProposals, ctx),\n ),\n )\n .limit(1);\n return row ?? null;\n}\n\nexport async function createDreamReport(input: {\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 const db = getDb();\n const timestamp = now();\n const ownerEmail = currentOwnerEmail();\n const orgId = currentOrgId();\n const dreamId = id();\n const allSources =\n wantsAllDreamSources(input) || (input.sourceIds?.length ?? 0) > 0;\n const sourceId = allSources ? \"all\" : input.sourceId?.trim() || \"current\";\n const query = input.query?.trim() || null;\n const title = input.title?.trim() || `Dispatch dream ${today()}`;\n\n await db.insert(schema.dispatchDreams).values({\n id: dreamId,\n ownerEmail,\n orgId,\n sourceId,\n title,\n status: \"running\" satisfies DreamStatus,\n query,\n report: null,\n summary: null,\n sourceHealth: null,\n candidateCount: 0,\n inspectedThreadCount: 0,\n createdBy: ownerEmail,\n error: null,\n startedAt: timestamp,\n completedAt: null,\n createdAt: timestamp,\n updatedAt: timestamp,\n });\n\n try {\n const result = await listDreamCandidates({\n sourceId,\n sourceIds: input.sourceIds,\n allSources,\n query: input.query,\n ownerEmail: input.ownerEmail,\n limit: input.limit,\n sourceTimeoutMs: input.sourceTimeoutMs,\n sourceConcurrency: input.sourceConcurrency,\n sourceStartStaggerMs: input.sourceStartStaggerMs,\n threadConcurrency: input.threadConcurrency,\n threadTimeoutMs: input.threadTimeoutMs,\n });\n const memoryContext = await loadDreamMemoryContext(ownerEmail).catch(() =>\n emptyMemoryContext(),\n );\n const personalMemoryBlockReason = personalMemoryBlockReasonForDream(\n result,\n ownerEmail,\n );\n const proposalBuild = buildProposalInputs(\n result.candidates,\n memoryContext,\n {\n personalMemoryAllowed: personalMemoryBlockReason == null,\n personalMemoryBlockReason,\n },\n );\n const proposalInputs = proposalBuild.proposals;\n const report = makeReport({\n title,\n sourceId,\n query,\n candidates: result.candidates,\n inspectedThreadCount: result.inspectedThreadCount,\n proposals: proposalInputs,\n guardrailNotes: proposalBuild.guardrailNotes,\n sourceHealth: result.sources,\n });\n const summary = summarizeDream(\n result.candidates,\n proposalInputs.length,\n result.sources,\n );\n const completedAt = now();\n\n if (proposalInputs.length > 0) {\n await db.insert(schema.dispatchDreamProposals).values(\n proposalInputs.map((proposal) => ({\n id: id(),\n dreamId,\n ownerEmail,\n orgId,\n targetType: proposal.targetType,\n targetPath: proposal.targetPath,\n title: proposal.title,\n summary: proposal.summary,\n rationale: proposal.rationale,\n content: proposal.content,\n evidence: safeJson(proposal.evidence),\n confidence: proposal.confidence,\n risk: proposal.risk,\n status: \"pending\" satisfies ProposalStatus,\n appliedBy: null,\n appliedAt: null,\n rejectedBy: null,\n rejectedAt: null,\n createdAt: completedAt,\n updatedAt: completedAt,\n })),\n );\n }\n\n await db\n .update(schema.dispatchDreams)\n .set({\n status: \"completed\" satisfies DreamStatus,\n report,\n summary,\n sourceHealth: safeJson(result.sources),\n candidateCount: result.candidateCount,\n inspectedThreadCount: result.inspectedThreadCount,\n completedAt,\n updatedAt: completedAt,\n })\n .where(eq(schema.dispatchDreams.id, dreamId));\n\n await recordAudit({\n action: \"dream.created\",\n targetType: \"dream\",\n targetId: dreamId,\n summary,\n metadata: {\n sourceId,\n query,\n candidates: result.candidateCount,\n inspectedThreads: result.inspectedThreadCount,\n proposals: proposalInputs.length,\n sources: result.sources,\n personalMemoryBlocked: personalMemoryBlockReason,\n },\n });\n\n return getDream(dreamId);\n } catch (error) {\n const failedAt = now();\n const message = String((error as Error)?.message ?? error);\n await db\n .update(schema.dispatchDreams)\n .set({\n status: \"failed\" satisfies DreamStatus,\n error: message,\n completedAt: failedAt,\n updatedAt: failedAt,\n })\n .where(eq(schema.dispatchDreams.id, dreamId));\n await recordAudit({\n action: \"dream.failed\",\n targetType: \"dream\",\n targetId: dreamId,\n summary: `Dream report failed: ${message}`,\n metadata: { sourceId, query },\n });\n throw error;\n }\n}\n\nexport async function listDreams(\n input: {\n limit?: number;\n status?: DreamStatus | \"all\";\n } = {},\n) {\n const db = getDb();\n const ctx = { ownerEmail: currentOwnerEmail(), orgId: currentOrgId() };\n const limit = Math.max(1, Math.min(100, input.limit ?? 25));\n const filters = [scopeFor(schema.dispatchDreams, ctx)];\n if (input.status && input.status !== \"all\") {\n filters.push(eq(schema.dispatchDreams.status, input.status));\n }\n const dreams = await db\n .select()\n .from(schema.dispatchDreams)\n .where(and(...filters))\n .orderBy(desc(schema.dispatchDreams.updatedAt))\n .limit(limit);\n\n const dreamIds = dreams.map((dream) => dream.id);\n const proposals =\n dreamIds.length === 0\n ? []\n : await db\n .select()\n .from(schema.dispatchDreamProposals)\n .where(inArray(schema.dispatchDreamProposals.dreamId, dreamIds));\n\n const counts = new Map<string, Record<string, number>>();\n for (const proposal of proposals) {\n const existing = counts.get(proposal.dreamId) ?? {};\n existing[proposal.status] = (existing[proposal.status] ?? 0) + 1;\n existing.total = (existing.total ?? 0) + 1;\n counts.set(proposal.dreamId, existing);\n }\n\n return {\n count: dreams.length,\n dreams: dreams.map((dream) => ({\n ...serializeDream(dream),\n proposalCounts: counts.get(dream.id) ?? { total: 0 },\n })),\n };\n}\n\nexport async function getDream(dreamId: string) {\n const db = getDb();\n const dream = await getDreamRow(dreamId);\n if (!dream) throw new Error(\"Dream not found\");\n const proposals = await db\n .select()\n .from(schema.dispatchDreamProposals)\n .where(eq(schema.dispatchDreamProposals.dreamId, dream.id))\n .orderBy(desc(schema.dispatchDreamProposals.createdAt));\n\n return {\n dream: serializeDream(dream),\n proposals: proposals.map(serializeProposal),\n };\n}\n\nasync function savePersonalMemory(proposal: DreamProposalRow) {\n if (proposal.targetType !== \"personal-memory\") {\n throw new Error(\"Proposal is not a personal-memory proposal\");\n }\n const owner = proposal.ownerEmail;\n if (owner !== currentOwnerEmail()) {\n throw new Error(\"Personal memory proposals can only be applied by owner\");\n }\n const targetPath = personalMemoryTargetPath(proposal);\n if (targetPath === MEMORY_INDEX_PATH || !targetPath.endsWith(\".md\")) {\n throw new Error(\"Personal memory proposals must target memory/<name>.md\");\n }\n const name = targetPath.replace(/^memory\\//, \"\").replace(/\\.md$/, \"\");\n const date = today();\n const description = compactText(proposal.summary, 140);\n const evidence = safeJsonParse<DreamEvidence[]>(proposal.evidence, []);\n const fileContent = [\n \"---\",\n \"type: feedback\",\n `description: ${JSON.stringify(description.replace(/\\n/g, \" \"))}`,\n `updated: ${date}`,\n \"---\",\n \"\",\n proposal.content.trim(),\n \"\",\n \"## Provenance\",\n \"\",\n `Dream: ${proposal.dreamId}`,\n `Proposal: ${proposal.id}`,\n \"\",\n evidenceSummary(evidence, 10),\n \"\",\n ].join(\"\\n\");\n\n await resourcePut(owner, targetPath, fileContent, \"text/markdown\", {\n createdBy: \"agent\",\n metadata: { dreamId: proposal.dreamId, proposalId: proposal.id },\n });\n\n const existingIndex = await resourceGetByPath(owner, MEMORY_INDEX_PATH);\n const index = existingIndex?.content ?? \"# Memory Index\\n\";\n const entryLine = `- [${name}](${name}.md) — ${description}`;\n const entryPrefix = `- [${name}]`;\n let found = false;\n const lines = index.split(\"\\n\").map((line) => {\n if (line.startsWith(entryPrefix)) {\n found = true;\n return entryLine;\n }\n return line;\n });\n if (!found) lines.push(entryLine);\n const updatedIndex = lines.join(\"\\n\").trimEnd() + \"\\n\";\n\n await resourcePut(owner, MEMORY_INDEX_PATH, updatedIndex, \"text/markdown\", {\n createdBy: \"agent\",\n metadata: { dreamId: proposal.dreamId, proposalId: proposal.id },\n });\n\n return {\n resourcePath: targetPath,\n indexPath: MEMORY_INDEX_PATH,\n indexLineCount: updatedIndex.split(\"\\n\").length,\n };\n}\n\nasync function appendSharedLearning(proposal: DreamProposalRow) {\n if (proposal.targetType !== \"shared-learnings\") {\n throw new Error(\"Proposal is not a shared-learnings proposal\");\n }\n const evidence = safeJsonParse<DreamEvidence[]>(proposal.evidence, []);\n const existing = await resourceGetByPath(SHARED_OWNER, \"LEARNINGS.md\");\n const current =\n existing?.content ??\n \"# Learnings\\n\\n## Preferences\\n\\n## Corrections\\n\\n## Patterns\\n\";\n const sources = [...new Set(evidence.map((entry) => entry.threadId))]\n .slice(0, 6)\n .join(\", \");\n const entry = [\n `- ${today()}: ${compactText(proposal.summary, 220)}`,\n ` Source dream: ${proposal.dreamId}; source threads: ${sources || \"none recorded\"}.`,\n ].join(\"\\n\");\n const updated = current.includes(\"## Patterns\")\n ? current.replace(\"## Patterns\", `## Patterns\\n\\n${entry}`)\n : `${current.trimEnd()}\\n\\n## Patterns\\n\\n${entry}\\n`;\n\n await resourcePut(SHARED_OWNER, \"LEARNINGS.md\", updated, \"text/markdown\", {\n createdBy: \"agent\",\n metadata: { dreamId: proposal.dreamId, proposalId: proposal.id },\n });\n\n return {\n resourcePath: \"LEARNINGS.md\",\n owner: SHARED_OWNER,\n };\n}\n\nfunction workspaceResourceKindForTarget(\n targetType: string,\n): WorkspaceResourceKind | null {\n if (targetType === \"workspace-instruction\") return \"instruction\";\n if (targetType === \"workspace-skill\") return \"skill\";\n if (targetType === \"workspace-knowledge\") return \"knowledge\";\n if (targetType === \"workspace-agent\") return \"agent\";\n return null;\n}\n\nfunction workspaceResourceName(proposal: DreamProposalRow): string {\n return proposal.title\n .replace(/^Create workspace (instruction|skill|knowledge|agent) from /i, \"\")\n .replace(/^Create workspace (instruction|skill|knowledge|agent) /i, \"\")\n .trim()\n .replace(/^./, (char) => char.toUpperCase());\n}\n\nfunction personalMemoryTargetPath(proposal: DreamProposalRow): string {\n return proposal.targetPath.startsWith(\"memory/\")\n ? proposal.targetPath\n : `memory/${slugify(proposal.title)}.md`;\n}\n\nfunction validateWorkspaceResourcePath(\n kind: WorkspaceResourceKind,\n path: string,\n) {\n if (!path.trim() || path.includes(\"..\") || path.startsWith(\"/\")) {\n throw new Error(\"Workspace resource proposal has an invalid target path\");\n }\n if (kind === \"instruction\") {\n if (path === \"AGENTS.md\" || path.startsWith(\"instructions/\")) return;\n throw new Error(\n \"Workspace instruction proposals must target AGENTS.md or instructions/<name>.md\",\n );\n }\n if (kind === \"skill\") {\n if (path.startsWith(\"skills/\") && path.endsWith(\"/SKILL.md\")) return;\n throw new Error(\n \"Workspace skill proposals must target skills/<name>/SKILL.md\",\n );\n }\n if (kind === \"knowledge\") {\n if (path.startsWith(\"context/\")) return;\n throw new Error(\n \"Workspace knowledge proposals must target context/<name>.md\",\n );\n }\n if (kind === \"agent\") {\n if (path.startsWith(\"agents/\") && path.endsWith(\".md\")) return;\n throw new Error(\"Workspace agent proposals must target agents/<name>.md\");\n }\n}\n\nasync function applyWorkspaceResourceProposal(proposal: DreamProposalRow) {\n const kind = workspaceResourceKindForTarget(proposal.targetType);\n if (!kind)\n throw new Error(`Unsupported workspace target: ${proposal.targetType}`);\n validateWorkspaceResourcePath(kind, proposal.targetPath);\n const scope: WorkspaceResourceScope = \"all\";\n const resources = await listWorkspaceResources({ kind });\n const existing = resources.find(\n (resource) => resource.path === proposal.targetPath,\n );\n const name = workspaceResourceName(proposal);\n const description = compactText(proposal.summary, 220);\n if (existing) {\n const updated = await updateWorkspaceResource(existing.id, {\n name,\n description,\n content: proposal.content,\n scope,\n });\n return {\n action: \"updated\",\n resourceId: updated?.id ?? existing.id,\n resourcePath: proposal.targetPath,\n kind,\n scope,\n };\n }\n\n const created = await createWorkspaceResource({\n kind,\n name,\n description,\n path: proposal.targetPath,\n content: proposal.content,\n scope,\n });\n return {\n action: \"created\",\n resourceId: created?.id ?? null,\n resourcePath: proposal.targetPath,\n kind,\n scope,\n };\n}\n\nfunction proposalRequiresApproval(proposal: DreamProposalRow): boolean {\n return proposal.targetType !== \"personal-memory\";\n}\n\nexport async function previewDreamProposal(proposalId: string) {\n const proposal = await getProposalRow(proposalId);\n if (!proposal) throw new Error(\"Dream proposal not found\");\n\n let currentContent: string | null = null;\n let targetExists = false;\n let operation: \"create\" | \"update\" | \"append\" = \"create\";\n let target = {\n type: proposal.targetType,\n path: proposal.targetPath,\n kind: null as WorkspaceResourceKind | null,\n resourceId: null as string | null,\n };\n\n if (proposal.targetType === \"personal-memory\") {\n const targetPath = personalMemoryTargetPath(proposal);\n const existing = await resourceGetByPath(proposal.ownerEmail, targetPath);\n currentContent = existing?.content ?? null;\n targetExists = Boolean(existing);\n operation = targetExists ? \"update\" : \"create\";\n target = { ...target, path: targetPath };\n } else if (proposal.targetType === \"shared-learnings\") {\n const existing = await resourceGetByPath(SHARED_OWNER, \"LEARNINGS.md\");\n currentContent = existing?.content ?? null;\n targetExists = Boolean(existing);\n operation = \"append\";\n target = { ...target, path: \"LEARNINGS.md\" };\n } else if (proposal.targetType.startsWith(\"workspace-\")) {\n const kind = workspaceResourceKindForTarget(proposal.targetType);\n if (!kind) {\n throw new Error(`Unsupported workspace target: ${proposal.targetType}`);\n }\n validateWorkspaceResourcePath(kind, proposal.targetPath);\n const resources = await listWorkspaceResources({ kind });\n const existing = resources.find(\n (resource) => resource.path === proposal.targetPath,\n );\n currentContent = existing?.content ?? null;\n targetExists = Boolean(existing);\n operation = existing ? \"update\" : \"create\";\n target = {\n ...target,\n kind,\n resourceId: existing?.id ?? null,\n };\n }\n\n const approvalPolicy = await getApprovalPolicy();\n const requiresApproval = proposalRequiresApproval(proposal);\n\n return {\n proposal: serializeProposal(proposal),\n target,\n operation,\n targetExists,\n currentContent,\n proposedContent: proposal.content,\n approval: {\n required: requiresApproval,\n policyEnabled: approvalPolicy.enabled,\n willRequestApproval: requiresApproval && approvalPolicy.enabled,\n },\n };\n}\n\nasync function requestDreamProposalApproval(proposal: DreamProposalRow) {\n const db = getDb();\n const timestamp = now();\n await db\n .update(schema.dispatchDreamProposals)\n .set({\n status: \"approval_requested\" satisfies ProposalStatus,\n updatedAt: timestamp,\n })\n .where(eq(schema.dispatchDreamProposals.id, proposal.id));\n\n const approval = await createApprovalRequest({\n changeType: \"dream-proposal.apply\",\n targetType: \"dream-proposal\",\n targetId: proposal.id,\n summary: `Apply dream proposal: ${proposal.title}`,\n payload: { proposalId: proposal.id },\n beforeValue: serializeProposal(proposal),\n afterValue: {\n ...serializeProposal(proposal),\n status: \"applied\" satisfies ProposalStatus,\n },\n });\n\n await recordAudit({\n action: \"dream.proposal.approval-requested\",\n targetType: \"dream-proposal\",\n targetId: proposal.id,\n summary: `Requested approval for dream proposal: ${proposal.title}`,\n metadata: {\n dreamId: proposal.dreamId,\n approvalId: approval?.id ?? null,\n targetType: proposal.targetType,\n targetPath: proposal.targetPath,\n },\n });\n\n return {\n proposal: serializeProposal((await getProposalRow(proposal.id))!),\n approval,\n result: {\n approvalRequired: true,\n approvalId: approval?.id ?? null,\n },\n };\n}\n\nasync function applyDreamProposalDirect(\n proposal: DreamProposalRow,\n actor = currentOwnerEmail(),\n) {\n const db = getDb();\n let result: unknown;\n if (proposal.targetType === \"personal-memory\") {\n result = await savePersonalMemory(proposal);\n } else if (proposal.targetType === \"shared-learnings\") {\n result = await appendSharedLearning(proposal);\n } else if (proposal.targetType.startsWith(\"workspace-\")) {\n result = await applyWorkspaceResourceProposal(proposal);\n } else {\n throw new Error(\n `Unsupported dream proposal target: ${proposal.targetType}`,\n );\n }\n\n const timestamp = now();\n await db\n .update(schema.dispatchDreamProposals)\n .set({\n status: \"applied\" satisfies ProposalStatus,\n appliedBy: actor,\n appliedAt: timestamp,\n updatedAt: timestamp,\n })\n .where(eq(schema.dispatchDreamProposals.id, proposal.id));\n\n await recordAudit({\n action: \"dream.proposal.applied\",\n targetType: \"dream-proposal\",\n targetId: proposal.id,\n summary: `Applied dream proposal: ${proposal.title}`,\n actor,\n metadata: {\n dreamId: proposal.dreamId,\n targetType: proposal.targetType,\n targetPath: proposal.targetPath,\n result,\n },\n });\n\n return {\n proposal: serializeProposal((await getProposalRow(proposal.id))!),\n result,\n };\n}\n\nexport async function applyApprovedDreamProposal(\n proposalId: string,\n actor = currentOwnerEmail(),\n ctx: DispatchCtx = { ownerEmail: currentOwnerEmail(), orgId: currentOrgId() },\n) {\n const proposal = await getProposalRow(proposalId, ctx);\n if (!proposal) throw new Error(\"Dream proposal not found\");\n if (![\"pending\", \"approval_requested\"].includes(proposal.status)) {\n throw new Error(\"Only pending dream proposals can be applied\");\n }\n return applyDreamProposalDirect(proposal, actor);\n}\n\nexport async function applyDreamProposal(proposalId: string) {\n const proposal = await getProposalRow(proposalId);\n if (!proposal) throw new Error(\"Dream proposal not found\");\n if (proposal.status === \"approval_requested\") {\n throw new Error(\"Dream proposal is already waiting for approval\");\n }\n if (proposal.status !== \"pending\") {\n throw new Error(\"Only pending dream proposals can be applied\");\n }\n\n if (proposalRequiresApproval(proposal)) {\n const policy = await getApprovalPolicy();\n if (policy.enabled) {\n return requestDreamProposalApproval(proposal);\n }\n }\n\n return applyDreamProposalDirect(proposal);\n}\n\nexport async function rejectDreamProposal(\n proposalId: string,\n reason?: string | null,\n) {\n const db = getDb();\n const proposal = await getProposalRow(proposalId);\n if (!proposal) throw new Error(\"Dream proposal not found\");\n if (![\"pending\", \"approval_requested\"].includes(proposal.status)) {\n throw new Error(\"Only pending dream proposals can be rejected\");\n }\n const timestamp = now();\n await db\n .update(schema.dispatchDreamProposals)\n .set({\n status: \"rejected\" satisfies ProposalStatus,\n rejectedBy: currentOwnerEmail(),\n rejectedAt: timestamp,\n updatedAt: timestamp,\n })\n .where(eq(schema.dispatchDreamProposals.id, proposal.id));\n\n await recordAudit({\n action: \"dream.proposal.rejected\",\n targetType: \"dream-proposal\",\n targetId: proposal.id,\n summary: `Rejected dream proposal: ${proposal.title}`,\n metadata: {\n dreamId: proposal.dreamId,\n reason: reason || null,\n },\n });\n\n return serializeProposal((await getProposalRow(proposal.id))!);\n}\n\nfunction cronLooksValid(schedule: string): boolean {\n const parts = schedule.trim().split(/\\s+/);\n if (parts.length !== 5) return false;\n return parts.every((part) => /^[\\d*/,-]+$/.test(part));\n}\n\nfunction dreamJobBody(settings: Omit<DreamSettings, \"scope\" | \"scopeId\">) {\n const queryLine = settings.query\n ? `- Use query \"${settings.query}\" to focus the dream pass.`\n : \"- Review recent threads without a search query.\";\n const sourceLine =\n settings.sourceIds.length > 0\n ? `- sourceIds: ${JSON.stringify(settings.sourceIds)}`\n : `- sourceId: \"${settings.sourceId}\"`;\n return `# Dispatch Dream\n\nRun a safe Dispatch dreaming pass.\n\n1. Call \\`list-dream-candidates\\` with:\n ${sourceLine}\n - allSources: ${settings.allSources}\n ${queryLine}\n - ownerEmail: \"*\"\n - limit: ${settings.limit}\n - sourceTimeoutMs: ${settings.sourceTimeoutMs}\n - sourceConcurrency: ${settings.sourceConcurrency}\n - sourceStartStaggerMs: ${settings.sourceStartStaggerMs}\n - threadConcurrency: ${settings.threadConcurrency}\n - threadTimeoutMs: ${settings.threadTimeoutMs}\n2. If fewer than ${settings.minCandidateCount} candidate thread(s) are found, stop without creating a report.\n3. Call \\`create-dream-report\\` with the same source/query/limit/timeout settings.\n4. Review the returned proposals and evidence.\n5. Do not auto-apply shared/team changes, workspace instructions, workspace skills, AGENTS.md changes, or jobs.\n6. Only apply personal-memory proposals when the evidence is explicit user-grounded correction or a remember request.\n7. Leave all other proposals pending for a human to review.\n`;\n}\n\nexport async function ensureDreamJob(input: {\n schedule?: string;\n sourceId?: string;\n sourceIds?: string[];\n allSources?: boolean;\n query?: string;\n limit?: number;\n sourceTimeoutMs?: number;\n sourceConcurrency?: number;\n sourceStartStaggerMs?: number;\n threadConcurrency?: number;\n threadTimeoutMs?: number;\n minCandidateCount?: number;\n}) {\n const saved = await getDreamSettings();\n const settings = normalizeDreamSettings({\n ...saved,\n ...input,\n query:\n input.query === undefined\n ? saved.query\n : input.query?.trim()\n ? input.query.trim()\n : null,\n sourceIds:\n input.sourceIds !== undefined\n ? normalizeSourceIds(input.sourceIds)\n : saved.sourceIds,\n });\n const schedule = input.schedule?.trim() || settings.schedule;\n if (!cronLooksValid(schedule)) {\n throw new Error(\n 'Invalid cron expression. Use a standard five-field cron like \"0 9 * * 1\".',\n );\n }\n const owner = currentOwnerEmail();\n const orgId = currentOrgId();\n const jobSettings = { ...settings, schedule, enabled: true };\n const content = [\n \"---\",\n `schedule: \"${schedule}\"`,\n \"enabled: true\",\n `createdBy: ${owner}`,\n ...(orgId ? [`orgId: ${orgId}`] : []),\n \"runAs: creator\",\n \"---\",\n \"\",\n dreamJobBody(jobSettings),\n ].join(\"\\n\");\n\n const resource = await resourcePut(\n owner,\n DREAM_JOB_PATH,\n content,\n \"text/markdown\",\n {\n createdBy: \"agent\",\n metadata: jobSettings,\n },\n );\n\n await setDreamSettings(jobSettings);\n await recordAudit({\n action: \"dream.job.ensured\",\n targetType: \"job\",\n targetId: DREAM_JOB_PATH,\n summary: \"Ensured weekly Dispatch dream recurring job\",\n metadata: jobSettings,\n });\n\n return {\n path: resource.path,\n owner: resource.owner,\n schedule,\n enabled: true,\n runAs: \"creator\",\n sourceId: jobSettings.sourceId,\n sourceIds: jobSettings.sourceIds,\n allSources: jobSettings.allSources,\n query: jobSettings.query,\n limit: jobSettings.limit,\n sourceTimeoutMs: jobSettings.sourceTimeoutMs,\n sourceConcurrency: jobSettings.sourceConcurrency,\n sourceStartStaggerMs: jobSettings.sourceStartStaggerMs,\n threadConcurrency: jobSettings.threadConcurrency,\n threadTimeoutMs: jobSettings.threadTimeoutMs,\n minCandidateCount: jobSettings.minCandidateCount,\n };\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { EnvKeyConfig } from "@agent-native/core/server";
2
+ export declare const envKeys: EnvKeyConfig[];
3
+ //# sourceMappingURL=env-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-config.d.ts","sourceRoot":"","sources":["../../../src/server/lib/env-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,eAAO,MAAM,OAAO,EAAE,YAAY,EAgGjC,CAAC"}
@@ -0,0 +1,98 @@
1
+ export const envKeys = [
2
+ {
3
+ key: "SLACK_BOT_TOKEN",
4
+ label: "Slack bot token (legacy)",
5
+ required: false,
6
+ },
7
+ {
8
+ key: "SLACK_CLIENT_ID",
9
+ label: "Slack OAuth client ID",
10
+ required: true,
11
+ },
12
+ {
13
+ key: "SLACK_CLIENT_SECRET",
14
+ label: "Slack OAuth client secret",
15
+ required: true,
16
+ },
17
+ {
18
+ key: "SLACK_SIGNING_SECRET",
19
+ label: "Slack signing secret",
20
+ required: true,
21
+ },
22
+ {
23
+ key: "TELEGRAM_BOT_TOKEN",
24
+ label: "Telegram bot token",
25
+ required: true,
26
+ },
27
+ {
28
+ key: "TELEGRAM_WEBHOOK_SECRET",
29
+ label: "Telegram webhook secret",
30
+ required: true,
31
+ },
32
+ {
33
+ key: "MICROSOFT_TEAMS_APP_ID",
34
+ label: "Microsoft Bot app ID",
35
+ required: false,
36
+ },
37
+ {
38
+ key: "MICROSOFT_TEAMS_APP_PASSWORD",
39
+ label: "Microsoft Bot client secret",
40
+ required: false,
41
+ },
42
+ {
43
+ key: "MICROSOFT_TEAMS_APP_TENANT_ID",
44
+ label: "Microsoft Bot tenant ID",
45
+ required: false,
46
+ },
47
+ {
48
+ key: "MICROSOFT_TEAMS_ALLOWED_TENANT_IDS",
49
+ label: "Allowed Microsoft Teams tenant IDs",
50
+ required: false,
51
+ },
52
+ {
53
+ key: "DISCORD_APPLICATION_ID",
54
+ label: "Discord application ID",
55
+ required: false,
56
+ },
57
+ {
58
+ key: "DISCORD_PUBLIC_KEY",
59
+ label: "Discord public key",
60
+ required: false,
61
+ },
62
+ {
63
+ key: "EMAIL_AGENT_ADDRESS",
64
+ label: "Agent email address",
65
+ required: false,
66
+ },
67
+ {
68
+ key: "DISPATCH_DEFAULT_OWNER_EMAIL",
69
+ label: "Default Slack owner email",
70
+ required: false,
71
+ },
72
+ {
73
+ key: "WHATSAPP_ACCESS_TOKEN",
74
+ label: "WhatsApp access token",
75
+ required: false,
76
+ },
77
+ {
78
+ key: "WHATSAPP_VERIFY_TOKEN",
79
+ label: "WhatsApp verify token",
80
+ required: false,
81
+ },
82
+ {
83
+ key: "WHATSAPP_PHONE_NUMBER_ID",
84
+ label: "WhatsApp phone number ID",
85
+ required: false,
86
+ },
87
+ {
88
+ key: "WHATSAPP_APP_SECRET",
89
+ label: "WhatsApp app secret",
90
+ required: false,
91
+ },
92
+ {
93
+ key: "PYLON_API_KEY",
94
+ label: "Pylon API key",
95
+ required: false,
96
+ },
97
+ ];
98
+ //# sourceMappingURL=env-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-config.js","sourceRoot":"","sources":["../../../src/server/lib/env-config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAAmB;IACrC;QACE,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,0BAA0B;QACjC,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,IAAI;KACf;IACD;QACE,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,2BAA2B;QAClC,QAAQ,EAAE,IAAI;KACf;IACD;QACE,GAAG,EAAE,sBAAsB;QAC3B,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE,IAAI;KACf;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE,IAAI;KACf;IACD;QACE,GAAG,EAAE,yBAAyB;QAC9B,KAAK,EAAE,yBAAyB;QAChC,QAAQ,EAAE,IAAI;KACf;IACD;QACE,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,GAAG,EAAE,8BAA8B;QACnC,KAAK,EAAE,6BAA6B;QACpC,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,KAAK,EAAE,yBAAyB;QAChC,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,GAAG,EAAE,oCAAoC;QACzC,KAAK,EAAE,oCAAoC;QAC3C,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,GAAG,EAAE,8BAA8B;QACnC,KAAK,EAAE,2BAA2B;QAClC,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,GAAG,EAAE,uBAAuB;QAC5B,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,GAAG,EAAE,uBAAuB;QAC5B,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,GAAG,EAAE,0BAA0B;QAC/B,KAAK,EAAE,0BAA0B;QACjC,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC","sourcesContent":["import type { EnvKeyConfig } from \"@agent-native/core/server\";\n\nexport const envKeys: EnvKeyConfig[] = [\n {\n key: \"SLACK_BOT_TOKEN\",\n label: \"Slack bot token (legacy)\",\n required: false,\n },\n {\n key: \"SLACK_CLIENT_ID\",\n label: \"Slack OAuth client ID\",\n required: true,\n },\n {\n key: \"SLACK_CLIENT_SECRET\",\n label: \"Slack OAuth client secret\",\n required: true,\n },\n {\n key: \"SLACK_SIGNING_SECRET\",\n label: \"Slack signing secret\",\n required: true,\n },\n {\n key: \"TELEGRAM_BOT_TOKEN\",\n label: \"Telegram bot token\",\n required: true,\n },\n {\n key: \"TELEGRAM_WEBHOOK_SECRET\",\n label: \"Telegram webhook secret\",\n required: true,\n },\n {\n key: \"MICROSOFT_TEAMS_APP_ID\",\n label: \"Microsoft Bot app ID\",\n required: false,\n },\n {\n key: \"MICROSOFT_TEAMS_APP_PASSWORD\",\n label: \"Microsoft Bot client secret\",\n required: false,\n },\n {\n key: \"MICROSOFT_TEAMS_APP_TENANT_ID\",\n label: \"Microsoft Bot tenant ID\",\n required: false,\n },\n {\n key: \"MICROSOFT_TEAMS_ALLOWED_TENANT_IDS\",\n label: \"Allowed Microsoft Teams tenant IDs\",\n required: false,\n },\n {\n key: \"DISCORD_APPLICATION_ID\",\n label: \"Discord application ID\",\n required: false,\n },\n {\n key: \"DISCORD_PUBLIC_KEY\",\n label: \"Discord public key\",\n required: false,\n },\n {\n key: \"EMAIL_AGENT_ADDRESS\",\n label: \"Agent email address\",\n required: false,\n },\n {\n key: \"DISPATCH_DEFAULT_OWNER_EMAIL\",\n label: \"Default Slack owner email\",\n required: false,\n },\n {\n key: \"WHATSAPP_ACCESS_TOKEN\",\n label: \"WhatsApp access token\",\n required: false,\n },\n {\n key: \"WHATSAPP_VERIFY_TOKEN\",\n label: \"WhatsApp verify token\",\n required: false,\n },\n {\n key: \"WHATSAPP_PHONE_NUMBER_ID\",\n label: \"WhatsApp phone number ID\",\n required: false,\n },\n {\n key: \"WHATSAPP_APP_SECRET\",\n label: \"WhatsApp app secret\",\n required: false,\n },\n {\n key: \"PYLON_API_KEY\",\n label: \"Pylon API key\",\n required: false,\n },\n];\n"]}
@@ -0,0 +1,16 @@
1
+ export declare const MCP_APP_ACCESS_SETTINGS_KEY = "dispatch-mcp-app-access";
2
+ export type DispatchMcpAppAccessMode = "all-apps" | "selected-apps";
3
+ export interface DispatchMcpAppAccessSettings {
4
+ mode: DispatchMcpAppAccessMode;
5
+ selectedAppIds: string[];
6
+ updatedAt?: string;
7
+ updatedBy?: string;
8
+ }
9
+ export declare function normalizeMcpAppAccessSettings(raw: unknown): DispatchMcpAppAccessSettings;
10
+ export declare function getDispatchMcpAppAccessSettings(): Promise<DispatchMcpAppAccessSettings>;
11
+ export declare function setDispatchMcpAppAccessSettings(input: {
12
+ mode: DispatchMcpAppAccessMode;
13
+ selectedAppIds?: string[];
14
+ }): Promise<DispatchMcpAppAccessSettings>;
15
+ export declare function isAppAllowedByMcpAccess(appId: string, settings: DispatchMcpAppAccessSettings): boolean;
16
+ //# sourceMappingURL=mcp-access-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-access-store.d.ts","sourceRoot":"","sources":["../../../src/server/lib/mcp-access-store.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,2BAA2B,4BAA4B,CAAC;AAErE,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,eAAe,CAAC;AAEpE,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,wBAAwB,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8BD,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,OAAO,GACX,4BAA4B,CAc9B;AAgCD,wBAAsB,+BAA+B,IAAI,OAAO,CAAC,4BAA4B,CAAC,CAO7F;AAED,wBAAsB,+BAA+B,CAAC,KAAK,EAAE;IAC3D,IAAI,EAAE,wBAAwB,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAgBxC;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,4BAA4B,GACrC,OAAO,CAKT"}