@dxos/assistant 0.7.5-labs.071a3e2 → 0.7.5-labs.401163d
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/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs.map +2 -2
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs.map +2 -2
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs.map +2 -2
- package/dist/types/src/testing/defs.d.ts.map +1 -1
- package/package.json +14 -14
- package/src/bin/chat.ts +2 -1
- package/src/testing/defs.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"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":10780,"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/client.ts":{"bytes":9397,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/invariant","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/transform.ts":{"bytes":9707,"imports":[{"path":"parsimmon","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytes":40271,"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/types.ts":{"bytes":6740,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/index.ts":{"bytes":854,"imports":[{"path":"packages/experimental/assistant/src/ai-service/client.ts","kind":"import-statement","original":"./client"},{"path":"packages/experimental/assistant/src/ai-service/parser.ts","kind":"import-statement","original":"./parser"},{"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":14379,"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/live-object","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/conversation/conversation.ts":{"bytes":25707,"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/index.ts":{"bytes":695,"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"}],"format":"esm"},"packages/experimental/assistant/src/testing/defs.ts":{"bytes":848,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/logger.ts":{"bytes":14680,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/query-promts.ts":{"bytes":8754,"imports":[{"path":"@effect/schema","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":35152,"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":8446,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/testing/index.ts":{"bytes":877,"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/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/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":59356},"packages/experimental/assistant/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/browser/chunk-AXUUNA7O.mjs","kind":"import-statement"},{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/async","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":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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}],"exports":["AIServiceClientImpl","EchoDataSource","GenerateRequest","GenerationStream","LLMModel","MixedStreamParser","StreamTransform","ToolTypes","createArtifactElement","createGenerationStream","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools"],"entryPoint":"packages/experimental/assistant/src/index.ts","inputs":{"packages/experimental/assistant/src/ai-service/client.ts":{"bytesInOutput":2089},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytesInOutput":2580},"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/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytesInOutput":10678},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytesInOutput":1994},"packages/experimental/assistant/src/ai-service/types.ts":{"bytesInOutput":1262},"packages/experimental/assistant/src/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/conversation/conversation.ts":{"bytesInOutput":7334},"packages/experimental/assistant/src/conversation/index.ts":{"bytesInOutput":0}},"bytes":33331},"packages/experimental/assistant/dist/lib/browser/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":32940},"packages/experimental/assistant/dist/lib/browser/testing/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/browser/chunk-AXUUNA7O.mjs","kind":"import-statement"},{"path":"@effect/schema","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/schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["AI_SERVICE_ENDPOINT","Contact","MockDataSource","ObjectId","Org","Project","Task","createCypherTool","createLogger","createSystemPrompt","createTestData","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/query-promts.ts":{"bytesInOutput":2720},"packages/experimental/assistant/src/testing/test-data.ts":{"bytesInOutput":9031},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytesInOutput":1915}},"bytes":17874},"packages/experimental/assistant/dist/lib/browser/chunk-AXUUNA7O.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":41496},"packages/experimental/assistant/dist/lib/browser/chunk-AXUUNA7O.mjs":{"imports":[{"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/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["EchoDataSource","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","parseCypherQuery","trim"],"inputs":{"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":5010},"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":3981},"packages/experimental/assistant/src/cypher/index.ts":{"bytesInOutput":0}},"bytes":20360}}}
|
|
1
|
+
{"inputs":{"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":10780,"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/client.ts":{"bytes":9397,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/invariant","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/transform.ts":{"bytes":9707,"imports":[{"path":"parsimmon","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytes":40271,"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/types.ts":{"bytes":6740,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/index.ts":{"bytes":854,"imports":[{"path":"packages/experimental/assistant/src/ai-service/client.ts","kind":"import-statement","original":"./client"},{"path":"packages/experimental/assistant/src/ai-service/parser.ts","kind":"import-statement","original":"./parser"},{"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":14379,"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/live-object","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/conversation/conversation.ts":{"bytes":25707,"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/index.ts":{"bytes":695,"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"}],"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/query-promts.ts":{"bytes":8754,"imports":[{"path":"@effect/schema","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":35152,"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":8446,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/testing/index.ts":{"bytes":877,"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/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/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":59356},"packages/experimental/assistant/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/browser/chunk-AXUUNA7O.mjs","kind":"import-statement"},{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/async","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":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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}],"exports":["AIServiceClientImpl","EchoDataSource","GenerateRequest","GenerationStream","LLMModel","MixedStreamParser","StreamTransform","ToolTypes","createArtifactElement","createGenerationStream","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools"],"entryPoint":"packages/experimental/assistant/src/index.ts","inputs":{"packages/experimental/assistant/src/ai-service/client.ts":{"bytesInOutput":2089},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytesInOutput":2580},"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/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytesInOutput":10678},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytesInOutput":1994},"packages/experimental/assistant/src/ai-service/types.ts":{"bytesInOutput":1262},"packages/experimental/assistant/src/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/conversation/conversation.ts":{"bytesInOutput":7334},"packages/experimental/assistant/src/conversation/index.ts":{"bytesInOutput":0}},"bytes":33331},"packages/experimental/assistant/dist/lib/browser/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33005},"packages/experimental/assistant/dist/lib/browser/testing/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/browser/chunk-AXUUNA7O.mjs","kind":"import-statement"},{"path":"@effect/schema","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/schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["AI_SERVICE_ENDPOINT","Contact","MockDataSource","ObjectId","Org","Project","Task","createCypherTool","createLogger","createSystemPrompt","createTestData","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/query-promts.ts":{"bytesInOutput":2720},"packages/experimental/assistant/src/testing/test-data.ts":{"bytesInOutput":9031},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytesInOutput":1915}},"bytes":17874},"packages/experimental/assistant/dist/lib/browser/chunk-AXUUNA7O.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":41496},"packages/experimental/assistant/dist/lib/browser/chunk-AXUUNA7O.mjs":{"imports":[{"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/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["EchoDataSource","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","parseCypherQuery","trim"],"inputs":{"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":5010},"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":3981},"packages/experimental/assistant/src/cypher/index.ts":{"bytesInOutput":0}},"bytes":20360}}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/testing/defs.ts", "../../../../src/testing/logger.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\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 2024 DXOS.org\n//\n\nimport { Schema as S } from '@effect/schema';\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({\n name: 'graphQuery',\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/schema';\n\nimport { raise } from '@dxos/debug';\nimport type { EchoDatabase } from '@dxos/echo-db';\nimport { JSON_SCHEMA_ECHO_REF_ID, ObjectId, toJsonSchema, type JsonSchemaType, type Ref } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { create, makeRef } from '@dxos/live-object';\n\nimport {\n type DataSource,\n type Node,\n type Relationship,\n formatInferredRelationshipLabel,\n formatNodeLabel,\n} from '../cypher';\nimport { Contact, Org, Project, Task } from '../testing';\n\nexport const seedTestData = (db: EchoDatabase) => {\n const contactRich = db.add(\n create(Contact, {\n name: 'Rich',\n }),\n );\n const contactJosiah = db.add(\n create(Contact, {\n name: 'Josiah',\n }),\n );\n const contactDima = db.add(\n create(Contact, {\n name: 'Dima',\n }),\n );\n const contactFred = db.add(\n create(Contact, {\n name: 'Fred',\n }),\n );\n\n const projectComposer = db.add(\n create(Project, {\n name: 'Composer',\n }),\n );\n const projectEcho = db.add(\n create(Project, {\n name: 'ECHO',\n }),\n );\n const projectDoodles = db.add(\n create(Project, {\n name: 'Doodles',\n }),\n );\n\n const _taskComposer1 = db.add(\n create(Task, {\n name: 'Optimize startup performance',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer2 = db.add(\n create(Task, {\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskComposer3 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer5 = db.add(\n create(Task, {\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskComposer4 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskEcho1 = db.add(\n create(Task, {\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n }),\n );\n const _taskEcho2 = db.add(\n create(Task, {\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskDoodles1 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskDoodles2 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n }),\n );\n\n const _orgDxos = db.add(\n create(Org, {\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n }),\n );\n const _orgBraneframe = db.add(\n create(Org, {\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(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: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskComposer3 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer5 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n });\n const _taskComposer4 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskEcho1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n });\n const _taskEcho2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n });\n const _taskDoodles1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n });\n const _taskDoodles2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n });\n\n const _orgDxos = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n });\n const _orgBraneframe = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(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/schema';\n\nimport { EntityKind, ObjectAnnotationId, 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 [ObjectAnnotationId]: {\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 [ObjectAnnotationId]: {\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 [ObjectAnnotationId]: {\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 Org = 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 [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Org',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Org extends S.Schema.Type<typeof Org> {}\n"],
|
|
5
|
-
"mappings": "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",
|
|
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 2024 DXOS.org\n//\n\nimport { Schema as S } from '@effect/schema';\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({\n name: 'graphQuery',\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/schema';\n\nimport { raise } from '@dxos/debug';\nimport type { EchoDatabase } from '@dxos/echo-db';\nimport { JSON_SCHEMA_ECHO_REF_ID, ObjectId, toJsonSchema, type JsonSchemaType, type Ref } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { create, makeRef } from '@dxos/live-object';\n\nimport {\n type DataSource,\n type Node,\n type Relationship,\n formatInferredRelationshipLabel,\n formatNodeLabel,\n} from '../cypher';\nimport { Contact, Org, Project, Task } from '../testing';\n\nexport const seedTestData = (db: EchoDatabase) => {\n const contactRich = db.add(\n create(Contact, {\n name: 'Rich',\n }),\n );\n const contactJosiah = db.add(\n create(Contact, {\n name: 'Josiah',\n }),\n );\n const contactDima = db.add(\n create(Contact, {\n name: 'Dima',\n }),\n );\n const contactFred = db.add(\n create(Contact, {\n name: 'Fred',\n }),\n );\n\n const projectComposer = db.add(\n create(Project, {\n name: 'Composer',\n }),\n );\n const projectEcho = db.add(\n create(Project, {\n name: 'ECHO',\n }),\n );\n const projectDoodles = db.add(\n create(Project, {\n name: 'Doodles',\n }),\n );\n\n const _taskComposer1 = db.add(\n create(Task, {\n name: 'Optimize startup performance',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer2 = db.add(\n create(Task, {\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskComposer3 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer5 = db.add(\n create(Task, {\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskComposer4 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskEcho1 = db.add(\n create(Task, {\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n }),\n );\n const _taskEcho2 = db.add(\n create(Task, {\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskDoodles1 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskDoodles2 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n }),\n );\n\n const _orgDxos = db.add(\n create(Org, {\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n }),\n );\n const _orgBraneframe = db.add(\n create(Org, {\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(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: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskComposer3 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer5 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n });\n const _taskComposer4 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskEcho1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n });\n const _taskEcho2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n });\n const _taskDoodles1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n });\n const _taskDoodles2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n });\n\n const _orgDxos = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n });\n const _orgBraneframe = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(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/schema';\n\nimport { EntityKind, ObjectAnnotationId, 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 [ObjectAnnotationId]: {\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 [ObjectAnnotationId]: {\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 [ObjectAnnotationId]: {\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 Org = 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 [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Org',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Org extends S.Schema.Type<typeof Org> {}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
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", "Schema", "S", "defineTool", "ToolResult", "toJsonSchema", "log", "createCypherTool", "dataSource", "schemaTypes", "defineTool", "name", "description", "length", "createSystemPrompt", "schema", "S", "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", "invariant", "create", "makeRef", "seedTestData", "db", "contactRich", "add", "create", "Contact", "name", "contactJosiah", "contactDima", "contactFred", "projectComposer", "Project", "projectEcho", "projectDoodles", "_taskComposer1", "Task", "project", "makeRef", "assignee", "_taskComposer2", "_taskComposer3", "_taskComposer5", "_taskComposer4", "_taskEcho1", "_taskEcho2", "_taskDoodles1", "_taskDoodles2", "_orgDxos", "Org", "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", "S", "EntityKind", "ObjectAnnotationId", "Ref", "ObjectId", "S", "String", "annotations", "description", "Contact", "Struct", "id", "name", "email", "optional", "pipe", "mutable", "ObjectAnnotationId", "kind", "EntityKind", "Object", "typename", "version", "Project", "Task", "project", "Ref", "assignee", "Org", "projects", "Array", "employees"]
|
|
7
7
|
}
|
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"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":10780,"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/client.ts":{"bytes":9397,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/invariant","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/transform.ts":{"bytes":9707,"imports":[{"path":"parsimmon","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytes":40271,"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/types.ts":{"bytes":6740,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/index.ts":{"bytes":854,"imports":[{"path":"packages/experimental/assistant/src/ai-service/client.ts","kind":"import-statement","original":"./client"},{"path":"packages/experimental/assistant/src/ai-service/parser.ts","kind":"import-statement","original":"./parser"},{"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":14379,"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/live-object","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/conversation/conversation.ts":{"bytes":25707,"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/index.ts":{"bytes":695,"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"}],"format":"esm"},"packages/experimental/assistant/src/testing/defs.ts":{"bytes":848,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/logger.ts":{"bytes":14680,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/query-promts.ts":{"bytes":8754,"imports":[{"path":"@effect/schema","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":35152,"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":8446,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/testing/index.ts":{"bytes":877,"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/query-promts.ts","kind":"import-statement","original":"./query-promts"},{"path":"packages/experimental/assistant/src/testing/test-data.ts","kind":"import-statement","original":"./test-data"},{"path":"packages/experimental/assistant/src/testing/test-schema.ts","kind":"import-statement","original":"./test-schema"}],"format":"esm"}},"outputs":{"packages/experimental/assistant/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":59356},"packages/experimental/assistant/dist/lib/node/index.cjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node/chunk-QPHGQINW.cjs","kind":"import-statement"},{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/async","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":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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}],"exports":["AIServiceClientImpl","EchoDataSource","GenerateRequest","GenerationStream","LLMModel","MixedStreamParser","StreamTransform","ToolTypes","createArtifactElement","createGenerationStream","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools"],"entryPoint":"packages/experimental/assistant/src/index.ts","inputs":{"packages/experimental/assistant/src/ai-service/client.ts":{"bytesInOutput":2089},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytesInOutput":2580},"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/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytesInOutput":10678},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytesInOutput":1994},"packages/experimental/assistant/src/ai-service/types.ts":{"bytesInOutput":1262},"packages/experimental/assistant/src/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/conversation/conversation.ts":{"bytesInOutput":7334},"packages/experimental/assistant/src/conversation/index.ts":{"bytesInOutput":0}},"bytes":33331},"packages/experimental/assistant/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":32940},"packages/experimental/assistant/dist/lib/node/testing/index.cjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node/chunk-QPHGQINW.cjs","kind":"import-statement"},{"path":"@effect/schema","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/schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["AI_SERVICE_ENDPOINT","Contact","MockDataSource","ObjectId","Org","Project","Task","createCypherTool","createLogger","createSystemPrompt","createTestData","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/query-promts.ts":{"bytesInOutput":2720},"packages/experimental/assistant/src/testing/test-data.ts":{"bytesInOutput":9031},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytesInOutput":1915}},"bytes":17874},"packages/experimental/assistant/dist/lib/node/chunk-QPHGQINW.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":41496},"packages/experimental/assistant/dist/lib/node/chunk-QPHGQINW.cjs":{"imports":[{"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/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["EchoDataSource","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","parseCypherQuery","trim"],"inputs":{"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":5010},"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":3981},"packages/experimental/assistant/src/cypher/index.ts":{"bytesInOutput":0}},"bytes":20360}}}
|
|
1
|
+
{"inputs":{"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":10780,"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/client.ts":{"bytes":9397,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/invariant","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/transform.ts":{"bytes":9707,"imports":[{"path":"parsimmon","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytes":40271,"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/types.ts":{"bytes":6740,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/index.ts":{"bytes":854,"imports":[{"path":"packages/experimental/assistant/src/ai-service/client.ts","kind":"import-statement","original":"./client"},{"path":"packages/experimental/assistant/src/ai-service/parser.ts","kind":"import-statement","original":"./parser"},{"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":14379,"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/live-object","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/conversation/conversation.ts":{"bytes":25707,"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/index.ts":{"bytes":695,"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"}],"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/query-promts.ts":{"bytes":8754,"imports":[{"path":"@effect/schema","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":35152,"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":8446,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/testing/index.ts":{"bytes":877,"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/query-promts.ts","kind":"import-statement","original":"./query-promts"},{"path":"packages/experimental/assistant/src/testing/test-data.ts","kind":"import-statement","original":"./test-data"},{"path":"packages/experimental/assistant/src/testing/test-schema.ts","kind":"import-statement","original":"./test-schema"}],"format":"esm"}},"outputs":{"packages/experimental/assistant/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":59356},"packages/experimental/assistant/dist/lib/node/index.cjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node/chunk-QPHGQINW.cjs","kind":"import-statement"},{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/async","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":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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}],"exports":["AIServiceClientImpl","EchoDataSource","GenerateRequest","GenerationStream","LLMModel","MixedStreamParser","StreamTransform","ToolTypes","createArtifactElement","createGenerationStream","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools"],"entryPoint":"packages/experimental/assistant/src/index.ts","inputs":{"packages/experimental/assistant/src/ai-service/client.ts":{"bytesInOutput":2089},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytesInOutput":2580},"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/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytesInOutput":10678},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytesInOutput":1994},"packages/experimental/assistant/src/ai-service/types.ts":{"bytesInOutput":1262},"packages/experimental/assistant/src/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/conversation/conversation.ts":{"bytesInOutput":7334},"packages/experimental/assistant/src/conversation/index.ts":{"bytesInOutput":0}},"bytes":33331},"packages/experimental/assistant/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33005},"packages/experimental/assistant/dist/lib/node/testing/index.cjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node/chunk-QPHGQINW.cjs","kind":"import-statement"},{"path":"@effect/schema","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/schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["AI_SERVICE_ENDPOINT","Contact","MockDataSource","ObjectId","Org","Project","Task","createCypherTool","createLogger","createSystemPrompt","createTestData","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/query-promts.ts":{"bytesInOutput":2720},"packages/experimental/assistant/src/testing/test-data.ts":{"bytesInOutput":9031},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytesInOutput":1915}},"bytes":17874},"packages/experimental/assistant/dist/lib/node/chunk-QPHGQINW.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":41496},"packages/experimental/assistant/dist/lib/node/chunk-QPHGQINW.cjs":{"imports":[{"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/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["EchoDataSource","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","parseCypherQuery","trim"],"inputs":{"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":5010},"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":3981},"packages/experimental/assistant/src/cypher/index.ts":{"bytesInOutput":0}},"bytes":20360}}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/testing/defs.ts", "../../../../src/testing/logger.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\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 2024 DXOS.org\n//\n\nimport { Schema as S } from '@effect/schema';\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({\n name: 'graphQuery',\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/schema';\n\nimport { raise } from '@dxos/debug';\nimport type { EchoDatabase } from '@dxos/echo-db';\nimport { JSON_SCHEMA_ECHO_REF_ID, ObjectId, toJsonSchema, type JsonSchemaType, type Ref } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { create, makeRef } from '@dxos/live-object';\n\nimport {\n type DataSource,\n type Node,\n type Relationship,\n formatInferredRelationshipLabel,\n formatNodeLabel,\n} from '../cypher';\nimport { Contact, Org, Project, Task } from '../testing';\n\nexport const seedTestData = (db: EchoDatabase) => {\n const contactRich = db.add(\n create(Contact, {\n name: 'Rich',\n }),\n );\n const contactJosiah = db.add(\n create(Contact, {\n name: 'Josiah',\n }),\n );\n const contactDima = db.add(\n create(Contact, {\n name: 'Dima',\n }),\n );\n const contactFred = db.add(\n create(Contact, {\n name: 'Fred',\n }),\n );\n\n const projectComposer = db.add(\n create(Project, {\n name: 'Composer',\n }),\n );\n const projectEcho = db.add(\n create(Project, {\n name: 'ECHO',\n }),\n );\n const projectDoodles = db.add(\n create(Project, {\n name: 'Doodles',\n }),\n );\n\n const _taskComposer1 = db.add(\n create(Task, {\n name: 'Optimize startup performance',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer2 = db.add(\n create(Task, {\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskComposer3 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer5 = db.add(\n create(Task, {\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskComposer4 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskEcho1 = db.add(\n create(Task, {\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n }),\n );\n const _taskEcho2 = db.add(\n create(Task, {\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskDoodles1 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskDoodles2 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n }),\n );\n\n const _orgDxos = db.add(\n create(Org, {\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n }),\n );\n const _orgBraneframe = db.add(\n create(Org, {\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(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: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskComposer3 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer5 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n });\n const _taskComposer4 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskEcho1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n });\n const _taskEcho2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n });\n const _taskDoodles1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n });\n const _taskDoodles2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n });\n\n const _orgDxos = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n });\n const _orgBraneframe = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(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/schema';\n\nimport { EntityKind, ObjectAnnotationId, 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 [ObjectAnnotationId]: {\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 [ObjectAnnotationId]: {\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 [ObjectAnnotationId]: {\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 Org = 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 [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Org',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Org extends S.Schema.Type<typeof Org> {}\n"],
|
|
5
|
-
"mappings": "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",
|
|
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 2024 DXOS.org\n//\n\nimport { Schema as S } from '@effect/schema';\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({\n name: 'graphQuery',\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/schema';\n\nimport { raise } from '@dxos/debug';\nimport type { EchoDatabase } from '@dxos/echo-db';\nimport { JSON_SCHEMA_ECHO_REF_ID, ObjectId, toJsonSchema, type JsonSchemaType, type Ref } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { create, makeRef } from '@dxos/live-object';\n\nimport {\n type DataSource,\n type Node,\n type Relationship,\n formatInferredRelationshipLabel,\n formatNodeLabel,\n} from '../cypher';\nimport { Contact, Org, Project, Task } from '../testing';\n\nexport const seedTestData = (db: EchoDatabase) => {\n const contactRich = db.add(\n create(Contact, {\n name: 'Rich',\n }),\n );\n const contactJosiah = db.add(\n create(Contact, {\n name: 'Josiah',\n }),\n );\n const contactDima = db.add(\n create(Contact, {\n name: 'Dima',\n }),\n );\n const contactFred = db.add(\n create(Contact, {\n name: 'Fred',\n }),\n );\n\n const projectComposer = db.add(\n create(Project, {\n name: 'Composer',\n }),\n );\n const projectEcho = db.add(\n create(Project, {\n name: 'ECHO',\n }),\n );\n const projectDoodles = db.add(\n create(Project, {\n name: 'Doodles',\n }),\n );\n\n const _taskComposer1 = db.add(\n create(Task, {\n name: 'Optimize startup performance',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer2 = db.add(\n create(Task, {\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskComposer3 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer5 = db.add(\n create(Task, {\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskComposer4 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskEcho1 = db.add(\n create(Task, {\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n }),\n );\n const _taskEcho2 = db.add(\n create(Task, {\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskDoodles1 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskDoodles2 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n }),\n );\n\n const _orgDxos = db.add(\n create(Org, {\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n }),\n );\n const _orgBraneframe = db.add(\n create(Org, {\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(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: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskComposer3 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer5 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n });\n const _taskComposer4 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskEcho1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n });\n const _taskEcho2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n });\n const _taskDoodles1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n });\n const _taskDoodles2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n });\n\n const _orgDxos = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n });\n const _orgBraneframe = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(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/schema';\n\nimport { EntityKind, ObjectAnnotationId, 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 [ObjectAnnotationId]: {\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 [ObjectAnnotationId]: {\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 [ObjectAnnotationId]: {\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 Org = 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 [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Org',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Org extends S.Schema.Type<typeof Org> {}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_echo_schema", "import_schema", "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", "createCypherTool", "dataSource", "schemaTypes", "defineTool", "length", "createSystemPrompt", "schema", "S", "Struct", "query", "String", "annotations", "execute", "log", "results", "executeQuery", "ToolResult", "Success", "e", "catch", "Error", "trim", "formatJsonSchemaForLLM", "map", "toJsonSchema", "seedTestData", "db", "contactRich", "add", "create", "Contact", "contactJosiah", "contactDima", "contactFred", "projectComposer", "Project", "projectEcho", "projectDoodles", "_taskComposer1", "Task", "project", "makeRef", "assignee", "_taskComposer2", "_taskComposer3", "_taskComposer5", "_taskComposer4", "_taskEcho1", "_taskEcho2", "_taskDoodles1", "_taskDoodles2", "_orgDxos", "Org", "employees", "projects", "_orgBraneframe", "createTestData", "MockDataSource", "ObjectId", "random", "computeGraph", "objects", "nodes", "relationships", "getNodes", "label", "node", "getRelationships", "relationship", "data", "invariant", "jsonSchema", "$id", "json", "instance", "typenameDxn", "raise", "typeDxn", "object", "Object", "values", "push", "kind", "formatNodeLabel", "properties", "propSchema", "entries", "JSON_SCHEMA_ECHO_REF_ID", "formatInferredRelationshipLabel", "find", "targetId", "target", "items", "x", "email", "optional", "pipe", "mutable", "ObjectAnnotationId", "EntityKind", "typename", "version", "Ref", "Array"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"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":10780,"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/client.ts":{"bytes":9397,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/invariant","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/transform.ts":{"bytes":9707,"imports":[{"path":"parsimmon","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytes":40271,"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/types.ts":{"bytes":6740,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/index.ts":{"bytes":854,"imports":[{"path":"packages/experimental/assistant/src/ai-service/client.ts","kind":"import-statement","original":"./client"},{"path":"packages/experimental/assistant/src/ai-service/parser.ts","kind":"import-statement","original":"./parser"},{"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":14379,"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/live-object","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/conversation/conversation.ts":{"bytes":25707,"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/index.ts":{"bytes":695,"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"}],"format":"esm"},"packages/experimental/assistant/src/testing/defs.ts":{"bytes":848,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/logger.ts":{"bytes":14680,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/query-promts.ts":{"bytes":8754,"imports":[{"path":"@effect/schema","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":35152,"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":8446,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/testing/index.ts":{"bytes":877,"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/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":59357},"packages/experimental/assistant/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node-esm/chunk-GOVFOBIB.mjs","kind":"import-statement"},{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/async","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":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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}],"exports":["AIServiceClientImpl","EchoDataSource","GenerateRequest","GenerationStream","LLMModel","MixedStreamParser","StreamTransform","ToolTypes","createArtifactElement","createGenerationStream","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools"],"entryPoint":"packages/experimental/assistant/src/index.ts","inputs":{"packages/experimental/assistant/src/ai-service/client.ts":{"bytesInOutput":2089},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytesInOutput":2580},"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/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytesInOutput":10678},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytesInOutput":1994},"packages/experimental/assistant/src/ai-service/types.ts":{"bytesInOutput":1262},"packages/experimental/assistant/src/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/conversation/conversation.ts":{"bytesInOutput":7334},"packages/experimental/assistant/src/conversation/index.ts":{"bytesInOutput":0}},"bytes":33423},"packages/experimental/assistant/dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":32941},"packages/experimental/assistant/dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node-esm/chunk-GOVFOBIB.mjs","kind":"import-statement"},{"path":"@effect/schema","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/schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["AI_SERVICE_ENDPOINT","Contact","MockDataSource","ObjectId","Org","Project","Task","createCypherTool","createLogger","createSystemPrompt","createTestData","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/query-promts.ts":{"bytesInOutput":2720},"packages/experimental/assistant/src/testing/test-data.ts":{"bytesInOutput":9031},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytesInOutput":1915}},"bytes":17966},"packages/experimental/assistant/dist/lib/node-esm/chunk-GOVFOBIB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":41498},"packages/experimental/assistant/dist/lib/node-esm/chunk-GOVFOBIB.mjs":{"imports":[{"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/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["EchoDataSource","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","parseCypherQuery","trim"],"inputs":{"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":5010},"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":3981},"packages/experimental/assistant/src/cypher/index.ts":{"bytesInOutput":0}},"bytes":20453}}}
|
|
1
|
+
{"inputs":{"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":10780,"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/client.ts":{"bytes":9397,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/invariant","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/transform.ts":{"bytes":9707,"imports":[{"path":"parsimmon","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytes":40271,"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/types.ts":{"bytes":6740,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/index.ts":{"bytes":854,"imports":[{"path":"packages/experimental/assistant/src/ai-service/client.ts","kind":"import-statement","original":"./client"},{"path":"packages/experimental/assistant/src/ai-service/parser.ts","kind":"import-statement","original":"./parser"},{"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":14379,"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/live-object","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/conversation/conversation.ts":{"bytes":25707,"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/index.ts":{"bytes":695,"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"}],"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/query-promts.ts":{"bytes":8754,"imports":[{"path":"@effect/schema","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":35152,"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":8446,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/testing/index.ts":{"bytes":877,"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/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":59357},"packages/experimental/assistant/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node-esm/chunk-GOVFOBIB.mjs","kind":"import-statement"},{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/async","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":"@effect/schema","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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}],"exports":["AIServiceClientImpl","EchoDataSource","GenerateRequest","GenerationStream","LLMModel","MixedStreamParser","StreamTransform","ToolTypes","createArtifactElement","createGenerationStream","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools"],"entryPoint":"packages/experimental/assistant/src/index.ts","inputs":{"packages/experimental/assistant/src/ai-service/client.ts":{"bytesInOutput":2089},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytesInOutput":2580},"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/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytesInOutput":10678},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytesInOutput":1994},"packages/experimental/assistant/src/ai-service/types.ts":{"bytesInOutput":1262},"packages/experimental/assistant/src/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/conversation/conversation.ts":{"bytesInOutput":7334},"packages/experimental/assistant/src/conversation/index.ts":{"bytesInOutput":0}},"bytes":33423},"packages/experimental/assistant/dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33006},"packages/experimental/assistant/dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node-esm/chunk-GOVFOBIB.mjs","kind":"import-statement"},{"path":"@effect/schema","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/schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["AI_SERVICE_ENDPOINT","Contact","MockDataSource","ObjectId","Org","Project","Task","createCypherTool","createLogger","createSystemPrompt","createTestData","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/query-promts.ts":{"bytesInOutput":2720},"packages/experimental/assistant/src/testing/test-data.ts":{"bytesInOutput":9031},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytesInOutput":1915}},"bytes":17966},"packages/experimental/assistant/dist/lib/node-esm/chunk-GOVFOBIB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":41498},"packages/experimental/assistant/dist/lib/node-esm/chunk-GOVFOBIB.mjs":{"imports":[{"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/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["EchoDataSource","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","parseCypherQuery","trim"],"inputs":{"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":5010},"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":3981},"packages/experimental/assistant/src/cypher/index.ts":{"bytesInOutput":0}},"bytes":20453}}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/testing/defs.ts", "../../../../src/testing/logger.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\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 2024 DXOS.org\n//\n\nimport { Schema as S } from '@effect/schema';\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({\n name: 'graphQuery',\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/schema';\n\nimport { raise } from '@dxos/debug';\nimport type { EchoDatabase } from '@dxos/echo-db';\nimport { JSON_SCHEMA_ECHO_REF_ID, ObjectId, toJsonSchema, type JsonSchemaType, type Ref } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { create, makeRef } from '@dxos/live-object';\n\nimport {\n type DataSource,\n type Node,\n type Relationship,\n formatInferredRelationshipLabel,\n formatNodeLabel,\n} from '../cypher';\nimport { Contact, Org, Project, Task } from '../testing';\n\nexport const seedTestData = (db: EchoDatabase) => {\n const contactRich = db.add(\n create(Contact, {\n name: 'Rich',\n }),\n );\n const contactJosiah = db.add(\n create(Contact, {\n name: 'Josiah',\n }),\n );\n const contactDima = db.add(\n create(Contact, {\n name: 'Dima',\n }),\n );\n const contactFred = db.add(\n create(Contact, {\n name: 'Fred',\n }),\n );\n\n const projectComposer = db.add(\n create(Project, {\n name: 'Composer',\n }),\n );\n const projectEcho = db.add(\n create(Project, {\n name: 'ECHO',\n }),\n );\n const projectDoodles = db.add(\n create(Project, {\n name: 'Doodles',\n }),\n );\n\n const _taskComposer1 = db.add(\n create(Task, {\n name: 'Optimize startup performance',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer2 = db.add(\n create(Task, {\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskComposer3 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer5 = db.add(\n create(Task, {\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskComposer4 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskEcho1 = db.add(\n create(Task, {\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n }),\n );\n const _taskEcho2 = db.add(\n create(Task, {\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskDoodles1 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskDoodles2 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n }),\n );\n\n const _orgDxos = db.add(\n create(Org, {\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n }),\n );\n const _orgBraneframe = db.add(\n create(Org, {\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(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: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskComposer3 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer5 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n });\n const _taskComposer4 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskEcho1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n });\n const _taskEcho2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n });\n const _taskDoodles1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n });\n const _taskDoodles2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n });\n\n const _orgDxos = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n });\n const _orgBraneframe = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(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/schema';\n\nimport { EntityKind, ObjectAnnotationId, 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 [ObjectAnnotationId]: {\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 [ObjectAnnotationId]: {\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 [ObjectAnnotationId]: {\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 Org = 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 [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Org',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Org extends S.Schema.Type<typeof Org> {}\n"],
|
|
5
|
-
"mappings": "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",
|
|
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 2024 DXOS.org\n//\n\nimport { Schema as S } from '@effect/schema';\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({\n name: 'graphQuery',\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/schema';\n\nimport { raise } from '@dxos/debug';\nimport type { EchoDatabase } from '@dxos/echo-db';\nimport { JSON_SCHEMA_ECHO_REF_ID, ObjectId, toJsonSchema, type JsonSchemaType, type Ref } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { create, makeRef } from '@dxos/live-object';\n\nimport {\n type DataSource,\n type Node,\n type Relationship,\n formatInferredRelationshipLabel,\n formatNodeLabel,\n} from '../cypher';\nimport { Contact, Org, Project, Task } from '../testing';\n\nexport const seedTestData = (db: EchoDatabase) => {\n const contactRich = db.add(\n create(Contact, {\n name: 'Rich',\n }),\n );\n const contactJosiah = db.add(\n create(Contact, {\n name: 'Josiah',\n }),\n );\n const contactDima = db.add(\n create(Contact, {\n name: 'Dima',\n }),\n );\n const contactFred = db.add(\n create(Contact, {\n name: 'Fred',\n }),\n );\n\n const projectComposer = db.add(\n create(Project, {\n name: 'Composer',\n }),\n );\n const projectEcho = db.add(\n create(Project, {\n name: 'ECHO',\n }),\n );\n const projectDoodles = db.add(\n create(Project, {\n name: 'Doodles',\n }),\n );\n\n const _taskComposer1 = db.add(\n create(Task, {\n name: 'Optimize startup performance',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer2 = db.add(\n create(Task, {\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskComposer3 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n }),\n );\n const _taskComposer5 = db.add(\n create(Task, {\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskComposer4 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskEcho1 = db.add(\n create(Task, {\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n }),\n );\n const _taskEcho2 = db.add(\n create(Task, {\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n }),\n );\n const _taskDoodles1 = db.add(\n create(Task, {\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n }),\n );\n const _taskDoodles2 = db.add(\n create(Task, {\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n }),\n );\n\n const _orgDxos = db.add(\n create(Org, {\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n }),\n );\n const _orgBraneframe = db.add(\n create(Org, {\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(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: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Create form builder',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskComposer3 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectComposer),\n assignee: makeRef(contactJosiah),\n });\n const _taskComposer5 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement community plugin',\n project: makeRef(projectComposer),\n assignee: makeRef(contactFred),\n });\n const _taskComposer4 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectComposer),\n assignee: makeRef(contactRich),\n });\n const _taskEcho1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement cypher query engine',\n project: makeRef(projectEcho),\n assignee: makeRef(contactDima),\n });\n const _taskEcho2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add schema editor',\n project: makeRef(projectEcho),\n assignee: makeRef(contactRich),\n });\n const _taskDoodles1 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Add support for custom themes',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactFred),\n });\n const _taskDoodles2 = dataSource.add(Task, {\n id: ObjectId.random(),\n name: 'Implement dark mode',\n project: makeRef(projectDoodles),\n assignee: makeRef(contactJosiah),\n });\n\n const _orgDxos = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'DXOS',\n employees: [makeRef(contactRich), makeRef(contactJosiah), makeRef(contactDima)],\n projects: [makeRef(projectEcho)],\n });\n const _orgBraneframe = dataSource.add(Org, {\n id: ObjectId.random(),\n name: 'Braneframe',\n employees: [makeRef(contactJosiah), makeRef(contactRich)],\n projects: [makeRef(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/schema';\n\nimport { EntityKind, ObjectAnnotationId, 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 [ObjectAnnotationId]: {\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 [ObjectAnnotationId]: {\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 [ObjectAnnotationId]: {\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 Org = 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 [ObjectAnnotationId]: {\n kind: EntityKind.Object,\n typename: 'example.com/type/Org',\n version: '0.1.0',\n },\n description: 'Contact information.',\n });\nexport interface Org extends S.Schema.Type<typeof Org> {}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
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", "Schema", "S", "defineTool", "ToolResult", "toJsonSchema", "log", "createCypherTool", "dataSource", "schemaTypes", "defineTool", "name", "description", "length", "createSystemPrompt", "schema", "S", "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", "invariant", "create", "makeRef", "seedTestData", "db", "contactRich", "add", "create", "Contact", "name", "contactJosiah", "contactDima", "contactFred", "projectComposer", "Project", "projectEcho", "projectDoodles", "_taskComposer1", "Task", "project", "makeRef", "assignee", "_taskComposer2", "_taskComposer3", "_taskComposer5", "_taskComposer4", "_taskEcho1", "_taskEcho2", "_taskDoodles1", "_taskDoodles2", "_orgDxos", "Org", "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", "S", "EntityKind", "ObjectAnnotationId", "Ref", "ObjectId", "S", "String", "annotations", "description", "Contact", "Struct", "id", "name", "email", "optional", "pipe", "mutable", "ObjectAnnotationId", "kind", "EntityKind", "Object", "typename", "version", "Project", "Task", "project", "Ref", "assignee", "Org", "projects", "Array", "employees"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../../../src/testing/defs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../../../src/testing/defs.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB;;;CAG/B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/assistant",
|
|
3
|
-
"version": "0.7.5-labs.
|
|
3
|
+
"version": "0.7.5-labs.401163d",
|
|
4
4
|
"description": "Natural language interface to DXOS",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -41,25 +41,25 @@
|
|
|
41
41
|
"parjs": "^1.3.9",
|
|
42
42
|
"parsimmon": "^1.18.1",
|
|
43
43
|
"ulidx": "^2.3.0",
|
|
44
|
-
"@dxos/
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/echo-db": "0.7.5-labs.
|
|
48
|
-
"@dxos/
|
|
49
|
-
"@dxos/echo-schema": "0.7.5-labs.
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/
|
|
52
|
-
"@dxos/
|
|
53
|
-
"@dxos/
|
|
54
|
-
"@dxos/
|
|
55
|
-
"@dxos/
|
|
44
|
+
"@dxos/artifact": "0.7.5-labs.401163d",
|
|
45
|
+
"@dxos/async": "0.7.5-labs.401163d",
|
|
46
|
+
"@dxos/debug": "0.7.5-labs.401163d",
|
|
47
|
+
"@dxos/echo-db": "0.7.5-labs.401163d",
|
|
48
|
+
"@dxos/context": "0.7.5-labs.401163d",
|
|
49
|
+
"@dxos/echo-schema": "0.7.5-labs.401163d",
|
|
50
|
+
"@dxos/keys": "0.7.5-labs.401163d",
|
|
51
|
+
"@dxos/invariant": "0.7.5-labs.401163d",
|
|
52
|
+
"@dxos/live-object": "0.7.5-labs.401163d",
|
|
53
|
+
"@dxos/node-std": "0.7.5-labs.401163d",
|
|
54
|
+
"@dxos/util": "0.7.5-labs.401163d",
|
|
55
|
+
"@dxos/log": "0.7.5-labs.401163d"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@types/parsimmon": "^1.10.9",
|
|
59
59
|
"inquirer": "^12.0.0"
|
|
60
60
|
},
|
|
61
61
|
"publishConfig": {
|
|
62
|
-
"access": "
|
|
62
|
+
"access": "public"
|
|
63
63
|
},
|
|
64
64
|
"beast": {},
|
|
65
65
|
"scripts": {
|
package/src/bin/chat.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { writeFileSync } from 'fs';
|
|
6
5
|
import inquirer from 'inquirer';
|
|
6
|
+
import { writeFileSync } from 'node:fs';
|
|
7
7
|
|
|
8
8
|
import { createUserMessage } from '@dxos/artifact';
|
|
9
9
|
import { ObjectId } from '@dxos/echo-schema';
|
|
@@ -24,6 +24,7 @@ import {
|
|
|
24
24
|
Task,
|
|
25
25
|
} from '../testing';
|
|
26
26
|
|
|
27
|
+
// TOOD(burdon): Get from config.
|
|
27
28
|
const client = new AIServiceClientImpl({
|
|
28
29
|
endpoint: AI_SERVICE_ENDPOINT.LOCAL,
|
|
29
30
|
});
|