@dxos/assistant-toolkit 0.8.4-main.3fbcb4aa9b → 0.8.4-main.43cb759274

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 (282) hide show
  1. package/LICENSE +102 -5
  2. package/dist/lib/neutral/{add-artifact-ZUJ5DMSY.mjs → add-artifact-ADKF427P.mjs} +6 -6
  3. package/dist/lib/neutral/{add-artifact-ZUJ5DMSY.mjs.map → add-artifact-ADKF427P.mjs.map} +3 -3
  4. package/dist/lib/neutral/{agent-5NIKAYUK.mjs → agent-4HT4GKKI.mjs} +9 -9
  5. package/dist/lib/neutral/{agent-5NIKAYUK.mjs.map → agent-4HT4GKKI.mjs.map} +2 -2
  6. package/dist/lib/neutral/{chunk-TO5IX24K.mjs → chunk-3ZDYN7BG.mjs} +16 -27
  7. package/dist/lib/neutral/chunk-3ZDYN7BG.mjs.map +7 -0
  8. package/dist/lib/neutral/{chunk-EJAQUAKM.mjs → chunk-53BZWMRB.mjs} +12 -8
  9. package/dist/lib/neutral/chunk-53BZWMRB.mjs.map +7 -0
  10. package/dist/lib/neutral/{chunk-WLR3BGO4.mjs → chunk-6SYN5IV3.mjs} +4 -2
  11. package/dist/lib/neutral/chunk-6SYN5IV3.mjs.map +7 -0
  12. package/dist/lib/neutral/{chunk-QO5SU37C.mjs → chunk-7OQIX2PP.mjs} +4 -4
  13. package/dist/lib/neutral/{chunk-QO5SU37C.mjs.map → chunk-7OQIX2PP.mjs.map} +1 -1
  14. package/dist/lib/neutral/{chunk-P4ZMYO4K.mjs → chunk-ALDU6VDG.mjs} +21 -33
  15. package/dist/lib/neutral/chunk-ALDU6VDG.mjs.map +7 -0
  16. package/dist/lib/neutral/{chunk-GV66MKAQ.mjs → chunk-AYV2KMAV.mjs} +7 -5
  17. package/dist/lib/neutral/chunk-AYV2KMAV.mjs.map +7 -0
  18. package/dist/lib/neutral/{chunk-ROMZO4CB.mjs → chunk-BB6X6NT6.mjs} +13 -10
  19. package/dist/lib/neutral/chunk-BB6X6NT6.mjs.map +7 -0
  20. package/dist/lib/neutral/{chunk-XUF53B6B.mjs → chunk-DBUT6FKM.mjs} +16 -14
  21. package/dist/lib/neutral/chunk-DBUT6FKM.mjs.map +7 -0
  22. package/dist/lib/neutral/{chunk-NR3GTWRC.mjs → chunk-GQRUBCMT.mjs} +8 -13
  23. package/dist/lib/neutral/chunk-GQRUBCMT.mjs.map +7 -0
  24. package/dist/lib/neutral/chunk-JRYAD4TG.mjs +67 -0
  25. package/dist/lib/neutral/chunk-JRYAD4TG.mjs.map +7 -0
  26. package/dist/lib/neutral/{chunk-ZFXLTBZG.mjs → chunk-PHZNOLXL.mjs} +5 -3
  27. package/dist/lib/neutral/chunk-PHZNOLXL.mjs.map +7 -0
  28. package/dist/lib/neutral/{chunk-KGU725LW.mjs → chunk-SOLG2NPH.mjs} +4 -7
  29. package/dist/lib/neutral/chunk-SOLG2NPH.mjs.map +7 -0
  30. package/dist/lib/neutral/{chunk-246ACKSH.mjs → chunk-T3RP4AUP.mjs} +24 -20
  31. package/dist/lib/neutral/chunk-T3RP4AUP.mjs.map +7 -0
  32. package/dist/lib/neutral/{chunk-IKBIORQX.mjs → chunk-V3PPVL3C.mjs} +57 -43
  33. package/dist/lib/neutral/chunk-V3PPVL3C.mjs.map +7 -0
  34. package/dist/lib/neutral/{context-add-VB7AOY3G.mjs → context-add-2G2CDRCK.mjs} +4 -4
  35. package/dist/lib/neutral/context-add-2G2CDRCK.mjs.map +7 -0
  36. package/dist/lib/neutral/{context-remove-VCM3VPSO.mjs → context-remove-QQOT57JC.mjs} +4 -4
  37. package/dist/lib/neutral/context-remove-QQOT57JC.mjs.map +7 -0
  38. package/dist/lib/neutral/{create-project-EIF4OJMY.mjs → create-project-LVIH4OLF.mjs} +7 -7
  39. package/dist/lib/neutral/{delete-J3PMWP7Z.mjs → delete-MRER3QMO.mjs} +3 -3
  40. package/dist/lib/neutral/{enable-blueprints-LBDZH2CY.mjs → enable-blueprints-GEIKTSRV.mjs} +12 -12
  41. package/dist/lib/neutral/enable-blueprints-GEIKTSRV.mjs.map +7 -0
  42. package/dist/lib/neutral/{fetch-KHMHV7JR.mjs → fetch-B2AYJK7F.mjs} +2 -2
  43. package/dist/lib/neutral/{fetch-messages-QOBBCTGC.mjs → fetch-messages-RUUU63L2.mjs} +2 -2
  44. package/dist/lib/neutral/{get-context-TN7X7U2H.mjs → get-context-3SXNFRXG.mjs} +10 -10
  45. package/dist/lib/neutral/{get-context-TN7X7U2H.mjs.map → get-context-3SXNFRXG.mjs.map} +3 -3
  46. package/dist/lib/neutral/index.mjs +94 -97
  47. package/dist/lib/neutral/index.mjs.map +3 -3
  48. package/dist/lib/neutral/{load-ALP3TK2E.mjs → load-YWYQ4THR.mjs} +2 -2
  49. package/dist/lib/neutral/meta.json +1 -1
  50. package/dist/lib/neutral/{object-create-Z57Y3X6Y.mjs → object-create-WME2XFGD.mjs} +9 -12
  51. package/dist/lib/neutral/object-create-WME2XFGD.mjs.map +7 -0
  52. package/dist/lib/neutral/{object-delete-X53LS37B.mjs → object-delete-I5OAPI32.mjs} +2 -2
  53. package/dist/lib/neutral/{object-update-GVKSBR7T.mjs → object-update-VCOL62NX.mjs} +3 -3
  54. package/dist/lib/neutral/{object-update-GVKSBR7T.mjs.map → object-update-VCOL62NX.mjs.map} +2 -2
  55. package/dist/lib/neutral/{project-HPHTZ2CI.mjs → project-4BYI2PZC.mjs} +6 -6
  56. package/dist/lib/neutral/{project-rules-IVDHKSKI.mjs → project-rules-7NYDDQ7K.mjs} +5 -5
  57. package/dist/lib/neutral/{prompt-Y7NN7M5D.mjs → prompt-DZP2K2NE.mjs} +6 -6
  58. package/dist/lib/neutral/prompt-DZP2K2NE.mjs.map +7 -0
  59. package/dist/lib/neutral/{qualifier-VDOY5CWU.mjs → qualifier-NLOWVZCM.mjs} +15 -14
  60. package/dist/lib/neutral/qualifier-NLOWVZCM.mjs.map +7 -0
  61. package/dist/lib/neutral/{query-PPJU5622.mjs → query-GZDTQRQ6.mjs} +12 -23
  62. package/dist/lib/neutral/query-GZDTQRQ6.mjs.map +7 -0
  63. package/dist/lib/neutral/{query-U56GNEV6.mjs → query-KBKGBYUO.mjs} +3 -3
  64. package/dist/lib/neutral/{query-blueprints-KXADGHSA.mjs → query-blueprints-MFXXRZBY.mjs} +5 -4
  65. package/dist/lib/neutral/query-blueprints-MFXXRZBY.mjs.map +7 -0
  66. package/dist/lib/neutral/{relation-create-XJ2IX6X3.mjs → relation-create-UHBWQQXS.mjs} +8 -11
  67. package/dist/lib/neutral/relation-create-UHBWQQXS.mjs.map +7 -0
  68. package/dist/lib/neutral/{relation-delete-EP4KXAFL.mjs → relation-delete-ZSB7JOHO.mjs} +2 -2
  69. package/dist/lib/neutral/{save-GWAPLT3Z.mjs → save-B2CSSFDG.mjs} +3 -3
  70. package/dist/lib/neutral/{schema-add-Z5CY6P24.mjs → schema-add-ZJ64RAZK.mjs} +13 -12
  71. package/dist/lib/neutral/schema-add-ZJ64RAZK.mjs.map +7 -0
  72. package/dist/lib/neutral/schema-list-3X3VNYYB.mjs +37 -0
  73. package/dist/lib/neutral/schema-list-3X3VNYYB.mjs.map +7 -0
  74. package/dist/lib/neutral/{sync-issues-4YE5XAK5.mjs → sync-issues-36TS2R7R.mjs} +5 -6
  75. package/dist/lib/neutral/sync-issues-36TS2R7R.mjs.map +7 -0
  76. package/dist/lib/neutral/{sync-triggers-CDMJVW6E.mjs → sync-triggers-MMHKQDNW.mjs} +39 -37
  77. package/dist/lib/neutral/sync-triggers-MMHKQDNW.mjs.map +7 -0
  78. package/dist/lib/neutral/{tag-add-VNIIOVJA.mjs → tag-add-7P5O3IAV.mjs} +4 -5
  79. package/dist/lib/neutral/tag-add-7P5O3IAV.mjs.map +7 -0
  80. package/dist/lib/neutral/{tag-remove-6R2R27W3.mjs → tag-remove-YZIMOFA4.mjs} +4 -5
  81. package/dist/lib/neutral/tag-remove-YZIMOFA4.mjs.map +7 -0
  82. package/dist/lib/neutral/testing/index.mjs +9 -12
  83. package/dist/lib/neutral/testing/index.mjs.map +3 -3
  84. package/dist/lib/neutral/update-tasks-6MJCJ2KC.mjs +13 -0
  85. package/dist/lib/neutral/update-tasks-6MJCJ2KC.mjs.map +7 -0
  86. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts +12 -15
  87. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts.map +1 -1
  88. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts +7 -8
  89. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts.map +1 -1
  90. package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts.map +1 -1
  91. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts +6 -6
  92. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts.map +1 -1
  93. package/dist/types/src/blueprints/database/functions/context-add.d.ts +3 -3
  94. package/dist/types/src/blueprints/database/functions/context-add.d.ts.map +1 -1
  95. package/dist/types/src/blueprints/database/functions/context-remove.d.ts +3 -3
  96. package/dist/types/src/blueprints/database/functions/context-remove.d.ts.map +1 -1
  97. package/dist/types/src/blueprints/database/functions/definitions.d.ts +23 -17
  98. package/dist/types/src/blueprints/database/functions/definitions.d.ts.map +1 -1
  99. package/dist/types/src/blueprints/database/functions/load.d.ts +2 -2
  100. package/dist/types/src/blueprints/database/functions/load.d.ts.map +1 -1
  101. package/dist/types/src/blueprints/database/functions/object-create.d.ts.map +1 -1
  102. package/dist/types/src/blueprints/database/functions/object-delete.d.ts +1 -1
  103. package/dist/types/src/blueprints/database/functions/object-update.d.ts +2 -2
  104. package/dist/types/src/blueprints/database/functions/object-update.d.ts.map +1 -1
  105. package/dist/types/src/blueprints/database/functions/query.d.ts +2 -3
  106. package/dist/types/src/blueprints/database/functions/query.d.ts.map +1 -1
  107. package/dist/types/src/blueprints/database/functions/relation-create.d.ts +3 -3
  108. package/dist/types/src/blueprints/database/functions/relation-create.d.ts.map +1 -1
  109. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts +1 -1
  110. package/dist/types/src/blueprints/database/functions/schema-add.d.ts.map +1 -1
  111. package/dist/types/src/blueprints/database/functions/schema-list.d.ts.map +1 -1
  112. package/dist/types/src/blueprints/database/functions/tag-add.d.ts +6 -3
  113. package/dist/types/src/blueprints/database/functions/tag-add.d.ts.map +1 -1
  114. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts +6 -3
  115. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts.map +1 -1
  116. package/dist/types/src/blueprints/discord/functions/definitions.d.ts.map +1 -1
  117. package/dist/types/src/blueprints/github/functions/definitions.d.ts.map +1 -1
  118. package/dist/types/src/blueprints/linear/functions/definitions.d.ts.map +1 -1
  119. package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts.map +1 -1
  120. package/dist/types/src/blueprints/memory/functions/definitions.d.ts +2 -2
  121. package/dist/types/src/blueprints/memory/functions/definitions.d.ts.map +1 -1
  122. package/dist/types/src/blueprints/memory/functions/delete.d.ts +2 -2
  123. package/dist/types/src/blueprints/planning/functions/index.d.ts +1 -1
  124. package/dist/types/src/blueprints/planning/functions/index.d.ts.map +1 -1
  125. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts +14 -1
  126. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts.map +1 -1
  127. package/dist/types/src/blueprints/planning/functions/update-tasks.test.d.ts +2 -0
  128. package/dist/types/src/blueprints/planning/functions/update-tasks.test.d.ts.map +1 -0
  129. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts +1 -5
  130. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts.map +1 -1
  131. package/dist/types/src/blueprints/project/functions/definitions.d.ts +60 -45
  132. package/dist/types/src/blueprints/project/functions/definitions.d.ts.map +1 -1
  133. package/dist/types/src/blueprints/project/functions/get-context.d.ts +1 -12
  134. package/dist/types/src/blueprints/project/functions/get-context.d.ts.map +1 -1
  135. package/dist/types/src/blueprints/project/functions/qualifier.d.ts +3 -71
  136. package/dist/types/src/blueprints/project/functions/qualifier.d.ts.map +1 -1
  137. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts +23 -19
  138. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts.map +1 -1
  139. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts +45 -38
  140. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts.map +1 -1
  141. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts +21 -17
  142. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts.map +1 -1
  143. package/dist/types/src/blueprints/testing.d.ts +4 -4
  144. package/dist/types/src/blueprints/testing.d.ts.map +1 -1
  145. package/dist/types/src/blueprints/websearch/functions/definitions.d.ts.map +1 -1
  146. package/dist/types/src/crud/graph.d.ts +8 -11
  147. package/dist/types/src/crud/graph.d.ts.map +1 -1
  148. package/dist/types/src/errors.d.ts +3 -3
  149. package/dist/types/src/errors.d.ts.map +1 -1
  150. package/dist/types/src/functions/agent/definitions.d.ts +14 -23
  151. package/dist/types/src/functions/agent/definitions.d.ts.map +1 -1
  152. package/dist/types/src/sync/sync.d.ts +1 -2
  153. package/dist/types/src/sync/sync.d.ts.map +1 -1
  154. package/dist/types/src/testing/plugins.d.ts +1 -1
  155. package/dist/types/src/testing/plugins.d.ts.map +1 -1
  156. package/dist/types/src/types/Agent.d.ts +25 -24
  157. package/dist/types/src/types/Agent.d.ts.map +1 -1
  158. package/dist/types/src/types/Chat.d.ts +17 -20
  159. package/dist/types/src/types/Chat.d.ts.map +1 -1
  160. package/dist/types/src/types/McpServer.d.ts +1 -2
  161. package/dist/types/src/types/McpServer.d.ts.map +1 -1
  162. package/dist/types/src/types/Memory.d.ts +1 -2
  163. package/dist/types/src/types/Memory.d.ts.map +1 -1
  164. package/dist/types/src/types/Plan.d.ts +15 -17
  165. package/dist/types/src/types/Plan.d.ts.map +1 -1
  166. package/dist/types/tsconfig.tsbuildinfo +1 -1
  167. package/package.json +30 -31
  168. package/src/blueprints/automation/blueprint.ts +3 -3
  169. package/src/blueprints/blueprint-manager/blueprint.conversations.json +1 -1
  170. package/src/blueprints/blueprint-manager/blueprint.test.ts +24 -67
  171. package/src/blueprints/blueprint-manager/blueprint.ts +5 -5
  172. package/src/blueprints/blueprint-manager/functions/definitions.ts +11 -20
  173. package/src/blueprints/blueprint-manager/functions/enable-blueprints.ts +10 -7
  174. package/src/blueprints/blueprint-manager/functions/index.ts +0 -1
  175. package/src/blueprints/blueprint-manager/functions/query-blueprints.ts +3 -2
  176. package/src/blueprints/browser/blueprint.conversations.json +1 -0
  177. package/src/blueprints/browser/blueprint.test.ts +4 -3
  178. package/src/blueprints/database/blueprint.conversations.json +1 -1
  179. package/src/blueprints/database/blueprint.test.ts +25 -25
  180. package/src/blueprints/database/functions/context-add.ts +2 -2
  181. package/src/blueprints/database/functions/context-remove.ts +2 -2
  182. package/src/blueprints/database/functions/definitions.ts +54 -40
  183. package/src/blueprints/database/functions/object-create.ts +8 -5
  184. package/src/blueprints/database/functions/object-update.ts +1 -1
  185. package/src/blueprints/database/functions/query.ts +16 -11
  186. package/src/blueprints/database/functions/relation-create.ts +7 -4
  187. package/src/blueprints/database/functions/schema-add.ts +7 -12
  188. package/src/blueprints/database/functions/schema-list.ts +12 -7
  189. package/src/blueprints/database/functions/tag-add.ts +2 -3
  190. package/src/blueprints/database/functions/tag-remove.ts +2 -3
  191. package/src/blueprints/discord/functions/definitions.ts +3 -1
  192. package/src/blueprints/discord/functions/fetch-messages.test.ts +7 -2
  193. package/src/blueprints/github/functions/definitions.ts +3 -1
  194. package/src/blueprints/linear/functions/definitions.ts +3 -1
  195. package/src/blueprints/linear/functions/linear.test.ts +1 -2
  196. package/src/blueprints/linear/functions/sync-issues.ts +1 -2
  197. package/src/blueprints/memory/blueprint.conversations.json +1 -1
  198. package/src/blueprints/memory/blueprint.test.ts +2 -2
  199. package/src/blueprints/memory/functions/definitions.ts +7 -3
  200. package/src/blueprints/planning/blueprint.ts +1 -1
  201. package/src/blueprints/planning/functions/index.ts +1 -1
  202. package/src/blueprints/planning/functions/{definitions.ts → update-tasks.md} +29 -50
  203. package/src/blueprints/planning/functions/update-tasks.test.ts +55 -0
  204. package/src/blueprints/planning/functions/update-tasks.ts +27 -3
  205. package/src/blueprints/project/blueprint.conversations.json +1 -1
  206. package/src/blueprints/project/blueprint.test.ts +14 -16
  207. package/src/blueprints/project/blueprint.ts +1 -1
  208. package/src/blueprints/project/functions/add-artifact.ts +1 -0
  209. package/src/blueprints/project/functions/agent.ts +4 -4
  210. package/src/blueprints/project/functions/definitions.ts +17 -14
  211. package/src/blueprints/project/functions/get-context.ts +5 -4
  212. package/src/blueprints/project/functions/qualifier.ts +8 -7
  213. package/src/blueprints/project-wizard/blueprint.ts +1 -1
  214. package/src/blueprints/project-wizard/functions/definitions.ts +11 -8
  215. package/src/blueprints/project-wizard/functions/sync-triggers.ts +33 -35
  216. package/src/blueprints/testing.ts +10 -4
  217. package/src/blueprints/websearch/blueprint.conversations.json +1 -1
  218. package/src/blueprints/websearch/functions/definitions.ts +3 -1
  219. package/src/crud/graph.test.ts +1 -1
  220. package/src/crud/graph.ts +143 -153
  221. package/src/errors.ts +3 -3
  222. package/src/functions/agent/definitions.ts +5 -3
  223. package/src/functions/agent/prompt.conversations.json +1 -1
  224. package/src/functions/agent/prompt.test.ts +10 -13
  225. package/src/functions/agent/prompt.ts +3 -3
  226. package/src/sync/sync.ts +7 -6
  227. package/src/testing/plugins.tsx +10 -15
  228. package/src/types/Agent.ts +27 -35
  229. package/src/types/Chat.ts +10 -20
  230. package/src/types/McpServer.ts +4 -10
  231. package/src/types/Memory.ts +4 -7
  232. package/src/types/Plan.ts +4 -11
  233. package/dist/lib/neutral/chunk-246ACKSH.mjs.map +0 -7
  234. package/dist/lib/neutral/chunk-EJAQUAKM.mjs.map +0 -7
  235. package/dist/lib/neutral/chunk-FIGO6CA6.mjs +0 -140
  236. package/dist/lib/neutral/chunk-FIGO6CA6.mjs.map +0 -7
  237. package/dist/lib/neutral/chunk-GV66MKAQ.mjs.map +0 -7
  238. package/dist/lib/neutral/chunk-IKBIORQX.mjs.map +0 -7
  239. package/dist/lib/neutral/chunk-KGU725LW.mjs.map +0 -7
  240. package/dist/lib/neutral/chunk-NR3GTWRC.mjs.map +0 -7
  241. package/dist/lib/neutral/chunk-P4ZMYO4K.mjs.map +0 -7
  242. package/dist/lib/neutral/chunk-ROMZO4CB.mjs.map +0 -7
  243. package/dist/lib/neutral/chunk-TO5IX24K.mjs.map +0 -7
  244. package/dist/lib/neutral/chunk-WLR3BGO4.mjs.map +0 -7
  245. package/dist/lib/neutral/chunk-XUF53B6B.mjs.map +0 -7
  246. package/dist/lib/neutral/chunk-ZFXLTBZG.mjs.map +0 -7
  247. package/dist/lib/neutral/context-add-VB7AOY3G.mjs.map +0 -7
  248. package/dist/lib/neutral/context-remove-VCM3VPSO.mjs.map +0 -7
  249. package/dist/lib/neutral/enable-blueprints-LBDZH2CY.mjs.map +0 -7
  250. package/dist/lib/neutral/object-create-Z57Y3X6Y.mjs.map +0 -7
  251. package/dist/lib/neutral/prompt-Y7NN7M5D.mjs.map +0 -7
  252. package/dist/lib/neutral/qualifier-VDOY5CWU.mjs.map +0 -7
  253. package/dist/lib/neutral/query-PPJU5622.mjs.map +0 -7
  254. package/dist/lib/neutral/query-blueprints-KXADGHSA.mjs.map +0 -7
  255. package/dist/lib/neutral/relation-create-XJ2IX6X3.mjs.map +0 -7
  256. package/dist/lib/neutral/schema-add-Z5CY6P24.mjs.map +0 -7
  257. package/dist/lib/neutral/schema-list-W326VPVX.mjs +0 -38
  258. package/dist/lib/neutral/schema-list-W326VPVX.mjs.map +0 -7
  259. package/dist/lib/neutral/sync-issues-4YE5XAK5.mjs.map +0 -7
  260. package/dist/lib/neutral/sync-triggers-CDMJVW6E.mjs.map +0 -7
  261. package/dist/lib/neutral/tag-add-VNIIOVJA.mjs.map +0 -7
  262. package/dist/lib/neutral/tag-remove-6R2R27W3.mjs.map +0 -7
  263. package/dist/lib/neutral/update-blueprints-N2AK2VUR.mjs +0 -16
  264. package/dist/lib/neutral/update-blueprints-N2AK2VUR.mjs.map +0 -7
  265. package/dist/lib/neutral/update-tasks-H7SWIFQL.mjs +0 -46
  266. package/dist/lib/neutral/update-tasks-H7SWIFQL.mjs.map +0 -7
  267. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts +0 -4
  268. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts.map +0 -1
  269. package/dist/types/src/blueprints/planning/functions/definitions.d.ts +0 -11
  270. package/dist/types/src/blueprints/planning/functions/definitions.d.ts.map +0 -1
  271. package/src/blueprints/blueprint-manager/functions/update-blueprints.ts +0 -18
  272. /package/dist/lib/neutral/{create-project-EIF4OJMY.mjs.map → create-project-LVIH4OLF.mjs.map} +0 -0
  273. /package/dist/lib/neutral/{delete-J3PMWP7Z.mjs.map → delete-MRER3QMO.mjs.map} +0 -0
  274. /package/dist/lib/neutral/{fetch-KHMHV7JR.mjs.map → fetch-B2AYJK7F.mjs.map} +0 -0
  275. /package/dist/lib/neutral/{fetch-messages-QOBBCTGC.mjs.map → fetch-messages-RUUU63L2.mjs.map} +0 -0
  276. /package/dist/lib/neutral/{load-ALP3TK2E.mjs.map → load-YWYQ4THR.mjs.map} +0 -0
  277. /package/dist/lib/neutral/{object-delete-X53LS37B.mjs.map → object-delete-I5OAPI32.mjs.map} +0 -0
  278. /package/dist/lib/neutral/{project-HPHTZ2CI.mjs.map → project-4BYI2PZC.mjs.map} +0 -0
  279. /package/dist/lib/neutral/{project-rules-IVDHKSKI.mjs.map → project-rules-7NYDDQ7K.mjs.map} +0 -0
  280. /package/dist/lib/neutral/{query-U56GNEV6.mjs.map → query-KBKGBYUO.mjs.map} +0 -0
  281. /package/dist/lib/neutral/{relation-delete-EP4KXAFL.mjs.map → relation-delete-ZSB7JOHO.mjs.map} +0 -0
  282. /package/dist/lib/neutral/{save-GWAPLT3Z.mjs.map → save-B2CSSFDG.mjs.map} +0 -0
@@ -10,15 +10,13 @@ import { MemoizedAiService } from '@dxos/ai/testing';
10
10
  import { AiSession } from '@dxos/assistant';
11
11
  import { SpaceProperties } from '@dxos/client-protocol';
12
12
  import { Blueprint, Trigger, Operation, OperationHandlerSet } from '@dxos/compute';
13
- import { Database, Feed, Filter, Obj, Query, Ref } from '@dxos/echo';
14
- import { Collection } from '@dxos/echo';
13
+ import { Collection, Database, Feed, Filter, Obj, Query, Ref } from '@dxos/echo';
15
14
  import { acquireReleaseResource } from '@dxos/effect';
16
15
  import { TestHelpers } from '@dxos/effect/testing';
17
- import { QueueService } from '@dxos/functions';
18
16
  import { TriggerDispatcher } from '@dxos/functions-runtime';
19
17
  import { AssistantTestLayerWithTriggers } from '@dxos/functions-runtime/testing';
20
18
  import { invariant } from '@dxos/invariant';
21
- import { ObjectId } from '@dxos/keys';
19
+ import { EntityId } from '@dxos/keys';
22
20
  import { MarkdownBlueprint } from '@dxos/plugin-markdown';
23
21
  import { Markdown } from '@dxos/plugin-markdown';
24
22
  import { MarkdownOperationHandlerSet } from '@dxos/plugin-markdown/plugin';
@@ -33,7 +31,7 @@ import { AgentWizardHandlers, SyncTriggers } from '../project-wizard';
33
31
  import AgentBlueprintDef from './blueprint';
34
32
  import { AgentWorker, AgentBlueprintHandlers } from './functions';
35
33
 
36
- ObjectId.dangerouslyDisableRandomness();
34
+ EntityId.dangerouslyDisableRandomness();
37
35
 
38
36
  const TestLayer = AssistantTestLayerWithTriggers({
39
37
  aiServicePreset: 'edge-remote',
@@ -95,14 +93,14 @@ describe('Agent', () => {
95
93
  const chatFeed = agent.chat?.target?.feed?.target;
96
94
  invariant(chatFeed, 'Agent chat feed not found.');
97
95
  const runtime = yield* Effect.runtime<Feed.FeedService>();
98
- const session = yield* acquireReleaseResource(() => new AiSession({ feed: chatFeed, runtime }));
96
+ const session = yield* acquireReleaseResource(() => new AiSession.Session({ feed: chatFeed, runtime }));
99
97
  yield* Effect.promise(() => session.context.open());
100
98
 
101
- const documentDxn = Obj.getDXN(document);
99
+ const documentUri = Obj.getURI(document);
102
100
  yield* session
103
101
  .createRequest({
104
102
  system: SYSTEM,
105
- prompt: `Please add the document ${documentDxn} as an artifact named "My Test Document" to this agent.`,
103
+ prompt: `Please add the document ${documentUri} as an artifact named "My Test Document" to this agent.`,
106
104
  })
107
105
  .pipe(Effect.provide(session.makeToolExecutionServices()));
108
106
 
@@ -133,7 +131,7 @@ describe('Agent', () => {
133
131
  invariant(chatFeed, 'Agent chat feed not found.');
134
132
  yield* Database.flush();
135
133
  const runtime = yield* Effect.runtime<Feed.FeedService>();
136
- const session = yield* acquireReleaseResource(() => new AiSession({ feed: chatFeed, runtime }));
134
+ const session = yield* acquireReleaseResource(() => new AiSession.Session({ feed: chatFeed, runtime }));
137
135
  yield* Effect.promise(() => session.context.open());
138
136
 
139
137
  yield* session
@@ -174,11 +172,11 @@ describe('Agent', () => {
174
172
  );
175
173
  yield* Database.flush();
176
174
 
177
- const inboxQueue = yield* QueueService.createQueue();
175
+ const inboxFeed = yield* Database.add(Feed.make());
178
176
  yield* Database.add(
179
177
  Trigger.make({
180
178
  enabled: true,
181
- spec: Trigger.specQueue(inboxQueue.dxn.toString()),
179
+ spec: Trigger.specFeed(inboxFeed),
182
180
  function: Ref.make(Operation.serialize(AgentWorker)),
183
181
  input: {
184
182
  agent: Ref.make(agent),
@@ -187,13 +185,13 @@ describe('Agent', () => {
187
185
  }),
188
186
  );
189
187
 
190
- yield* QueueService.append(
191
- inboxQueue,
188
+ yield* Feed.append(
189
+ inboxFeed,
192
190
  TEST_MESSAGES.map((message) => Obj.clone(message)),
193
191
  );
194
192
 
195
193
  const dispatcher = yield* TriggerDispatcher;
196
- const invocations = yield* dispatcher.invokeScheduledTriggers({ kinds: ['queue'], untilExhausted: true });
194
+ const invocations = yield* dispatcher.invokeScheduledTriggers({ kinds: ['feed'], untilExhausted: true });
197
195
  expect(invocations.every((invocation) => Exit.isSuccess(invocation.result))).toBe(true);
198
196
 
199
197
  console.log(yield* Effect.promise(() => dumpAgent(agent)));
@@ -240,7 +238,7 @@ describe('Agent', () => {
240
238
  invariant(timerTrigger.function);
241
239
  const operation = yield* Database.load(timerTrigger.function);
242
240
  invariant(Obj.instanceOf(Operation.PersistentOperation, operation));
243
- expect(operation.key).toBe(AgentWorker.meta.key);
241
+ expect(Obj.getMeta(operation).key).toBe(AgentWorker.meta.key);
244
242
  },
245
243
  Effect.provide(TestLayer),
246
244
  TestHelpers.provideTestContext,
@@ -286,7 +284,7 @@ describe('Agent', () => {
286
284
  invariant(chatFeed, 'Agent chat feed not found.');
287
285
  yield* Database.flush();
288
286
  const runtime = yield* Effect.runtime<Feed.FeedService>();
289
- const session = yield* acquireReleaseResource(() => new AiSession({ feed: chatFeed, runtime }));
287
+ const session = yield* acquireReleaseResource(() => new AiSession.Session({ feed: chatFeed, runtime }));
290
288
  yield* Effect.promise(() => session.context.open());
291
289
 
292
290
  yield* session
@@ -49,7 +49,7 @@ const make = () =>
49
49
  {
50
50
  name: 'agent',
51
51
  kind: 'operation',
52
- operation: 'org.dxos.function.agent.get-context',
52
+ operation: 'org.dxos.function.agent.getContext',
53
53
  },
54
54
  ],
55
55
  }),
@@ -27,4 +27,5 @@ export default AddArtifact.pipe(
27
27
  });
28
28
  }) as any,
29
29
  ),
30
+ Operation.opaqueHandler,
30
31
  );
@@ -20,7 +20,7 @@ export default AgentWorker.pipe(
20
20
  Operation.withHandler(
21
21
  Effect.fnUntraced(function* ({ agent: agentRef, prompt, event }) {
22
22
  const agent = yield* Database.load(agentRef).pipe(
23
- Effect.catchTag('ObjectNotFoundError', () => Effect.die(new Error('Unable to load agent object.'))),
23
+ Effect.catchTag('EntityNotFoundError', () => Effect.die(new Error('Unable to load agent object.'))),
24
24
  );
25
25
  invariant(Obj.instanceOf(Agent.Agent, agent));
26
26
  invariant(agent.chat, 'Agent has no chat.');
@@ -28,11 +28,11 @@ export default AgentWorker.pipe(
28
28
  const chatFeed = yield* agent.chat.pipe(
29
29
  Database.load,
30
30
  Effect.flatMap((chat) => Database.load(chat.feed)),
31
- Effect.catchTag('ObjectNotFoundError', () => Effect.die(new Error('Unable to load agent chat feed object.'))),
31
+ Effect.catchTag('EntityNotFoundError', () => Effect.die(new Error('Unable to load agent chat feed object.'))),
32
32
  );
33
33
  invariant(chatFeed, 'Agent chat feed not found.');
34
34
  const runtime = yield* Effect.runtime<Feed.FeedService>();
35
- const session = yield* acquireReleaseResource(() => new AiSession({ feed: chatFeed, runtime }));
35
+ const session = yield* acquireReleaseResource(() => new AiSession.Session({ feed: chatFeed, runtime }));
36
36
 
37
37
  const agentsInContext = session.context.getObjects().filter(Obj.instanceOf(Agent.Agent));
38
38
  if (agentsInContext.length !== 1) {
@@ -58,7 +58,7 @@ export default AgentWorker.pipe(
58
58
  .pipe(
59
59
  Effect.provide(
60
60
  Layer.mergeAll(AiService.model('@anthropic/claude-opus-4-6'), ToolExecutionServices).pipe(
61
- Layer.provideMerge(Operation.withInvocationOptions({ conversation: Obj.getDXN(chatFeed).toString() })),
61
+ Layer.provideMerge(Operation.withInvocationOptions({ conversation: Obj.getURI(chatFeed) })),
62
62
  ),
63
63
  ),
64
64
  Effect.retry({ times: 2 }),
@@ -5,18 +5,19 @@
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
7
  import { AiService, OpaqueToolkit } from '@dxos/ai';
8
- import { AiContextService } from '@dxos/assistant';
8
+ import { AiContext } from '@dxos/assistant';
9
9
  import { Trace, TriggerEvent, Operation, OperationRegistry } from '@dxos/compute';
10
10
  import { Database, Feed, Obj, Ref } from '@dxos/echo';
11
- import { QueueService } from '@dxos/functions';
11
+ import { DXN } from '@dxos/keys';
12
12
 
13
13
  import { Agent } from '../../../types';
14
14
 
15
15
  export const AgentWorker = Operation.make({
16
16
  meta: {
17
- key: 'org.dxos.function.agent.worker',
17
+ key: DXN.make('org.dxos.function.agent.worker'),
18
18
  name: 'Agent Worker',
19
19
  description: 'Agentic worker that drives the agent autonomously.',
20
+ icon: 'ph--brain--regular',
20
21
  },
21
22
  input: Schema.Struct({
22
23
  agent: Schema.suspend(() => Ref.Ref(Agent.Agent)),
@@ -27,34 +28,35 @@ export const AgentWorker = Operation.make({
27
28
  services: [
28
29
  AiService.AiService,
29
30
  Database.Service,
30
- QueueService,
31
31
  Feed.FeedService,
32
32
  OperationRegistry.Service,
33
33
  Trace.TraceService,
34
34
  OpaqueToolkit.OpaqueToolkitProvider,
35
35
  ],
36
- }).pipe(Operation.intrinsic);
36
+ });
37
37
 
38
38
  export const Qualifier = Operation.make({
39
39
  meta: {
40
- key: 'org.dxos.function.agent.qualifier',
40
+ key: DXN.make('org.dxos.function.agent.qualifier'),
41
41
  name: 'Agent Qualifier',
42
42
  description:
43
43
  'Qualifier that determines if the event is relevant to the agent. Puts the data into the input queue of the agent.',
44
+ icon: 'ph--funnel--regular',
44
45
  },
45
46
  input: Schema.Struct({
46
47
  agent: Schema.suspend(() => Ref.Ref(Agent.Agent)),
47
48
  event: TriggerEvent.TriggerEvent,
48
49
  }),
49
50
  output: Schema.Void,
50
- services: [AiService.AiService, Database.Service],
51
- }).pipe(Operation.intrinsic);
51
+ services: [AiService.AiService, Database.Service, Feed.FeedService],
52
+ });
52
53
 
53
54
  export const GetContext = Operation.make({
54
55
  meta: {
55
- key: 'org.dxos.function.agent.get-context',
56
+ key: DXN.make('org.dxos.function.agent.getContext'),
56
57
  name: 'Get Agent Context',
57
58
  description: 'Get the context of an agent.',
59
+ icon: 'ph--info--regular',
58
60
  },
59
61
  input: Schema.Struct({}),
60
62
  output: Schema.Struct({
@@ -70,14 +72,15 @@ export const GetContext = Operation.make({
70
72
  }),
71
73
  ),
72
74
  }),
73
- services: [AiContextService, Database.Service],
74
- }).pipe(Operation.intrinsic);
75
+ services: [AiContext.Service, Database.Service],
76
+ });
75
77
 
76
78
  export const AddArtifact = Operation.make({
77
79
  meta: {
78
- key: 'org.dxos.function.agent.add-artifact',
80
+ key: DXN.make('org.dxos.function.agent.addArtifact'),
79
81
  name: 'Add artifact',
80
82
  description: 'Adds a new artifact.',
83
+ icon: 'ph--plus--regular',
81
84
  },
82
85
  input: Schema.Struct({
83
86
  name: Schema.String.annotations({
@@ -88,5 +91,5 @@ export const AddArtifact = Operation.make({
88
91
  }),
89
92
  }),
90
93
  output: Schema.Void,
91
- services: [AiContextService, Database.Service],
92
- }).pipe(Operation.intrinsic);
94
+ services: [AiContext.Service, Database.Service],
95
+ });
@@ -20,12 +20,12 @@ export default GetContext.pipe(
20
20
  name: agent.name,
21
21
  instructions: yield* agent.instructions.pipe(Database.load).pipe(
22
22
  Effect.map((_) => _.content),
23
- Effect.catchTag('ObjectNotFoundError', () => Effect.succeed('No instructions found.')),
23
+ Effect.catchTag('EntityNotFoundError', () => Effect.succeed('No instructions found.')),
24
24
  ),
25
25
  plan: yield* (
26
26
  agent.plan?.pipe(Database.load).pipe(
27
27
  Effect.map(Plan.formatPlan),
28
- Effect.catchTag('ObjectNotFoundError', () => Effect.succeed('No plan found.')),
28
+ Effect.catchTag('EntityNotFoundError', () => Effect.succeed('No plan found.')),
29
29
  ) ?? Effect.succeed('No plan found.')
30
30
  ),
31
31
  artifacts: yield* Effect.forEach(agent.artifacts, (artifact) =>
@@ -34,13 +34,14 @@ export default GetContext.pipe(
34
34
  name: artifact.name,
35
35
  type: yield* Database.load(artifact.data).pipe(
36
36
  Effect.map(Obj.getTypename),
37
- Effect.catchTag('ObjectNotFoundError', () => Effect.succeed('Artifact not found.')),
37
+ Effect.catchTag('EntityNotFoundError', () => Effect.succeed('Artifact not found.')),
38
38
  ),
39
- dxn: artifact.data.dxn.toString(),
39
+ dxn: artifact.data.uri,
40
40
  };
41
41
  }),
42
42
  ),
43
43
  };
44
44
  }) as any,
45
45
  ),
46
+ Operation.opaqueHandler,
46
47
  );
@@ -9,14 +9,14 @@ import * as Schema from 'effect/Schema';
9
9
 
10
10
  import { AiService } from '@dxos/ai';
11
11
  import { Operation } from '@dxos/compute';
12
- import { Database, Obj, Ref } from '@dxos/echo';
12
+ import { Database, Feed, Obj, Ref } from '@dxos/echo';
13
13
  import { invariant } from '@dxos/invariant';
14
14
  import { trim } from '@dxos/util';
15
15
 
16
16
  import { Plan, Agent } from '../../../types';
17
17
  import { Qualifier } from './definitions';
18
18
 
19
- export default Qualifier.pipe(
19
+ const handler: Operation.WithHandler<typeof Qualifier> = Qualifier.pipe(
20
20
  Operation.withHandler(
21
21
  Effect.fnUntraced(
22
22
  function* ({ agent: agentRef, event }) {
@@ -24,7 +24,7 @@ export default Qualifier.pipe(
24
24
  invariant(Obj.instanceOf(Agent.Agent, agent));
25
25
  invariant(agent.chat, 'Agent has no chat.');
26
26
 
27
- const { id, name, queue } = agent;
27
+ const { id, name, feed: queue } = agent;
28
28
  if (!queue) {
29
29
  throw new Error('Agent has no queue.');
30
30
  }
@@ -72,13 +72,13 @@ export default Qualifier.pipe(
72
72
  const { isRelevant } = value as { isRelevant: boolean };
73
73
 
74
74
  if (isRelevant) {
75
- const queueTarget = yield* Database.load(queue);
76
- if ('queue' in event && event.item) {
75
+ const feedTarget = yield* Database.load(queue);
76
+ if ('feed' in event && event.item) {
77
77
  const obj = event.item;
78
- yield* Effect.promise(() => queueTarget.append([obj]));
78
+ yield* Feed.append(feedTarget, [obj]);
79
79
  } else if ('subject' in event && Ref.isRef(event.subject)) {
80
80
  const obj = yield* Database.load(event.subject);
81
- yield* Effect.promise(() => queueTarget.append([obj]));
81
+ yield* Feed.append(feedTarget, [obj]);
82
82
  } else {
83
83
  throw new Error('Invalid event.');
84
84
  }
@@ -88,3 +88,4 @@ export default Qualifier.pipe(
88
88
  ),
89
89
  ),
90
90
  );
91
+ export default handler;
@@ -7,7 +7,7 @@ import { trim } from '@dxos/util';
7
7
 
8
8
  import { AgentRules, CreateAgent, SyncTriggers } from './functions';
9
9
 
10
- const BLUEPRINT_KEY = 'org.dxos.blueprint.agent-wizard';
10
+ const BLUEPRINT_KEY = 'org.dxos.blueprint.agentWizard';
11
11
 
12
12
  /**
13
13
  * Creates the Agent Wizard blueprint. This is a function to avoid circular dependency issues.
@@ -4,17 +4,18 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
- import { Blueprint, Operation } from '@dxos/compute';
8
- import { Database, Feed, Obj, Ref } from '@dxos/echo';
9
- import { QueueService } from '@dxos/functions';
7
+ import { Operation } from '@dxos/compute';
8
+ import { Database, Feed, Obj, Ref, Registry, Type } from '@dxos/echo';
9
+ import { DXN } from '@dxos/keys';
10
10
 
11
11
  import { Agent } from '../../../types';
12
12
 
13
13
  export const AgentRules = Operation.make({
14
14
  meta: {
15
- key: 'org.dxos.function.agent-wizard.agent-rules',
15
+ key: DXN.make('org.dxos.function.agentWizard.agentRules'),
16
16
  name: 'Agent rules',
17
17
  description: 'Gets the rules for creating an agent.',
18
+ icon: 'ph--book-open--regular',
18
19
  },
19
20
  input: Schema.Struct({}),
20
21
  output: Schema.String,
@@ -22,9 +23,10 @@ export const AgentRules = Operation.make({
22
23
 
23
24
  export const CreateAgent = Operation.make({
24
25
  meta: {
25
- key: 'org.dxos.function.agent-wizard.create-agent',
26
+ key: DXN.make('org.dxos.function.agentWizard.createAgent'),
26
27
  name: 'Create agent',
27
28
  description: 'Creates a new agent.',
29
+ icon: 'ph--brain--regular',
28
30
  },
29
31
  input: Schema.Struct({
30
32
  name: Schema.String.annotations({
@@ -42,16 +44,17 @@ export const CreateAgent = Operation.make({
42
44
  description: 'The objects to subscribe to for the agent. Can be references to mailboxes.',
43
45
  }),
44
46
  }),
45
- output: Agent.Agent,
46
- services: [Blueprint.RegistryService, Database.Service, QueueService, Feed.FeedService],
47
+ output: Type.getSchema(Agent.Agent),
48
+ services: [Registry.Service, Database.Service, Feed.FeedService],
47
49
  });
48
50
 
49
51
  export const SyncTriggers = Operation.make({
50
52
  meta: {
51
- key: 'org.dxos.function.agent.sync-triggers',
53
+ key: DXN.make('org.dxos.function.agent.syncTriggers'),
52
54
  name: 'Sync triggers',
53
55
  description:
54
56
  'Synchronizes triggers with the agent: subscriptions, cron, filter-events, and enabled (copied to every trigger). Call after editing those fields.',
57
+ icon: 'ph--arrows-clockwise--regular',
55
58
  },
56
59
  input: Schema.Struct({
57
60
  agent: Ref.Ref(Agent.Agent).annotations({
@@ -6,7 +6,7 @@ import * as Effect from 'effect/Effect';
6
6
  import * as Option from 'effect/Option';
7
7
 
8
8
  import { Trigger, Operation } from '@dxos/compute';
9
- import { Database, Feed, Filter, Obj, Ref } from '@dxos/echo';
9
+ import { Database, Feed, Filter, Obj, Ref, Type } from '@dxos/echo';
10
10
  import { FeedAnnotation } from '@dxos/schema';
11
11
 
12
12
  import { Agent } from '../../../types';
@@ -22,7 +22,7 @@ export default SyncTriggers.pipe(
22
22
  );
23
23
 
24
24
  /**
25
- * Foreign key {@link AGENT_TRIGGER_EXTENSION_KEY} => <agent id : ObjectId>.
25
+ * Foreign key {@link AGENT_TRIGGER_EXTENSION_KEY} => <agent id : EntityId>.
26
26
  */
27
27
  const AGENT_TRIGGER_EXTENSION_KEY = 'org.dxos.extension.AgentTrigger';
28
28
 
@@ -33,11 +33,11 @@ const AGENT_TRIGGER_TARGET_EXTENSION_KEY = 'org.dxos.extension.AgentTriggerTarge
33
33
 
34
34
  /** Checks if an object's schema has the FeedAnnotation. */
35
35
  const hasFeedAnnotation = (obj: Obj.Unknown): boolean => {
36
- const schema = Obj.getSchema(obj);
37
- if (!schema) {
36
+ const type = Obj.getType(obj);
37
+ if (!type) {
38
38
  return false;
39
39
  }
40
- const annotation = FeedAnnotation.get(schema);
40
+ const annotation = FeedAnnotation.get(Type.getSchema(type));
41
41
  return Option.isSome(annotation) && annotation.value === true;
42
42
  };
43
43
 
@@ -76,12 +76,7 @@ const syncAgentTriggers = (agent: Agent.Agent): Effect.Effect<void, never, Datab
76
76
  feedObj = feedRef ? Option.getOrUndefined(yield* Database.loadOption(feedRef)) : undefined;
77
77
  }
78
78
 
79
- const queueDxn = Option.fromNullable(feedObj).pipe(
80
- Option.filter(Obj.instanceOf(Feed.Feed)),
81
- Option.map(Feed.getQueueDxn),
82
- Option.getOrUndefined,
83
- );
84
- if (!queueDxn) {
79
+ if (!feedObj || !Obj.instanceOf(Feed.Feed, feedObj) || !Feed.getQueueUri(feedObj)) {
85
80
  continue;
86
81
  }
87
82
 
@@ -93,11 +88,11 @@ const syncAgentTriggers = (agent: Agent.Agent): Effect.Effect<void, never, Datab
93
88
  [Obj.Meta]: {
94
89
  keys: [
95
90
  { source: AGENT_TRIGGER_EXTENSION_KEY, id: agent.id },
96
- { source: AGENT_TRIGGER_TARGET_EXTENSION_KEY, id: subscription.dxn.toString() },
91
+ { source: AGENT_TRIGGER_TARGET_EXTENSION_KEY, id: subscription.uri },
97
92
  ],
98
93
  },
99
94
  enabled: triggersEnabled,
100
- spec: Trigger.specQueue(queueDxn.toString()),
95
+ spec: Trigger.specFeed(feedObj),
101
96
  function: Ref.make(Operation.serialize(filterEvents ? Qualifier : AgentWorker)),
102
97
  input: {
103
98
  agent: Ref.make(agent),
@@ -108,28 +103,31 @@ const syncAgentTriggers = (agent: Agent.Agent): Effect.Effect<void, never, Datab
108
103
  );
109
104
  }
110
105
 
111
- if ((agent.filterEvents ?? true) && agent.queue) {
112
- yield* Database.add(
113
- Trigger.make({
114
- [Obj.Parent]: agent,
115
- [Obj.Meta]: {
116
- keys: [
117
- { source: AGENT_TRIGGER_EXTENSION_KEY, id: agent.id },
118
- {
119
- source: AGENT_TRIGGER_TARGET_EXTENSION_KEY,
120
- id: Obj.getDXN(agent)?.toString() ?? '',
121
- },
122
- ],
123
- },
124
- function: Ref.make(Operation.serialize(AgentWorker)),
125
- enabled: triggersEnabled,
126
- spec: Trigger.specQueue(agent.queue.dxn.toString()),
127
- input: {
128
- agent: Ref.make(agent),
129
- event: '{{event}}',
130
- },
131
- }),
132
- );
106
+ if ((agent.filterEvents ?? true) && agent.feed) {
107
+ const agentFeedOption = yield* Database.loadOption(agent.feed);
108
+ if (Option.isSome(agentFeedOption) && Feed.getQueueUri(agentFeedOption.value)) {
109
+ yield* Database.add(
110
+ Trigger.make({
111
+ [Obj.Parent]: agent,
112
+ [Obj.Meta]: {
113
+ keys: [
114
+ { source: AGENT_TRIGGER_EXTENSION_KEY, id: agent.id },
115
+ {
116
+ source: AGENT_TRIGGER_TARGET_EXTENSION_KEY,
117
+ id: Obj.getURI(agent) ?? '',
118
+ },
119
+ ],
120
+ },
121
+ function: Ref.make(Operation.serialize(AgentWorker)),
122
+ enabled: triggersEnabled,
123
+ spec: Trigger.specFeed(agentFeedOption.value),
124
+ input: {
125
+ agent: Ref.make(agent),
126
+ event: '{{event}}',
127
+ },
128
+ }),
129
+ );
130
+ }
133
131
  }
134
132
 
135
133
  // Timer trigger bypasses the qualifier and invokes the agent worker directly on a schedule.
@@ -7,19 +7,25 @@ import * as Effect from 'effect/Effect';
7
7
  import { pipe } from 'effect/Function';
8
8
 
9
9
  import { ConsolePrinter } from '@dxos/ai';
10
- import { AiContextService, type AiSession, type AiSessionRunProps, GenerationObserver } from '@dxos/assistant';
10
+ import { AiContext, AiRequest, AiSession, GenerationObserver } from '@dxos/assistant';
11
11
  import type { Blueprint } from '@dxos/compute';
12
12
  import { Database, Ref } from '@dxos/echo';
13
13
  import { log } from '@dxos/log';
14
14
 
15
- export type TestStep = Pick<AiSessionRunProps, 'prompt' | 'system'> & {
15
+ export type TestStep = Pick<AiSession.RunProps, 'prompt' | 'system'> & {
16
16
  test?: () => Promise<void>;
17
17
  };
18
18
 
19
19
  /**
20
20
  * Runs the prompt steps, calling the test function after each step.
21
21
  */
22
- export const runSteps = Effect.fn(function* (session: AiSession, steps: TestStep[]) {
22
+ export const runSteps: (
23
+ session: AiSession.Session,
24
+ steps: TestStep[],
25
+ ) => Effect.Effect<void, AiRequest.RunError, AiRequest.RunRequirements> = Effect.fn(function* (
26
+ session: AiSession.Session,
27
+ steps: TestStep[],
28
+ ) {
23
29
  for (const { test, ...props } of steps) {
24
30
  yield* session.createRequest({
25
31
  ...props,
@@ -38,7 +44,7 @@ export const runSteps = Effect.fn(function* (session: AiSession, steps: TestStep
38
44
  */
39
45
  // TODO(dmaretskyi): Potentially the agent will auto-bind the blueprints.
40
46
  export const addBlueprints = Effect.fnUntraced(function* (blueprints: Blueprint.Definition[]) {
41
- yield* AiContextService.bindContext({
47
+ yield* AiContext.Service.bindContext({
42
48
  blueprints: yield* pipe(
43
49
  blueprints,
44
50
  Arr.map((blueprint) => blueprint.make()),