@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.
- package/dist/lib/browser/{chunk-DEIGOD4U.mjs → chunk-YSYP7S4W.mjs} +706 -242
- package/dist/lib/browser/chunk-YSYP7S4W.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +4 -443
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +64 -27
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/node/{chunk-7VH7NMIM.cjs → chunk-FTIDW4BA.cjs} +716 -259
- package/dist/lib/node/chunk-FTIDW4BA.cjs.map +7 -0
- package/dist/lib/node/index.cjs +34 -470
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +53 -18
- package/dist/lib/node/testing/index.cjs.map +4 -4
- package/dist/lib/node-esm/{chunk-7JI4MDGL.mjs → chunk-GCJNPQDJ.mjs} +706 -242
- package/dist/lib/node-esm/chunk-GCJNPQDJ.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +4 -443
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +64 -27
- package/dist/lib/node-esm/testing/index.mjs.map +4 -4
- package/dist/types/src/ai-service/parser.d.ts.map +1 -1
- package/dist/types/src/ai-service/stream.d.ts.map +1 -1
- package/dist/types/src/ai-service/testing/test-stream.d.ts.map +1 -1
- package/dist/types/src/ai-service/types.d.ts +130 -130
- package/dist/types/src/ai-service/types.d.ts.map +1 -1
- package/dist/types/src/ai-service/util/sse.d.ts.map +1 -1
- package/dist/types/src/{conversation → experimental/conversation}/conversation.d.ts +2 -18
- package/dist/types/src/experimental/conversation/conversation.d.ts.map +1 -0
- package/dist/types/src/experimental/conversation/conversation.test.d.ts.map +1 -0
- package/dist/types/src/experimental/conversation/index.d.ts.map +1 -0
- package/dist/types/src/{conversation → experimental/conversation}/types.d.ts +9 -9
- package/dist/types/src/experimental/conversation/types.d.ts.map +1 -0
- package/dist/types/src/experimental/cypher/ast.d.ts.map +1 -0
- package/dist/types/src/experimental/cypher/combinators.d.ts.map +1 -0
- package/dist/types/src/experimental/cypher/combinators.test.d.ts.map +1 -0
- package/dist/types/src/experimental/cypher/echo-data-source.d.ts.map +1 -0
- package/dist/types/src/experimental/cypher/execution-plan.d.ts.map +1 -0
- package/dist/types/src/experimental/cypher/execution-plan.test.d.ts.map +1 -0
- package/dist/types/src/experimental/cypher/index.d.ts.map +1 -0
- package/dist/types/src/experimental/cypher/parjs.d.ts.map +1 -0
- package/dist/types/src/experimental/cypher/parser.d.ts.map +1 -0
- package/dist/types/src/experimental/cypher/query-executor.d.ts.map +1 -0
- package/dist/types/src/experimental/cypher/query-executor.test.d.ts.map +1 -0
- package/dist/types/src/experimental/cypher/schema.d.ts.map +1 -0
- package/dist/types/src/experimental/cypher/schema.test.d.ts.map +1 -0
- package/dist/types/src/experimental/index.d.ts +3 -0
- package/dist/types/src/experimental/index.d.ts.map +1 -0
- package/dist/types/src/experimental/ner/ner.test.d.ts +2 -0
- package/dist/types/src/experimental/ner/ner.test.d.ts.map +1 -0
- package/dist/types/src/experimental/research/exa.d.ts +6 -0
- package/dist/types/src/experimental/research/exa.d.ts.map +1 -0
- package/dist/types/src/experimental/research/research.test.d.ts +2 -0
- package/dist/types/src/experimental/research/research.test.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +1 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/session/index.d.ts +1 -0
- package/dist/types/src/session/index.d.ts.map +1 -1
- package/dist/types/src/session/session.d.ts +4 -3
- package/dist/types/src/session/session.d.ts.map +1 -1
- package/dist/types/src/session/tools.d.ts +18 -0
- package/dist/types/src/session/tools.d.ts.map +1 -0
- package/dist/types/src/session/version-pin.d.ts +5 -0
- package/dist/types/src/session/version-pin.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +1 -0
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/logger.d.ts +1 -1
- package/dist/types/src/testing/logger.d.ts.map +1 -1
- package/dist/types/src/testing/ollama.d.ts.map +1 -1
- package/dist/types/src/testing/printer.d.ts +6 -0
- package/dist/types/src/testing/printer.d.ts.map +1 -0
- package/dist/types/src/testing/query-promts.d.ts +4 -4
- package/dist/types/src/testing/query-promts.d.ts.map +1 -1
- package/dist/types/src/testing/test-data.d.ts +5 -5
- package/dist/types/src/testing/test-data.d.ts.map +1 -1
- package/dist/types/src/testing/test-schema.d.ts +25 -23
- package/dist/types/src/testing/test-schema.d.ts.map +1 -1
- package/dist/types/src/util/trim.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +19 -13
- package/src/ai-service/client.test.ts +5 -5
- package/src/ai-service/ollama-client.ts +8 -8
- package/src/ai-service/types.ts +14 -14
- package/src/bin/chat.ts +1 -1
- package/src/{conversation → experimental/conversation}/conversation.test.ts +5 -5
- package/src/{conversation → experimental/conversation}/conversation.ts +3 -112
- package/src/{conversation → experimental/conversation}/types.ts +10 -10
- package/src/{cypher → experimental/cypher}/echo-data-source.ts +7 -5
- package/src/{cypher → experimental/cypher}/query-executor.test.ts +1 -1
- package/src/{cypher → experimental/cypher}/schema.test.ts +1 -1
- package/src/{cypher → experimental/cypher}/schema.ts +1 -1
- package/src/experimental/index.ts +6 -0
- package/src/experimental/ner/ner.test.ts +163 -0
- package/src/experimental/research/exa.ts +38 -0
- package/src/experimental/research/instructions.tpl +64 -0
- package/src/experimental/research/research.test.ts +263 -0
- package/src/index.ts +3 -2
- package/src/session/index.ts +1 -0
- package/src/session/session.test.ts +28 -57
- package/src/session/session.ts +25 -15
- package/src/session/tools.ts +117 -0
- package/src/session/version-pin.ts +6 -0
- package/src/testing/artifacts.test.ts +22 -22
- package/src/testing/index.ts +1 -0
- package/src/testing/logger.ts +1 -1
- package/src/testing/printer.ts +41 -0
- package/src/testing/query-promts.ts +6 -6
- package/src/testing/query.test.ts +1 -2
- package/src/testing/test-data.ts +5 -5
- package/src/testing/test-schema.ts +27 -28
- package/src/typedefs.d.ts +8 -0
- package/dist/lib/browser/chunk-DEIGOD4U.mjs.map +0 -7
- package/dist/lib/node/chunk-7VH7NMIM.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-7JI4MDGL.mjs.map +0 -7
- package/dist/types/src/conversation/conversation.d.ts.map +0 -1
- package/dist/types/src/conversation/conversation.test.d.ts.map +0 -1
- package/dist/types/src/conversation/index.d.ts.map +0 -1
- package/dist/types/src/conversation/types.d.ts.map +0 -1
- package/dist/types/src/cypher/ast.d.ts.map +0 -1
- package/dist/types/src/cypher/combinators.d.ts.map +0 -1
- package/dist/types/src/cypher/combinators.test.d.ts.map +0 -1
- package/dist/types/src/cypher/echo-data-source.d.ts.map +0 -1
- package/dist/types/src/cypher/execution-plan.d.ts.map +0 -1
- package/dist/types/src/cypher/execution-plan.test.d.ts.map +0 -1
- package/dist/types/src/cypher/index.d.ts.map +0 -1
- package/dist/types/src/cypher/parjs.d.ts.map +0 -1
- package/dist/types/src/cypher/parser.d.ts.map +0 -1
- package/dist/types/src/cypher/query-executor.d.ts.map +0 -1
- package/dist/types/src/cypher/query-executor.test.d.ts.map +0 -1
- package/dist/types/src/cypher/schema.d.ts.map +0 -1
- package/dist/types/src/cypher/schema.test.d.ts.map +0 -1
- /package/dist/types/src/{conversation → experimental/conversation}/conversation.test.d.ts +0 -0
- /package/dist/types/src/{conversation → experimental/conversation}/index.d.ts +0 -0
- /package/dist/types/src/{cypher → experimental/cypher}/ast.d.ts +0 -0
- /package/dist/types/src/{cypher → experimental/cypher}/combinators.d.ts +0 -0
- /package/dist/types/src/{cypher → experimental/cypher}/combinators.test.d.ts +0 -0
- /package/dist/types/src/{cypher → experimental/cypher}/echo-data-source.d.ts +0 -0
- /package/dist/types/src/{cypher → experimental/cypher}/execution-plan.d.ts +0 -0
- /package/dist/types/src/{cypher → experimental/cypher}/execution-plan.test.d.ts +0 -0
- /package/dist/types/src/{cypher → experimental/cypher}/index.d.ts +0 -0
- /package/dist/types/src/{cypher → experimental/cypher}/parjs.d.ts +0 -0
- /package/dist/types/src/{cypher → experimental/cypher}/parser.d.ts +0 -0
- /package/dist/types/src/{cypher → experimental/cypher}/query-executor.d.ts +0 -0
- /package/dist/types/src/{cypher → experimental/cypher}/query-executor.test.d.ts +0 -0
- /package/dist/types/src/{cypher → experimental/cypher}/schema.d.ts +0 -0
- /package/dist/types/src/{cypher → experimental/cypher}/schema.test.d.ts +0 -0
- /package/src/{conversation → experimental/conversation}/index.ts +0 -0
- /package/src/{cypher → experimental/cypher}/ast.ts +0 -0
- /package/src/{cypher → experimental/cypher}/combinators.test.ts +0 -0
- /package/src/{cypher → experimental/cypher}/combinators.ts +0 -0
- /package/src/{cypher → experimental/cypher}/execution-plan.test.ts +0 -0
- /package/src/{cypher → experimental/cypher}/execution-plan.ts +0 -0
- /package/src/{cypher → experimental/cypher}/index.ts +0 -0
- /package/src/{cypher → experimental/cypher}/parjs-shims.d.ts +0 -0
- /package/src/{cypher → experimental/cypher}/parjs.ts +0 -0
- /package/src/{cypher → experimental/cypher}/parser.ts +0 -0
- /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-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":28615},"packages/experimental/assistant/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node-esm/chunk-7JI4MDGL.mjs","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":17190},"packages/experimental/assistant/dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":34475},"packages/experimental/assistant/dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node-esm/chunk-7JI4MDGL.mjs","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":18615},"packages/experimental/assistant/dist/lib/node-esm/chunk-7JI4MDGL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":130003},"packages/experimental/assistant/dist/lib/node-esm/chunk-7JI4MDGL.mjs":{"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":68931}}}
|
|
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-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/experimental/assistant/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node-esm/chunk-GCJNPQDJ.mjs","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":1501},"packages/experimental/assistant/dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":36618},"packages/experimental/assistant/dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node-esm/chunk-GCJNPQDJ.mjs","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":19723},"packages/experimental/assistant/dist/lib/node-esm/chunk-GCJNPQDJ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":160325},"packages/experimental/assistant/dist/lib/node-esm/chunk-GCJNPQDJ.mjs":{"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":85903}}}
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
formatJsonSchemaForLLM,
|
|
8
8
|
formatNodeLabel,
|
|
9
9
|
trim
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-GCJNPQDJ.mjs";
|
|
11
11
|
|
|
12
12
|
// packages/experimental/assistant/src/testing/defs.ts
|
|
13
13
|
var AI_SERVICE_ENDPOINT = {
|
|
@@ -144,7 +144,7 @@ var createTestOllamaClient = (options) => {
|
|
|
144
144
|
};
|
|
145
145
|
|
|
146
146
|
// packages/experimental/assistant/src/testing/query-promts.ts
|
|
147
|
-
import { Schema
|
|
147
|
+
import { Schema } from "effect";
|
|
148
148
|
import { defineTool, ToolResult } from "@dxos/artifact";
|
|
149
149
|
import { toJsonSchema } from "@dxos/echo-schema";
|
|
150
150
|
import { log } from "@dxos/log";
|
|
@@ -154,8 +154,8 @@ var createCypherTool = (dataSource, schemaTypes = []) => defineTool("dxos.org/ec
|
|
|
154
154
|
description: "Query the ECHO graph database in cypher query language. Returns data from the database." + (schemaTypes.length > 0 ? `
|
|
155
155
|
|
|
156
156
|
${createSystemPrompt(schemaTypes)}` : ""),
|
|
157
|
-
schema:
|
|
158
|
-
query:
|
|
157
|
+
schema: Schema.Struct({
|
|
158
|
+
query: Schema.String.annotations({
|
|
159
159
|
description: `
|
|
160
160
|
A valid cypher query string to execute.
|
|
161
161
|
Query must have one MATCH clause.
|
|
@@ -534,20 +534,17 @@ var MockDataSource = class {
|
|
|
534
534
|
};
|
|
535
535
|
|
|
536
536
|
// packages/experimental/assistant/src/testing/test-schema.ts
|
|
537
|
-
import { Schema as
|
|
538
|
-
import { EntityKind, TypeAnnotationId, Ref } from "@dxos/echo-schema";
|
|
539
|
-
var
|
|
540
|
-
description: "The unique object identifier."
|
|
541
|
-
});
|
|
542
|
-
var Contact = S2.Struct({
|
|
537
|
+
import { Schema as Schema2 } from "effect";
|
|
538
|
+
import { EntityKind, TypeAnnotationId, Ref, ObjectId as ObjectId2 } from "@dxos/echo-schema";
|
|
539
|
+
var Contact = Schema2.Struct({
|
|
543
540
|
id: ObjectId2,
|
|
544
|
-
name:
|
|
541
|
+
name: Schema2.String.annotations({
|
|
545
542
|
description: "The name of the person."
|
|
546
543
|
}),
|
|
547
|
-
email:
|
|
544
|
+
email: Schema2.optional(Schema2.String).annotations({
|
|
548
545
|
description: "Email address."
|
|
549
546
|
})
|
|
550
|
-
}).pipe(
|
|
547
|
+
}).pipe(Schema2.mutable).annotations({
|
|
551
548
|
[TypeAnnotationId]: {
|
|
552
549
|
kind: EntityKind.Object,
|
|
553
550
|
typename: "example.com/type/Contact",
|
|
@@ -555,15 +552,15 @@ var Contact = S2.Struct({
|
|
|
555
552
|
},
|
|
556
553
|
description: "Contact information."
|
|
557
554
|
});
|
|
558
|
-
var Project =
|
|
555
|
+
var Project = Schema2.Struct({
|
|
559
556
|
id: ObjectId2,
|
|
560
|
-
name:
|
|
557
|
+
name: Schema2.String.annotations({
|
|
561
558
|
description: "The name of the project."
|
|
562
559
|
}),
|
|
563
|
-
description:
|
|
560
|
+
description: Schema2.optional(Schema2.String).annotations({
|
|
564
561
|
description: "The description of the project."
|
|
565
562
|
})
|
|
566
|
-
}).pipe(
|
|
563
|
+
}).pipe(Schema2.mutable).annotations({
|
|
567
564
|
[TypeAnnotationId]: {
|
|
568
565
|
kind: EntityKind.Object,
|
|
569
566
|
typename: "example.com/type/Project",
|
|
@@ -571,17 +568,17 @@ var Project = S2.Struct({
|
|
|
571
568
|
},
|
|
572
569
|
description: "Contact information."
|
|
573
570
|
});
|
|
574
|
-
var Task =
|
|
571
|
+
var Task = Schema2.Struct({
|
|
575
572
|
id: ObjectId2,
|
|
576
|
-
name:
|
|
573
|
+
name: Schema2.String.annotations({
|
|
577
574
|
description: "The name of the task."
|
|
578
575
|
}),
|
|
579
|
-
description:
|
|
576
|
+
description: Schema2.optional(Schema2.String).annotations({
|
|
580
577
|
description: "The description of the task."
|
|
581
578
|
}),
|
|
582
579
|
project: Ref(Project),
|
|
583
580
|
assignee: Ref(Contact)
|
|
584
|
-
}).pipe(
|
|
581
|
+
}).pipe(Schema2.mutable).annotations({
|
|
585
582
|
[TypeAnnotationId]: {
|
|
586
583
|
kind: EntityKind.Object,
|
|
587
584
|
typename: "example.com/type/Task",
|
|
@@ -589,14 +586,14 @@ var Task = S2.Struct({
|
|
|
589
586
|
},
|
|
590
587
|
description: "Contact information."
|
|
591
588
|
});
|
|
592
|
-
var Organization =
|
|
589
|
+
var Organization = Schema2.Struct({
|
|
593
590
|
id: ObjectId2,
|
|
594
|
-
name:
|
|
591
|
+
name: Schema2.String.annotations({
|
|
595
592
|
description: "The name of the organization."
|
|
596
593
|
}),
|
|
597
|
-
projects:
|
|
598
|
-
employees:
|
|
599
|
-
}).pipe(
|
|
594
|
+
projects: Schema2.Array(Ref(Project)),
|
|
595
|
+
employees: Schema2.Array(Ref(Contact))
|
|
596
|
+
}).pipe(Schema2.mutable).annotations({
|
|
600
597
|
[TypeAnnotationId]: {
|
|
601
598
|
kind: EntityKind.Object,
|
|
602
599
|
typename: "example.com/type/Organization",
|
|
@@ -604,11 +601,51 @@ var Organization = S2.Struct({
|
|
|
604
601
|
},
|
|
605
602
|
description: "Contact information."
|
|
606
603
|
});
|
|
604
|
+
|
|
605
|
+
// packages/experimental/assistant/src/testing/printer.ts
|
|
606
|
+
import { inspect } from "node:util";
|
|
607
|
+
var ConsolePrinter = class {
|
|
608
|
+
constructor() {
|
|
609
|
+
this.printMessage = (message) => {
|
|
610
|
+
console.log(`${message.role.toUpperCase()}
|
|
611
|
+
`);
|
|
612
|
+
for (const content of message.content) {
|
|
613
|
+
this.printContentBlock(content);
|
|
614
|
+
}
|
|
615
|
+
};
|
|
616
|
+
this.printContentBlock = (content) => {
|
|
617
|
+
switch (content.type) {
|
|
618
|
+
case "text":
|
|
619
|
+
console.log(content.text);
|
|
620
|
+
break;
|
|
621
|
+
case "tool_use":
|
|
622
|
+
console.log(`\u2699\uFE0F [Tool Use] ${content.name} ${inspect(content.input, {
|
|
623
|
+
depth: null,
|
|
624
|
+
colors: true
|
|
625
|
+
})}`);
|
|
626
|
+
break;
|
|
627
|
+
case "tool_result": {
|
|
628
|
+
let data;
|
|
629
|
+
try {
|
|
630
|
+
data = JSON.parse(content.content);
|
|
631
|
+
} catch {
|
|
632
|
+
data = content.content;
|
|
633
|
+
}
|
|
634
|
+
console.log(`\u2699\uFE0F [Tool Result] ${content.toolUseId} ${inspect(data, {
|
|
635
|
+
depth: null,
|
|
636
|
+
colors: true
|
|
637
|
+
})}`);
|
|
638
|
+
break;
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
};
|
|
642
|
+
}
|
|
643
|
+
};
|
|
607
644
|
export {
|
|
608
645
|
AI_SERVICE_ENDPOINT,
|
|
646
|
+
ConsolePrinter,
|
|
609
647
|
Contact,
|
|
610
648
|
MockDataSource,
|
|
611
|
-
ObjectId2 as ObjectId,
|
|
612
649
|
Organization,
|
|
613
650
|
Project,
|
|
614
651
|
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": ["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", "Schema", "
|
|
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": ["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", "Schema", "defineTool", "ToolResult", "toJsonSchema", "log", "createCypherTool", "dataSource", "schemaTypes", "defineTool", "name", "description", "length", "createSystemPrompt", "schema", "Schema", "Struct", "query", "String", "annotations", "execute", "log", "results", "executeQuery", "ToolResult", "Success", "e", "catch", "Error", "message", "trim", "formatJsonSchemaForLLM", "map", "toJsonSchema", "raise", "JSON_SCHEMA_ECHO_REF_ID", "ObjectId", "toJsonSchema", "Ref", "RefImpl", "invariant", "live", "seedTestData", "db", "contactRich", "add", "live", "Contact", "name", "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", "dataSource", "MockDataSource", "id", "ObjectId", "random", "computeGraph", "objects", "schema", "nodes", "relationships", "getNodes", "label", "filter", "node", "getRelationships", "relationship", "data", "invariant", "jsonSchema", "toJsonSchema", "$id", "json", "instance", "typenameDxn", "raise", "Error", "typeDxn", "object", "Object", "values", "push", "kind", "formatNodeLabel", "properties", "propSchema", "entries", "JSON_SCHEMA_ECHO_REF_ID", "formatInferredRelationshipLabel", "source", "find", "targetId", "target", "type", "items", "map", "x", "Schema", "EntityKind", "TypeAnnotationId", "Ref", "ObjectId", "Contact", "Schema", "Struct", "id", "ObjectId", "name", "String", "annotations", "description", "email", "optional", "pipe", "mutable", "TypeAnnotationId", "kind", "EntityKind", "Object", "typename", "version", "Project", "Task", "project", "Ref", "assignee", "Organization", "projects", "Array", "employees", "inspect", "ConsolePrinter", "printMessage", "message", "console", "log", "role", "toUpperCase", "content", "printContentBlock", "type", "text", "name", "inspect", "input", "depth", "colors", "data", "JSON", "parse", "toolUseId"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/parser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAMpC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;IACI,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAwB;IAEtC;;OAEG;IACI,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoC;IAEhD;;OAEG;IACI,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoC;IAE1C,WAAW,+BAAsC;IAExD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,CAAsB;IAEvC,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAqM1D;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/parser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAMpC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;IACI,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAwB;IAEtC;;OAEG;IACI,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoC;IAEhD;;OAEG;IACI,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoC;IAE1C,WAAW,+BAAsC;IAExD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,CAAsB;IAEvC,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAqM1D;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,cAAc,mBAAmB,EACjC,aAAa,WAAW,KACvB,mBAAmB,GAAG,SAkGxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/stream.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGrD;;GAEG;AACH,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/stream.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGrD;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,UAAU,QAAQ,EAAE,4BAAkC,KAAG,gBAuC/F,CAAC;AAEF;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAYzD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAZ/B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IAEvC;;OAEG;IACH,OAAO,CAAC,SAAS,CAAC,CAAmD;gBAGlD,WAAW,EAAE,eAAe,EAC5B,YAAY,EAAE,MAAM,qBAAqB,CAAC,qBAAqB,CAAC;IAGnF;;OAEG;IACH,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,qBAAqB,CAAC;IAI9D;;OAEG;IACH,KAAK;IAIL;;OAEG;IACG,QAAQ;IAId;;OAEG;IACH,OAAO,CAAC,eAAe;CAkBxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-stream.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/testing/test-stream.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"test-stream.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/testing/test-stream.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EACzB,cAAsB;IAAE,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;CAAO,KAC5D,cA8EF,CAAC"}
|