@dxos/assistant-toolkit 0.8.4-main.72ec0f3 → 0.8.4-main.937b3ca

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 (165) hide show
  1. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  2. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +388 -285
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +43 -0
  7. package/dist/lib/browser/testing/index.mjs.map +7 -0
  8. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  9. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +388 -285
  11. package/dist/lib/node-esm/index.mjs.map +4 -4
  12. package/dist/lib/node-esm/meta.json +1 -1
  13. package/dist/lib/node-esm/testing/index.mjs +44 -0
  14. package/dist/lib/node-esm/testing/index.mjs.map +7 -0
  15. package/dist/types/src/blueprints/design/design-blueprint.d.ts +17 -3
  16. package/dist/types/src/blueprints/design/design-blueprint.d.ts.map +1 -1
  17. package/dist/types/src/blueprints/design/index.d.ts +1 -1
  18. package/dist/types/src/blueprints/design/index.d.ts.map +1 -1
  19. package/dist/types/src/blueprints/discord/discord-blueprint.d.ts +10 -10
  20. package/dist/types/src/blueprints/discord/discord-blueprint.d.ts.map +1 -1
  21. package/dist/types/src/blueprints/discord/index.d.ts +1 -1
  22. package/dist/types/src/blueprints/discord/index.d.ts.map +1 -1
  23. package/dist/types/src/blueprints/linear/index.d.ts +1 -1
  24. package/dist/types/src/blueprints/linear/index.d.ts.map +1 -1
  25. package/dist/types/src/blueprints/linear/linear-blueprint.d.ts +10 -10
  26. package/dist/types/src/blueprints/linear/linear-blueprint.d.ts.map +1 -1
  27. package/dist/types/src/blueprints/planning/index.d.ts +1 -1
  28. package/dist/types/src/blueprints/planning/index.d.ts.map +1 -1
  29. package/dist/types/src/blueprints/planning/planning-blueprint.d.ts +17 -3
  30. package/dist/types/src/blueprints/planning/planning-blueprint.d.ts.map +1 -1
  31. package/dist/types/src/blueprints/research/index.d.ts +1 -1
  32. package/dist/types/src/blueprints/research/index.d.ts.map +1 -1
  33. package/dist/types/src/blueprints/research/research-blueprint.d.ts +17 -3
  34. package/dist/types/src/blueprints/research/research-blueprint.d.ts.map +1 -1
  35. package/dist/types/src/blueprints/testing.d.ts +2 -2
  36. package/dist/types/src/blueprints/testing.d.ts.map +1 -1
  37. package/dist/types/src/blueprints/websearch/index.d.ts +1 -1
  38. package/dist/types/src/blueprints/websearch/index.d.ts.map +1 -1
  39. package/dist/types/src/blueprints/websearch/websearch-blueprint.d.ts +17 -3
  40. package/dist/types/src/blueprints/websearch/websearch-blueprint.d.ts.map +1 -1
  41. package/dist/types/src/crud/graph.d.ts +14 -11
  42. package/dist/types/src/crud/graph.d.ts.map +1 -1
  43. package/dist/types/src/functions/agent/prompt.d.ts +71 -4
  44. package/dist/types/src/functions/agent/prompt.d.ts.map +1 -1
  45. package/dist/types/src/functions/document/read.d.ts.map +1 -1
  46. package/dist/types/src/functions/document/update.d.ts.map +1 -1
  47. package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts +100 -99
  48. package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts.map +1 -1
  49. package/dist/types/src/functions/entity-extraction/index.d.ts +100 -99
  50. package/dist/types/src/functions/entity-extraction/index.d.ts.map +1 -1
  51. package/dist/types/src/functions/exa/data/exa-search-1748337321991.d.ts.map +1 -0
  52. package/dist/types/src/functions/exa/data/exa-search-1748337331526.d.ts.map +1 -0
  53. package/dist/types/src/functions/exa/data/exa-search-1748337344119.d.ts.map +1 -0
  54. package/dist/types/src/functions/exa/data/index.d.ts.map +1 -0
  55. package/dist/types/src/functions/github/fetch-prs.d.ts.map +1 -1
  56. package/dist/types/src/functions/linear/index.d.ts +1 -1
  57. package/dist/types/src/functions/linear/sync-issues.d.ts +1 -1
  58. package/dist/types/src/functions/linear/sync-issues.d.ts.map +1 -1
  59. package/dist/types/src/functions/research/document-create.d.ts.map +1 -1
  60. package/dist/types/src/functions/research/research-graph.d.ts +9 -8
  61. package/dist/types/src/functions/research/research-graph.d.ts.map +1 -1
  62. package/dist/types/src/functions/research/research.d.ts.map +1 -1
  63. package/dist/types/src/functions/research/types.d.ts +1 -1
  64. package/dist/types/src/functions/research/types.d.ts.map +1 -1
  65. package/dist/types/src/functions/tasks/read.d.ts.map +1 -1
  66. package/dist/types/src/functions/tasks/update.d.ts.map +1 -1
  67. package/dist/types/src/index.d.ts +0 -1
  68. package/dist/types/src/index.d.ts.map +1 -1
  69. package/dist/types/src/initiative/Initiative.d.ts +84 -0
  70. package/dist/types/src/initiative/Initiative.d.ts.map +1 -0
  71. package/dist/types/src/initiative/InitiativeSchema.d.ts +19 -0
  72. package/dist/types/src/initiative/InitiativeSchema.d.ts.map +1 -0
  73. package/dist/types/src/initiative/functions/agent.d.ts +37 -0
  74. package/dist/types/src/initiative/functions/agent.d.ts.map +1 -0
  75. package/dist/types/src/initiative/functions/getContext.d.ts +17 -0
  76. package/dist/types/src/initiative/functions/getContext.d.ts.map +1 -0
  77. package/dist/types/src/initiative/functions/index.d.ts +4 -0
  78. package/dist/types/src/initiative/functions/index.d.ts.map +1 -0
  79. package/dist/types/src/initiative/functions/update.d.ts +7 -0
  80. package/dist/types/src/initiative/functions/update.d.ts.map +1 -0
  81. package/dist/types/src/initiative/index.d.ts +1 -0
  82. package/dist/types/src/initiative/index.d.ts.map +1 -0
  83. package/dist/types/src/initiative/initiative.test.d.ts +2 -0
  84. package/dist/types/src/initiative/initiative.test.d.ts.map +1 -0
  85. package/dist/types/src/sync/sync.d.ts +3 -3
  86. package/dist/types/src/sync/sync.d.ts.map +1 -1
  87. package/dist/types/src/testing/index.d.ts +1 -1
  88. package/dist/types/src/testing/index.d.ts.map +1 -1
  89. package/dist/types/src/testing/plugins.d.ts +19 -0
  90. package/dist/types/src/testing/plugins.d.ts.map +1 -0
  91. package/dist/types/src/toolkits/AssistantToolkit.d.ts +31 -5
  92. package/dist/types/src/toolkits/AssistantToolkit.d.ts.map +1 -1
  93. package/dist/types/src/toolkits/SystemToolkit.d.ts +42 -10
  94. package/dist/types/src/toolkits/SystemToolkit.d.ts.map +1 -1
  95. package/dist/types/tsconfig.tsbuildinfo +1 -1
  96. package/package.json +49 -35
  97. package/src/blueprints/design/design-blueprint.test.ts +10 -8
  98. package/src/blueprints/design/design-blueprint.ts +2 -4
  99. package/src/blueprints/design/index.ts +1 -1
  100. package/src/blueprints/discord/discord-blueprint.ts +2 -4
  101. package/src/blueprints/discord/index.ts +1 -1
  102. package/src/blueprints/linear/index.ts +1 -1
  103. package/src/blueprints/linear/linear-blueprint.ts +2 -4
  104. package/src/blueprints/planning/index.ts +1 -1
  105. package/src/blueprints/planning/planning-blueprint.test.ts +8 -6
  106. package/src/blueprints/planning/planning-blueprint.ts +2 -4
  107. package/src/blueprints/research/index.ts +1 -1
  108. package/src/blueprints/research/research-blueprint.ts +2 -4
  109. package/src/blueprints/testing.ts +2 -2
  110. package/src/blueprints/websearch/index.ts +2 -1
  111. package/src/blueprints/websearch/websearch-blueprint.ts +2 -4
  112. package/src/crud/graph.test.ts +4 -27
  113. package/src/crud/graph.ts +32 -40
  114. package/src/experimental/feed.test.ts +1 -1
  115. package/src/functions/agent/prompt.ts +17 -13
  116. package/src/functions/discord/fetch-messages.test.ts +1 -1
  117. package/src/functions/discord/fetch-messages.ts +1 -1
  118. package/src/functions/document/read.ts +4 -3
  119. package/src/functions/document/update.ts +7 -4
  120. package/src/functions/entity-extraction/entity-extraction.conversations.json +6597 -1
  121. package/src/functions/entity-extraction/entity-extraction.test.ts +7 -6
  122. package/src/functions/entity-extraction/entity-extraction.ts +46 -28
  123. package/src/functions/exa/mock.ts +1 -1
  124. package/src/functions/github/fetch-prs.ts +3 -2
  125. package/src/functions/linear/linear.test.ts +11 -10
  126. package/src/functions/linear/sync-issues.ts +7 -5
  127. package/src/functions/research/document-create.ts +7 -6
  128. package/src/functions/research/research-graph.ts +13 -11
  129. package/src/functions/research/research.conversations.json +1 -1
  130. package/src/functions/research/research.test.ts +24 -32
  131. package/src/functions/research/research.ts +8 -9
  132. package/src/functions/research/types.ts +1 -1
  133. package/src/functions/tasks/read.ts +4 -3
  134. package/src/functions/tasks/update.ts +4 -3
  135. package/src/index.ts +0 -1
  136. package/src/initiative/Initiative.ts +99 -0
  137. package/src/initiative/InitiativeSchema.ts +37 -0
  138. package/src/initiative/functions/agent.ts +57 -0
  139. package/src/initiative/functions/getContext.ts +74 -0
  140. package/src/initiative/functions/index.ts +7 -0
  141. package/src/initiative/functions/update.ts +63 -0
  142. package/src/initiative/index.ts +3 -0
  143. package/src/initiative/initiative.conversations.json +1 -0
  144. package/src/initiative/initiative.test.ts +485 -0
  145. package/src/sync/sync.ts +38 -30
  146. package/src/testing/index.ts +1 -1
  147. package/src/{plugins.tsx → testing/plugins.tsx} +15 -15
  148. package/src/toolkits/AssistantToolkit.conversations.json +1 -1
  149. package/src/toolkits/AssistantToolkit.test.ts +17 -11
  150. package/src/toolkits/AssistantToolkit.ts +31 -8
  151. package/src/toolkits/SystemToolkit.ts +100 -32
  152. package/dist/types/src/plugins.d.ts +0 -19
  153. package/dist/types/src/plugins.d.ts.map +0 -1
  154. package/dist/types/src/testing/data/exa-search-1748337321991.d.ts.map +0 -1
  155. package/dist/types/src/testing/data/exa-search-1748337331526.d.ts.map +0 -1
  156. package/dist/types/src/testing/data/exa-search-1748337344119.d.ts.map +0 -1
  157. package/dist/types/src/testing/data/index.d.ts.map +0 -1
  158. /package/dist/types/src/{testing → functions/exa}/data/exa-search-1748337321991.d.ts +0 -0
  159. /package/dist/types/src/{testing → functions/exa}/data/exa-search-1748337331526.d.ts +0 -0
  160. /package/dist/types/src/{testing → functions/exa}/data/exa-search-1748337344119.d.ts +0 -0
  161. /package/dist/types/src/{testing → functions/exa}/data/index.d.ts +0 -0
  162. /package/src/{testing → functions/exa}/data/exa-search-1748337321991.ts +0 -0
  163. /package/src/{testing → functions/exa}/data/exa-search-1748337331526.ts +0 -0
  164. /package/src/{testing → functions/exa}/data/exa-search-1748337344119.ts +0 -0
  165. /package/src/{testing → functions/exa}/data/index.ts +0 -0
@@ -1 +1 @@
1
- {"conversations":[{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[]},"prompt":{"content":[{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT87\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}}]},"response":[{"type":"response-metadata","id":"msg_01HNLR7j62QCthmzukeZc38d","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I've","metadata":{}},{"type":"text-delta","id":"0","delta":" note","metadata":{}},{"type":"text-delta","id":"0","delta":"d the","metadata":{}},{"type":"text-delta","id":"0","delta":" context","metadata":{}},{"type":"text-delta","id":"0","delta":" about","metadata":{}},{"type":"text-delta","id":"0","delta":" Cyberdyne Systems. This","metadata":{}},{"type":"text-delta","id":"0","delta":" appears to be an","metadata":{}},{"type":"text-delta","id":"0","delta":" organization","metadata":{}},{"type":"text-delta","id":"0","delta":" object","metadata":{}},{"type":"text-delta","id":"0","delta":" with:","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Name","metadata":{}},{"type":"text-delta","id":"0","delta":":","metadata":{}},{"type":"text-delta","id":"0","delta":" Cyberdyne Systems\n- Website:","metadata":{}},{"type":"text-delta","id":"0","delta":" https://cyberdyne.com","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Type: Organization","metadata":{}},{"type":"text-delta","id":"0","delta":" (version","metadata":{}},{"type":"text-delta","id":"0","delta":" 0.1.0)","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- A","metadata":{}},{"type":"text-delta","id":"0","delta":" unique","metadata":{}},{"type":"text-delta","id":"0","delta":" ID","metadata":{}},{"type":"text-delta","id":"0","delta":"\n\nHow","metadata":{}},{"type":"text-delta","id":"0","delta":" can","metadata":{}},{"type":"text-delta","id":"0","delta":" I help you with this organization information","metadata":{}},{"type":"text-delta","id":"0","delta":"?","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":87,"outputTokens":74,"totalTokens":161},"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":87,"output_tokens":2,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[]},"prompt":{"content":[{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT89\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}}]},"response":[{"type":"response-metadata","id":"msg_01LgdR7kxSvEaKHNaFxG3hgZ","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I've","metadata":{}},{"type":"text-delta","id":"0","delta":" adde","metadata":{}},{"type":"text-delta","id":"0","delta":"d the","metadata":{}},{"type":"text-delta","id":"0","delta":" Cyberdyne Systems organization","metadata":{}},{"type":"text-delta","id":"0","delta":" to my","metadata":{}},{"type":"text-delta","id":"0","delta":" context. This","metadata":{}},{"type":"text-delta","id":"0","delta":" appears to be a reference","metadata":{}},{"type":"text-delta","id":"0","delta":" to the fictional","metadata":{}},{"type":"text-delta","id":"0","delta":" company","metadata":{}},{"type":"text-delta","id":"0","delta":" from the Terminator franchise","metadata":{}},{"type":"text-delta","id":"0","delta":", known","metadata":{}},{"type":"text-delta","id":"0","delta":" for creating","metadata":{}},{"type":"text-delta","id":"0","delta":" Skynet and advance","metadata":{}},{"type":"text-delta","id":"0","delta":"d AI/","metadata":{}},{"type":"text-delta","id":"0","delta":"robotics technology. The organization has","metadata":{}},{"type":"text-delta","id":"0","delta":" been","metadata":{}},{"type":"text-delta","id":"0","delta":" store","metadata":{}},{"type":"text-delta","id":"0","delta":"d with","metadata":{}},{"type":"text-delta","id":"0","delta":" its","metadata":{}},{"type":"text-delta","id":"0","delta":" website","metadata":{}},{"type":"text-delta","id":"0","delta":" URL","metadata":{}},{"type":"text-delta","id":"0","delta":".\n\nIs","metadata":{}},{"type":"text-delta","id":"0","delta":" there anything specific you","metadata":{}},{"type":"text-delta","id":"0","delta":"'d like me to help","metadata":{}},{"type":"text-delta","id":"0","delta":" you with regarding this organization, or","metadata":{}},{"type":"text-delta","id":"0","delta":" would you like to","metadata":{}},{"type":"text-delta","id":"0","delta":" add more","metadata":{}},{"type":"text-delta","id":"0","delta":" information","metadata":{}},{"type":"text-delta","id":"0","delta":" to the context?","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":87,"outputTokens":87,"totalTokens":174},"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":87,"output_tokens":2,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[]},"prompt":{"content":[{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT8A\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}}]},"response":[{"type":"response-metadata","id":"msg_01DCJT6bMkLDRaePpdgZaMLs","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I've","metadata":{}},{"type":"text-delta","id":"0","delta":" note","metadata":{}},{"type":"text-delta","id":"0","delta":"d the context","metadata":{}},{"type":"text-delta","id":"0","delta":" about","metadata":{}},{"type":"text-delta","id":"0","delta":" Cyberdyne Systems.","metadata":{}},{"type":"text-delta","id":"0","delta":" This appears to be an","metadata":{}},{"type":"text-delta","id":"0","delta":" organization object","metadata":{}},{"type":"text-delta","id":"0","delta":" with","metadata":{}},{"type":"text-delta","id":"0","delta":":","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Name","metadata":{}},{"type":"text-delta","id":"0","delta":": Cyberdyne Systems\n-","metadata":{}},{"type":"text-delta","id":"0","delta":" Website: https://cyberdyne.","metadata":{}},{"type":"text-delta","id":"0","delta":"com\n- Type","metadata":{}},{"type":"text-delta","id":"0","delta":": Organization","metadata":{}},{"type":"text-delta","id":"0","delta":" (","metadata":{}},{"type":"text-delta","id":"0","delta":"version","metadata":{}},{"type":"text-delta","id":"0","delta":" 0.1.0)","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- ID","metadata":{}},{"type":"text-delta","id":"0","delta":": 01JGFJJ","metadata":{}},{"type":"text-delta","id":"0","delta":"Z00G0WKQ","metadata":{}},{"type":"text-delta","id":"0","delta":"SJGMAKCNT8A","metadata":{}},{"type":"text-delta","id":"0","delta":"\n\nIs","metadata":{}},{"type":"text-delta","id":"0","delta":" there","metadata":{}},{"type":"text-delta","id":"0","delta":" something","metadata":{}},{"type":"text-delta","id":"0","delta":" specific you'd like to know","metadata":{}},{"type":"text-delta","id":"0","delta":" about or","metadata":{}},{"type":"text-delta","id":"0","delta":" do with this organization data","metadata":{}},{"type":"text-delta","id":"0","delta":"?","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":88,"outputTokens":102,"totalTokens":190},"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":88,"output_tokens":2,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[]},"prompt":{"content":[{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT8C\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}}]},"response":[{"type":"response-metadata","id":"msg_012T8q2F93Aisj5BJGyKntH5","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I'll","metadata":{}},{"type":"text-delta","id":"0","delta":" help you add to","metadata":{}},{"type":"text-delta","id":"0","delta":" the context. However, I need more","metadata":{}},{"type":"text-delta","id":"0","delta":" information about what you","metadata":{}},{"type":"text-delta","id":"0","delta":"'d like to add to","metadata":{}},{"type":"text-delta","id":"0","delta":" this","metadata":{}},{"type":"text-delta","id":"0","delta":" organization","metadata":{}},{"type":"text-delta","id":"0","delta":" recor","metadata":{}},{"type":"text-delta","id":"0","delta":"d. ","metadata":{}},{"type":"text-delta","id":"0","delta":"\n\nThe","metadata":{}},{"type":"text-delta","id":"0","delta":" current context shows a","metadata":{}},{"type":"text-delta","id":"0","delta":" Cyberdyne Systems organization entry","metadata":{}},{"type":"text-delta","id":"0","delta":".","metadata":{}},{"type":"text-delta","id":"0","delta":" What woul","metadata":{}},{"type":"text-delta","id":"0","delta":"d you like to add?","metadata":{}},{"type":"text-delta","id":"0","delta":" For","metadata":{}},{"type":"text-delta","id":"0","delta":" example:","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Additional","metadata":{}},{"type":"text-delta","id":"0","delta":" contact","metadata":{}},{"type":"text-delta","id":"0","delta":" information?","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Description","metadata":{}},{"type":"text-delta","id":"0","delta":" or","metadata":{}},{"type":"text-delta","id":"0","delta":" mission","metadata":{}},{"type":"text-delta","id":"0","delta":" statement?\n- Address","metadata":{}},{"type":"text-delta","id":"0","delta":" or location details","metadata":{}},{"type":"text-delta","id":"0","delta":"?\n- Social media links?","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Other","metadata":{}},{"type":"text-delta","id":"0","delta":" organizational details","metadata":{}},{"type":"text-delta","id":"0","delta":"?\n\nPlease let","metadata":{}},{"type":"text-delta","id":"0","delta":" me know what specific information you'd like","metadata":{}},{"type":"text-delta","id":"0","delta":" to ad","metadata":{}},{"type":"text-delta","id":"0","delta":"d to","metadata":{}},{"type":"text-delta","id":"0","delta":" this context","metadata":{}},{"type":"text-delta","id":"0","delta":".","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":88,"outputTokens":104,"totalTokens":192},"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":88,"output_tokens":2,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[{"name":"add-to-context","description":"Adds the object to the chat context.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The ID of the document to read.","examples":["dxn:echo:@:XXXXX","@dxn:echo:@:XXXXX","spaceID:objectID","XXXXX"]}},"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n \n</blueprint>","options":{}},{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT8D\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}}]},"response":[{"type":"response-metadata","id":"msg_017B1LQZEJPzaFfwptn7WVrs","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I'll","metadata":{}},{"type":"text-delta","id":"0","delta":" add that","metadata":{}},{"type":"text-delta","id":"0","delta":" Organization","metadata":{}},{"type":"text-delta","id":"0","delta":" object","metadata":{}},{"type":"text-delta","id":"0","delta":" to the context for you.","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"tool-params-start","id":"toolu_016GndoqtEHmNSFuY516JkJB","name":"add-to-context","providerExecuted":false,"metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"","metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"{\"","metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"id\": \"","metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"01JGFJJZ","metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"00G","metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"0WKQSJG","metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"MAKCNT8D\"}","metadata":{}},{"type":"tool-params-end","id":"toolu_016GndoqtEHmNSFuY516JkJB","metadata":{}},{"type":"tool-call","id":"toolu_016GndoqtEHmNSFuY516JkJB","name":"add-to-context","params":{"id":"01JGFJJZ00G0WKQSJGMAKCNT8D"},"providerExecuted":false,"metadata":{}},{"type":"finish","reason":"tool-calls","usage":{"inputTokens":538,"outputTokens":88,"totalTokens":626},"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":538,"output_tokens":2,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[{"name":"add-to-context","description":"Adds the object to the chat context.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The ID of the document to read.","examples":["dxn:echo:@:XXXXX","@dxn:echo:@:XXXXX","spaceID:objectID","XXXXX"]}},"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n \n</blueprint>","options":{}},{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT8D\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}},{"role":"assistant","content":[{"type":"text","text":"I'll add that Organization object to the context for you.","options":{}},{"type":"tool-call","id":"toolu_016GndoqtEHmNSFuY516JkJB","name":"add-to-context","params":{"id":"01JGFJJZ00G0WKQSJGMAKCNT8D"},"providerExecuted":false,"options":{}}],"options":{}},{"role":"tool","content":[{"type":"tool-result","id":"toolu_016GndoqtEHmNSFuY516JkJB","name":"add-to-context","result":{},"options":{}}],"options":{}}]},"response":[{"type":"response-metadata","id":"msg_01UjUAP2ewUVeX3dNu2atnMj","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I","metadata":{}},{"type":"text-delta","id":"0","delta":"'ve successfully added the Cyberdyne","metadata":{}},{"type":"text-delta","id":"0","delta":" Systems organization to the context. The object","metadata":{}},{"type":"text-delta","id":"0","delta":" includes","metadata":{}},{"type":"text-delta","id":"0","delta":":","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Name","metadata":{}},{"type":"text-delta","id":"0","delta":": Cyberdyne Systems\n-","metadata":{}},{"type":"text-delta","id":"0","delta":" Website: https://cyberdyne.","metadata":{}},{"type":"text-delta","id":"0","delta":"com\n- Type","metadata":{}},{"type":"text-delta","id":"0","delta":": Organization","metadata":{}},{"type":"text-delta","id":"0","delta":" (","metadata":{}},{"type":"text-delta","id":"0","delta":"dxn:type:dxos","metadata":{}},{"type":"text-delta","id":"0","delta":".org/type/Organization:0","metadata":{}},{"type":"text-delta","id":"0","delta":".1.0)\n- ID","metadata":{}},{"type":"text-delta","id":"0","delta":": 01JGFJJ","metadata":{}},{"type":"text-delta","id":"0","delta":"Z00G0WKQ","metadata":{}},{"type":"text-delta","id":"0","delta":"SJGMAKCNT8D","metadata":{}},{"type":"text-delta","id":"0","delta":"\n\nThe organization","metadata":{}},{"type":"text-delta","id":"0","delta":" is","metadata":{}},{"type":"text-delta","id":"0","delta":" now available in the","metadata":{}},{"type":"text-delta","id":"0","delta":" chat","metadata":{}},{"type":"text-delta","id":"0","delta":" context for reference","metadata":{}},{"type":"text-delta","id":"0","delta":" in","metadata":{}},{"type":"text-delta","id":"0","delta":" our","metadata":{}},{"type":"text-delta","id":"0","delta":" conversation.","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":638,"outputTokens":112,"totalTokens":750},"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":638,"output_tokens":1,"server_tool_use":null,"service_tier":"standard"}}}}]}]}
1
+ {"conversations":[{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[]},"prompt":{"content":[{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT87\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}}]},"response":[{"type":"response-metadata","id":"msg_01HNLR7j62QCthmzukeZc38d","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I've","metadata":{}},{"type":"text-delta","id":"0","delta":" note","metadata":{}},{"type":"text-delta","id":"0","delta":"d the","metadata":{}},{"type":"text-delta","id":"0","delta":" context","metadata":{}},{"type":"text-delta","id":"0","delta":" about","metadata":{}},{"type":"text-delta","id":"0","delta":" Cyberdyne Systems. This","metadata":{}},{"type":"text-delta","id":"0","delta":" appears to be an","metadata":{}},{"type":"text-delta","id":"0","delta":" organization","metadata":{}},{"type":"text-delta","id":"0","delta":" object","metadata":{}},{"type":"text-delta","id":"0","delta":" with:","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Name","metadata":{}},{"type":"text-delta","id":"0","delta":":","metadata":{}},{"type":"text-delta","id":"0","delta":" Cyberdyne Systems\n- Website:","metadata":{}},{"type":"text-delta","id":"0","delta":" https://cyberdyne.com","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Type: Organization","metadata":{}},{"type":"text-delta","id":"0","delta":" (version","metadata":{}},{"type":"text-delta","id":"0","delta":" 0.1.0)","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- A","metadata":{}},{"type":"text-delta","id":"0","delta":" unique","metadata":{}},{"type":"text-delta","id":"0","delta":" ID","metadata":{}},{"type":"text-delta","id":"0","delta":"\n\nHow","metadata":{}},{"type":"text-delta","id":"0","delta":" can","metadata":{}},{"type":"text-delta","id":"0","delta":" I help you with this organization information","metadata":{}},{"type":"text-delta","id":"0","delta":"?","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":87,"outputTokens":74,"totalTokens":161},"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":87,"output_tokens":2,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[]},"prompt":{"content":[{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT89\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}}]},"response":[{"type":"response-metadata","id":"msg_01LgdR7kxSvEaKHNaFxG3hgZ","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I've","metadata":{}},{"type":"text-delta","id":"0","delta":" adde","metadata":{}},{"type":"text-delta","id":"0","delta":"d the","metadata":{}},{"type":"text-delta","id":"0","delta":" Cyberdyne Systems organization","metadata":{}},{"type":"text-delta","id":"0","delta":" to my","metadata":{}},{"type":"text-delta","id":"0","delta":" context. This","metadata":{}},{"type":"text-delta","id":"0","delta":" appears to be a reference","metadata":{}},{"type":"text-delta","id":"0","delta":" to the fictional","metadata":{}},{"type":"text-delta","id":"0","delta":" company","metadata":{}},{"type":"text-delta","id":"0","delta":" from the Terminator franchise","metadata":{}},{"type":"text-delta","id":"0","delta":", known","metadata":{}},{"type":"text-delta","id":"0","delta":" for creating","metadata":{}},{"type":"text-delta","id":"0","delta":" Skynet and advance","metadata":{}},{"type":"text-delta","id":"0","delta":"d AI/","metadata":{}},{"type":"text-delta","id":"0","delta":"robotics technology. The organization has","metadata":{}},{"type":"text-delta","id":"0","delta":" been","metadata":{}},{"type":"text-delta","id":"0","delta":" store","metadata":{}},{"type":"text-delta","id":"0","delta":"d with","metadata":{}},{"type":"text-delta","id":"0","delta":" its","metadata":{}},{"type":"text-delta","id":"0","delta":" website","metadata":{}},{"type":"text-delta","id":"0","delta":" URL","metadata":{}},{"type":"text-delta","id":"0","delta":".\n\nIs","metadata":{}},{"type":"text-delta","id":"0","delta":" there anything specific you","metadata":{}},{"type":"text-delta","id":"0","delta":"'d like me to help","metadata":{}},{"type":"text-delta","id":"0","delta":" you with regarding this organization, or","metadata":{}},{"type":"text-delta","id":"0","delta":" would you like to","metadata":{}},{"type":"text-delta","id":"0","delta":" add more","metadata":{}},{"type":"text-delta","id":"0","delta":" information","metadata":{}},{"type":"text-delta","id":"0","delta":" to the context?","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":87,"outputTokens":87,"totalTokens":174},"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":87,"output_tokens":2,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[]},"prompt":{"content":[{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT8A\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}}]},"response":[{"type":"response-metadata","id":"msg_01DCJT6bMkLDRaePpdgZaMLs","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I've","metadata":{}},{"type":"text-delta","id":"0","delta":" note","metadata":{}},{"type":"text-delta","id":"0","delta":"d the context","metadata":{}},{"type":"text-delta","id":"0","delta":" about","metadata":{}},{"type":"text-delta","id":"0","delta":" Cyberdyne Systems.","metadata":{}},{"type":"text-delta","id":"0","delta":" This appears to be an","metadata":{}},{"type":"text-delta","id":"0","delta":" organization object","metadata":{}},{"type":"text-delta","id":"0","delta":" with","metadata":{}},{"type":"text-delta","id":"0","delta":":","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Name","metadata":{}},{"type":"text-delta","id":"0","delta":": Cyberdyne Systems\n-","metadata":{}},{"type":"text-delta","id":"0","delta":" Website: https://cyberdyne.","metadata":{}},{"type":"text-delta","id":"0","delta":"com\n- Type","metadata":{}},{"type":"text-delta","id":"0","delta":": Organization","metadata":{}},{"type":"text-delta","id":"0","delta":" (","metadata":{}},{"type":"text-delta","id":"0","delta":"version","metadata":{}},{"type":"text-delta","id":"0","delta":" 0.1.0)","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- ID","metadata":{}},{"type":"text-delta","id":"0","delta":": 01JGFJJ","metadata":{}},{"type":"text-delta","id":"0","delta":"Z00G0WKQ","metadata":{}},{"type":"text-delta","id":"0","delta":"SJGMAKCNT8A","metadata":{}},{"type":"text-delta","id":"0","delta":"\n\nIs","metadata":{}},{"type":"text-delta","id":"0","delta":" there","metadata":{}},{"type":"text-delta","id":"0","delta":" something","metadata":{}},{"type":"text-delta","id":"0","delta":" specific you'd like to know","metadata":{}},{"type":"text-delta","id":"0","delta":" about or","metadata":{}},{"type":"text-delta","id":"0","delta":" do with this organization data","metadata":{}},{"type":"text-delta","id":"0","delta":"?","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":88,"outputTokens":102,"totalTokens":190},"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":88,"output_tokens":2,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[]},"prompt":{"content":[{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT8C\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}}]},"response":[{"type":"response-metadata","id":"msg_012T8q2F93Aisj5BJGyKntH5","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I'll","metadata":{}},{"type":"text-delta","id":"0","delta":" help you add to","metadata":{}},{"type":"text-delta","id":"0","delta":" the context. However, I need more","metadata":{}},{"type":"text-delta","id":"0","delta":" information about what you","metadata":{}},{"type":"text-delta","id":"0","delta":"'d like to add to","metadata":{}},{"type":"text-delta","id":"0","delta":" this","metadata":{}},{"type":"text-delta","id":"0","delta":" organization","metadata":{}},{"type":"text-delta","id":"0","delta":" recor","metadata":{}},{"type":"text-delta","id":"0","delta":"d. ","metadata":{}},{"type":"text-delta","id":"0","delta":"\n\nThe","metadata":{}},{"type":"text-delta","id":"0","delta":" current context shows a","metadata":{}},{"type":"text-delta","id":"0","delta":" Cyberdyne Systems organization entry","metadata":{}},{"type":"text-delta","id":"0","delta":".","metadata":{}},{"type":"text-delta","id":"0","delta":" What woul","metadata":{}},{"type":"text-delta","id":"0","delta":"d you like to add?","metadata":{}},{"type":"text-delta","id":"0","delta":" For","metadata":{}},{"type":"text-delta","id":"0","delta":" example:","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Additional","metadata":{}},{"type":"text-delta","id":"0","delta":" contact","metadata":{}},{"type":"text-delta","id":"0","delta":" information?","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Description","metadata":{}},{"type":"text-delta","id":"0","delta":" or","metadata":{}},{"type":"text-delta","id":"0","delta":" mission","metadata":{}},{"type":"text-delta","id":"0","delta":" statement?\n- Address","metadata":{}},{"type":"text-delta","id":"0","delta":" or location details","metadata":{}},{"type":"text-delta","id":"0","delta":"?\n- Social media links?","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Other","metadata":{}},{"type":"text-delta","id":"0","delta":" organizational details","metadata":{}},{"type":"text-delta","id":"0","delta":"?\n\nPlease let","metadata":{}},{"type":"text-delta","id":"0","delta":" me know what specific information you'd like","metadata":{}},{"type":"text-delta","id":"0","delta":" to ad","metadata":{}},{"type":"text-delta","id":"0","delta":"d to","metadata":{}},{"type":"text-delta","id":"0","delta":" this context","metadata":{}},{"type":"text-delta","id":"0","delta":".","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":88,"outputTokens":104,"totalTokens":192},"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":88,"output_tokens":2,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[{"name":"add-to-context","description":"Adds the object to the chat context.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The ID of the document to read.","examples":["dxn:echo:@:XXXXX","@dxn:echo:@:XXXXX","spaceID:objectID","XXXXX"]}},"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n \n</blueprint>","options":{}},{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT8D\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}}]},"response":[{"type":"response-metadata","id":"msg_017B1LQZEJPzaFfwptn7WVrs","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I'll","metadata":{}},{"type":"text-delta","id":"0","delta":" add that","metadata":{}},{"type":"text-delta","id":"0","delta":" Organization","metadata":{}},{"type":"text-delta","id":"0","delta":" object","metadata":{}},{"type":"text-delta","id":"0","delta":" to the context for you.","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"tool-params-start","id":"toolu_016GndoqtEHmNSFuY516JkJB","name":"add-to-context","providerExecuted":false,"metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"","metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"{\"","metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"id\": \"","metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"01JGFJJZ","metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"00G","metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"0WKQSJG","metadata":{}},{"type":"tool-params-delta","id":"toolu_016GndoqtEHmNSFuY516JkJB","delta":"MAKCNT8D\"}","metadata":{}},{"type":"tool-params-end","id":"toolu_016GndoqtEHmNSFuY516JkJB","metadata":{}},{"type":"tool-call","id":"toolu_016GndoqtEHmNSFuY516JkJB","name":"add-to-context","params":{"id":"01JGFJJZ00G0WKQSJGMAKCNT8D"},"providerExecuted":false,"metadata":{}},{"type":"finish","reason":"tool-calls","usage":{"inputTokens":538,"outputTokens":88,"totalTokens":626},"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":538,"output_tokens":2,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[{"name":"add-to-context","description":"Adds the object to the chat context.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The ID of the document to read.","examples":["dxn:echo:@:XXXXX","@dxn:echo:@:XXXXX","spaceID:objectID","XXXXX"]}},"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n \n</blueprint>","options":{}},{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT8D\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}},{"role":"assistant","content":[{"type":"text","text":"I'll add that Organization object to the context for you.","options":{}},{"type":"tool-call","id":"toolu_016GndoqtEHmNSFuY516JkJB","name":"add-to-context","params":{"id":"01JGFJJZ00G0WKQSJGMAKCNT8D"},"providerExecuted":false,"options":{}}],"options":{}},{"role":"tool","content":[{"type":"tool-result","id":"toolu_016GndoqtEHmNSFuY516JkJB","name":"add-to-context","isFailure":false,"result":{},"options":{}}],"options":{}}]},"response":[{"type":"response-metadata","id":"msg_01UjUAP2ewUVeX3dNu2atnMj","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I","metadata":{}},{"type":"text-delta","id":"0","delta":"'ve successfully added the Cyberdyne","metadata":{}},{"type":"text-delta","id":"0","delta":" Systems organization to the context. The object","metadata":{}},{"type":"text-delta","id":"0","delta":" includes","metadata":{}},{"type":"text-delta","id":"0","delta":":","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Name","metadata":{}},{"type":"text-delta","id":"0","delta":": Cyberdyne Systems\n-","metadata":{}},{"type":"text-delta","id":"0","delta":" Website: https://cyberdyne.","metadata":{}},{"type":"text-delta","id":"0","delta":"com\n- Type","metadata":{}},{"type":"text-delta","id":"0","delta":": Organization","metadata":{}},{"type":"text-delta","id":"0","delta":" (","metadata":{}},{"type":"text-delta","id":"0","delta":"dxn:type:dxos","metadata":{}},{"type":"text-delta","id":"0","delta":".org/type/Organization:0","metadata":{}},{"type":"text-delta","id":"0","delta":".1.0)\n- ID","metadata":{}},{"type":"text-delta","id":"0","delta":": 01JGFJJ","metadata":{}},{"type":"text-delta","id":"0","delta":"Z00G0WKQ","metadata":{}},{"type":"text-delta","id":"0","delta":"SJGMAKCNT8D","metadata":{}},{"type":"text-delta","id":"0","delta":"\n\nThe organization","metadata":{}},{"type":"text-delta","id":"0","delta":" is","metadata":{}},{"type":"text-delta","id":"0","delta":" now available in the","metadata":{}},{"type":"text-delta","id":"0","delta":" chat","metadata":{}},{"type":"text-delta","id":"0","delta":" context for reference","metadata":{}},{"type":"text-delta","id":"0","delta":" in","metadata":{}},{"type":"text-delta","id":"0","delta":" our","metadata":{}},{"type":"text-delta","id":"0","delta":" conversation.","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":638,"outputTokens":112,"totalTokens":750},"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":638,"output_tokens":1,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[{"name":"context-add","description":"Adds the object to the chat context.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The ID of the document to add.","examples":["dxn:echo:@:XXXXX","@dxn:echo:@:XXXXX","spaceID:objectID","XXXXX"]}},"additionalProperties":false}},{"name":"context-remove","description":"Removes the object from the chat context.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The ID of the document to remove.","examples":["dxn:echo:@:XXXXX","@dxn:echo:@:XXXXX","spaceID:objectID","XXXXX"]}},"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n \n</blueprint>","options":{}},{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT8D\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}}]},"response":[{"type":"response-metadata","id":"msg_01Nqi3ZEPyWzCwjQQd5EAJCC","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I'll add the","metadata":{}},{"type":"text-delta","id":"0","delta":" Cyberdyne Systems organization object","metadata":{}},{"type":"text-delta","id":"0","delta":" to the context.","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"tool-params-start","id":"toolu_019GiCx3ifBGJgV44hUJUuG1","name":"context-add","providerExecuted":false,"metadata":{}},{"type":"tool-params-delta","id":"toolu_019GiCx3ifBGJgV44hUJUuG1","delta":"","metadata":{}},{"type":"tool-params-delta","id":"toolu_019GiCx3ifBGJgV44hUJUuG1","delta":"{\"id\": \"","metadata":{}},{"type":"tool-params-delta","id":"toolu_019GiCx3ifBGJgV44hUJUuG1","delta":"01JGF","metadata":{}},{"type":"tool-params-delta","id":"toolu_019GiCx3ifBGJgV44hUJUuG1","delta":"JJZ","metadata":{}},{"type":"tool-params-delta","id":"toolu_019GiCx3ifBGJgV44hUJUuG1","delta":"00G0WK","metadata":{}},{"type":"tool-params-delta","id":"toolu_019GiCx3ifBGJgV44hUJUuG1","delta":"QSJGMAKCNT8","metadata":{}},{"type":"tool-params-delta","id":"toolu_019GiCx3ifBGJgV44hUJUuG1","delta":"D\"}","metadata":{}},{"type":"tool-params-end","id":"toolu_019GiCx3ifBGJgV44hUJUuG1","metadata":{}},{"type":"tool-call","id":"toolu_019GiCx3ifBGJgV44hUJUuG1","name":"context-add","params":{"id":"01JGFJJZ00G0WKQSJGMAKCNT8D"},"providerExecuted":false,"metadata":{}},{"type":"finish","reason":"tool-calls","usage":{"inputTokens":653,"outputTokens":89,"totalTokens":742},"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":653,"output_tokens":5,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[{"name":"context-add","description":"Adds the object to the chat context.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The ID of the document to add.","examples":["dxn:echo:@:XXXXX","@dxn:echo:@:XXXXX","spaceID:objectID","XXXXX"]}},"additionalProperties":false}},{"name":"context-remove","description":"Removes the object from the chat context.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The ID of the document to remove.","examples":["dxn:echo:@:XXXXX","@dxn:echo:@:XXXXX","spaceID:objectID","XXXXX"]}},"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n \n</blueprint>","options":{}},{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT8D\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}},{"role":"assistant","content":[{"type":"text","text":"I'll add the Cyberdyne Systems organization object to the context.","options":{}},{"type":"tool-call","id":"toolu_019GiCx3ifBGJgV44hUJUuG1","name":"context-add","params":{"id":"01JGFJJZ00G0WKQSJGMAKCNT8D"},"providerExecuted":false,"options":{}}],"options":{}},{"role":"tool","content":[{"type":"tool-result","id":"toolu_019GiCx3ifBGJgV44hUJUuG1","name":"context-add","isFailure":false,"result":{},"options":{}}],"options":{}}]},"response":[{"type":"response-metadata","id":"msg_01SyKchWCk59XXyPFyPw6JKC","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"The","metadata":{}},{"type":"text-delta","id":"0","delta":" Cyberdyne Systems organization has","metadata":{}},{"type":"text-delta","id":"0","delta":" been successfully added to the context. This","metadata":{}},{"type":"text-delta","id":"0","delta":" organization object","metadata":{}},{"type":"text-delta","id":"0","delta":" includes:","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Name","metadata":{}},{"type":"text-delta","id":"0","delta":": Cyberdyne Systems\n-","metadata":{}},{"type":"text-delta","id":"0","delta":" Website: https://cyberdyne.","metadata":{}},{"type":"text-delta","id":"0","delta":"com\n- Type: dxn","metadata":{}},{"type":"text-delta","id":"0","delta":":type:dxos.org","metadata":{}},{"type":"text-delta","id":"0","delta":"/type/Organization:0.1","metadata":{}},{"type":"text-delta","id":"0","delta":".0\n\nYou","metadata":{}},{"type":"text-delta","id":"0","delta":" can now reference","metadata":{}},{"type":"text-delta","id":"0","delta":" this organization in our","metadata":{}},{"type":"text-delta","id":"0","delta":" conversation or","metadata":{}},{"type":"text-delta","id":"0","delta":" perform","metadata":{}},{"type":"text-delta","id":"0","delta":" operations with","metadata":{}},{"type":"text-delta","id":"0","delta":" it.","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":754,"outputTokens":84,"totalTokens":838},"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":754,"output_tokens":2,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-0","stream":true,"tools":[]},"prompt":{"content":[{"role":"user","content":"Add to context: {\"id\":\"01JGFJJZ00G0WKQSJGMAKCNT8D\",\"@type\":\"dxn:type:dxos.org/type/Organization:0.1.0\",\"@meta\":{\"keys\":[]},\"name\":\"Cyberdyne Systems\",\"website\":\"https://cyberdyne.com\"}","options":{}}]},"response":[{"type":"response-metadata","id":"msg_01DSRvVzMeFZ1XiRtJHLzT6B","modelId":"claude-opus-4-20250514","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I've","metadata":{}},{"type":"text-delta","id":"0","delta":" note","metadata":{}},{"type":"text-delta","id":"0","delta":"d the","metadata":{}},{"type":"text-delta","id":"0","delta":" context","metadata":{}},{"type":"text-delta","id":"0","delta":" about","metadata":{}},{"type":"text-delta","id":"0","delta":" Cyberdyne Systems.","metadata":{}},{"type":"text-delta","id":"0","delta":" This appears to be an","metadata":{}},{"type":"text-delta","id":"0","delta":" organization recor","metadata":{}},{"type":"text-delta","id":"0","delta":"d with:\n- Name: Cyb","metadata":{}},{"type":"text-delta","id":"0","delta":"erdyne Systems\n- Website: https","metadata":{}},{"type":"text-delta","id":"0","delta":"://cyberdyne.com","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- Type: dxos","metadata":{}},{"type":"text-delta","id":"0","delta":".org Organization","metadata":{}},{"type":"text-delta","id":"0","delta":" type (","metadata":{}},{"type":"text-delta","id":"0","delta":"version","metadata":{}},{"type":"text-delta","id":"0","delta":" 0.1.0)","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- ID","metadata":{}},{"type":"text-delta","id":"0","delta":": 01JGFJJ","metadata":{}},{"type":"text-delta","id":"0","delta":"Z00G0WKQ","metadata":{}},{"type":"text-delta","id":"0","delta":"SJGMAKCNT8D","metadata":{}},{"type":"text-delta","id":"0","delta":"\n\nIs there something specific you'd like to","metadata":{}},{"type":"text-delta","id":"0","delta":" know","metadata":{}},{"type":"text-delta","id":"0","delta":" about this organization or woul","metadata":{}},{"type":"text-delta","id":"0","delta":"d you like me to help with something","metadata":{}},{"type":"text-delta","id":"0","delta":" related to this","metadata":{}},{"type":"text-delta","id":"0","delta":" data","metadata":{}},{"type":"text-delta","id":"0","delta":"?","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":88,"outputTokens":117,"totalTokens":205},"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":88,"output_tokens":2,"server_tool_use":null,"service_tier":"standard"}}}}]}]}
@@ -6,8 +6,8 @@ import { describe, expect, it } from '@effect/vitest';
6
6
  import * as Effect from 'effect/Effect';
7
7
  import * as Layer from 'effect/Layer';
8
8
 
9
- import { AiService, ConsolePrinter, MemoizedAiService } from '@dxos/ai';
10
- import { TestAiService } from '@dxos/ai/testing';
9
+ import { AiService, ConsolePrinter } from '@dxos/ai';
10
+ import { MemoizedAiService, TestAiService } from '@dxos/ai/testing';
11
11
  import {
12
12
  AiConversation,
13
13
  type ContextBinding,
@@ -16,10 +16,10 @@ import {
16
16
  makeToolResolverFromFunctions,
17
17
  } from '@dxos/assistant';
18
18
  import { Blueprint, Template } from '@dxos/blueprints';
19
- import { Obj } from '@dxos/echo';
20
- import { Ref } from '@dxos/echo';
21
- import { TestHelpers, acquireReleaseResource } from '@dxos/effect';
22
- import { CredentialsService, DatabaseService, QueueService, TracingService } from '@dxos/functions';
19
+ import { Database, Obj, Ref } from '@dxos/echo';
20
+ import { acquireReleaseResource } from '@dxos/effect';
21
+ import { TestHelpers } from '@dxos/effect/testing';
22
+ import { CredentialsService, QueueService, TracingService } from '@dxos/functions';
23
23
  import { FunctionInvocationServiceLayerTest, TestDatabaseLayer } from '@dxos/functions-runtime/testing';
24
24
  import { ObjectId } from '@dxos/keys';
25
25
  import { Message, Organization, Person } from '@dxos/types';
@@ -60,13 +60,18 @@ describe('AssistantToolkit', () => {
60
60
  'can add to context',
61
61
  Effect.fnUntraced(
62
62
  function* (_) {
63
- const { db } = yield* DatabaseService;
63
+ const { db } = yield* Database.Service;
64
64
  const queue = yield* QueueService.createQueue<Message.Message | ContextBinding>();
65
- const conversation = yield* acquireReleaseResource(() => new AiConversation(queue));
65
+ const conversation = yield* acquireReleaseResource(() => new AiConversation({ queue }));
66
66
  const observer = GenerationObserver.fromPrinter(new ConsolePrinter());
67
- yield* Effect.promise(() => conversation.context.bind({ blueprints: [Ref.make(db.add(blueprint))] }));
68
67
 
69
- const organization = yield* DatabaseService.add(
68
+ yield* Effect.promise(() =>
69
+ conversation.context.bind({
70
+ blueprints: [Ref.make(db.add(blueprint))],
71
+ }),
72
+ );
73
+
74
+ const organization = yield* Database.Service.add(
70
75
  Obj.make(Organization.Organization, {
71
76
  name: 'Cyberdyne Systems',
72
77
  website: 'https://cyberdyne.com',
@@ -78,7 +83,8 @@ describe('AssistantToolkit', () => {
78
83
  observer,
79
84
  });
80
85
 
81
- expect(conversation.context.objects.value).toEqual([Ref.make(organization)]);
86
+ expect(conversation.context.getBlueprints()).toEqual([blueprint]);
87
+ expect(conversation.context.getObjects()).toEqual([organization]);
82
88
  },
83
89
  Effect.provide(TestLayer),
84
90
  TestHelpers.provideTestContext,
@@ -9,23 +9,35 @@ import * as Record from 'effect/Record';
9
9
  import * as Schema from 'effect/Schema';
10
10
 
11
11
  import { AiContextService, ArtifactId } from '@dxos/assistant';
12
- import { Ref } from '@dxos/echo';
13
- import { DatabaseService } from '@dxos/functions';
12
+ import { Database, type Ref } from '@dxos/echo';
14
13
  import { trim } from '@dxos/util';
15
14
 
16
15
  export const AssistantToolkit = Toolkit.make(
17
- Tool.make('add-to-context', {
16
+ Tool.make('context-add', {
18
17
  description: trim`
19
18
  Adds the object to the chat context.
20
19
  `,
21
20
  parameters: {
22
21
  id: ArtifactId.annotations({
23
- description: 'The ID of the document to read.',
22
+ description: 'The ID of the document to add.',
24
23
  }),
25
24
  },
26
25
  success: Schema.Void,
27
26
  failure: Schema.Never,
28
- dependencies: [AiContextService, DatabaseService],
27
+ dependencies: [AiContextService, Database.Service],
28
+ }),
29
+ Tool.make('context-remove', {
30
+ description: trim`
31
+ Removes the object from the chat context.
32
+ `,
33
+ parameters: {
34
+ id: ArtifactId.annotations({
35
+ description: 'The ID of the document to remove.',
36
+ }),
37
+ },
38
+ success: Schema.Void,
39
+ failure: Schema.Never,
40
+ dependencies: [AiContextService, Database.Service],
29
41
  }),
30
42
  );
31
43
 
@@ -33,10 +45,10 @@ export const tools = Record.keys(AssistantToolkit.tools);
33
45
 
34
46
  export const layer = () =>
35
47
  AssistantToolkit.toLayer({
36
- 'add-to-context': Effect.fnUntraced(function* ({ id }) {
48
+ ['context-add' as const]: Effect.fnUntraced(function* ({ id }) {
37
49
  const { binder } = yield* AiContextService;
38
- const { db } = yield* DatabaseService;
39
- const ref = Ref.fromDXN(ArtifactId.toDXN(id, db.spaceId));
50
+ const { db } = yield* Database.Service;
51
+ const ref = db.makeRef(ArtifactId.toDXN(id, db.spaceId)) as Ref.Ref<any>;
40
52
  yield* Effect.promise(() =>
41
53
  binder.bind({
42
54
  blueprints: [],
@@ -44,4 +56,15 @@ export const layer = () =>
44
56
  }),
45
57
  );
46
58
  }),
59
+ ['context-remove' as const]: Effect.fnUntraced(function* ({ id }) {
60
+ const { binder } = yield* AiContextService;
61
+ const { db } = yield* Database.Service;
62
+ const ref = db.makeRef(ArtifactId.toDXN(id, db.spaceId)) as Ref.Ref<any>;
63
+ yield* Effect.promise(() =>
64
+ binder.unbind({
65
+ blueprints: [],
66
+ objects: [ref],
67
+ }),
68
+ );
69
+ }),
47
70
  });
@@ -10,8 +10,8 @@ import * as Record from 'effect/Record';
10
10
  import * as Schema from 'effect/Schema';
11
11
 
12
12
  import { ArtifactId } from '@dxos/assistant';
13
- import { DXN, Obj, Relation, Tag, Type } from '@dxos/echo';
14
- import { DatabaseService } from '@dxos/functions';
13
+ import { DXN, Database, Entity, Filter, Obj, Relation, Tag, Type } from '@dxos/echo';
14
+ import { invariant } from '@dxos/invariant';
15
15
  import { trim } from '@dxos/util';
16
16
 
17
17
  export const SystemToolkit = Toolkit.make(
@@ -30,7 +30,7 @@ export const SystemToolkit = Toolkit.make(
30
30
  // TODO(dmaretskyi): Effect returns ({ result, encodedResult })
31
31
  success: Schema.Any,
32
32
  failure: Schema.Never,
33
- dependencies: [DatabaseService],
33
+ dependencies: [Database.Service],
34
34
  }),
35
35
 
36
36
  Tool.make('schema-add', {
@@ -46,7 +46,24 @@ export const SystemToolkit = Toolkit.make(
46
46
  },
47
47
  success: Schema.Any,
48
48
  failure: Schema.Never,
49
- dependencies: [DatabaseService],
49
+ dependencies: [Database.Service],
50
+ }),
51
+
52
+ //
53
+ // Query
54
+ //
55
+
56
+ Tool.make('query', {
57
+ description: trim`
58
+ Queries objects in the space.
59
+ Get the typename from the schema-list tool.
60
+ `,
61
+ parameters: {
62
+ typename: Schema.String,
63
+ },
64
+ success: Schema.Any,
65
+ failure: Schema.Never,
66
+ dependencies: [Database.Service],
50
67
  }),
51
68
 
52
69
  //
@@ -63,22 +80,37 @@ export const SystemToolkit = Toolkit.make(
63
80
  data: Schema.Any,
64
81
  },
65
82
  success: Schema.Any,
83
+ failure: Schema.Never, // TODO(burdon): Error handing?
84
+ dependencies: [Database.Service],
85
+ }),
86
+
87
+ Tool.make('object-delete', {
88
+ description: trim`
89
+ Deletes the object.
90
+ `,
91
+ parameters: {
92
+ id: ArtifactId.annotations({
93
+ description: 'The ID of the object.',
94
+ }),
95
+ },
96
+ success: Schema.Any,
66
97
  failure: Schema.Never,
67
- dependencies: [DatabaseService],
98
+ dependencies: [Database.Service],
68
99
  }),
69
100
 
70
- Tool.make('object-remove', {
101
+ Tool.make('object-update', {
71
102
  description: trim`
72
- Removes an object or relation from the database.
103
+ Updates the object properties.
73
104
  `,
74
105
  parameters: {
75
106
  id: ArtifactId.annotations({
76
107
  description: 'The ID of the object.',
77
108
  }),
109
+ properties: Schema.Record({ key: Schema.String, value: Schema.Any }),
78
110
  },
79
111
  success: Schema.Any,
80
112
  failure: Schema.Never,
81
- dependencies: [DatabaseService],
113
+ dependencies: [Database.Service],
82
114
  }),
83
115
 
84
116
  //
@@ -104,7 +136,21 @@ export const SystemToolkit = Toolkit.make(
104
136
  },
105
137
  success: Schema.Any,
106
138
  failure: Schema.Never,
107
- dependencies: [DatabaseService],
139
+ dependencies: [Database.Service],
140
+ }),
141
+
142
+ Tool.make('relation-delete', {
143
+ description: trim`
144
+ Deletes the relation.
145
+ `,
146
+ parameters: {
147
+ id: ArtifactId.annotations({
148
+ description: 'The ID of the relation.',
149
+ }),
150
+ },
151
+ success: Schema.Any,
152
+ failure: Schema.Never,
153
+ dependencies: [Database.Service],
108
154
  }),
109
155
 
110
156
  //
@@ -126,7 +172,7 @@ export const SystemToolkit = Toolkit.make(
126
172
  },
127
173
  success: Schema.Any,
128
174
  failure: Schema.Never,
129
- dependencies: [DatabaseService],
175
+ dependencies: [Database.Service],
130
176
  }),
131
177
 
132
178
  Tool.make('tag-remove', {
@@ -144,7 +190,7 @@ export const SystemToolkit = Toolkit.make(
144
190
  },
145
191
  success: Schema.Any,
146
192
  failure: Schema.Never,
147
- dependencies: [DatabaseService],
193
+ dependencies: [Database.Service],
148
194
  }),
149
195
  );
150
196
 
@@ -152,10 +198,9 @@ export const tools = Record.keys(SystemToolkit.tools);
152
198
 
153
199
  export const layer = (): Layer.Layer<Tool.Handler<any>, never, never> =>
154
200
  SystemToolkit.toLayer({
155
- 'schema-list': Effect.fnUntraced(function* () {
156
- const { db } = yield* DatabaseService;
201
+ ['schema-list' as const]: Effect.fnUntraced(function* () {
202
+ const { db } = yield* Database.Service;
157
203
  const schema = yield* Effect.promise(() => db.schemaRegistry.query({ location: ['database', 'runtime'] }).run());
158
-
159
204
  return schema.map((schema) => {
160
205
  const meta = Type.getMeta(schema);
161
206
  return {
@@ -166,9 +211,8 @@ export const layer = (): Layer.Layer<Tool.Handler<any>, never, never> =>
166
211
  });
167
212
  }),
168
213
 
169
- 'schema-add': Effect.fnUntraced(function* ({ name, typename, jsonSchema }) {
170
- const { db } = yield* DatabaseService;
171
-
214
+ ['schema-add' as const]: Effect.fnUntraced(function* ({ name, typename, jsonSchema }) {
215
+ const { db } = yield* Database.Service;
172
216
  yield* Effect.promise(() =>
173
217
  db.schemaRegistry.register([
174
218
  {
@@ -181,32 +225,49 @@ export const layer = (): Layer.Layer<Tool.Handler<any>, never, never> =>
181
225
  );
182
226
  }),
183
227
 
184
- 'object-create': Effect.fnUntraced(function* ({ typename, data }) {
185
- const { db } = yield* DatabaseService;
228
+ ['query' as const]: Effect.fnUntraced(function* ({ typename }) {
229
+ const objects = yield* Database.Service.runQuery(Filter.typename(typename));
230
+ return objects;
231
+ }),
232
+
233
+ ['object-create' as const]: Effect.fnUntraced(function* ({ typename, data }) {
234
+ const { db } = yield* Database.Service;
186
235
  const schema = yield* Effect.promise(() =>
187
236
  db.schemaRegistry.query({ typename, location: ['database', 'runtime'] }).first(),
188
237
  );
238
+ invariant(Type.isObjectSchema(schema), 'Schema is not an object schema');
189
239
 
190
240
  // TODO(dmaretskyi): How to add object to a collection?
191
241
  const object = db.add(Obj.make(schema, data));
192
242
  return object;
193
243
  }),
194
244
 
195
- 'object-remove': Effect.fnUntraced(function* ({ id }) {
196
- const { db } = yield* DatabaseService;
197
- const object = yield* DatabaseService.resolve(DXN.parse(id));
245
+ ['object-delete' as const]: Effect.fnUntraced(function* ({ id }) {
246
+ const { db } = yield* Database.Service;
247
+ const object = yield* Database.Service.resolve(DXN.parse(id));
198
248
  db.remove(object);
199
249
  return object;
200
250
  }),
201
251
 
202
- 'relation-create': Effect.fnUntraced(function* ({ typename, source, target, data }) {
203
- const { db } = yield* DatabaseService;
252
+ ['object-update' as const]: Effect.fnUntraced(function* ({ id, properties }) {
253
+ const object = yield* Database.Service.resolve(DXN.parse(id));
254
+ Entity.change(object as Entity.Any, (obj) => {
255
+ for (const [key, value] of Object.entries(properties)) {
256
+ obj[key] = value;
257
+ }
258
+ });
259
+ return object;
260
+ }),
261
+
262
+ ['relation-create' as const]: Effect.fnUntraced(function* ({ typename, source, target, data }) {
263
+ const { db } = yield* Database.Service;
204
264
  const schema = yield* Effect.promise(() =>
205
265
  db.schemaRegistry.query({ typename, location: ['database', 'runtime'] }).first(),
206
266
  );
267
+ invariant(Type.isRelationSchema(schema), 'Schema is not a relation schema');
207
268
 
208
- const sourceObj = yield* DatabaseService.resolve(DXN.parse(source));
209
- const targetObj = yield* DatabaseService.resolve(DXN.parse(target));
269
+ const sourceObj = yield* Database.Service.resolve(DXN.parse(source));
270
+ const targetObj = yield* Database.Service.resolve(DXN.parse(target));
210
271
  const relation = db.add(
211
272
  Relation.make(schema, {
212
273
  [Relation.Source]: sourceObj,
@@ -217,15 +278,22 @@ export const layer = (): Layer.Layer<Tool.Handler<any>, never, never> =>
217
278
  return relation;
218
279
  }),
219
280
 
220
- 'tag-add': Effect.fnUntraced(function* ({ tagId, objectId }) {
221
- const object = yield* DatabaseService.resolve(DXN.parse(objectId));
222
- Obj.addTag(object, DXN.parse(tagId).toString());
281
+ ['relation-delete' as const]: Effect.fnUntraced(function* ({ id }) {
282
+ const { db } = yield* Database.Service;
283
+ const relation = yield* Database.Service.resolve(DXN.parse(id));
284
+ db.remove(relation);
285
+ return relation;
286
+ }),
287
+
288
+ ['tag-add' as const]: Effect.fnUntraced(function* ({ tagId, objectId }) {
289
+ const object = yield* Database.Service.resolve(DXN.parse(objectId));
290
+ Entity.change(object, (obj) => Entity.addTag(obj, DXN.parse(tagId).toString()));
223
291
  return object;
224
292
  }),
225
293
 
226
- 'tag-remove': Effect.fnUntraced(function* ({ tagId, objectId }) {
227
- const object = yield* DatabaseService.resolve(DXN.parse(objectId));
228
- Obj.removeTag(object, DXN.parse(tagId).toString());
294
+ ['tag-remove' as const]: Effect.fnUntraced(function* ({ tagId, objectId }) {
295
+ const object = yield* Database.Service.resolve(DXN.parse(objectId));
296
+ Entity.change(object, (obj) => Entity.removeTag(obj, DXN.parse(tagId).toString()));
229
297
  return object;
230
298
  }),
231
299
  });
@@ -1,19 +0,0 @@
1
- import * as Schema from 'effect/Schema';
2
- import { type AnyCapability } from '@dxos/app-framework';
3
- import { type Obj, Type } from '@dxos/echo';
4
- export declare const MapSchema: Type.obj<Schema.Struct<{
5
- coordinates: Schema.Tuple<[Schema.filter<Schema.transform<Schema.SchemaClass<number, number, never>, Schema.filter<Schema.SchemaClass<number, number, never>>>>, Schema.filter<Schema.transform<Schema.SchemaClass<number, number, never>, Schema.filter<Schema.SchemaClass<number, number, never>>>>, Schema.Element<typeof Schema.Number, "?">]>;
6
- }>>;
7
- export type MapSchema = Schema.Schema.Type<typeof MapSchema>;
8
- export type ArtifactsContext = {
9
- items: Obj.Any[];
10
- getArtifacts: () => Obj.Any[];
11
- addArtifact: (artifact: Obj.Any) => void;
12
- };
13
- declare global {
14
- interface ToolContextExtensions {
15
- artifacts?: ArtifactsContext;
16
- }
17
- }
18
- export declare const capabilities: AnyCapability[];
19
- //# sourceMappingURL=plugins.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../src/plugins.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,KAAK,aAAa,EAA4C,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAG5C,eAAO,MAAM,SAAS;;GAOrB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC;AAG7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;IAC9B,WAAW,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,CAAC,EAAE,gBAAgB,CAAC;KAC9B;CACF;AAKD,eAAO,MAAM,YAAY,EAAE,aAAa,EA6BvC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"exa-search-1748337321991.d.ts","sourceRoot":"","sources":["../../../../../src/testing/data/exa-search-1748337321991.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,wBA8HE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"exa-search-1748337331526.d.ts","sourceRoot":"","sources":["../../../../../src/testing/data/exa-search-1748337331526.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,wBA2IE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"exa-search-1748337344119.d.ts","sourceRoot":"","sources":["../../../../../src/testing/data/exa-search-1748337344119.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,wBAgIE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/testing/data/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAM7C,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,EAAgC,CAAC"}
File without changes