@dxos/assistant 0.8.4-main.84f28bd → 0.8.4-main.ae835ea

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 (179) hide show
  1. package/dist/lib/browser/chunk-4VIJTKPM.mjs +354 -0
  2. package/dist/lib/browser/chunk-4VIJTKPM.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-UB26N5UF.mjs +89 -0
  4. package/dist/lib/browser/chunk-UB26N5UF.mjs.map +7 -0
  5. package/dist/lib/browser/extraction/index.mjs +272 -0
  6. package/dist/lib/browser/extraction/index.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +754 -1873
  8. package/dist/lib/browser/index.mjs.map +4 -4
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/named-entity-recognition-QPYHML66.mjs +13 -0
  11. package/dist/lib/browser/named-entity-recognition-QPYHML66.mjs.map +7 -0
  12. package/dist/lib/node-esm/chunk-AUUC7II4.mjs +356 -0
  13. package/dist/lib/node-esm/chunk-AUUC7II4.mjs.map +7 -0
  14. package/dist/lib/node-esm/chunk-BCFXTNSK.mjs +91 -0
  15. package/dist/lib/node-esm/chunk-BCFXTNSK.mjs.map +7 -0
  16. package/dist/lib/node-esm/extraction/index.mjs +273 -0
  17. package/dist/lib/node-esm/extraction/index.mjs.map +7 -0
  18. package/dist/lib/node-esm/index.mjs +754 -1874
  19. package/dist/lib/node-esm/index.mjs.map +4 -4
  20. package/dist/lib/node-esm/meta.json +1 -1
  21. package/dist/lib/node-esm/named-entity-recognition-2HDF46YX.mjs +14 -0
  22. package/dist/lib/node-esm/named-entity-recognition-2HDF46YX.mjs.map +7 -0
  23. package/dist/types/src/conversation/context.d.ts +103 -0
  24. package/dist/types/src/conversation/context.d.ts.map +1 -0
  25. package/dist/types/src/conversation/conversation.d.ts +29 -32
  26. package/dist/types/src/conversation/conversation.d.ts.map +1 -1
  27. package/dist/types/src/conversation/index.d.ts +1 -0
  28. package/dist/types/src/conversation/index.d.ts.map +1 -1
  29. package/dist/types/src/diff.d.ts +15 -0
  30. package/dist/types/src/diff.d.ts.map +1 -0
  31. package/dist/types/src/diff.test.d.ts +2 -0
  32. package/dist/types/src/diff.test.d.ts.map +1 -0
  33. package/dist/types/src/errors.d.ts +75 -0
  34. package/dist/types/src/errors.d.ts.map +1 -0
  35. package/dist/types/src/execution-graph.d.ts +82 -0
  36. package/dist/types/src/execution-graph.d.ts.map +1 -0
  37. package/dist/types/src/execution-graph.test.d.ts +2 -0
  38. package/dist/types/src/execution-graph.test.d.ts.map +1 -0
  39. package/dist/types/src/extraction/extraction-llm-function/extraction-llm-function.d.ts +1 -1
  40. package/dist/types/src/extraction/extraction-llm-function/extraction-llm-function.d.ts.map +1 -1
  41. package/dist/types/src/extraction/extraction-ner-function/extraction-ner-function.d.ts +210 -73
  42. package/dist/types/src/extraction/extraction-ner-function/extraction-ner-function.d.ts.map +1 -1
  43. package/dist/types/src/extraction/extraction-ner-function/named-entity-recognition.d.ts +1 -1
  44. package/dist/types/src/extraction/extraction-ner-function/named-entity-recognition.d.ts.map +1 -1
  45. package/dist/types/src/extraction/extraction.d.ts +264 -166
  46. package/dist/types/src/extraction/extraction.d.ts.map +1 -1
  47. package/dist/types/src/extraction/quotes.d.ts +1 -1
  48. package/dist/types/src/extraction/quotes.d.ts.map +1 -1
  49. package/dist/types/src/functions/index.d.ts +2 -0
  50. package/dist/types/src/functions/index.d.ts.map +1 -0
  51. package/dist/types/src/functions/services.d.ts +19 -0
  52. package/dist/types/src/functions/services.d.ts.map +1 -0
  53. package/dist/types/src/index.d.ts +5 -5
  54. package/dist/types/src/index.d.ts.map +1 -1
  55. package/dist/types/src/session/artifact-diff.d.ts +27 -0
  56. package/dist/types/src/session/artifact-diff.d.ts.map +1 -0
  57. package/dist/types/src/session/error-handling.d.ts +4 -0
  58. package/dist/types/src/session/error-handling.d.ts.map +1 -0
  59. package/dist/types/src/session/format.d.ts +186 -0
  60. package/dist/types/src/session/format.d.ts.map +1 -0
  61. package/dist/types/src/session/format.test.d.ts +2 -0
  62. package/dist/types/src/session/format.test.d.ts.map +1 -0
  63. package/dist/types/src/session/index.d.ts +3 -0
  64. package/dist/types/src/session/index.d.ts.map +1 -1
  65. package/dist/types/src/session/observer.d.ts +22 -0
  66. package/dist/types/src/session/observer.d.ts.map +1 -0
  67. package/dist/types/src/session/session.d.ts +36 -268
  68. package/dist/types/src/session/session.d.ts.map +1 -1
  69. package/dist/types/src/session/toolkit.d.ts +15 -0
  70. package/dist/types/src/session/toolkit.d.ts.map +1 -0
  71. package/dist/types/src/session/version-pin.d.ts +5 -5
  72. package/dist/types/src/session/version-pin.d.ts.map +1 -1
  73. package/dist/types/src/templates/index.d.ts +2 -0
  74. package/dist/types/src/templates/index.d.ts.map +1 -0
  75. package/dist/types/src/templates/system.d.ts +18 -0
  76. package/dist/types/src/templates/system.d.ts.map +1 -0
  77. package/dist/types/src/types/artifact.d.ts +16 -0
  78. package/dist/types/src/types/artifact.d.ts.map +1 -0
  79. package/dist/types/src/types/index.d.ts +2 -0
  80. package/dist/types/src/types/index.d.ts.map +1 -0
  81. package/dist/types/tsconfig.tsbuildinfo +1 -1
  82. package/package.json +46 -26
  83. package/src/conversation/context.ts +186 -0
  84. package/src/conversation/conversation.ts +101 -76
  85. package/src/conversation/index.ts +1 -0
  86. package/src/diff.test.ts +43 -0
  87. package/src/diff.ts +84 -0
  88. package/src/errors.ts +15 -0
  89. package/src/execution-graph.test.ts +738 -0
  90. package/src/execution-graph.ts +500 -0
  91. package/src/extraction/extraction-llm-function/extraction-llm-function.test.ts +13 -24
  92. package/src/extraction/extraction-llm-function/extraction-llm-function.ts +28 -22
  93. package/src/extraction/extraction-ner-function/extraction-ner-function.test.ts +9 -9
  94. package/src/extraction/extraction-ner-function/extraction-ner-function.ts +18 -8
  95. package/src/extraction/extraction-ner-function/named-entity-recognition.test.ts +4 -3
  96. package/src/extraction/extraction-ner-function/named-entity-recognition.ts +3 -1
  97. package/src/extraction/extraction.ts +2 -2
  98. package/src/extraction/quotes.test.ts +3 -3
  99. package/src/extraction/quotes.ts +4 -4
  100. package/src/functions/index.ts +5 -0
  101. package/src/functions/services.ts +158 -0
  102. package/src/index.ts +5 -5
  103. package/src/session/artifact-diff.ts +41 -0
  104. package/src/session/error-handling.ts +41 -0
  105. package/src/session/format.test.ts +60 -0
  106. package/src/session/format.ts +142 -0
  107. package/src/session/index.ts +3 -0
  108. package/src/session/observer.ts +59 -0
  109. package/src/session/session.conversations.json +1 -0
  110. package/src/session/session.test.ts +88 -214
  111. package/src/session/session.ts +170 -539
  112. package/src/session/toolkit.ts +48 -0
  113. package/src/session/version-pin.ts +10 -10
  114. package/src/summarization/summarization.test.ts +87 -106
  115. package/src/templates/format.tpl +60 -0
  116. package/src/templates/index.ts +5 -0
  117. package/src/templates/system.tpl +48 -0
  118. package/src/templates/system.ts +41 -0
  119. package/src/types/artifact.ts +52 -0
  120. package/src/types/index.ts +5 -0
  121. package/src/typings.d.ts +5 -0
  122. package/dist/types/bin/chat.d.ts +0 -2
  123. package/dist/types/bin/chat.d.ts.map +0 -1
  124. package/dist/types/src/blueprint/blueprint.d.ts +0 -41
  125. package/dist/types/src/blueprint/blueprint.d.ts.map +0 -1
  126. package/dist/types/src/blueprint/index.d.ts +0 -3
  127. package/dist/types/src/blueprint/index.d.ts.map +0 -1
  128. package/dist/types/src/blueprint/registry.d.ts +0 -7
  129. package/dist/types/src/blueprint/registry.d.ts.map +0 -1
  130. package/dist/types/src/context/binder.d.ts +0 -34
  131. package/dist/types/src/context/binder.d.ts.map +0 -1
  132. package/dist/types/src/context/binding.d.ts +0 -38
  133. package/dist/types/src/context/binding.d.ts.map +0 -1
  134. package/dist/types/src/context/index.d.ts +0 -3
  135. package/dist/types/src/context/index.d.ts.map +0 -1
  136. package/dist/types/src/research/exa.d.ts +0 -7
  137. package/dist/types/src/research/exa.d.ts.map +0 -1
  138. package/dist/types/src/research/graph.d.ts +0 -41
  139. package/dist/types/src/research/graph.d.ts.map +0 -1
  140. package/dist/types/src/research/graph.test.d.ts +0 -2
  141. package/dist/types/src/research/graph.test.d.ts.map +0 -1
  142. package/dist/types/src/research/index.d.ts +0 -4
  143. package/dist/types/src/research/index.d.ts.map +0 -1
  144. package/dist/types/src/research/research.d.ts +0 -10
  145. package/dist/types/src/research/research.d.ts.map +0 -1
  146. package/dist/types/src/research/research.test.d.ts +0 -2
  147. package/dist/types/src/research/research.test.d.ts.map +0 -1
  148. package/dist/types/src/session/version-pin.test.d.ts +0 -2
  149. package/dist/types/src/session/version-pin.test.d.ts.map +0 -1
  150. package/dist/types/src/testing/exa-search-1748337321991.d.ts +0 -38
  151. package/dist/types/src/testing/exa-search-1748337321991.d.ts.map +0 -1
  152. package/dist/types/src/testing/exa-search-1748337331526.d.ts +0 -37
  153. package/dist/types/src/testing/exa-search-1748337331526.d.ts.map +0 -1
  154. package/dist/types/src/testing/exa-search-1748337344119.d.ts +0 -58
  155. package/dist/types/src/testing/exa-search-1748337344119.d.ts.map +0 -1
  156. package/dist/types/src/testing/index.d.ts +0 -3
  157. package/dist/types/src/testing/index.d.ts.map +0 -1
  158. package/dist/types/src/types.d.ts +0 -3
  159. package/dist/types/src/types.d.ts.map +0 -1
  160. package/src/blueprint/blueprint.ts +0 -75
  161. package/src/blueprint/index.ts +0 -6
  162. package/src/blueprint/registry.ts +0 -15
  163. package/src/context/binder.ts +0 -101
  164. package/src/context/binding.ts +0 -31
  165. package/src/context/index.ts +0 -6
  166. package/src/research/exa.ts +0 -100
  167. package/src/research/graph.test.ts +0 -15
  168. package/src/research/graph.ts +0 -337
  169. package/src/research/index.ts +0 -7
  170. package/src/research/instructions-research.tpl +0 -97
  171. package/src/research/research.test.ts +0 -190
  172. package/src/research/research.ts +0 -90
  173. package/src/session/version-pin.test.ts +0 -26
  174. package/src/testing/exa-search-1748337321991.ts +0 -131
  175. package/src/testing/exa-search-1748337331526.ts +0 -144
  176. package/src/testing/exa-search-1748337344119.ts +0 -133
  177. package/src/testing/index.ts +0 -11
  178. package/src/typedefs.d.ts +0 -8
  179. package/src/types.ts +0 -8
@@ -1 +1 @@
1
- {"inputs":{"src/blueprint/blueprint.ts":{"bytes":6816,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"src/blueprint/registry.ts":{"bytes":1443,"imports":[],"format":"esm"},"src/blueprint/index.ts":{"bytes":553,"imports":[{"path":"src/blueprint/blueprint.ts","kind":"import-statement","original":"./blueprint"},{"path":"src/blueprint/registry.ts","kind":"import-statement","original":"./registry"}],"format":"esm"},"src/context/binding.ts":{"bytes":2953,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"src/blueprint/index.ts","kind":"import-statement","original":"../blueprint"}],"format":"esm"},"src/context/binder.ts":{"bytes":10210,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/context/binding.ts","kind":"import-statement","original":"./binding"}],"format":"esm"},"src/context/index.ts":{"bytes":539,"imports":[{"path":"src/context/binder.ts","kind":"import-statement","original":"./binder"},{"path":"src/context/binding.ts","kind":"import-statement","original":"./binding"}],"format":"esm"},"src/session/version-pin.ts":{"bytes":4209,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"src/session/session.ts":{"bytes":62326,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"}],"format":"esm"},"src/session/index.ts":{"bytes":556,"imports":[{"path":"src/session/session.ts","kind":"import-statement","original":"./session"},{"path":"src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"}],"format":"esm"},"src/conversation/conversation.ts":{"bytes":10423,"imports":[{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/context/index.ts","kind":"import-statement","original":"../context"},{"path":"src/session/index.ts","kind":"import-statement","original":"../session"}],"format":"esm"},"src/conversation/index.ts":{"bytes":475,"imports":[{"path":"src/conversation/conversation.ts","kind":"import-statement","original":"./conversation"}],"format":"esm"},"src/extraction/extraction.ts":{"bytes":6822,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"raw-loader:./instructions.tpl?raw":{"bytes":1318,"imports":[]},"src/extraction/quotes.ts":{"bytes":7110,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/extraction/extraction-llm-function/extraction-llm-function.ts":{"bytes":8038,"imports":[{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"raw-loader:./instructions.tpl?raw","kind":"import-statement","original":"./instructions.tpl?raw"},{"path":"src/session/index.ts","kind":"import-statement","original":"../../session"},{"path":"src/extraction/extraction.ts","kind":"import-statement","original":"../extraction"},{"path":"src/extraction/quotes.ts","kind":"import-statement","original":"../quotes"}],"format":"esm"},"src/extraction/extraction-llm-function/index.ts":{"bytes":524,"imports":[{"path":"src/extraction/extraction-llm-function/extraction-llm-function.ts","kind":"import-statement","original":"./extraction-llm-function"}],"format":"esm"},"src/extraction/extraction-ner-function/named-entity-recognition.ts":{"bytes":10059,"imports":[{"path":"@xenova/transformers","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/extraction/extraction-ner-function/extraction-ner-function.ts":{"bytes":8897,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/extraction/extraction-ner-function/named-entity-recognition.ts","kind":"import-statement","original":"./named-entity-recognition"},{"path":"src/extraction/extraction.ts","kind":"import-statement","original":"../extraction"},{"path":"src/extraction/quotes.ts","kind":"import-statement","original":"../quotes"}],"format":"esm"},"src/extraction/extraction-ner-function/index.ts":{"bytes":652,"imports":[{"path":"src/extraction/extraction-ner-function/extraction-ner-function.ts","kind":"import-statement","original":"./extraction-ner-function"},{"path":"src/extraction/extraction-ner-function/named-entity-recognition.ts","kind":"import-statement","original":"./named-entity-recognition"}],"format":"esm"},"src/extraction/index.ts":{"bytes":803,"imports":[{"path":"src/extraction/extraction.ts","kind":"import-statement","original":"./extraction"},{"path":"src/extraction/extraction-llm-function/index.ts","kind":"import-statement","original":"./extraction-llm-function"},{"path":"src/extraction/extraction-ner-function/index.ts","kind":"import-statement","original":"./extraction-ner-function"},{"path":"src/extraction/quotes.ts","kind":"import-statement","original":"./quotes"}],"format":"esm"},"src/testing/exa-search-1748337321991.ts":{"bytes":75508,"imports":[],"format":"esm"},"src/testing/exa-search-1748337331526.ts":{"bytes":90578,"imports":[],"format":"esm"},"src/testing/exa-search-1748337344119.ts":{"bytes":69950,"imports":[],"format":"esm"},"src/testing/index.ts":{"bytes":1205,"imports":[{"path":"src/testing/exa-search-1748337321991.ts","kind":"import-statement","original":"./exa-search-1748337321991"},{"path":"src/testing/exa-search-1748337331526.ts","kind":"import-statement","original":"./exa-search-1748337331526"},{"path":"src/testing/exa-search-1748337344119.ts","kind":"import-statement","original":"./exa-search-1748337344119"}],"format":"esm"},"src/research/exa.ts":{"bytes":10690,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"exa-js","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/testing/index.ts","kind":"import-statement","original":"../testing"}],"format":"esm"},"src/research/graph.ts":{"bytes":34590,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"raw-loader:./instructions-research.tpl?raw":{"bytes":5065,"imports":[]},"src/research/research.ts":{"bytes":12714,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/research/exa.ts","kind":"import-statement","original":"./exa"},{"path":"src/research/graph.ts","kind":"import-statement","original":"./graph"},{"path":"raw-loader:./instructions-research.tpl?raw","kind":"import-statement","original":"./instructions-research.tpl?raw"},{"path":"src/session/index.ts","kind":"import-statement","original":"../session"}],"format":"esm"},"src/research/index.ts":{"bytes":619,"imports":[{"path":"src/research/exa.ts","kind":"import-statement","original":"./exa"},{"path":"src/research/research.ts","kind":"import-statement","original":"./research"},{"path":"src/research/graph.ts","kind":"import-statement","original":"./graph"}],"format":"esm"},"src/types.ts":{"bytes":845,"imports":[],"format":"esm"},"src/index.ts":{"bytes":1088,"imports":[{"path":"src/blueprint/index.ts","kind":"import-statement","original":"./blueprint"},{"path":"src/context/index.ts","kind":"import-statement","original":"./context"},{"path":"src/conversation/index.ts","kind":"import-statement","original":"./conversation"},{"path":"src/extraction/index.ts","kind":"import-statement","original":"./extraction"},{"path":"src/research/index.ts","kind":"import-statement","original":"./research"},{"path":"src/session/index.ts","kind":"import-statement","original":"./session"},{"path":"src/types.ts","kind":"import-statement","original":"./types"},{"path":"src/conversation/index.ts","kind":"import-statement","original":"./conversation"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":208290},"dist/lib/browser/index.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@xenova/transformers","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"exa-js","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["AIServiecOverloadedError","AISession","Bindings","Blueprint","BlueprintRegistry","ContextBinder","ContextBinding","Conversation","ExtractionInput","ExtractionOutput","ReferencedQuotes","Subgraph","VersionPin","combineNerTokens","createArtifactElement","createExaTool","createExtractionSchema","createGraphWriterTool","createLocalSearchTool","createMockExaTool","createTokenGroups","extractFullEntities","extractionAnthropicFn","extractionNerFn","findQuotes","findRelatedSchema","getNer","getSanitizedSchemaName","insertReferences","processTranscriptMessage","researchFn","sanitizeObjects"],"entryPoint":"src/index.ts","inputs":{"src/blueprint/blueprint.ts":{"bytesInOutput":1892},"src/blueprint/index.ts":{"bytesInOutput":0},"src/blueprint/registry.ts":{"bytesInOutput":226},"src/index.ts":{"bytesInOutput":0},"src/context/binder.ts":{"bytesInOutput":2163},"src/context/binding.ts":{"bytesInOutput":544},"src/context/index.ts":{"bytesInOutput":0},"src/conversation/conversation.ts":{"bytesInOutput":2225},"src/session/session.ts":{"bytesInOutput":16339},"src/session/version-pin.ts":{"bytesInOutput":758},"src/session/index.ts":{"bytesInOutput":0},"src/conversation/index.ts":{"bytesInOutput":0},"src/extraction/extraction.ts":{"bytesInOutput":1403},"src/extraction/index.ts":{"bytesInOutput":0},"src/extraction/extraction-llm-function/extraction-llm-function.ts":{"bytesInOutput":1764},"raw-loader:./instructions.tpl?raw":{"bytesInOutput":1376},"src/extraction/quotes.ts":{"bytesInOutput":1687},"src/extraction/extraction-llm-function/index.ts":{"bytesInOutput":0},"src/extraction/extraction-ner-function/extraction-ner-function.ts":{"bytesInOutput":2640},"src/extraction/extraction-ner-function/named-entity-recognition.ts":{"bytesInOutput":2276},"src/extraction/extraction-ner-function/index.ts":{"bytesInOutput":0},"src/research/exa.ts":{"bytesInOutput":2537},"src/testing/exa-search-1748337321991.ts":{"bytesInOutput":31265},"src/testing/exa-search-1748337331526.ts":{"bytesInOutput":43952},"src/testing/exa-search-1748337344119.ts":{"bytesInOutput":28760},"src/testing/index.ts":{"bytesInOutput":133},"src/research/index.ts":{"bytesInOutput":0},"src/research/research.ts":{"bytesInOutput":3027},"src/research/graph.ts":{"bytesInOutput":8252},"raw-loader:./instructions-research.tpl?raw":{"bytesInOutput":5201},"src/types.ts":{"bytesInOutput":61}},"bytes":160251}}}
1
+ {"inputs":{"src/conversation/context.ts":{"bytes":20293,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect/Array","kind":"import-statement","external":true},{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/session/artifact-diff.ts":{"bytes":2596,"imports":[{"path":"effect/Context","kind":"import-statement","external":true}],"format":"esm"},"src/session/observer.ts":{"bytes":5409,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Function","kind":"import-statement","external":true}],"format":"esm"},"src/errors.ts":{"bytes":1420,"imports":[{"path":"@dxos/errors","kind":"import-statement","external":true}],"format":"esm"},"src/session/format.ts":{"bytes":17119,"imports":[{"path":"effect/Array","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/errors.ts","kind":"import-statement","original":"../errors"},{"path":"src/session/artifact-diff.ts","kind":"import-statement","original":"./artifact-diff"}],"format":"esm"},"src/session/session.ts":{"bytes":23653,"imports":[{"path":"@effect/ai/LanguageModel","kind":"import-statement","external":true},{"path":"effect/Chunk","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Stream","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/session/format.ts","kind":"import-statement","original":"./format"},{"path":"src/session/observer.ts","kind":"import-statement","original":"./observer"},{"path":"@dxos/node-std/fs","kind":"require-call","external":true}],"format":"esm"},"src/session/toolkit.ts":{"bytes":4536,"imports":[{"path":"@effect/ai/Toolkit","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/session/version-pin.ts":{"bytes":4216,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true}],"format":"esm"},"src/session/index.ts":{"bytes":832,"imports":[{"path":"src/session/artifact-diff.ts","kind":"import-statement","original":"./artifact-diff"},{"path":"src/session/observer.ts","kind":"import-statement","original":"./observer"},{"path":"src/session/session.ts","kind":"import-statement","original":"./session"},{"path":"src/session/toolkit.ts","kind":"import-statement","original":"./toolkit"},{"path":"src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"}],"format":"esm"},"src/conversation/conversation.ts":{"bytes":12949,"imports":[{"path":"effect/Array","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/session/index.ts","kind":"import-statement","original":"../session"},{"path":"src/conversation/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/conversation/index.ts":{"bytes":562,"imports":[{"path":"src/conversation/context.ts","kind":"import-statement","original":"./context"},{"path":"src/conversation/conversation.ts","kind":"import-statement","original":"./conversation"}],"format":"esm"},"src/diff.ts":{"bytes":8784,"imports":[{"path":"@automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/execution-graph.ts":{"bytes":50143,"imports":[{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/functions/services.ts":{"bytes":20028,"imports":[{"path":"@effect/ai/Tool","kind":"import-statement","external":true},{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"effect/Record","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"src/functions/index.ts":{"bytes":460,"imports":[{"path":"src/functions/services.ts","kind":"import-statement","original":"./services"}],"format":"esm"},"raw-loader:/__w/dxos/dxos/packages/core/assistant/src/templates/format.tpl?raw":{"bytes":1915,"imports":[]},"raw-loader:/__w/dxos/dxos/packages/core/assistant/src/templates/system.tpl?raw":{"bytes":3351,"imports":[]},"src/templates/system.ts":{"bytes":3127,"imports":[{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"raw-loader:/__w/dxos/dxos/packages/core/assistant/src/templates/format.tpl?raw","kind":"import-statement","original":"./format.tpl?raw"},{"path":"raw-loader:/__w/dxos/dxos/packages/core/assistant/src/templates/system.tpl?raw","kind":"import-statement","original":"./system.tpl?raw"}],"format":"esm"},"src/templates/index.ts":{"bytes":458,"imports":[{"path":"src/templates/system.ts","kind":"import-statement","original":"./system"}],"format":"esm"},"src/types/artifact.ts":{"bytes":6896,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/types/index.ts":{"bytes":456,"imports":[{"path":"src/types/artifact.ts","kind":"import-statement","original":"./artifact"}],"format":"esm"},"src/index.ts":{"bytes":1081,"imports":[{"path":"src/conversation/index.ts","kind":"import-statement","original":"./conversation"},{"path":"src/diff.ts","kind":"import-statement","original":"./diff"},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"src/execution-graph.ts","kind":"import-statement","original":"./execution-graph"},{"path":"src/functions/index.ts","kind":"import-statement","original":"./functions"},{"path":"src/session/index.ts","kind":"import-statement","original":"./session"},{"path":"src/templates/index.ts","kind":"import-statement","original":"./templates"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/extraction/extraction.ts":{"bytes":6844,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"src/extraction/quotes.ts":{"bytes":7132,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"raw-loader:/__w/dxos/dxos/packages/core/assistant/src/extraction/extraction-llm-function/instructions.tpl?raw":{"bytes":1318,"imports":[]},"src/extraction/extraction-llm-function/extraction-llm-function.ts":{"bytes":8733,"imports":[{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/session/index.ts","kind":"import-statement","original":"../../session"},{"path":"src/extraction/extraction.ts","kind":"import-statement","original":"../extraction"},{"path":"src/extraction/quotes.ts","kind":"import-statement","original":"../quotes"},{"path":"raw-loader:/__w/dxos/dxos/packages/core/assistant/src/extraction/extraction-llm-function/instructions.tpl?raw","kind":"import-statement","original":"./instructions.tpl?raw"}],"format":"esm"},"src/extraction/extraction-llm-function/index.ts":{"bytes":524,"imports":[{"path":"src/extraction/extraction-llm-function/extraction-llm-function.ts","kind":"import-statement","original":"./extraction-llm-function"}],"format":"esm"},"src/extraction/extraction-ner-function/named-entity-recognition.ts":{"bytes":10067,"imports":[{"path":"@xenova/transformers","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/extraction/extraction-ner-function/extraction-ner-function.ts":{"bytes":9310,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/extraction/extraction.ts","kind":"import-statement","original":"../extraction"},{"path":"src/extraction/quotes.ts","kind":"import-statement","original":"../quotes"},{"path":"src/extraction/extraction-ner-function/named-entity-recognition.ts","kind":"dynamic-import","original":"./named-entity-recognition"}],"format":"esm"},"src/extraction/extraction-ner-function/index.ts":{"bytes":652,"imports":[{"path":"src/extraction/extraction-ner-function/extraction-ner-function.ts","kind":"import-statement","original":"./extraction-ner-function"},{"path":"src/extraction/extraction-ner-function/named-entity-recognition.ts","kind":"import-statement","original":"./named-entity-recognition"}],"format":"esm"},"src/extraction/index.ts":{"bytes":803,"imports":[{"path":"src/extraction/extraction.ts","kind":"import-statement","original":"./extraction"},{"path":"src/extraction/extraction-llm-function/index.ts","kind":"import-statement","original":"./extraction-llm-function"},{"path":"src/extraction/extraction-ner-function/index.ts","kind":"import-statement","original":"./extraction-ner-function"},{"path":"src/extraction/quotes.ts","kind":"import-statement","original":"./quotes"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":66383},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-4VIJTKPM.mjs","kind":"import-statement"},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect/Array","kind":"import-statement","external":true},{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect/Array","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@effect/ai/Tool","kind":"import-statement","external":true},{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Layer","kind":"import-statement","external":true},{"path":"effect/Record","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["AiAssistantError","AiContextBinder","AiContextService","AiConversation","AiModelError","AiSession","ArtifactDiffResolver","ArtifactId","Bindings","ContextBinding","ExecutionGraph","GenerationObserver","VersionPin","applyDiffs","computeDiffsWithCursors","createArtifactElement","createSystemPrompt","createToolkit","makeToolExecutionServiceFromFunctions","makeToolResolverFromFunctions","reduceDiffs","templates"],"entryPoint":"src/index.ts","inputs":{"src/conversation/context.ts":{"bytesInOutput":4967},"src/conversation/index.ts":{"bytesInOutput":0},"src/conversation/conversation.ts":{"bytesInOutput":2852},"src/index.ts":{"bytesInOutput":0},"src/diff.ts":{"bytesInOutput":1899},"src/execution-graph.ts":{"bytesInOutput":11774},"src/functions/services.ts":{"bytesInOutput":4296},"src/functions/index.ts":{"bytesInOutput":0},"src/templates/system.ts":{"bytesInOutput":540},"raw-loader:/__w/dxos/dxos/packages/core/assistant/src/templates/format.tpl?raw":{"bytesInOutput":2000},"raw-loader:/__w/dxos/dxos/packages/core/assistant/src/templates/system.tpl?raw":{"bytesInOutput":3424},"src/templates/index.ts":{"bytesInOutput":0},"src/types/artifact.ts":{"bytesInOutput":1332},"src/types/index.ts":{"bytesInOutput":0}},"bytes":34120},"dist/lib/browser/extraction/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17181},"dist/lib/browser/extraction/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-4VIJTKPM.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-UB26N5UF.mjs","kind":"import-statement"},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"dist/lib/browser/named-entity-recognition-QPYHML66.mjs","kind":"dynamic-import"}],"exports":["ExtractionInput","ExtractionOutput","ReferencedQuotes","combineNerTokens","createTokenGroups","extractFullEntities","extractionAnthropicFunction","extractionNerFunction","findQuotes","getNer","insertReferences","processTranscriptMessage"],"entryPoint":"src/extraction/index.ts","inputs":{"src/extraction/extraction.ts":{"bytesInOutput":1380},"src/extraction/index.ts":{"bytesInOutput":0},"src/extraction/extraction-llm-function/extraction-llm-function.ts":{"bytesInOutput":1852},"src/extraction/quotes.ts":{"bytesInOutput":1673},"raw-loader:/__w/dxos/dxos/packages/core/assistant/src/extraction/extraction-llm-function/instructions.tpl?raw":{"bytesInOutput":1376},"src/extraction/extraction-llm-function/index.ts":{"bytesInOutput":0},"src/extraction/extraction-ner-function/extraction-ner-function.ts":{"bytesInOutput":2742},"src/extraction/extraction-ner-function/index.ts":{"bytesInOutput":0}},"bytes":9873},"dist/lib/browser/chunk-4VIJTKPM.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":29170},"dist/lib/browser/chunk-4VIJTKPM.mjs":{"imports":[{"path":"effect/Context","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Function","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@effect/ai/LanguageModel","kind":"import-statement","external":true},{"path":"effect/Chunk","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Stream","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect/Array","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Function","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@effect/ai/Toolkit","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true}],"exports":["AiAssistantError","AiModelError","AiSession","ArtifactDiffResolver","GenerationObserver","VersionPin","createToolkit"],"inputs":{"src/session/artifact-diff.ts":{"bytesInOutput":143},"src/session/observer.ts":{"bytesInOutput":917},"src/errors.ts":{"bytesInOutput":236},"src/session/session.ts":{"bytesInOutput":4256},"src/session/format.ts":{"bytesInOutput":3923},"src/session/toolkit.ts":{"bytesInOutput":744},"src/session/version-pin.ts":{"bytesInOutput":741},"src/session/index.ts":{"bytesInOutput":0}},"bytes":11358},"dist/lib/browser/named-entity-recognition-QPYHML66.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/named-entity-recognition-QPYHML66.mjs":{"imports":[{"path":"dist/lib/browser/chunk-UB26N5UF.mjs","kind":"import-statement"}],"exports":["combineNerTokens","createTokenGroups","extractFullEntities","getNer"],"entryPoint":"src/extraction/extraction-ner-function/named-entity-recognition.ts","inputs":{},"bytes":261},"dist/lib/browser/chunk-UB26N5UF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5245},"dist/lib/browser/chunk-UB26N5UF.mjs":{"imports":[{"path":"@xenova/transformers","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["combineNerTokens","createTokenGroups","extractFullEntities","getNer"],"inputs":{"src/extraction/extraction-ner-function/named-entity-recognition.ts":{"bytesInOutput":2265}},"bytes":2465}}}
@@ -0,0 +1,13 @@
1
+ import {
2
+ combineNerTokens,
3
+ createTokenGroups,
4
+ extractFullEntities,
5
+ getNer
6
+ } from "./chunk-UB26N5UF.mjs";
7
+ export {
8
+ combineNerTokens,
9
+ createTokenGroups,
10
+ extractFullEntities,
11
+ getNer
12
+ };
13
+ //# sourceMappingURL=named-entity-recognition-QPYHML66.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,356 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // src/session/artifact-diff.ts
4
+ import * as Context from "effect/Context";
5
+ var ArtifactDiffResolver = class extends Context.Tag("@dxos/assistant/ArtifactDiffResolver")() {
6
+ };
7
+
8
+ // src/session/observer.ts
9
+ import * as Effect from "effect/Effect";
10
+ import * as Function from "effect/Function";
11
+ var GenerationObserver = Object.freeze({
12
+ make: ({ onBegin = Function.constant(Effect.void), onPart = Function.constant(Effect.void), onBlock = Function.constant(Effect.void), onEnd = Function.constant(Effect.void), onMessage = Function.constant(Effect.void) } = {}) => ({
13
+ onBegin,
14
+ onPart,
15
+ onBlock,
16
+ onEnd,
17
+ onMessage
18
+ }),
19
+ noop: () => GenerationObserver.make(),
20
+ /**
21
+ * Debug printer to be used in unit-tests and browser devtools.
22
+ */
23
+ fromPrinter: (printer) => GenerationObserver.make({
24
+ onBlock: (block) => Effect.sync(() => {
25
+ if (block.pending) {
26
+ return;
27
+ }
28
+ printer.printContentBlock(block);
29
+ }),
30
+ onMessage: (message) => Effect.sync(() => {
31
+ if (message.sender.role === "assistant") {
32
+ return;
33
+ }
34
+ printer.printMessage(message);
35
+ })
36
+ })
37
+ });
38
+
39
+ // src/errors.ts
40
+ import { BaseError } from "@dxos/errors";
41
+ var AiModelError = class extends BaseError.extend("AI_MODEL_ERROR", "AI model error") {
42
+ };
43
+ var AiAssistantError = class extends BaseError.extend("AI_ASSISTANT_ERROR", "AI assistant error") {
44
+ };
45
+
46
+ // src/session/session.ts
47
+ import * as LanguageModel from "@effect/ai/LanguageModel";
48
+ import * as Chunk from "effect/Chunk";
49
+ import * as Effect3 from "effect/Effect";
50
+ import * as Stream from "effect/Stream";
51
+ import { AiParser, AiPreprocessor, callTool, getToolCalls } from "@dxos/ai";
52
+ import { todo } from "@dxos/debug";
53
+ import { Obj as Obj2 } from "@dxos/echo";
54
+ import { TracingService } from "@dxos/functions";
55
+ import { log as log2 } from "@dxos/log";
56
+ import { DataType as DataType2 } from "@dxos/schema";
57
+
58
+ // src/session/format.ts
59
+ import * as Array from "effect/Array";
60
+ import * as Effect2 from "effect/Effect";
61
+ import * as Function2 from "effect/Function";
62
+ import * as Option from "effect/Option";
63
+ import { Template } from "@dxos/blueprints";
64
+ import { Obj } from "@dxos/echo";
65
+ import { ObjectVersion } from "@dxos/echo-db";
66
+ import { DatabaseService } from "@dxos/functions";
67
+ import { log } from "@dxos/log";
68
+ import { DataType } from "@dxos/schema";
69
+ import { trim } from "@dxos/util";
70
+ var __dxlog_file = "/__w/dxos/dxos/packages/core/assistant/src/session/format.ts";
71
+ var formatSystemPrompt = ({ system, blueprints = [], objects = [] }) => Effect2.gen(function* () {
72
+ const blueprintDefs = yield* Function2.pipe(blueprints, Effect2.forEach((blueprint) => Effect2.succeed(blueprint.instructions)), Effect2.flatMap(Effect2.forEach((template) => DatabaseService.loadOption(template.source))), Effect2.map(Array.filter(Option.isSome)), Effect2.map(Array.map((template) => trim`
73
+ <blueprint>
74
+ ${Template.process(template.value.content)}
75
+ </blueprint>
76
+ `)), Effect2.map((blueprints2) => blueprints2.length > 0 ? [
77
+ "## Blueprints Definitions",
78
+ ...blueprints2
79
+ ].join("\n\n") : void 0));
80
+ const objectDefs = yield* Function2.pipe(objects, Effect2.forEach((object) => Effect2.succeed(trim`
81
+ <object>
82
+ <dxn>${Obj.getDXN(object)}</dxn>
83
+ <typename>${Obj.getTypename(object)}</typename>
84
+ </object>
85
+ `)), Effect2.map((objects2) => objects2.length > 0 ? [
86
+ "## Context Objects",
87
+ ...objects2
88
+ ].join("\n\n") : void 0));
89
+ return yield* Function2.pipe(Effect2.succeed([
90
+ system,
91
+ blueprintDefs,
92
+ objectDefs
93
+ ].filter((def) => def !== void 0)), Effect2.map((parts) => parts.join("\n\n")));
94
+ });
95
+ var formatUserPrompt = ({ prompt, history = [] }) => Effect2.gen(function* () {
96
+ const blocks = [];
97
+ const artifactDiffResolver = yield* Effect2.serviceOption(ArtifactDiffResolver);
98
+ if (Option.isSome(artifactDiffResolver)) {
99
+ const versions = gatherObjectVersions(history);
100
+ const artifactDiff = yield* Effect2.tryPromise({
101
+ try: () => artifactDiffResolver.value.resolve([
102
+ ...versions.entries()
103
+ ].map(([id, version]) => ({
104
+ id,
105
+ lastVersion: version
106
+ }))),
107
+ catch: AiAssistantError.wrap({
108
+ message: "Artifact diff resolution error"
109
+ })
110
+ });
111
+ log("version", {
112
+ artifactDiff,
113
+ versions
114
+ }, {
115
+ F: __dxlog_file,
116
+ L: 93,
117
+ S: this,
118
+ C: (f, a) => f(...a)
119
+ });
120
+ for (const [id, { version }] of [
121
+ ...artifactDiff.entries()
122
+ ]) {
123
+ if (ObjectVersion.equals(version, versions.get(id))) {
124
+ artifactDiff.delete(id);
125
+ continue;
126
+ }
127
+ blocks.push({
128
+ _tag: "anchor",
129
+ objectId: id,
130
+ version
131
+ });
132
+ }
133
+ if (artifactDiff.size > 0) {
134
+ blocks.push(createArtifactUpdateBlock(artifactDiff));
135
+ }
136
+ }
137
+ return Obj.make(DataType.Message, {
138
+ created: (/* @__PURE__ */ new Date()).toISOString(),
139
+ sender: {
140
+ role: "user"
141
+ },
142
+ blocks: [
143
+ ...blocks,
144
+ {
145
+ _tag: "text",
146
+ text: prompt
147
+ }
148
+ ]
149
+ });
150
+ });
151
+ var gatherObjectVersions = (messages) => {
152
+ const artifactIds = /* @__PURE__ */ new Map();
153
+ for (const message of messages) {
154
+ for (const block of message.blocks) {
155
+ if (block._tag === "anchor") {
156
+ artifactIds.set(block.objectId, block.version);
157
+ }
158
+ }
159
+ }
160
+ return artifactIds;
161
+ };
162
+ var createArtifactUpdateBlock = (artifactDiff) => {
163
+ return {
164
+ _tag: "text",
165
+ // TODO(dmaretskyi): Does this need to be a special content-block?
166
+ disposition: "artifact-update",
167
+ text: trim`
168
+ The following artifacts have been updated since the last message:
169
+ ${[
170
+ ...artifactDiff.entries()
171
+ ].map(([id, { diff }]) => `<changed-artifact id="${id}">${diff ? `
172
+ ${diff}` : ""}</changed-artifact>`).join("\n")}
173
+ `
174
+ };
175
+ };
176
+
177
+ // src/session/session.ts
178
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/core/assistant/src/session/session.ts";
179
+ var AiSession = class {
180
+ _options;
181
+ /** Prevents concurrent execution of session. */
182
+ _semaphore = Effect3.runSync(Effect3.makeSemaphore(1));
183
+ /** Message history from queue. */
184
+ // TODO(burdon): Evolve into supporting a git-like graph of messages.
185
+ _history = [];
186
+ /** Pending messages for this session (incl. the current prompt). */
187
+ _pending = [];
188
+ constructor(_options = {}) {
189
+ this._options = _options;
190
+ }
191
+ run = ({ prompt, system: systemTemplate, history = [], objects = [], blueprints = [], toolkit, observer = GenerationObserver.noop() }) => Effect3.gen(this, function* () {
192
+ this._history = [
193
+ ...history
194
+ ];
195
+ this._pending = [];
196
+ const pending = this._pending;
197
+ const submitMessage = Effect3.fnUntraced(function* (message) {
198
+ pending.push(message);
199
+ yield* observer.onMessage(message);
200
+ yield* TracingService.emitConverationMessage(message);
201
+ return message;
202
+ });
203
+ const promptMessage = yield* submitMessage(yield* formatUserPrompt({
204
+ prompt,
205
+ history
206
+ }));
207
+ const system = yield* formatSystemPrompt({
208
+ system: systemTemplate,
209
+ blueprints,
210
+ objects
211
+ });
212
+ do {
213
+ log2("request", {
214
+ prompt: promptMessage,
215
+ system: {
216
+ snippet: createSnippet(system),
217
+ length: system.length
218
+ },
219
+ pending: this._pending.length,
220
+ history: this._history.length,
221
+ objects: objects?.length ?? 0
222
+ }, {
223
+ F: __dxlog_file2,
224
+ L: 110,
225
+ S: this,
226
+ C: (f, a) => f(...a)
227
+ });
228
+ const prompt2 = yield* AiPreprocessor.preprocessPrompt([
229
+ ...this._history,
230
+ ...this._pending
231
+ ], {
232
+ system
233
+ });
234
+ const blocks = yield* LanguageModel.streamText({
235
+ prompt: prompt2,
236
+ toolkit,
237
+ disableToolCallResolution: true
238
+ }).pipe(
239
+ // TOOD(dmaretskyi): Error mapping.
240
+ AiParser.parseResponse({
241
+ onBegin: () => observer.onBegin(),
242
+ onBlock: (block) => observer.onBlock(block),
243
+ onPart: (part) => observer.onPart(part),
244
+ onEnd: (summary) => observer.onEnd(summary)
245
+ }),
246
+ Stream.runCollect,
247
+ Effect3.map(Chunk.toArray)
248
+ );
249
+ const response = yield* submitMessage(Obj2.make(DataType2.Message, {
250
+ created: (/* @__PURE__ */ new Date()).toISOString(),
251
+ sender: {
252
+ role: "assistant"
253
+ },
254
+ blocks
255
+ }));
256
+ const toolCalls = getToolCalls(response);
257
+ if (toolCalls.length === 0) {
258
+ break;
259
+ } else if (!toolkit) {
260
+ throw new Error("No toolkit provided");
261
+ }
262
+ const toolResults = yield* Effect3.forEach(toolCalls, (toolCall) => {
263
+ return callTool(toolkit, toolCall).pipe(Effect3.provide(TracingService.layerSubframe((context) => ({
264
+ ...context,
265
+ parentMessage: response.id,
266
+ toolCallId: toolCall.toolCallId
267
+ }))));
268
+ });
269
+ yield* submitMessage(Obj2.make(DataType2.Message, {
270
+ created: (/* @__PURE__ */ new Date()).toISOString(),
271
+ sender: {
272
+ role: "tool"
273
+ },
274
+ blocks: toolResults
275
+ }));
276
+ } while (true);
277
+ log2("done", {
278
+ pending: this._pending.length
279
+ }, {
280
+ F: __dxlog_file2,
281
+ L: 181,
282
+ S: this,
283
+ C: (f, a) => f(...a)
284
+ });
285
+ return this._pending;
286
+ }).pipe(this._semaphore.withPermits(1), Effect3.withSpan("AiSession.run"));
287
+ /**
288
+ * @deprecated
289
+ */
290
+ // TODO(burdon): Implement or remove.
291
+ async runStructured(_schema, _options) {
292
+ return todo();
293
+ }
294
+ };
295
+ var createSnippet = (text, len = 32) => text.length <= len * 2 ? text : [
296
+ text.slice(0, len),
297
+ "...",
298
+ text.slice(-len)
299
+ ].join("");
300
+
301
+ // src/session/toolkit.ts
302
+ import * as Toolkit from "@effect/ai/Toolkit";
303
+ import * as Effect4 from "effect/Effect";
304
+ import { ToolExecutionService, ToolResolverService } from "@dxos/ai";
305
+ import { isTruthy } from "@dxos/util";
306
+ var createToolkit = ({ toolkit: toolkitParam, toolIds = [], blueprints = [] }) => Effect4.gen(function* () {
307
+ const blueprintToolkit = yield* ToolResolverService.resolveToolkit([
308
+ ...blueprints.flatMap(({ tools }) => tools),
309
+ ...toolIds
310
+ ]);
311
+ const blueprintToolkitHandler = yield* blueprintToolkit.toContext(ToolExecutionService.handlersFor(blueprintToolkit));
312
+ const toolkit = Toolkit.merge(...[
313
+ toolkitParam,
314
+ blueprintToolkit
315
+ ].filter(isTruthy));
316
+ return yield* toolkit.pipe(Effect4.provide(blueprintToolkitHandler));
317
+ });
318
+
319
+ // src/session/version-pin.ts
320
+ import * as Schema from "effect/Schema";
321
+ import { ObjectId } from "@dxos/echo/internal";
322
+ import { getVersion } from "@dxos/echo-db";
323
+ var ObjectVersionSchema = Schema.Unknown;
324
+ var VersionPinSchema = Schema.Struct({
325
+ // TODO(dmaretskyi): Use Ref when those support encoding.
326
+ objectId: ObjectId,
327
+ // TODO(dmaretskyi): Could be opaque.
328
+ version: ObjectVersionSchema
329
+ });
330
+ var VersionPin = class extends VersionPinSchema {
331
+ static DISPOSITION = "version-pin";
332
+ static fromObject(object) {
333
+ return VersionPin.make({
334
+ objectId: object.id,
335
+ version: getVersion(object)
336
+ });
337
+ }
338
+ static createBlock(pin) {
339
+ return {
340
+ _tag: "json",
341
+ disposition: VersionPin.DISPOSITION,
342
+ data: JSON.stringify(pin)
343
+ };
344
+ }
345
+ };
346
+
347
+ export {
348
+ ArtifactDiffResolver,
349
+ GenerationObserver,
350
+ AiModelError,
351
+ AiAssistantError,
352
+ AiSession,
353
+ createToolkit,
354
+ VersionPin
355
+ };
356
+ //# sourceMappingURL=chunk-AUUC7II4.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/session/artifact-diff.ts", "../../../src/session/observer.ts", "../../../src/errors.ts", "../../../src/session/session.ts", "../../../src/session/format.ts", "../../../src/session/toolkit.ts", "../../../src/session/version-pin.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Context from 'effect/Context';\n\nimport { type ObjectId } from '@dxos/echo/internal';\nimport { type ObjectVersion } from '@dxos/echo-db';\n\n/**\n * Resolves artifact ids to their versions.\n * Used to give the model a sense of the changes to the artifacts made by users during the conversation.\n * The artifacts versions are pinned in the history, and whenever the artifact changes in-between assistant's steps,\n * a diff is inserted into the conversation.\n *\n * Can be optionally provided to the session run call.\n */\n// TODO(dmaretskyi): Convert to Context.Reference\nexport class ArtifactDiffResolver extends Context.Tag('@dxos/assistant/ArtifactDiffResolver')<\n ArtifactDiffResolver,\n ArtifactDiffResolver.Service\n>() {}\n\nexport namespace ArtifactDiffResolver {\n export type Service = {\n resolve: (\n artifacts: {\n id: ObjectId;\n lastVersion: ObjectVersion;\n }[],\n ) => Promise<\n Map<\n ObjectId,\n {\n version: ObjectVersion;\n diff?: string;\n }\n >\n >;\n };\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\n\nimport { type AiParser, type ConsolePrinter } from '@dxos/ai';\nimport { type DataType } from '@dxos/schema';\n\n/**\n * Live observer of the generation process.\n */\nexport interface GenerationObserver extends AiParser.ParseResponseCallbacks {\n /**\n * Complete messages fired during the session, both from the model and from the user.\n * This message will contain all message blocks emitted through the `onBlock` callback.\n */\n onMessage: (message: DataType.Message) => Effect.Effect<void>;\n}\n\nexport const GenerationObserver = Object.freeze({\n make: ({\n onBegin = Function.constant(Effect.void),\n onPart = Function.constant(Effect.void),\n onBlock = Function.constant(Effect.void),\n onEnd = Function.constant(Effect.void),\n onMessage = Function.constant(Effect.void),\n }: Partial<GenerationObserver> = {}): GenerationObserver => ({\n onBegin,\n onPart,\n onBlock,\n onEnd,\n onMessage,\n }),\n\n noop: () => GenerationObserver.make(),\n\n /**\n * Debug printer to be used in unit-tests and browser devtools.\n */\n fromPrinter: (printer: ConsolePrinter) =>\n GenerationObserver.make({\n onBlock: (block) =>\n Effect.sync(() => {\n if (block.pending) {\n return; // Only prints full blocks (better for unit-tests and browser devtools).\n }\n printer.printContentBlock(block);\n }),\n onMessage: (message) =>\n Effect.sync(() => {\n if (message.sender.role === 'assistant') {\n return; // Skip assistant messages since they are printed in the `onBlock` callback.\n }\n printer.printMessage(message);\n }),\n }),\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { BaseError } from '@dxos/errors';\n\n/**\n * Generic error from AI model.\n */\nexport class AiModelError extends BaseError.extend('AI_MODEL_ERROR', 'AI model error') {}\n\n/**\n * Generic error for AI agent execution.\n */\nexport class AiAssistantError extends BaseError.extend('AI_ASSISTANT_ERROR', 'AI assistant error') {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as AiError from '@effect/ai/AiError';\nimport * as LanguageModel from '@effect/ai/LanguageModel';\nimport type * as Tool from '@effect/ai/Tool';\nimport type * as Toolkit from '@effect/ai/Toolkit';\nimport * as Chunk from 'effect/Chunk';\nimport * as Effect from 'effect/Effect';\nimport type * as Schema from 'effect/Schema';\nimport * as Stream from 'effect/Stream';\n\nimport {\n AiParser,\n AiPreprocessor,\n type AiToolNotFoundError,\n type PromptPreprocessingError,\n type ToolExecutionService,\n type ToolResolverService,\n callTool,\n getToolCalls,\n} from '@dxos/ai';\nimport { type Blueprint } from '@dxos/blueprints';\nimport { todo } from '@dxos/debug';\nimport { Obj } from '@dxos/echo';\nimport { TracingService } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { DataType } from '@dxos/schema';\n\nimport { type AiAssistantError } from '../errors';\n\nimport { formatSystemPrompt, formatUserPrompt } from './format';\nimport { GenerationObserver } from './observer';\n\nexport type AiSessionRunError = AiError.AiError | PromptPreprocessingError | AiToolNotFoundError | AiAssistantError;\n\nexport type AiSessionRunRequirements =\n | LanguageModel.LanguageModel\n | ToolExecutionService\n | ToolResolverService\n | TracingService;\n\nexport type AiSessionRunParams<Tools extends Record<string, Tool.Any>> = {\n prompt: string;\n // TODO(wittjosiah): Rename to systemPrompt.\n system?: string;\n history?: DataType.Message[];\n objects?: Obj.Any[];\n blueprints?: Blueprint.Blueprint[];\n toolkit?: Toolkit.WithHandler<Tools>;\n observer?: GenerationObserver;\n};\n\nexport type AiSessionOptions = {};\n\n/**\n * Contains message history, tools, current context.\n * Current context means the state of the app, time of day, and other contextual information.\n * It makes requests to the model, its a state machine.\n * It keeps track of the current goal.\n * It manages the context window.\n * Tracks the success criteria of reaching the goal, exposing metrics (stretch).\n * Could be run locally in the app or remotely.\n * Could be personal or shared.\n */\nexport class AiSession {\n /** Prevents concurrent execution of session. */\n private readonly _semaphore = Effect.runSync(Effect.makeSemaphore(1));\n\n /** Message history from queue. */\n // TODO(burdon): Evolve into supporting a git-like graph of messages.\n private _history: DataType.Message[] = [];\n\n /** Pending messages for this session (incl. the current prompt). */\n private _pending: DataType.Message[] = [];\n\n constructor(private readonly _options: AiSessionOptions = {}) {}\n\n run = <Tools extends Record<string, Tool.Any>>({\n prompt,\n system: systemTemplate,\n history = [],\n objects = [],\n blueprints = [],\n toolkit,\n observer = GenerationObserver.noop(),\n }: AiSessionRunParams<Tools>): Effect.Effect<DataType.Message[], AiSessionRunError, AiSessionRunRequirements> =>\n Effect.gen(this, function* () {\n this._history = [...history];\n this._pending = [];\n const pending = this._pending;\n\n const submitMessage = Effect.fnUntraced(function* (message: DataType.Message) {\n pending.push(message);\n yield* observer.onMessage(message);\n yield* TracingService.emitConverationMessage(message);\n return message;\n });\n\n // Submit the prompt.\n // TODO(burdon): Remove if cancelled?\n const promptMessage = yield* submitMessage(yield* formatUserPrompt({ prompt, history }));\n\n // Generate system and prompt messages.\n const system = yield* formatSystemPrompt({ system: systemTemplate, blueprints, objects });\n\n // Tool call loop.\n do {\n log('request', {\n prompt: promptMessage,\n system: { snippet: createSnippet(system), length: system.length },\n pending: this._pending.length,\n history: this._history.length,\n objects: objects?.length ?? 0,\n });\n\n const prompt = yield* AiPreprocessor.preprocessPrompt([...this._history, ...this._pending], { system });\n\n // Execute the stream request.\n // logDump('prompt', Prompt.Prompt.pipe(Schema.encodeSync)(prompt));\n const blocks = yield* LanguageModel.streamText({\n prompt,\n toolkit,\n disableToolCallResolution: true,\n }).pipe(\n // TOOD(dmaretskyi): Error mapping.\n AiParser.parseResponse({\n onBegin: () => observer.onBegin(),\n onBlock: (block) => observer.onBlock(block),\n onPart: (part) => observer.onPart(part),\n onEnd: (summary) => observer.onEnd(summary),\n }),\n Stream.runCollect,\n Effect.map(Chunk.toArray),\n );\n\n // Create the response message.\n const response = yield* submitMessage(\n Obj.make(DataType.Message, {\n created: new Date().toISOString(),\n sender: { role: 'assistant' },\n blocks,\n }),\n );\n\n // Parse the response for tool calls.\n const toolCalls = getToolCalls(response);\n if (toolCalls.length === 0) {\n break;\n } else if (!toolkit) {\n throw new Error('No toolkit provided'); // TODO(burdon): Throw user error?\n }\n\n // Execute the tool calls.\n // TODO(burdon): Retry errors? Write result when each completes individually?\n const toolResults = yield* Effect.forEach(toolCalls, (toolCall) => {\n return callTool(toolkit, toolCall).pipe(\n Effect.provide(\n TracingService.layerSubframe((context) => ({\n ...context,\n parentMessage: response.id,\n toolCallId: toolCall.toolCallId,\n })),\n ),\n );\n });\n\n // Add to queue and continue loop.\n // TODO(wittjosiah): Sometimes tool error results are added to the queue before the tool agent statuses.\n // This results in a broken execution graph.\n yield* submitMessage(\n Obj.make(DataType.Message, {\n created: new Date().toISOString(),\n sender: { role: 'tool' },\n blocks: toolResults,\n }),\n );\n } while (true);\n\n log('done', { pending: this._pending.length });\n return this._pending;\n }).pipe(this._semaphore.withPermits(1), Effect.withSpan('AiSession.run'));\n\n /**\n * @deprecated\n */\n // TODO(burdon): Implement or remove.\n async runStructured<S extends Schema.Schema.AnyNoContext>(\n _schema: S,\n _options: AiSessionRunParams<any>,\n ): Promise<Schema.Schema.Type<S>> {\n return todo();\n // const parser = structuredOutputParser(schema);\n // const result = await this.run({\n // ...options,\n // executableTools: [...(options.executableTools ?? []), parser.tool],\n // });\n // return parser.getResult(result);\n }\n}\n\nconst createSnippet = (text: string, len = 32) =>\n text.length <= len * 2 ? text : [text.slice(0, len), '...', text.slice(-len)].join('');\n\n// TODO(dmaretskyi): Extract as a general util.\nconst logDump = (message: string, data: unknown) => {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { writeFileSync } = require('node:fs');\n const path = `/tmp/log-data-${Date.now()}.json`;\n writeFileSync(path, JSON.stringify(data, null, 2));\n log.info(message, { path });\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Array from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\n\nimport { Template } from '@dxos/blueprints';\nimport { Obj } from '@dxos/echo';\nimport { type ObjectId } from '@dxos/echo/internal';\nimport { ObjectVersion } from '@dxos/echo-db';\nimport { DatabaseService } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { type ContentBlock, DataType } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nimport { AiAssistantError } from '../errors';\n\nimport { ArtifactDiffResolver } from './artifact-diff';\nimport { type AiSessionRunParams } from './session';\n\n/**\n * Formats the system prompt.\n */\n// TODO(burdon): Move to AiPreprocessor.\nexport const formatSystemPrompt = ({\n system,\n blueprints = [],\n objects = [],\n}: Pick<AiSessionRunParams<any>, 'system' | 'blueprints' | 'objects'>) =>\n Effect.gen(function* () {\n const blueprintDefs = yield* Function.pipe(\n blueprints,\n Effect.forEach((blueprint) => Effect.succeed(blueprint.instructions)),\n Effect.flatMap(Effect.forEach((template) => DatabaseService.loadOption(template.source))),\n Effect.map(Array.filter(Option.isSome)),\n Effect.map(\n Array.map(\n (template) => trim`\n <blueprint>\n ${Template.process(template.value.content)}\n </blueprint>\n `,\n ),\n ),\n Effect.map((blueprints) =>\n blueprints.length > 0 ? ['## Blueprints Definitions', ...blueprints].join('\\n\\n') : undefined,\n ),\n );\n\n const objectDefs = yield* Function.pipe(\n objects,\n Effect.forEach((object) =>\n Effect.succeed(trim`\n <object>\n <dxn>${Obj.getDXN(object)}</dxn>\n <typename>${Obj.getTypename(object)}</typename>\n </object>\n `),\n ),\n Effect.map((objects) => (objects.length > 0 ? ['## Context Objects', ...objects].join('\\n\\n') : undefined)),\n );\n\n return yield* Function.pipe(\n Effect.succeed([system, blueprintDefs, objectDefs].filter((def): def is string => def !== undefined)),\n Effect.map((parts) => parts.join('\\n\\n')),\n );\n });\n\n/**\n * Formats the user prompt.\n */\n// TODO(burdon): Move to AiPreprocessor.\n// TODO(burdon): Convert util below to `Effect.fn` (to preserve stack info)\nexport const formatUserPrompt = ({ prompt, history = [] }: Pick<AiSessionRunParams<any>, 'prompt' | 'history'>) =>\n Effect.gen(function* () {\n const blocks: ContentBlock.Any[] = [];\n\n // TODO(dmaretskyi): Evaluate other approaches as `serviceOption` isn't represented in the type system.\n const artifactDiffResolver = yield* Effect.serviceOption(ArtifactDiffResolver);\n if (Option.isSome(artifactDiffResolver)) {\n const versions = gatherObjectVersions(history);\n const artifactDiff = yield* Effect.tryPromise({\n try: () =>\n artifactDiffResolver.value.resolve(\n [...versions.entries()].map(([id, version]) => ({ id, lastVersion: version })),\n ),\n catch: AiAssistantError.wrap({ message: 'Artifact diff resolution error' }),\n });\n\n log('version', { artifactDiff, versions });\n for (const [id, { version }] of [...artifactDiff.entries()]) {\n if (ObjectVersion.equals(version, versions.get(id)!)) {\n artifactDiff.delete(id);\n continue;\n }\n\n blocks.push({ _tag: 'anchor', objectId: id, version });\n }\n\n if (artifactDiff.size > 0) {\n blocks.push(createArtifactUpdateBlock(artifactDiff));\n }\n }\n\n return Obj.make(DataType.Message, {\n created: new Date().toISOString(),\n sender: { role: 'user' },\n blocks: [...blocks, { _tag: 'text', text: prompt }],\n });\n });\n\nconst gatherObjectVersions = (messages: DataType.Message[]): Map<ObjectId, ObjectVersion> => {\n const artifactIds = new Map<ObjectId, ObjectVersion>();\n for (const message of messages) {\n for (const block of message.blocks) {\n if (block._tag === 'anchor') {\n artifactIds.set(block.objectId, block.version as ObjectVersion);\n }\n }\n }\n\n return artifactIds;\n};\n\nconst createArtifactUpdateBlock = (\n artifactDiff: Map<ObjectId, { version: ObjectVersion; diff?: string }>,\n): ContentBlock.Any => {\n return {\n _tag: 'text',\n // TODO(dmaretskyi): Does this need to be a special content-block?\n disposition: 'artifact-update',\n text: trim`\n The following artifacts have been updated since the last message:\n ${[...artifactDiff.entries()]\n .map(([id, { diff }]) => `<changed-artifact id=\"${id}\">${diff ? `\\n${diff}` : ''}</changed-artifact>`)\n .join('\\n')}\n `,\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Tool from '@effect/ai/Tool';\nimport * as Toolkit from '@effect/ai/Toolkit';\nimport type * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\n\nimport { type AiToolNotFoundError, ToolExecutionService, type ToolId, ToolResolverService } from '@dxos/ai';\nimport { type Blueprint } from '@dxos/blueprints';\nimport { isTruthy } from '@dxos/util';\n\nexport type ToolkitParams<Tools extends Record<string, Tool.Any>> = {\n toolkit?: Toolkit.Toolkit<Tools>;\n toolIds?: ToolId[];\n blueprints?: Blueprint.Blueprint[];\n};\n\n/**\n * Build a combined toolkit from the blueprint tools and the provided toolkit.\n */\nexport const createToolkit = <Tools extends Record<string, Tool.Any> = {}>({\n toolkit: toolkitParam,\n toolIds = [],\n blueprints = [],\n}: ToolkitParams<Tools>): Effect.Effect<\n Toolkit.WithHandler<any>,\n AiToolNotFoundError,\n ToolResolverService | ToolExecutionService | Tool.HandlersFor<Tools>\n> =>\n Effect.gen(function* () {\n const blueprintToolkit = yield* ToolResolverService.resolveToolkit([\n ...blueprints.flatMap(({ tools }) => tools),\n ...toolIds,\n ]);\n\n const blueprintToolkitHandler: Context.Context<Tool.HandlersFor<any>> = yield* blueprintToolkit.toContext(\n ToolExecutionService.handlersFor(blueprintToolkit),\n );\n\n const toolkit = Toolkit.merge(...[toolkitParam, blueprintToolkit].filter(isTruthy));\n return yield* toolkit.pipe(Effect.provide(blueprintToolkitHandler)) as any as Effect.Effect<\n Toolkit.WithHandler<any>,\n never,\n Tool.HandlersFor<Tools>\n >;\n });\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { type AnyEchoObject, ObjectId } from '@dxos/echo/internal';\nimport { type ObjectVersion } from '@dxos/echo-db';\nimport { getVersion } from '@dxos/echo-db';\nimport { type ContentBlock } from '@dxos/schema';\n\n// TODO(dmaretskyi): Extract.\nconst ObjectVersionSchema = Schema.Unknown as Schema.Schema<ObjectVersion>;\n\nconst VersionPinSchema = Schema.Struct({\n // TODO(dmaretskyi): Use Ref when those support encoding.\n objectId: ObjectId,\n // TODO(dmaretskyi): Could be opaque.\n version: ObjectVersionSchema,\n});\n\n/**\n * Used to pin a specific version of an object during the course of a conversation.\n * This allows us to detect when the object changes during the course of the conversation.\n */\nexport interface VersionPin extends Schema.Schema.Type<typeof VersionPinSchema> {}\n\nexport const VersionPin: typeof VersionPinSchema & {\n DISPOSITION: 'version-pin';\n fromObject: (object: AnyEchoObject) => VersionPin;\n createBlock: (pin: VersionPin) => ContentBlock.Any;\n} = class extends VersionPinSchema {\n static readonly DISPOSITION = 'version-pin';\n static fromObject(object: AnyEchoObject): VersionPin {\n return VersionPin.make({\n objectId: object.id,\n version: getVersion(object),\n });\n }\n\n static createBlock(pin: VersionPin): ContentBlock.Any {\n return {\n _tag: 'json',\n disposition: VersionPin.DISPOSITION,\n data: JSON.stringify(pin),\n };\n }\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Context", "ArtifactDiffResolver", "Tag", "Effect", "Function", "GenerationObserver", "Object", "freeze", "make", "onBegin", "constant", "void", "onPart", "onBlock", "onEnd", "onMessage", "noop", "fromPrinter", "printer", "block", "sync", "pending", "printContentBlock", "message", "sender", "role", "printMessage", "BaseError", "AiModelError", "BaseError", "extend", "AiAssistantError", "LanguageModel", "Chunk", "Effect", "Stream", "AiParser", "AiPreprocessor", "callTool", "getToolCalls", "todo", "Obj", "TracingService", "log", "DataType", "Array", "Effect", "Function", "Option", "Template", "Obj", "ObjectVersion", "DatabaseService", "log", "DataType", "trim", "formatSystemPrompt", "system", "blueprints", "objects", "gen", "blueprintDefs", "pipe", "forEach", "blueprint", "succeed", "instructions", "flatMap", "template", "DatabaseService", "loadOption", "source", "map", "filter", "isSome", "trim", "Template", "process", "value", "content", "length", "join", "undefined", "objectDefs", "object", "Obj", "getDXN", "getTypename", "def", "parts", "formatUserPrompt", "prompt", "history", "blocks", "artifactDiffResolver", "serviceOption", "ArtifactDiffResolver", "versions", "gatherObjectVersions", "artifactDiff", "tryPromise", "try", "resolve", "entries", "id", "version", "lastVersion", "catch", "AiAssistantError", "wrap", "message", "log", "ObjectVersion", "equals", "get", "delete", "push", "_tag", "objectId", "size", "createArtifactUpdateBlock", "make", "DataType", "Message", "created", "Date", "toISOString", "sender", "role", "text", "messages", "artifactIds", "Map", "block", "set", "disposition", "diff", "AiSession", "_semaphore", "runSync", "makeSemaphore", "_history", "_pending", "_options", "run", "prompt", "system", "systemTemplate", "history", "objects", "blueprints", "toolkit", "observer", "GenerationObserver", "noop", "gen", "pending", "submitMessage", "fnUntraced", "message", "push", "onMessage", "TracingService", "emitConverationMessage", "promptMessage", "formatUserPrompt", "formatSystemPrompt", "log", "snippet", "createSnippet", "length", "AiPreprocessor", "preprocessPrompt", "blocks", "streamText", "disableToolCallResolution", "pipe", "AiParser", "parseResponse", "onBegin", "onBlock", "block", "onPart", "part", "onEnd", "summary", "runCollect", "map", "toArray", "response", "Obj", "make", "DataType", "Message", "created", "Date", "toISOString", "sender", "role", "toolCalls", "getToolCalls", "Error", "toolResults", "forEach", "toolCall", "callTool", "provide", "layerSubframe", "context", "parentMessage", "id", "toolCallId", "withPermits", "withSpan", "runStructured", "_schema", "todo", "text", "len", "slice", "join", "Toolkit", "Effect", "ToolExecutionService", "ToolResolverService", "isTruthy", "createToolkit", "toolkit", "toolkitParam", "toolIds", "blueprints", "gen", "blueprintToolkit", "ToolResolverService", "resolveToolkit", "flatMap", "tools", "blueprintToolkitHandler", "toContext", "ToolExecutionService", "handlersFor", "merge", "filter", "isTruthy", "pipe", "provide", "Schema", "ObjectId", "getVersion", "ObjectVersionSchema", "Unknown", "VersionPinSchema", "Struct", "objectId", "ObjectId", "version", "VersionPin", "DISPOSITION", "fromObject", "object", "make", "id", "getVersion", "createBlock", "pin", "_tag", "disposition", "data", "JSON", "stringify"]
7
+ }