@dxos/assistant 0.8.2-main.5885341 → 0.8.2-main.600d381

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 (157) hide show
  1. package/dist/lib/browser/{chunk-DEIGOD4U.mjs → chunk-YSYP7S4W.mjs} +706 -242
  2. package/dist/lib/browser/chunk-YSYP7S4W.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +4 -443
  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 +64 -27
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node/{chunk-7VH7NMIM.cjs → chunk-FTIDW4BA.cjs} +716 -259
  9. package/dist/lib/node/chunk-FTIDW4BA.cjs.map +7 -0
  10. package/dist/lib/node/index.cjs +34 -470
  11. package/dist/lib/node/index.cjs.map +4 -4
  12. package/dist/lib/node/meta.json +1 -1
  13. package/dist/lib/node/testing/index.cjs +53 -18
  14. package/dist/lib/node/testing/index.cjs.map +4 -4
  15. package/dist/lib/node-esm/{chunk-7JI4MDGL.mjs → chunk-GCJNPQDJ.mjs} +706 -242
  16. package/dist/lib/node-esm/chunk-GCJNPQDJ.mjs.map +7 -0
  17. package/dist/lib/node-esm/index.mjs +4 -443
  18. package/dist/lib/node-esm/index.mjs.map +4 -4
  19. package/dist/lib/node-esm/meta.json +1 -1
  20. package/dist/lib/node-esm/testing/index.mjs +64 -27
  21. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  22. package/dist/types/src/ai-service/parser.d.ts.map +1 -1
  23. package/dist/types/src/ai-service/stream.d.ts.map +1 -1
  24. package/dist/types/src/ai-service/testing/test-stream.d.ts.map +1 -1
  25. package/dist/types/src/ai-service/types.d.ts +130 -130
  26. package/dist/types/src/ai-service/types.d.ts.map +1 -1
  27. package/dist/types/src/ai-service/util/sse.d.ts.map +1 -1
  28. package/dist/types/src/{conversation → experimental/conversation}/conversation.d.ts +2 -18
  29. package/dist/types/src/experimental/conversation/conversation.d.ts.map +1 -0
  30. package/dist/types/src/experimental/conversation/conversation.test.d.ts.map +1 -0
  31. package/dist/types/src/experimental/conversation/index.d.ts.map +1 -0
  32. package/dist/types/src/{conversation → experimental/conversation}/types.d.ts +9 -9
  33. package/dist/types/src/experimental/conversation/types.d.ts.map +1 -0
  34. package/dist/types/src/experimental/cypher/ast.d.ts.map +1 -0
  35. package/dist/types/src/experimental/cypher/combinators.d.ts.map +1 -0
  36. package/dist/types/src/experimental/cypher/combinators.test.d.ts.map +1 -0
  37. package/dist/types/src/experimental/cypher/echo-data-source.d.ts.map +1 -0
  38. package/dist/types/src/experimental/cypher/execution-plan.d.ts.map +1 -0
  39. package/dist/types/src/experimental/cypher/execution-plan.test.d.ts.map +1 -0
  40. package/dist/types/src/experimental/cypher/index.d.ts.map +1 -0
  41. package/dist/types/src/experimental/cypher/parjs.d.ts.map +1 -0
  42. package/dist/types/src/experimental/cypher/parser.d.ts.map +1 -0
  43. package/dist/types/src/experimental/cypher/query-executor.d.ts.map +1 -0
  44. package/dist/types/src/experimental/cypher/query-executor.test.d.ts.map +1 -0
  45. package/dist/types/src/experimental/cypher/schema.d.ts.map +1 -0
  46. package/dist/types/src/experimental/cypher/schema.test.d.ts.map +1 -0
  47. package/dist/types/src/experimental/index.d.ts +3 -0
  48. package/dist/types/src/experimental/index.d.ts.map +1 -0
  49. package/dist/types/src/experimental/ner/ner.test.d.ts +2 -0
  50. package/dist/types/src/experimental/ner/ner.test.d.ts.map +1 -0
  51. package/dist/types/src/experimental/research/exa.d.ts +6 -0
  52. package/dist/types/src/experimental/research/exa.d.ts.map +1 -0
  53. package/dist/types/src/experimental/research/research.test.d.ts +2 -0
  54. package/dist/types/src/experimental/research/research.test.d.ts.map +1 -0
  55. package/dist/types/src/index.d.ts +1 -2
  56. package/dist/types/src/index.d.ts.map +1 -1
  57. package/dist/types/src/session/index.d.ts +1 -0
  58. package/dist/types/src/session/index.d.ts.map +1 -1
  59. package/dist/types/src/session/session.d.ts +4 -3
  60. package/dist/types/src/session/session.d.ts.map +1 -1
  61. package/dist/types/src/session/tools.d.ts +18 -0
  62. package/dist/types/src/session/tools.d.ts.map +1 -0
  63. package/dist/types/src/session/version-pin.d.ts +5 -0
  64. package/dist/types/src/session/version-pin.d.ts.map +1 -1
  65. package/dist/types/src/testing/index.d.ts +1 -0
  66. package/dist/types/src/testing/index.d.ts.map +1 -1
  67. package/dist/types/src/testing/logger.d.ts +1 -1
  68. package/dist/types/src/testing/logger.d.ts.map +1 -1
  69. package/dist/types/src/testing/ollama.d.ts.map +1 -1
  70. package/dist/types/src/testing/printer.d.ts +6 -0
  71. package/dist/types/src/testing/printer.d.ts.map +1 -0
  72. package/dist/types/src/testing/query-promts.d.ts +4 -4
  73. package/dist/types/src/testing/query-promts.d.ts.map +1 -1
  74. package/dist/types/src/testing/test-data.d.ts +5 -5
  75. package/dist/types/src/testing/test-data.d.ts.map +1 -1
  76. package/dist/types/src/testing/test-schema.d.ts +25 -23
  77. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  78. package/dist/types/src/util/trim.d.ts.map +1 -1
  79. package/dist/types/tsconfig.tsbuildinfo +1 -1
  80. package/package.json +19 -13
  81. package/src/ai-service/client.test.ts +5 -5
  82. package/src/ai-service/ollama-client.ts +8 -8
  83. package/src/ai-service/types.ts +14 -14
  84. package/src/bin/chat.ts +1 -1
  85. package/src/{conversation → experimental/conversation}/conversation.test.ts +5 -5
  86. package/src/{conversation → experimental/conversation}/conversation.ts +3 -112
  87. package/src/{conversation → experimental/conversation}/types.ts +10 -10
  88. package/src/{cypher → experimental/cypher}/echo-data-source.ts +7 -5
  89. package/src/{cypher → experimental/cypher}/query-executor.test.ts +1 -1
  90. package/src/{cypher → experimental/cypher}/schema.test.ts +1 -1
  91. package/src/{cypher → experimental/cypher}/schema.ts +1 -1
  92. package/src/experimental/index.ts +6 -0
  93. package/src/experimental/ner/ner.test.ts +163 -0
  94. package/src/experimental/research/exa.ts +38 -0
  95. package/src/experimental/research/instructions.tpl +64 -0
  96. package/src/experimental/research/research.test.ts +263 -0
  97. package/src/index.ts +3 -2
  98. package/src/session/index.ts +1 -0
  99. package/src/session/session.test.ts +28 -57
  100. package/src/session/session.ts +25 -15
  101. package/src/session/tools.ts +117 -0
  102. package/src/session/version-pin.ts +6 -0
  103. package/src/testing/artifacts.test.ts +22 -22
  104. package/src/testing/index.ts +1 -0
  105. package/src/testing/logger.ts +1 -1
  106. package/src/testing/printer.ts +41 -0
  107. package/src/testing/query-promts.ts +6 -6
  108. package/src/testing/query.test.ts +1 -2
  109. package/src/testing/test-data.ts +5 -5
  110. package/src/testing/test-schema.ts +27 -28
  111. package/src/typedefs.d.ts +8 -0
  112. package/dist/lib/browser/chunk-DEIGOD4U.mjs.map +0 -7
  113. package/dist/lib/node/chunk-7VH7NMIM.cjs.map +0 -7
  114. package/dist/lib/node-esm/chunk-7JI4MDGL.mjs.map +0 -7
  115. package/dist/types/src/conversation/conversation.d.ts.map +0 -1
  116. package/dist/types/src/conversation/conversation.test.d.ts.map +0 -1
  117. package/dist/types/src/conversation/index.d.ts.map +0 -1
  118. package/dist/types/src/conversation/types.d.ts.map +0 -1
  119. package/dist/types/src/cypher/ast.d.ts.map +0 -1
  120. package/dist/types/src/cypher/combinators.d.ts.map +0 -1
  121. package/dist/types/src/cypher/combinators.test.d.ts.map +0 -1
  122. package/dist/types/src/cypher/echo-data-source.d.ts.map +0 -1
  123. package/dist/types/src/cypher/execution-plan.d.ts.map +0 -1
  124. package/dist/types/src/cypher/execution-plan.test.d.ts.map +0 -1
  125. package/dist/types/src/cypher/index.d.ts.map +0 -1
  126. package/dist/types/src/cypher/parjs.d.ts.map +0 -1
  127. package/dist/types/src/cypher/parser.d.ts.map +0 -1
  128. package/dist/types/src/cypher/query-executor.d.ts.map +0 -1
  129. package/dist/types/src/cypher/query-executor.test.d.ts.map +0 -1
  130. package/dist/types/src/cypher/schema.d.ts.map +0 -1
  131. package/dist/types/src/cypher/schema.test.d.ts.map +0 -1
  132. /package/dist/types/src/{conversation → experimental/conversation}/conversation.test.d.ts +0 -0
  133. /package/dist/types/src/{conversation → experimental/conversation}/index.d.ts +0 -0
  134. /package/dist/types/src/{cypher → experimental/cypher}/ast.d.ts +0 -0
  135. /package/dist/types/src/{cypher → experimental/cypher}/combinators.d.ts +0 -0
  136. /package/dist/types/src/{cypher → experimental/cypher}/combinators.test.d.ts +0 -0
  137. /package/dist/types/src/{cypher → experimental/cypher}/echo-data-source.d.ts +0 -0
  138. /package/dist/types/src/{cypher → experimental/cypher}/execution-plan.d.ts +0 -0
  139. /package/dist/types/src/{cypher → experimental/cypher}/execution-plan.test.d.ts +0 -0
  140. /package/dist/types/src/{cypher → experimental/cypher}/index.d.ts +0 -0
  141. /package/dist/types/src/{cypher → experimental/cypher}/parjs.d.ts +0 -0
  142. /package/dist/types/src/{cypher → experimental/cypher}/parser.d.ts +0 -0
  143. /package/dist/types/src/{cypher → experimental/cypher}/query-executor.d.ts +0 -0
  144. /package/dist/types/src/{cypher → experimental/cypher}/query-executor.test.d.ts +0 -0
  145. /package/dist/types/src/{cypher → experimental/cypher}/schema.d.ts +0 -0
  146. /package/dist/types/src/{cypher → experimental/cypher}/schema.test.d.ts +0 -0
  147. /package/src/{conversation → experimental/conversation}/index.ts +0 -0
  148. /package/src/{cypher → experimental/cypher}/ast.ts +0 -0
  149. /package/src/{cypher → experimental/cypher}/combinators.test.ts +0 -0
  150. /package/src/{cypher → experimental/cypher}/combinators.ts +0 -0
  151. /package/src/{cypher → experimental/cypher}/execution-plan.test.ts +0 -0
  152. /package/src/{cypher → experimental/cypher}/execution-plan.ts +0 -0
  153. /package/src/{cypher → experimental/cypher}/index.ts +0 -0
  154. /package/src/{cypher → experimental/cypher}/parjs-shims.d.ts +0 -0
  155. /package/src/{cypher → experimental/cypher}/parjs.ts +0 -0
  156. /package/src/{cypher → experimental/cypher}/parser.ts +0 -0
  157. /package/src/{cypher → experimental/cypher}/query-executor.ts +0 -0
@@ -1 +1 @@
1
- {"inputs":{"packages/experimental/assistant/src/ai-service/defs.ts":{"bytes":3427,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/util/sse.ts":{"bytes":30181,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/util/index.ts":{"bytes":506,"imports":[{"path":"packages/experimental/assistant/src/ai-service/util/sse.ts","kind":"import-statement","original":"./sse"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytes":10951,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/edge-client.ts":{"bytes":6798,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/stream.ts","kind":"import-statement","original":"./stream"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/message-collector.ts":{"bytes":8239,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/types.ts":{"bytes":6910,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/defs.ts","kind":"import-statement","original":"./defs"}],"format":"esm"},"packages/experimental/assistant/src/conversation/conversation.ts":{"bytes":26568,"imports":[{"path":"@dxos/artifact","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}],"format":"esm"},"packages/experimental/assistant/src/conversation/index.ts":{"bytes":528,"imports":[{"path":"packages/experimental/assistant/src/conversation/conversation.ts","kind":"import-statement","original":"./conversation"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/ollama-client.ts":{"bytes":49370,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","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":"packages/experimental/assistant/src/ai-service/defs.ts","kind":"import-statement","original":"./defs"},{"path":"packages/experimental/assistant/src/ai-service/message-collector.ts","kind":"import-statement","original":"./message-collector"},{"path":"packages/experimental/assistant/src/ai-service/stream.ts","kind":"import-statement","original":"./stream"},{"path":"packages/experimental/assistant/src/ai-service/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/experimental/assistant/src/conversation/index.ts","kind":"import-statement","original":"../conversation"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytes":9707,"imports":[{"path":"parsimmon","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytes":44861,"imports":[{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","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":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/transform.ts","kind":"import-statement","original":"./transform"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/service.ts":{"bytes":1581,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/index.ts":{"bytes":1252,"imports":[{"path":"packages/experimental/assistant/src/ai-service/defs.ts","kind":"import-statement","original":"./defs"},{"path":"packages/experimental/assistant/src/ai-service/edge-client.ts","kind":"import-statement","original":"./edge-client"},{"path":"packages/experimental/assistant/src/ai-service/message-collector.ts","kind":"import-statement","original":"./message-collector"},{"path":"packages/experimental/assistant/src/ai-service/ollama-client.ts","kind":"import-statement","original":"./ollama-client"},{"path":"packages/experimental/assistant/src/ai-service/parser.ts","kind":"import-statement","original":"./parser"},{"path":"packages/experimental/assistant/src/ai-service/service.ts","kind":"import-statement","original":"./service"},{"path":"packages/experimental/assistant/src/ai-service/stream.ts","kind":"import-statement","original":"./stream"},{"path":"packages/experimental/assistant/src/ai-service/transform.ts","kind":"import-statement","original":"./transform"},{"path":"packages/experimental/assistant/src/ai-service/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/experimental/assistant/src/cypher/parjs.ts":{"bytes":1016,"imports":[{"path":"#parjs","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/cypher/combinators.ts":{"bytes":17930,"imports":[{"path":"packages/experimental/assistant/src/cypher/parjs.ts","kind":"import-statement","original":"./parjs"}],"format":"esm"},"packages/experimental/assistant/src/cypher/parser.ts":{"bytes":1744,"imports":[{"path":"packages/experimental/assistant/src/cypher/combinators.ts","kind":"import-statement","original":"./combinators"}],"format":"esm"},"packages/experimental/assistant/src/cypher/execution-plan.ts":{"bytes":20257,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/cypher/query-executor.ts":{"bytes":16864,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/cypher/execution-plan.ts","kind":"import-statement","original":"./execution-plan"},{"path":"packages/experimental/assistant/src/cypher/parser.ts","kind":"import-statement","original":"./parser"}],"format":"esm"},"packages/experimental/assistant/src/util/trim.ts":{"bytes":1569,"imports":[],"format":"esm"},"packages/experimental/assistant/src/util/index.ts":{"bytes":500,"imports":[{"path":"packages/experimental/assistant/src/util/trim.ts","kind":"import-statement","original":"./trim"}],"format":"esm"},"packages/experimental/assistant/src/cypher/schema.ts":{"bytes":9981,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/experimental/assistant/src/cypher/echo-data-source.ts":{"bytes":14267,"imports":[{"path":"@dxos/debug","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/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/cypher/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"packages/experimental/assistant/src/cypher/index.ts":{"bytes":808,"imports":[{"path":"packages/experimental/assistant/src/cypher/parser.ts","kind":"import-statement","original":"./parser"},{"path":"packages/experimental/assistant/src/cypher/query-executor.ts","kind":"import-statement","original":"./query-executor"},{"path":"packages/experimental/assistant/src/cypher/schema.ts","kind":"import-statement","original":"./schema"},{"path":"packages/experimental/assistant/src/cypher/echo-data-source.ts","kind":"import-statement","original":"./echo-data-source"}],"format":"esm"},"packages/experimental/assistant/src/session/version-pin.ts":{"bytes":4050,"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"},"packages/experimental/assistant/src/session/session.ts":{"bytes":56273,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","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":"packages/experimental/assistant/src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"},{"path":"packages/experimental/assistant/src/ai-service/index.ts","kind":"import-statement","original":"../ai-service"},{"path":"packages/experimental/assistant/src/conversation/index.ts","kind":"import-statement","original":"../conversation"}],"format":"esm"},"packages/experimental/assistant/src/session/index.ts":{"bytes":609,"imports":[{"path":"packages/experimental/assistant/src/session/session.ts","kind":"import-statement","original":"./session"},{"path":"packages/experimental/assistant/src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"}],"format":"esm"},"packages/experimental/assistant/src/index.ts":{"bytes":782,"imports":[{"path":"packages/experimental/assistant/src/ai-service/index.ts","kind":"import-statement","original":"./ai-service"},{"path":"packages/experimental/assistant/src/cypher/index.ts","kind":"import-statement","original":"./cypher"},{"path":"packages/experimental/assistant/src/conversation/index.ts","kind":"import-statement","original":"./conversation"},{"path":"packages/experimental/assistant/src/session/index.ts","kind":"import-statement","original":"./session"}],"format":"esm"},"packages/experimental/assistant/src/testing/defs.ts":{"bytes":1016,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/logger.ts":{"bytes":14680,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/ollama.ts":{"bytes":1785,"imports":[{"path":"packages/experimental/assistant/src/ai-service/index.ts","kind":"import-statement","original":"../ai-service"}],"format":"esm"},"packages/experimental/assistant/src/testing/query-promts.ts":{"bytes":8932,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/cypher/index.ts","kind":"import-statement","original":"../cypher"},{"path":"packages/experimental/assistant/src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/experimental/assistant/src/testing/test-data.ts":{"bytes":36608,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/cypher/index.ts","kind":"import-statement","original":"../cypher"},{"path":"packages/experimental/assistant/src/testing/index.ts","kind":"import-statement","original":"../testing"}],"format":"esm"},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytes":8478,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/testing/index.ts":{"bytes":963,"imports":[{"path":"packages/experimental/assistant/src/testing/defs.ts","kind":"import-statement","original":"./defs"},{"path":"packages/experimental/assistant/src/testing/logger.ts","kind":"import-statement","original":"./logger"},{"path":"packages/experimental/assistant/src/testing/ollama.ts","kind":"import-statement","original":"./ollama"},{"path":"packages/experimental/assistant/src/testing/query-promts.ts","kind":"import-statement","original":"./query-promts"},{"path":"packages/experimental/assistant/src/testing/test-data.ts","kind":"import-statement","original":"./test-data"},{"path":"packages/experimental/assistant/src/testing/test-schema.ts","kind":"import-statement","original":"./test-schema"}],"format":"esm"}},"outputs":{"packages/experimental/assistant/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":28614},"packages/experimental/assistant/dist/lib/node/index.cjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node/chunk-7VH7NMIM.cjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","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}],"exports":["AIServiceEdgeClient","AIServiecOverloadedError","AISession","DEFAULT_EDGE_MODEL","DEFAULT_EDGE_MODELS","DEFAULT_OLLAMA_ENDPOINT","DEFAULT_OLLAMA_MODEL","DEFAULT_OLLAMA_MODELS","EchoDataSource","GenerateRequest","GenerateResponse","GenerationStreamImpl","LLMModel","MessageCollector","MixedStreamParser","OllamaClient","StreamTransform","ToolTypes","VersionPin","createArtifactElement","createGenerationStream","emitMessageAsEvents","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools"],"entryPoint":"packages/experimental/assistant/src/index.ts","inputs":{"packages/experimental/assistant/src/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/session/session.ts":{"bytesInOutput":14818},"packages/experimental/assistant/src/session/version-pin.ts":{"bytesInOutput":745},"packages/experimental/assistant/src/session/index.ts":{"bytesInOutput":0}},"bytes":17098},"packages/experimental/assistant/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":34474},"packages/experimental/assistant/dist/lib/node/testing/index.cjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node/chunk-7VH7NMIM.cjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["AI_SERVICE_ENDPOINT","Contact","MockDataSource","ObjectId","Organization","Project","Task","createCypherTool","createLogger","createSystemPrompt","createTestData","createTestOllamaClient","seedTestData"],"entryPoint":"packages/experimental/assistant/src/testing/index.ts","inputs":{"packages/experimental/assistant/src/testing/defs.ts":{"bytesInOutput":113},"packages/experimental/assistant/src/testing/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/testing/logger.ts":{"bytesInOutput":3408},"packages/experimental/assistant/src/testing/ollama.ts":{"bytesInOutput":187},"packages/experimental/assistant/src/testing/query-promts.ts":{"bytesInOutput":2794},"packages/experimental/assistant/src/testing/test-data.ts":{"bytesInOutput":9286},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytesInOutput":1915}},"bytes":18523},"packages/experimental/assistant/dist/lib/node/chunk-7VH7NMIM.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":130001},"packages/experimental/assistant/dist/lib/node/chunk-7VH7NMIM.cjs":{"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","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/artifact","kind":"import-statement","external":true},{"path":"@dxos/artifact","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/artifact","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":"parsimmon","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","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":"@dxos/util","kind":"import-statement","external":true},{"path":"#parjs","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/debug","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/log","kind":"import-statement","external":true}],"exports":["AIServiceEdgeClient","DEFAULT_EDGE_MODEL","DEFAULT_EDGE_MODELS","DEFAULT_OLLAMA_ENDPOINT","DEFAULT_OLLAMA_MODEL","DEFAULT_OLLAMA_MODELS","EchoDataSource","GenerateRequest","GenerateResponse","GenerationStreamImpl","LLMModel","MessageCollector","MixedStreamParser","OllamaClient","StreamTransform","ToolTypes","createArtifactElement","createGenerationStream","emitMessageAsEvents","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools","trim"],"inputs":{"packages/experimental/assistant/src/ai-service/defs.ts":{"bytesInOutput":773},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytesInOutput":2609},"packages/experimental/assistant/src/ai-service/util/sse.ts":{"bytesInOutput":6115},"packages/experimental/assistant/src/ai-service/util/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/edge-client.ts":{"bytesInOutput":1830},"packages/experimental/assistant/src/ai-service/message-collector.ts":{"bytesInOutput":1774},"packages/experimental/assistant/src/ai-service/types.ts":{"bytesInOutput":1036},"packages/experimental/assistant/src/conversation/conversation.ts":{"bytesInOutput":7480},"packages/experimental/assistant/src/conversation/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/ollama-client.ts":{"bytesInOutput":11583},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytesInOutput":1994},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytesInOutput":12145},"packages/experimental/assistant/src/ai-service/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/cypher/parjs.ts":{"bytesInOutput":50},"packages/experimental/assistant/src/cypher/combinators.ts":{"bytesInOutput":3853},"packages/experimental/assistant/src/cypher/parser.ts":{"bytesInOutput":239},"packages/experimental/assistant/src/cypher/query-executor.ts":{"bytesInOutput":3917},"packages/experimental/assistant/src/cypher/execution-plan.ts":{"bytesInOutput":5043},"packages/experimental/assistant/src/cypher/schema.ts":{"bytesInOutput":2270},"packages/experimental/assistant/src/util/trim.ts":{"bytesInOutput":204},"packages/experimental/assistant/src/util/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/cypher/echo-data-source.ts":{"bytesInOutput":3945},"packages/experimental/assistant/src/cypher/index.ts":{"bytesInOutput":0}},"bytes":68838}}}
1
+ {"inputs":{"packages/experimental/assistant/src/ai-service/defs.ts":{"bytes":3427,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/util/sse.ts":{"bytes":30181,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/util/index.ts":{"bytes":506,"imports":[{"path":"packages/experimental/assistant/src/ai-service/util/sse.ts","kind":"import-statement","original":"./sse"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytes":10951,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/edge-client.ts":{"bytes":6798,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/stream.ts","kind":"import-statement","original":"./stream"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/message-collector.ts":{"bytes":8239,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/types.ts":{"bytes":7080,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/defs.ts","kind":"import-statement","original":"./defs"}],"format":"esm"},"packages/experimental/assistant/src/session/tools.ts":{"bytes":12120,"imports":[{"path":"@dxos/artifact","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}],"format":"esm"},"packages/experimental/assistant/src/session/version-pin.ts":{"bytes":4310,"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"},"packages/experimental/assistant/src/session/session.ts":{"bytes":57629,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","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":"packages/experimental/assistant/src/session/tools.ts","kind":"import-statement","original":"./tools"},{"path":"packages/experimental/assistant/src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"},{"path":"packages/experimental/assistant/src/ai-service/index.ts","kind":"import-statement","original":"../ai-service"}],"format":"esm"},"packages/experimental/assistant/src/session/index.ts":{"bytes":690,"imports":[{"path":"packages/experimental/assistant/src/session/session.ts","kind":"import-statement","original":"./session"},{"path":"packages/experimental/assistant/src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"},{"path":"packages/experimental/assistant/src/session/tools.ts","kind":"import-statement","original":"./tools"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/ollama-client.ts":{"bytes":49402,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","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":"packages/experimental/assistant/src/ai-service/defs.ts","kind":"import-statement","original":"./defs"},{"path":"packages/experimental/assistant/src/ai-service/message-collector.ts","kind":"import-statement","original":"./message-collector"},{"path":"packages/experimental/assistant/src/ai-service/stream.ts","kind":"import-statement","original":"./stream"},{"path":"packages/experimental/assistant/src/ai-service/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/experimental/assistant/src/session/index.ts","kind":"import-statement","original":"../session"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytes":9707,"imports":[{"path":"parsimmon","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytes":44861,"imports":[{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","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":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/transform.ts","kind":"import-statement","original":"./transform"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/service.ts":{"bytes":1581,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/index.ts":{"bytes":1252,"imports":[{"path":"packages/experimental/assistant/src/ai-service/defs.ts","kind":"import-statement","original":"./defs"},{"path":"packages/experimental/assistant/src/ai-service/edge-client.ts","kind":"import-statement","original":"./edge-client"},{"path":"packages/experimental/assistant/src/ai-service/message-collector.ts","kind":"import-statement","original":"./message-collector"},{"path":"packages/experimental/assistant/src/ai-service/ollama-client.ts","kind":"import-statement","original":"./ollama-client"},{"path":"packages/experimental/assistant/src/ai-service/parser.ts","kind":"import-statement","original":"./parser"},{"path":"packages/experimental/assistant/src/ai-service/service.ts","kind":"import-statement","original":"./service"},{"path":"packages/experimental/assistant/src/ai-service/stream.ts","kind":"import-statement","original":"./stream"},{"path":"packages/experimental/assistant/src/ai-service/transform.ts","kind":"import-statement","original":"./transform"},{"path":"packages/experimental/assistant/src/ai-service/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/experimental/assistant/src/experimental/conversation/conversation.ts":{"bytes":15656,"imports":[{"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}],"format":"esm"},"packages/experimental/assistant/src/experimental/conversation/index.ts":{"bytes":541,"imports":[{"path":"packages/experimental/assistant/src/experimental/conversation/conversation.ts","kind":"import-statement","original":"./conversation"}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/parjs.ts":{"bytes":1029,"imports":[{"path":"#parjs","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/combinators.ts":{"bytes":17943,"imports":[{"path":"packages/experimental/assistant/src/experimental/cypher/parjs.ts","kind":"import-statement","original":"./parjs"}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/parser.ts":{"bytes":1757,"imports":[{"path":"packages/experimental/assistant/src/experimental/cypher/combinators.ts","kind":"import-statement","original":"./combinators"}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/execution-plan.ts":{"bytes":20270,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/query-executor.ts":{"bytes":16877,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/experimental/cypher/execution-plan.ts","kind":"import-statement","original":"./execution-plan"},{"path":"packages/experimental/assistant/src/experimental/cypher/parser.ts","kind":"import-statement","original":"./parser"}],"format":"esm"},"packages/experimental/assistant/src/util/trim.ts":{"bytes":1569,"imports":[],"format":"esm"},"packages/experimental/assistant/src/util/index.ts":{"bytes":500,"imports":[{"path":"packages/experimental/assistant/src/util/trim.ts","kind":"import-statement","original":"./trim"}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/schema.ts":{"bytes":10001,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/util/index.ts","kind":"import-statement","original":"../../util"}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/echo-data-source.ts":{"bytes":14308,"imports":[{"path":"@dxos/debug","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/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/experimental/cypher/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/index.ts":{"bytes":821,"imports":[{"path":"packages/experimental/assistant/src/experimental/cypher/parser.ts","kind":"import-statement","original":"./parser"},{"path":"packages/experimental/assistant/src/experimental/cypher/query-executor.ts","kind":"import-statement","original":"./query-executor"},{"path":"packages/experimental/assistant/src/experimental/cypher/schema.ts","kind":"import-statement","original":"./schema"},{"path":"packages/experimental/assistant/src/experimental/cypher/echo-data-source.ts","kind":"import-statement","original":"./echo-data-source"}],"format":"esm"},"packages/experimental/assistant/src/experimental/index.ts":{"bytes":614,"imports":[{"path":"packages/experimental/assistant/src/experimental/conversation/index.ts","kind":"import-statement","original":"./conversation"},{"path":"packages/experimental/assistant/src/experimental/cypher/index.ts","kind":"import-statement","original":"./cypher"}],"format":"esm"},"packages/experimental/assistant/src/index.ts":{"bytes":876,"imports":[{"path":"packages/experimental/assistant/src/ai-service/index.ts","kind":"import-statement","original":"./ai-service"},{"path":"packages/experimental/assistant/src/session/index.ts","kind":"import-statement","original":"./session"},{"path":"packages/experimental/assistant/src/experimental/index.ts","kind":"import-statement","original":"./experimental"}],"format":"esm"},"packages/experimental/assistant/src/testing/defs.ts":{"bytes":1016,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/logger.ts":{"bytes":14680,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/ollama.ts":{"bytes":1785,"imports":[{"path":"packages/experimental/assistant/src/ai-service/index.ts","kind":"import-statement","original":"../ai-service"}],"format":"esm"},"packages/experimental/assistant/src/testing/query-promts.ts":{"bytes":8963,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/experimental/index.ts","kind":"import-statement","original":"../experimental"},{"path":"packages/experimental/assistant/src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/experimental/assistant/src/testing/test-data.ts":{"bytes":36646,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/experimental/index.ts","kind":"import-statement","original":"../experimental"},{"path":"packages/experimental/assistant/src/testing/index.ts","kind":"import-statement","original":"../testing"}],"format":"esm"},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytes":8399,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/testing/printer.ts":{"bytes":4768,"imports":[{"path":"node:util","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/testing/index.ts":{"bytes":1050,"imports":[{"path":"packages/experimental/assistant/src/testing/defs.ts","kind":"import-statement","original":"./defs"},{"path":"packages/experimental/assistant/src/testing/logger.ts","kind":"import-statement","original":"./logger"},{"path":"packages/experimental/assistant/src/testing/ollama.ts","kind":"import-statement","original":"./ollama"},{"path":"packages/experimental/assistant/src/testing/query-promts.ts","kind":"import-statement","original":"./query-promts"},{"path":"packages/experimental/assistant/src/testing/test-data.ts","kind":"import-statement","original":"./test-data"},{"path":"packages/experimental/assistant/src/testing/test-schema.ts","kind":"import-statement","original":"./test-schema"},{"path":"packages/experimental/assistant/src/testing/printer.ts","kind":"import-statement","original":"./printer"}],"format":"esm"}},"outputs":{"packages/experimental/assistant/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/experimental/assistant/dist/lib/node/index.cjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node/chunk-FTIDW4BA.cjs","kind":"import-statement"}],"exports":["AIServiceEdgeClient","AIServiecOverloadedError","AISession","DEFAULT_EDGE_MODEL","DEFAULT_EDGE_MODELS","DEFAULT_OLLAMA_ENDPOINT","DEFAULT_OLLAMA_MODEL","DEFAULT_OLLAMA_MODELS","EchoDataSource","GenerateRequest","GenerateResponse","GenerationStreamImpl","LLMModel","MessageCollector","MixedStreamParser","OllamaClient","StreamTransform","ToolTypes","VersionPin","createArtifactElement","createGenerationStream","emitMessageAsEvents","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools"],"entryPoint":"packages/experimental/assistant/src/index.ts","inputs":{"packages/experimental/assistant/src/index.ts":{"bytesInOutput":0}},"bytes":1409},"packages/experimental/assistant/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":36617},"packages/experimental/assistant/dist/lib/node/testing/index.cjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node/chunk-FTIDW4BA.cjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true}],"exports":["AI_SERVICE_ENDPOINT","ConsolePrinter","Contact","MockDataSource","Organization","Project","Task","createCypherTool","createLogger","createSystemPrompt","createTestData","createTestOllamaClient","seedTestData"],"entryPoint":"packages/experimental/assistant/src/testing/index.ts","inputs":{"packages/experimental/assistant/src/testing/defs.ts":{"bytesInOutput":113},"packages/experimental/assistant/src/testing/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/testing/logger.ts":{"bytesInOutput":3408},"packages/experimental/assistant/src/testing/ollama.ts":{"bytesInOutput":187},"packages/experimental/assistant/src/testing/query-promts.ts":{"bytesInOutput":2799},"packages/experimental/assistant/src/testing/test-data.ts":{"bytesInOutput":9286},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytesInOutput":1952},"packages/experimental/assistant/src/testing/printer.ts":{"bytesInOutput":1014}},"bytes":19631},"packages/experimental/assistant/dist/lib/node/chunk-FTIDW4BA.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":160323},"packages/experimental/assistant/dist/lib/node/chunk-FTIDW4BA.cjs":{"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","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/artifact","kind":"import-statement","external":true},{"path":"@dxos/artifact","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/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","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/artifact","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":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","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":"@dxos/util","kind":"import-statement","external":true},{"path":"parsimmon","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":"#parjs","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/debug","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/log","kind":"import-statement","external":true}],"exports":["AIServiceEdgeClient","AIServiecOverloadedError","AISession","DEFAULT_EDGE_MODEL","DEFAULT_EDGE_MODELS","DEFAULT_OLLAMA_ENDPOINT","DEFAULT_OLLAMA_MODEL","DEFAULT_OLLAMA_MODELS","EchoDataSource","GenerateRequest","GenerateResponse","GenerationStreamImpl","LLMModel","MessageCollector","MixedStreamParser","OllamaClient","StreamTransform","ToolTypes","VersionPin","createArtifactElement","createGenerationStream","emitMessageAsEvents","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools","trim"],"inputs":{"packages/experimental/assistant/src/ai-service/defs.ts":{"bytesInOutput":773},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytesInOutput":2609},"packages/experimental/assistant/src/ai-service/util/sse.ts":{"bytesInOutput":6115},"packages/experimental/assistant/src/ai-service/util/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/edge-client.ts":{"bytesInOutput":1830},"packages/experimental/assistant/src/ai-service/message-collector.ts":{"bytesInOutput":1774},"packages/experimental/assistant/src/ai-service/types.ts":{"bytesInOutput":1106},"packages/experimental/assistant/src/session/tools.ts":{"bytesInOutput":3370},"packages/experimental/assistant/src/session/version-pin.ts":{"bytesInOutput":758},"packages/experimental/assistant/src/session/session.ts":{"bytesInOutput":15315},"packages/experimental/assistant/src/ai-service/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/ollama-client.ts":{"bytesInOutput":11618},"packages/experimental/assistant/src/session/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytesInOutput":12145},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytesInOutput":1994},"packages/experimental/assistant/src/experimental/conversation/conversation.ts":{"bytesInOutput":4372},"packages/experimental/assistant/src/experimental/cypher/parjs.ts":{"bytesInOutput":50},"packages/experimental/assistant/src/experimental/cypher/combinators.ts":{"bytesInOutput":3853},"packages/experimental/assistant/src/experimental/cypher/parser.ts":{"bytesInOutput":239},"packages/experimental/assistant/src/experimental/cypher/query-executor.ts":{"bytesInOutput":3930},"packages/experimental/assistant/src/experimental/cypher/execution-plan.ts":{"bytesInOutput":5056},"packages/experimental/assistant/src/experimental/cypher/schema.ts":{"bytesInOutput":2270},"packages/experimental/assistant/src/util/trim.ts":{"bytesInOutput":204},"packages/experimental/assistant/src/util/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/experimental/cypher/echo-data-source.ts":{"bytesInOutput":3967},"packages/experimental/assistant/src/experimental/conversation/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/experimental/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/experimental/cypher/index.ts":{"bytesInOutput":0}},"bytes":85810}}}
@@ -19,9 +19,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var testing_exports = {};
20
20
  __export(testing_exports, {
21
21
  AI_SERVICE_ENDPOINT: () => AI_SERVICE_ENDPOINT,
22
+ ConsolePrinter: () => ConsolePrinter,
22
23
  Contact: () => Contact,
23
24
  MockDataSource: () => MockDataSource,
24
- ObjectId: () => ObjectId2,
25
25
  Organization: () => Organization,
26
26
  Project: () => Project,
27
27
  Task: () => Task,
@@ -33,7 +33,7 @@ __export(testing_exports, {
33
33
  seedTestData: () => seedTestData
34
34
  });
35
35
  module.exports = __toCommonJS(testing_exports);
36
- var import_chunk_7VH7NMIM = require("../chunk-7VH7NMIM.cjs");
36
+ var import_chunk_FTIDW4BA = require("../chunk-FTIDW4BA.cjs");
37
37
  var import_effect = require("effect");
38
38
  var import_artifact = require("@dxos/artifact");
39
39
  var import_echo_schema = require("@dxos/echo-schema");
@@ -44,6 +44,7 @@ var import_invariant = require("@dxos/invariant");
44
44
  var import_live_object = require("@dxos/live-object");
45
45
  var import_effect2 = require("effect");
46
46
  var import_echo_schema3 = require("@dxos/echo-schema");
47
+ var import_node_util = require("node:util");
47
48
  var AI_SERVICE_ENDPOINT = {
48
49
  LOCAL: "http://localhost:8788",
49
50
  REMOTE: "https://ai-service.dxos.workers.dev"
@@ -164,10 +165,10 @@ var createLogger = ({ stream, filter, onImage } = {}) => {
164
165
  };
165
166
  };
166
167
  var createTestOllamaClient = (options) => {
167
- return new import_chunk_7VH7NMIM.OllamaClient({
168
+ return new import_chunk_FTIDW4BA.OllamaClient({
168
169
  tools: options?.tools,
169
170
  overrides: {
170
- model: import_chunk_7VH7NMIM.DEFAULT_OLLAMA_MODEL,
171
+ model: import_chunk_FTIDW4BA.DEFAULT_OLLAMA_MODEL,
171
172
  temperature: 0
172
173
  }
173
174
  });
@@ -213,7 +214,7 @@ ${createSystemPrompt(schemaTypes)}` : ""),
213
214
  S: void 0,
214
215
  C: (f, a) => f(...a)
215
216
  });
216
- const results = await (0, import_chunk_7VH7NMIM.executeQuery)(dataSource, query);
217
+ const results = await (0, import_chunk_FTIDW4BA.executeQuery)(dataSource, query);
217
218
  (0, import_log.log)("query complete", {
218
219
  results
219
220
  }, {
@@ -234,13 +235,13 @@ ${createSystemPrompt(schemaTypes)}` : ""),
234
235
  }
235
236
  }
236
237
  });
237
- var createSystemPrompt = (schemaTypes) => import_chunk_7VH7NMIM.trim`
238
+ var createSystemPrompt = (schemaTypes) => import_chunk_FTIDW4BA.trim`
238
239
  You have access to ECHO graph database. You can query the database to get data to satisfy user prompts.
239
240
 
240
241
  Database schema is defined in pseud-cypher syntax. The schema is:
241
242
 
242
243
  <schema>
243
- ${(0, import_chunk_7VH7NMIM.formatJsonSchemaForLLM)(schemaTypes.map((schema) => (0, import_echo_schema.toJsonSchema)(schema)))}
244
+ ${(0, import_chunk_FTIDW4BA.formatJsonSchemaForLLM)(schemaTypes.map((schema) => (0, import_echo_schema.toJsonSchema)(schema)))}
244
245
  <schema>
245
246
 
246
247
  Before replying always think step-by-step on how to proceed.
@@ -498,7 +499,7 @@ var MockDataSource = class {
498
499
  this.nodes.push({
499
500
  kind: "node",
500
501
  id: object.id,
501
- label: (0, import_chunk_7VH7NMIM.formatNodeLabel)(object.typeDxn),
502
+ label: (0, import_chunk_FTIDW4BA.formatNodeLabel)(object.typeDxn),
502
503
  properties: object.data
503
504
  });
504
505
  }
@@ -507,7 +508,7 @@ var MockDataSource = class {
507
508
  const typenameDxn = schema.$id ?? (0, import_debug.raise)(new Error("Schema must have $id"));
508
509
  for (const [name, propSchema] of Object.entries(schema.properties)) {
509
510
  if (propSchema.$id === import_echo_schema2.JSON_SCHEMA_ECHO_REF_ID) {
510
- const label = (0, import_chunk_7VH7NMIM.formatInferredRelationshipLabel)(typenameDxn, name);
511
+ const label = (0, import_chunk_FTIDW4BA.formatInferredRelationshipLabel)(typenameDxn, name);
511
512
  const source = this.nodes.find((node) => node.id === object.id);
512
513
  if (!source) {
513
514
  continue;
@@ -526,7 +527,7 @@ var MockDataSource = class {
526
527
  target
527
528
  });
528
529
  } else if (propSchema.type === "array" && propSchema.items && typeof propSchema.items === "object" && "$id" in propSchema.items && propSchema.items.$id === import_echo_schema2.JSON_SCHEMA_ECHO_REF_ID) {
529
- const label = (0, import_chunk_7VH7NMIM.formatInferredRelationshipLabel)(typenameDxn, name);
530
+ const label = (0, import_chunk_FTIDW4BA.formatInferredRelationshipLabel)(typenameDxn, name);
530
531
  const source = this.nodes.find((node) => node.id === object.id);
531
532
  if (!source) {
532
533
  continue;
@@ -550,11 +551,8 @@ var MockDataSource = class {
550
551
  }
551
552
  }
552
553
  };
553
- var ObjectId2 = import_effect2.Schema.String.annotations({
554
- description: "The unique object identifier."
555
- });
556
554
  var Contact = import_effect2.Schema.Struct({
557
- id: ObjectId2,
555
+ id: import_echo_schema3.ObjectId,
558
556
  name: import_effect2.Schema.String.annotations({
559
557
  description: "The name of the person."
560
558
  }),
@@ -570,7 +568,7 @@ var Contact = import_effect2.Schema.Struct({
570
568
  description: "Contact information."
571
569
  });
572
570
  var Project = import_effect2.Schema.Struct({
573
- id: ObjectId2,
571
+ id: import_echo_schema3.ObjectId,
574
572
  name: import_effect2.Schema.String.annotations({
575
573
  description: "The name of the project."
576
574
  }),
@@ -586,7 +584,7 @@ var Project = import_effect2.Schema.Struct({
586
584
  description: "Contact information."
587
585
  });
588
586
  var Task = import_effect2.Schema.Struct({
589
- id: ObjectId2,
587
+ id: import_echo_schema3.ObjectId,
590
588
  name: import_effect2.Schema.String.annotations({
591
589
  description: "The name of the task."
592
590
  }),
@@ -604,7 +602,7 @@ var Task = import_effect2.Schema.Struct({
604
602
  description: "Contact information."
605
603
  });
606
604
  var Organization = import_effect2.Schema.Struct({
607
- id: ObjectId2,
605
+ id: import_echo_schema3.ObjectId,
608
606
  name: import_effect2.Schema.String.annotations({
609
607
  description: "The name of the organization."
610
608
  }),
@@ -618,12 +616,49 @@ var Organization = import_effect2.Schema.Struct({
618
616
  },
619
617
  description: "Contact information."
620
618
  });
619
+ var ConsolePrinter = class {
620
+ constructor() {
621
+ this.printMessage = (message) => {
622
+ console.log(`${message.role.toUpperCase()}
623
+ `);
624
+ for (const content of message.content) {
625
+ this.printContentBlock(content);
626
+ }
627
+ };
628
+ this.printContentBlock = (content) => {
629
+ switch (content.type) {
630
+ case "text":
631
+ console.log(content.text);
632
+ break;
633
+ case "tool_use":
634
+ console.log(`\u2699\uFE0F [Tool Use] ${content.name} ${(0, import_node_util.inspect)(content.input, {
635
+ depth: null,
636
+ colors: true
637
+ })}`);
638
+ break;
639
+ case "tool_result": {
640
+ let data;
641
+ try {
642
+ data = JSON.parse(content.content);
643
+ } catch {
644
+ data = content.content;
645
+ }
646
+ console.log(`\u2699\uFE0F [Tool Result] ${content.toolUseId} ${(0, import_node_util.inspect)(data, {
647
+ depth: null,
648
+ colors: true
649
+ })}`);
650
+ break;
651
+ }
652
+ }
653
+ };
654
+ }
655
+ };
621
656
  // Annotate the CommonJS export names for ESM import in node:
622
657
  0 && (module.exports = {
623
658
  AI_SERVICE_ENDPOINT,
659
+ ConsolePrinter,
624
660
  Contact,
625
661
  MockDataSource,
626
- ObjectId,
627
662
  Organization,
628
663
  Project,
629
664
  Task,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/testing/defs.ts", "../../../../src/testing/logger.ts", "../../../../src/testing/ollama.ts", "../../../../src/testing/query-promts.ts", "../../../../src/testing/test-data.ts", "../../../../src/testing/test-schema.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// TODO(burdon): Remove/Reconcile with @dxos/assistant-testing.\nexport const AI_SERVICE_ENDPOINT = {\n LOCAL: 'http://localhost:8788',\n REMOTE: 'https://ai-service.dxos.workers.dev',\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { ImageSource, MessageContentBlock } from '@dxos/artifact';\n\nimport type { ConversationEvent } from '../conversation';\n\nexport const createLogger = ({\n stream,\n filter,\n onImage,\n}: {\n stream?: boolean;\n filter?: (event: ConversationEvent) => boolean;\n onImage?: (img: { id: string; description?: string; source: ImageSource }) => void;\n} = {}) => {\n const images: Record<string, any> = {};\n let currentText = '';\n\n return (event: ConversationEvent) => {\n if (typeof filter === 'function' && !filter(event)) {\n return;\n }\n\n const printContentBlock = (content: MessageContentBlock) => {\n switch (content.type) {\n case 'text':\n process.stdout.write(content.text);\n break;\n case 'tool_use':\n process.stdout.write(`⚙️ [Tool Use] ${content.name}\\n`);\n break;\n case 'image': {\n if (content.id && content.source) {\n images[content.id] = content.source;\n }\n process.stdout.write(`[Image id=${content.id} mediaType=${content.source?.mediaType}]`);\n break;\n }\n }\n };\n\n const onTextBlockPrinted = (text: string) => {\n const imageMatch = text.match(/<image id=\"([^\"]+)\"(?:\\s+prompt=\"([^\"]+)\")?\\s*\\/>/);\n if (imageMatch && onImage && images[imageMatch[1]]) {\n onImage({\n id: imageMatch[1],\n description: imageMatch[2], // Extract prompt as description if present\n source: images[imageMatch[1]],\n });\n }\n };\n\n if (stream) {\n switch (event.type) {\n case 'message_start': {\n process.stdout.write(`${event.message.role.toUpperCase()}\\n\\n`);\n for (const content of event.message.content) {\n printContentBlock(content);\n }\n break;\n }\n case 'content_block_start': {\n currentText = '';\n printContentBlock(event.content);\n break;\n }\n case 'content_block_delta': {\n switch (event.delta.type) {\n case 'text_delta': {\n currentText += event.delta.text;\n process.stdout.write(event.delta.text);\n break;\n }\n case 'input_json_delta': {\n process.stdout.write(event.delta.partial_json);\n break;\n }\n }\n break;\n }\n case 'content_block_stop': {\n process.stdout.write('\\n');\n onTextBlockPrinted(currentText);\n currentText = '';\n break;\n }\n case 'message_delta': {\n break;\n }\n case 'message_stop': {\n process.stdout.write('\\n\\n');\n break;\n }\n }\n }\n\n switch (event.type) {\n case 'message': {\n if (!stream || event.message.role !== 'assistant') {\n process.stdout.write(`${event.message.role.toUpperCase()}\\n\\n`);\n for (const block of event.message.content) {\n switch (block.type) {\n case 'text':\n process.stdout.write(block.text + '\\n');\n onTextBlockPrinted(block.text);\n break;\n case 'tool_use':\n process.stdout.write(`⚙️ [Tool Use] ${block.name}\\n`);\n process.stdout.write(` ${JSON.stringify(block.input)}\\n`);\n break;\n case 'tool_result':\n if (block.isError) {\n process.stdout.write('❌ [Tool Error]\\n');\n process.stdout.write(block.content + '\\n');\n } else {\n process.stdout.write('✅ [Tool Success]\\n');\n process.stdout.write(block.content + '\\n');\n }\n }\n process.stdout.write('\\n\\n');\n }\n }\n break;\n }\n }\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { DEFAULT_OLLAMA_MODEL, OllamaClient, type OllamaClientParams } from '../ai-service';\n\n/**\n * Create a test client with small local model and no temperature for predictable results.\n */\nexport const createTestOllamaClient = (options?: Pick<OllamaClientParams, 'tools'>) => {\n return new OllamaClient({\n tools: options?.tools,\n overrides: { model: DEFAULT_OLLAMA_MODEL, temperature: 0 },\n });\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema as S } from 'effect';\n\nimport { defineTool, ToolResult } from '@dxos/artifact';\nimport { toJsonSchema } from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\n\nimport { executeQuery, formatJsonSchemaForLLM, type DataSource } from '../cypher';\nimport { trim } from '../util';\n\nexport const createCypherTool = (dataSource: DataSource, schemaTypes: S.Schema.Any[] = []) =>\n defineTool('dxos.org/echo', {\n name: 'query',\n description:\n 'Query the ECHO graph database in cypher query language. Returns data from the database.' +\n (schemaTypes.length > 0 ? `\\n\\n${createSystemPrompt(schemaTypes)}` : ''),\n schema: S.Struct({\n query: S.String.annotations({\n description: `\n A valid cypher query string to execute.\n Query must have one MATCH clause.\n Match clause can have multiple patterns but they must all be connected via a relationship chain.\n Query might have zero or one WHERE clauses.\n Query must have one RETURN clause.\n RETURN clause can have multiple expressions separated by commas.\n DISTINCT keyword is not allowed.\n\n <example>\n MATCH (n:Person) RETURN n.name\n </example>\n\n <example>\n MATCH (s:Studio)-[:PRODUCED]->(m:Movie)-[:PRODUCED_IN]->(c:City {name: \"Las Vegas\"}) RETURN s\n </example>\n \n <example>\n MATCH (a:Actor)-[:STARRED_IN]->(m:Movie)<-[:PRODUCED]-(s:Studio {name: \"Cinema Pictures\"}) WHERE m.name = \"Once upon a time\" RETURN m.name, a.name\n </example>\n `,\n }),\n }),\n execute: async ({ query }) => {\n try {\n log('cypher query', { query });\n const results = await executeQuery(dataSource, query);\n log('query complete', { results });\n return ToolResult.Success(results);\n } catch (e: any) {\n log.catch(e);\n return ToolResult.Error(e.message);\n }\n },\n });\n\nexport const createSystemPrompt = (schemaTypes: S.Schema.Any[]) => trim`\n You have access to ECHO graph database. You can query the database to get data to satisfy user prompts.\n\n Database schema is defined in pseud-cypher syntax. The schema is:\n\n <schema>\n ${formatJsonSchemaForLLM(schemaTypes.map((schema) => toJsonSchema(schema)))}\n <schema>\n\n Before replying always think step-by-step on how to proceed.\n Print your thoughts inside <cot> tags.\n \n <example>\n <cot>To answer the question I need to ...</cot>\n </example>\n\n Before answering the user's question, decide what tools you need to use to answer the question.\n`;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Schema as S } from 'effect';\n\nimport { raise } from '@dxos/debug';\nimport type { EchoDatabase } from '@dxos/echo-db';\nimport {\n JSON_SCHEMA_ECHO_REF_ID,\n ObjectId,\n toJsonSchema,\n type JsonSchemaType,\n type Ref,\n Ref as RefImpl,\n} from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { live } from '@dxos/live-object';\n\nimport {\n type DataSource,\n type Node,\n type Relationship,\n formatInferredRelationshipLabel,\n formatNodeLabel,\n} from '../cypher';\nimport { Contact, Organization, Project, Task } from '../testing';\n\nexport const seedTestData = (db: EchoDatabase) => {\n const contactRich = db.add(\n live(Contact, {\n name: 'Rich',\n }),\n );\n const contactJosiah = db.add(\n live(Contact, {\n name: 'Josiah',\n }),\n );\n const contactDima = db.add(\n live(Contact, {\n name: 'Dima',\n }),\n );\n const contactFred = db.add(\n live(Contact, {\n name: 'Fred',\n }),\n );\n\n const projectComposer = db.add(\n live(Project, {\n name: 'Composer',\n }),\n );\n const projectEcho = db.add(\n live(Project, {\n name: 'ECHO',\n }),\n );\n const projectDoodles = db.add(\n live(Project, {\n name: 'Doodles',\n }),\n );\n\n const _taskComposer1 = db.add(\n live(Task, {\n name: 'Optimize startup performance',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactJosiah),\n }),\n );\n const _taskComposer2 = db.add(\n live(Task, {\n name: 'Create form builder',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactRich),\n }),\n );\n const _taskComposer3 = db.add(\n live(Task, {\n name: 'Add support for custom themes',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactJosiah),\n }),\n );\n const _taskComposer5 = db.add(\n live(Task, {\n name: 'Implement community plugin',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactFred),\n }),\n );\n const _taskComposer4 = db.add(\n live(Task, {\n name: 'Implement dark mode',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactRich),\n }),\n );\n const _taskEcho1 = db.add(\n live(Task, {\n name: 'Implement cypher query engine',\n project: RefImpl.make(projectEcho),\n assignee: RefImpl.make(contactDima),\n }),\n );\n const _taskEcho2 = db.add(\n live(Task, {\n name: 'Add schema editor',\n project: RefImpl.make(projectEcho),\n assignee: RefImpl.make(contactRich),\n }),\n );\n const _taskDoodles1 = db.add(\n live(Task, {\n name: 'Add support for custom themes',\n project: RefImpl.make(projectDoodles),\n assignee: RefImpl.make(contactFred),\n }),\n );\n const _taskDoodles2 = db.add(\n live(Task, {\n name: 'Implement dark mode',\n project: RefImpl.make(projectDoodles),\n assignee: RefImpl.make(contactJosiah),\n }),\n );\n\n const _orgDxos = db.add(\n live(Organization, {\n name: 'DXOS',\n employees: [RefImpl.make(contactRich), RefImpl.make(contactJosiah), RefImpl.make(contactDima)],\n projects: [RefImpl.make(projectEcho)],\n }),\n );\n const _orgBraneframe = db.add(\n live(Organization, {\n name: 'Braneframe',\n employees: [RefImpl.make(contactJosiah), RefImpl.make(contactRich)],\n projects: [RefImpl.make(projectComposer)],\n }),\n );\n};\n\n// TODO(burdon): Use schema/testing.\nexport const createTestData = (): MockDataSource => {\n const dataSource = new MockDataSource();\n\n const contactRich = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Rich',\n });\n const contactJosiah = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Josiah',\n });\n const contactDima = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Dima',\n });\n const contactFred = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Fred',\n });\n\n const projectComposer = dataSource.add(Project, {\n id: ObjectId.random(),\n name: 'Composer',\n });\n const projectEcho = dataSource.add(Project, {\n id: ObjectId.random(),\n name: 'ECHO',\n });\n const projectDoodles = dataSource.add(Project, {\n id: ObjectId.random(),\n name: 'Doodles',\n });\n\n const _taskComposer1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Optimize startup performance',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactJosiah),\n });\n const _taskComposer2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Create form builder',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactRich),\n });\n const _taskComposer3 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactJosiah),\n });\n const _taskComposer5 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement community plugin',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactFred),\n });\n const _taskComposer4 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactRich),\n });\n const _taskEcho1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement cypher query engine',\n project: RefImpl.make(projectEcho),\n assignee: RefImpl.make(contactDima),\n });\n const _taskEcho2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add schema editor',\n project: RefImpl.make(projectEcho),\n assignee: RefImpl.make(contactRich),\n });\n const _taskDoodles1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: RefImpl.make(projectDoodles),\n assignee: RefImpl.make(contactFred),\n });\n const _taskDoodles2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: RefImpl.make(projectDoodles),\n assignee: RefImpl.make(contactJosiah),\n });\n\n const _orgDxos = dataSource.add(Organization, {\n id: ObjectId.random(),\n name: 'DXOS',\n employees: [RefImpl.make(contactRich), RefImpl.make(contactJosiah), RefImpl.make(contactDima)],\n projects: [RefImpl.make(projectEcho)],\n });\n const _orgBraneframe = dataSource.add(Organization, {\n id: ObjectId.random(),\n name: 'Braneframe',\n employees: [RefImpl.make(contactJosiah), RefImpl.make(contactRich)],\n projects: [RefImpl.make(projectComposer)],\n });\n dataSource.computeGraph();\n\n return dataSource;\n};\n\nexport class MockDataSource implements DataSource {\n objects: Record<\n string,\n {\n schema: S.Schema.All;\n typeDxn: string;\n id: string;\n data: unknown;\n }\n > = {};\n\n schema: Record<\n string,\n {\n json: JsonSchemaType;\n instance: S.Schema.All;\n }\n > = {};\n\n nodes: Node[] = [];\n relationships: Relationship[] = [];\n\n async getNodes({ label }: { label?: string }) {\n return this.nodes.filter((node) => !label || node.label === label);\n }\n\n async getRelationships({ label }: { label?: string }) {\n return this.relationships.filter((relationship) => !label || relationship.label === label);\n }\n\n add<S extends S.Schema.All>(schema: S, data: S.Schema.Type<S>) {\n invariant(typeof data.id === 'string', 'Data must have an id');\n const jsonSchema = toJsonSchema(schema);\n if (!this.schema[jsonSchema.$id!]) {\n this.schema[jsonSchema.$id!] = {\n json: jsonSchema,\n instance: schema,\n };\n }\n\n const typenameDxn = jsonSchema.$id ?? raise(new Error('Schema must have $id'));\n\n this.objects[data.id] = {\n schema,\n id: data.id,\n typeDxn: typenameDxn,\n data,\n };\n\n return data;\n }\n\n computeGraph() {\n this.nodes = [];\n this.relationships = [];\n\n for (const object of Object.values(this.objects)) {\n this.nodes.push({\n kind: 'node',\n id: object.id,\n label: formatNodeLabel(object.typeDxn),\n properties: object.data as any,\n });\n }\n\n for (const object of Object.values(this.objects)) {\n const schema = this.schema[object.typeDxn].json;\n const typenameDxn = schema.$id ?? raise(new Error('Schema must have $id'));\n\n for (const [name, propSchema] of Object.entries(schema.properties!)) {\n if (propSchema.$id === JSON_SCHEMA_ECHO_REF_ID) {\n const label = formatInferredRelationshipLabel(typenameDxn, name);\n\n const source = this.nodes.find((node) => node.id === object.id);\n if (!source) {\n continue;\n }\n\n const { id: targetId } = (object.data as any)[name].target;\n\n const target = this.nodes.find((node) => node.id === targetId);\n if (!target) {\n continue;\n }\n\n this.relationships.push({\n kind: 'relationship',\n id: `${object.id}-${name}-${target.id}`,\n label,\n properties: {},\n source,\n target,\n });\n } else if (\n propSchema.type === 'array' &&\n propSchema.items &&\n typeof propSchema.items === 'object' &&\n '$id' in propSchema.items &&\n propSchema.items.$id === JSON_SCHEMA_ECHO_REF_ID\n ) {\n const label = formatInferredRelationshipLabel(typenameDxn, name);\n\n const source = this.nodes.find((node) => node.id === object.id);\n if (!source) {\n continue;\n }\n\n for (const { id: targetId } of (object.data as any)[name].map((x: Ref<any>) => x.target)) {\n const target = this.nodes.find((node) => node.id === targetId);\n if (!target) {\n continue;\n }\n\n this.relationships.push({\n kind: 'relationship',\n id: `${object.id}-${name}-${targetId}`,\n label,\n properties: {},\n source,\n target,\n });\n }\n }\n }\n }\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema as S } from 'effect';\n\nimport { EntityKind, TypeAnnotationId, Ref } from '@dxos/echo-schema';\n\n// TODO(burdon): Reconcile with sdk/schema/testing.\n// TODO(burdon): Convert interface to type.\n\n// TODO(dmaretskyi): Extract.\nexport const ObjectId = S.String.annotations({ description: 'The unique object identifier.' });\n\nexport const Contact = S.Struct({\n id: ObjectId,\n name: S.String.annotations({ description: 'The name of the person.' }),\n email: S.optional(S.String).annotations({ description: 'Email address.' }),\n})\n .pipe(S.mutable)\n .annotations({\n [TypeAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Contact',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Contact extends S.Schema.Type<typeof Contact> {}\n\nexport const Project = S.Struct({\n id: ObjectId,\n name: S.String.annotations({ description: 'The name of the project.' }),\n description: S.optional(S.String).annotations({ description: 'The description of the project.' }),\n})\n .pipe(S.mutable)\n .annotations({\n [TypeAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Project',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Project extends S.Schema.Type<typeof Project> {}\n\nexport const Task = S.Struct({\n id: ObjectId,\n name: S.String.annotations({ description: 'The name of the task.' }),\n description: S.optional(S.String).annotations({ description: 'The description of the task.' }),\n project: Ref(Project),\n assignee: Ref(Contact),\n})\n .pipe(S.mutable)\n .annotations({\n [TypeAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Task',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Task extends S.Schema.Type<typeof Task> {}\n\nexport const Organization = S.Struct({\n id: ObjectId,\n name: S.String.annotations({ description: 'The name of the organization.' }),\n projects: S.Array(Ref(Project)),\n employees: S.Array(Ref(Contact)),\n})\n .pipe(S.mutable)\n .annotations({\n [TypeAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Organization',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Organization extends S.Schema.Type<typeof Organization> {}\n"],
5
- "mappings": "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",
6
- "names": ["import_echo_schema", "import_effect", "AI_SERVICE_ENDPOINT", "LOCAL", "REMOTE", "createLogger", "stream", "filter", "onImage", "images", "currentText", "event", "printContentBlock", "content", "type", "process", "stdout", "write", "text", "name", "id", "source", "mediaType", "onTextBlockPrinted", "imageMatch", "match", "description", "message", "role", "toUpperCase", "delta", "partial_json", "block", "JSON", "stringify", "input", "isError", "createTestOllamaClient", "options", "OllamaClient", "tools", "overrides", "model", "DEFAULT_OLLAMA_MODEL", "temperature", "createCypherTool", "dataSource", "schemaTypes", "defineTool", "length", "createSystemPrompt", "schema", "S", "Struct", "query", "String", "annotations", "execute", "log", "results", "executeQuery", "ToolResult", "Success", "e", "catch", "Error", "trim", "formatJsonSchemaForLLM", "map", "toJsonSchema", "seedTestData", "db", "contactRich", "add", "live", "Contact", "contactJosiah", "contactDima", "contactFred", "projectComposer", "Project", "projectEcho", "projectDoodles", "_taskComposer1", "Task", "project", "RefImpl", "make", "assignee", "_taskComposer2", "_taskComposer3", "_taskComposer5", "_taskComposer4", "_taskEcho1", "_taskEcho2", "_taskDoodles1", "_taskDoodles2", "_orgDxos", "Organization", "employees", "projects", "_orgBraneframe", "createTestData", "MockDataSource", "ObjectId", "random", "computeGraph", "objects", "nodes", "relationships", "getNodes", "label", "node", "getRelationships", "relationship", "data", "invariant", "jsonSchema", "$id", "json", "instance", "typenameDxn", "raise", "typeDxn", "object", "Object", "values", "push", "kind", "formatNodeLabel", "properties", "propSchema", "entries", "JSON_SCHEMA_ECHO_REF_ID", "formatInferredRelationshipLabel", "find", "targetId", "target", "items", "x", "email", "optional", "pipe", "mutable", "TypeAnnotationId", "EntityKind", "typename", "version", "Ref", "Array"]
3
+ "sources": ["../../../../src/testing/defs.ts", "../../../../src/testing/logger.ts", "../../../../src/testing/ollama.ts", "../../../../src/testing/query-promts.ts", "../../../../src/testing/test-data.ts", "../../../../src/testing/test-schema.ts", "../../../../src/testing/printer.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// TODO(burdon): Remove/Reconcile with @dxos/assistant-testing.\nexport const AI_SERVICE_ENDPOINT = {\n LOCAL: 'http://localhost:8788',\n REMOTE: 'https://ai-service.dxos.workers.dev',\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { ImageSource, MessageContentBlock } from '@dxos/artifact';\n\nimport type { ConversationEvent } from '../experimental';\n\nexport const createLogger = ({\n stream,\n filter,\n onImage,\n}: {\n stream?: boolean;\n filter?: (event: ConversationEvent) => boolean;\n onImage?: (img: { id: string; description?: string; source: ImageSource }) => void;\n} = {}) => {\n const images: Record<string, any> = {};\n let currentText = '';\n\n return (event: ConversationEvent) => {\n if (typeof filter === 'function' && !filter(event)) {\n return;\n }\n\n const printContentBlock = (content: MessageContentBlock) => {\n switch (content.type) {\n case 'text':\n process.stdout.write(content.text);\n break;\n case 'tool_use':\n process.stdout.write(`⚙️ [Tool Use] ${content.name}\\n`);\n break;\n case 'image': {\n if (content.id && content.source) {\n images[content.id] = content.source;\n }\n process.stdout.write(`[Image id=${content.id} mediaType=${content.source?.mediaType}]`);\n break;\n }\n }\n };\n\n const onTextBlockPrinted = (text: string) => {\n const imageMatch = text.match(/<image id=\"([^\"]+)\"(?:\\s+prompt=\"([^\"]+)\")?\\s*\\/>/);\n if (imageMatch && onImage && images[imageMatch[1]]) {\n onImage({\n id: imageMatch[1],\n description: imageMatch[2], // Extract prompt as description if present\n source: images[imageMatch[1]],\n });\n }\n };\n\n if (stream) {\n switch (event.type) {\n case 'message_start': {\n process.stdout.write(`${event.message.role.toUpperCase()}\\n\\n`);\n for (const content of event.message.content) {\n printContentBlock(content);\n }\n break;\n }\n case 'content_block_start': {\n currentText = '';\n printContentBlock(event.content);\n break;\n }\n case 'content_block_delta': {\n switch (event.delta.type) {\n case 'text_delta': {\n currentText += event.delta.text;\n process.stdout.write(event.delta.text);\n break;\n }\n case 'input_json_delta': {\n process.stdout.write(event.delta.partial_json);\n break;\n }\n }\n break;\n }\n case 'content_block_stop': {\n process.stdout.write('\\n');\n onTextBlockPrinted(currentText);\n currentText = '';\n break;\n }\n case 'message_delta': {\n break;\n }\n case 'message_stop': {\n process.stdout.write('\\n\\n');\n break;\n }\n }\n }\n\n switch (event.type) {\n case 'message': {\n if (!stream || event.message.role !== 'assistant') {\n process.stdout.write(`${event.message.role.toUpperCase()}\\n\\n`);\n for (const block of event.message.content) {\n switch (block.type) {\n case 'text':\n process.stdout.write(block.text + '\\n');\n onTextBlockPrinted(block.text);\n break;\n case 'tool_use':\n process.stdout.write(`⚙️ [Tool Use] ${block.name}\\n`);\n process.stdout.write(` ${JSON.stringify(block.input)}\\n`);\n break;\n case 'tool_result':\n if (block.isError) {\n process.stdout.write('❌ [Tool Error]\\n');\n process.stdout.write(block.content + '\\n');\n } else {\n process.stdout.write('✅ [Tool Success]\\n');\n process.stdout.write(block.content + '\\n');\n }\n }\n process.stdout.write('\\n\\n');\n }\n }\n break;\n }\n }\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { DEFAULT_OLLAMA_MODEL, OllamaClient, type OllamaClientParams } from '../ai-service';\n\n/**\n * Create a test client with small local model and no temperature for predictable results.\n */\nexport const createTestOllamaClient = (options?: Pick<OllamaClientParams, 'tools'>) => {\n return new OllamaClient({\n tools: options?.tools,\n overrides: { model: DEFAULT_OLLAMA_MODEL, temperature: 0 },\n });\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { defineTool, ToolResult } from '@dxos/artifact';\nimport { toJsonSchema } from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\n\nimport { executeQuery, formatJsonSchemaForLLM, type DataSource } from '../experimental';\nimport { trim } from '../util';\n\nexport const createCypherTool = (dataSource: DataSource, schemaTypes: Schema.Schema.Any[] = []) =>\n defineTool('dxos.org/echo', {\n name: 'query',\n description:\n 'Query the ECHO graph database in cypher query language. Returns data from the database.' +\n (schemaTypes.length > 0 ? `\\n\\n${createSystemPrompt(schemaTypes)}` : ''),\n schema: Schema.Struct({\n query: Schema.String.annotations({\n description: `\n A valid cypher query string to execute.\n Query must have one MATCH clause.\n Match clause can have multiple patterns but they must all be connected via a relationship chain.\n Query might have zero or one WHERE clauses.\n Query must have one RETURN clause.\n RETURN clause can have multiple expressions separated by commas.\n DISTINCT keyword is not allowed.\n\n <example>\n MATCH (n:Person) RETURN n.name\n </example>\n\n <example>\n MATCH (s:Studio)-[:PRODUCED]->(m:Movie)-[:PRODUCED_IN]->(c:City {name: \"Las Vegas\"}) RETURN s\n </example>\n \n <example>\n MATCH (a:Actor)-[:STARRED_IN]->(m:Movie)<-[:PRODUCED]-(s:Studio {name: \"Cinema Pictures\"}) WHERE m.name = \"Once upon a time\" RETURN m.name, a.name\n </example>\n `,\n }),\n }),\n execute: async ({ query }) => {\n try {\n log('cypher query', { query });\n const results = await executeQuery(dataSource, query);\n log('query complete', { results });\n return ToolResult.Success(results);\n } catch (e: any) {\n log.catch(e);\n return ToolResult.Error(e.message);\n }\n },\n });\n\nexport const createSystemPrompt = (schemaTypes: Schema.Schema.Any[]) => trim`\n You have access to ECHO graph database. You can query the database to get data to satisfy user prompts.\n\n Database schema is defined in pseud-cypher syntax. The schema is:\n\n <schema>\n ${formatJsonSchemaForLLM(schemaTypes.map((schema) => toJsonSchema(schema)))}\n <schema>\n\n Before replying always think step-by-step on how to proceed.\n Print your thoughts inside <cot> tags.\n \n <example>\n <cot>To answer the question I need to ...</cot>\n </example>\n\n Before answering the user's question, decide what tools you need to use to answer the question.\n`;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Schema } from 'effect';\n\nimport { raise } from '@dxos/debug';\nimport type { EchoDatabase } from '@dxos/echo-db';\nimport {\n JSON_SCHEMA_ECHO_REF_ID,\n ObjectId,\n toJsonSchema,\n type JsonSchemaType,\n type Ref,\n Ref as RefImpl,\n} from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { live } from '@dxos/live-object';\n\nimport {\n type DataSource,\n type Node,\n type Relationship,\n formatInferredRelationshipLabel,\n formatNodeLabel,\n} from '../experimental';\nimport { Contact, Organization, Project, Task } from '../testing';\n\nexport const seedTestData = (db: EchoDatabase) => {\n const contactRich = db.add(\n live(Contact, {\n name: 'Rich',\n }),\n );\n const contactJosiah = db.add(\n live(Contact, {\n name: 'Josiah',\n }),\n );\n const contactDima = db.add(\n live(Contact, {\n name: 'Dima',\n }),\n );\n const contactFred = db.add(\n live(Contact, {\n name: 'Fred',\n }),\n );\n\n const projectComposer = db.add(\n live(Project, {\n name: 'Composer',\n }),\n );\n const projectEcho = db.add(\n live(Project, {\n name: 'ECHO',\n }),\n );\n const projectDoodles = db.add(\n live(Project, {\n name: 'Doodles',\n }),\n );\n\n const _taskComposer1 = db.add(\n live(Task, {\n name: 'Optimize startup performance',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactJosiah),\n }),\n );\n const _taskComposer2 = db.add(\n live(Task, {\n name: 'Create form builder',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactRich),\n }),\n );\n const _taskComposer3 = db.add(\n live(Task, {\n name: 'Add support for custom themes',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactJosiah),\n }),\n );\n const _taskComposer5 = db.add(\n live(Task, {\n name: 'Implement community plugin',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactFred),\n }),\n );\n const _taskComposer4 = db.add(\n live(Task, {\n name: 'Implement dark mode',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactRich),\n }),\n );\n const _taskEcho1 = db.add(\n live(Task, {\n name: 'Implement cypher query engine',\n project: RefImpl.make(projectEcho),\n assignee: RefImpl.make(contactDima),\n }),\n );\n const _taskEcho2 = db.add(\n live(Task, {\n name: 'Add schema editor',\n project: RefImpl.make(projectEcho),\n assignee: RefImpl.make(contactRich),\n }),\n );\n const _taskDoodles1 = db.add(\n live(Task, {\n name: 'Add support for custom themes',\n project: RefImpl.make(projectDoodles),\n assignee: RefImpl.make(contactFred),\n }),\n );\n const _taskDoodles2 = db.add(\n live(Task, {\n name: 'Implement dark mode',\n project: RefImpl.make(projectDoodles),\n assignee: RefImpl.make(contactJosiah),\n }),\n );\n\n const _orgDxos = db.add(\n live(Organization, {\n name: 'DXOS',\n employees: [RefImpl.make(contactRich), RefImpl.make(contactJosiah), RefImpl.make(contactDima)],\n projects: [RefImpl.make(projectEcho)],\n }),\n );\n const _orgBraneframe = db.add(\n live(Organization, {\n name: 'Braneframe',\n employees: [RefImpl.make(contactJosiah), RefImpl.make(contactRich)],\n projects: [RefImpl.make(projectComposer)],\n }),\n );\n};\n\n// TODO(burdon): Use schema/testing.\nexport const createTestData = (): MockDataSource => {\n const dataSource = new MockDataSource();\n\n const contactRich = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Rich',\n });\n const contactJosiah = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Josiah',\n });\n const contactDima = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Dima',\n });\n const contactFred = dataSource.add(Contact, {\n id: ObjectId.random(),\n name: 'Fred',\n });\n\n const projectComposer = dataSource.add(Project, {\n id: ObjectId.random(),\n name: 'Composer',\n });\n const projectEcho = dataSource.add(Project, {\n id: ObjectId.random(),\n name: 'ECHO',\n });\n const projectDoodles = dataSource.add(Project, {\n id: ObjectId.random(),\n name: 'Doodles',\n });\n\n const _taskComposer1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Optimize startup performance',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactJosiah),\n });\n const _taskComposer2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Create form builder',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactRich),\n });\n const _taskComposer3 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactJosiah),\n });\n const _taskComposer5 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement community plugin',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactFred),\n });\n const _taskComposer4 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: RefImpl.make(projectComposer),\n assignee: RefImpl.make(contactRich),\n });\n const _taskEcho1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement cypher query engine',\n project: RefImpl.make(projectEcho),\n assignee: RefImpl.make(contactDima),\n });\n const _taskEcho2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add schema editor',\n project: RefImpl.make(projectEcho),\n assignee: RefImpl.make(contactRich),\n });\n const _taskDoodles1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: RefImpl.make(projectDoodles),\n assignee: RefImpl.make(contactFred),\n });\n const _taskDoodles2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: RefImpl.make(projectDoodles),\n assignee: RefImpl.make(contactJosiah),\n });\n\n const _orgDxos = dataSource.add(Organization, {\n id: ObjectId.random(),\n name: 'DXOS',\n employees: [RefImpl.make(contactRich), RefImpl.make(contactJosiah), RefImpl.make(contactDima)],\n projects: [RefImpl.make(projectEcho)],\n });\n const _orgBraneframe = dataSource.add(Organization, {\n id: ObjectId.random(),\n name: 'Braneframe',\n employees: [RefImpl.make(contactJosiah), RefImpl.make(contactRich)],\n projects: [RefImpl.make(projectComposer)],\n });\n dataSource.computeGraph();\n\n return dataSource;\n};\n\nexport class MockDataSource implements DataSource {\n objects: Record<\n string,\n {\n schema: Schema.Schema.All;\n typeDxn: string;\n id: string;\n data: unknown;\n }\n > = {};\n\n schema: Record<\n string,\n {\n json: JsonSchemaType;\n instance: Schema.Schema.All;\n }\n > = {};\n\n nodes: Node[] = [];\n relationships: Relationship[] = [];\n\n async getNodes({ label }: { label?: string }) {\n return this.nodes.filter((node) => !label || node.label === label);\n }\n\n async getRelationships({ label }: { label?: string }) {\n return this.relationships.filter((relationship) => !label || relationship.label === label);\n }\n\n add<S extends Schema.Schema.All>(schema: S, data: Schema.Schema.Type<S>) {\n invariant(typeof data.id === 'string', 'Data must have an id');\n const jsonSchema = toJsonSchema(schema);\n if (!this.schema[jsonSchema.$id!]) {\n this.schema[jsonSchema.$id!] = {\n json: jsonSchema,\n instance: schema,\n };\n }\n\n const typenameDxn = jsonSchema.$id ?? raise(new Error('Schema must have $id'));\n\n this.objects[data.id] = {\n schema,\n id: data.id,\n typeDxn: typenameDxn,\n data,\n };\n\n return data;\n }\n\n computeGraph() {\n this.nodes = [];\n this.relationships = [];\n\n for (const object of Object.values(this.objects)) {\n this.nodes.push({\n kind: 'node',\n id: object.id,\n label: formatNodeLabel(object.typeDxn),\n properties: object.data as any,\n });\n }\n\n for (const object of Object.values(this.objects)) {\n const schema = this.schema[object.typeDxn].json;\n const typenameDxn = schema.$id ?? raise(new Error('Schema must have $id'));\n\n for (const [name, propSchema] of Object.entries(schema.properties!)) {\n if (propSchema.$id === JSON_SCHEMA_ECHO_REF_ID) {\n const label = formatInferredRelationshipLabel(typenameDxn, name);\n\n const source = this.nodes.find((node) => node.id === object.id);\n if (!source) {\n continue;\n }\n\n const { id: targetId } = (object.data as any)[name].target;\n\n const target = this.nodes.find((node) => node.id === targetId);\n if (!target) {\n continue;\n }\n\n this.relationships.push({\n kind: 'relationship',\n id: `${object.id}-${name}-${target.id}`,\n label,\n properties: {},\n source,\n target,\n });\n } else if (\n propSchema.type === 'array' &&\n propSchema.items &&\n typeof propSchema.items === 'object' &&\n '$id' in propSchema.items &&\n propSchema.items.$id === JSON_SCHEMA_ECHO_REF_ID\n ) {\n const label = formatInferredRelationshipLabel(typenameDxn, name);\n\n const source = this.nodes.find((node) => node.id === object.id);\n if (!source) {\n continue;\n }\n\n for (const { id: targetId } of (object.data as any)[name].map((x: Ref<any>) => x.target)) {\n const target = this.nodes.find((node) => node.id === targetId);\n if (!target) {\n continue;\n }\n\n this.relationships.push({\n kind: 'relationship',\n id: `${object.id}-${name}-${targetId}`,\n label,\n properties: {},\n source,\n target,\n });\n }\n }\n }\n }\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { EntityKind, TypeAnnotationId, Ref, ObjectId } from '@dxos/echo-schema';\n\n// TODO(burdon): Remove (use @dxos/schema DataType).\n\n/** @deprecated */\nexport const Contact = Schema.Struct({\n id: ObjectId,\n name: Schema.String.annotations({ description: 'The name of the person.' }),\n email: Schema.optional(Schema.String).annotations({ description: 'Email address.' }),\n})\n .pipe(Schema.mutable)\n .annotations({\n [TypeAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Contact',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Contact extends Schema.Schema.Type<typeof Contact> {}\n\n/** @deprecated */\nexport const Project = Schema.Struct({\n id: ObjectId,\n name: Schema.String.annotations({ description: 'The name of the project.' }),\n description: Schema.optional(Schema.String).annotations({ description: 'The description of the project.' }),\n})\n .pipe(Schema.mutable)\n .annotations({\n [TypeAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Project',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Project extends Schema.Schema.Type<typeof Project> {}\n\nexport const Task = Schema.Struct({\n id: ObjectId,\n name: Schema.String.annotations({ description: 'The name of the task.' }),\n description: Schema.optional(Schema.String).annotations({ description: 'The description of the task.' }),\n project: Ref(Project),\n assignee: Ref(Contact),\n})\n .pipe(Schema.mutable)\n .annotations({\n [TypeAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Task',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Task extends Schema.Schema.Type<typeof Task> {}\n\n/** @deprecated */\nexport const Organization = Schema.Struct({\n id: ObjectId,\n name: Schema.String.annotations({ description: 'The name of the organization.' }),\n projects: Schema.Array(Ref(Project)),\n employees: Schema.Array(Ref(Contact)),\n})\n .pipe(Schema.mutable)\n .annotations({\n [TypeAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Organization',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Organization extends Schema.Schema.Type<typeof Organization> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { inspect } from 'node:util';\n\nimport type { Message, MessageContentBlock } from '@dxos/artifact';\n\nexport class ConsolePrinter {\n printMessage = (message: Message) => {\n // eslint-disable-next-line no-console\n console.log(`${message.role.toUpperCase()}\\n`);\n for (const content of message.content) {\n this.printContentBlock(content);\n }\n };\n\n printContentBlock = (content: MessageContentBlock) => {\n switch (content.type) {\n case 'text':\n // eslint-disable-next-line no-console\n console.log(content.text);\n break;\n case 'tool_use':\n // eslint-disable-next-line no-console\n console.log(`⚙️ [Tool Use] ${content.name} ${inspect(content.input, { depth: null, colors: true })}`);\n break;\n case 'tool_result': {\n let data: any;\n try {\n data = JSON.parse(content.content);\n } catch {\n data = content.content;\n }\n // eslint-disable-next-line no-console\n console.log(`⚙️ [Tool Result] ${content.toolUseId} ${inspect(data, { depth: null, colors: true })}`);\n break;\n }\n }\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_echo_schema", "import_effect", "AI_SERVICE_ENDPOINT", "LOCAL", "REMOTE", "createLogger", "stream", "filter", "onImage", "images", "currentText", "event", "printContentBlock", "content", "type", "process", "stdout", "write", "text", "name", "id", "source", "mediaType", "onTextBlockPrinted", "imageMatch", "match", "description", "message", "role", "toUpperCase", "delta", "partial_json", "block", "JSON", "stringify", "input", "isError", "createTestOllamaClient", "options", "OllamaClient", "tools", "overrides", "model", "DEFAULT_OLLAMA_MODEL", "temperature", "createCypherTool", "dataSource", "schemaTypes", "defineTool", "length", "createSystemPrompt", "schema", "Schema", "Struct", "query", "String", "annotations", "execute", "log", "results", "executeQuery", "ToolResult", "Success", "e", "catch", "Error", "trim", "formatJsonSchemaForLLM", "map", "toJsonSchema", "seedTestData", "db", "contactRich", "add", "live", "Contact", "contactJosiah", "contactDima", "contactFred", "projectComposer", "Project", "projectEcho", "projectDoodles", "_taskComposer1", "Task", "project", "RefImpl", "make", "assignee", "_taskComposer2", "_taskComposer3", "_taskComposer5", "_taskComposer4", "_taskEcho1", "_taskEcho2", "_taskDoodles1", "_taskDoodles2", "_orgDxos", "Organization", "employees", "projects", "_orgBraneframe", "createTestData", "MockDataSource", "ObjectId", "random", "computeGraph", "objects", "nodes", "relationships", "getNodes", "label", "node", "getRelationships", "relationship", "data", "invariant", "jsonSchema", "$id", "json", "instance", "typenameDxn", "raise", "typeDxn", "object", "Object", "values", "push", "kind", "formatNodeLabel", "properties", "propSchema", "entries", "JSON_SCHEMA_ECHO_REF_ID", "formatInferredRelationshipLabel", "find", "targetId", "target", "items", "x", "email", "optional", "pipe", "mutable", "TypeAnnotationId", "EntityKind", "typename", "version", "Ref", "Array", "ConsolePrinter", "printMessage", "console", "inspect", "depth", "colors", "parse", "toolUseId"]
7
7
  }