@dxos/assistant-toolkit 0.8.4-main.9be5663bfe → 0.8.4-main.abd8ff62ef

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 (548) hide show
  1. package/dist/lib/neutral/{add-artifact-5TOKSVLY.mjs → add-artifact-BA5WQRDU.mjs} +7 -7
  2. package/dist/lib/neutral/add-artifact-BA5WQRDU.mjs.map +7 -0
  3. package/dist/lib/neutral/agent-M2EW5M36.mjs +65 -0
  4. package/dist/lib/neutral/agent-M2EW5M36.mjs.map +7 -0
  5. package/dist/lib/neutral/{chunk-V77TCYSP.mjs → chunk-CLHVRIYF.mjs} +76 -29
  6. package/dist/lib/neutral/chunk-CLHVRIYF.mjs.map +7 -0
  7. package/dist/lib/neutral/{chunk-IVXBQQDJ.mjs → chunk-CVUA23QI.mjs} +2 -2
  8. package/dist/lib/neutral/chunk-CVUA23QI.mjs.map +7 -0
  9. package/dist/lib/neutral/{chunk-MEQYXSDY.mjs → chunk-D5MG5OKX.mjs} +5 -6
  10. package/dist/lib/neutral/chunk-D5MG5OKX.mjs.map +7 -0
  11. package/dist/lib/neutral/{chunk-B5NOGNUG.mjs → chunk-E2XRNXWP.mjs} +7 -10
  12. package/dist/lib/neutral/chunk-E2XRNXWP.mjs.map +7 -0
  13. package/dist/lib/neutral/{chunk-BO4ZVH7M.mjs → chunk-EJAQUAKM.mjs} +3 -3
  14. package/dist/lib/neutral/chunk-EJAQUAKM.mjs.map +7 -0
  15. package/dist/lib/neutral/{chunk-PWGX4QYR.mjs → chunk-J37DYY7A.mjs} +7 -9
  16. package/dist/lib/neutral/chunk-J37DYY7A.mjs.map +7 -0
  17. package/dist/lib/neutral/{chunk-TCRQCJEJ.mjs → chunk-JCYLFOFK.mjs} +9 -9
  18. package/dist/lib/neutral/chunk-JCYLFOFK.mjs.map +7 -0
  19. package/dist/lib/neutral/{chunk-YBTLIXQK.mjs → chunk-KGU725LW.mjs} +2 -2
  20. package/dist/lib/neutral/{chunk-YBTLIXQK.mjs.map → chunk-KGU725LW.mjs.map} +3 -3
  21. package/dist/lib/neutral/{chunk-VD2WAUU2.mjs → chunk-KY2TIPJ5.mjs} +47 -17
  22. package/dist/lib/neutral/chunk-KY2TIPJ5.mjs.map +7 -0
  23. package/dist/lib/neutral/{chunk-B35UIL3R.mjs → chunk-MMTKJBB5.mjs} +3 -3
  24. package/dist/lib/neutral/chunk-MMTKJBB5.mjs.map +7 -0
  25. package/dist/lib/neutral/{chunk-DV5DCOUE.mjs → chunk-NR3GTWRC.mjs} +3 -2
  26. package/dist/lib/neutral/chunk-NR3GTWRC.mjs.map +7 -0
  27. package/dist/lib/neutral/{chunk-6DPL2YY5.mjs → chunk-TO5IX24K.mjs} +3 -4
  28. package/dist/lib/neutral/chunk-TO5IX24K.mjs.map +7 -0
  29. package/dist/lib/neutral/{chunk-MEZ4UFR6.mjs → chunk-WLR3BGO4.mjs} +2 -2
  30. package/dist/lib/neutral/chunk-WLR3BGO4.mjs.map +7 -0
  31. package/dist/lib/neutral/{chunk-AGG6OZNB.mjs → chunk-ZFXLTBZG.mjs} +4 -5
  32. package/dist/lib/neutral/chunk-ZFXLTBZG.mjs.map +7 -0
  33. package/dist/lib/neutral/{context-add-QAHU6I24.mjs → context-add-IIDPRRVB.mjs} +3 -3
  34. package/dist/lib/neutral/{context-add-QAHU6I24.mjs.map → context-add-IIDPRRVB.mjs.map} +1 -1
  35. package/dist/lib/neutral/{context-remove-VMZPMZ4E.mjs → context-remove-RDYV4PD4.mjs} +3 -3
  36. package/dist/lib/neutral/{context-remove-VMZPMZ4E.mjs.map → context-remove-RDYV4PD4.mjs.map} +1 -1
  37. package/dist/lib/neutral/{create-project-SI5SZ7LJ.mjs → create-project-GLDEAWTT.mjs} +10 -11
  38. package/dist/lib/neutral/create-project-GLDEAWTT.mjs.map +7 -0
  39. package/dist/lib/neutral/{delete-LHMZDJFA.mjs → delete-J3PMWP7Z.mjs} +4 -4
  40. package/dist/lib/neutral/delete-J3PMWP7Z.mjs.map +7 -0
  41. package/dist/lib/neutral/{enable-blueprints-4UMPKGUD.mjs → enable-blueprints-LBDZH2CY.mjs} +3 -4
  42. package/dist/lib/neutral/enable-blueprints-LBDZH2CY.mjs.map +7 -0
  43. package/dist/lib/neutral/{fetch-TLKREIZA.mjs → fetch-KHMHV7JR.mjs} +3 -3
  44. package/dist/lib/neutral/{fetch-TLKREIZA.mjs.map → fetch-KHMHV7JR.mjs.map} +1 -1
  45. package/dist/lib/neutral/{fetch-messages-AFX7ZAVE.mjs → fetch-messages-PWGUG5G3.mjs} +8 -23
  46. package/dist/lib/neutral/fetch-messages-PWGUG5G3.mjs.map +7 -0
  47. package/dist/lib/neutral/{get-context-57JQM4HZ.mjs → get-context-B55SX5Y4.mjs} +7 -7
  48. package/dist/lib/neutral/get-context-B55SX5Y4.mjs.map +7 -0
  49. package/dist/lib/neutral/index.mjs +787 -131
  50. package/dist/lib/neutral/index.mjs.map +4 -4
  51. package/dist/lib/neutral/{load-ZTOGVHWP.mjs → load-LI7HHVD6.mjs} +3 -3
  52. package/dist/lib/neutral/{load-ZTOGVHWP.mjs.map → load-LI7HHVD6.mjs.map} +3 -3
  53. package/dist/lib/neutral/meta.json +1 -1
  54. package/dist/lib/neutral/{object-create-7QCGL56E.mjs → object-create-52Z7YKIA.mjs} +4 -12
  55. package/dist/lib/neutral/object-create-52Z7YKIA.mjs.map +7 -0
  56. package/dist/lib/neutral/{object-delete-KXBWC4Q4.mjs → object-delete-I266YAXI.mjs} +3 -3
  57. package/dist/lib/neutral/object-delete-I266YAXI.mjs.map +7 -0
  58. package/dist/lib/neutral/{object-update-B7RDX3JC.mjs → object-update-HY4GI7LA.mjs} +4 -4
  59. package/dist/lib/neutral/object-update-HY4GI7LA.mjs.map +7 -0
  60. package/dist/lib/neutral/{project-3J3AJCJK.mjs → project-2YBPW5N7.mjs} +6 -6
  61. package/dist/lib/neutral/{project-rules-NO3QVDZS.mjs → project-rules-XUBEPDP6.mjs} +7 -7
  62. package/dist/lib/neutral/project-rules-XUBEPDP6.mjs.map +7 -0
  63. package/dist/lib/neutral/{prompt-K5CIRXOD.mjs → prompt-2WZQERT4.mjs} +39 -65
  64. package/dist/lib/neutral/prompt-2WZQERT4.mjs.map +7 -0
  65. package/dist/lib/neutral/{qualifier-KSGP4CFL.mjs → qualifier-2AC2ICOB.mjs} +12 -28
  66. package/dist/lib/neutral/qualifier-2AC2ICOB.mjs.map +7 -0
  67. package/dist/lib/neutral/{query-FMGIPWJG.mjs → query-B3NOYFCK.mjs} +4 -5
  68. package/dist/lib/neutral/query-B3NOYFCK.mjs.map +7 -0
  69. package/dist/lib/neutral/{query-MN5B3MQF.mjs → query-U56GNEV6.mjs} +4 -4
  70. package/dist/lib/neutral/query-U56GNEV6.mjs.map +7 -0
  71. package/dist/lib/neutral/{query-blueprints-EKHEZAGD.mjs → query-blueprints-KXADGHSA.mjs} +3 -4
  72. package/dist/lib/neutral/query-blueprints-KXADGHSA.mjs.map +7 -0
  73. package/dist/lib/neutral/{relation-create-FSHBM5CJ.mjs → relation-create-Z3NGW4VU.mjs} +4 -12
  74. package/dist/lib/neutral/relation-create-Z3NGW4VU.mjs.map +7 -0
  75. package/dist/lib/neutral/{relation-delete-CYYQUIZY.mjs → relation-delete-LXY7W2YO.mjs} +3 -3
  76. package/dist/lib/neutral/relation-delete-LXY7W2YO.mjs.map +7 -0
  77. package/dist/lib/neutral/{save-ZWWNTBOD.mjs → save-GWAPLT3Z.mjs} +4 -4
  78. package/dist/lib/neutral/save-GWAPLT3Z.mjs.map +7 -0
  79. package/dist/lib/neutral/{schema-add-RVV364G6.mjs → schema-add-4TXJO2V7.mjs} +3 -3
  80. package/dist/lib/neutral/schema-add-4TXJO2V7.mjs.map +7 -0
  81. package/dist/lib/neutral/{schema-list-DVKEWYIU.mjs → schema-list-PJS5AFZ3.mjs} +13 -5
  82. package/dist/lib/neutral/schema-list-PJS5AFZ3.mjs.map +7 -0
  83. package/dist/lib/neutral/{sync-issues-BBAMXSZN.mjs → sync-issues-LOLHZNFL.mjs} +8 -20
  84. package/dist/lib/neutral/sync-issues-LOLHZNFL.mjs.map +7 -0
  85. package/dist/lib/neutral/{sync-triggers-6EXPBHIQ.mjs → sync-triggers-EYJM4QWR.mjs} +39 -20
  86. package/dist/lib/neutral/sync-triggers-EYJM4QWR.mjs.map +7 -0
  87. package/dist/lib/neutral/{tag-add-OUDUBR3E.mjs → tag-add-5NOHUTIE.mjs} +4 -4
  88. package/dist/lib/neutral/tag-add-5NOHUTIE.mjs.map +7 -0
  89. package/dist/lib/neutral/{tag-remove-DI3ZSLFK.mjs → tag-remove-QTKYDJAW.mjs} +4 -4
  90. package/dist/lib/neutral/tag-remove-QTKYDJAW.mjs.map +7 -0
  91. package/dist/lib/neutral/testing/index.mjs +7 -12
  92. package/dist/lib/neutral/testing/index.mjs.map +3 -3
  93. package/dist/lib/neutral/{update-blueprints-ZNWR7BBN.mjs → update-blueprints-N2AK2VUR.mjs} +3 -4
  94. package/dist/lib/neutral/update-blueprints-N2AK2VUR.mjs.map +7 -0
  95. package/dist/lib/neutral/{update-tasks-3YZ3YXIU.mjs → update-tasks-ML2FCYU5.mjs} +7 -7
  96. package/dist/lib/neutral/update-tasks-ML2FCYU5.mjs.map +7 -0
  97. package/dist/types/src/blueprints/automation/blueprint.d.ts +2 -2
  98. package/dist/types/src/blueprints/automation/blueprint.d.ts.map +1 -1
  99. package/dist/types/src/blueprints/blueprint-manager/blueprint.d.ts +2 -2
  100. package/dist/types/src/blueprints/blueprint-manager/blueprint.d.ts.map +1 -1
  101. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts +11 -12
  102. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts.map +1 -1
  103. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts +6 -7
  104. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts.map +1 -1
  105. package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts +1 -1
  106. package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts.map +1 -1
  107. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts +5 -6
  108. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts.map +1 -1
  109. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts +2 -3
  110. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts.map +1 -1
  111. package/dist/types/src/blueprints/browser/blueprint.d.ts +2 -2
  112. package/dist/types/src/blueprints/browser/blueprint.d.ts.map +1 -1
  113. package/dist/types/src/blueprints/database/blueprint.d.ts +2 -2
  114. package/dist/types/src/blueprints/database/blueprint.d.ts.map +1 -1
  115. package/dist/types/src/blueprints/database/functions/context-add.d.ts +1 -1
  116. package/dist/types/src/blueprints/database/functions/context-add.d.ts.map +1 -1
  117. package/dist/types/src/blueprints/database/functions/context-remove.d.ts +1 -1
  118. package/dist/types/src/blueprints/database/functions/context-remove.d.ts.map +1 -1
  119. package/dist/types/src/blueprints/database/functions/definitions.d.ts +5 -5
  120. package/dist/types/src/blueprints/database/functions/definitions.d.ts.map +1 -1
  121. package/dist/types/src/blueprints/database/functions/index.d.ts +1 -1
  122. package/dist/types/src/blueprints/database/functions/index.d.ts.map +1 -1
  123. package/dist/types/src/blueprints/database/functions/load.d.ts +1 -1
  124. package/dist/types/src/blueprints/database/functions/load.d.ts.map +1 -1
  125. package/dist/types/src/blueprints/database/functions/object-create.d.ts +1 -1
  126. package/dist/types/src/blueprints/database/functions/object-create.d.ts.map +1 -1
  127. package/dist/types/src/blueprints/database/functions/object-delete.d.ts +1 -1
  128. package/dist/types/src/blueprints/database/functions/object-delete.d.ts.map +1 -1
  129. package/dist/types/src/blueprints/database/functions/object-update.d.ts +2 -2
  130. package/dist/types/src/blueprints/database/functions/object-update.d.ts.map +1 -1
  131. package/dist/types/src/blueprints/database/functions/query.d.ts +3 -3
  132. package/dist/types/src/blueprints/database/functions/query.d.ts.map +1 -1
  133. package/dist/types/src/blueprints/database/functions/relation-create.d.ts +2 -2
  134. package/dist/types/src/blueprints/database/functions/relation-create.d.ts.map +1 -1
  135. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts +1 -1
  136. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts.map +1 -1
  137. package/dist/types/src/blueprints/database/functions/schema-add.d.ts +1 -1
  138. package/dist/types/src/blueprints/database/functions/schema-add.d.ts.map +1 -1
  139. package/dist/types/src/blueprints/database/functions/schema-list.d.ts +1 -1
  140. package/dist/types/src/blueprints/database/functions/schema-list.d.ts.map +1 -1
  141. package/dist/types/src/blueprints/database/functions/tag-add.d.ts +1 -1
  142. package/dist/types/src/blueprints/database/functions/tag-add.d.ts.map +1 -1
  143. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts +1 -1
  144. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts.map +1 -1
  145. package/dist/types/src/blueprints/discord/blueprint.d.ts +2 -2
  146. package/dist/types/src/blueprints/discord/blueprint.d.ts.map +1 -1
  147. package/dist/types/src/blueprints/discord/functions/definitions.d.ts +2 -3
  148. package/dist/types/src/blueprints/discord/functions/definitions.d.ts.map +1 -1
  149. package/dist/types/src/blueprints/discord/functions/fetch-messages.d.ts +2 -3
  150. package/dist/types/src/blueprints/discord/functions/fetch-messages.d.ts.map +1 -1
  151. package/dist/types/src/blueprints/discord/functions/index.d.ts +1 -1
  152. package/dist/types/src/blueprints/discord/functions/index.d.ts.map +1 -1
  153. package/dist/types/src/blueprints/github/functions/definitions.d.ts +2 -3
  154. package/dist/types/src/blueprints/github/functions/definitions.d.ts.map +1 -1
  155. package/dist/types/src/blueprints/github/functions/fetch-prs.d.ts +2 -3
  156. package/dist/types/src/blueprints/github/functions/fetch-prs.d.ts.map +1 -1
  157. package/dist/types/src/blueprints/github/functions/index.d.ts +1 -1
  158. package/dist/types/src/blueprints/github/functions/index.d.ts.map +1 -1
  159. package/dist/types/src/blueprints/index.d.ts +0 -3
  160. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  161. package/dist/types/src/blueprints/linear/blueprint.d.ts +2 -2
  162. package/dist/types/src/blueprints/linear/blueprint.d.ts.map +1 -1
  163. package/dist/types/src/blueprints/linear/functions/definitions.d.ts +2 -3
  164. package/dist/types/src/blueprints/linear/functions/definitions.d.ts.map +1 -1
  165. package/dist/types/src/blueprints/linear/functions/index.d.ts +1 -1
  166. package/dist/types/src/blueprints/linear/functions/index.d.ts.map +1 -1
  167. package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts +2 -3
  168. package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts.map +1 -1
  169. package/dist/types/src/blueprints/memory/blueprint.d.ts +2 -2
  170. package/dist/types/src/blueprints/memory/blueprint.d.ts.map +1 -1
  171. package/dist/types/src/blueprints/memory/functions/definitions.d.ts +4 -4
  172. package/dist/types/src/blueprints/memory/functions/definitions.d.ts.map +1 -1
  173. package/dist/types/src/blueprints/memory/functions/delete.d.ts +2 -2
  174. package/dist/types/src/blueprints/memory/functions/delete.d.ts.map +1 -1
  175. package/dist/types/src/blueprints/memory/functions/index.d.ts +1 -1
  176. package/dist/types/src/blueprints/memory/functions/index.d.ts.map +1 -1
  177. package/dist/types/src/blueprints/memory/functions/query.d.ts +2 -2
  178. package/dist/types/src/blueprints/memory/functions/query.d.ts.map +1 -1
  179. package/dist/types/src/blueprints/memory/functions/save.d.ts +2 -2
  180. package/dist/types/src/blueprints/memory/functions/save.d.ts.map +1 -1
  181. package/dist/types/src/blueprints/planning/blueprint.d.ts +2 -2
  182. package/dist/types/src/blueprints/planning/blueprint.d.ts.map +1 -1
  183. package/dist/types/src/blueprints/planning/functions/definitions.d.ts +3 -3
  184. package/dist/types/src/blueprints/planning/functions/definitions.d.ts.map +1 -1
  185. package/dist/types/src/blueprints/planning/functions/index.d.ts +1 -1
  186. package/dist/types/src/blueprints/planning/functions/index.d.ts.map +1 -1
  187. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts +3 -3
  188. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts.map +1 -1
  189. package/dist/types/src/blueprints/project/blueprint.d.ts +2 -2
  190. package/dist/types/src/blueprints/project/blueprint.d.ts.map +1 -1
  191. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts +2 -2
  192. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts.map +1 -1
  193. package/dist/types/src/blueprints/project/functions/agent.d.ts +1 -1
  194. package/dist/types/src/blueprints/project/functions/agent.d.ts.map +1 -1
  195. package/dist/types/src/blueprints/project/functions/definitions.d.ts +46 -39
  196. package/dist/types/src/blueprints/project/functions/definitions.d.ts.map +1 -1
  197. package/dist/types/src/blueprints/project/functions/get-context.d.ts +4 -4
  198. package/dist/types/src/blueprints/project/functions/get-context.d.ts.map +1 -1
  199. package/dist/types/src/blueprints/project/functions/index.d.ts +1 -1
  200. package/dist/types/src/blueprints/project/functions/index.d.ts.map +1 -1
  201. package/dist/types/src/blueprints/project/functions/qualifier.d.ts +20 -16
  202. package/dist/types/src/blueprints/project/functions/qualifier.d.ts.map +1 -1
  203. package/dist/types/src/blueprints/project-wizard/blueprint.d.ts +2 -2
  204. package/dist/types/src/blueprints/project-wizard/blueprint.d.ts.map +1 -1
  205. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts +20 -17
  206. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts.map +1 -1
  207. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts +36 -29
  208. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts.map +1 -1
  209. package/dist/types/src/blueprints/project-wizard/functions/index.d.ts +1 -1
  210. package/dist/types/src/blueprints/project-wizard/functions/index.d.ts.map +1 -1
  211. package/dist/types/src/blueprints/project-wizard/functions/project-rules.d.ts +1 -1
  212. package/dist/types/src/blueprints/project-wizard/functions/project-rules.d.ts.map +1 -1
  213. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts +17 -13
  214. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts.map +1 -1
  215. package/dist/types/src/blueprints/testing.d.ts +5 -13
  216. package/dist/types/src/blueprints/testing.d.ts.map +1 -1
  217. package/dist/types/src/blueprints/websearch/blueprint.d.ts +2 -2
  218. package/dist/types/src/blueprints/websearch/blueprint.d.ts.map +1 -1
  219. package/dist/types/src/blueprints/websearch/functions/definitions.d.ts +1 -1
  220. package/dist/types/src/blueprints/websearch/functions/definitions.d.ts.map +1 -1
  221. package/dist/types/src/blueprints/websearch/functions/fetch.d.ts +1 -1
  222. package/dist/types/src/blueprints/websearch/functions/fetch.d.ts.map +1 -1
  223. package/dist/types/src/blueprints/websearch/functions/index.d.ts +1 -1
  224. package/dist/types/src/blueprints/websearch/functions/index.d.ts.map +1 -1
  225. package/dist/types/src/blueprints/websearch/index.d.ts +1 -1
  226. package/dist/types/src/blueprints/websearch/index.d.ts.map +1 -1
  227. package/dist/types/src/blueprints/websearch/toolkit.d.ts +2 -2
  228. package/dist/types/src/blueprints/websearch/toolkit.d.ts.map +1 -1
  229. package/dist/types/src/crud/graph.d.ts +1 -1
  230. package/dist/types/src/crud/graph.d.ts.map +1 -1
  231. package/dist/types/src/errors.d.ts +6 -6
  232. package/dist/types/src/errors.d.ts.map +1 -1
  233. package/dist/types/src/functions/agent/definitions.d.ts +15 -15
  234. package/dist/types/src/functions/agent/definitions.d.ts.map +1 -1
  235. package/dist/types/src/functions/agent/index.d.ts +1 -1
  236. package/dist/types/src/functions/agent/index.d.ts.map +1 -1
  237. package/dist/types/src/functions/agent/prompt.d.ts +1 -1
  238. package/dist/types/src/functions/agent/prompt.d.ts.map +1 -1
  239. package/dist/types/src/functions/index.d.ts +0 -2
  240. package/dist/types/src/functions/index.d.ts.map +1 -1
  241. package/dist/types/src/sync/sync.d.ts.map +1 -1
  242. package/dist/types/src/testing/plugins.d.ts.map +1 -1
  243. package/dist/types/src/types/Agent.d.ts +19 -15
  244. package/dist/types/src/types/Agent.d.ts.map +1 -1
  245. package/dist/types/src/types/Chat.d.ts +8 -4
  246. package/dist/types/src/types/Chat.d.ts.map +1 -1
  247. package/dist/types/src/types/McpServer.d.ts +18 -0
  248. package/dist/types/src/types/McpServer.d.ts.map +1 -0
  249. package/dist/types/src/types/Memory.d.ts +1 -1
  250. package/dist/types/src/types/Memory.d.ts.map +1 -1
  251. package/dist/types/src/types/Plan.d.ts +17 -14
  252. package/dist/types/src/types/Plan.d.ts.map +1 -1
  253. package/dist/types/src/types/index.d.ts +1 -0
  254. package/dist/types/src/types/index.d.ts.map +1 -1
  255. package/dist/types/src/util/graphql.d.ts.map +1 -1
  256. package/dist/types/tsconfig.tsbuildinfo +1 -1
  257. package/package.json +25 -30
  258. package/src/blueprints/automation/blueprint.ts +2 -5
  259. package/src/blueprints/blueprint-manager/blueprint.conversations.json +1 -1
  260. package/src/blueprints/blueprint-manager/blueprint.test.ts +59 -37
  261. package/src/blueprints/blueprint-manager/blueprint.ts +2 -3
  262. package/src/blueprints/blueprint-manager/functions/definitions.ts +2 -3
  263. package/src/blueprints/blueprint-manager/functions/enable-blueprints.ts +1 -2
  264. package/src/blueprints/blueprint-manager/functions/index.ts +1 -1
  265. package/src/blueprints/blueprint-manager/functions/query-blueprints.ts +1 -2
  266. package/src/blueprints/blueprint-manager/functions/update-blueprints.ts +1 -2
  267. package/src/blueprints/browser/blueprint.test.ts +6 -8
  268. package/src/blueprints/browser/blueprint.ts +2 -3
  269. package/src/blueprints/database/blueprint.conversations.json +1 -1
  270. package/src/blueprints/database/blueprint.test.ts +49 -8
  271. package/src/blueprints/database/blueprint.ts +2 -3
  272. package/src/blueprints/database/functions/context-add.ts +1 -1
  273. package/src/blueprints/database/functions/context-remove.ts +1 -1
  274. package/src/blueprints/database/functions/definitions.ts +1 -1
  275. package/src/blueprints/database/functions/index.ts +1 -1
  276. package/src/blueprints/database/functions/load.ts +1 -1
  277. package/src/blueprints/database/functions/object-create.ts +1 -1
  278. package/src/blueprints/database/functions/object-delete.ts +1 -1
  279. package/src/blueprints/database/functions/object-update.ts +2 -2
  280. package/src/blueprints/database/functions/query.ts +2 -3
  281. package/src/blueprints/database/functions/relation-create.ts +1 -1
  282. package/src/blueprints/database/functions/relation-delete.ts +1 -1
  283. package/src/blueprints/database/functions/schema-add.ts +1 -1
  284. package/src/blueprints/database/functions/schema-list.ts +16 -10
  285. package/src/blueprints/database/functions/tag-add.ts +2 -2
  286. package/src/blueprints/database/functions/tag-remove.ts +2 -2
  287. package/src/blueprints/discord/blueprint.ts +2 -3
  288. package/src/blueprints/discord/functions/definitions.ts +2 -3
  289. package/src/blueprints/discord/functions/fetch-messages.test.ts +15 -26
  290. package/src/blueprints/discord/functions/fetch-messages.ts +4 -5
  291. package/src/blueprints/discord/functions/index.ts +1 -1
  292. package/src/blueprints/github/functions/definitions.ts +2 -3
  293. package/src/blueprints/github/functions/fetch-prs.ts +3 -3
  294. package/src/blueprints/github/functions/index.ts +1 -1
  295. package/src/blueprints/index.ts +0 -3
  296. package/src/blueprints/linear/blueprint.ts +2 -3
  297. package/src/blueprints/linear/functions/definitions.ts +2 -3
  298. package/src/blueprints/linear/functions/index.ts +1 -1
  299. package/src/blueprints/linear/functions/linear.test.ts +4 -5
  300. package/src/blueprints/linear/functions/sync-issues.ts +3 -3
  301. package/src/blueprints/memory/blueprint.conversations.json +1 -1
  302. package/src/blueprints/memory/blueprint.test.ts +5 -5
  303. package/src/blueprints/memory/blueprint.ts +3 -4
  304. package/src/blueprints/memory/functions/definitions.ts +1 -1
  305. package/src/blueprints/memory/functions/delete.ts +1 -1
  306. package/src/blueprints/memory/functions/index.ts +1 -1
  307. package/src/blueprints/memory/functions/query.ts +1 -1
  308. package/src/blueprints/memory/functions/save.ts +1 -1
  309. package/src/blueprints/planning/blueprint.ts +2 -3
  310. package/src/blueprints/planning/functions/definitions.ts +1 -1
  311. package/src/blueprints/planning/functions/index.ts +1 -1
  312. package/src/blueprints/planning/functions/update-tasks.ts +2 -2
  313. package/src/blueprints/project/blueprint.conversations.json +1 -1
  314. package/src/blueprints/project/blueprint.test.ts +127 -36
  315. package/src/blueprints/project/blueprint.ts +6 -7
  316. package/src/blueprints/project/functions/add-artifact.ts +2 -2
  317. package/src/blueprints/project/functions/agent.ts +15 -37
  318. package/src/blueprints/project/functions/definitions.ts +5 -8
  319. package/src/blueprints/project/functions/get-context.ts +3 -3
  320. package/src/blueprints/project/functions/index.ts +1 -1
  321. package/src/blueprints/project/functions/qualifier.ts +5 -5
  322. package/src/blueprints/project-wizard/blueprint.ts +12 -8
  323. package/src/blueprints/project-wizard/functions/create-project.ts +3 -4
  324. package/src/blueprints/project-wizard/functions/definitions.ts +3 -4
  325. package/src/blueprints/project-wizard/functions/index.ts +1 -1
  326. package/src/blueprints/project-wizard/functions/project-rules.ts +2 -2
  327. package/src/blueprints/project-wizard/functions/sync-triggers.ts +34 -15
  328. package/src/blueprints/testing.ts +7 -21
  329. package/src/blueprints/websearch/blueprint.conversations.json +1 -1
  330. package/src/blueprints/websearch/blueprint.test.ts +4 -4
  331. package/src/blueprints/websearch/blueprint.ts +2 -3
  332. package/src/blueprints/websearch/functions/definitions.ts +1 -1
  333. package/src/blueprints/websearch/functions/fetch.ts +1 -1
  334. package/src/blueprints/websearch/functions/index.ts +1 -1
  335. package/src/blueprints/websearch/index.ts +1 -1
  336. package/src/blueprints/websearch/toolkit.ts +2 -2
  337. package/src/crud/graph.test.ts +10 -12
  338. package/src/functions/agent/definitions.ts +5 -7
  339. package/src/functions/agent/index.ts +1 -1
  340. package/src/functions/agent/prompt.conversations.json +1 -1
  341. package/src/functions/agent/prompt.test.ts +5 -6
  342. package/src/functions/agent/prompt.ts +44 -42
  343. package/src/functions/index.ts +0 -2
  344. package/src/sync/sync.ts +18 -7
  345. package/src/testing/plugins.tsx +9 -7
  346. package/src/types/Agent.ts +51 -20
  347. package/src/types/Chat.ts +1 -0
  348. package/src/types/McpServer.ts +37 -0
  349. package/src/types/Memory.ts +2 -1
  350. package/src/types/Plan.ts +2 -2
  351. package/src/types/index.ts +1 -0
  352. package/dist/lib/neutral/add-artifact-5TOKSVLY.mjs.map +0 -7
  353. package/dist/lib/neutral/agent-SZV3Q7CN.mjs +0 -97
  354. package/dist/lib/neutral/agent-SZV3Q7CN.mjs.map +0 -7
  355. package/dist/lib/neutral/chunk-6DPL2YY5.mjs.map +0 -7
  356. package/dist/lib/neutral/chunk-6FL4C6KD.mjs +0 -86
  357. package/dist/lib/neutral/chunk-6FL4C6KD.mjs.map +0 -7
  358. package/dist/lib/neutral/chunk-AGG6OZNB.mjs.map +0 -7
  359. package/dist/lib/neutral/chunk-B35UIL3R.mjs.map +0 -7
  360. package/dist/lib/neutral/chunk-B5NOGNUG.mjs.map +0 -7
  361. package/dist/lib/neutral/chunk-BO4ZVH7M.mjs.map +0 -7
  362. package/dist/lib/neutral/chunk-DV5DCOUE.mjs.map +0 -7
  363. package/dist/lib/neutral/chunk-ILZ2ODWC.mjs +0 -95
  364. package/dist/lib/neutral/chunk-ILZ2ODWC.mjs.map +0 -7
  365. package/dist/lib/neutral/chunk-IVXBQQDJ.mjs.map +0 -7
  366. package/dist/lib/neutral/chunk-LI6VMCJW.mjs +0 -27
  367. package/dist/lib/neutral/chunk-LI6VMCJW.mjs.map +0 -7
  368. package/dist/lib/neutral/chunk-MEQYXSDY.mjs.map +0 -7
  369. package/dist/lib/neutral/chunk-MEZ4UFR6.mjs.map +0 -7
  370. package/dist/lib/neutral/chunk-PWGX4QYR.mjs.map +0 -7
  371. package/dist/lib/neutral/chunk-RW4H4TKD.mjs +0 -694
  372. package/dist/lib/neutral/chunk-RW4H4TKD.mjs.map +0 -7
  373. package/dist/lib/neutral/chunk-TCRQCJEJ.mjs.map +0 -7
  374. package/dist/lib/neutral/chunk-V77TCYSP.mjs.map +0 -7
  375. package/dist/lib/neutral/chunk-VD2WAUU2.mjs.map +0 -7
  376. package/dist/lib/neutral/chunk-VDEDVOS6.mjs +0 -39
  377. package/dist/lib/neutral/chunk-VDEDVOS6.mjs.map +0 -7
  378. package/dist/lib/neutral/chunk-XT5ZSUS6.mjs +0 -363
  379. package/dist/lib/neutral/chunk-XT5ZSUS6.mjs.map +0 -7
  380. package/dist/lib/neutral/create-P6I22VS5.mjs +0 -23
  381. package/dist/lib/neutral/create-P6I22VS5.mjs.map +0 -7
  382. package/dist/lib/neutral/create-project-SI5SZ7LJ.mjs.map +0 -7
  383. package/dist/lib/neutral/delete-LHMZDJFA.mjs.map +0 -7
  384. package/dist/lib/neutral/document-create-53ZVNGFR.mjs +0 -57
  385. package/dist/lib/neutral/document-create-53ZVNGFR.mjs.map +0 -7
  386. package/dist/lib/neutral/enable-blueprints-4UMPKGUD.mjs.map +0 -7
  387. package/dist/lib/neutral/entity-extraction-B2CTBGNA.mjs +0 -196
  388. package/dist/lib/neutral/entity-extraction-B2CTBGNA.mjs.map +0 -7
  389. package/dist/lib/neutral/exa-P4G3DCYB.mjs +0 -28
  390. package/dist/lib/neutral/exa-P4G3DCYB.mjs.map +0 -7
  391. package/dist/lib/neutral/fetch-messages-AFX7ZAVE.mjs.map +0 -7
  392. package/dist/lib/neutral/get-context-57JQM4HZ.mjs.map +0 -7
  393. package/dist/lib/neutral/mock-2ARYZ54S.mjs +0 -556
  394. package/dist/lib/neutral/mock-2ARYZ54S.mjs.map +0 -7
  395. package/dist/lib/neutral/object-create-7QCGL56E.mjs.map +0 -7
  396. package/dist/lib/neutral/object-delete-KXBWC4Q4.mjs.map +0 -7
  397. package/dist/lib/neutral/object-update-B7RDX3JC.mjs.map +0 -7
  398. package/dist/lib/neutral/project-rules-NO3QVDZS.mjs.map +0 -7
  399. package/dist/lib/neutral/prompt-K5CIRXOD.mjs.map +0 -7
  400. package/dist/lib/neutral/qualifier-KSGP4CFL.mjs.map +0 -7
  401. package/dist/lib/neutral/query-FMGIPWJG.mjs.map +0 -7
  402. package/dist/lib/neutral/query-MN5B3MQF.mjs.map +0 -7
  403. package/dist/lib/neutral/query-blueprints-EKHEZAGD.mjs.map +0 -7
  404. package/dist/lib/neutral/read-JJN7YXHI.mjs +0 -19
  405. package/dist/lib/neutral/read-JJN7YXHI.mjs.map +0 -7
  406. package/dist/lib/neutral/relation-create-FSHBM5CJ.mjs.map +0 -7
  407. package/dist/lib/neutral/relation-delete-CYYQUIZY.mjs.map +0 -7
  408. package/dist/lib/neutral/research-7JQEX7MU.mjs +0 -109
  409. package/dist/lib/neutral/research-7JQEX7MU.mjs.map +0 -7
  410. package/dist/lib/neutral/save-ZWWNTBOD.mjs.map +0 -7
  411. package/dist/lib/neutral/schema-add-RVV364G6.mjs.map +0 -7
  412. package/dist/lib/neutral/schema-list-DVKEWYIU.mjs.map +0 -7
  413. package/dist/lib/neutral/sync-issues-BBAMXSZN.mjs.map +0 -7
  414. package/dist/lib/neutral/sync-triggers-6EXPBHIQ.mjs.map +0 -7
  415. package/dist/lib/neutral/tag-add-OUDUBR3E.mjs.map +0 -7
  416. package/dist/lib/neutral/tag-remove-DI3ZSLFK.mjs.map +0 -7
  417. package/dist/lib/neutral/update-J64AYUS5.mjs +0 -20
  418. package/dist/lib/neutral/update-J64AYUS5.mjs.map +0 -7
  419. package/dist/lib/neutral/update-blueprints-ZNWR7BBN.mjs.map +0 -7
  420. package/dist/lib/neutral/update-tasks-3YZ3YXIU.mjs.map +0 -7
  421. package/dist/types/src/blueprints/design/blueprint.d.ts +0 -4
  422. package/dist/types/src/blueprints/design/blueprint.d.ts.map +0 -1
  423. package/dist/types/src/blueprints/design/blueprint.test.d.ts +0 -2
  424. package/dist/types/src/blueprints/design/blueprint.test.d.ts.map +0 -1
  425. package/dist/types/src/blueprints/design/index.d.ts +0 -2
  426. package/dist/types/src/blueprints/design/index.d.ts.map +0 -1
  427. package/dist/types/src/blueprints/markdown/blueprint.d.ts +0 -4
  428. package/dist/types/src/blueprints/markdown/blueprint.d.ts.map +0 -1
  429. package/dist/types/src/blueprints/markdown/functions/create.d.ts +0 -8
  430. package/dist/types/src/blueprints/markdown/functions/create.d.ts.map +0 -1
  431. package/dist/types/src/blueprints/markdown/functions/definitions.d.ts +0 -45
  432. package/dist/types/src/blueprints/markdown/functions/definitions.d.ts.map +0 -1
  433. package/dist/types/src/blueprints/markdown/functions/index.d.ts +0 -4
  434. package/dist/types/src/blueprints/markdown/functions/index.d.ts.map +0 -1
  435. package/dist/types/src/blueprints/markdown/functions/read.d.ts +0 -17
  436. package/dist/types/src/blueprints/markdown/functions/read.d.ts.map +0 -1
  437. package/dist/types/src/blueprints/markdown/functions/update.d.ts +0 -16
  438. package/dist/types/src/blueprints/markdown/functions/update.d.ts.map +0 -1
  439. package/dist/types/src/blueprints/markdown/index.d.ts +0 -3
  440. package/dist/types/src/blueprints/markdown/index.d.ts.map +0 -1
  441. package/dist/types/src/blueprints/planning-old/blueprint.d.ts +0 -4
  442. package/dist/types/src/blueprints/planning-old/blueprint.d.ts.map +0 -1
  443. package/dist/types/src/blueprints/planning-old/blueprint.test.d.ts +0 -2
  444. package/dist/types/src/blueprints/planning-old/blueprint.test.d.ts.map +0 -1
  445. package/dist/types/src/blueprints/planning-old/functions/definitions.d.ts +0 -31
  446. package/dist/types/src/blueprints/planning-old/functions/definitions.d.ts.map +0 -1
  447. package/dist/types/src/blueprints/planning-old/functions/index.d.ts +0 -4
  448. package/dist/types/src/blueprints/planning-old/functions/index.d.ts.map +0 -1
  449. package/dist/types/src/blueprints/planning-old/functions/read.d.ts +0 -17
  450. package/dist/types/src/blueprints/planning-old/functions/read.d.ts.map +0 -1
  451. package/dist/types/src/blueprints/planning-old/functions/task-list.d.ts +0 -74
  452. package/dist/types/src/blueprints/planning-old/functions/task-list.d.ts.map +0 -1
  453. package/dist/types/src/blueprints/planning-old/functions/task-list.test.d.ts +0 -2
  454. package/dist/types/src/blueprints/planning-old/functions/task-list.test.d.ts.map +0 -1
  455. package/dist/types/src/blueprints/planning-old/functions/update.d.ts +0 -19
  456. package/dist/types/src/blueprints/planning-old/functions/update.d.ts.map +0 -1
  457. package/dist/types/src/blueprints/planning-old/index.d.ts +0 -3
  458. package/dist/types/src/blueprints/planning-old/index.d.ts.map +0 -1
  459. package/dist/types/src/blueprints/research/blueprint.d.ts +0 -4
  460. package/dist/types/src/blueprints/research/blueprint.d.ts.map +0 -1
  461. package/dist/types/src/blueprints/research/blueprint.test.d.ts +0 -2
  462. package/dist/types/src/blueprints/research/blueprint.test.d.ts.map +0 -1
  463. package/dist/types/src/blueprints/research/functions/definitions.d.ts +0 -21
  464. package/dist/types/src/blueprints/research/functions/definitions.d.ts.map +0 -1
  465. package/dist/types/src/blueprints/research/functions/document-create.d.ts +0 -12
  466. package/dist/types/src/blueprints/research/functions/document-create.d.ts.map +0 -1
  467. package/dist/types/src/blueprints/research/functions/index.d.ts +0 -4
  468. package/dist/types/src/blueprints/research/functions/index.d.ts.map +0 -1
  469. package/dist/types/src/blueprints/research/functions/research.d.ts +0 -18
  470. package/dist/types/src/blueprints/research/functions/research.d.ts.map +0 -1
  471. package/dist/types/src/blueprints/research/functions/research.test.d.ts +0 -2
  472. package/dist/types/src/blueprints/research/functions/research.test.d.ts.map +0 -1
  473. package/dist/types/src/blueprints/research/index.d.ts +0 -4
  474. package/dist/types/src/blueprints/research/index.d.ts.map +0 -1
  475. package/dist/types/src/blueprints/research/types/ResearchGraph.d.ts +0 -24
  476. package/dist/types/src/blueprints/research/types/ResearchGraph.d.ts.map +0 -1
  477. package/dist/types/src/blueprints/research/types/index.d.ts +0 -7
  478. package/dist/types/src/blueprints/research/types/index.d.ts.map +0 -1
  479. package/dist/types/src/functions/entity-extraction/definitions.d.ts +0 -182
  480. package/dist/types/src/functions/entity-extraction/definitions.d.ts.map +0 -1
  481. package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts +0 -4
  482. package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts.map +0 -1
  483. package/dist/types/src/functions/entity-extraction/entity-extraction.test.d.ts +0 -2
  484. package/dist/types/src/functions/entity-extraction/entity-extraction.test.d.ts.map +0 -1
  485. package/dist/types/src/functions/entity-extraction/index.d.ts +0 -4
  486. package/dist/types/src/functions/entity-extraction/index.d.ts.map +0 -1
  487. package/dist/types/src/functions/exa/data/exa-search-1748337321991.d.ts +0 -38
  488. package/dist/types/src/functions/exa/data/exa-search-1748337321991.d.ts.map +0 -1
  489. package/dist/types/src/functions/exa/data/exa-search-1748337331526.d.ts +0 -37
  490. package/dist/types/src/functions/exa/data/exa-search-1748337331526.d.ts.map +0 -1
  491. package/dist/types/src/functions/exa/data/exa-search-1748337344119.d.ts +0 -58
  492. package/dist/types/src/functions/exa/data/exa-search-1748337344119.d.ts.map +0 -1
  493. package/dist/types/src/functions/exa/data/index.d.ts +0 -3
  494. package/dist/types/src/functions/exa/data/index.d.ts.map +0 -1
  495. package/dist/types/src/functions/exa/definitions.d.ts +0 -9
  496. package/dist/types/src/functions/exa/definitions.d.ts.map +0 -1
  497. package/dist/types/src/functions/exa/exa.d.ts +0 -7
  498. package/dist/types/src/functions/exa/exa.d.ts.map +0 -1
  499. package/dist/types/src/functions/exa/index.d.ts +0 -4
  500. package/dist/types/src/functions/exa/index.d.ts.map +0 -1
  501. package/dist/types/src/functions/exa/mock.d.ts +0 -6
  502. package/dist/types/src/functions/exa/mock.d.ts.map +0 -1
  503. package/src/blueprints/browser/blueprint.conversations.json +0 -1
  504. package/src/blueprints/design/blueprint.test.ts +0 -97
  505. package/src/blueprints/design/blueprint.ts +0 -41
  506. package/src/blueprints/design/index.ts +0 -5
  507. package/src/blueprints/markdown/blueprint.ts +0 -36
  508. package/src/blueprints/markdown/functions/create.ts +0 -20
  509. package/src/blueprints/markdown/functions/definitions.ts +0 -80
  510. package/src/blueprints/markdown/functions/index.ts +0 -13
  511. package/src/blueprints/markdown/functions/read.ts +0 -22
  512. package/src/blueprints/markdown/functions/update.ts +0 -22
  513. package/src/blueprints/markdown/index.ts +0 -11
  514. package/src/blueprints/planning-old/blueprint.test.ts +0 -122
  515. package/src/blueprints/planning-old/blueprint.ts +0 -106
  516. package/src/blueprints/planning-old/functions/definitions.ts +0 -53
  517. package/src/blueprints/planning-old/functions/index.ts +0 -12
  518. package/src/blueprints/planning-old/functions/read.ts +0 -24
  519. package/src/blueprints/planning-old/functions/task-list.test.ts +0 -99
  520. package/src/blueprints/planning-old/functions/task-list.ts +0 -165
  521. package/src/blueprints/planning-old/functions/update.ts +0 -31
  522. package/src/blueprints/planning-old/index.ts +0 -6
  523. package/src/blueprints/research/blueprint.test.ts +0 -7
  524. package/src/blueprints/research/blueprint.ts +0 -61
  525. package/src/blueprints/research/functions/definitions.ts +0 -87
  526. package/src/blueprints/research/functions/document-create.ts +0 -50
  527. package/src/blueprints/research/functions/index.ts +0 -12
  528. package/src/blueprints/research/functions/research-instructions.tpl +0 -106
  529. package/src/blueprints/research/functions/research.conversations.json +0 -1
  530. package/src/blueprints/research/functions/research.test.ts +0 -150
  531. package/src/blueprints/research/functions/research.ts +0 -137
  532. package/src/blueprints/research/index.ts +0 -7
  533. package/src/blueprints/research/types/ResearchGraph.ts +0 -62
  534. package/src/blueprints/research/types/index.ts +0 -32
  535. package/src/functions/entity-extraction/definitions.ts +0 -44
  536. package/src/functions/entity-extraction/entity-extraction.conversations.json +0 -1
  537. package/src/functions/entity-extraction/entity-extraction.test.ts +0 -74
  538. package/src/functions/entity-extraction/entity-extraction.ts +0 -159
  539. package/src/functions/entity-extraction/index.ts +0 -9
  540. package/src/functions/exa/data/exa-search-1748337321991.ts +0 -131
  541. package/src/functions/exa/data/exa-search-1748337331526.ts +0 -144
  542. package/src/functions/exa/data/exa-search-1748337344119.ts +0 -133
  543. package/src/functions/exa/data/index.ts +0 -11
  544. package/src/functions/exa/definitions.ts +0 -37
  545. package/src/functions/exa/exa.ts +0 -32
  546. package/src/functions/exa/index.ts +0 -12
  547. package/src/functions/exa/mock.ts +0 -62
  548. /package/dist/lib/neutral/{project-3J3AJCJK.mjs.map → project-2YBPW5N7.mjs.map} +0 -0
@@ -5,9 +5,8 @@
5
5
  import * as Effect from 'effect/Effect';
6
6
  import * as Option from 'effect/Option';
7
7
 
8
+ import { Trigger, Operation } from '@dxos/compute';
8
9
  import { Database, Feed, Filter, Obj, Ref } from '@dxos/echo';
9
- import { Trigger } from '@dxos/functions';
10
- import { Operation } from '@dxos/operation';
11
10
  import { FeedAnnotation } from '@dxos/schema';
12
11
 
13
12
  import { Agent } from '../../../types';
@@ -52,11 +51,13 @@ const syncAgentTriggers = (agent: Agent.Agent): Effect.Effect<void, never, Datab
52
51
  );
53
52
 
54
53
  // Remove all existing triggers — they will be recreated with the current config.
55
- // This ensures operation and concurrency stay in sync when useQualifyingAgent is toggled.
54
+ // This ensures operation, concurrency, and enabled stay in sync when agent fields change.
56
55
  for (const trigger of triggers) {
57
56
  yield* Database.remove(trigger);
58
57
  }
59
58
 
59
+ const triggersEnabled = agent.enabled ?? true;
60
+
60
61
  // Lazy import to avoid circular dependency issues.
61
62
  const { Qualifier, AgentWorker } = yield* Effect.promise(() => import('../../project'));
62
63
 
@@ -84,6 +85,8 @@ const syncAgentTriggers = (agent: Agent.Agent): Effect.Effect<void, never, Datab
84
85
  continue;
85
86
  }
86
87
 
88
+ const filterEvents = agent.filterEvents ?? true;
89
+
87
90
  yield* Database.add(
88
91
  Trigger.make({
89
92
  [Obj.Parent]: agent,
@@ -93,22 +96,19 @@ const syncAgentTriggers = (agent: Agent.Agent): Effect.Effect<void, never, Datab
93
96
  { source: AGENT_TRIGGER_TARGET_EXTENSION_KEY, id: subscription.dxn.toString() },
94
97
  ],
95
98
  },
96
- enabled: true,
97
- spec: {
98
- kind: 'queue',
99
- queue: queueDxn.toString(),
100
- },
101
- function: Ref.make(Operation.serialize(agent.useQualifyingAgent ? Qualifier : AgentWorker)),
99
+ enabled: triggersEnabled,
100
+ spec: Trigger.specQueue(queueDxn.toString()),
101
+ function: Ref.make(Operation.serialize(filterEvents ? Qualifier : AgentWorker)),
102
102
  input: {
103
103
  agent: Ref.make(agent),
104
104
  event: '{{event}}',
105
105
  },
106
- concurrency: agent.useQualifyingAgent ? 5 : undefined,
106
+ concurrency: filterEvents ? 5 : undefined,
107
107
  }),
108
108
  );
109
109
  }
110
110
 
111
- if (agent.useQualifyingAgent && agent.queue) {
111
+ if ((agent.filterEvents ?? true) && agent.queue) {
112
112
  yield* Database.add(
113
113
  Trigger.make({
114
114
  [Obj.Parent]: agent,
@@ -122,11 +122,30 @@ const syncAgentTriggers = (agent: Agent.Agent): Effect.Effect<void, never, Datab
122
122
  ],
123
123
  },
124
124
  function: Ref.make(Operation.serialize(AgentWorker)),
125
- enabled: true,
126
- spec: {
127
- kind: 'queue',
128
- queue: agent.queue.dxn.toString(),
125
+ enabled: triggersEnabled,
126
+ spec: Trigger.specQueue(agent.queue.dxn.toString()),
127
+ input: {
128
+ agent: Ref.make(agent),
129
+ event: '{{event}}',
129
130
  },
131
+ }),
132
+ );
133
+ }
134
+
135
+ // Timer trigger bypasses the qualifier and invokes the agent worker directly on a schedule.
136
+ if (agent.cron) {
137
+ yield* Database.add(
138
+ Trigger.make({
139
+ [Obj.Parent]: agent,
140
+ [Obj.Meta]: {
141
+ keys: [
142
+ { source: AGENT_TRIGGER_EXTENSION_KEY, id: agent.id },
143
+ { source: AGENT_TRIGGER_TARGET_EXTENSION_KEY, id: `timer:${agent.cron}` },
144
+ ],
145
+ },
146
+ enabled: triggersEnabled,
147
+ spec: Trigger.specTimer(agent.cron),
148
+ function: Ref.make(Operation.serialize(AgentWorker)),
130
149
  input: {
131
150
  agent: Ref.make(agent),
132
151
  event: '{{event}}',
@@ -7,39 +7,25 @@ import * as Effect from 'effect/Effect';
7
7
  import { pipe } from 'effect/Function';
8
8
 
9
9
  import { ConsolePrinter } from '@dxos/ai';
10
- import {
11
- AiContextService,
12
- type AiConversation,
13
- type AiConversationRunProps,
14
- GenerationObserver,
15
- } from '@dxos/assistant';
16
- import type { Blueprint } from '@dxos/blueprints';
10
+ import { AiContextService, type AiSession, type AiSessionRunProps, GenerationObserver } from '@dxos/assistant';
11
+ import type { Blueprint } from '@dxos/compute';
17
12
  import { Database, Ref } from '@dxos/echo';
18
13
  import { log } from '@dxos/log';
19
14
 
20
- export type TestStep = Pick<AiConversationRunProps<{}>, 'prompt' | 'system'> & {
15
+ export type TestStep = Pick<AiSessionRunProps, 'prompt' | 'system'> & {
21
16
  test?: () => Promise<void>;
22
17
  };
23
18
 
24
- /**
25
- * Blueprint definition type for testing.
26
- * Mirrors AppCapabilities.BlueprintDefinition to avoid circular dependency with app-toolkit.
27
- */
28
- export interface BlueprintDefinition {
29
- key: string;
30
- make: () => Blueprint.Blueprint;
31
- }
32
-
33
19
  /**
34
20
  * Runs the prompt steps, calling the test function after each step.
35
21
  */
36
- export const runSteps = Effect.fn(function* (conversation: AiConversation, steps: TestStep[]) {
22
+ export const runSteps = Effect.fn(function* (session: AiSession, steps: TestStep[]) {
37
23
  for (const { test, ...props } of steps) {
38
- yield* conversation.createRequest({
24
+ yield* session.createRequest({
39
25
  ...props,
40
26
  observer: GenerationObserver.fromPrinter(new ConsolePrinter({ mode: 'json' })),
41
27
  });
42
- const messages = yield* Effect.promise(() => conversation.getHistory());
28
+ const messages = yield* Effect.promise(() => session.getHistory());
43
29
  log.info('conversation', { messages });
44
30
  if (test) {
45
31
  yield* Effect.promise(() => test());
@@ -51,7 +37,7 @@ export const runSteps = Effect.fn(function* (conversation: AiConversation, steps
51
37
  * Binds blueprints from the blueprint definitions.
52
38
  */
53
39
  // TODO(dmaretskyi): Potentially the agent will auto-bind the blueprints.
54
- export const addBlueprints = Effect.fnUntraced(function* (blueprints: BlueprintDefinition[]) {
40
+ export const addBlueprints = Effect.fnUntraced(function* (blueprints: Blueprint.Definition[]) {
55
41
  yield* AiContextService.bindContext({
56
42
  blueprints: yield* pipe(
57
43
  blueprints,
@@ -1 +1 @@
1
- {"conversations":[{"parameters":{"model":"@anthropic/claude-opus-4-6","stream":true,"tools":[]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n \n</blueprint>","options":{}},{"role":"user","content":"What is the capital of France? Make sure to use the web search tool.","options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01MTp3XGFa5mCTwxcbUeiCC5","modelId":"claude-opus-4-6","timestamp":"2026-04-02T12:23:07.095Z","metadata":{}},{"type":"reasoning-start","id":"0","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"The user is asking me","metadata":{}},{"type":"reasoning-delta","id":"0","delta":" to use a web search tool, but I don't have access to any web search tool. I should answer","metadata":{}},{"type":"reasoning-delta","id":"0","delta":" the question with my knowledge and let them know I don't have a","metadata":{}},{"type":"reasoning-delta","id":"0","delta":" web search tool available.","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"","metadata":{"anthropic":{"type":"thinking","signature":"EoYDClkIDBgCKkB+92OtgFRdK3OHRPpOX3m9Lf21U3GnbpSXGUpi0XWmPc/jKk7wdGMRSPcv54eIb2SNgV2YX5g+4Funh9aarTbwMg9jbGF1ZGUtb3B1cy00LTY4ABIMOUnE/5GT+lFLYkV7GgzswltjKLPX7tuVeQ4iMOSrT5QvD/Act7VYSWdM/pROVUZyJmRtOnip5WwLb98T35SZUAnGi2EYtB7TXExwbyraAdpL4JQHERcEymb+cQMgFjaKTesQU50ZiiXTpG1wPqHPGqjns2KgXXZ8BaFf7RBeUs8wFgzXXX3LhpivIzuIERg1Zb4+rrgtaKExofgmE9khDikom7W7qhzHMXxrSefhis/5NgLtiKUSA8YfNhEM76fCHoj1Uc5H4jMbBuz0/+skcJfdWVPJf5JGZ59m1JJcJ38u/ZrrCmnQj7P1PYSVvvCfNhLlphMc1s9+lk1k3f8td3YA5LpGlCNICchJwH9zTc30LWssoqOsoczXyWKoxkVY84dAp+4eo4NlGAE="}}},{"type":"reasoning-end","id":"0","metadata":{}},{"type":"text-start","id":"1","metadata":{}},{"type":"text-delta","id":"1","delta":"The capital of France is **Paris**.\n\nHowever, I want to be transparent with","metadata":{}},{"type":"text-delta","id":"1","delta":" you: I don't currently have access to a web search tool, so I'm unable to perform a web search as you requested","metadata":{}},{"type":"text-delta","id":"1","delta":". This answer is based on my training knowledge. Paris has been the capital of France for","metadata":{}},{"type":"text-delta","id":"1","delta":" centuries and serves as the country's political, economic, and cultural center.\n\nIf you need verified","metadata":{}},{"type":"text-delta","id":"1","delta":", real-time information, I'd recommend checking a search engine directly.","metadata":{}},{"type":"text-end","id":"1","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":70,"outputTokens":153,"totalTokens":223},"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":70,"output_tokens":5,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-6","stream":true,"tools":[{"name":"fetch-web-page","description":"Fetches the content of a web page and returns the HTML. \nUse this to get the content of a web page.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL of the web page to fetch."}},"additionalProperties":false}},{"name":"AnthropicWebSearch","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n \n</blueprint>","options":{}},{"role":"user","content":"What is the capital of France? Make sure to use the web search tool.","options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01V2V2wEiRd7WE6QAY3kXDZo","modelId":"claude-opus-4-6","timestamp":"2026-04-02T12:34:13.269Z","metadata":{}},{"type":"reasoning-start","id":"0","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"The user wants","metadata":{}},{"type":"reasoning-delta","id":"0","delta":" me to search for the capital of France.","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"","metadata":{"anthropic":{"type":"thinking","signature":"EvEBClkIDBgCKkB1nvlMwE8ieYygBaU+utJJan6F9egjhfPCfB1Sb7olJHFKh2VcCksxZYI/2+O679Sy95vMNzMOXIPrDctYkhJbMg9jbGF1ZGUtb3B1cy00LTY4ABIMSnUQ+0uBJBcyWJT+Ggy5qbaCgY0llLR01M8iMNyZd4ym/mq5pecfOK0y09OTqU1t1NsaeCz5vrz8aznLs96HEDMKaeYc29EJDnjdDCpGSaSJ+2NaLVXKaz16XVEAfnISydxp/u9U11KH7vHTYX1yTPC3cXtH6QyP7wq8CNYCStxfR7aqeTgEiXHd7rWs3F2OIjAa+xgB"}}},{"type":"reasoning-end","id":"0","metadata":{}},{"type":"tool-params-start","id":"srvtoolu_013hMh6yhtcNMPJXbL2GztLF","name":"AnthropicWebSearch","providerName":"web_search","providerExecuted":true,"metadata":{}},{"type":"tool-params-delta","id":"srvtoolu_013hMh6yhtcNMPJXbL2GztLF","delta":"","metadata":{}},{"type":"tool-params-delta","id":"srvtoolu_013hMh6yhtcNMPJXbL2GztLF","delta":"{\"query\": ","metadata":{}},{"type":"tool-params-delta","id":"srvtoolu_013hMh6yhtcNMPJXbL2GztLF","delta":"\"capital of","metadata":{}},{"type":"tool-params-delta","id":"srvtoolu_013hMh6yhtcNMPJXbL2GztLF","delta":" Fr","metadata":{}},{"type":"tool-params-delta","id":"srvtoolu_013hMh6yhtcNMPJXbL2GztLF","delta":"ance\"}","metadata":{}},{"type":"tool-params-end","id":"srvtoolu_013hMh6yhtcNMPJXbL2GztLF","metadata":{}},{"id":"srvtoolu_013hMh6yhtcNMPJXbL2GztLF","type":"tool-result","providerName":"web_search","isFailure":false,"name":"AnthropicWebSearch","result":[{"encrypted_content":"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","page_age":"2 days ago","title":"Paris - Wikipedia","type":"web_search_result","url":"https://en.wikipedia.org/wiki/Paris"},{"encrypted_content":"EoAICioIDhgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDDa0z6V1op1ydTzwKBoMyUSIwCkZbn+9WTJbIjAhgZ672t4vnUkv09Vd+UzGrNV5V2R92bSqPsOaeJwqk/98vEZDgdM+bgfJf0I1rOAqgwc9PFxhLnWy8foDplyOZDCscZnwGW/gsdYveCuBmdUrHQ94TmOpO/EuDL+U/JvnioNXN6UGTuQa6NEGaWXwPc+jlr0pyZ6m0raJBcFRt4bahst9RRRAjKqIEmA2i/nlq3np9MN9N0Nx33JgqnmBDdwsds3V0g+Y/yNAPxopjI/sjAWew4m6DdmPMYNZTVUD61x+RaMh7t9hrjCmOUkTxuqlyjKHMkH3QzXzAq432aquG9ynVnNWxhjeakWK0YYbTNEE/9AT5fs55mho00M4WDejCWmXjD9Y9jAhB3n1eF7nmkNBfqWZFhvCD/YdEnwlpuIQf0mlkUax4kSoG1vj0qgfGWwQ+7rHi3ppJrN/zqCnlCk0u5zKzfOC1jrqDGuIbafUpBIJqSvDY/VwOcdLmPMkGZ5xxU1BANCcXAc3za/htZCX+vxLSITR5u60tXB0T6Lg5Ucs/9sAKX/Der7PbSjC1Ie39jBOQy8War7uxiZ209QuYeMx3o5FygtVirKr795ZwXVoJwVFVkqR15DDR59Ep7bQodqQTlcAMQ4psgb2wyTA3+ffprhmbgBlOHgOQaHCyAAmr244F8TR+OQhnlm1AjDjz/s4yYdenYV9dk5VsJCUmZLUtl8iNSUwst4U9cBD0K901SS9uw7jpXC3T+N1e+qmY5zbOn8Whdj+X5YIJSt1FwP60Ri3vryxraN5gNMFtPSeeI64x6ooz55szSOy6pYC8urteFTKsPUzYunhpQstsQDMBCd9aO1XRqEBMrRs9L9U3gKEZO+VtkoOKMAslL6I9BWxIVqHfP3EZy4XZ6KZEMdyv+F6awV6jI9+tUFzg7XSNZEUTmhxtbum1LeBXSjodOxB4ZMh+rERg02Ons5h9GqE04XaEuIqs4XB/1E5liN1UijxqSSm/I+FqM4AaKtQ1CqWnqKglpWEL0SIaFeWsyL9YmEydDhOSTF052FT/RghI5sj/8cLqFnvz5Ltt7XZlGPj7lN5ile5es+mZZkeSbRuj3ORkTBwywDW69B66OqbIT2O9q6y4AeISXdKrEqlyGCZWy2+n3XY8SkkL+du485a3pZ8tsGqp/AE4lFsTQMo8KZfu/UHsFrhosg1oFnKbzYqq6sqSvN82na76OIt6Xpb4bcIcS3GpaKaSP7H3faDWh8t0GB1b56HO78tjSLME7YBBmh9y4e55EBx3I4SwxgD","title":"Paris facts: the capital of France in history","type":"web_search_result","url":"https://home.adelphi.edu/~ca19535/page%204.html"},{"encrypted_content":"EtsgCioIDhgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDJlGgZGTf53/K6lILBoMLG1nsxr+ymM5/B7BIjDjoXrsVgBhbKnF7npe7oqSkAXKB+mIc+2CLsKRBvF33DnhoIRlKEV6cQPm93yEyv4q3h8yTaVucrH3u7Gbp1ClS9vs2wHB4EUbckHgmzQicliejzfAgINhu5Jmcr8bYjyRDkxX/ZhbscsKMVMQ14xhUlz56eJBqyVLsjBBmR7bSZTteNVqteShauyI5RwQ4W0BMP5Qhxh+4emLGiREFcl7mY9TWp0aHFRjNYejgLmBHTe6odyBsthHFr//n3M5rMFjWnC6R25HWf26egTTVnJaeUdSLGDvwxCRX6jeJ1rkyPc0aHo1zcqnE/ahuAG+4+2jt7/fm9DiUcQWqB/s/RcR5T+tQmEp8fzBpygQZTZA7iStW452brDQzEhrWb6ZCRyx2TmlujstI1wGQSdwL2Wyo5KnRTK3AdO5MJ5ZuSmV+wUOBcP9u6NrPHM9faJT4okzzEB7OsvW7FPWdUsJ8m5hrw8j76347PfCnPJwyjuFbDhx8ERHRZrB0u/se4GZuy+PrTBJdaa4TOP6JLZf7DJbArBMC+JknphrOCpsf9Mq+9pPRdOwWx75ExjHfMNvPVddGd9JjZWG69rY2SQ2tHBln4IeH49Sn1yrAlxuKztQxZTFeOHhaPxNH4RVCUa5zAtV3uo/q0wN9zasDxAAw24OPgipCtXh1TDj0yELuMmsimHs1rfVkIWnAoe4osUTu5Zm0VeIVVk1RTmXgBPx4hsDAhrsLajE0HnZtXGcde03Tk92uJl2ZWGJoACKzntg2521QvzCR5N26P1kJ5QQw+GhIVUHWWa5kWaNFq2aBcn0LHh9GJuC/WEc13kak5cQZ/0n0P4WkPe5f+kY/inUdewcJhcyERYfcUZZtP+yQOSS7Ni5AzDZTKjgt/ZULV+n7eFUy8vdzNbqgc6PgkeLIUN0y8ZAdTfJ5NIjIKJzAbZXowXTuiVAalGUd1Px2fmWr+r/pkQypDe+NYnDOfBUUZyYaCN9e/T0wqmK/JpF1g5W0KGvlKUgrv/qSqSWP1ZdQNel5aiLeauO/DAY1zJ/mEq7FF66N8aCiZaEi58fhSk13ITspWKh7SvzsdqHTI47f7D1Y7SkUzTp7QkNaOuK6RhVuCtkDrPIk88M4dmNJBqBCymXR70JLXnA9AwKRU0n6dEjBHfykoA2PN/cAEjUEIK0Nq0JQIaqoWHfQRQlx0lp+8ozR2qdNALUOEMRa90LHdkKyRoucgqm+VO4ivALFwGwJzCpjpFO69v9hTQ4/gTHkMWzbp+RdKkCWl0Ww5MnqohMCNdoVxhfC030YFvqTb2uih9k1DAiyKLHE6PBgCbuRm6/+gO0zoItxiEevOPiLiqOT1Tfm3dFVCqzo2t23Dno5+ZlydkQMrSfIYjMgpMVHbo3RKLhhaRUKrOd/nOTTn/OxcfIl7ZkbCE7uv+Pj8JrZdX5men93lbQEA4mIr+xILu8bswqkSIQaZQ5ElvLsCvQncNuxY4KPgIKqMO32ESsjnfiIPnf/ViL8mKhtwxzitz9c2/noazarm4rq0peAE34Q4Hh6ye5/77S+UNibK1Ogm5Wnigq5ov9DfqM5s3p1D5Gh4IVYpB6ZtooPhFzCAOQE/uc5WfOqQzKH2YvUuMG7LIU/+PsEKOBjsr716QoxNZ4NnHHDN+fDmiKHRGD5vPg5ciciM4dwjAnJwi1uW9/cTSQT/dLrbdamwq86Xoz5JctLacpRZcgjunZBNjmbbpCuIYda+VReuQPnKLEVVgTNZrCOhOCMLl0h7cGTFersopKpz4SkZleVX1jshfkSiqNKP+lJ7t5ZnfTmlkiyJKDjFbeBne9qFAjyyU/ZU0aURJGexLd0/WC/mB121kdd+pCt6kf/P8Du2NEV8nWMyZJLsg1Pyb0U6vI+YbUy8JCwffu63MAmz+emhJYp/T4jUMrhjFCzyJbwPxsf/Muzf2ItWNJnpfEvmhIeNEa4tEswABwV1FzFGKLys4x7B9RPF8iDtQpRlXcSgOJwlolsuJIovHw/nuAoEAshIMRWfyyvVIH/IBPYPkxtkR3v51+8OT5joBwQWizddK7GWtqlRmXFEMPqPT4NRaAxgV54+Ix+SS5AssztRZ08rcaQSY9E8sebtTquzSKCaAwfNOZRihJZIDbq8+Av0072aVSajLLCSTcq1GbJPFclkZ9Q4oAQWYKSiHkTesz2I9I7JVLx3sk/CbfrzAVjhikbvyu9IErimyCLoZea+oO61vBBebMPmZVkM+mfQSq0aebcoghA3yuhCX9ErDtEdpRjZt0zUGWnJijVfLOsMSrSlyfTPIFj6emf7afZmbsMjDjmFvpxwEYrIxAtoRNLadwmCKiaDh9l7bL8QIQQL6RpuGeYxCx48sXH13X6UbBIiLCuqsoAB0lWStHnWNoVuRxq76BJ/pMzWmuQwUj62r5XbTN1qfD0v+z6VaSAPez4lxl1xzhrRE9m7Ot5jGeZtoWfOc03viMXvFQ1oKkNAgN0d7YiMBWo7oAfOI4SqrDlTo7LosplD6AnEfO/rzb5cLF8MKvZD+EQgCQUCz/p7/TUtsZjKol2lYwXHZkL1EySp58YAukKl44j7THV2ncLmpspq5lwdU4xnDgoKB4d6TeAMpqUsctfxtA0PkzQuCzQfFZmgyGHiwqJ+q9ygwJhtFovvWhwYvH445wWGEmLl5W0D4jVAOxnPvXRvancBNrZqIN/68i+C3zW+6ukzbPw+54DnPC4q/yUelw3M70IBJNKDTMZvvJ2cs0AHHltDk+Tt2z7SIvtg8k4anxJYDkktmeLS60QIuzUXNmC9pnuAeH6t/2Y7ADhrmKhzSYEB2hI8mBF3r9K011Oi7bnrpIeubNBN6E/ctCgX+Kj0aKnJCd1WTJxKQ+K60F1cY6uTQ7dY3Xi44zVFBJeFxSmj8wxPUrj0nkJ9wKtyaWqegr8nJdy8gZd3FOZLSePE4FtuQyDRrjpmw8mIZNdzu+F50fKt5sNh+uw3mjvacxOOqxHMxTnHYpLy1Ly5RiiVGiW9sIxGO6qzoyADC/+xytXhgCxWPKnJKzff6a/25xSsXZSan3hVLOtneK5st9l/SApNjaEB9FVNbSiLoO1GZvoIWrRPOBSOme4Jm4FBpIbgxlDQMW8bkC84tnZydrMT7UilV27zrT8RcOcVUjO8S06iQ6aWJ0A0Vbo7i+aM+/i19w5wvtjTYKICaYmdCTqXECVtjV51Dr7tCcgfD6Dg9m+Yy2/SEf0s6f/AaBMoFdrAcKvA2y7D3SwYD+/dkW/PIDQiTj0+UHQRBZSnCZc7Zpdxqab1BbxwJMYjWIvnyhxqsGnk0fnjqWwv8HLbmhaJQ/zOS7Mp2yVpYkwvC/WhJ3rzaz1moYo+7R24S7zw/iKTwrU54lUVFn8qsyBRkpZuaeVm8QAJ3zqi7Mk+mtoGvJ4W9JI0sJsY+Y+jS0206kPFOr7mUpOtLj5wNO+aUS8NRXF7DvGnaLMwGhPWbx96gXwlFNBmsGjbGLiHOyZ5U7k23Y7yRgCIi7jNAufLf8ghFTF8EL2iVl63zxu/hg7RBMTD+zE6uFDqzaGRzFyBbdDbCfwuqdWPUguvJ3bGJkplMSFnYpO6lEV/HuOTjOEpySa5fDYhS9g+lg8zJwHVu5oWHuREf6AQ1GMWSSGcck9o/yqLDGJT32Q+ZwD+tHvyacjcnJ/mUJFrI2YnA3Xa5nSrRkPdPT/qZi3RLbjv2wUumY2qv8z2oNcI+3kAEBIgF3wea/2wWdE7ZEqR+3A1KdW5F3LMms7cFMG/Pt3kvvwSwjv8SNkH9lc4oo4wo6SAJdB+PlwXSNu0ZM9k9d3VBH1Gd7E/y3ZfuXHswywQNu1mLwfIY6GhbtCgoIhroze0vSZZvNHM1tjx/t+05kqNVZ5imebtgtjqBL4mjODhLinnRaEi8rwdZR3t+3jXtkvW/cdN2rMiALZc8XbLFXYyZyf+tNPQBxpxUON92ojzqZLd2r1bmdZk7I0bpIW8GcwMlgG0elVD3RdiYo9CCsoqX5sU42AOG0bCaV8q8FTS2qrSNkaJwwiKt3Fi9KboI8LK1pelTDYThJW6h0q55caG8lLXvOenooL8qJdAoufNm4Y5XT/3VRf+rSMbuKS/Oj3Hn2W4td3ZAiGzVP6nbrbYXNV74E5i+aQMRno3cbdnFomImiUkfhYYSJ/ZSt0+O7dEXrk0BQXpvY1dqPbz6B5omT+2frQlEOX8fyLxEmDekdh79nAPiqzbRmuD0gzXAVNBipIBiRp3RTR++pLQ0HSWfv4B97Zx3NXTot+sd2Yhjt0M/sQbUPgscOvIfqF9SUv8+oRbUIV9HITsL2G5L/nS5tqhKB8oks9WLc7FScNgUQcB6XG2jOj7wNmPIecKNf65W1fnm3/ryOPfGXcJCAEIxwAiEIyNHOUkLpXv0FeSetb69D1wlg86HzwKitzA+tbfyLrICMohZXGSwE57FGM3PXXzzRMN9fOtwrAt60aG5ChhhDhCR9ADDOzIcA6LinVTSPebcGP09UpQYz2B78x7aMsANVuGbhsvTWX9mklGnSpLh17/IKsAJoFfaNszLjv9uqnPpUS//bjd8u+uqxErXwdPGdB9GxPPycTjmtEy5FCsHXDkvvo8iT6VjI2ekol0on0zQhyo25uF/kkMCkC6+wsF2SO/cKwyi8bxw2qgiaYsZndZtnduCC8MxDix/qP23m0+NpEwp6J0yfRQgtfopLJgHvFrumsweLWjHsHvVC2tGqJUBVUoAIhbebKxB8GFcDT5wwkca8AT6qAGSsma1BbHKZDUwj+aWr/izs9uDNX45ifZ+86sdxTAvCjKDleRun4hrFpQfB35M44h+EKdAPrhAf/VJTzaJOegw+9y6Pqsdv40dwp548oFtUw2RFC27Wkw1CKrrw+XLiF47YweEkMPWrop1/IIqsjnwQA4V45okVGKk1oLYDgfW0gDP3zvDKIWdlddrXvaGOL7P1nSFHh21O5ugo1Lv+ZYrjrgVhw1g9LwNk29HRSClA3hfGznV0jrIn7brT04TcBfrI7AMzxxrSyWZA84G5lOF9KIvyCX1frymutdTTX9nux/fjYLvJp/J16mnNE0AH9if2kkUApvBsXlagbue0GM2QiGXh85r/fetm6x2RVFa2NbTpqgBOOjLi82i3bZGWicagl0epAyNJ43dYL2sL9JysomYSKslh3qhMOBuVVIz+V69ymn/1f8H0q09K1u7TjiBdHPfOw6MrYZwQZw0r/0E+bDNb3Tg6Ia7kbnZPtkNJ8oVbpysXvZmaH9Zt37TR1h/RRg3upqR/TaMF2olKFSe+B5sq1HTNbJ9KeQB0Dr4KrVbywTFXJK06rIXLdMvfiLgcaHKAqzbRSE+6PW6rTwI91zvCWg6s9r71rr5eMk1AwAKu1/In97S+iz5+6uZ0Q2yzX5m435Yw+11z7jALyfC0txd6CVllg3uP1plU7NGqFNa4/oKx2U3zECjA/ogOlMBk/dEYAw==","page_age":"3 days ago","title":"France | History, Maps, Flag, Population, Cities, Capital, & Facts | Britannica","type":"web_search_result","url":"https://www.britannica.com/place/France"},{"encrypted_content":"EsQDCioIDhgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDG21UOYyoPTU5VuHzBoM7eZN2D/f8SWfy9pXIjBEbF+jj+X2FqIoFFya8Wr8AOSQYk3h9dFzw9S6885VwXZSBPQLYx8ISG01ntYK+zgqxwL3J1WN8hxXKxK/1wjvHwCkmPipwODlmRH+s3dVknQ8GuKPcZFMF7o8LfS5rv938eBZh2SYLS8qkfCxXW9l9ZQOMG7z8Rcz7g47XqSJ7+YQB6wXHkmwK/cmVQxTh7a6a3LritpsiVWeTWvVzh1SPOi7MgNwwdMSWGqDXK90cKGnDmrfhWavPyc5HnX7//efTC720GnZUyx/3+2rSw40DYeIqSMNdUGI+I9N38fm0tjOZ0Tp/ddaellR0Uj9SBJFxLHfCHSCM9djgIWj6KeCkHBfNBw6J7GbTLvqPYsiQ81sBVxlpKEVCe+TM/Dz878XQiJUBhjZxQrNpvG7NODz/dCB7AZ4gprDk3w0hqtKp1ecu8DDlmD14orkMdUQj5mpiDn6TY17JuPKd1z8iyRsXYLNkfbz3PBViTV9lbWmF6xrZsvYPZjyQvgYAw==","page_age":"September 16, 2025","title":"Paris, France - Intercultural City - Intercultural Cities Programme - www.coe.int","type":"web_search_result","url":"https://www.coe.int/en/web/interculturalcities/paris"},{"encrypted_content":"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","page_age":"3 weeks ago","title":"List of capitals of France - Wikipedia","type":"web_search_result","url":"https://en.wikipedia.org/wiki/List_of_capitals_of_France"},{"encrypted_content":"ErYlCioIDhgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDDSLJFHprVKbZ0Ce3xoMOUy+QWToklCGQtPXIjDR0txAQHPytrAxVtyaGt616hqVWHdW9ZDScLqkN+ExCzTGViNSB8Ugv4OzfPI3mVcquSTtQ++sDsM6ecGQe4kp/7KurEKU4MQaqxdm5psReh2cMUkyBtmMWC+yilXq0RgkMWHexJ2aG+aN0PdzEnuRrV62gj9XD9DzuJKFABin2h6bSiF5K3UcVrtcFI85ilCk65o8HbSh5Jw4yXT3irgxrnMEwpJJbs2wGCz+1UuBW82nI14ceaSln/RjbrHBc0NBtVaQnT5Zg820mblsSbNxiMQyAK7g9rIv4SgwNuwTTplFrkZNi0D/E4LFIQXXn84u7KzRabmZLmvSIaPwBHLOdAFAupToZGpxyS6Rc2TGNpDX1kmQ+u3VmkHInER0eRR4jY2XAvFR23GDybXxy2IwZMwuoeLCX6AveHAwfd3OWXUuEBKrVD7sxwQokNxWcfzu5ERLoRZ/Or6tyNOF7NfXSJVhV8CNJlD2gUPoWhXtlzRs6+Y+kmQ56stwrh6jlYob0RxYZkN42llVXBF/XOhORdA1lWBG7lz0VmDwKiD6TrU4qn9vacpidexN0ZlssgK5vo6gzrNE2dTTKcN9kgODiKBaBO7jfop1p2Bj1P220ODVNe64Xq9meVRn8Z0nYwJH8c192vaZw1pxVrvuVG1bUP5o2GL2add9uSiR9d6/DyqE9IPWkuR7WBWX8Tz9pp+snIZWyRkDrC3r6XiwIkLDOGk9f6DGorr8B6sW4tLVfP2348ZAG60fAB/t0g02QfzGHgXUtOZOqMK8WsFf1Ueh+jbo+KDTB5xHlc6UfVynWRYXhS31nIf+IWjUi+7aSkgIJ/V+obxs6QQJGECKxZRFJcoRNmDfPOnKRzXRnaPqZB61sRHMe3q+4UtyZ7NtjI/Z9Pc0pypFtKCYcGxdKIRZoIfAYZ5uS0/PSLcJqgjeI79xONzKVLZ1R/gOC/BkaveSRm+88AIxsh68F54T+lVsFsWCJidzsCCHGmctJhMrSSvmxC4EQbgAG827w7ank5oOlHZU7khKNA0GvHJLMU3OmWRbjKayOoZfYgXPEg6J1Dra/LK8wAdQllu5z7r2cvodAC+khvbQ//PW102NtPT/crSzhLPaI95Z6AVBqBFYgFFHiK3GARocge5jp5UxKYCWw0qWFaI9YvqzWSodKu6d2rTBjwG5Ub7urUYG21fw8MbcvQZIFYkUFhIx1cmdZfeAzYQvfjR6iLMsnTCbHKC5xn8fGkp3Es6zJIQHCTgxMvVtmh5zClfhw/8SkJQ8PB6SNkYzCu3qsKRFyPJOBwtQWsA8sTdIGqftL1TQuoepRalI08w79f6hc414XTRzj+3qJns+Dv6GAq/olyD9aTCI7p2yykBPS9xYXjN9rUWtC1c/rFZqAt2kq3JDHFRaSfOA11y8k+8CFel8TTH+BoyFzvTmUHdNn5CJW1juOFDHFrK46nij0ZlNMQ7EQPjzISBJfN2HRjSi+ieXLopu/vjCQRiinxiXBmkp7eigT4cO/RYK2n2bvmhftkVTk4m2qrdVRwlHhcGrp7GrpHslqRVEYHaeLt2hjjtZCAN1rL63Ig7GqlBDTNMOGqDAaX+VO05QhXUMCb9ouvq7npBcuL5wG8hQ4C4H/TGz4ZAfrpwTTeLPvAV/hLTddhM1lM4LBfZuzfFfVxTloXYMTWYiJzt2wGLiOHgOVyC4KRym9YDk4ZflfydFeaH/GytKVlZ4tWNgL5spBjJt9jDuihFNLYZp5tylTuisPWgUIld9lNUBKyyYgVQKMweqAyKIhsAWwFnKoggXwQ5mwGZNM9QeOyUO1Y1ANnLIVExTZa8vg2FD5+zWlfzfbeV7tSFv87bTCu+VNV67BXz3afNCUe4e034BrUrroLDbT4stOeyCsxdn5d89g+SLszwL2T/GS4IYynRcp1wU0ALOpSAALUcUq8CyGD0sYy0rGHPlMXLhWjOmXmMGpqkder4jS7cavXGjLuXbdiR8/DAaz0fbSM7sTNbN5c9ewHFNDiTt6DGuNd7ruMcDfOmssGdC7ElR5VPZunMh5LPryLN4zr/bHLeWokCFWhAsWJMjHH+BIm46KuLOLh98FDBtyyz9BSgLMWE67IFWkZpP11J/p0h59aU3T+IBkLIKOoyMWwIb2fiW9sn26MmKRR2RDJNpcQ8AEGHNi9kxXqBBHjb7LfZo4yDvBsbEJoWwcWDt5vLVzyLHsY3ZITBD/RgukCjrLxap/VrE9vj05w+aLwpY0sBIx+I6jkxt/diEgMq8OCdo6G7m0a3N4h89W2tvoG+yp0etQ7KlR2WHbQGZ/sSWsmMzbAr6eR7GjWVDs/zglkgTwhQ3jO8R8DXYYhGfXrZcxFLobFUiS4Odf/6iQnj23ma33qgobNJt5Li4DswoGIb2BfhdfjL8XJSnEzulTaU5ATXU7PG9kek9T5lNjaI7O1bRgmdFLa0neeGPMF/oGn+qZf4l3LQqx1NotAqHgnXKTM58FbID2JMP/nyyJ9krJ6RwtIM0LcThMrks7W1JMmpfHR8dyEhr6YBNOh7ntmuDCfHbGx4JWnjiJvlNcSleyYQ73erw3EqNymZm0UB4RjwL09/TUNAH14lTEJl46dog0V197GY9k0FXwKb7nlaExnmmzdZ5RDtz5fNC3saeYSk1x67VM7HNPNg+pGvusi9lIsUaNCeMKS2eMvAtJgXtgSs2xlwzxP8h7YcPNArmwwfq2R6WuHy+ChbT+S6J/lZEFmuM92XUD+/o6/kGsOIxofMKxI414mbGkY98k2htSLs0vmzkX6dgrx7u6lVtef6CP8JoRYIcbCbGUN+B4sKhGzxsQ9nt/MsuYpaz90JutkDAt+QmE1KLy9tOK0bqWWRSwTXJsnyySaibhbxTVeGJWJxJjie5Jhmx6QwTlB+m7gYEw4nXTiO7qJKDW0Fy8rCbgdmV824tzvKn4fhpu6GS4qF6kKzU34/XJN0hUgY10I1eP0HhUSu9iVO15J+DL1z+yhSxqaXgRsulRuMJj0XfX7V1jYJxK5AXeZsBluwaThph2IIjJfuIhg0aE1gPBwG5To5dQBuZcJnmNV7Wjn4amc8cgFKaq6nh7jPGPMTr62/+iIpP4oY/YfQkbK3zfNYzAbt8CbKc1LQVO9RDbTMcydp+UGDt4lNgpSk3rRU46YBV6nVQkB6a1wbJNHsqU6b4FSBHpgSVkUvEz9AaO/3A4deD7ZMYrT63JjVoAagzMdqHpikiTc/wx/MIjX7IXb93WV0xHOPz6ptXZZzVltp1cytQv0n+UTalNwSwFcVxTX81J1r7DYsPv7Rg46ma2UAerYlpRuL5R9V7q3tVBB9OJgYGlGeOaK0HJ3k1VN9R1pTrCPTO5KfbC2lH0eC+Q4CW8toZyg/4+ePrPFu81kqn7Shege4KWFQuxzSYuxtCtTyns21R6T8qz682Sj05uqEmbpNjb26bVOfIRn93wR35tqaEaRnYlpr/lMp/pVNWJwtPg98edgljFCnpgiwElArZNXEkIka/om/HV+VI4hYXvmKjRrjlJHzn6ZYUIT9Ve5A6TxQYpzq/pTHbjDYS2wTzHjxr5v6bMSVy4nP+qyR8UcYTsYrBvQMkGcEsLegfoStg5kjztSUzwo9jJtMzrXwARHpT/GI5Zce7xZ0k/pacDbQDON/2aTdsMShsSQ1d6mN+maLl0KQ0JK02vIz1bd5gNGtDrkd0Y4I2+IEhxUCW0KPxSzmkr7A/B9r/dvjno9pxLl7dq2yhup6kFyAiYXlhpDpc6s6eKq/fQpmxMPy5YppI1g9z/6v+UST6T5vDaVEx7KlYsB2/2IrPQLKPxrxIB7D29JMGuBb+MfBxSazM2Lyy1N0agGb6TwGHIiuh2co4rzu+NRSa6s9J2Qo34/VgmAsbvVLN22WrzzoTfjbsOLZcmPCptm/T2X/P9q8pik+SP6Erq4NEPTt3T/hiXRcHzk+U1cyN4v4+fK4IGIcqJs1nN5OFVqCLUwPhYh94rrG4QbwIIr0jQFt7OE3SD8nHTidF2IhC8F+j4yXI146vQQM55JWIMY4jXd9kjxcTRobO5d4xymNkCbGxFbR1cOpiDMgAI+8DyfhN6iZv3xPHJkiJH4hc6KW2FEMhG80Q6kQffVZTuJfkU3Tb518LYHZBCL+hEN8lmpU5Ys2BnFeDGnDhC51M4xpkVXE6evpAFxlFDVjns8aKAcYVYu2qV3Rle40J6OIbFEXzwzMAdzCbmryNl9lIOUq8dTznmiLods4rzue4zlgRt1x7Xwa4b7jFwHPjgLTvVlQEB3vm+pMFgZ4HCIfU0VzPAddZRVXjcCws5cmV40o1/A1jlhFZy6/bR/f0WgSuZNlFzaVoYAaSZgctC2dgsMZ7IdtexUwG6rr5zW+sH7UIM5xOpmWp0MX8AUJXSXkSL1CnsK2HCmgPwIVmCir5Hh8gY0dKDzvegcbCAxpxGbHWgYQPEnhrZFj1ofeSAE5103s7VKftm3wIHGqFUI+LWonlWQf2SyhB9RY1HKXx137qU0d629vgHc0JTvdB2QVW9yZ8q4NeieYj2o/LQ80ZVIA9Y4+MGyyTJBNpqeIZ/y3AJ6ENMw0MZRJOwCzio7w0tjDzVcQ/u3vXeExcEo7lqFymr4FyIbDrJsS2v68RPEQ3ZUq+SN39nR066Z5Sscl1SgwrCzI+2WXagt4cr315JSqaHuwhxXVPTV0BD48cWYf3VID1B8oidR30v5yXVDq2RFSW7el+Z1pWat214IakUQjXpnOj4TqIdFfI22sVfjdtBJp3+Lna+7v2yllIF3RYBCkBCgFlRn1i6LgnwI8EEKhy657a4wed/a13G9FCdGPXQ3e9mAowO7rsD6iQSIxnh6Okz+VM87cwob3QESR/K9ILy/RacqTgXB5opJWM1vwusYnUC5pbQ6EmwddwLGTZ9vv3QLovZjtyWJw+CU8PzwlqrN3xkvI+Prryhp96hNIcfXyVjJzHTJKhWzkbOIhSA8IiCwn2590WvDdCtmEzAHNdUDy3vhx1uPRSCVq32A4h+MYvnwHRGSv4D4OrBKVQYGhYOD2oAYOvWsYzrVbrPE8fxUCgWX9VnyQ8AHE3cNGJLIOGeX1t/W6WpzwkeRPgr3jnBf9KxZbj32ApDDF6nlmE4Ld2C2zuVTiqj3njZtV4sIVNncidkPF0YA2VtCPsCGE2qxyvZICksTFdPomccWpcEf3McSwjkoiOiX9PSWy46TrvDZgUAExqUB0sUZzcF+DML0R6Zzt3gn/yxrdf6prP3tas5VbYGZXsVdTRUr8AAUAZPt8iHDvUoIaA7L9vMRxaAfr7IYaSzEOvdHg++eIuPDlEVVmja43OWRhVXNy8tT7fgNMV0B/PnV/DAJoyLKvyljxfnlarWhkU7sxz38XRYCLN1gP4R4/dBNFekQ+9nfSplKdqs5a5Zj7salExUpHwaN7Ea0rI7hOyf3bB93bXB07gydrDDO9NOxzPRyM76CJk5+M6CvRt4nSYjXAO/hKP3/ndB8NmVs7mJ32mXTtiQ0xdmQzlqm6C0OhCk/eVKnd2zWwORrISDVANoUsf7277R8LFeC2HXCrm6NOD+4W1DDY6CnXIhUxVcZ04jzgJHMOIBia4JmnCldchnisGJmD0QULJkfAXg7t4spd25MjIVOQbSGHz2gUp3OAiV1nZ2DoVJb3ud89lgm75Do9arYaxjuv541Q8T0bzoWzsXYqw+kv0y+0X/7PTKI/ZCM69iu4AF2V7K2FYP27oyZA9JBZNvx1uhv5kJIqNmWXVzbXjkVjFJrFcxYcXkFbD2l9YybYh+Admqx6KZsO7Dp03t3BVOxNV1TFV52Fl0FIoT2cfbdoM4WugTFVL1NUBVrAMVKbY9HVPi7s290Q8HKDE1IC/vSCawXAKPOc8i7Y3KIiAbui1hcOQmTY+Z3+YSW9DJlruubgWcdR0M9Mncrf5ryHyUlf736oihMQ0lT4oi7wF728OJW76SHe2nhMddD/9A13YfsD3hsrcmLbHdhDKANZB+qY7oSW5Vx4inICRyTOpimAe93sTNzZkDNEMf4+jkeULPgX1tjDlxmG/9lExSzuMKTPOh5WypZbj0AlPKmDelN6wK6xV/sFiOoyV5mvsIEeyB2oN5vDlQbtidE0MzWFJvGLjhx+zoe0cn6uffpYfZh9IHq6+3cRGaJfNCpC7GE2s22qpM6HyDlVVY1ZYJhV78DS4sCHUY8MT3koXXKdRp/3uDB8B3+aKE8wq3eD3Znl4k0WPXG6vz0X5fSTyQnRy64tgqAvkkoTl/eYYAw==","page_age":"December 1, 2022","title":"Discover the city of Paris | Paris the capital city of France","type":"web_search_result","url":"https://www.cia-france.com/french-kids-teenage-courses/paris-school/visit-paris"},{"encrypted_content":"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","page_age":"6 hours ago","title":"France - Wikipedia","type":"web_search_result","url":"https://en.wikipedia.org/wiki/France"},{"encrypted_content":"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","title":"Paris, France | Geography and Cartography | Research Starters | EBSCO Research","type":"web_search_result","url":"https://www.ebsco.com/research-starters/geography-and-cartography/paris-france"},{"encrypted_content":"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","page_age":"3 days ago","title":"Paris | Definition, Map, Population, Facts, & History | Britannica","type":"web_search_result","url":"https://www.britannica.com/place/Paris"},{"encrypted_content":"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","page_age":"June 29, 2018","title":"What is the Capital of France?","type":"web_search_result","url":"https://www.worldatlas.com/articles/what-is-the-capital-of-france.html"}],"providerExecuted":true,"metadata":{}},{"type":"text-start","id":"3","metadata":{}},{"type":"text-delta","id":"3","delta":"The","metadata":{}},{"type":"text-delta","id":"3","delta":" capital of France is **Paris**. ","metadata":{}},{"type":"text-end","id":"3","metadata":{}},{"type":"text-start","id":"4","metadata":{}},{"type":"source","sourceType":"url","id":"id_SsXU4ujxOB5MK1YM","url":"https://en.wikipedia.org/wiki/Paris","title":"Paris - Wikipedia","metadata":{"anthropic":{"source":"url","citedText":"Paris is the capital and largest city of France, with an estimated city population of 2.04 million in an area of 105.4 km2 (40.7 sq mi), and a metropo...","encryptedIndex":"Eo8BCioIDhgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDO8Tle7Ez7VRfk5RMxoMB5t+FvnJ6GldY1PGIjCgisWk6Q4aFJjybqXDDSlICzVLsZp5eiUGP63uaVkC7Kkv7+g9YmQtwakPa1oomZgqE20VKpK0vbB51R3xynGQjTAaXe4YBA=="}}},{"type":"text-delta","id":"4","delta":"Paris is the capital and largest city of France, with an estimated","metadata":{}},{"type":"text-delta","id":"4","delta":" city population of 2.04 million and a metropolitan population of 13.2 million as of January","metadata":{}},{"type":"text-delta","id":"4","delta":" 2026.","metadata":{}},{"type":"text-end","id":"4","metadata":{}},{"type":"text-start","id":"5","metadata":{}},{"type":"text-delta","id":"5","delta":" ","metadata":{}},{"type":"text-end","id":"5","metadata":{}},{"type":"text-start","id":"6","metadata":{}},{"type":"source","sourceType":"url","id":"id_pHIRmqUIalwrl1QT","url":"https://www.coe.int/en/web/interculturalcities/paris","title":"Paris, France - Intercultural City - Intercultural Cities Programme - www.coe.int","metadata":{"anthropic":{"source":"url","citedText":"Situated on the Seine River, in the north of the country, it is in the centre of the Île-de-France region, also known as the région parisienne, &quot;...","encryptedIndex":"Eo8BCioIDhgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDHJTMD7JaqXPQAEpmhoMyP0hWifAQsJttwVuIjCRbf89yRYjhlC/XDMMNr0Dg/dkifQ56CuVnIRPgTKuJbcKOec4+fLFjph3A8jfWVQqE2YaExJtFpDNQxUc1HQLpNrzDUcYBA=="}}},{"type":"text-delta","id":"6","delta":"It is situated on the Seine River,","metadata":{}},{"type":"text-delta","id":"6","delta":" in the north of the country, in the centre of the Île-de-France region.","metadata":{}},{"type":"text-end","id":"6","metadata":{}},{"type":"text-start","id":"7","metadata":{}},{"type":"text-delta","id":"7","delta":"\n\n","metadata":{}},{"type":"text-end","id":"7","metadata":{}},{"type":"text-start","id":"8","metadata":{}},{"type":"source","sourceType":"url","id":"id_ZSmMUA5UWje8dxis","url":"https://en.wikipedia.org/wiki/List_of_capitals_of_France","title":"List of capitals of France - Wikipedia","metadata":{"anthropic":{"source":"url","citedText":"The capital of France has been Paris since its liberation in 1944. ","encryptedIndex":"Eo8BCioIDhgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDD9AjVPqzqSGNhV5IBoMtEdSMuH6OL9FQrkLIjAg4tL2ivVcPcLeZi7K3DbvwbBr269Kf8b9EY/UCfxyr/SEQaRMMiyiIPSO4h1M1T4qE7T/PAjH7YTgw6L4KmDzIZR5ceUYBA=="}}},{"type":"text-delta","id":"8","delta":"Paris has been the capital of France since its liberation in 1944","metadata":{}},{"type":"text-end","id":"8","metadata":{}},{"type":"text-start","id":"9","metadata":{}},{"type":"text-delta","id":"9","delta":", though","metadata":{}},{"type":"text-delta","id":"9","delta":" its history as the French capital goes back much further. ","metadata":{}},{"type":"text-end","id":"9","metadata":{}},{"type":"text-start","id":"10","metadata":{}},{"type":"source","sourceType":"url","id":"id_67cv1XrcuSaNV48x","url":"https://home.adelphi.edu/~ca19535/page%204.html","title":"Paris facts: the capital of France in history","metadata":{"anthropic":{"source":"url","citedText":"Paris first became the capital of France in 508 under King Clovis. ","encryptedIndex":"Eo8BCioIDhgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDB2g1/JfLWIqvRGBchoMtgQNbsxi0ydP/anNIjDt8pAiWwZ6BFr+aj9eq6Q09k46FIKoFAvNSPdUGHyij2biVXnvWc5pt97daDCdPJsqE15gUUTVxXj/jNWQ73Ln2KHv29oYBA=="}}},{"type":"text-delta","id":"10","delta":"Paris first became the capital of France in 508 under King Clovis.","metadata":{}},{"type":"text-end","id":"10","metadata":{}},{"type":"text-start","id":"11","metadata":{}},{"type":"text-delta","id":"11","delta":"\n\n","metadata":{}},{"type":"text-end","id":"11","metadata":{}},{"type":"text-start","id":"12","metadata":{}},{"type":"source","sourceType":"url","id":"id_vJS0lQS6LtygsNtV","url":"https://www.britannica.com/place/France","title":"France | History, Maps, Flag, Population, Cities, Capital, & Facts | Britannica","metadata":{"anthropic":{"source":"url","citedText":"The capital and by far the most important city of France is Paris, one of the world’s preeminent cultural and commercial centres. ","encryptedIndex":"Eo8BCioIDhgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDMIRr+EmnTQ0+JOmERoMdE+q+abQpAKQ8lDNIjAo0TqrhNwH2w5kcOslA4H+LTZhrTdmVuGEShnPsr2GYo2vOXpCewoVnpCp86XRe60qE6MUYYfnf2NEFDuOGLyuqORiTW0YBA=="}}},{"type":"text-delta","id":"12","delta":"Paris is the most important city of France and one of the world's pre","metadata":{}},{"type":"text-delta","id":"12","delta":"eminent cultural and commercial centres.","metadata":{}},{"type":"text-end","id":"12","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":2374,"outputTokens":304,"totalTokens":2678},"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":2374,"output_tokens":3,"server_tool_use":null,"service_tier":"standard"}}}}]}]}
1
+ {"conversations":[{"parameters":{"model":"@anthropic/claude-opus-4-6","stream":true,"tools":[{"name":"fetch-web-page","description":"Fetches the content of a web page and returns the HTML. \nUse this to get the content of a web page.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL of the web page to fetch."}},"additionalProperties":false}},{"name":"AnthropicWebSearch","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n \n</blueprint>","options":{}},{"role":"user","content":"What is the capital of France? Make sure to use the web search tool.","options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01Ufv8pJb6Ry13g4beHHysCX","modelId":"claude-opus-4-6","timestamp":"2026-05-03T07:29:41.725Z","metadata":{}},{"type":"reasoning-start","id":"0","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"The","metadata":{}},{"type":"reasoning-delta","id":"0","delta":" user asks about the capital of France and explicitly requests that I use the web search tool.","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"","metadata":{"anthropic":{"type":"thinking","signature":"EpwCClkIDRgCKkCBvqhrPFMZB5TfUfcYt+kCmxoxEqUqP0UaKJNoyxPFKS3GJDd6oIltLwVk6WAYhGg+D0SFW/tTfnAGumqpRid3Mg9jbGF1ZGUtb3B1cy00LTY4ABIM7kkTv8a+fLu1H851GgyTNyFVjW6kby7Iw6ciMBbCrJ92V0tMo+8J+EJmYzKOTayz/3BTcuumOirvlqc1Y4puzThpfSRgHgGEBgggUSpxsVT3GERrlGtE2piT8zLuDIJA7Zx3P0rYhSxh2rAyPsNxwhAMP+8HDsg00PmBeJoq5cjNFO/NUUoKYF5Lj8+gmU7Ng4lFzx9beUBAeGj6GrVwX2atvx5DDNhVufTPUv3BNc/UthgmSqSdIg20OhmBXbEYAQ=="}}},{"type":"reasoning-end","id":"0","metadata":{}},{"type":"tool-params-start","id":"srvtoolu_01DZ9aYNrup4vd8qKpXh1Nqt","name":"AnthropicWebSearch","providerName":"web_search","providerExecuted":true,"metadata":{}},{"type":"tool-params-delta","id":"srvtoolu_01DZ9aYNrup4vd8qKpXh1Nqt","delta":"","metadata":{}},{"type":"tool-params-delta","id":"srvtoolu_01DZ9aYNrup4vd8qKpXh1Nqt","delta":"{\"query\": \"c","metadata":{}},{"type":"tool-params-delta","id":"srvtoolu_01DZ9aYNrup4vd8qKpXh1Nqt","delta":"apital ","metadata":{}},{"type":"tool-params-delta","id":"srvtoolu_01DZ9aYNrup4vd8qKpXh1Nqt","delta":"of France\"}","metadata":{}},{"type":"tool-params-end","id":"srvtoolu_01DZ9aYNrup4vd8qKpXh1Nqt","metadata":{}},{"id":"srvtoolu_01DZ9aYNrup4vd8qKpXh1Nqt","type":"tool-result","providerName":"web_search","isFailure":false,"name":"AnthropicWebSearch","result":[{"encrypted_content":"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","page_age":"1 week ago","title":"Paris - Wikipedia","type":"web_search_result","url":"https://en.wikipedia.org/wiki/Paris"},{"encrypted_content":"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","page_age":"March 10, 2026","title":"List of capitals of France - Wikipedia","type":"web_search_result","url":"https://en.wikipedia.org/wiki/List_of_capitals_of_France"},{"encrypted_content":"EoAICioIDxgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDAum2h1ewx1dNU64ShoMcbvhMhUZAiJfoNAlIjDYwjFq1KNEShN65jhPG43By43OXUiqeLEB61K1VfR39asZ8fpl1JmbNBZK56pLpzUqgwf+UgPDhc7yqgkew7fiW8/j0H8xrc5my4gXfbSqaFN4qtonMZ/8Bcau9xwB9KV8CaY/MuIUJ6qbMeRGjjsEIxrx+O7exa5Gz9S1nMPc73VWCS/sElVFf5XLevMuUz21Gm6GfgxgJgZgAh5/tlIgYtcoBkIvEqdxDadjJ/ZmiLgTy3L0BXE4jl0jJ+Sk9B5f7JoG9Ihz8BidsUwIL+fQ/ytQsbfnEm0BkRyuoJ7p1o0y59Z0LMQvYGG/H/uX/AsSQDFd5dmS6sS9yqoi9i1+UmBUM/JfQWAB/D7IvLb/FxEcfPytP8BXDeQfmZCDYK1CRP5NyCeeYpjE/qAoFnE1qTCH52PCoHhSVjhAnGQzymQx897S2Ap84HlCJB9z5Y+bmO1FmwKS4uZrBvf/PX9pHaehBu3wMf2QK6HwJ+ASSmATQ/I3coCFkcOnby+LkZ0/ipUojvwIyVMzhgYW2MgXZjfcsLCudzSgxtWeJpXXIfUkGZBsby6fIoyTecVUZToe4rdjghgIrHsucj7jy20q6aDvOtD25RV4TV6P75iLUxUVwdi28Ebz/7Zlkn8RB2dbiTFdzPsaXTPD2caQ9bEZUyXj4HoNaDYLx42nG3m4XQfvdx5XguGEuc/xgrels8sVuwDBJrvt9OG4dpn7hPhH8skAu6InieYK/MCxxAMx/DFql1v+Mu14tfMjLpdnfpa67HDHKW1WnfXmFM/WHs0Lu78IV0Kp/Uvk4CxoXDz5GfAst880btTRJrPTRasuTszpQBEn2N2EfpGEMjRTb7O2K83ZB8Xmo1OD8eIITzjH6T1JQLaattY6uapmkU55cU2LPGsW7nA63Yd2wywXs5Q8OZVcAmZAis/vM6T6zB+Ux+IORRruxzqoU5wVrP6qrhurRr62fA01m8zooMEmObpkiwVfCNJdNo6z9/zcL53p7rc4ZauOCRoBb2qOdahNdfEu2jIqSgeJ9QcuNW3vrjv8gmiJnkjUCucTfQT1+iWY9S9I0ATQYZzXLtIfK/G7DIrrPyLutTjbSyccvjKRAdUvFo3CNuWiaDSio3hmIHZu/teSCSFwIuKSsLm7ov8ABxCqtYy4/gxZqCu8jWDxjTgsvcYHaaagMQyxBCAL+MJV95Z7x0Po35D6taA4bpIU2Tx8JNfvdbHWcCyuQVrfKMrl9NeAo3PMMCPqvlp7zJijEHErb4toSBgD","title":"Paris facts: the capital of France in history","type":"web_search_result","url":"https://home.adelphi.edu/~ca19535/page%204.html"},{"encrypted_content":"EsQDCioIDxgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDBcG83g2FtNB/uwNohoMqELMWCCeD4apzlNhIjCRPBxmh6AFZGv+/5HpnuOIX2DoImS7YkyIP8iCg6+grehTkp8pDCrQnpVpzMb8xFAqxwId2pU6hDCGIf86pdIVgvHNdhMiYgByM6E5HLBWnQKOfnJdSRBH1ozvzSimt+tCe4SDBmYMcxYJIfiQcWGhTQbt6kBMf3r5CCHmDF+dbnrMOsWtBwPgj7lWeoXaz7aoeUYNqt2QN3NjWQdMbdsML2arloqAnEHi8QfhpmKJOAwX8AeOGIbcWch5xTCEYb+HNczf4ZF2kO17WwWvPsOYUDFHij3/WhiGNr1+3KWi2I3ia8nfTaiZVa45EECHJcWAs+VWEWtXozGyg9+l/S2f0hH3gEoBcR1OTm6YIjhJepId2TK3ycqiNKEK8pBVlTe1XLjVs4hNd+XOgsZdQVVanFg+AD/fUOk2vtcxNp1d9cPw6yZcX1iXNB+H7v1JLOB4hu3C+cEZKqYz7gT0y3lbvPoX+CUzeAsTAohcsoiUWh0r0hZxu3GmExIYAw==","page_age":"September 16, 2025","title":"Paris, France - Intercultural City - Intercultural Cities Programme - www.coe.int","type":"web_search_result","url":"https://www.coe.int/en/web/interculturalcities/paris"},{"encrypted_content":"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","page_age":"3 days ago","title":"France | History, Maps, Flag, Population, Cities, Capital, & Facts | Britannica","type":"web_search_result","url":"https://www.britannica.com/place/France"},{"encrypted_content":"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","page_age":"December 1, 2022","title":"Discover the city of Paris | Paris the capital city of France","type":"web_search_result","url":"https://www.cia-france.com/french-kids-teenage-courses/paris-school/visit-paris"},{"encrypted_content":"EochCioIDxgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDBCX7Rll7n9hS1MN/RoMoVnxghxm9sn78K7PIjCzkktJLY2aLdvg2+Mh8acrqxC6Vkqjj0XyShZh1Y4UyooBLuy6vXACTYGHMm7cVSEqiiDeHVSvEHDlbdEHNbgzNg2p8w+NA9maHgdCWsFpW+J7TVCF2E4kdcx5tizZoScg4749omt9NZQWGciaeZyYtk/lS1D24P5KEOmwl0rN7ChmxqLe/rKpE9cNWIohHTV0BZv9YH3IzDXNm482N1iP7aKtk3QWYhiqyU/JD5HP6XV3Zh55o6J+FxtcKZP29VwTpf4yyK7LFK/XyHDoVh8pZl2bKs7X+1v5ZKNt4wKouzVI9Tsk6iH+9avfo08h4uWWz3wfwlHaUOTC3LNity4VEc7G2ba8eePEJwpCqXNM6P7EoF24D9303xwWg4gWUnrVF/AOk622q2dhVLVAqsdN8zQ4dp88J3OZQ3tYte1IhwSxQ925POQDRhHbtvU6xrL4etUvNX/GetaZ02LzohwADG6Pih9WyuQu+eO5cX5GrmX3MS1P53xnuz1WzvDuX5RfwNi56O+LKFCw9Ita0rUzk/lAOQddkNTtU/oLGgS08ihnes3irHgDT2DdlWgF/NoyBo8v4K2CuF1hVMFaADgnSE/rOI+FlwEvlV2dmgbgqb+aM698gcJ1AsLhu8VScaPv0nsKCjo6awjCGHRh1wlr5z5U0SLZ9g4qVtjIX8OlCb6PK6qWDewUwVuaYKoDD632jqRBL3E4ZgmyG0womdQCF/a74AvdXXvW/CTj/2VBbRaTS0D5QuW9QSoOJ9IK6E8M29DJuY5GBfCLIjtMNk3NzXTU7I6rG8D0g4+b2oPse7SNzG6ArGPW8PYrGv4QpTlNITvnhjGax5ZuQ8I7QCPQevKfkLf42Dfulj5sWY6oWuHdcw3YEJg2kyNgvjOQ8MT0XQUwK9gBprv1ddwlN4AT/JOIlHMFpL5b+GngvLuo3MvIEvd1tnuiqGr4HRvg+NJT4f56jid0myMDILC0QEQ4diNaBORMcKwgBIrvFa+o63KMHYllhCSvshkcP2xQwbeoJiS1AJYObgcWOLL2Aomxa98b+O1jsM22tf33azGR4Ysg+yL+vUbBfHAb4GofZHdhY3hWZaA/z+aiZjyguc2dwrjI0KWNxFr6yFGRjemYI4pm95qqVphk8TwhMNewum59Fs/rUJ9Q9xnd96nMgm7Pb2+1r1h+DPp0xg0u4ldAZD7HKntBd4fPfYHB2hlijicWTYlgn/d5EUYQgDMTiQeYb/mUHp3ulWhpCJ6D/hzKmJdPjm1fYRsyiS8pStfT4X044BTTt7/gIcuWYR8p1lXTnapfy35sz1WB4tYFSngclIXR/h+EODeZyxzVtoHyPZ++wJeujc80CzhrR8MOlyKwWk3lziSuwVgYcOowupBLA7MPU61PSy3mvseYOK9kJ8Nvz/pITrjd9mfPgE30qpOFQzIrOtDEP3fXH0yX+x3O6nNQRPuxqwk4NYsnoCPXbltxtS5TQOBArKXFy20n1UaLUBwL3qSI0bDGg07qsCf5GxcjdP/zu5UUF99RYzBU7G+4YWU3bEtWX9HywzLDfV7nc+1p3RA41ikget6wAjvlUbMqemc9SK4GjBtB5mAQL9gHhxFWQ2ZmzP4y3/ssb+dNcmFjdX4sqnVjPwLyCr1K57ur18HnPjbejaJ4Jj6L7qXhOUfI5WMByJtLlCesghnITU1wEsQU/wSJIGz/6W9UcZ2rmRvqaX7LnNzX/CVEtIAsPHqFl4GwMZ38+ggwb0G74hzLJsoI0eqTbCUxvaooLCULun/Npkd1VuVCXQyzREotjAakFJgkln2Lv0pyYG1VfO2TSPF3ZdsDpeOvrG7dLSxT2E/Z3rf9TLUd++mb6OPJzHg5m/qzzNPlTyhWm+h58qvE3cPAElw4PnvCnMmKpo2+wTX9+uLjc113wcwVgtx6EmGmbFmKhK+fPbMxPs0V6pDD9PYtxCXQn+ZmkUEoJc/v0+C1DflJdcNicRoEVKlbrFtpXDFGrMeGXLbNg4aqrCS8YKi+sMCpo/vaE7V6xrlUA7MY6TABq8KaRMdaoslByX6VLgnySCL3RivjEfSrHR8FtzW1qauc8F5EvMnb3Qv5/J5EzUOeEUzzsiTeAZwCVdvQ8PKXBonbq1np1T0z0ECymPQJ+kCSgR1pyVo2jyHLYtmQYkQAAMp0vjwRDRxxCZHm6ogmOC8VvoMAXWZ193Ek4urekpMVNNnX1l9S0Ou3/VDw49ZcQnZWm5e0Aj6Bl8aCGwsHS+qbdEjdASBRUchP8Uu7gKr9KVus4Q/RTPaUo14RAaVY7uj17W7SscYwx4exiFelreQegoC646AVUUJlxp6tVJK9mwORIUBDZ1xNxtjplX60ZBO8p7SuuGraTWXY3ua2ozPoDgQn2c0gLvKmM+SHvFjzncQhZNkpce9E4poQa9ySP+KH377ic6lzSnHgi+25itCwEQZnDEnY/kwXwxufv2j1mxgf/lokcOsg+VnY9BKXJFWFKUIsPZOuNeb3amkUphaSRF1G9B4jYoZpSuWFrBIRk7twActm7RUhkju3zWI6TcIJ4uuftChJSfk7j6aFsrjyyR5h2BL+LSJcVBOcl/6FJ3F1IC3nYEh4iOGkd0DQFXq24JNOeNmJF243PRzkJ0KMLbCGw5aKCOkT4LCF426NFw7fV5BCv9ZnQpSZRlI0z3TaSLSDWTElVCH9PI5pjQSNCcbHyuEM/Y2daCZDlLcUFigXT0r7rzwceYzLMvxHM8cDohMQX0ysji6DcTAfryIRLrF+F05RfiOT1vdxq7x/MRqCakiYjWDXayAg5Rvc9RNvxBtWai+HRVkeqjoeL4Sf5DJlexWprkpFQbrX1q34r2blWWbRanHDpQKsgfABjtYN9IqCNov/xwwGgH6iI/lLwGUx7/f9EtXRN7FclNRWpkq17GZaoPJ/mAR8Pv5IP50BFicMng39obnbsS1+ew81Mi2juimELn3yi+FkOW0MoEVMGJ/igcZH5P5hCKrvNqlsGBhBpFoIkBgUBc3WQjBlITIfrmB3qw85U+LlPSfX0SpkoHOUi0m2bjDiOUzoTEyMvxouOqV6GQYK28EoLKrQednNWcYhTYHOjmvxDVbBLEv+ETs4Z4qZG5V4lQGHnYVlX/jnQtNptCgJaBGZLjCse4cKw3useFIo3LzazTwx37WEG+eett1XKh/WjZaWUfaADC3uS/vrU8hyc9DnT62kfRym2MpZLyXgp/k/0ckiC3ZAJ0YBjDYZp9qooFBDmc14Yy6M4e9LymByZ9tlpwrxsnscChk4OrOweJX5u6PFDA1ME5xtihnmvEmMjh6m/Iz+jxW3seNFZv4w67i0AoXD7s+dLK3jrvIJfZ+8DGS6/SANIlQJW2xSW9332XBfGqP3hRE53/p4pRqGONEIsNOUavN+6yxVDkNIpNYPjDqsJqqUvhm9z/4x/214ugPRGz1iUW1f0btCoU2a9aYw3zk5pQWxDWmNkmOZ2/nAyp97b2zOC9PnxsTRI0ocb61A3mKre3xvDlsjIAdt5k2QX0jhzHKStEE7c8SatHv6UROg9JNR1/qLFKCKVogbQiFfvXn6jsUmD5JButaM341PyskfBAxhLambc51yoaqTnyr1nKBWegK3XXxt4vflj7VE8w/mLOF9nER6xaLDS6ga/x2CudleGtU5sa1qtWyWjSwFa3SbfZg7z2WLtrqSt7BfR7QxdzO22Lpyo/E+App+HvLwZbmi3MGfXkdG+S9l9zgIG4i/o7eq4DvNbwl84HenwU9BbKzLLtucto6uZNsNTvtaYTMigJdova1ud5nZ5HnbWlGBKJ++esWlI5ikFXsyAD7JdDW8sOFitThNfNp5A1ol52m5klQdMq7a2e6gqhr2JI5RHg6f/zVO7H9kkO4z5+xY8vI7hyToDykDFlTv+ibVlgmUN/JgnNfpJ1Adh1tl9dTrRP7mL4QdjXBIZT/0+n669xWCTitk3epmj37RFIJ2U6eLvnA5HG7iOeQO3TxoP9oqIE0gTbU1DUq02I1i2boovU+s0zCHMhR9+h52sVPdvKlBuRvCWqC+GxZua1DJeBeyfXGFntoh+Shr/beRBMbA00jQg3pyKNLxobWdjUi6tiJvtPumI9KGCjGkISZV6xehEiQSD2kvHGbIwkDlwgRtIHHD3rLRtQYaMVhDhskKPh+gbzCtpxTBJ+NOekSzinosuM7zLogNl+o77U43XIyyAmwdhSOLHWhwaYGrGXGYvLYjjyNSLZRUbO+ebVjb+CbhTEOpZMf3j44lMOACn7MBxYV7mz+2JKV9tnpp0hqd8wowHR6vtKQYC4FtM4Hi37G8luS4liaJF1V7B5xEh4WcrMz7IIDyaI8Z/e4rGVSxFu+vOTl1oVNh+QZoZEyNrdKRSjt9cVCgIJTEmu6XF+0alM2djy+0Dx4rUum0LWsPlhTknYHz0204hwt2Pp3hfEB1MjEAotcV3+b/53XsL/84+lGBQSNBaDFN09WoQ/elj+a+DNeQ99qCZk/cPTBPWTJff1T5a8GM8JmgLQQhMbRT5fXfwPYULDpJWCqZLlpfEbrtzf30ANYozzai5JTptSlofjNqrC5uYf6C/bV+FtoSeHsSvHuv/I8L/GerVXO5Y5rHgruvmO4Po4BAm8knUSJkJ/BRc4e7JtvhmpTgGpNn9USkeEcvvD6nXHogqLk1yfEAJlkJyjR0Zd4Xw/vt1ulZzDth8/kqnvjw/VhrHajVcJ0yVXuSzQw1Xo+5BIhOWeG1cBRzgdhsvtWr464Vm2szivuxnssdyh3s+pN5Nq5yrz3+PS0pz0827fgKKbRNA5TTPYu0SQ7Gp3q3MWacFeLIk4Exu0Fat5YxLKp/ZLnzIY/afsIdSfzmjDWr43UiUcD4TEsRZlpoSkzoMNzIhraXQujEF0f3yn80XbmE0cptK3eDynmn/gRfBjQnZPq8u1+wZEy2t29vbXLnaiKfCC0QsEjrfXlYo/bBH+g5ReBz/67C7q+eqrBoe46DzGQU/0ESq+7O0Db4+jW/kZ0DMx6Ib3kITVOXqoc066EzRG73+luUiVkgN8KStXoSRImS+3VR5HzIB/AC+Rh6a5q0Uq7Vo/ssqvOdoXAYFtXH46wq4iRTPnOwl9QAMSa4RKruq/8+yEKpK2SwKm702sSSgwmz7Hx2D68u9IdyY4DYraEAoaHjeSSh+nXE3mKhayN5BwVkqRwmiwhjBoNkWZSoqIFzlh68apiifEgDYE8Op+uKuemSat8lg3cjgnFIl2TI21ChrliQZyaIaWjUhRQUNAUNt3tkeiqiYyC5uLzdcg72hewj0tOHuuGRyuR2IY9/aGmaWBuQWBJB099uNHGD0D5SxNGImSEgwBVd85csjw2Bs9TQ0ypUOt51BUCRA3RZio4YKSgMtCui1ckookl9gTEuE7f8KeAeXKPUBNSzp398PM4X/zzRZZrtznEG25yp1nR/0iRqG6K1GSwYogfziikj9qb5IY20hyV/oSxX0INZ+bPgGIOjOgIZwMT23xGRsqhw6n4JxPfQTwW7kQSlS3vN9RgD","page_age":"5 days ago","title":"Paris | Definition, Map, Population, Facts, & History | Britannica","type":"web_search_result","url":"https://www.britannica.com/place/Paris"},{"encrypted_content":"EsUBCioIDxgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDBeutxYXKz1s7fTLSBoMeijqoaep3kNwVyCxIjC1Krrs8T1CsAJD8JiVx2S7Aes8fjfaltJk3wpDPUFyXq4PgmbAXjkYF/a6PVSHf+QqSaAthG5JnYOuPsavT38Ia7YHlAxZF5QiDHUi1ztOvDkhRQwh+ucuqp4r7BIqtlRZC+lNQtxTy6NnHTbSiMxdPnuY8MC/DtytOjsYAw==","title":"Paris 🇫🇷, the capital and largest city of France, is located in ...","type":"web_search_result","url":"https://www.facebook.com/61551442420211/posts/paris-the-capital-and-largest-city-of-france-is-located-in-the-northern-part-of-/122180773544048080/"},{"encrypted_content":"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","page_age":"November 28, 2024","title":"What is the capital of France? Overview of Paris/","type":"web_search_result","url":"https://www.iroamly.com/france-travel/what-is-the-capital-of-france.html"},{"encrypted_content":"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","title":"Facts About France | Map, Population & Capital | Study.com","type":"web_search_result","url":"https://study.com/academy/lesson/facts-about-france-location-population-history.html"}],"providerExecuted":true,"metadata":{}},{"type":"text-start","id":"3","metadata":{}},{"type":"text-delta","id":"3","delta":"The","metadata":{}},{"type":"text-delta","id":"3","delta":" capital of France is **Paris**. ","metadata":{}},{"type":"text-end","id":"3","metadata":{}},{"type":"text-start","id":"4","metadata":{}},{"type":"source","sourceType":"url","id":"id_fwUBOLBrWwcuyNqK","url":"https://en.wikipedia.org/wiki/Paris","title":"Paris - Wikipedia","metadata":{"anthropic":{"source":"url","citedText":"Paris is the capital and largest city of France, with an estimated city population of 2.04 million in an area of 105.4 km2 (40.7 sq mi), and a metropo...","encryptedIndex":"Eo8BCioIDxgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDPEDmYObIs3O1MRjthoMX0x7AqyA5zzr6ui/IjDPs2o+gZrKct/MV8yKk9lxe+xK5xB8vqmppkPa4bUeUYkb3uidb1LnF6+sCgUEPOQqEy8MiG6rWIWTJXdBrQ0RrtxUjwkYBA=="}}},{"type":"text-delta","id":"4","delta":"Paris is the capital and largest city of France,","metadata":{}},{"type":"text-delta","id":"4","delta":" with an estimated city population of 2.04 million and a metropolitan population","metadata":{}},{"type":"text-delta","id":"4","delta":" of 13.2 million.","metadata":{}},{"type":"text-end","id":"4","metadata":{}},{"type":"text-start","id":"5","metadata":{}},{"type":"text-delta","id":"5","delta":" ","metadata":{}},{"type":"text-end","id":"5","metadata":{}},{"type":"text-start","id":"6","metadata":{}},{"type":"source","sourceType":"url","id":"id_EmhrrcqHK3Ln29Oi","url":"https://www.britannica.com/place/Paris","title":"Paris | Definition, Map, Population, Facts, & History | Britannica","metadata":{"anthropic":{"source":"url","citedText":"Paris, city and capital of France, located along the Seine River, in the north-central part of the country. ","encryptedIndex":"Eo8BCioIDxgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDFT2x0eMuJ2+mrhpzxoM9qih2j2EUr9ZoqGfIjDhNqItV+C8pt9vmjzhN8h+vEavYAEF1uzX8iql8MWgarlK7njWhemgqMhFCP/io2YqE529/WSIr5GXr0cgip6TAXRwzzQYBA=="}}},{"type":"text-delta","id":"6","delta":"It is situated along","metadata":{}},{"type":"text-delta","id":"6","delta":" the Seine River, in the north-central part of the country.","metadata":{}},{"type":"text-end","id":"6","metadata":{}},{"type":"text-start","id":"7","metadata":{}},{"type":"text-delta","id":"7","delta":"\n\n","metadata":{}},{"type":"text-end","id":"7","metadata":{}},{"type":"text-start","id":"8","metadata":{}},{"type":"source","sourceType":"url","id":"id_M8JykQskNEW0NWW0","url":"https://en.wikipedia.org/wiki/List_of_capitals_of_France","title":"List of capitals of France - Wikipedia","metadata":{"anthropic":{"source":"url","citedText":"The capital of France has been Paris since its liberation in 1944. ","encryptedIndex":"Eo8BCioIDxgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDD56zsiLaXCYCfT+rxoM2+R8f8hQNHfgvJgGIjC8spp5wvgU6ok7eHxmKtNp2cTVsujrWbL8ea9TdX43PGTtK6rgsdYTxuKBGVLf9r0qE30VvwZZrucC4RJrDl2lFgSVguoYBA=="}}},{"type":"text-delta","id":"8","delta":"Paris has been","metadata":{}},{"type":"text-delta","id":"8","delta":" the capital of France since its liberation in 1944","metadata":{}},{"type":"text-end","id":"8","metadata":{}},{"type":"text-start","id":"9","metadata":{}},{"type":"text-delta","id":"9","delta":", though its history as","metadata":{}},{"type":"text-delta","id":"9","delta":" the French capital goes back much further. ","metadata":{}},{"type":"text-end","id":"9","metadata":{}},{"type":"text-start","id":"10","metadata":{}},{"type":"source","sourceType":"url","id":"id_RKtjkhfDCb6xTpdL","url":"https://home.adelphi.edu/~ca19535/page%204.html","title":"Paris facts: the capital of France in history","metadata":{"anthropic":{"source":"url","citedText":"Paris first became the capital of France in 508 under King Clovis. ","encryptedIndex":"Eo8BCioIDxgCIiRlOTk3NGY0Mi0xMmMzLTRlYWUtOTA5OS01OGNiNGE1MzQyY2YSDOmD0gZDTk4EUhZxTRoM7o3FKIIkPpokD8MPIjD7SHZyHs2FbmkDuzxdr6QKhNyLcARG1P9qp5+GsL1n2QKy2+CBozckttRU1v/0/MAqE7X5OvyUYhzCyjTd6OSJljZaS54YBA=="}}},{"type":"text-delta","id":"10","delta":"Paris first became the capital of France in 508","metadata":{}},{"type":"text-delta","id":"10","delta":" under King Clovis.","metadata":{}},{"type":"text-end","id":"10","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":2345,"outputTokens":264,"totalTokens":2609},"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":2345,"output_tokens":9,"server_tool_use":null,"service_tier":"standard"}}}}]}]}
@@ -5,18 +5,18 @@
5
5
  import { describe, it } from '@effect/vitest';
6
6
  import * as Effect from 'effect/Effect';
7
7
 
8
- import { AgentService } from '@dxos/assistant';
9
- import { AssistantTestLayer } from '@dxos/assistant/testing';
10
8
  import { TestHelpers } from '@dxos/effect/testing';
9
+ import { AgentService } from '@dxos/functions-runtime';
10
+ import { AssistantTestLayer } from '@dxos/functions-runtime/testing';
11
11
 
12
12
  import WebSearchBlueprint from './blueprint';
13
13
  import { WebSearchHandlers } from './functions';
14
- import { WebSearchToolkitGeneric } from './toolkit';
14
+ import { WebSearchToolkitOpaque } from './toolkit';
15
15
 
16
16
  const TestLayer = AssistantTestLayer({
17
17
  blueprints: [WebSearchBlueprint.make()],
18
18
  operationHandlers: [WebSearchHandlers],
19
- toolkits: [WebSearchToolkitGeneric],
19
+ toolkits: [WebSearchToolkitOpaque],
20
20
  tracing: 'pretty',
21
21
  });
22
22
 
@@ -2,8 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type AppCapabilities } from '@dxos/app-toolkit';
6
- import { Blueprint } from '@dxos/blueprints';
5
+ import { Blueprint } from '@dxos/compute';
7
6
  import { Ref } from '@dxos/echo';
8
7
  import { Text } from '@dxos/schema';
9
8
 
@@ -23,7 +22,7 @@ const make = () =>
23
22
  tools: Blueprint.toolDefinitions({ operations: [Fetch], tools: ['AnthropicWebSearch'] }),
24
23
  });
25
24
 
26
- const blueprint: AppCapabilities.BlueprintDefinition = {
25
+ const blueprint: Blueprint.Definition = {
27
26
  key: BLUEPRINT_KEY,
28
27
  make,
29
28
  };
@@ -4,7 +4,7 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
- import { Operation } from '@dxos/operation';
7
+ import { Operation } from '@dxos/compute';
8
8
  import { trim } from '@dxos/util';
9
9
 
10
10
  export const Fetch = Operation.make({
@@ -4,7 +4,7 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { Operation } from '@dxos/operation';
7
+ import { Operation } from '@dxos/compute';
8
8
 
9
9
  import { Fetch } from './definitions';
10
10
 
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { OperationHandlerSet } from '@dxos/operation';
5
+ import { OperationHandlerSet } from '@dxos/compute';
6
6
 
7
7
  export * from './definitions';
8
8
 
@@ -3,5 +3,5 @@
3
3
  //
4
4
 
5
5
  export { default as WebSearchBlueprint } from './blueprint';
6
- export { WebSearchToolkit, WebSearchToolkitGeneric } from './toolkit';
6
+ export { WebSearchToolkit, WebSearchToolkitOpaque } from './toolkit';
7
7
  export { Fetch as WebSearchFetch, WebSearchHandlers } from './functions';
@@ -6,8 +6,8 @@ import * as AnthropicTool from '@effect/ai-anthropic/AnthropicTool';
6
6
  import * as Toolkit from '@effect/ai/Toolkit';
7
7
  import * as Layer from 'effect/Layer';
8
8
 
9
- import { GenericToolkit } from '@dxos/ai';
9
+ import { OpaqueToolkit } from '@dxos/ai';
10
10
 
11
11
  export const WebSearchToolkit = Toolkit.make(AnthropicTool.WebSearch_20250305({}));
12
12
 
13
- export const WebSearchToolkitGeneric = GenericToolkit.make(WebSearchToolkit, Layer.empty);
13
+ export const WebSearchToolkitOpaque = OpaqueToolkit.make(WebSearchToolkit, Layer.empty);
@@ -6,23 +6,21 @@ import { describe, it } from '@effect/vitest';
6
6
  import * as Effect from 'effect/Effect';
7
7
  import * as Layer from 'effect/Layer';
8
8
 
9
- import { AiSession } from '@dxos/assistant';
10
- import { AssistantTestLayer } from '@dxos/assistant/testing';
9
+ import { OpaqueToolkit } from '@dxos/ai';
10
+ import { AiRequest, ToolExecutionServices } from '@dxos/assistant';
11
11
  import { TestHelpers } from '@dxos/effect/testing';
12
+ import { AssistantTestLayer } from '@dxos/functions-runtime/testing';
12
13
  import { log } from '@dxos/log';
13
14
  import { Pipeline } from '@dxos/types';
14
15
 
15
16
  import { makeGraphWriterHandler, makeGraphWriterToolkit } from './graph';
16
17
 
17
- const TestLayer = AssistantTestLayer({});
18
+ const TestLayer = Layer.empty.pipe(
19
+ Layer.provideMerge(ToolExecutionServices),
20
+ Layer.provideMerge(AssistantTestLayer({})),
21
+ );
18
22
 
19
23
  describe('graph', () => {
20
- // let builder: EchoTestBuilder;
21
- // test('findRelatedSchema', async () => {
22
- // const db = await createEchoDatabase();
23
- // const relatedSchemas = await findRelatedSchema(db, Schema.Struct({}));
24
- // });
25
-
26
24
  const Toolkit = makeGraphWriterToolkit({ schema: [Pipeline.Pipeline] });
27
25
  const ToolkitLayer = makeGraphWriterHandler(Toolkit);
28
26
 
@@ -30,9 +28,9 @@ describe('graph', () => {
30
28
  'calculator',
31
29
  Effect.fn(
32
30
  function* (_) {
33
- const session = new AiSession();
34
- const toolkit = yield* Toolkit;
35
- const response = yield* session.run({
31
+ const request = new AiRequest();
32
+ const toolkit = yield* OpaqueToolkit.fromContext(Toolkit);
33
+ const response = yield* request.run({
36
34
  toolkit,
37
35
  prompt: 'What is 10 + 20?',
38
36
  });
@@ -4,11 +4,9 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
- import { AiService, GenericToolkit, ModelName } from '@dxos/ai';
8
- import { Prompt } from '@dxos/blueprints';
7
+ import { AiService, OpaqueToolkit, ModelName } from '@dxos/ai';
8
+ import { Routine, Trace, Operation, OperationRegistry } from '@dxos/compute';
9
9
  import { Database, Feed, Ref } from '@dxos/echo';
10
- import { Trace } from '@dxos/functions';
11
- import { Operation, OperationRegistry } from '@dxos/operation';
12
10
 
13
11
  import * as Chat from '../../types/Chat';
14
12
 
@@ -19,10 +17,10 @@ export const AgentPrompt = Operation.make({
19
17
  description: 'Agentic worker that executes a provided prompt using blueprints and tools.',
20
18
  },
21
19
  input: Schema.Struct({
22
- prompt: Ref.Ref(Prompt.Prompt),
20
+ prompt: Ref.Ref(Routine.Routine),
23
21
 
24
22
  /**
25
- * When set, runs in this chat (history, queue, and bound context). Prompt blueprints and context objects are merged into the conversation for this request.
23
+ * When set, runs in this chat (history, queue, and bound context). Routine blueprints and context objects are merged into the conversation for this request.
26
24
  */
27
25
  chat: Schema.optional(Ref.Ref(Chat.Chat)),
28
26
 
@@ -46,7 +44,7 @@ export const AgentPrompt = Operation.make({
46
44
  AiService.AiService,
47
45
  Database.Service,
48
46
  Feed.FeedService,
49
- GenericToolkit.GenericToolkitProvider,
47
+ OpaqueToolkit.OpaqueToolkitProvider,
50
48
  OperationRegistry.Service,
51
49
  Trace.TraceService,
52
50
  ],
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { OperationHandlerSet } from '@dxos/operation';
5
+ import { OperationHandlerSet } from '@dxos/compute';
6
6
 
7
7
  export * from './definitions';
8
8