@dxos/assistant-toolkit 0.8.4-main.03d5cd7b56

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 (438) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +3 -0
  3. package/dist/lib/neutral/add-artifact-ZUJ5DMSY.mjs +30 -0
  4. package/dist/lib/neutral/add-artifact-ZUJ5DMSY.mjs.map +7 -0
  5. package/dist/lib/neutral/agent-5NIKAYUK.mjs +65 -0
  6. package/dist/lib/neutral/agent-5NIKAYUK.mjs.map +7 -0
  7. package/dist/lib/neutral/chunk-246ACKSH.mjs +100 -0
  8. package/dist/lib/neutral/chunk-246ACKSH.mjs.map +7 -0
  9. package/dist/lib/neutral/chunk-EJAQUAKM.mjs +73 -0
  10. package/dist/lib/neutral/chunk-EJAQUAKM.mjs.map +7 -0
  11. package/dist/lib/neutral/chunk-FIGO6CA6.mjs +140 -0
  12. package/dist/lib/neutral/chunk-FIGO6CA6.mjs.map +7 -0
  13. package/dist/lib/neutral/chunk-GV66MKAQ.mjs +60 -0
  14. package/dist/lib/neutral/chunk-GV66MKAQ.mjs.map +7 -0
  15. package/dist/lib/neutral/chunk-IKBIORQX.mjs +332 -0
  16. package/dist/lib/neutral/chunk-IKBIORQX.mjs.map +7 -0
  17. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  18. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  19. package/dist/lib/neutral/chunk-KGU725LW.mjs +29 -0
  20. package/dist/lib/neutral/chunk-KGU725LW.mjs.map +7 -0
  21. package/dist/lib/neutral/chunk-NR3GTWRC.mjs +53 -0
  22. package/dist/lib/neutral/chunk-NR3GTWRC.mjs.map +7 -0
  23. package/dist/lib/neutral/chunk-P4ZMYO4K.mjs +294 -0
  24. package/dist/lib/neutral/chunk-P4ZMYO4K.mjs.map +7 -0
  25. package/dist/lib/neutral/chunk-QO5SU37C.mjs +70 -0
  26. package/dist/lib/neutral/chunk-QO5SU37C.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-ROMZO4CB.mjs +108 -0
  28. package/dist/lib/neutral/chunk-ROMZO4CB.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-TO5IX24K.mjs +67 -0
  30. package/dist/lib/neutral/chunk-TO5IX24K.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-WLR3BGO4.mjs +25 -0
  32. package/dist/lib/neutral/chunk-WLR3BGO4.mjs.map +7 -0
  33. package/dist/lib/neutral/chunk-XUF53B6B.mjs +75 -0
  34. package/dist/lib/neutral/chunk-XUF53B6B.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-ZFXLTBZG.mjs +73 -0
  36. package/dist/lib/neutral/chunk-ZFXLTBZG.mjs.map +7 -0
  37. package/dist/lib/neutral/context-add-VB7AOY3G.mjs +22 -0
  38. package/dist/lib/neutral/context-add-VB7AOY3G.mjs.map +7 -0
  39. package/dist/lib/neutral/context-remove-VCM3VPSO.mjs +22 -0
  40. package/dist/lib/neutral/context-remove-VCM3VPSO.mjs.map +7 -0
  41. package/dist/lib/neutral/create-project-EIF4OJMY.mjs +35 -0
  42. package/dist/lib/neutral/create-project-EIF4OJMY.mjs.map +7 -0
  43. package/dist/lib/neutral/delete-J3PMWP7Z.mjs +19 -0
  44. package/dist/lib/neutral/delete-J3PMWP7Z.mjs.map +7 -0
  45. package/dist/lib/neutral/enable-blueprints-LBDZH2CY.mjs +47 -0
  46. package/dist/lib/neutral/enable-blueprints-LBDZH2CY.mjs.map +7 -0
  47. package/dist/lib/neutral/fetch-KHMHV7JR.mjs +16 -0
  48. package/dist/lib/neutral/fetch-KHMHV7JR.mjs.map +7 -0
  49. package/dist/lib/neutral/fetch-messages-QOBBCTGC.mjs +139 -0
  50. package/dist/lib/neutral/fetch-messages-QOBBCTGC.mjs.map +7 -0
  51. package/dist/lib/neutral/get-context-TN7X7U2H.mjs +35 -0
  52. package/dist/lib/neutral/get-context-TN7X7U2H.mjs.map +7 -0
  53. package/dist/lib/neutral/index.mjs +916 -0
  54. package/dist/lib/neutral/index.mjs.map +7 -0
  55. package/dist/lib/neutral/load-ALP3TK2E.mjs +17 -0
  56. package/dist/lib/neutral/load-ALP3TK2E.mjs.map +7 -0
  57. package/dist/lib/neutral/meta.json +1 -0
  58. package/dist/lib/neutral/object-create-Z57Y3X6Y.mjs +35 -0
  59. package/dist/lib/neutral/object-create-Z57Y3X6Y.mjs.map +7 -0
  60. package/dist/lib/neutral/object-delete-X53LS37B.mjs +18 -0
  61. package/dist/lib/neutral/object-delete-X53LS37B.mjs.map +7 -0
  62. package/dist/lib/neutral/object-update-GVKSBR7T.mjs +28 -0
  63. package/dist/lib/neutral/object-update-GVKSBR7T.mjs.map +7 -0
  64. package/dist/lib/neutral/project-HPHTZ2CI.mjs +23 -0
  65. package/dist/lib/neutral/project-HPHTZ2CI.mjs.map +7 -0
  66. package/dist/lib/neutral/project-rules-IVDHKSKI.mjs +78 -0
  67. package/dist/lib/neutral/project-rules-IVDHKSKI.mjs.map +7 -0
  68. package/dist/lib/neutral/prompt-Y7NN7M5D.mjs +170 -0
  69. package/dist/lib/neutral/prompt-Y7NN7M5D.mjs.map +7 -0
  70. package/dist/lib/neutral/qualifier-VDOY5CWU.mjs +88 -0
  71. package/dist/lib/neutral/qualifier-VDOY5CWU.mjs.map +7 -0
  72. package/dist/lib/neutral/query-PPJU5622.mjs +70 -0
  73. package/dist/lib/neutral/query-PPJU5622.mjs.map +7 -0
  74. package/dist/lib/neutral/query-U56GNEV6.mjs +32 -0
  75. package/dist/lib/neutral/query-U56GNEV6.mjs.map +7 -0
  76. package/dist/lib/neutral/query-blueprints-KXADGHSA.mjs +16 -0
  77. package/dist/lib/neutral/query-blueprints-KXADGHSA.mjs.map +7 -0
  78. package/dist/lib/neutral/relation-create-XJ2IX6X3.mjs +34 -0
  79. package/dist/lib/neutral/relation-create-XJ2IX6X3.mjs.map +7 -0
  80. package/dist/lib/neutral/relation-delete-EP4KXAFL.mjs +18 -0
  81. package/dist/lib/neutral/relation-delete-EP4KXAFL.mjs.map +7 -0
  82. package/dist/lib/neutral/save-GWAPLT3Z.mjs +23 -0
  83. package/dist/lib/neutral/save-GWAPLT3Z.mjs.map +7 -0
  84. package/dist/lib/neutral/schema-add-Z5CY6P24.mjs +24 -0
  85. package/dist/lib/neutral/schema-add-Z5CY6P24.mjs.map +7 -0
  86. package/dist/lib/neutral/schema-list-W326VPVX.mjs +38 -0
  87. package/dist/lib/neutral/schema-list-W326VPVX.mjs.map +7 -0
  88. package/dist/lib/neutral/sync-issues-4YE5XAK5.mjs +167 -0
  89. package/dist/lib/neutral/sync-issues-4YE5XAK5.mjs.map +7 -0
  90. package/dist/lib/neutral/sync-triggers-CDMJVW6E.mjs +136 -0
  91. package/dist/lib/neutral/sync-triggers-CDMJVW6E.mjs.map +7 -0
  92. package/dist/lib/neutral/tag-add-VNIIOVJA.mjs +19 -0
  93. package/dist/lib/neutral/tag-add-VNIIOVJA.mjs.map +7 -0
  94. package/dist/lib/neutral/tag-remove-6R2R27W3.mjs +19 -0
  95. package/dist/lib/neutral/tag-remove-6R2R27W3.mjs.map +7 -0
  96. package/dist/lib/neutral/testing/index.mjs +76 -0
  97. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  98. package/dist/lib/neutral/update-blueprints-N2AK2VUR.mjs +16 -0
  99. package/dist/lib/neutral/update-blueprints-N2AK2VUR.mjs.map +7 -0
  100. package/dist/lib/neutral/update-tasks-H7SWIFQL.mjs +46 -0
  101. package/dist/lib/neutral/update-tasks-H7SWIFQL.mjs.map +7 -0
  102. package/dist/types/src/blueprints/automation/blueprint.d.ts +4 -0
  103. package/dist/types/src/blueprints/automation/blueprint.d.ts.map +1 -0
  104. package/dist/types/src/blueprints/automation/index.d.ts +2 -0
  105. package/dist/types/src/blueprints/automation/index.d.ts.map +1 -0
  106. package/dist/types/src/blueprints/blueprint-manager/blueprint.d.ts +4 -0
  107. package/dist/types/src/blueprints/blueprint-manager/blueprint.d.ts.map +1 -0
  108. package/dist/types/src/blueprints/blueprint-manager/blueprint.test.d.ts +2 -0
  109. package/dist/types/src/blueprints/blueprint-manager/blueprint.test.d.ts.map +1 -0
  110. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts +63 -0
  111. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts.map +1 -0
  112. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts +37 -0
  113. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts.map +1 -0
  114. package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts +4 -0
  115. package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts.map +1 -0
  116. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts +28 -0
  117. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts.map +1 -0
  118. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts +4 -0
  119. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts.map +1 -0
  120. package/dist/types/src/blueprints/blueprint-manager/index.d.ts +3 -0
  121. package/dist/types/src/blueprints/blueprint-manager/index.d.ts.map +1 -0
  122. package/dist/types/src/blueprints/browser/blueprint.d.ts +4 -0
  123. package/dist/types/src/blueprints/browser/blueprint.d.ts.map +1 -0
  124. package/dist/types/src/blueprints/browser/blueprint.test.d.ts +2 -0
  125. package/dist/types/src/blueprints/browser/blueprint.test.d.ts.map +1 -0
  126. package/dist/types/src/blueprints/browser/index.d.ts +2 -0
  127. package/dist/types/src/blueprints/browser/index.d.ts.map +1 -0
  128. package/dist/types/src/blueprints/database/blueprint.d.ts +4 -0
  129. package/dist/types/src/blueprints/database/blueprint.d.ts.map +1 -0
  130. package/dist/types/src/blueprints/database/blueprint.test.d.ts +2 -0
  131. package/dist/types/src/blueprints/database/blueprint.test.d.ts.map +1 -0
  132. package/dist/types/src/blueprints/database/functions/context-add.d.ts +7 -0
  133. package/dist/types/src/blueprints/database/functions/context-add.d.ts.map +1 -0
  134. package/dist/types/src/blueprints/database/functions/context-remove.d.ts +7 -0
  135. package/dist/types/src/blueprints/database/functions/context-remove.d.ts.map +1 -0
  136. package/dist/types/src/blueprints/database/functions/definitions.d.ts +59 -0
  137. package/dist/types/src/blueprints/database/functions/definitions.d.ts.map +1 -0
  138. package/dist/types/src/blueprints/database/functions/index.d.ts +4 -0
  139. package/dist/types/src/blueprints/database/functions/index.d.ts.map +1 -0
  140. package/dist/types/src/blueprints/database/functions/load.d.ts +7 -0
  141. package/dist/types/src/blueprints/database/functions/load.d.ts.map +1 -0
  142. package/dist/types/src/blueprints/database/functions/object-create.d.ts +8 -0
  143. package/dist/types/src/blueprints/database/functions/object-create.d.ts.map +1 -0
  144. package/dist/types/src/blueprints/database/functions/object-delete.d.ts +7 -0
  145. package/dist/types/src/blueprints/database/functions/object-delete.d.ts.map +1 -0
  146. package/dist/types/src/blueprints/database/functions/object-update.d.ts +10 -0
  147. package/dist/types/src/blueprints/database/functions/object-update.d.ts.map +1 -0
  148. package/dist/types/src/blueprints/database/functions/query.d.ts +13 -0
  149. package/dist/types/src/blueprints/database/functions/query.d.ts.map +1 -0
  150. package/dist/types/src/blueprints/database/functions/relation-create.d.ts +10 -0
  151. package/dist/types/src/blueprints/database/functions/relation-create.d.ts.map +1 -0
  152. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts +7 -0
  153. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts.map +1 -0
  154. package/dist/types/src/blueprints/database/functions/schema-add.d.ts +9 -0
  155. package/dist/types/src/blueprints/database/functions/schema-add.d.ts.map +1 -0
  156. package/dist/types/src/blueprints/database/functions/schema-list.d.ts +7 -0
  157. package/dist/types/src/blueprints/database/functions/schema-list.d.ts.map +1 -0
  158. package/dist/types/src/blueprints/database/functions/tag-add.d.ts +8 -0
  159. package/dist/types/src/blueprints/database/functions/tag-add.d.ts.map +1 -0
  160. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts +8 -0
  161. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts.map +1 -0
  162. package/dist/types/src/blueprints/database/index.d.ts +3 -0
  163. package/dist/types/src/blueprints/database/index.d.ts.map +1 -0
  164. package/dist/types/src/blueprints/discord/blueprint.d.ts +4 -0
  165. package/dist/types/src/blueprints/discord/blueprint.d.ts.map +1 -0
  166. package/dist/types/src/blueprints/discord/functions/definitions.d.ts +15 -0
  167. package/dist/types/src/blueprints/discord/functions/definitions.d.ts.map +1 -0
  168. package/dist/types/src/blueprints/discord/functions/fetch-messages.d.ts +12 -0
  169. package/dist/types/src/blueprints/discord/functions/fetch-messages.d.ts.map +1 -0
  170. package/dist/types/src/blueprints/discord/functions/fetch-messages.test.d.ts +2 -0
  171. package/dist/types/src/blueprints/discord/functions/fetch-messages.test.d.ts.map +1 -0
  172. package/dist/types/src/blueprints/discord/functions/index.d.ts +4 -0
  173. package/dist/types/src/blueprints/discord/functions/index.d.ts.map +1 -0
  174. package/dist/types/src/blueprints/discord/index.d.ts +3 -0
  175. package/dist/types/src/blueprints/discord/index.d.ts.map +1 -0
  176. package/dist/types/src/blueprints/github/functions/definitions.d.ts +7 -0
  177. package/dist/types/src/blueprints/github/functions/definitions.d.ts.map +1 -0
  178. package/dist/types/src/blueprints/github/functions/fetch-prs.d.ts +8 -0
  179. package/dist/types/src/blueprints/github/functions/fetch-prs.d.ts.map +1 -0
  180. package/dist/types/src/blueprints/github/functions/index.d.ts +4 -0
  181. package/dist/types/src/blueprints/github/functions/index.d.ts.map +1 -0
  182. package/dist/types/src/blueprints/github/index.d.ts +2 -0
  183. package/dist/types/src/blueprints/github/index.d.ts.map +1 -0
  184. package/dist/types/src/blueprints/index.d.ts +12 -0
  185. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  186. package/dist/types/src/blueprints/linear/blueprint.d.ts +4 -0
  187. package/dist/types/src/blueprints/linear/blueprint.d.ts.map +1 -0
  188. package/dist/types/src/blueprints/linear/functions/definitions.d.ts +6 -0
  189. package/dist/types/src/blueprints/linear/functions/definitions.d.ts.map +1 -0
  190. package/dist/types/src/blueprints/linear/functions/index.d.ts +4 -0
  191. package/dist/types/src/blueprints/linear/functions/index.d.ts.map +1 -0
  192. package/dist/types/src/blueprints/linear/functions/linear.test.d.ts +2 -0
  193. package/dist/types/src/blueprints/linear/functions/linear.test.d.ts.map +1 -0
  194. package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts +10 -0
  195. package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts.map +1 -0
  196. package/dist/types/src/blueprints/linear/index.d.ts +3 -0
  197. package/dist/types/src/blueprints/linear/index.d.ts.map +1 -0
  198. package/dist/types/src/blueprints/memory/blueprint.d.ts +4 -0
  199. package/dist/types/src/blueprints/memory/blueprint.d.ts.map +1 -0
  200. package/dist/types/src/blueprints/memory/blueprint.test.d.ts +2 -0
  201. package/dist/types/src/blueprints/memory/blueprint.test.d.ts.map +1 -0
  202. package/dist/types/src/blueprints/memory/functions/definitions.d.ts +17 -0
  203. package/dist/types/src/blueprints/memory/functions/definitions.d.ts.map +1 -0
  204. package/dist/types/src/blueprints/memory/functions/delete.d.ts +10 -0
  205. package/dist/types/src/blueprints/memory/functions/delete.d.ts.map +1 -0
  206. package/dist/types/src/blueprints/memory/functions/index.d.ts +4 -0
  207. package/dist/types/src/blueprints/memory/functions/index.d.ts.map +1 -0
  208. package/dist/types/src/blueprints/memory/functions/query.d.ts +8 -0
  209. package/dist/types/src/blueprints/memory/functions/query.d.ts.map +1 -0
  210. package/dist/types/src/blueprints/memory/functions/save.d.ts +8 -0
  211. package/dist/types/src/blueprints/memory/functions/save.d.ts.map +1 -0
  212. package/dist/types/src/blueprints/memory/index.d.ts +3 -0
  213. package/dist/types/src/blueprints/memory/index.d.ts.map +1 -0
  214. package/dist/types/src/blueprints/planning/blueprint.d.ts +4 -0
  215. package/dist/types/src/blueprints/planning/blueprint.d.ts.map +1 -0
  216. package/dist/types/src/blueprints/planning/functions/definitions.d.ts +11 -0
  217. package/dist/types/src/blueprints/planning/functions/definitions.d.ts.map +1 -0
  218. package/dist/types/src/blueprints/planning/functions/index.d.ts +4 -0
  219. package/dist/types/src/blueprints/planning/functions/index.d.ts.map +1 -0
  220. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts +11 -0
  221. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts.map +1 -0
  222. package/dist/types/src/blueprints/planning/index.d.ts +3 -0
  223. package/dist/types/src/blueprints/planning/index.d.ts.map +1 -0
  224. package/dist/types/src/blueprints/project/blueprint.d.ts +4 -0
  225. package/dist/types/src/blueprints/project/blueprint.d.ts.map +1 -0
  226. package/dist/types/src/blueprints/project/blueprint.test.d.ts +2 -0
  227. package/dist/types/src/blueprints/project/blueprint.test.d.ts.map +1 -0
  228. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts +8 -0
  229. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts.map +1 -0
  230. package/dist/types/src/blueprints/project/functions/agent.d.ts +4 -0
  231. package/dist/types/src/blueprints/project/functions/agent.d.ts.map +1 -0
  232. package/dist/types/src/blueprints/project/functions/definitions.d.ts +158 -0
  233. package/dist/types/src/blueprints/project/functions/definitions.d.ts.map +1 -0
  234. package/dist/types/src/blueprints/project/functions/get-context.d.ts +15 -0
  235. package/dist/types/src/blueprints/project/functions/get-context.d.ts.map +1 -0
  236. package/dist/types/src/blueprints/project/functions/index.d.ts +4 -0
  237. package/dist/types/src/blueprints/project/functions/index.d.ts.map +1 -0
  238. package/dist/types/src/blueprints/project/functions/qualifier.d.ts +73 -0
  239. package/dist/types/src/blueprints/project/functions/qualifier.d.ts.map +1 -0
  240. package/dist/types/src/blueprints/project/index.d.ts +3 -0
  241. package/dist/types/src/blueprints/project/index.d.ts.map +1 -0
  242. package/dist/types/src/blueprints/project-wizard/blueprint.d.ts +4 -0
  243. package/dist/types/src/blueprints/project-wizard/blueprint.d.ts.map +1 -0
  244. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts +51 -0
  245. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts.map +1 -0
  246. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts +96 -0
  247. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts.map +1 -0
  248. package/dist/types/src/blueprints/project-wizard/functions/index.d.ts +4 -0
  249. package/dist/types/src/blueprints/project-wizard/functions/index.d.ts.map +1 -0
  250. package/dist/types/src/blueprints/project-wizard/functions/project-rules.d.ts +4 -0
  251. package/dist/types/src/blueprints/project-wizard/functions/project-rules.d.ts.map +1 -0
  252. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts +48 -0
  253. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts.map +1 -0
  254. package/dist/types/src/blueprints/project-wizard/index.d.ts +3 -0
  255. package/dist/types/src/blueprints/project-wizard/index.d.ts.map +1 -0
  256. package/dist/types/src/blueprints/testing.d.ts +16 -0
  257. package/dist/types/src/blueprints/testing.d.ts.map +1 -0
  258. package/dist/types/src/blueprints/websearch/blueprint.d.ts +4 -0
  259. package/dist/types/src/blueprints/websearch/blueprint.d.ts.map +1 -0
  260. package/dist/types/src/blueprints/websearch/blueprint.test.d.ts +2 -0
  261. package/dist/types/src/blueprints/websearch/blueprint.test.d.ts.map +1 -0
  262. package/dist/types/src/blueprints/websearch/functions/definitions.d.ts +5 -0
  263. package/dist/types/src/blueprints/websearch/functions/definitions.d.ts.map +1 -0
  264. package/dist/types/src/blueprints/websearch/functions/fetch.d.ts +6 -0
  265. package/dist/types/src/blueprints/websearch/functions/fetch.d.ts.map +1 -0
  266. package/dist/types/src/blueprints/websearch/functions/index.d.ts +4 -0
  267. package/dist/types/src/blueprints/websearch/functions/index.d.ts.map +1 -0
  268. package/dist/types/src/blueprints/websearch/index.d.ts +4 -0
  269. package/dist/types/src/blueprints/websearch/index.d.ts.map +1 -0
  270. package/dist/types/src/blueprints/websearch/toolkit.d.ts +29 -0
  271. package/dist/types/src/blueprints/websearch/toolkit.d.ts.map +1 -0
  272. package/dist/types/src/crud/graph.d.ts +67 -0
  273. package/dist/types/src/crud/graph.d.ts.map +1 -0
  274. package/dist/types/src/crud/graph.test.d.ts +2 -0
  275. package/dist/types/src/crud/graph.test.d.ts.map +1 -0
  276. package/dist/types/src/crud/index.d.ts +2 -0
  277. package/dist/types/src/crud/index.d.ts.map +1 -0
  278. package/dist/types/src/errors.d.ts +41 -0
  279. package/dist/types/src/errors.d.ts.map +1 -0
  280. package/dist/types/src/functions/agent/definitions.d.ts +62 -0
  281. package/dist/types/src/functions/agent/definitions.d.ts.map +1 -0
  282. package/dist/types/src/functions/agent/index.d.ts +4 -0
  283. package/dist/types/src/functions/agent/index.d.ts.map +1 -0
  284. package/dist/types/src/functions/agent/prompt.d.ts +4 -0
  285. package/dist/types/src/functions/agent/prompt.d.ts.map +1 -0
  286. package/dist/types/src/functions/agent/prompt.test.d.ts +2 -0
  287. package/dist/types/src/functions/agent/prompt.test.d.ts.map +1 -0
  288. package/dist/types/src/functions/index.d.ts +2 -0
  289. package/dist/types/src/functions/index.d.ts.map +1 -0
  290. package/dist/types/src/index.d.ts +7 -0
  291. package/dist/types/src/index.d.ts.map +1 -0
  292. package/dist/types/src/sync/index.d.ts +2 -0
  293. package/dist/types/src/sync/index.d.ts.map +1 -0
  294. package/dist/types/src/sync/sync.d.ts +15 -0
  295. package/dist/types/src/sync/sync.d.ts.map +1 -0
  296. package/dist/types/src/testing/index.d.ts +3 -0
  297. package/dist/types/src/testing/index.d.ts.map +1 -0
  298. package/dist/types/src/testing/plugins.d.ts +19 -0
  299. package/dist/types/src/testing/plugins.d.ts.map +1 -0
  300. package/dist/types/src/toolkits/WebToolkit.d.ts +38 -0
  301. package/dist/types/src/toolkits/WebToolkit.d.ts.map +1 -0
  302. package/dist/types/src/toolkits/index.d.ts +2 -0
  303. package/dist/types/src/toolkits/index.d.ts.map +1 -0
  304. package/dist/types/src/types/Agent.d.ts +77 -0
  305. package/dist/types/src/types/Agent.d.ts.map +1 -0
  306. package/dist/types/src/types/Chat.d.ts +56 -0
  307. package/dist/types/src/types/Chat.d.ts.map +1 -0
  308. package/dist/types/src/types/McpServer.d.ts +21 -0
  309. package/dist/types/src/types/McpServer.d.ts.map +1 -0
  310. package/dist/types/src/types/Memory.d.ts +12 -0
  311. package/dist/types/src/types/Memory.d.ts.map +1 -0
  312. package/dist/types/src/types/Plan.d.ts +89 -0
  313. package/dist/types/src/types/Plan.d.ts.map +1 -0
  314. package/dist/types/src/types/index.d.ts +6 -0
  315. package/dist/types/src/types/index.d.ts.map +1 -0
  316. package/dist/types/src/util/graphql.d.ts +22 -0
  317. package/dist/types/src/util/graphql.d.ts.map +1 -0
  318. package/dist/types/src/util/index.d.ts +2 -0
  319. package/dist/types/src/util/index.d.ts.map +1 -0
  320. package/dist/types/tsconfig.tsbuildinfo +1 -0
  321. package/package.json +74 -0
  322. package/src/blueprints/automation/blueprint.ts +105 -0
  323. package/src/blueprints/automation/index.ts +5 -0
  324. package/src/blueprints/blueprint-manager/blueprint.conversations.json +1 -0
  325. package/src/blueprints/blueprint-manager/blueprint.test.ts +198 -0
  326. package/src/blueprints/blueprint-manager/blueprint.ts +49 -0
  327. package/src/blueprints/blueprint-manager/functions/definitions.ts +57 -0
  328. package/src/blueprints/blueprint-manager/functions/enable-blueprints.ts +43 -0
  329. package/src/blueprints/blueprint-manager/functions/index.ts +13 -0
  330. package/src/blueprints/blueprint-manager/functions/query-blueprints.ts +18 -0
  331. package/src/blueprints/blueprint-manager/functions/update-blueprints.ts +18 -0
  332. package/src/blueprints/blueprint-manager/index.ts +6 -0
  333. package/src/blueprints/browser/blueprint.test.ts +61 -0
  334. package/src/blueprints/browser/blueprint.ts +40 -0
  335. package/src/blueprints/browser/index.ts +5 -0
  336. package/src/blueprints/database/blueprint.conversations.json +1 -0
  337. package/src/blueprints/database/blueprint.test.ts +531 -0
  338. package/src/blueprints/database/blueprint.ts +66 -0
  339. package/src/blueprints/database/functions/context-add.ts +24 -0
  340. package/src/blueprints/database/functions/context-remove.ts +24 -0
  341. package/src/blueprints/database/functions/definitions.ts +318 -0
  342. package/src/blueprints/database/functions/index.ts +23 -0
  343. package/src/blueprints/database/functions/load.ts +19 -0
  344. package/src/blueprints/database/functions/object-create.ts +38 -0
  345. package/src/blueprints/database/functions/object-delete.ts +20 -0
  346. package/src/blueprints/database/functions/object-update.ts +30 -0
  347. package/src/blueprints/database/functions/query.ts +64 -0
  348. package/src/blueprints/database/functions/relation-create.ts +34 -0
  349. package/src/blueprints/database/functions/relation-delete.ts +21 -0
  350. package/src/blueprints/database/functions/schema-add.ts +28 -0
  351. package/src/blueprints/database/functions/schema-list.ts +33 -0
  352. package/src/blueprints/database/functions/tag-add.ts +21 -0
  353. package/src/blueprints/database/functions/tag-remove.ts +21 -0
  354. package/src/blueprints/database/index.ts +21 -0
  355. package/src/blueprints/discord/blueprint.ts +41 -0
  356. package/src/blueprints/discord/functions/definitions.ts +70 -0
  357. package/src/blueprints/discord/functions/fetch-messages.test.ts +45 -0
  358. package/src/blueprints/discord/functions/fetch-messages.ts +198 -0
  359. package/src/blueprints/discord/functions/index.ts +9 -0
  360. package/src/blueprints/discord/index.ts +6 -0
  361. package/src/blueprints/github/functions/definitions.ts +26 -0
  362. package/src/blueprints/github/functions/fetch-prs.ts +24 -0
  363. package/src/blueprints/github/functions/index.ts +9 -0
  364. package/src/blueprints/github/index.ts +5 -0
  365. package/src/blueprints/index.ts +15 -0
  366. package/src/blueprints/linear/blueprint.ts +42 -0
  367. package/src/blueprints/linear/functions/definitions.ts +23 -0
  368. package/src/blueprints/linear/functions/index.ts +9 -0
  369. package/src/blueprints/linear/functions/linear.test.ts +58 -0
  370. package/src/blueprints/linear/functions/sync-issues.ts +183 -0
  371. package/src/blueprints/linear/index.ts +6 -0
  372. package/src/blueprints/memory/blueprint.conversations.json +1 -0
  373. package/src/blueprints/memory/blueprint.test.ts +139 -0
  374. package/src/blueprints/memory/blueprint.ts +41 -0
  375. package/src/blueprints/memory/functions/definitions.ts +68 -0
  376. package/src/blueprints/memory/functions/delete.ts +20 -0
  377. package/src/blueprints/memory/functions/index.ts +13 -0
  378. package/src/blueprints/memory/functions/query.ts +32 -0
  379. package/src/blueprints/memory/functions/save.ts +20 -0
  380. package/src/blueprints/memory/index.ts +6 -0
  381. package/src/blueprints/planning/blueprint.ts +24 -0
  382. package/src/blueprints/planning/functions/definitions.ts +137 -0
  383. package/src/blueprints/planning/functions/index.ts +9 -0
  384. package/src/blueprints/planning/functions/update-tasks.ts +45 -0
  385. package/src/blueprints/planning/index.ts +6 -0
  386. package/src/blueprints/project/blueprint.conversations.json +1 -0
  387. package/src/blueprints/project/blueprint.test.ts +714 -0
  388. package/src/blueprints/project/blueprint.ts +64 -0
  389. package/src/blueprints/project/functions/add-artifact.ts +30 -0
  390. package/src/blueprints/project/functions/agent.ts +69 -0
  391. package/src/blueprints/project/functions/definitions.ts +92 -0
  392. package/src/blueprints/project/functions/get-context.ts +46 -0
  393. package/src/blueprints/project/functions/index.ts +14 -0
  394. package/src/blueprints/project/functions/qualifier.ts +90 -0
  395. package/src/blueprints/project/index.ts +6 -0
  396. package/src/blueprints/project-wizard/blueprint.ts +52 -0
  397. package/src/blueprints/project-wizard/functions/create-project.ts +32 -0
  398. package/src/blueprints/project-wizard/functions/definitions.ts +63 -0
  399. package/src/blueprints/project-wizard/functions/index.ts +13 -0
  400. package/src/blueprints/project-wizard/functions/project-rules.ts +77 -0
  401. package/src/blueprints/project-wizard/functions/sync-triggers.ts +158 -0
  402. package/src/blueprints/project-wizard/index.ts +6 -0
  403. package/src/blueprints/testing.ts +49 -0
  404. package/src/blueprints/websearch/blueprint.conversations.json +1 -0
  405. package/src/blueprints/websearch/blueprint.test.ts +39 -0
  406. package/src/blueprints/websearch/blueprint.ts +30 -0
  407. package/src/blueprints/websearch/functions/definitions.ts +25 -0
  408. package/src/blueprints/websearch/functions/fetch.ts +18 -0
  409. package/src/blueprints/websearch/functions/index.ts +9 -0
  410. package/src/blueprints/websearch/index.ts +7 -0
  411. package/src/blueprints/websearch/toolkit.ts +13 -0
  412. package/src/crud/graph.test.ts +44 -0
  413. package/src/crud/graph.ts +380 -0
  414. package/src/crud/index.ts +5 -0
  415. package/src/errors.ts +25 -0
  416. package/src/functions/READ_THIS.md +5 -0
  417. package/src/functions/agent/definitions.ts +56 -0
  418. package/src/functions/agent/index.ts +9 -0
  419. package/src/functions/agent/prompt.conversations.json +1 -0
  420. package/src/functions/agent/prompt.test.ts +81 -0
  421. package/src/functions/agent/prompt.ts +224 -0
  422. package/src/functions/index.ts +5 -0
  423. package/src/index.ts +10 -0
  424. package/src/sync/index.ts +5 -0
  425. package/src/sync/sync.ts +106 -0
  426. package/src/testing/index.ts +6 -0
  427. package/src/testing/plugins.tsx +79 -0
  428. package/src/toolkits/WebToolkit.ts +33 -0
  429. package/src/toolkits/index.ts +5 -0
  430. package/src/typedefs.d.ts +8 -0
  431. package/src/types/Agent.ts +240 -0
  432. package/src/types/Chat.ts +63 -0
  433. package/src/types/McpServer.ts +37 -0
  434. package/src/types/Memory.ts +24 -0
  435. package/src/types/Plan.ts +110 -0
  436. package/src/types/index.ts +9 -0
  437. package/src/util/graphql.ts +31 -0
  438. package/src/util/index.ts +5 -0
@@ -0,0 +1,224 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Tool from '@effect/ai/Tool';
6
+ import * as Toolkit from '@effect/ai/Toolkit';
7
+ import * as Array from 'effect/Array';
8
+ import * as Deferred from 'effect/Deferred';
9
+ import * as Effect from 'effect/Effect';
10
+ import * as Function from 'effect/Function';
11
+ import * as Layer from 'effect/Layer';
12
+ import * as Option from 'effect/Option';
13
+ import * as Schema from 'effect/Schema';
14
+
15
+ import { AiService, OpaqueToolkit, ModelName } from '@dxos/ai';
16
+ import {
17
+ AiSession,
18
+ getOperationFromTool,
19
+ makeToolExecutionService,
20
+ makeToolResolverFromOperations,
21
+ } from '@dxos/assistant';
22
+ import { Template, Trace, Operation } from '@dxos/compute';
23
+ import { Database, Feed, Obj, Ref } from '@dxos/echo';
24
+ import { acquireReleaseResource } from '@dxos/effect';
25
+ import { invariant } from '@dxos/invariant';
26
+ import { log } from '@dxos/log';
27
+ import { trim } from '@dxos/util';
28
+
29
+ import { PromptError } from '../../errors';
30
+ import * as Chat from '../../types/Chat';
31
+ import { AgentPrompt } from './definitions';
32
+
33
+ const DEFAULT_MODEL: ModelName = '@anthropic/claude-opus-4-6';
34
+
35
+ export default AgentPrompt.pipe(
36
+ Operation.withHandler(
37
+ Effect.fnUntraced(
38
+ function* (data) {
39
+ log.info('processing input', { input: data.input });
40
+
41
+ const input = yield* Ref.isRef(data.input)
42
+ ? Database.load(data.input).pipe(Effect.map(Obj.toJSON))
43
+ : Effect.succeed(data.input);
44
+
45
+ yield* Database.flush();
46
+ const prompt = yield* Database.load(data.prompt);
47
+ yield* Trace.emitStatus(`Running ${prompt.id}`);
48
+
49
+ log.info('starting agent', { prompt: prompt.id, input });
50
+
51
+ const blueprints = yield* Function.pipe(
52
+ prompt.blueprints,
53
+ Effect.forEach(Database.loadOption),
54
+ Effect.map(Array.filter(Option.isSome)),
55
+ Effect.map(Array.map((option) => option.value)),
56
+ );
57
+
58
+ const objects = yield* Function.pipe(
59
+ prompt.context,
60
+ Effect.forEach(Database.loadOption),
61
+ Effect.map(Array.filter(Option.isSome)),
62
+ Effect.map(Array.map((option) => option.value)),
63
+ );
64
+
65
+ const promptInstructions = yield* Database.load(prompt.instructions.source);
66
+ let promptText = Template.process(promptInstructions.content, input);
67
+
68
+ if (input !== undefined) {
69
+ promptText += `\n<input>${JSON.stringify(input)}</input>`;
70
+ }
71
+
72
+ let systemText = trim`
73
+ You are an agent running in the non-interactive mode.
74
+ The user is unable to see what you are doing, and cannot answer any questions.
75
+ Do not ask questions.
76
+ Complete the task before you, and at the end call [completeJob] with the output.
77
+ If you are unable to complete the task, call [completeJob] with the failure reason.
78
+ If no output is required, call [completeJob] with an empty object: {}
79
+ Do not stop until you call [completeJob].
80
+ `;
81
+ if (data.systemInstructions) {
82
+ systemText += `\n\n${data.systemInstructions}`;
83
+ }
84
+
85
+ const modelLayer = AiService.model(data.model ?? DEFAULT_MODEL);
86
+
87
+ let feed: Feed.Feed;
88
+ if (data.chat) {
89
+ const chat = yield* Database.load(data.chat);
90
+ invariant(Obj.instanceOf(Chat.Chat, chat), 'Expected Chat object.');
91
+ feed = yield* Database.load(chat.feed);
92
+ } else {
93
+ feed = yield* Database.add(Feed.make());
94
+ }
95
+
96
+ const resultSink = yield* Deferred.make<unknown, PromptError>();
97
+ const promptToolkit = makePromptAgentToolkit({
98
+ output: Schema.Any, // TODO(dmaretskyi): Use prompt's output schema.
99
+ resultSink,
100
+ });
101
+
102
+ const runtime = yield* Effect.runtime<Feed.FeedService>();
103
+ const session = yield* acquireReleaseResource(() => new AiSession({ feed, runtime }));
104
+
105
+ yield* Effect.promise(() =>
106
+ session.context.bind({
107
+ blueprints: blueprints.map((blueprint) => Ref.make(blueprint)),
108
+ objects: objects.map((object) => Ref.make(object as Obj.Unknown)),
109
+ }),
110
+ );
111
+
112
+ yield* session
113
+ .createRequest({
114
+ prompt: promptText,
115
+ system: systemText,
116
+ toolkit: promptToolkit,
117
+ })
118
+ .pipe(
119
+ Effect.provide(
120
+ Layer.mergeAll(modelLayer, ToolExecutionService({ feed }), makeToolResolverFromOperations()),
121
+ ),
122
+ );
123
+
124
+ return yield* Deferred.poll(resultSink).pipe(
125
+ Effect.flatten,
126
+ Effect.flatten,
127
+ Effect.catchTag('NoSuchElementException', () =>
128
+ Effect.gen(function* () {
129
+ yield* session
130
+ .createRequest({
131
+ prompt: 'You must signal task completion by calling [completeJob] with the output or failure reason.',
132
+ system: systemText,
133
+ toolkit: promptToolkit,
134
+ })
135
+ .pipe(
136
+ Effect.provide(
137
+ Layer.mergeAll(modelLayer, ToolExecutionService({ feed }), makeToolResolverFromOperations()),
138
+ ),
139
+ );
140
+
141
+ return yield* Deferred.poll(resultSink).pipe(
142
+ Effect.flatten,
143
+ Effect.flatten,
144
+ Effect.catchTag('NoSuchElementException', () =>
145
+ Effect.fail(new PromptError('Agent did not signal task completion.', {})),
146
+ ),
147
+ );
148
+ }),
149
+ ),
150
+ );
151
+ },
152
+ Effect.tapBoth({
153
+ onSuccess: () => Database.flush(),
154
+ onFailure: () => Database.flush(),
155
+ }),
156
+ Effect.scoped,
157
+ ),
158
+ ),
159
+ Operation.opaqueHandler,
160
+ );
161
+
162
+ const makePromptAgentToolkit = (options: {
163
+ output: Schema.Schema.Any;
164
+ resultSink: Deferred.Deferred<unknown, PromptError>;
165
+ }) => {
166
+ class PromptAgentToolkit extends Toolkit.make(
167
+ Tool.make('completeJob', {
168
+ parameters: {
169
+ success: Schema.optional(Schema.Any), // TODO(dmaretskyi): Pipe output schema here.
170
+ failure: Schema.optional(
171
+ Schema.Struct({
172
+ message: Schema.String.annotations({
173
+ description: 'Short message describing the error.',
174
+ }),
175
+ description: Schema.optional(Schema.String).annotations({
176
+ description: 'Optional longer message describing in detail what went wrong',
177
+ }),
178
+ }),
179
+ ),
180
+ },
181
+ }),
182
+ ) {}
183
+ const layer = PromptAgentToolkit.toLayer({
184
+ completeJob: Effect.fnUntraced(function* (result) {
185
+ if (result.failure) {
186
+ yield* Deferred.fail(
187
+ options.resultSink,
188
+ new PromptError(result.failure.message, {
189
+ description: result.failure.description,
190
+ }),
191
+ );
192
+ } else {
193
+ yield* Deferred.succeed(options.resultSink, result.success);
194
+ }
195
+ }),
196
+ });
197
+
198
+ return OpaqueToolkit.make(PromptAgentToolkit, layer);
199
+ };
200
+
201
+ interface ToolExecutionServiceOptions {
202
+ feed: Feed.Feed;
203
+ }
204
+
205
+ const ToolExecutionService = ({ feed }: ToolExecutionServiceOptions) =>
206
+ Layer.unwrapEffect(
207
+ Effect.gen(function* () {
208
+ const operationInvoker = yield* Operation.Service;
209
+ return makeToolExecutionService({
210
+ invoke: (tool, input) =>
211
+ Effect.gen(function* () {
212
+ const operationDef = getOperationFromTool(tool).pipe(Option.getOrThrow);
213
+ log('invoking operation', { operationDef, input });
214
+ const result = yield* operationInvoker
215
+ .invoke(operationDef, input, {
216
+ conversation: Obj.getDXN(feed).toString(),
217
+ })
218
+ .pipe(Effect.orDie);
219
+ log('result', { result });
220
+ return result;
221
+ }),
222
+ });
223
+ }),
224
+ );
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * from './agent';
package/src/index.ts ADDED
@@ -0,0 +1,10 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * from './blueprints';
6
+ export * from './crud';
7
+ export * from './functions';
8
+ export * from './sync';
9
+ export * from './toolkits';
10
+ export * from './types';
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * from './sync';
@@ -0,0 +1,106 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Filter, Obj, Query, Ref } from '@dxos/echo';
8
+ import { Database } from '@dxos/echo';
9
+ import { failedInvariant } from '@dxos/invariant';
10
+ import { log } from '@dxos/log';
11
+
12
+ /**
13
+ * Syncs objects to the database.
14
+ * If there's an object with a matching foreign key in the database, it will be updated.
15
+ * Otherwise, a new object will be added.
16
+ * Recursively syncs top-level refs.
17
+ *
18
+ * @param opts.foreignKeyId - The key to use for matching objects.
19
+ */
20
+ export const syncObjects: (
21
+ objs: Obj.Unknown[],
22
+ opts: { foreignKeyId: string },
23
+ ) => Effect.Effect<Obj.Unknown[], never, Database.Service> = Effect.fn('syncObjects')(function* (
24
+ objs,
25
+ { foreignKeyId },
26
+ ) {
27
+ return yield* Effect.forEach(
28
+ objs,
29
+ Effect.fnUntraced(function* (obj) {
30
+ // Sync referenced objects.
31
+ for (const key of Object.keys(obj)) {
32
+ if (typeof key !== 'string' || key === 'id') {
33
+ continue;
34
+ }
35
+ if (!Ref.isRef((obj as any)[key])) {
36
+ continue;
37
+ }
38
+ const ref: Ref.Unknown = (obj as any)[key];
39
+ if (!ref.target) {
40
+ continue;
41
+ }
42
+ if (Obj.getDXN(ref.target).isLocalObjectId()) {
43
+ // obj not persisted to db.
44
+ const [target] = yield* syncObjects([ref.target], { foreignKeyId });
45
+ (obj as any)[key] = Ref.make(target);
46
+ }
47
+ }
48
+
49
+ const schema = Obj.getSchema(obj) ?? failedInvariant('No schema.');
50
+ const foreignId = Obj.getKeys(obj, foreignKeyId)[0]?.id ?? failedInvariant('No foreign key.');
51
+ const [existing] = yield* Database.runQuery(
52
+ Query.select(Filter.foreignKeys(schema, [{ source: foreignKeyId, id: foreignId }])),
53
+ );
54
+ log('sync object', {
55
+ type: Obj.getTypename(obj),
56
+ foreignId,
57
+ existing: existing ? Obj.getDXN(existing) : undefined,
58
+ });
59
+ if (!existing) {
60
+ yield* Database.add(obj);
61
+ return obj;
62
+ } else {
63
+ copyObjectData(existing, obj);
64
+ return existing;
65
+ }
66
+ }),
67
+ { concurrency: 1 },
68
+ );
69
+ });
70
+
71
+ const copyObjectData = (existing: Obj.Unknown, newObj: Obj.Unknown) => {
72
+ Obj.update(existing, (existing) => {
73
+ // Copy properties from newObj to existing.
74
+ for (const key of Object.keys(newObj)) {
75
+ if (typeof key !== 'string' || key === 'id') {
76
+ continue;
77
+ }
78
+ if (
79
+ typeof (newObj as any)[key] !== 'string' &&
80
+ typeof (newObj as any)[key] !== 'number' &&
81
+ typeof (newObj as any)[key] !== 'boolean' &&
82
+ !Ref.isRef((newObj as any)[key])
83
+ ) {
84
+ continue;
85
+ }
86
+ (existing as any)[key] = (newObj as any)[key];
87
+ }
88
+
89
+ // Delete properties that don't exist in newObj.
90
+ for (const key of Object.keys(existing)) {
91
+ if (typeof key !== 'string' || key === 'id') {
92
+ continue;
93
+ }
94
+ if (!(key in newObj)) {
95
+ delete (existing as any)[key];
96
+ }
97
+ }
98
+
99
+ // Update foreign keys.
100
+ for (const foreignKey of Obj.getMeta(newObj).keys) {
101
+ Obj.deleteKeys(existing, foreignKey.source);
102
+ // TODO(dmaretskyi): Doesn't work: `Obj.getMeta(existing).keys.push(foreignKey);`
103
+ Obj.getMeta(existing).keys.push({ ...foreignKey });
104
+ }
105
+ });
106
+ };
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * from '../blueprints/testing';
6
+ export * from './plugins';
@@ -0,0 +1,79 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+ import React from 'react';
7
+
8
+ import { Capabilities, Capability } from '@dxos/app-framework';
9
+ import { Surface } from '@dxos/app-framework/ui';
10
+ import { Format, type Obj, Type } from '@dxos/echo';
11
+ import { Card } from '@dxos/react-ui';
12
+ import { Syntax } from '@dxos/react-ui-syntax-highlighter';
13
+
14
+ export const MapSchema = Schema.Struct({
15
+ coordinates: Format.GeoPoint,
16
+ }).pipe(
17
+ Type.object({
18
+ typename: 'com.example.type.map',
19
+ version: '0.1.0',
20
+ }),
21
+ );
22
+
23
+ export type MapSchema = Schema.Schema.Type<typeof MapSchema>;
24
+
25
+ // TODO(burdon): Move to ECHO def.
26
+ export type ArtifactsContext = {
27
+ items: Obj.Unknown[];
28
+ getArtifacts: () => Obj.Unknown[];
29
+ addArtifact: (artifact: Obj.Unknown) => void;
30
+ };
31
+
32
+ declare global {
33
+ interface ToolContextExtensions {
34
+ artifacts?: ArtifactsContext;
35
+ }
36
+ }
37
+
38
+ // TODO(dmaretskyi): Removed images from conductor GPT implementation.
39
+ const isImage = (data: any): data is any => false;
40
+
41
+ export const capabilities: Capability.Any[] = [
42
+ Capability.contributes(
43
+ Capabilities.ReactSurface,
44
+ Surface.create({
45
+ id: 'plugin-image',
46
+ role: 'card--content',
47
+ filter: (data: any): data is any => isImage(data.value),
48
+ component: ({ data }) => (
49
+ <Card.Content>
50
+ <img
51
+ className='grow object-cover'
52
+ src={`data:image/jpeg;base64,${data.value.source.data}`}
53
+ alt={data.value.prompt ?? `Generated image [id=${data.value.id}]`}
54
+ />
55
+ </Card.Content>
56
+ ),
57
+ }),
58
+ ),
59
+ Capability.contributes(
60
+ Capabilities.ReactSurface,
61
+ Surface.create({
62
+ id: 'plugin-default',
63
+ role: 'card--content',
64
+ position: 'fallback',
65
+ component: ({ data }) => (
66
+ <Card.Content>
67
+ <Syntax.Root data={data}>
68
+ <Syntax.Content>
69
+ <Syntax.Filter />
70
+ <Syntax.Viewport>
71
+ <Syntax.Code />
72
+ </Syntax.Viewport>
73
+ </Syntax.Content>
74
+ </Syntax.Root>
75
+ </Card.Content>
76
+ ),
77
+ }),
78
+ ),
79
+ ];
@@ -0,0 +1,33 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as AnthropicTool from '@effect/ai-anthropic/AnthropicTool';
6
+ import * as Tool from '@effect/ai/Tool';
7
+ import * as Toolkit from '@effect/ai/Toolkit';
8
+ import * as Effect from 'effect/Effect';
9
+ import * as Schema from 'effect/Schema';
10
+
11
+ // TODO(dmaretskyi): Testing only.
12
+ export const WebToolkit = Toolkit.make(
13
+ AnthropicTool.WebSearch_20250305({}).pipe(
14
+ // TODO(dmaretskyi): Effect bug -- provider-defined tools don't support annotations.
15
+ // ToolFormatter.assign({
16
+ // debugFormatResult: (result) =>
17
+ // Array.isArray(result) ? result.map(Struct.pick('title', 'type', 'url', 'page_age')) : result,
18
+ // }),
19
+ ),
20
+ Tool.make('WebFetch', {
21
+ parameters: {
22
+ url: Schema.String,
23
+ },
24
+ success: Schema.String,
25
+ }),
26
+ );
27
+
28
+ export const layer = WebToolkit.toLayer({
29
+ WebFetch: Effect.fnUntraced(function* ({ url }) {
30
+ const response = yield* Effect.promise(() => fetch(url).then((response) => response.text()));
31
+ return response;
32
+ }),
33
+ });
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * as WebToolkit from './WebToolkit';
@@ -0,0 +1,8 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ declare module '*?raw' {
6
+ const content: string;
7
+ export default content;
8
+ }