@dxos/assistant-toolkit 0.8.4-main.c85a9c8dae → 0.8.4-main.dfabb4ec29

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 (506) hide show
  1. package/dist/lib/neutral/add-artifact-ZUJ5DMSY.mjs +30 -0
  2. package/dist/lib/neutral/add-artifact-ZUJ5DMSY.mjs.map +7 -0
  3. package/dist/lib/neutral/agent-5NIKAYUK.mjs +65 -0
  4. package/dist/lib/neutral/agent-5NIKAYUK.mjs.map +7 -0
  5. package/dist/lib/neutral/chunk-246ACKSH.mjs +100 -0
  6. package/dist/lib/neutral/chunk-246ACKSH.mjs.map +7 -0
  7. package/dist/lib/neutral/chunk-EJAQUAKM.mjs +73 -0
  8. package/dist/lib/neutral/chunk-EJAQUAKM.mjs.map +7 -0
  9. package/dist/lib/neutral/chunk-FIGO6CA6.mjs +140 -0
  10. package/dist/lib/neutral/chunk-FIGO6CA6.mjs.map +7 -0
  11. package/dist/lib/neutral/chunk-GV66MKAQ.mjs +60 -0
  12. package/dist/lib/neutral/chunk-GV66MKAQ.mjs.map +7 -0
  13. package/dist/lib/neutral/chunk-IKBIORQX.mjs +332 -0
  14. package/dist/lib/neutral/chunk-IKBIORQX.mjs.map +7 -0
  15. package/dist/lib/neutral/chunk-KGU725LW.mjs +29 -0
  16. package/dist/lib/neutral/chunk-KGU725LW.mjs.map +7 -0
  17. package/dist/lib/neutral/chunk-NR3GTWRC.mjs +53 -0
  18. package/dist/lib/neutral/chunk-NR3GTWRC.mjs.map +7 -0
  19. package/dist/lib/neutral/chunk-P4ZMYO4K.mjs +294 -0
  20. package/dist/lib/neutral/chunk-P4ZMYO4K.mjs.map +7 -0
  21. package/dist/lib/neutral/chunk-QO5SU37C.mjs +70 -0
  22. package/dist/lib/neutral/chunk-QO5SU37C.mjs.map +7 -0
  23. package/dist/lib/neutral/chunk-ROMZO4CB.mjs +108 -0
  24. package/dist/lib/neutral/chunk-ROMZO4CB.mjs.map +7 -0
  25. package/dist/lib/neutral/chunk-TO5IX24K.mjs +67 -0
  26. package/dist/lib/neutral/chunk-TO5IX24K.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-WLR3BGO4.mjs +25 -0
  28. package/dist/lib/neutral/chunk-WLR3BGO4.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-XUF53B6B.mjs +75 -0
  30. package/dist/lib/neutral/chunk-XUF53B6B.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-ZFXLTBZG.mjs +73 -0
  32. package/dist/lib/neutral/chunk-ZFXLTBZG.mjs.map +7 -0
  33. package/dist/lib/neutral/context-add-VB7AOY3G.mjs +22 -0
  34. package/dist/lib/neutral/context-add-VB7AOY3G.mjs.map +7 -0
  35. package/dist/lib/neutral/context-remove-VCM3VPSO.mjs +22 -0
  36. package/dist/lib/neutral/context-remove-VCM3VPSO.mjs.map +7 -0
  37. package/dist/lib/neutral/create-project-EIF4OJMY.mjs +35 -0
  38. package/dist/lib/neutral/create-project-EIF4OJMY.mjs.map +7 -0
  39. package/dist/lib/neutral/delete-J3PMWP7Z.mjs +19 -0
  40. package/dist/lib/neutral/delete-J3PMWP7Z.mjs.map +7 -0
  41. package/dist/lib/neutral/enable-blueprints-LBDZH2CY.mjs +47 -0
  42. package/dist/lib/neutral/enable-blueprints-LBDZH2CY.mjs.map +7 -0
  43. package/dist/lib/neutral/fetch-KHMHV7JR.mjs +16 -0
  44. package/dist/lib/neutral/fetch-KHMHV7JR.mjs.map +7 -0
  45. package/dist/lib/neutral/fetch-messages-QOBBCTGC.mjs +139 -0
  46. package/dist/lib/neutral/fetch-messages-QOBBCTGC.mjs.map +7 -0
  47. package/dist/lib/neutral/get-context-TN7X7U2H.mjs +35 -0
  48. package/dist/lib/neutral/get-context-TN7X7U2H.mjs.map +7 -0
  49. package/dist/lib/neutral/index.mjs +581 -3293
  50. package/dist/lib/neutral/index.mjs.map +4 -4
  51. package/dist/lib/neutral/load-ALP3TK2E.mjs +17 -0
  52. package/dist/lib/neutral/load-ALP3TK2E.mjs.map +7 -0
  53. package/dist/lib/neutral/meta.json +1 -1
  54. package/dist/lib/neutral/object-create-Z57Y3X6Y.mjs +35 -0
  55. package/dist/lib/neutral/object-create-Z57Y3X6Y.mjs.map +7 -0
  56. package/dist/lib/neutral/object-delete-X53LS37B.mjs +18 -0
  57. package/dist/lib/neutral/object-delete-X53LS37B.mjs.map +7 -0
  58. package/dist/lib/neutral/object-update-GVKSBR7T.mjs +28 -0
  59. package/dist/lib/neutral/object-update-GVKSBR7T.mjs.map +7 -0
  60. package/dist/lib/neutral/project-HPHTZ2CI.mjs +23 -0
  61. package/dist/lib/neutral/project-HPHTZ2CI.mjs.map +7 -0
  62. package/dist/lib/neutral/project-rules-IVDHKSKI.mjs +78 -0
  63. package/dist/lib/neutral/project-rules-IVDHKSKI.mjs.map +7 -0
  64. package/dist/lib/neutral/prompt-Y7NN7M5D.mjs +170 -0
  65. package/dist/lib/neutral/prompt-Y7NN7M5D.mjs.map +7 -0
  66. package/dist/lib/neutral/qualifier-VDOY5CWU.mjs +88 -0
  67. package/dist/lib/neutral/qualifier-VDOY5CWU.mjs.map +7 -0
  68. package/dist/lib/neutral/query-PPJU5622.mjs +70 -0
  69. package/dist/lib/neutral/query-PPJU5622.mjs.map +7 -0
  70. package/dist/lib/neutral/query-U56GNEV6.mjs +32 -0
  71. package/dist/lib/neutral/query-U56GNEV6.mjs.map +7 -0
  72. package/dist/lib/neutral/query-blueprints-KXADGHSA.mjs +16 -0
  73. package/dist/lib/neutral/query-blueprints-KXADGHSA.mjs.map +7 -0
  74. package/dist/lib/neutral/relation-create-XJ2IX6X3.mjs +34 -0
  75. package/dist/lib/neutral/relation-create-XJ2IX6X3.mjs.map +7 -0
  76. package/dist/lib/neutral/relation-delete-EP4KXAFL.mjs +18 -0
  77. package/dist/lib/neutral/relation-delete-EP4KXAFL.mjs.map +7 -0
  78. package/dist/lib/neutral/save-GWAPLT3Z.mjs +23 -0
  79. package/dist/lib/neutral/save-GWAPLT3Z.mjs.map +7 -0
  80. package/dist/lib/neutral/schema-add-Z5CY6P24.mjs +24 -0
  81. package/dist/lib/neutral/schema-add-Z5CY6P24.mjs.map +7 -0
  82. package/dist/lib/neutral/schema-list-W326VPVX.mjs +38 -0
  83. package/dist/lib/neutral/schema-list-W326VPVX.mjs.map +7 -0
  84. package/dist/lib/neutral/sync-issues-4YE5XAK5.mjs +167 -0
  85. package/dist/lib/neutral/sync-issues-4YE5XAK5.mjs.map +7 -0
  86. package/dist/lib/neutral/sync-triggers-CDMJVW6E.mjs +136 -0
  87. package/dist/lib/neutral/sync-triggers-CDMJVW6E.mjs.map +7 -0
  88. package/dist/lib/neutral/tag-add-VNIIOVJA.mjs +19 -0
  89. package/dist/lib/neutral/tag-add-VNIIOVJA.mjs.map +7 -0
  90. package/dist/lib/neutral/tag-remove-6R2R27W3.mjs +19 -0
  91. package/dist/lib/neutral/tag-remove-6R2R27W3.mjs.map +7 -0
  92. package/dist/lib/neutral/testing/index.mjs +9 -14
  93. package/dist/lib/neutral/testing/index.mjs.map +3 -3
  94. package/dist/lib/neutral/update-blueprints-N2AK2VUR.mjs +16 -0
  95. package/dist/lib/neutral/update-blueprints-N2AK2VUR.mjs.map +7 -0
  96. package/dist/lib/neutral/update-tasks-H7SWIFQL.mjs +46 -0
  97. package/dist/lib/neutral/update-tasks-H7SWIFQL.mjs.map +7 -0
  98. package/dist/types/src/blueprints/automation/blueprint.d.ts +4 -0
  99. package/dist/types/src/blueprints/automation/blueprint.d.ts.map +1 -0
  100. package/dist/types/src/blueprints/automation/index.d.ts +2 -0
  101. package/dist/types/src/blueprints/automation/index.d.ts.map +1 -0
  102. package/dist/types/src/blueprints/blueprint-manager/blueprint.d.ts +4 -0
  103. package/dist/types/src/blueprints/blueprint-manager/blueprint.d.ts.map +1 -0
  104. package/dist/types/src/blueprints/blueprint-manager/blueprint.test.d.ts.map +1 -0
  105. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts +63 -0
  106. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts.map +1 -0
  107. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts +37 -0
  108. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts.map +1 -0
  109. package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts +4 -0
  110. package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts.map +1 -0
  111. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts +28 -0
  112. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts.map +1 -0
  113. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts +4 -0
  114. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts.map +1 -0
  115. package/dist/types/src/blueprints/blueprint-manager/index.d.ts +3 -0
  116. package/dist/types/src/blueprints/blueprint-manager/index.d.ts.map +1 -0
  117. package/dist/types/src/blueprints/browser/blueprint.d.ts +2 -2
  118. package/dist/types/src/blueprints/browser/blueprint.d.ts.map +1 -1
  119. package/dist/types/src/blueprints/database/blueprint.d.ts +2 -2
  120. package/dist/types/src/blueprints/database/blueprint.d.ts.map +1 -1
  121. package/dist/types/src/blueprints/database/functions/context-add.d.ts +5 -4
  122. package/dist/types/src/blueprints/database/functions/context-add.d.ts.map +1 -1
  123. package/dist/types/src/blueprints/database/functions/context-remove.d.ts +5 -4
  124. package/dist/types/src/blueprints/database/functions/context-remove.d.ts.map +1 -1
  125. package/dist/types/src/blueprints/database/functions/definitions.d.ts +59 -0
  126. package/dist/types/src/blueprints/database/functions/definitions.d.ts.map +1 -0
  127. package/dist/types/src/blueprints/database/functions/index.d.ts +3 -56
  128. package/dist/types/src/blueprints/database/functions/index.d.ts.map +1 -1
  129. package/dist/types/src/blueprints/database/functions/load.d.ts +5 -4
  130. package/dist/types/src/blueprints/database/functions/load.d.ts.map +1 -1
  131. package/dist/types/src/blueprints/database/functions/object-create.d.ts +5 -3
  132. package/dist/types/src/blueprints/database/functions/object-create.d.ts.map +1 -1
  133. package/dist/types/src/blueprints/database/functions/object-delete.d.ts +5 -4
  134. package/dist/types/src/blueprints/database/functions/object-delete.d.ts.map +1 -1
  135. package/dist/types/src/blueprints/database/functions/object-update.d.ts +5 -4
  136. package/dist/types/src/blueprints/database/functions/object-update.d.ts.map +1 -1
  137. package/dist/types/src/blueprints/database/functions/query.d.ts +7 -3
  138. package/dist/types/src/blueprints/database/functions/query.d.ts.map +1 -1
  139. package/dist/types/src/blueprints/database/functions/relation-create.d.ts +6 -5
  140. package/dist/types/src/blueprints/database/functions/relation-create.d.ts.map +1 -1
  141. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts +5 -4
  142. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts.map +1 -1
  143. package/dist/types/src/blueprints/database/functions/schema-add.d.ts +4 -2
  144. package/dist/types/src/blueprints/database/functions/schema-add.d.ts.map +1 -1
  145. package/dist/types/src/blueprints/database/functions/schema-list.d.ts +4 -2
  146. package/dist/types/src/blueprints/database/functions/schema-list.d.ts.map +1 -1
  147. package/dist/types/src/blueprints/database/functions/tag-add.d.ts +4 -3
  148. package/dist/types/src/blueprints/database/functions/tag-add.d.ts.map +1 -1
  149. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts +4 -3
  150. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts.map +1 -1
  151. package/dist/types/src/blueprints/database/index.d.ts +1 -1
  152. package/dist/types/src/blueprints/database/index.d.ts.map +1 -1
  153. package/dist/types/src/blueprints/discord/blueprint.d.ts +2 -2
  154. package/dist/types/src/blueprints/discord/blueprint.d.ts.map +1 -1
  155. package/dist/types/src/blueprints/discord/functions/definitions.d.ts +15 -0
  156. package/dist/types/src/blueprints/discord/functions/definitions.d.ts.map +1 -0
  157. package/dist/types/src/blueprints/discord/functions/fetch-messages.d.ts +3 -2
  158. package/dist/types/src/blueprints/discord/functions/fetch-messages.d.ts.map +1 -1
  159. package/dist/types/src/blueprints/discord/functions/index.d.ts +3 -11
  160. package/dist/types/src/blueprints/discord/functions/index.d.ts.map +1 -1
  161. package/dist/types/src/blueprints/discord/index.d.ts +1 -0
  162. package/dist/types/src/blueprints/discord/index.d.ts.map +1 -1
  163. package/dist/types/src/blueprints/github/functions/definitions.d.ts +7 -0
  164. package/dist/types/src/blueprints/github/functions/definitions.d.ts.map +1 -0
  165. package/dist/types/src/blueprints/github/functions/fetch-prs.d.ts +4 -2
  166. package/dist/types/src/blueprints/github/functions/fetch-prs.d.ts.map +1 -1
  167. package/dist/types/src/blueprints/github/functions/index.d.ts +3 -6
  168. package/dist/types/src/blueprints/github/functions/index.d.ts.map +1 -1
  169. package/dist/types/src/blueprints/github/index.d.ts +1 -0
  170. package/dist/types/src/blueprints/github/index.d.ts.map +1 -1
  171. package/dist/types/src/blueprints/index.d.ts +4 -3
  172. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  173. package/dist/types/src/blueprints/linear/blueprint.d.ts +2 -2
  174. package/dist/types/src/blueprints/linear/blueprint.d.ts.map +1 -1
  175. package/dist/types/src/blueprints/linear/functions/definitions.d.ts +6 -0
  176. package/dist/types/src/blueprints/linear/functions/definitions.d.ts.map +1 -0
  177. package/dist/types/src/blueprints/linear/functions/index.d.ts +3 -8
  178. package/dist/types/src/blueprints/linear/functions/index.d.ts.map +1 -1
  179. package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts +4 -6
  180. package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts.map +1 -1
  181. package/dist/types/src/blueprints/linear/index.d.ts +1 -0
  182. package/dist/types/src/blueprints/linear/index.d.ts.map +1 -1
  183. package/dist/types/src/blueprints/memory/blueprint.d.ts +4 -0
  184. package/dist/types/src/blueprints/memory/blueprint.d.ts.map +1 -0
  185. package/dist/types/src/blueprints/memory/blueprint.test.d.ts.map +1 -0
  186. package/dist/types/src/blueprints/memory/functions/definitions.d.ts +17 -0
  187. package/dist/types/src/blueprints/memory/functions/definitions.d.ts.map +1 -0
  188. package/dist/types/src/blueprints/memory/functions/delete.d.ts +10 -0
  189. package/dist/types/src/blueprints/memory/functions/delete.d.ts.map +1 -0
  190. package/dist/types/src/blueprints/memory/functions/index.d.ts +4 -0
  191. package/dist/types/src/blueprints/memory/functions/index.d.ts.map +1 -0
  192. package/dist/types/src/blueprints/memory/functions/query.d.ts +8 -0
  193. package/dist/types/src/blueprints/memory/functions/query.d.ts.map +1 -0
  194. package/dist/types/src/blueprints/memory/functions/save.d.ts +8 -0
  195. package/dist/types/src/blueprints/memory/functions/save.d.ts.map +1 -0
  196. package/dist/types/src/blueprints/memory/index.d.ts +3 -0
  197. package/dist/types/src/blueprints/memory/index.d.ts.map +1 -0
  198. package/dist/types/src/blueprints/planning/blueprint.d.ts +2 -2
  199. package/dist/types/src/blueprints/planning/blueprint.d.ts.map +1 -1
  200. package/dist/types/src/blueprints/planning/functions/definitions.d.ts +11 -0
  201. package/dist/types/src/blueprints/planning/functions/definitions.d.ts.map +1 -0
  202. package/dist/types/src/blueprints/planning/functions/index.d.ts +3 -9
  203. package/dist/types/src/blueprints/planning/functions/index.d.ts.map +1 -1
  204. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts +5 -3
  205. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts.map +1 -1
  206. package/dist/types/src/blueprints/planning/index.d.ts +1 -0
  207. package/dist/types/src/blueprints/planning/index.d.ts.map +1 -1
  208. package/dist/types/src/blueprints/project/blueprint.d.ts +2 -2
  209. package/dist/types/src/blueprints/project/blueprint.d.ts.map +1 -1
  210. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts +4 -3
  211. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts.map +1 -1
  212. package/dist/types/src/blueprints/project/functions/agent.d.ts +2 -60
  213. package/dist/types/src/blueprints/project/functions/agent.d.ts.map +1 -1
  214. package/dist/types/src/blueprints/project/functions/definitions.d.ts +158 -0
  215. package/dist/types/src/blueprints/project/functions/definitions.d.ts.map +1 -0
  216. package/dist/types/src/blueprints/project/functions/get-context.d.ts +6 -4
  217. package/dist/types/src/blueprints/project/functions/get-context.d.ts.map +1 -1
  218. package/dist/types/src/blueprints/project/functions/index.d.ts +3 -132
  219. package/dist/types/src/blueprints/project/functions/index.d.ts.map +1 -1
  220. package/dist/types/src/blueprints/project/functions/qualifier.d.ts +30 -17
  221. package/dist/types/src/blueprints/project/functions/qualifier.d.ts.map +1 -1
  222. package/dist/types/src/blueprints/project/index.d.ts +2 -2
  223. package/dist/types/src/blueprints/project/index.d.ts.map +1 -1
  224. package/dist/types/src/blueprints/project-wizard/blueprint.d.ts +4 -0
  225. package/dist/types/src/blueprints/project-wizard/blueprint.d.ts.map +1 -0
  226. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts +51 -0
  227. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts.map +1 -0
  228. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts +96 -0
  229. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts.map +1 -0
  230. package/dist/types/src/blueprints/project-wizard/functions/index.d.ts +4 -0
  231. package/dist/types/src/blueprints/project-wizard/functions/index.d.ts.map +1 -0
  232. package/dist/types/src/blueprints/project-wizard/functions/project-rules.d.ts +4 -0
  233. package/dist/types/src/blueprints/project-wizard/functions/project-rules.d.ts.map +1 -0
  234. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts +48 -0
  235. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts.map +1 -0
  236. package/dist/types/src/blueprints/project-wizard/index.d.ts +3 -0
  237. package/dist/types/src/blueprints/project-wizard/index.d.ts.map +1 -0
  238. package/dist/types/src/blueprints/testing.d.ts +5 -15
  239. package/dist/types/src/blueprints/testing.d.ts.map +1 -1
  240. package/dist/types/src/blueprints/websearch/blueprint.d.ts +2 -2
  241. package/dist/types/src/blueprints/websearch/blueprint.d.ts.map +1 -1
  242. package/dist/types/src/blueprints/websearch/blueprint.test.d.ts.map +1 -0
  243. package/dist/types/src/blueprints/websearch/functions/definitions.d.ts +5 -0
  244. package/dist/types/src/blueprints/websearch/functions/definitions.d.ts.map +1 -0
  245. package/dist/types/src/blueprints/websearch/functions/fetch.d.ts +6 -0
  246. package/dist/types/src/blueprints/websearch/functions/fetch.d.ts.map +1 -0
  247. package/dist/types/src/blueprints/websearch/functions/index.d.ts +4 -0
  248. package/dist/types/src/blueprints/websearch/functions/index.d.ts.map +1 -0
  249. package/dist/types/src/blueprints/websearch/index.d.ts +2 -1
  250. package/dist/types/src/blueprints/websearch/index.d.ts.map +1 -1
  251. package/dist/types/src/blueprints/websearch/toolkit.d.ts +2 -0
  252. package/dist/types/src/blueprints/websearch/toolkit.d.ts.map +1 -1
  253. package/dist/types/src/crud/graph.d.ts +1 -1
  254. package/dist/types/src/crud/graph.d.ts.map +1 -1
  255. package/dist/types/src/errors.d.ts +41 -0
  256. package/dist/types/src/errors.d.ts.map +1 -0
  257. package/dist/types/src/functions/agent/definitions.d.ts +62 -0
  258. package/dist/types/src/functions/agent/definitions.d.ts.map +1 -0
  259. package/dist/types/src/functions/agent/index.d.ts +3 -84
  260. package/dist/types/src/functions/agent/index.d.ts.map +1 -1
  261. package/dist/types/src/functions/agent/prompt.d.ts +2 -82
  262. package/dist/types/src/functions/agent/prompt.d.ts.map +1 -1
  263. package/dist/types/src/functions/agent/prompt.test.d.ts +2 -0
  264. package/dist/types/src/functions/agent/prompt.test.d.ts.map +1 -0
  265. package/dist/types/src/functions/index.d.ts +0 -2
  266. package/dist/types/src/functions/index.d.ts.map +1 -1
  267. package/dist/types/src/sync/sync.d.ts.map +1 -1
  268. package/dist/types/src/testing/plugins.d.ts.map +1 -1
  269. package/dist/types/src/toolkits/WebToolkit.d.ts.map +1 -1
  270. package/dist/types/src/types/Agent.d.ts +77 -0
  271. package/dist/types/src/types/Agent.d.ts.map +1 -0
  272. package/dist/types/src/types/Chat.d.ts +32 -7
  273. package/dist/types/src/types/Chat.d.ts.map +1 -1
  274. package/dist/types/src/types/McpServer.d.ts +21 -0
  275. package/dist/types/src/types/McpServer.d.ts.map +1 -0
  276. package/dist/types/src/types/Memory.d.ts +12 -0
  277. package/dist/types/src/types/Memory.d.ts.map +1 -0
  278. package/dist/types/src/types/Plan.d.ts +23 -11
  279. package/dist/types/src/types/Plan.d.ts.map +1 -1
  280. package/dist/types/src/types/index.d.ts +3 -1
  281. package/dist/types/src/types/index.d.ts.map +1 -1
  282. package/dist/types/src/util/graphql.d.ts.map +1 -1
  283. package/dist/types/tsconfig.tsbuildinfo +1 -1
  284. package/package.json +27 -31
  285. package/src/blueprints/automation/blueprint.ts +105 -0
  286. package/src/blueprints/automation/index.ts +5 -0
  287. package/src/blueprints/blueprint-manager/blueprint.conversations.json +1 -0
  288. package/src/blueprints/blueprint-manager/blueprint.test.ts +198 -0
  289. package/src/blueprints/blueprint-manager/blueprint.ts +49 -0
  290. package/src/blueprints/blueprint-manager/functions/definitions.ts +57 -0
  291. package/src/blueprints/blueprint-manager/functions/enable-blueprints.ts +43 -0
  292. package/src/blueprints/blueprint-manager/functions/index.ts +13 -0
  293. package/src/blueprints/blueprint-manager/functions/query-blueprints.ts +18 -0
  294. package/src/blueprints/blueprint-manager/functions/update-blueprints.ts +18 -0
  295. package/src/blueprints/blueprint-manager/index.ts +6 -0
  296. package/src/blueprints/browser/blueprint.test.ts +23 -32
  297. package/src/blueprints/browser/blueprint.ts +5 -6
  298. package/src/blueprints/database/blueprint.conversations.json +1 -1
  299. package/src/blueprints/database/blueprint.test.ts +308 -98
  300. package/src/blueprints/database/blueprint.ts +37 -10
  301. package/src/blueprints/database/functions/context-add.ts +15 -26
  302. package/src/blueprints/database/functions/context-remove.ts +16 -27
  303. package/src/blueprints/database/functions/definitions.ts +318 -0
  304. package/src/blueprints/database/functions/index.ts +18 -28
  305. package/src/blueprints/database/functions/load.ts +11 -23
  306. package/src/blueprints/database/functions/object-create.ts +28 -25
  307. package/src/blueprints/database/functions/object-delete.ts +13 -20
  308. package/src/blueprints/database/functions/object-update.ts +23 -25
  309. package/src/blueprints/database/functions/query.ts +48 -110
  310. package/src/blueprints/database/functions/relation-create.ts +25 -38
  311. package/src/blueprints/database/functions/relation-delete.ts +14 -21
  312. package/src/blueprints/database/functions/schema-add.ts +19 -31
  313. package/src/blueprints/database/functions/schema-list.ts +26 -27
  314. package/src/blueprints/database/functions/tag-add.ts +14 -24
  315. package/src/blueprints/database/functions/tag-remove.ts +14 -23
  316. package/src/blueprints/database/index.ts +16 -1
  317. package/src/blueprints/discord/blueprint.ts +6 -11
  318. package/src/blueprints/discord/functions/definitions.ts +70 -0
  319. package/src/blueprints/discord/functions/fetch-messages.test.ts +15 -25
  320. package/src/blueprints/discord/functions/fetch-messages.ts +98 -152
  321. package/src/blueprints/discord/functions/index.ts +4 -4
  322. package/src/blueprints/discord/index.ts +1 -0
  323. package/src/blueprints/github/functions/definitions.ts +26 -0
  324. package/src/blueprints/github/functions/fetch-prs.ts +15 -22
  325. package/src/blueprints/github/functions/index.ts +4 -4
  326. package/src/blueprints/github/index.ts +2 -0
  327. package/src/blueprints/index.ts +4 -3
  328. package/src/blueprints/linear/blueprint.ts +6 -11
  329. package/src/blueprints/linear/functions/definitions.ts +23 -0
  330. package/src/blueprints/linear/functions/index.ts +4 -4
  331. package/src/blueprints/linear/functions/linear.test.ts +7 -7
  332. package/src/blueprints/linear/functions/sync-issues.ts +31 -39
  333. package/src/blueprints/linear/index.ts +1 -0
  334. package/src/blueprints/memory/blueprint.conversations.json +1 -0
  335. package/src/blueprints/memory/blueprint.test.ts +139 -0
  336. package/src/blueprints/memory/blueprint.ts +41 -0
  337. package/src/blueprints/memory/functions/definitions.ts +68 -0
  338. package/src/blueprints/memory/functions/delete.ts +20 -0
  339. package/src/blueprints/memory/functions/index.ts +13 -0
  340. package/src/blueprints/memory/functions/query.ts +32 -0
  341. package/src/blueprints/memory/functions/save.ts +20 -0
  342. package/src/blueprints/memory/index.ts +6 -0
  343. package/src/blueprints/planning/blueprint.ts +5 -9
  344. package/src/blueprints/planning/functions/definitions.ts +137 -0
  345. package/src/blueprints/planning/functions/index.ts +4 -4
  346. package/src/blueprints/planning/functions/update-tasks.ts +35 -158
  347. package/src/blueprints/planning/index.ts +1 -0
  348. package/src/blueprints/project/blueprint.conversations.json +1 -0
  349. package/src/blueprints/project/blueprint.test.ts +246 -111
  350. package/src/blueprints/project/blueprint.ts +21 -25
  351. package/src/blueprints/project/functions/add-artifact.ts +19 -30
  352. package/src/blueprints/project/functions/agent.ts +43 -46
  353. package/src/blueprints/project/functions/definitions.ts +92 -0
  354. package/src/blueprints/project/functions/get-context.ts +36 -53
  355. package/src/blueprints/project/functions/index.ts +9 -10
  356. package/src/blueprints/project/functions/qualifier.ts +66 -72
  357. package/src/blueprints/project/index.ts +2 -2
  358. package/src/blueprints/project-wizard/blueprint.ts +52 -0
  359. package/src/blueprints/project-wizard/functions/create-project.ts +32 -0
  360. package/src/blueprints/project-wizard/functions/definitions.ts +63 -0
  361. package/src/blueprints/project-wizard/functions/index.ts +13 -0
  362. package/src/blueprints/project-wizard/functions/project-rules.ts +77 -0
  363. package/src/blueprints/project-wizard/functions/sync-triggers.ts +158 -0
  364. package/src/blueprints/project-wizard/index.ts +6 -0
  365. package/src/blueprints/testing.ts +7 -23
  366. package/src/blueprints/websearch/blueprint.conversations.json +1 -0
  367. package/src/blueprints/websearch/blueprint.test.ts +39 -0
  368. package/src/blueprints/websearch/blueprint.ts +6 -8
  369. package/src/blueprints/websearch/functions/definitions.ts +25 -0
  370. package/src/blueprints/websearch/functions/fetch.ts +18 -0
  371. package/src/blueprints/websearch/functions/index.ts +9 -0
  372. package/src/blueprints/websearch/index.ts +2 -1
  373. package/src/blueprints/websearch/toolkit.ts +6 -1
  374. package/src/crud/graph.test.ts +10 -12
  375. package/src/crud/graph.ts +2 -2
  376. package/src/errors.ts +25 -0
  377. package/src/functions/agent/definitions.ts +56 -0
  378. package/src/functions/agent/index.ts +4 -4
  379. package/src/functions/agent/prompt.conversations.json +1 -0
  380. package/src/functions/agent/prompt.test.ts +81 -0
  381. package/src/functions/agent/prompt.ts +212 -96
  382. package/src/functions/index.ts +0 -2
  383. package/src/sync/sync.ts +23 -12
  384. package/src/testing/plugins.tsx +10 -3
  385. package/src/toolkits/WebToolkit.ts +1 -1
  386. package/src/types/Agent.ts +240 -0
  387. package/src/types/Chat.ts +24 -10
  388. package/src/types/McpServer.ts +37 -0
  389. package/src/types/Memory.ts +24 -0
  390. package/src/types/Plan.ts +7 -4
  391. package/src/types/index.ts +3 -1
  392. package/dist/types/src/blueprints/design/blueprint.d.ts +0 -4
  393. package/dist/types/src/blueprints/design/blueprint.d.ts.map +0 -1
  394. package/dist/types/src/blueprints/design/blueprint.test.d.ts.map +0 -1
  395. package/dist/types/src/blueprints/design/index.d.ts +0 -2
  396. package/dist/types/src/blueprints/design/index.d.ts.map +0 -1
  397. package/dist/types/src/blueprints/markdown/blueprint.d.ts +0 -4
  398. package/dist/types/src/blueprints/markdown/blueprint.d.ts.map +0 -1
  399. package/dist/types/src/blueprints/markdown/functions/create.d.ts +0 -6
  400. package/dist/types/src/blueprints/markdown/functions/create.d.ts.map +0 -1
  401. package/dist/types/src/blueprints/markdown/functions/index.d.ts +0 -30
  402. package/dist/types/src/blueprints/markdown/functions/index.d.ts.map +0 -1
  403. package/dist/types/src/blueprints/markdown/functions/read.d.ts +0 -14
  404. package/dist/types/src/blueprints/markdown/functions/read.d.ts.map +0 -1
  405. package/dist/types/src/blueprints/markdown/functions/update.d.ts +0 -13
  406. package/dist/types/src/blueprints/markdown/functions/update.d.ts.map +0 -1
  407. package/dist/types/src/blueprints/markdown/index.d.ts +0 -3
  408. package/dist/types/src/blueprints/markdown/index.d.ts.map +0 -1
  409. package/dist/types/src/blueprints/planning-old/blueprint.d.ts +0 -4
  410. package/dist/types/src/blueprints/planning-old/blueprint.d.ts.map +0 -1
  411. package/dist/types/src/blueprints/planning-old/blueprint.test.d.ts.map +0 -1
  412. package/dist/types/src/blueprints/planning-old/functions/index.d.ts +0 -29
  413. package/dist/types/src/blueprints/planning-old/functions/index.d.ts.map +0 -1
  414. package/dist/types/src/blueprints/planning-old/functions/read.d.ts +0 -14
  415. package/dist/types/src/blueprints/planning-old/functions/read.d.ts.map +0 -1
  416. package/dist/types/src/blueprints/planning-old/functions/task-list.d.ts +0 -74
  417. package/dist/types/src/blueprints/planning-old/functions/task-list.d.ts.map +0 -1
  418. package/dist/types/src/blueprints/planning-old/functions/task-list.test.d.ts +0 -2
  419. package/dist/types/src/blueprints/planning-old/functions/task-list.test.d.ts.map +0 -1
  420. package/dist/types/src/blueprints/planning-old/functions/update.d.ts +0 -16
  421. package/dist/types/src/blueprints/planning-old/functions/update.d.ts.map +0 -1
  422. package/dist/types/src/blueprints/planning-old/index.d.ts +0 -2
  423. package/dist/types/src/blueprints/planning-old/index.d.ts.map +0 -1
  424. package/dist/types/src/blueprints/research/blueprint.d.ts +0 -4
  425. package/dist/types/src/blueprints/research/blueprint.d.ts.map +0 -1
  426. package/dist/types/src/blueprints/research/blueprint.test.d.ts.map +0 -1
  427. package/dist/types/src/blueprints/research/functions/document-create.d.ts +0 -10
  428. package/dist/types/src/blueprints/research/functions/document-create.d.ts.map +0 -1
  429. package/dist/types/src/blueprints/research/functions/index.d.ts +0 -19
  430. package/dist/types/src/blueprints/research/functions/index.d.ts.map +0 -1
  431. package/dist/types/src/blueprints/research/functions/research.d.ts +0 -14
  432. package/dist/types/src/blueprints/research/functions/research.d.ts.map +0 -1
  433. package/dist/types/src/blueprints/research/functions/research.test.d.ts +0 -2
  434. package/dist/types/src/blueprints/research/functions/research.test.d.ts.map +0 -1
  435. package/dist/types/src/blueprints/research/index.d.ts +0 -3
  436. package/dist/types/src/blueprints/research/index.d.ts.map +0 -1
  437. package/dist/types/src/blueprints/research/types/ResearchGraph.d.ts +0 -18
  438. package/dist/types/src/blueprints/research/types/ResearchGraph.d.ts.map +0 -1
  439. package/dist/types/src/blueprints/research/types/index.d.ts +0 -7
  440. package/dist/types/src/blueprints/research/types/index.d.ts.map +0 -1
  441. package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts +0 -179
  442. package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts.map +0 -1
  443. package/dist/types/src/functions/entity-extraction/entity-extraction.test.d.ts +0 -2
  444. package/dist/types/src/functions/entity-extraction/entity-extraction.test.d.ts.map +0 -1
  445. package/dist/types/src/functions/entity-extraction/index.d.ts +0 -179
  446. package/dist/types/src/functions/entity-extraction/index.d.ts.map +0 -1
  447. package/dist/types/src/functions/exa/data/exa-search-1748337321991.d.ts +0 -38
  448. package/dist/types/src/functions/exa/data/exa-search-1748337321991.d.ts.map +0 -1
  449. package/dist/types/src/functions/exa/data/exa-search-1748337331526.d.ts +0 -37
  450. package/dist/types/src/functions/exa/data/exa-search-1748337331526.d.ts.map +0 -1
  451. package/dist/types/src/functions/exa/data/exa-search-1748337344119.d.ts +0 -58
  452. package/dist/types/src/functions/exa/data/exa-search-1748337344119.d.ts.map +0 -1
  453. package/dist/types/src/functions/exa/data/index.d.ts +0 -3
  454. package/dist/types/src/functions/exa/data/index.d.ts.map +0 -1
  455. package/dist/types/src/functions/exa/exa.d.ts +0 -5
  456. package/dist/types/src/functions/exa/exa.d.ts.map +0 -1
  457. package/dist/types/src/functions/exa/index.d.ts +0 -9
  458. package/dist/types/src/functions/exa/index.d.ts.map +0 -1
  459. package/dist/types/src/functions/exa/mock.d.ts +0 -5
  460. package/dist/types/src/functions/exa/mock.d.ts.map +0 -1
  461. package/dist/types/src/types/Project.d.ts +0 -67
  462. package/dist/types/src/types/Project.d.ts.map +0 -1
  463. package/src/blueprints/browser/blueprint.conversations.json +0 -1
  464. package/src/blueprints/design/blueprint.test.ts +0 -96
  465. package/src/blueprints/design/blueprint.ts +0 -46
  466. package/src/blueprints/design/index.ts +0 -5
  467. package/src/blueprints/markdown/blueprint.ts +0 -38
  468. package/src/blueprints/markdown/functions/create.ts +0 -29
  469. package/src/blueprints/markdown/functions/index.ts +0 -13
  470. package/src/blueprints/markdown/functions/read.ts +0 -32
  471. package/src/blueprints/markdown/functions/update.ts +0 -32
  472. package/src/blueprints/markdown/index.ts +0 -6
  473. package/src/blueprints/planning-old/blueprint.test.ts +0 -122
  474. package/src/blueprints/planning-old/blueprint.ts +0 -110
  475. package/src/blueprints/planning-old/functions/index.ts +0 -11
  476. package/src/blueprints/planning-old/functions/read.ts +0 -34
  477. package/src/blueprints/planning-old/functions/task-list.test.ts +0 -99
  478. package/src/blueprints/planning-old/functions/task-list.ts +0 -165
  479. package/src/blueprints/planning-old/functions/update.ts +0 -52
  480. package/src/blueprints/planning-old/index.ts +0 -5
  481. package/src/blueprints/research/blueprint.test.ts +0 -7
  482. package/src/blueprints/research/blueprint.ts +0 -65
  483. package/src/blueprints/research/functions/document-create.ts +0 -73
  484. package/src/blueprints/research/functions/index.ts +0 -11
  485. package/src/blueprints/research/functions/research-instructions.tpl +0 -106
  486. package/src/blueprints/research/functions/research.conversations.json +0 -1
  487. package/src/blueprints/research/functions/research.test.ts +0 -149
  488. package/src/blueprints/research/functions/research.ts +0 -175
  489. package/src/blueprints/research/index.ts +0 -6
  490. package/src/blueprints/research/types/ResearchGraph.ts +0 -49
  491. package/src/blueprints/research/types/index.ts +0 -32
  492. package/src/functions/entity-extraction/entity-extraction.conversations.json +0 -1
  493. package/src/functions/entity-extraction/entity-extraction.test.ts +0 -74
  494. package/src/functions/entity-extraction/entity-extraction.ts +0 -181
  495. package/src/functions/entity-extraction/index.ts +0 -9
  496. package/src/functions/exa/data/exa-search-1748337321991.ts +0 -131
  497. package/src/functions/exa/data/exa-search-1748337331526.ts +0 -144
  498. package/src/functions/exa/data/exa-search-1748337344119.ts +0 -133
  499. package/src/functions/exa/data/index.ts +0 -11
  500. package/src/functions/exa/exa.ts +0 -37
  501. package/src/functions/exa/index.ts +0 -11
  502. package/src/functions/exa/mock.ts +0 -71
  503. package/src/types/Project.ts +0 -196
  504. /package/dist/types/src/blueprints/{design → blueprint-manager}/blueprint.test.d.ts +0 -0
  505. /package/dist/types/src/blueprints/{planning-old → memory}/blueprint.test.d.ts +0 -0
  506. /package/dist/types/src/blueprints/{research → websearch}/blueprint.test.d.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/assistant-toolkit",
3
- "version": "0.8.4-main.c85a9c8dae",
3
+ "version": "0.8.4-main.dfabb4ec29",
4
4
  "description": "Assistant toolkit, definitions, and utilities.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -30,47 +30,43 @@
30
30
  "dependencies": {
31
31
  "@effect/ai": "0.33.2",
32
32
  "@effect/ai-anthropic": "0.23.0",
33
- "@effect/experimental": "0.58.0",
34
33
  "@effect/platform": "0.94.4",
35
34
  "dfx": "^0.127.0",
36
35
  "exa-js": "^1.5.12",
37
- "@dxos/ai": "0.8.4-main.c85a9c8dae",
38
- "@dxos/assistant": "0.8.4-main.c85a9c8dae",
39
- "@dxos/blueprints": "0.8.4-main.c85a9c8dae",
40
- "@dxos/client-protocol": "0.8.4-main.c85a9c8dae",
41
- "@dxos/context": "0.8.4-main.c85a9c8dae",
42
- "@dxos/conductor": "0.8.4-main.c85a9c8dae",
43
- "@dxos/app-framework": "0.8.4-main.c85a9c8dae",
44
- "@dxos/echo": "0.8.4-main.c85a9c8dae",
45
- "@dxos/echo-db": "0.8.4-main.c85a9c8dae",
46
- "@dxos/echo-protocol": "0.8.4-main.c85a9c8dae",
47
- "@dxos/edge-client": "0.8.4-main.c85a9c8dae",
48
- "@dxos/effect": "0.8.4-main.c85a9c8dae",
49
- "@dxos/errors": "0.8.4-main.c85a9c8dae",
50
- "@dxos/functions": "0.8.4-main.c85a9c8dae",
51
- "@dxos/functions-runtime": "0.8.4-main.c85a9c8dae",
52
- "@dxos/invariant": "0.8.4-main.c85a9c8dae",
53
- "@dxos/keys": "0.8.4-main.c85a9c8dae",
54
- "@dxos/plugin-markdown": "0.8.4-main.c85a9c8dae",
55
- "@dxos/log": "0.8.4-main.c85a9c8dae",
56
- "@dxos/react-ui": "0.8.4-main.c85a9c8dae",
57
- "@dxos/react-ui-mosaic": "0.8.4-main.c85a9c8dae",
58
- "@dxos/react-ui-syntax-highlighter": "0.8.4-main.c85a9c8dae",
59
- "@dxos/schema": "0.8.4-main.c85a9c8dae",
60
- "@dxos/types": "0.8.4-main.c85a9c8dae",
61
- "@dxos/util": "0.8.4-main.c85a9c8dae"
36
+ "@dxos/assistant": "0.8.4-main.dfabb4ec29",
37
+ "@dxos/client-protocol": "0.8.4-main.dfabb4ec29",
38
+ "@dxos/compute": "0.8.4-main.dfabb4ec29",
39
+ "@dxos/ai": "0.8.4-main.dfabb4ec29",
40
+ "@dxos/echo": "0.8.4-main.dfabb4ec29",
41
+ "@dxos/echo-db": "0.8.4-main.dfabb4ec29",
42
+ "@dxos/effect": "0.8.4-main.dfabb4ec29",
43
+ "@dxos/echo-protocol": "0.8.4-main.dfabb4ec29",
44
+ "@dxos/errors": "0.8.4-main.dfabb4ec29",
45
+ "@dxos/functions-runtime": "0.8.4-main.dfabb4ec29",
46
+ "@dxos/invariant": "0.8.4-main.dfabb4ec29",
47
+ "@dxos/app-framework": "0.8.4-main.dfabb4ec29",
48
+ "@dxos/functions": "0.8.4-main.dfabb4ec29",
49
+ "@dxos/log": "0.8.4-main.dfabb4ec29",
50
+ "@dxos/keys": "0.8.4-main.dfabb4ec29",
51
+ "@dxos/react-ui-syntax-highlighter": "0.8.4-main.dfabb4ec29",
52
+ "@dxos/schema": "0.8.4-main.dfabb4ec29",
53
+ "@dxos/react-ui": "0.8.4-main.dfabb4ec29",
54
+ "@dxos/types": "0.8.4-main.dfabb4ec29",
55
+ "@dxos/util": "0.8.4-main.dfabb4ec29"
62
56
  },
63
57
  "devDependencies": {
64
- "effect": "3.19.16",
58
+ "effect": "3.20.0",
65
59
  "react": "~19.2.3",
66
60
  "react-dom": "~19.2.3",
67
- "@dxos/ui-theme": "0.8.4-main.c85a9c8dae"
61
+ "@dxos/client-protocol": "0.8.4-main.dfabb4ec29",
62
+ "@dxos/plugin-markdown": "0.8.4-main.dfabb4ec29",
63
+ "@dxos/ui-theme": "0.8.4-main.dfabb4ec29"
68
64
  },
69
65
  "peerDependencies": {
70
- "effect": "3.19.16",
66
+ "effect": "3.20.0",
71
67
  "react": "~19.2.3",
72
68
  "react-dom": "~19.2.3",
73
- "@dxos/ui-theme": "0.8.4-main.c85a9c8dae"
69
+ "@dxos/ui-theme": "0.8.4-main.dfabb4ec29"
74
70
  },
75
71
  "publishConfig": {
76
72
  "access": "public"
@@ -0,0 +1,105 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { Blueprint, Trigger, Operation } from '@dxos/compute';
6
+ import { Ref } from '@dxos/echo';
7
+ import { Text } from '@dxos/schema';
8
+ import { trim } from '@dxos/util';
9
+
10
+ const BLUEPRINT_KEY = 'dxos.org/blueprint/automation';
11
+
12
+ const instructions = trim`
13
+ Automation allows you to automatically initiate actions based on events.
14
+ Automations are configured by creating a trigger that references a function.
15
+ Whenever event that matches the trigger occurs, the function is invoked.
16
+
17
+ ## Configuration
18
+
19
+ Triggers are configured by the properties of the Trigger object.
20
+ - enabled: Must be true for trigger to run.
21
+ - spec: Events that the trigger matches.
22
+ - function: Ref to a ${Operation.PersistentOperation.typename} object that will be invoked. Query the functions present in the space first, and reference them in the trigger.
23
+ - input: The spec of the input data that will be passed to the function.
24
+
25
+ ## Input patterns
26
+
27
+ Input to the invoked function is defined by the input property of the Trigger object.
28
+ It's an object that supports constants or template strings.
29
+
30
+ Example:
31
+
32
+ {
33
+ item: '{{event.item}}',
34
+ instructions: 'Summarize and perform entity-extraction'
35
+ mailbox: { '/': 'dxn:echo:AAA:ZZZ' }
36
+ }
37
+
38
+ ## Trigger kinds
39
+
40
+ - Timer: Triggered by a cron schedule.
41
+ - Queue: Subscribes and processes items begginging to end.
42
+ Note: queues are the same as feeds. The queue DXN should be of form: dxn:queue:data:<space-id>:<queue-id>.
43
+ - Subscription: Subscribes and processes database items based on a query.
44
+
45
+ Avoid: email and webhook triggers.
46
+
47
+ ## Editing triggers
48
+
49
+ Triggers are represented as objects of type ${Trigger.Trigger.typename}.
50
+ You need access to the Database blueprint to manipulate triggers.
51
+ Read trigger schema before manipulating triggers.
52
+ Having a Trigger object in the database is enough to setup an automation.
53
+
54
+ ## Examples
55
+
56
+ Timer:
57
+
58
+ {
59
+ "function": { "/": "dxn:echo:AAA:ZZZ" },
60
+ "enabled": true,
61
+ "spec": {
62
+ "kind": "timer",
63
+ "cron": "*/5 * * * *"
64
+ }
65
+ }
66
+
67
+ Queue:
68
+
69
+ {
70
+ "function": { "/": "dxn:echo:AAA:ZZZ" },
71
+ "enabled": true,
72
+ "spec": {
73
+ "kind": "queue",
74
+ "queue": "dxn:queue:data:XXX:YYY"
75
+ }
76
+ }
77
+
78
+ Subscription:
79
+
80
+ {
81
+ "function": { "/": "dxn:echo:AAA:ZZZ" },
82
+ "enabled": true,
83
+ "spec": {
84
+ "kind": "subscription",
85
+ "query": { "ast": { "type": "select", "filter": { "type": "object", "typename": "dxn:type:org.dxos.type.person" } } }
86
+ }
87
+ }
88
+ `;
89
+
90
+ const make = () =>
91
+ Blueprint.make({
92
+ key: BLUEPRINT_KEY,
93
+ name: 'Triggers',
94
+ description: 'Trigger management and automation.',
95
+ instructions: {
96
+ source: Ref.make(Text.make({ content: instructions })),
97
+ },
98
+ });
99
+
100
+ const blueprint: Blueprint.Definition = {
101
+ key: BLUEPRINT_KEY,
102
+ make,
103
+ };
104
+
105
+ export default blueprint;
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ export { default as AutomationBlueprint } from './blueprint';
@@ -0,0 +1 @@
1
+ {"conversations":[{"parameters":{"model":"@anthropic/claude-opus-4-6","stream":true,"tools":[{"name":"query-blueprints","description":"Queries available blueprints.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"enable-blueprints","description":"Enables blueprints in the current conversation by their keys. Only blueprints with agentCanEnable=true can be enabled. Always call [query-blueprints] first to discover available blueprint keys.","inputSchema":{"type":"object","required":["keys"],"properties":{"keys":{"type":"array","items":{"type":"string"},"description":"The keys of the blueprints to enable.","examples":[["org.dxos.blueprint.memory","org.dxos.blueprint.database"]]}},"additionalProperties":false}},{"name":"refresh-blueprints","description":"Updates the blueprints saved to the database with the latest version from the registry. Sometimes blueprints in the database can become outdated. Use this function to pull in the latest versions.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"You can call blueprint manager tools. When asked to refresh or sync blueprints from the registry,\ncall the refresh blueprints tool once and then stop.\n\n## Blueprints Definitions\n\n<blueprint>\n You can query available blueprints and enable them in the current conversation.\n Use [query-blueprints] to refresh the list of available blueprints.\n Use [refresh-blueprints] to update blueprint objects stored in the database from the built-in registry when they have drifted.\n Use [enable-blueprints] to enable blueprints by their keys. Always call [query-blueprints] first.\n Only blueprints with agentCanEnable=true can be enabled by the agent.\n \n <available_blueprints>\n - org.dxos.blueprint.database \"Database\" -- Query and manipulate objects in the ECHO database. [agent-can-enable]\n - org.dxos.blueprint.discord \"Discord\" -- Discord integration.\n - org.dxos.blueprint.memory \"Memory\" -- Persistent memory storage and retrieval. [agent-can-enable]\n </available_blueprints>\n \n NOTE: You must enable the blueprint to use it, only then the tools from that blueprint will appear.\n</blueprint>","options":{}},{"role":"user","content":"Refresh blueprints from the registry so database copies match the built-in definitions.","options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01F1hTKvaRr7oqBJuPmYiwp7","modelId":"claude-opus-4-6","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"reasoning-start","id":"0","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"The","metadata":{}},{"type":"reasoning-delta","id":"0","delta":" user wants to refresh blueprints from the registry.","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"","metadata":{"anthropic":{"type":"thinking","signature":"EvIBClkIDRgCKkB80YOcko364VSaulfRzM8X76fyNXMnETkUUFoQcYpg3o7JCxnTb9ja4DC5rFEIzSicbmTYjXBq1JLzZZkSAcy9Mg9jbGF1ZGUtb3B1cy00LTY4ABIMPgirIyjFttZ9kEKSGgxThLWHTPUSS6roYs0iMETWNucMpdovP0USU5ydIBPXFtARY3p3dfCFFfn807ArBFxfFGUMTxBuMjKX7wwbkSpHJXH/zpbFDb9WtUkgRHbhUXRu8c5Y8STLJ/G0PZ4pAQggujiJOn4rueQH9VXQYrL2KjsPaMVtbsIq5sZmbsTB1KmH9nLnIrUYAQ=="}}},{"type":"reasoning-end","id":"0","metadata":{}},{"type":"text-start","id":"1","metadata":{}},{"type":"text-delta","id":"1","delta":"I'll refresh the blueprints now to sync the database copies","metadata":{}},{"type":"text-delta","id":"1","delta":" with the latest built-in registry definitions.","metadata":{}},{"type":"text-end","id":"1","metadata":{}},{"type":"tool-params-start","id":"toolu_01FWSMwqrVJKXhSnEuR2Y2Jb","name":"refresh-blueprints","providerExecuted":false,"metadata":{}},{"type":"tool-params-delta","id":"toolu_01FWSMwqrVJKXhSnEuR2Y2Jb","delta":"","metadata":{}},{"type":"tool-params-end","id":"toolu_01FWSMwqrVJKXhSnEuR2Y2Jb","metadata":{}},{"type":"finish","reason":"tool-calls","usage":{"inputTokens":1110,"outputTokens":89,"totalTokens":1199},"metadata":{"anthropic":{"usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":1110,"output_tokens":9,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-6","stream":true,"tools":[{"name":"query-blueprints","description":"Queries available blueprints.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"enable-blueprints","description":"Enables blueprints in the current conversation by their keys. Only blueprints with agentCanEnable=true can be enabled. Always call [query-blueprints] first to discover available blueprint keys.","inputSchema":{"type":"object","required":["keys"],"properties":{"keys":{"type":"array","items":{"type":"string"},"description":"The keys of the blueprints to enable.","examples":[["org.dxos.blueprint.memory","org.dxos.blueprint.database"]]}},"additionalProperties":false}},{"name":"refresh-blueprints","description":"Updates the blueprints saved to the database with the latest version from the registry. Sometimes blueprints in the database can become outdated. Use this function to pull in the latest versions.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"You can call blueprint manager tools. When asked to refresh or sync blueprints from the registry,\ncall the refresh blueprints tool once and then stop.\n\n## Blueprints Definitions\n\n<blueprint>\n You can query available blueprints and enable them in the current conversation.\n Use [query-blueprints] to refresh the list of available blueprints.\n Use [refresh-blueprints] to update blueprint objects stored in the database from the built-in registry when they have drifted.\n Use [enable-blueprints] to enable blueprints by their keys. Always call [query-blueprints] first.\n Only blueprints with agentCanEnable=true can be enabled by the agent.\n \n <available_blueprints>\n - org.dxos.blueprint.database \"Database\" -- Query and manipulate objects in the ECHO database. [agent-can-enable]\n - org.dxos.blueprint.discord \"Discord\" -- Discord integration.\n - org.dxos.blueprint.memory \"Memory\" -- Persistent memory storage and retrieval. [agent-can-enable]\n </available_blueprints>\n \n NOTE: You must enable the blueprint to use it, only then the tools from that blueprint will appear.\n</blueprint>","options":{}},{"role":"user","content":"Refresh blueprints from the registry so database copies match the built-in definitions.","options":{}},{"role":"assistant","content":[{"type":"reasoning","text":"The user wants to refresh blueprints from the registry.","options":{}},{"type":"text","text":"I'll refresh the blueprints now to sync the database copies with the latest built-in registry definitions.","options":{}},{"type":"tool-call","id":"toolu_01FWSMwqrVJKXhSnEuR2Y2Jb","name":"refresh-blueprints","params":{},"providerExecuted":false,"options":{}}],"options":{}},{"role":"tool","content":[{"type":"tool-result","id":"toolu_01FWSMwqrVJKXhSnEuR2Y2Jb","name":"refresh-blueprints","isFailure":false,"result":{},"providerExecuted":false,"options":{}}],"options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01WCx3BGYXkH1XeqwfW467eb","modelId":"claude-opus-4-6","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"The","metadata":{}},{"type":"text-delta","id":"0","delta":" blueprints have been refreshed. The database copies should now match the latest built-in registry definitions.","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":1183,"outputTokens":26,"totalTokens":1209},"metadata":{"anthropic":{"usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":1183,"output_tokens":1,"server_tool_use":null,"service_tier":"standard"}}}}]}]}
@@ -0,0 +1,198 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { describe, expect, it } from '@effect/vitest';
6
+ import * as Effect from 'effect/Effect';
7
+ import * as Layer from 'effect/Layer';
8
+
9
+ import { MemoizedAiService } from '@dxos/ai/testing';
10
+ import { AiContextService, AiSessionService } from '@dxos/assistant';
11
+ import { Blueprint, Operation } from '@dxos/compute';
12
+ import { Database, DXN, Obj, Ref } from '@dxos/echo';
13
+ import { TestHelpers } from '@dxos/effect/testing';
14
+ import { AssistantTestLayer } from '@dxos/functions-runtime/testing';
15
+ import { ObjectId } from '@dxos/keys';
16
+ import { trim } from '@dxos/util';
17
+
18
+ import { DatabaseBlueprint, DiscordBlueprint, MemoryBlueprint } from '../index';
19
+ import BlueprintManagerDefinition from './blueprint';
20
+ import { BlueprintManagerHandlers, EnableBlueprints, QueryBlueprints } from './functions';
21
+
22
+ ObjectId.dangerouslyDisableRandomness();
23
+
24
+ const TestLayer = AssistantTestLayer({
25
+ aiServicePreset: 'edge-remote',
26
+ operationHandlers: BlueprintManagerHandlers,
27
+ types: [Blueprint.Blueprint],
28
+ blueprints: [DatabaseBlueprint.make(), MemoryBlueprint.make(), DiscordBlueprint.make()],
29
+ tracing: 'pretty',
30
+ });
31
+
32
+ const provideTestLayers = Effect.provide(AiSessionService.layerNewFeed().pipe(Layer.provideMerge(TestLayer)));
33
+
34
+ /**
35
+ * Gets the conversation DXN for passing to Operation.invoke options.
36
+ */
37
+ const getConversationDxn = Effect.gen(function* () {
38
+ const session = yield* AiSessionService;
39
+ return Obj.getDXN(session.feed).toString() as DXN.String;
40
+ });
41
+
42
+ describe('Blueprint Manager', () => {
43
+ it.effect(
44
+ 'query-blueprints: returns all registered blueprints',
45
+ Effect.fnUntraced(
46
+ function* (_) {
47
+ const conversation = yield* getConversationDxn;
48
+ const result = yield* Operation.invoke(QueryBlueprints, {}, { conversation });
49
+ expect(result).toHaveLength(3);
50
+ const keys = result.map((blueprint: Blueprint.Blueprint) => blueprint.key);
51
+ expect(keys).toContain('org.dxos.blueprint.database');
52
+ expect(keys).toContain('org.dxos.blueprint.memory');
53
+ expect(keys).toContain('org.dxos.blueprint.discord');
54
+ },
55
+ provideTestLayers,
56
+ TestHelpers.provideTestContext,
57
+ ),
58
+ { timeout: 30_000 },
59
+ );
60
+
61
+ it.effect(
62
+ 'enable-blueprints: enables blueprints with agentCanEnable=true',
63
+ Effect.fnUntraced(
64
+ function* (_) {
65
+ const conversation = yield* getConversationDxn;
66
+ const { enabled, rejected } = yield* Operation.invoke(
67
+ EnableBlueprints,
68
+ { keys: ['org.dxos.blueprint.database'] },
69
+ { conversation },
70
+ );
71
+ expect(enabled).toHaveLength(1);
72
+ expect(enabled[0].key).toBe('org.dxos.blueprint.database');
73
+ expect(rejected).toHaveLength(0);
74
+
75
+ const { binder } = yield* AiContextService;
76
+ const bound = binder.getBlueprints();
77
+ expect(bound.some((bp: Blueprint.Blueprint) => bp.key === 'org.dxos.blueprint.database')).toBe(true);
78
+ },
79
+ provideTestLayers,
80
+ TestHelpers.provideTestContext,
81
+ ),
82
+ { timeout: 30_000 },
83
+ );
84
+
85
+ it.effect(
86
+ 'enable-blueprints: rejects blueprints without agentCanEnable',
87
+ Effect.fnUntraced(
88
+ function* (_) {
89
+ const conversation = yield* getConversationDxn;
90
+ const { enabled, rejected } = yield* Operation.invoke(
91
+ EnableBlueprints,
92
+ { keys: ['org.dxos.blueprint.discord'] },
93
+ { conversation },
94
+ );
95
+ expect(enabled).toHaveLength(0);
96
+ expect(rejected).toHaveLength(1);
97
+ expect(rejected[0].key).toBe('org.dxos.blueprint.discord');
98
+
99
+ const { binder } = yield* AiContextService;
100
+ const bound = binder.getBlueprints();
101
+ expect(bound.some((bp: Blueprint.Blueprint) => bp.key === 'org.dxos.blueprint.discord')).toBe(false);
102
+ },
103
+ provideTestLayers,
104
+ TestHelpers.provideTestContext,
105
+ ),
106
+ { timeout: 30_000 },
107
+ );
108
+
109
+ it.effect(
110
+ 'enable-blueprints: mixed keys enables only allowed ones',
111
+ Effect.fnUntraced(
112
+ function* (_) {
113
+ const conversation = yield* getConversationDxn;
114
+ const { enabled, rejected } = yield* Operation.invoke(
115
+ EnableBlueprints,
116
+ {
117
+ keys: ['org.dxos.blueprint.database', 'org.dxos.blueprint.memory', 'org.dxos.blueprint.discord'],
118
+ },
119
+ { conversation },
120
+ );
121
+ expect(enabled).toHaveLength(2);
122
+ const enabledKeys = enabled.map((bp: Blueprint.Blueprint) => bp.key);
123
+ expect(enabledKeys).toContain('org.dxos.blueprint.database');
124
+ expect(enabledKeys).toContain('org.dxos.blueprint.memory');
125
+ expect(rejected).toHaveLength(1);
126
+ expect(rejected[0].key).toBe('org.dxos.blueprint.discord');
127
+ },
128
+ provideTestLayers,
129
+ TestHelpers.provideTestContext,
130
+ ),
131
+ { timeout: 30_000 },
132
+ );
133
+
134
+ it.effect(
135
+ 'enable-blueprints: unknown keys are rejected with reason',
136
+ Effect.fnUntraced(
137
+ function* (_) {
138
+ const conversation = yield* getConversationDxn;
139
+ const { enabled, rejected } = yield* Operation.invoke(
140
+ EnableBlueprints,
141
+ { keys: ['org.dxos.blueprint.nonexistent'] },
142
+ { conversation },
143
+ );
144
+ expect(enabled).toHaveLength(0);
145
+ expect(rejected).toHaveLength(1);
146
+ expect(rejected[0].key).toBe('org.dxos.blueprint.nonexistent');
147
+ expect(rejected[0].reason).toContain('not found');
148
+ },
149
+ provideTestLayers,
150
+ TestHelpers.provideTestContext,
151
+ ),
152
+ { timeout: 30_000 },
153
+ );
154
+
155
+ it.scoped(
156
+ 'refresh-blueprints: agent syncs a mutated database blueprint from the registry',
157
+ Effect.fnUntraced(
158
+ function* (_) {
159
+ const registry = yield* Blueprint.RegistryService;
160
+ const canonical = registry.getByKey('org.dxos.blueprint.database');
161
+ expect(canonical).toBeDefined();
162
+
163
+ const stored = yield* Blueprint.upsert('org.dxos.blueprint.database');
164
+ const originalName = stored.name;
165
+ Obj.update(stored, (stored) => {
166
+ stored.name = '___TEST_MUTATED_BLUEPRINT_NAME___';
167
+ });
168
+ yield* Database.flush();
169
+ expect(stored.name).toBe('___TEST_MUTATED_BLUEPRINT_NAME___');
170
+
171
+ const session = yield* AiSessionService;
172
+ yield* Effect.promise(() => session.context.open());
173
+ yield* Effect.promise(() =>
174
+ session.context.bind({
175
+ blueprints: [Ref.make(BlueprintManagerDefinition.make())],
176
+ }),
177
+ );
178
+
179
+ yield* session
180
+ .createRequest({
181
+ system: trim`
182
+ You can call blueprint manager tools. When asked to refresh or sync blueprints from the registry,
183
+ call the refresh blueprints tool once and then stop.
184
+ `,
185
+ prompt: trim`
186
+ Refresh blueprints from the registry so database copies match the built-in definitions.
187
+ `,
188
+ })
189
+ .pipe(Effect.provide(session.makeToolExecutionServices()));
190
+
191
+ expect(stored.name).toBe(originalName);
192
+ },
193
+ provideTestLayers,
194
+ TestHelpers.provideTestContext,
195
+ ),
196
+ MemoizedAiService.isGenerationEnabled() ? 240_000 : 60_000,
197
+ );
198
+ });
@@ -0,0 +1,49 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { Blueprint, Template } from '@dxos/compute';
6
+ import { trim } from '@dxos/util';
7
+
8
+ import { EnableBlueprints, QueryBlueprints, UpdateBlueprints } from './functions';
9
+
10
+ const BLUEPRINT_KEY = 'org.dxos.blueprint.blueprint-manager';
11
+
12
+ const make = () =>
13
+ Blueprint.make({
14
+ key: BLUEPRINT_KEY,
15
+ name: 'Blueprint Manager',
16
+ description: 'Query and enable blueprints in the current conversation.',
17
+ instructions: Template.make({
18
+ source: trim`
19
+ You can query available blueprints and enable them in the current conversation.
20
+ Use [query-blueprints] to refresh the list of available blueprints.
21
+ Use [refresh-blueprints] to update blueprint objects stored in the database from the built-in registry when they have drifted.
22
+ Use [enable-blueprints] to enable blueprints by their keys. Always call [query-blueprints] first.
23
+ Only blueprints with agentCanEnable=true can be enabled by the agent.
24
+
25
+ <available_blueprints>
26
+ {{#each blueprints}}
27
+ - {{key}} "{{name}}"{{#if description}} -- {{description}}{{/if}}{{#if agentCanEnable}} [agent-can-enable]{{/if}}
28
+ {{/each}}
29
+ </available_blueprints>
30
+
31
+ NOTE: You must enable the blueprint to use it, only then the tools from that blueprint will appear.
32
+ `,
33
+ inputs: [
34
+ {
35
+ name: 'blueprints',
36
+ kind: 'operation',
37
+ operation: QueryBlueprints.meta.key,
38
+ },
39
+ ],
40
+ }),
41
+ tools: Blueprint.toolDefinitions({ operations: [QueryBlueprints, EnableBlueprints, UpdateBlueprints] }),
42
+ });
43
+
44
+ const blueprint: Blueprint.Definition = {
45
+ key: BLUEPRINT_KEY,
46
+ make,
47
+ };
48
+
49
+ export default blueprint;
@@ -0,0 +1,57 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { AiContextService } from '@dxos/assistant';
8
+ import { Blueprint, Operation } from '@dxos/compute';
9
+ import { Database } from '@dxos/echo';
10
+
11
+ export const QueryBlueprints = Operation.make({
12
+ meta: {
13
+ key: 'org.dxos.function.blueprint-manager.query-blueprints',
14
+ name: 'Query blueprints',
15
+ description: 'Queries available blueprints.',
16
+ },
17
+ input: Schema.Struct({}),
18
+ output: Schema.Array(Blueprint.Blueprint),
19
+ services: [Blueprint.RegistryService],
20
+ });
21
+
22
+ export const EnableBlueprints = Operation.make({
23
+ meta: {
24
+ key: 'org.dxos.function.blueprint-manager.enable-blueprints',
25
+ name: 'Enable blueprints',
26
+ description:
27
+ 'Enables blueprints in the current conversation by their keys. Only blueprints with agentCanEnable=true can be enabled. Always call [query-blueprints] first to discover available blueprint keys.',
28
+ },
29
+ input: Schema.Struct({
30
+ keys: Schema.Array(Schema.String).annotations({
31
+ description: 'The keys of the blueprints to enable.',
32
+ examples: [['org.dxos.blueprint.memory', 'org.dxos.blueprint.database']],
33
+ }),
34
+ }),
35
+ output: Schema.Struct({
36
+ enabled: Schema.Array(Blueprint.Blueprint),
37
+ rejected: Schema.Array(
38
+ Schema.Struct({
39
+ key: Schema.String,
40
+ reason: Schema.String,
41
+ }),
42
+ ),
43
+ }),
44
+ services: [Blueprint.RegistryService, Database.Service, AiContextService],
45
+ });
46
+
47
+ export const UpdateBlueprints = Operation.make({
48
+ meta: {
49
+ key: 'org.dxos.function.blueprint-manager.refresh-blueprints',
50
+ name: 'Refresh blueprints',
51
+ description:
52
+ 'Updates the blueprints saved to the database with the latest version from the registry. Sometimes blueprints in the database can become outdated. Use this function to pull in the latest versions.',
53
+ },
54
+ input: Schema.Struct({}),
55
+ output: Schema.Void,
56
+ services: [Blueprint.RegistryService, Database.Service],
57
+ });
@@ -0,0 +1,43 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { AiContextService } from '@dxos/assistant';
8
+ import { Blueprint, Operation } from '@dxos/compute';
9
+ import { Ref } from '@dxos/echo';
10
+
11
+ import { EnableBlueprints } from './definitions';
12
+
13
+ export default EnableBlueprints.pipe(
14
+ Operation.withHandler(
15
+ Effect.fnUntraced(function* ({ keys }) {
16
+ const registry = yield* Blueprint.RegistryService;
17
+ const enabled: Blueprint.Blueprint[] = [];
18
+ const rejected: { key: string; reason: string }[] = [];
19
+
20
+ for (const key of keys) {
21
+ const blueprint = registry.getByKey(key);
22
+ if (!blueprint) {
23
+ rejected.push({ key, reason: 'Blueprint not found in registry.' });
24
+ continue;
25
+ }
26
+ if (!blueprint.agentCanEnable) {
27
+ rejected.push({ key, reason: 'Blueprint does not allow agent auto-enable (agentCanEnable is not set).' });
28
+ continue;
29
+ }
30
+ const dbBlueprint = yield* Blueprint.upsert(key).pipe(Effect.orDie);
31
+ enabled.push(dbBlueprint);
32
+ }
33
+
34
+ if (enabled.length > 0) {
35
+ yield* AiContextService.bindContext({
36
+ blueprints: enabled.map(Ref.make),
37
+ });
38
+ }
39
+
40
+ return { enabled, rejected };
41
+ }),
42
+ ),
43
+ );
@@ -0,0 +1,13 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { OperationHandlerSet } from '@dxos/compute';
6
+
7
+ export * from './definitions';
8
+
9
+ export const BlueprintManagerHandlers = OperationHandlerSet.lazy(
10
+ () => import('./query-blueprints'),
11
+ () => import('./enable-blueprints'),
12
+ () => import('./update-blueprints'),
13
+ );
@@ -0,0 +1,18 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Blueprint, Operation } from '@dxos/compute';
8
+
9
+ import { QueryBlueprints } from './definitions';
10
+
11
+ export default QueryBlueprints.pipe(
12
+ Operation.withHandler(
13
+ Effect.fnUntraced(function* () {
14
+ const registry = yield* Blueprint.RegistryService;
15
+ return registry.query();
16
+ }),
17
+ ),
18
+ );
@@ -0,0 +1,18 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Blueprint, Operation } from '@dxos/compute';
8
+
9
+ import { UpdateBlueprints } from './definitions';
10
+
11
+ export default UpdateBlueprints.pipe(
12
+ Operation.withHandler(
13
+ Effect.fnUntraced(function* () {
14
+ const registry = yield* Blueprint.RegistryService;
15
+ yield* registry.updateBlueprints();
16
+ }),
17
+ ),
18
+ );
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ export { default as BlueprintManagerBlueprint } from './blueprint';
6
+ export { QueryBlueprints, EnableBlueprints, BlueprintManagerHandlers } from './functions';