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

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 (403) hide show
  1. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  2. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  3. package/dist/lib/{browser → neutral}/index.mjs +2989 -1842
  4. package/dist/lib/neutral/index.mjs.map +7 -0
  5. package/dist/lib/neutral/meta.json +1 -0
  6. package/dist/lib/neutral/testing/index.mjs +81 -0
  7. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  8. package/dist/types/src/blueprints/browser/blueprint.d.ts +4 -0
  9. package/dist/types/src/blueprints/browser/blueprint.d.ts.map +1 -0
  10. package/dist/types/src/blueprints/browser/blueprint.test.d.ts +2 -0
  11. package/dist/types/src/blueprints/browser/blueprint.test.d.ts.map +1 -0
  12. package/dist/types/src/blueprints/browser/index.d.ts +2 -0
  13. package/dist/types/src/blueprints/browser/index.d.ts.map +1 -0
  14. package/dist/types/src/blueprints/database/blueprint.d.ts +4 -0
  15. package/dist/types/src/blueprints/database/blueprint.d.ts.map +1 -0
  16. package/dist/types/src/blueprints/database/blueprint.test.d.ts +2 -0
  17. package/dist/types/src/blueprints/database/blueprint.test.d.ts.map +1 -0
  18. package/dist/types/src/blueprints/database/functions/context-add.d.ts +6 -0
  19. package/dist/types/src/blueprints/database/functions/context-add.d.ts.map +1 -0
  20. package/dist/types/src/blueprints/database/functions/context-remove.d.ts +6 -0
  21. package/dist/types/src/blueprints/database/functions/context-remove.d.ts.map +1 -0
  22. package/dist/types/src/blueprints/database/functions/index.d.ts +57 -0
  23. package/dist/types/src/blueprints/database/functions/index.d.ts.map +1 -0
  24. package/dist/types/src/blueprints/database/functions/load.d.ts +6 -0
  25. package/dist/types/src/blueprints/database/functions/load.d.ts.map +1 -0
  26. package/dist/types/src/blueprints/database/functions/object-create.d.ts +6 -0
  27. package/dist/types/src/blueprints/database/functions/object-create.d.ts.map +1 -0
  28. package/dist/types/src/blueprints/database/functions/object-delete.d.ts +6 -0
  29. package/dist/types/src/blueprints/database/functions/object-delete.d.ts.map +1 -0
  30. package/dist/types/src/blueprints/database/functions/object-update.d.ts +9 -0
  31. package/dist/types/src/blueprints/database/functions/object-update.d.ts.map +1 -0
  32. package/dist/types/src/blueprints/database/functions/query.d.ts +9 -0
  33. package/dist/types/src/blueprints/database/functions/query.d.ts.map +1 -0
  34. package/dist/types/src/blueprints/database/functions/relation-create.d.ts +9 -0
  35. package/dist/types/src/blueprints/database/functions/relation-create.d.ts.map +1 -0
  36. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts +6 -0
  37. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts.map +1 -0
  38. package/dist/types/src/blueprints/database/functions/schema-add.d.ts +7 -0
  39. package/dist/types/src/blueprints/database/functions/schema-add.d.ts.map +1 -0
  40. package/dist/types/src/blueprints/database/functions/schema-list.d.ts +5 -0
  41. package/dist/types/src/blueprints/database/functions/schema-list.d.ts.map +1 -0
  42. package/dist/types/src/blueprints/database/functions/tag-add.d.ts +7 -0
  43. package/dist/types/src/blueprints/database/functions/tag-add.d.ts.map +1 -0
  44. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts +7 -0
  45. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts.map +1 -0
  46. package/dist/types/src/blueprints/database/index.d.ts +3 -0
  47. package/dist/types/src/blueprints/database/index.d.ts.map +1 -0
  48. package/dist/types/src/blueprints/design/blueprint.d.ts +4 -0
  49. package/dist/types/src/blueprints/design/blueprint.d.ts.map +1 -0
  50. package/dist/types/src/blueprints/design/blueprint.test.d.ts +2 -0
  51. package/dist/types/src/blueprints/design/blueprint.test.d.ts.map +1 -0
  52. package/dist/types/src/blueprints/design/index.d.ts +1 -2
  53. package/dist/types/src/blueprints/design/index.d.ts.map +1 -1
  54. package/dist/types/src/blueprints/discord/blueprint.d.ts +4 -0
  55. package/dist/types/src/blueprints/discord/blueprint.d.ts.map +1 -0
  56. package/dist/types/src/{functions/discord → blueprints/discord/functions}/fetch-messages.d.ts +1 -1
  57. package/dist/types/src/blueprints/discord/functions/fetch-messages.d.ts.map +1 -0
  58. package/dist/types/src/blueprints/discord/functions/fetch-messages.test.d.ts.map +1 -0
  59. package/dist/types/src/{functions/discord → blueprints/discord/functions}/index.d.ts +4 -4
  60. package/dist/types/src/blueprints/discord/functions/index.d.ts.map +1 -0
  61. package/dist/types/src/blueprints/discord/index.d.ts +1 -2
  62. package/dist/types/src/blueprints/discord/index.d.ts.map +1 -1
  63. package/dist/types/src/{functions/github → blueprints/github/functions}/fetch-prs.d.ts +1 -1
  64. package/dist/types/src/blueprints/github/functions/fetch-prs.d.ts.map +1 -0
  65. package/dist/types/src/blueprints/github/functions/index.d.ts +7 -0
  66. package/dist/types/src/blueprints/github/functions/index.d.ts.map +1 -0
  67. package/dist/types/src/blueprints/github/index.d.ts +1 -0
  68. package/dist/types/src/blueprints/github/index.d.ts.map +1 -0
  69. package/dist/types/src/blueprints/index.d.ts +10 -6
  70. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  71. package/dist/types/src/blueprints/linear/blueprint.d.ts +4 -0
  72. package/dist/types/src/blueprints/linear/blueprint.d.ts.map +1 -0
  73. package/dist/types/src/blueprints/linear/functions/index.d.ts +9 -0
  74. package/dist/types/src/blueprints/linear/functions/index.d.ts.map +1 -0
  75. package/dist/types/src/blueprints/linear/functions/linear.test.d.ts.map +1 -0
  76. package/dist/types/src/{functions/linear → blueprints/linear/functions}/sync-issues.d.ts +2 -2
  77. package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts.map +1 -0
  78. package/dist/types/src/blueprints/linear/index.d.ts +1 -2
  79. package/dist/types/src/blueprints/linear/index.d.ts.map +1 -1
  80. package/dist/types/src/blueprints/markdown/blueprint.d.ts +4 -0
  81. package/dist/types/src/blueprints/markdown/blueprint.d.ts.map +1 -0
  82. package/dist/types/src/{functions/research/create-document.d.ts → blueprints/markdown/functions/create.d.ts} +2 -3
  83. package/dist/types/src/blueprints/markdown/functions/create.d.ts.map +1 -0
  84. package/dist/types/src/blueprints/markdown/functions/index.d.ts +30 -0
  85. package/dist/types/src/blueprints/markdown/functions/index.d.ts.map +1 -0
  86. package/dist/types/src/blueprints/markdown/functions/read.d.ts +14 -0
  87. package/dist/types/src/blueprints/markdown/functions/read.d.ts.map +1 -0
  88. package/dist/types/src/blueprints/markdown/functions/update.d.ts +13 -0
  89. package/dist/types/src/blueprints/markdown/functions/update.d.ts.map +1 -0
  90. package/dist/types/src/blueprints/markdown/index.d.ts +3 -0
  91. package/dist/types/src/blueprints/markdown/index.d.ts.map +1 -0
  92. package/dist/types/src/blueprints/planning/blueprint.d.ts +4 -0
  93. package/dist/types/src/blueprints/planning/blueprint.d.ts.map +1 -0
  94. package/dist/types/src/blueprints/planning/functions/index.d.ts +10 -0
  95. package/dist/types/src/blueprints/planning/functions/index.d.ts.map +1 -0
  96. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts +9 -0
  97. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts.map +1 -0
  98. package/dist/types/src/blueprints/planning/index.d.ts +1 -2
  99. package/dist/types/src/blueprints/planning/index.d.ts.map +1 -1
  100. package/dist/types/src/blueprints/planning-old/blueprint.d.ts +4 -0
  101. package/dist/types/src/blueprints/planning-old/blueprint.d.ts.map +1 -0
  102. package/dist/types/src/blueprints/planning-old/blueprint.test.d.ts +2 -0
  103. package/dist/types/src/blueprints/planning-old/blueprint.test.d.ts.map +1 -0
  104. package/dist/types/src/blueprints/planning-old/functions/index.d.ts +29 -0
  105. package/dist/types/src/blueprints/planning-old/functions/index.d.ts.map +1 -0
  106. package/dist/types/src/blueprints/planning-old/functions/read.d.ts +14 -0
  107. package/dist/types/src/blueprints/planning-old/functions/read.d.ts.map +1 -0
  108. package/dist/types/src/blueprints/planning-old/functions/task-list.d.ts.map +1 -0
  109. package/dist/types/src/blueprints/planning-old/functions/task-list.test.d.ts.map +1 -0
  110. package/dist/types/src/blueprints/planning-old/functions/update.d.ts +16 -0
  111. package/dist/types/src/blueprints/planning-old/functions/update.d.ts.map +1 -0
  112. package/dist/types/src/blueprints/planning-old/index.d.ts +2 -0
  113. package/dist/types/src/blueprints/planning-old/index.d.ts.map +1 -0
  114. package/dist/types/src/blueprints/project/blueprint.d.ts +4 -0
  115. package/dist/types/src/blueprints/project/blueprint.d.ts.map +1 -0
  116. package/dist/types/src/blueprints/project/blueprint.test.d.ts +2 -0
  117. package/dist/types/src/blueprints/project/blueprint.test.d.ts.map +1 -0
  118. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts +7 -0
  119. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts.map +1 -0
  120. package/dist/types/src/blueprints/project/functions/agent.d.ts +62 -0
  121. package/dist/types/src/blueprints/project/functions/agent.d.ts.map +1 -0
  122. package/dist/types/src/blueprints/project/functions/get-context.d.ts +13 -0
  123. package/dist/types/src/blueprints/project/functions/get-context.d.ts.map +1 -0
  124. package/dist/types/src/blueprints/project/functions/index.d.ts +133 -0
  125. package/dist/types/src/blueprints/project/functions/index.d.ts.map +1 -0
  126. package/dist/types/src/blueprints/project/functions/qualifier.d.ts +60 -0
  127. package/dist/types/src/blueprints/project/functions/qualifier.d.ts.map +1 -0
  128. package/dist/types/src/blueprints/project/index.d.ts +3 -0
  129. package/dist/types/src/blueprints/project/index.d.ts.map +1 -0
  130. package/dist/types/src/blueprints/research/blueprint.d.ts +4 -0
  131. package/dist/types/src/blueprints/research/blueprint.d.ts.map +1 -0
  132. package/dist/types/src/blueprints/research/blueprint.test.d.ts +2 -0
  133. package/dist/types/src/blueprints/research/blueprint.test.d.ts.map +1 -0
  134. package/dist/types/src/blueprints/research/functions/document-create.d.ts +10 -0
  135. package/dist/types/src/blueprints/research/functions/document-create.d.ts.map +1 -0
  136. package/dist/types/src/blueprints/research/functions/index.d.ts +19 -0
  137. package/dist/types/src/blueprints/research/functions/index.d.ts.map +1 -0
  138. package/dist/types/src/{functions/research → blueprints/research/functions}/research.d.ts +4 -3
  139. package/dist/types/src/blueprints/research/functions/research.d.ts.map +1 -0
  140. package/dist/types/src/blueprints/research/functions/research.test.d.ts.map +1 -0
  141. package/dist/types/src/blueprints/research/index.d.ts +2 -2
  142. package/dist/types/src/blueprints/research/index.d.ts.map +1 -1
  143. package/dist/types/src/blueprints/research/types/ResearchGraph.d.ts +18 -0
  144. package/dist/types/src/blueprints/research/types/ResearchGraph.d.ts.map +1 -0
  145. package/dist/types/src/blueprints/research/types/index.d.ts +7 -0
  146. package/dist/types/src/blueprints/research/types/index.d.ts.map +1 -0
  147. package/dist/types/src/blueprints/testing.d.ts +18 -4
  148. package/dist/types/src/blueprints/testing.d.ts.map +1 -1
  149. package/dist/types/src/blueprints/websearch/blueprint.d.ts +4 -0
  150. package/dist/types/src/blueprints/websearch/blueprint.d.ts.map +1 -0
  151. package/dist/types/src/blueprints/websearch/index.d.ts +2 -3
  152. package/dist/types/src/blueprints/websearch/index.d.ts.map +1 -1
  153. package/dist/types/src/blueprints/websearch/{websearch-toolkit.d.ts → toolkit.d.ts} +2 -1
  154. package/dist/types/src/blueprints/websearch/toolkit.d.ts.map +1 -0
  155. package/dist/types/src/{functions/research → crud}/graph.d.ts +14 -11
  156. package/dist/types/src/crud/graph.d.ts.map +1 -0
  157. package/dist/types/src/crud/graph.test.d.ts.map +1 -0
  158. package/dist/types/src/crud/index.d.ts +2 -0
  159. package/dist/types/src/crud/index.d.ts.map +1 -0
  160. package/dist/types/src/functions/agent/index.d.ts +84 -4
  161. package/dist/types/src/functions/agent/index.d.ts.map +1 -1
  162. package/dist/types/src/functions/agent/prompt.d.ts +81 -8
  163. package/dist/types/src/functions/agent/prompt.d.ts.map +1 -1
  164. package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts +142 -136
  165. package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts.map +1 -1
  166. package/dist/types/src/functions/entity-extraction/index.d.ts +144 -139
  167. package/dist/types/src/functions/entity-extraction/index.d.ts.map +1 -1
  168. package/dist/types/src/functions/exa/data/exa-search-1748337321991.d.ts.map +1 -0
  169. package/dist/types/src/functions/exa/data/exa-search-1748337331526.d.ts.map +1 -0
  170. package/dist/types/src/functions/exa/data/exa-search-1748337344119.d.ts.map +1 -0
  171. package/dist/types/src/functions/exa/data/index.d.ts.map +1 -0
  172. package/dist/types/src/functions/exa/exa.d.ts +1 -1
  173. package/dist/types/src/functions/exa/index.d.ts +8 -2
  174. package/dist/types/src/functions/exa/index.d.ts.map +1 -1
  175. package/dist/types/src/functions/exa/mock.d.ts +1 -1
  176. package/dist/types/src/functions/index.d.ts +1 -5
  177. package/dist/types/src/functions/index.d.ts.map +1 -1
  178. package/dist/types/src/index.d.ts +3 -1
  179. package/dist/types/src/index.d.ts.map +1 -1
  180. package/dist/types/src/sync/sync.d.ts +3 -3
  181. package/dist/types/src/sync/sync.d.ts.map +1 -1
  182. package/dist/types/src/testing/index.d.ts +2 -1
  183. package/dist/types/src/testing/index.d.ts.map +1 -1
  184. package/dist/types/src/testing/plugins.d.ts +19 -0
  185. package/dist/types/src/testing/plugins.d.ts.map +1 -0
  186. package/dist/types/src/toolkits/WebToolkit.d.ts +38 -0
  187. package/dist/types/src/toolkits/WebToolkit.d.ts.map +1 -0
  188. package/dist/types/src/toolkits/index.d.ts +2 -0
  189. package/dist/types/src/toolkits/index.d.ts.map +1 -0
  190. package/dist/types/src/types/Chat.d.ts +31 -0
  191. package/dist/types/src/types/Chat.d.ts.map +1 -0
  192. package/dist/types/src/types/Plan.d.ts +77 -0
  193. package/dist/types/src/types/Plan.d.ts.map +1 -0
  194. package/dist/types/src/types/Project.d.ts +67 -0
  195. package/dist/types/src/types/Project.d.ts.map +1 -0
  196. package/dist/types/src/types/index.d.ts +4 -0
  197. package/dist/types/src/types/index.d.ts.map +1 -0
  198. package/dist/types/tsconfig.tsbuildinfo +1 -1
  199. package/package.json +49 -38
  200. package/src/blueprints/browser/blueprint.conversations.json +1 -0
  201. package/src/blueprints/browser/blueprint.test.ts +70 -0
  202. package/src/blueprints/browser/blueprint.ts +41 -0
  203. package/src/blueprints/browser/index.ts +5 -0
  204. package/src/blueprints/database/blueprint.conversations.json +1 -0
  205. package/src/blueprints/database/blueprint.test.ts +321 -0
  206. package/src/blueprints/database/blueprint.ts +39 -0
  207. package/src/blueprints/database/functions/context-add.ts +35 -0
  208. package/src/blueprints/database/functions/context-remove.ts +35 -0
  209. package/src/blueprints/database/functions/index.ts +33 -0
  210. package/src/blueprints/database/functions/load.ts +31 -0
  211. package/src/blueprints/database/functions/object-create.ts +35 -0
  212. package/src/blueprints/database/functions/object-delete.ts +27 -0
  213. package/src/blueprints/database/functions/object-update.ts +32 -0
  214. package/src/blueprints/database/functions/query.ts +126 -0
  215. package/src/blueprints/database/functions/relation-create.ts +47 -0
  216. package/src/blueprints/database/functions/relation-delete.ts +28 -0
  217. package/src/blueprints/database/functions/schema-add.ts +40 -0
  218. package/src/blueprints/database/functions/schema-list.ts +34 -0
  219. package/src/blueprints/database/functions/tag-add.ts +31 -0
  220. package/src/blueprints/database/functions/tag-remove.ts +30 -0
  221. package/src/blueprints/database/index.ts +6 -0
  222. package/src/blueprints/design/{design-blueprint.test.ts → blueprint.test.ts} +25 -37
  223. package/src/blueprints/design/blueprint.ts +46 -0
  224. package/src/blueprints/design/index.ts +1 -3
  225. package/src/blueprints/discord/blueprint.ts +46 -0
  226. package/src/{functions/discord → blueprints/discord/functions}/fetch-messages.test.ts +10 -14
  227. package/src/{functions/discord → blueprints/discord/functions}/fetch-messages.ts +11 -10
  228. package/src/blueprints/discord/functions/index.ts +9 -0
  229. package/src/blueprints/discord/index.ts +1 -3
  230. package/src/{functions/github → blueprints/github/functions}/fetch-prs.ts +3 -2
  231. package/src/blueprints/github/functions/index.ts +9 -0
  232. package/src/blueprints/github/index.ts +3 -0
  233. package/src/blueprints/index.ts +10 -6
  234. package/src/blueprints/linear/blueprint.ts +47 -0
  235. package/src/blueprints/linear/functions/index.ts +9 -0
  236. package/src/blueprints/linear/functions/linear.test.ts +58 -0
  237. package/src/{functions/linear → blueprints/linear/functions}/sync-issues.ts +17 -15
  238. package/src/blueprints/linear/index.ts +1 -3
  239. package/src/blueprints/markdown/blueprint.ts +38 -0
  240. package/src/blueprints/markdown/functions/create.ts +29 -0
  241. package/src/blueprints/markdown/functions/index.ts +13 -0
  242. package/src/blueprints/markdown/functions/read.ts +32 -0
  243. package/src/{functions/document → blueprints/markdown/functions}/update.ts +9 -7
  244. package/src/blueprints/markdown/index.ts +6 -0
  245. package/src/blueprints/planning/blueprint.ts +28 -0
  246. package/src/blueprints/planning/functions/index.ts +9 -0
  247. package/src/blueprints/planning/functions/update-tasks.ts +168 -0
  248. package/src/blueprints/planning/index.ts +2 -4
  249. package/src/blueprints/{planning/planning-blueprint.test.ts → planning-old/blueprint.test.ts} +25 -32
  250. package/src/blueprints/{planning/planning-blueprint.ts → planning-old/blueprint.ts} +24 -12
  251. package/src/blueprints/planning-old/functions/index.ts +11 -0
  252. package/src/{functions/tasks → blueprints/planning-old/functions}/read.ts +6 -6
  253. package/src/{functions/tasks → blueprints/planning-old/functions}/update.ts +6 -6
  254. package/src/blueprints/planning-old/index.ts +5 -0
  255. package/src/blueprints/project/blueprint.test.ts +579 -0
  256. package/src/blueprints/project/blueprint.ts +68 -0
  257. package/src/blueprints/project/functions/add-artifact.ts +41 -0
  258. package/src/blueprints/project/functions/agent.ts +72 -0
  259. package/src/blueprints/project/functions/get-context.ts +63 -0
  260. package/src/blueprints/project/functions/index.ts +15 -0
  261. package/src/blueprints/project/functions/qualifier.ts +96 -0
  262. package/src/blueprints/project/index.ts +6 -0
  263. package/src/blueprints/research/blueprint.ts +65 -0
  264. package/src/blueprints/research/functions/document-create.ts +73 -0
  265. package/src/blueprints/research/functions/index.ts +11 -0
  266. package/src/{functions/research/instructions-research.tpl → blueprints/research/functions/research-instructions.tpl} +14 -6
  267. package/src/blueprints/research/functions/research.conversations.json +1 -0
  268. package/src/blueprints/research/functions/research.test.ts +149 -0
  269. package/src/blueprints/research/functions/research.ts +175 -0
  270. package/src/blueprints/research/index.ts +2 -3
  271. package/src/blueprints/research/types/ResearchGraph.ts +49 -0
  272. package/src/blueprints/research/types/index.ts +32 -0
  273. package/src/blueprints/testing.ts +36 -5
  274. package/src/blueprints/websearch/blueprint.ts +32 -0
  275. package/src/blueprints/websearch/index.ts +2 -4
  276. package/src/crud/graph.test.ts +46 -0
  277. package/src/{functions/research → crud}/graph.ts +32 -40
  278. package/src/crud/index.ts +5 -0
  279. package/src/functions/READ_THIS.md +5 -0
  280. package/src/functions/agent/index.ts +4 -6
  281. package/src/functions/agent/prompt.ts +32 -25
  282. package/src/functions/entity-extraction/entity-extraction.conversations.json +1 -1
  283. package/src/functions/entity-extraction/entity-extraction.test.ts +17 -43
  284. package/src/functions/entity-extraction/entity-extraction.ts +54 -36
  285. package/src/functions/entity-extraction/index.ts +4 -4
  286. package/src/functions/exa/exa.ts +2 -2
  287. package/src/functions/exa/index.ts +7 -2
  288. package/src/functions/exa/mock.ts +1 -1
  289. package/src/functions/index.ts +1 -5
  290. package/src/index.ts +3 -1
  291. package/src/sync/sync.ts +38 -30
  292. package/src/testing/index.ts +2 -1
  293. package/src/testing/plugins.tsx +72 -0
  294. package/src/toolkits/WebToolkit.ts +33 -0
  295. package/src/toolkits/index.ts +5 -0
  296. package/src/types/Chat.ts +49 -0
  297. package/src/types/Plan.ts +107 -0
  298. package/src/types/Project.ts +196 -0
  299. package/src/types/index.ts +7 -0
  300. package/dist/lib/browser/index.mjs.map +0 -7
  301. package/dist/lib/browser/meta.json +0 -1
  302. package/dist/lib/node-esm/index.mjs +0 -2483
  303. package/dist/lib/node-esm/index.mjs.map +0 -7
  304. package/dist/lib/node-esm/meta.json +0 -1
  305. package/dist/types/src/blueprints/design/design-blueprint.d.ts +0 -4
  306. package/dist/types/src/blueprints/design/design-blueprint.d.ts.map +0 -1
  307. package/dist/types/src/blueprints/design/design-blueprint.test.d.ts +0 -2
  308. package/dist/types/src/blueprints/design/design-blueprint.test.d.ts.map +0 -1
  309. package/dist/types/src/blueprints/discord/discord-blueprint.d.ts +0 -18
  310. package/dist/types/src/blueprints/discord/discord-blueprint.d.ts.map +0 -1
  311. package/dist/types/src/blueprints/linear/linear-blueprint.d.ts +0 -18
  312. package/dist/types/src/blueprints/linear/linear-blueprint.d.ts.map +0 -1
  313. package/dist/types/src/blueprints/planning/planning-blueprint.d.ts +0 -4
  314. package/dist/types/src/blueprints/planning/planning-blueprint.d.ts.map +0 -1
  315. package/dist/types/src/blueprints/planning/planning-blueprint.test.d.ts +0 -2
  316. package/dist/types/src/blueprints/planning/planning-blueprint.test.d.ts.map +0 -1
  317. package/dist/types/src/blueprints/research/research-blueprint.d.ts +0 -4
  318. package/dist/types/src/blueprints/research/research-blueprint.d.ts.map +0 -1
  319. package/dist/types/src/blueprints/research/research-blueprint.test.d.ts +0 -2
  320. package/dist/types/src/blueprints/research/research-blueprint.test.d.ts.map +0 -1
  321. package/dist/types/src/blueprints/websearch/websearch-blueprint.d.ts +0 -4
  322. package/dist/types/src/blueprints/websearch/websearch-blueprint.d.ts.map +0 -1
  323. package/dist/types/src/blueprints/websearch/websearch-toolkit.d.ts.map +0 -1
  324. package/dist/types/src/experimental/feed.test.d.ts +0 -2
  325. package/dist/types/src/experimental/feed.test.d.ts.map +0 -1
  326. package/dist/types/src/functions/discord/fetch-messages.d.ts.map +0 -1
  327. package/dist/types/src/functions/discord/fetch-messages.test.d.ts.map +0 -1
  328. package/dist/types/src/functions/discord/index.d.ts.map +0 -1
  329. package/dist/types/src/functions/document/index.d.ts +0 -12
  330. package/dist/types/src/functions/document/index.d.ts.map +0 -1
  331. package/dist/types/src/functions/document/read.d.ts +0 -7
  332. package/dist/types/src/functions/document/read.d.ts.map +0 -1
  333. package/dist/types/src/functions/document/update.d.ts +0 -6
  334. package/dist/types/src/functions/document/update.d.ts.map +0 -1
  335. package/dist/types/src/functions/github/fetch-prs.d.ts.map +0 -1
  336. package/dist/types/src/functions/linear/index.d.ts +0 -9
  337. package/dist/types/src/functions/linear/index.d.ts.map +0 -1
  338. package/dist/types/src/functions/linear/linear.test.d.ts.map +0 -1
  339. package/dist/types/src/functions/linear/sync-issues.d.ts.map +0 -1
  340. package/dist/types/src/functions/research/create-document.d.ts.map +0 -1
  341. package/dist/types/src/functions/research/graph.d.ts.map +0 -1
  342. package/dist/types/src/functions/research/graph.test.d.ts.map +0 -1
  343. package/dist/types/src/functions/research/index.d.ts +0 -19
  344. package/dist/types/src/functions/research/index.d.ts.map +0 -1
  345. package/dist/types/src/functions/research/research-graph.d.ts +0 -18
  346. package/dist/types/src/functions/research/research-graph.d.ts.map +0 -1
  347. package/dist/types/src/functions/research/research.d.ts.map +0 -1
  348. package/dist/types/src/functions/research/research.test.d.ts.map +0 -1
  349. package/dist/types/src/functions/research/types.d.ts +0 -384
  350. package/dist/types/src/functions/research/types.d.ts.map +0 -1
  351. package/dist/types/src/functions/tasks/index.d.ts +0 -15
  352. package/dist/types/src/functions/tasks/index.d.ts.map +0 -1
  353. package/dist/types/src/functions/tasks/read.d.ts +0 -7
  354. package/dist/types/src/functions/tasks/read.d.ts.map +0 -1
  355. package/dist/types/src/functions/tasks/task-list.d.ts.map +0 -1
  356. package/dist/types/src/functions/tasks/task-list.test.d.ts.map +0 -1
  357. package/dist/types/src/functions/tasks/update.d.ts +0 -9
  358. package/dist/types/src/functions/tasks/update.d.ts.map +0 -1
  359. package/dist/types/src/plugins.d.ts +0 -19
  360. package/dist/types/src/plugins.d.ts.map +0 -1
  361. package/dist/types/src/testing/data/exa-search-1748337321991.d.ts.map +0 -1
  362. package/dist/types/src/testing/data/exa-search-1748337331526.d.ts.map +0 -1
  363. package/dist/types/src/testing/data/exa-search-1748337344119.d.ts.map +0 -1
  364. package/dist/types/src/testing/data/index.d.ts.map +0 -1
  365. package/src/blueprints/design/design-blueprint.ts +0 -33
  366. package/src/blueprints/discord/discord-blueprint.ts +0 -34
  367. package/src/blueprints/linear/linear-blueprint.ts +0 -35
  368. package/src/blueprints/research/research-blueprint.ts +0 -45
  369. package/src/blueprints/websearch/websearch-blueprint.ts +0 -20
  370. package/src/experimental/feed.test.ts +0 -108
  371. package/src/functions/discord/index.ts +0 -9
  372. package/src/functions/document/index.ts +0 -11
  373. package/src/functions/document/read.ts +0 -29
  374. package/src/functions/linear/index.ts +0 -9
  375. package/src/functions/linear/linear.test.ts +0 -86
  376. package/src/functions/research/create-document.ts +0 -69
  377. package/src/functions/research/graph.test.ts +0 -69
  378. package/src/functions/research/index.ts +0 -15
  379. package/src/functions/research/research-graph.ts +0 -47
  380. package/src/functions/research/research.conversations.json +0 -10714
  381. package/src/functions/research/research.test.ts +0 -240
  382. package/src/functions/research/research.ts +0 -155
  383. package/src/functions/research/types.ts +0 -24
  384. package/src/functions/tasks/index.ts +0 -11
  385. package/src/plugins.tsx +0 -68
  386. /package/dist/types/src/{functions/discord → blueprints/discord/functions}/fetch-messages.test.d.ts +0 -0
  387. /package/dist/types/src/{functions/linear → blueprints/linear/functions}/linear.test.d.ts +0 -0
  388. /package/dist/types/src/{functions/tasks → blueprints/planning-old/functions}/task-list.d.ts +0 -0
  389. /package/dist/types/src/{functions/tasks → blueprints/planning-old/functions}/task-list.test.d.ts +0 -0
  390. /package/dist/types/src/{functions/research → blueprints/research/functions}/research.test.d.ts +0 -0
  391. /package/dist/types/src/{functions/research → crud}/graph.test.d.ts +0 -0
  392. /package/dist/types/src/{testing → functions/exa}/data/exa-search-1748337321991.d.ts +0 -0
  393. /package/dist/types/src/{testing → functions/exa}/data/exa-search-1748337331526.d.ts +0 -0
  394. /package/dist/types/src/{testing → functions/exa}/data/exa-search-1748337344119.d.ts +0 -0
  395. /package/dist/types/src/{testing → functions/exa}/data/index.d.ts +0 -0
  396. /package/src/{functions/tasks → blueprints/planning-old/functions}/task-list.test.ts +0 -0
  397. /package/src/{functions/tasks → blueprints/planning-old/functions}/task-list.ts +0 -0
  398. /package/src/blueprints/research/{research-blueprint.test.ts → blueprint.test.ts} +0 -0
  399. /package/src/blueprints/websearch/{websearch-toolkit.ts → toolkit.ts} +0 -0
  400. /package/src/{testing → functions/exa}/data/exa-search-1748337321991.ts +0 -0
  401. /package/src/{testing → functions/exa}/data/exa-search-1748337331526.ts +0 -0
  402. /package/src/{testing → functions/exa}/data/exa-search-1748337344119.ts +0 -0
  403. /package/src/{testing → functions/exa}/data/index.ts +0 -0
@@ -0,0 +1,72 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+ import * as Schema from 'effect/Schema';
7
+
8
+ import { AiService } from '@dxos/ai';
9
+ import { AiContextService, AiConversation, type ContextBinding } from '@dxos/assistant';
10
+ import { Database, Obj, Ref } from '@dxos/echo';
11
+ import { type Queue } from '@dxos/echo-db';
12
+ import { acquireReleaseResource } from '@dxos/effect';
13
+ import { TriggerEvent, defineFunction } from '@dxos/functions';
14
+ import { invariant } from '@dxos/invariant';
15
+ import { type Message } from '@dxos/types';
16
+
17
+ import { Project } from '../../../types';
18
+
19
+ export default defineFunction({
20
+ key: 'dxos.org/function/project/agent',
21
+ name: 'Project Agent',
22
+ description: 'Agentic worker that drives the project autonomously.',
23
+ inputSchema: Schema.Struct({
24
+ project: Schema.suspend(() => Ref.Ref(Project.Project)),
25
+ prompt: Schema.optional(Schema.String),
26
+ event: Schema.optional(TriggerEvent.TriggerEvent),
27
+ }),
28
+ outputSchema: Schema.Void,
29
+ services: [AiContextService],
30
+ handler: Effect.fnUntraced(
31
+ function* ({ data }) {
32
+ const project = yield* Database.load(data.project);
33
+ invariant(Obj.instanceOf(Project.Project, project));
34
+ invariant(project.chat, 'Project has no chat.');
35
+
36
+ const chatQueue = yield* project.chat.pipe(
37
+ Database.load,
38
+ Effect.flatMap((chat) => Database.load(chat.queue)),
39
+ );
40
+ invariant(chatQueue, 'Project chat queue not found.');
41
+ const conversation = yield* acquireReleaseResource(
42
+ () => new AiConversation({ queue: chatQueue as Queue<Message.Message | ContextBinding> }),
43
+ );
44
+
45
+ const iniativesInContext = conversation.context.getObjects().filter(Obj.instanceOf(Project.Project));
46
+ if (iniativesInContext.length !== 1) {
47
+ throw new Error('There should be exactly one project in context. Got: ' + iniativesInContext.length);
48
+ }
49
+
50
+ if (!data.prompt && !data.event) {
51
+ throw new Error('Either prompt or event must be provided.');
52
+ }
53
+
54
+ let input = '';
55
+ if (data.prompt) {
56
+ input += `${data.prompt}\n\n`;
57
+ }
58
+ if (data.event) {
59
+ input += `<event>\n${JSON.stringify(data.event, null, 2)}\n</event>\n\n`;
60
+ }
61
+
62
+ yield* conversation
63
+ .createRequest({
64
+ prompt: input,
65
+ })
66
+ .pipe(Effect.retry({ times: 2 }));
67
+ },
68
+ Effect.scoped,
69
+ Effect.provide(AiService.model('@anthropic/claude-sonnet-4-5')),
70
+ AiContextService.fixFunctionHandlerType,
71
+ ) as any,
72
+ });
@@ -0,0 +1,63 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+ import * as Schema from 'effect/Schema';
7
+
8
+ import { AiContextService } from '@dxos/assistant';
9
+ import { Database, Obj } from '@dxos/echo';
10
+ import { defineFunction } from '@dxos/functions';
11
+
12
+ import { Plan, Project } from '../../../types';
13
+
14
+ export default defineFunction({
15
+ key: 'dxos.org/function/project/get-context',
16
+ name: 'Get Project Context',
17
+ description: 'Get the context of an project.',
18
+ inputSchema: Schema.Struct({}),
19
+ outputSchema: Schema.Struct({
20
+ id: Schema.String,
21
+ name: Schema.String,
22
+ spec: Schema.String,
23
+ plan: Schema.String,
24
+ artifacts: Schema.Array(
25
+ Schema.Struct({
26
+ name: Schema.String,
27
+ type: Schema.optional(Schema.String),
28
+ dxn: Schema.optional(Schema.String),
29
+ }),
30
+ ),
31
+ }),
32
+ services: [AiContextService],
33
+ handler: Effect.fnUntraced(function* ({ data: _data }) {
34
+ const project = yield* Project.getFromChatContext;
35
+
36
+ return {
37
+ id: project.id,
38
+ name: project.name,
39
+ spec: yield* project.spec.pipe(Database.load).pipe(
40
+ Effect.map((_) => _.content),
41
+ Effect.catchTag('ObjectNotFoundError', () => Effect.succeed('No spec found.')),
42
+ ),
43
+ plan: yield* (
44
+ project.plan?.pipe(Database.load).pipe(
45
+ Effect.map(Plan.formatPlan),
46
+ Effect.catchTag('ObjectNotFoundError', () => Effect.succeed('No plan found.')),
47
+ ) ?? Effect.succeed('No plan found.')
48
+ ),
49
+ artifacts: yield* Effect.forEach(project.artifacts, (artifact) =>
50
+ Effect.gen(function* () {
51
+ return {
52
+ name: artifact.name,
53
+ type: yield* Database.load(artifact.data).pipe(
54
+ Effect.map(Obj.getTypename),
55
+ Effect.catchTag('ObjectNotFoundError', () => Effect.succeed('Artifact not found.')),
56
+ ),
57
+ dxn: artifact.data.dxn.toString(),
58
+ };
59
+ }),
60
+ ),
61
+ };
62
+ }, AiContextService.fixFunctionHandlerType),
63
+ });
@@ -0,0 +1,15 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { default as AddArtifact } from './add-artifact';
6
+ import { default as Agent } from './agent';
7
+ import { default as GetContext } from './get-context';
8
+ import { default as Qualifier } from './qualifier';
9
+
10
+ export const ProjectFunctions = {
11
+ AddArtifact,
12
+ Agent,
13
+ GetContext,
14
+ Qualifier,
15
+ };
@@ -0,0 +1,96 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import * as LanguageModel from '@effect/ai/LanguageModel';
6
+ import * as Prompt from '@effect/ai/Prompt';
7
+ import * as Effect from 'effect/Effect';
8
+ import * as Schema from 'effect/Schema';
9
+
10
+ import { AiService } from '@dxos/ai';
11
+ import { Database, Obj, Ref } from '@dxos/echo';
12
+ import { TriggerEvent, defineFunction } from '@dxos/functions';
13
+ import { invariant } from '@dxos/invariant';
14
+ import { trim } from '@dxos/util';
15
+
16
+ import { Plan, Project } from '../../../types';
17
+
18
+ export default defineFunction({
19
+ key: 'dxos.org/function/project/qualifier',
20
+ name: 'Project Qualifier',
21
+ description:
22
+ 'Qualifier that determines if the event is relevant to the project. Puts the data into the input queue of the project.',
23
+ inputSchema: Schema.Struct({
24
+ project: Schema.suspend(() => Ref.Ref(Project.Project)),
25
+ event: TriggerEvent.TriggerEvent,
26
+ }),
27
+ outputSchema: Schema.Void,
28
+ services: [],
29
+ handler: Effect.fnUntraced(
30
+ function* ({ data }) {
31
+ const project = yield* Database.load(data.project);
32
+ invariant(Obj.instanceOf(Project.Project, project));
33
+ invariant(project.chat, 'Project has no chat.');
34
+
35
+ const { id, name, queue } = project;
36
+ if (!queue) {
37
+ throw new Error('Project has no queue.');
38
+ }
39
+
40
+ const plan = yield* Database.load(project.plan);
41
+ const spec = yield* Database.load(project.spec);
42
+
43
+ const {
44
+ value: { isRelevant },
45
+ } = yield* LanguageModel.generateObject({
46
+ schema: Schema.Struct({
47
+ isRelevant: Schema.Boolean,
48
+ }),
49
+ prompt: Prompt.fromMessages([
50
+ Prompt.systemMessage({
51
+ content: trim`
52
+ You are a qualifying agent that determines if the event is relevant to the project.
53
+ Respond with true if the event is relevant to the project, false otherwise.
54
+ If you are not sure, return true.
55
+ The qualified events will be forwarded to the larger agent that will process them.
56
+ <project id="${id}" name="${name}">
57
+ <spec>
58
+ ${spec.content}
59
+ </spec>
60
+ <plan>
61
+ ${Plan.formatPlan(plan)}
62
+ </plan>
63
+ </project>
64
+ `,
65
+ }),
66
+ Prompt.userMessage({
67
+ content: [
68
+ Prompt.makePart('text', {
69
+ text: trim`
70
+ <event>
71
+ ${JSON.stringify(data.event, null, 2)}
72
+ </event>
73
+ `,
74
+ }),
75
+ ],
76
+ }),
77
+ ]),
78
+ });
79
+
80
+ if (isRelevant) {
81
+ const queueTarget = yield* Database.load(queue);
82
+ if ('queue' in data.event && data.event.item) {
83
+ const obj = data.event.item;
84
+ yield* Effect.promise(() => queueTarget.append([obj]));
85
+ } else if ('subject' in data.event && Ref.isRef(data.event.subject)) {
86
+ const obj = yield* Database.load(data.event.subject);
87
+ yield* Effect.promise(() => queueTarget.append([obj]));
88
+ } else {
89
+ throw new Error('Invalid event.');
90
+ }
91
+ }
92
+ },
93
+ Effect.scoped,
94
+ Effect.provide(AiService.model('@anthropic/claude-sonnet-4-5')),
95
+ ),
96
+ });
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export { default as ProjectBlueprint } from './blueprint';
6
+ export { ProjectFunctions } from './functions';
@@ -0,0 +1,65 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { ToolId } from '@dxos/ai';
6
+ import { type AppCapabilities } from '@dxos/app-toolkit';
7
+ import { Blueprint } from '@dxos/blueprints';
8
+ import { Ref } from '@dxos/echo';
9
+ import { Text } from '@dxos/schema';
10
+ import { trim } from '@dxos/util';
11
+
12
+ import { ResearchFunctions } from './functions';
13
+
14
+ const BLUEPRINT_KEY = 'dxos.org/blueprint/research';
15
+
16
+ const functions = Object.values(ResearchFunctions);
17
+
18
+ /**
19
+ * Agent prompt instructions for managing hierarchical task lists.
20
+ */
21
+ const instructions = trim`
22
+ {{! Research }}
23
+
24
+ You are an analyst that does research tasks using tools that scrape the web and create structured data.
25
+ Structured data extraction is an experimental feature -- only enable it if the user explicitly requests it in the prompt.
26
+ Prefer updating existing notes instead of creating new ones.
27
+
28
+ <structured_mode>
29
+ When you are done, reply with the created objects.
30
+ Do not print the data, instead reply with inline references to the created objects.
31
+ Those will be later substituted with the pills representing the created objects.
32
+ Print the rest of the created objects as block references after the main note.
33
+
34
+ <example>
35
+ Based on my research, Google was founded by @dxn:queue:data:B6INSIBY3CBEF4M5VZRYBCMAHQMPYK5AJ:01K24XMVHSZHS97SG1VTVQDM5Z:01K24XPK464FSCKVQJAB2H662M and @dxn:queue:data:B6INSIBY3CBEF4M5VZRYBCMAHQMPYK5AJ:01K24XMVHSZHS97SG1VTVQDM5Z:01K24XPK46K31DDW62PBW9H2ZQ
36
+
37
+ <object><dxn>dxn:queue:data:B6INSIBY3CBEF4M5VZRYBCMAHQMPYK5AJ:01K24XMVHSZHS97SG1VTVQDM5Z:01K24XPK464FSCKVQJAB2H662M</dxn></object>
38
+ <object><dxn>dxn:queue:data:B6INSIBY3CBEF4M5VZRYBCMAHQMPYK5AJ:01K24XMVHSZHS97SG1VTVQDM5Z:01K24XPK46K31DDW62PBW9H2ZQ</dxn></object>
39
+ <object><dxn>dxn:queue:data:B6INSIBY3CBEF4M5VZRYBCMAHQMPYK5AJ:01K24XMVHSZHS97SG1VTVQDM5Z:01K24XPK46K31DDW62PBW92333</dxn></object>
40
+ </example>
41
+ </structured_mode>
42
+
43
+ <unstructured_mode>
44
+ Reply normally with the text mode of the result of your research.
45
+ </unstructured_mode>
46
+ `;
47
+
48
+ const make = () =>
49
+ Blueprint.make({
50
+ key: BLUEPRINT_KEY,
51
+ name: 'Research',
52
+ description: 'Researches the web and creates structured data.',
53
+ instructions: {
54
+ source: Ref.make(Text.make(instructions)),
55
+ },
56
+ tools: functions.map((fn) => ToolId.make(fn.key)),
57
+ });
58
+
59
+ const blueprint: AppCapabilities.BlueprintDefinition = {
60
+ key: BLUEPRINT_KEY,
61
+ functions,
62
+ make,
63
+ };
64
+
65
+ export default blueprint;
@@ -0,0 +1,73 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+ import * as Schema from 'effect/Schema';
7
+
8
+ import { Database, Obj, Ref, Relation } from '@dxos/echo';
9
+ import { TracingService, defineFunction } from '@dxos/functions';
10
+ import { log } from '@dxos/log';
11
+ import { Markdown } from '@dxos/plugin-markdown/types';
12
+ import { HasSubject } from '@dxos/types';
13
+ import { trim } from '@dxos/util';
14
+
15
+ export default defineFunction({
16
+ key: 'dxos.org/function/research/document-create',
17
+ name: 'Create research document',
18
+ description: 'Creates a note summarizing the research.',
19
+ inputSchema: Schema.Struct({
20
+ subject: Ref.Ref(Obj.Unknown).annotations({
21
+ description: trim`
22
+ ID of the object (organization, contact, etc.) for which the research was performed.
23
+ `,
24
+ }),
25
+ name: Schema.String.annotations({
26
+ description: 'Name of the document.',
27
+ }),
28
+ content: Schema.String.annotations({
29
+ description: trim`
30
+ Content of the note.
31
+ Supports (and are prefered) references to research objects using @ syntax and <object> tags (refer to research blueprint instructions).
32
+ `,
33
+ }),
34
+ }),
35
+ outputSchema: Schema.Struct({
36
+ document: Schema.String.annotations({
37
+ description: 'DXN of the created document.',
38
+ }),
39
+ }),
40
+ handler: Effect.fnUntraced(function* ({ data: { subject, name, content } }) {
41
+ log.info('Creating research document', { subject, name, content });
42
+
43
+ // TODO(burdon): Auto flush before and after calling function?
44
+ yield* Database.flush({ indexes: true });
45
+ yield* TracingService.emitStatus({ message: 'Creating research document...' });
46
+
47
+ const target = yield* Database.load(subject);
48
+
49
+ // Create document.
50
+ const object = yield* Database.add(
51
+ Markdown.make({
52
+ name,
53
+ content,
54
+ }),
55
+ );
56
+
57
+ // Create relation.
58
+ yield* Database.add(
59
+ Relation.make(HasSubject.HasSubject, {
60
+ [Relation.Source]: object,
61
+ [Relation.Target]: target,
62
+ completedAt: new Date().toISOString(),
63
+ }),
64
+ );
65
+
66
+ yield* Database.flush({ indexes: true });
67
+ log.info('Created research document', { subject, object });
68
+
69
+ return {
70
+ document: Obj.getDXN(object).toString(),
71
+ };
72
+ }),
73
+ });
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import Create from './document-create';
6
+ import Research from './research';
7
+
8
+ export const ResearchFunctions = {
9
+ Create,
10
+ Research,
11
+ };
@@ -6,10 +6,11 @@ The Research Agent outputs results in a structured format matching the schema pr
6
6
  The Research Agent is equipped with the ability to:
7
7
 
8
8
  - Generate precise and effective search queries
9
- - Request web pages by query (through a `web_search` tool)
10
- - Read the full content of retrieved pages
9
+ - Request web pages by query.
11
10
  - Synthesize accurate, clear, and structured answers using reliable information from the retrieved content
11
+ {{#if entityExtraction}}
12
12
  - Search the local database for information using a vector index (through a `local_search` tool)
13
+ {{/if}}
13
14
 
14
15
  The Research Agent always follows these principles:
15
16
 
@@ -19,6 +20,7 @@ The Research Agent always follows these principles:
19
20
  - Transparency: The Research Agent mentions which sources were used and explains how it arrived at conclusions.
20
21
  - Accuracy Over Brevity: The Research Agent prefers detailed, technically accurate explanations over shallow summaries.
21
22
  - The Research Agent admits uncertainty rather than misleading.
23
+ {{#if entityExtraction}}
22
24
  - The Research Agent picks the most concrete schema types for extracted information.
23
25
  - The Research Agent fills schema fields completely with information it is confident about, and omits fields it is not confident about.
24
26
  - When outputting results, the Research Agent adds extra data that fits the schema even if not directly related to the user's question.
@@ -26,6 +28,7 @@ The Research Agent always follows these principles:
26
28
  - The Research Agent does not create objects that are already in the database.
27
29
  - The Research Agent re-uses existing object IDs as references when enriching existing objects.
28
30
  - The Research Agent ALWAYS calls the `graph_writer` at the end to save the data. This conversation will be deleted, so only the data written to the graph will be preserved.
31
+ {{/if}}
29
32
 
30
33
  The Research Agent may be asked for:
31
34
 
@@ -41,8 +44,6 @@ The Research Agent breaks it into sub-questions (if applicable).
41
44
 
42
45
  For each sub-question, the Research Agent generates a clear, concise web search query.
43
46
 
44
- The Research Agent uses `web_search`(query) to retrieve information.
45
-
46
47
  The Research Agent extracts and synthesizes relevant answers.
47
48
 
48
49
  The Research Agent's output includes:
@@ -58,23 +59,27 @@ Here's how the Research Agent operates:
58
59
  2. The Research Agent performs a web search for each topic.
59
60
  3. The Research Agent reads and analyzes results, cross references information from multiple sources, and represents conflicting information as ranges of possible values.
60
61
 
62
+ {{#if entityExtraction}}
61
63
  4. The Research Agent searches the local database for information using a vector index that might link to the user's question.
62
64
  6. The Research Agent creates relations and references between new objects and existing database objects when related, using existing object IDs as references.
63
65
  7. The Research Agent selects the most concrete schema types for extracted information, using multiple types as needed, and prints its decision and reasoning.
64
66
  5. The Research Agent creates a clear, structured answer to the user's question.
65
67
  8. The Research Agent submits results using the specific schema.
68
+ {{/if}}
66
69
 
70
+ {{#if entityExtraction}}
67
71
  IMPORTANT:
68
-
69
72
  - The Research Agent always runs the `local_search` tool to search the local database at least once before submitting results.
70
73
  - The Research Agent does not create objects that already exist in the database.
71
74
  - Ids that are not in the database are human-readable strings like `ivan_zhao_1`.
75
+ {{/if}}
72
76
 
73
77
  Status reporting:
74
78
 
75
79
  The Research Agent reports its status frequently using the `<status>` tags: <status>Searching for Google Founders</status>
76
80
  The Research Agent reports its status in-between each tool call and before submitting results.
77
81
 
82
+ {{#if entityExtraction}}
78
83
  <example>
79
84
 
80
85
  Based on my research, I can now provide information about Google and it's founders.
@@ -95,4 +100,7 @@ I will use the following schema to construct new objects:
95
100
 
96
101
  <status>Formatting results</status>
97
102
 
98
- </example>
103
+ </example>
104
+ {{/if}}
105
+
106
+ Last content block is the full research note -- the result of the research.