@dxos/assistant 0.8.2 → 0.8.3-main.672df60

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.
@@ -1 +1 @@
1
- {"inputs":{"packages/core/assistant/src/extraction/extraction.ts":{"bytes":6835,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"raw-loader:./instructions.tpl?raw":{"bytes":1318,"imports":[]},"packages/core/assistant/src/session/version-pin.ts":{"bytes":4222,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/core/assistant/src/session/session.ts":{"bytes":59353,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/core/assistant/src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"}],"format":"esm"},"packages/core/assistant/src/session/index.ts":{"bytes":569,"imports":[{"path":"packages/core/assistant/src/session/session.ts","kind":"import-statement","original":"./session"},{"path":"packages/core/assistant/src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"}],"format":"esm"},"packages/core/assistant/src/extraction/quotes.ts":{"bytes":7034,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/assistant/src/extraction/extraction-llm-function/extraction-llm-function.ts":{"bytes":7661,"imports":[{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"raw-loader:./instructions.tpl?raw","kind":"import-statement","original":"./instructions.tpl?raw"},{"path":"packages/core/assistant/src/session/index.ts","kind":"import-statement","original":"../../session"},{"path":"packages/core/assistant/src/extraction/extraction.ts","kind":"import-statement","original":"../extraction"},{"path":"packages/core/assistant/src/extraction/quotes.ts","kind":"import-statement","original":"../quotes"}],"format":"esm"},"packages/core/assistant/src/extraction/extraction-llm-function/index.ts":{"bytes":537,"imports":[{"path":"packages/core/assistant/src/extraction/extraction-llm-function/extraction-llm-function.ts","kind":"import-statement","original":"./extraction-llm-function"}],"format":"esm"},"packages/core/assistant/src/extraction/extraction-ner-function/named-entity-recognition.ts":{"bytes":10072,"imports":[{"path":"@xenova/transformers","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/assistant/src/extraction/extraction-ner-function/extraction-ner-function.ts":{"bytes":8910,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/core/assistant/src/extraction/extraction-ner-function/named-entity-recognition.ts","kind":"import-statement","original":"./named-entity-recognition"},{"path":"packages/core/assistant/src/extraction/extraction.ts","kind":"import-statement","original":"../extraction"},{"path":"packages/core/assistant/src/extraction/quotes.ts","kind":"import-statement","original":"../quotes"}],"format":"esm"},"packages/core/assistant/src/extraction/extraction-ner-function/index.ts":{"bytes":665,"imports":[{"path":"packages/core/assistant/src/extraction/extraction-ner-function/extraction-ner-function.ts","kind":"import-statement","original":"./extraction-ner-function"},{"path":"packages/core/assistant/src/extraction/extraction-ner-function/named-entity-recognition.ts","kind":"import-statement","original":"./named-entity-recognition"}],"format":"esm"},"packages/core/assistant/src/extraction/index.ts":{"bytes":816,"imports":[{"path":"packages/core/assistant/src/extraction/extraction.ts","kind":"import-statement","original":"./extraction"},{"path":"packages/core/assistant/src/extraction/extraction-llm-function/index.ts","kind":"import-statement","original":"./extraction-llm-function"},{"path":"packages/core/assistant/src/extraction/extraction-ner-function/index.ts","kind":"import-statement","original":"./extraction-ner-function"},{"path":"packages/core/assistant/src/extraction/quotes.ts","kind":"import-statement","original":"./quotes"}],"format":"esm"},"packages/core/assistant/src/testing/exa-search-1748337321991.ts":{"bytes":75521,"imports":[],"format":"esm"},"packages/core/assistant/src/testing/exa-search-1748337331526.ts":{"bytes":90591,"imports":[],"format":"esm"},"packages/core/assistant/src/testing/exa-search-1748337344119.ts":{"bytes":69963,"imports":[],"format":"esm"},"packages/core/assistant/src/testing/index.ts":{"bytes":1218,"imports":[{"path":"packages/core/assistant/src/testing/exa-search-1748337321991.ts","kind":"import-statement","original":"./exa-search-1748337321991"},{"path":"packages/core/assistant/src/testing/exa-search-1748337331526.ts","kind":"import-statement","original":"./exa-search-1748337331526"},{"path":"packages/core/assistant/src/testing/exa-search-1748337344119.ts","kind":"import-statement","original":"./exa-search-1748337344119"}],"format":"esm"},"packages/core/assistant/src/research/exa.ts":{"bytes":10703,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"exa-js","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/core/assistant/src/testing/index.ts","kind":"import-statement","original":"../testing"}],"format":"esm"},"packages/core/assistant/src/research/graph.ts":{"bytes":28822,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"raw-loader:./instructions-research.tpl?raw":{"bytes":5065,"imports":[]},"packages/core/assistant/src/research/research.ts":{"bytes":12349,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/core/assistant/src/research/exa.ts","kind":"import-statement","original":"./exa"},{"path":"packages/core/assistant/src/research/graph.ts","kind":"import-statement","original":"./graph"},{"path":"raw-loader:./instructions-research.tpl?raw","kind":"import-statement","original":"./instructions-research.tpl?raw"},{"path":"packages/core/assistant/src/session/index.ts","kind":"import-statement","original":"../session"}],"format":"esm"},"packages/core/assistant/src/research/index.ts":{"bytes":632,"imports":[{"path":"packages/core/assistant/src/research/exa.ts","kind":"import-statement","original":"./exa"},{"path":"packages/core/assistant/src/research/research.ts","kind":"import-statement","original":"./research"},{"path":"packages/core/assistant/src/research/graph.ts","kind":"import-statement","original":"./graph"}],"format":"esm"},"packages/core/assistant/src/types.ts":{"bytes":858,"imports":[],"format":"esm"},"packages/core/assistant/src/blueprint/blueprint.ts":{"bytes":7796,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"format":"esm"},"packages/core/assistant/src/blueprint/machine.ts":{"bytes":21454,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/core/assistant/src/session/index.ts","kind":"import-statement","original":"../session"}],"format":"esm"},"packages/core/assistant/src/blueprint/logger.ts":{"bytes":7589,"imports":[{"path":"chalk","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true}],"format":"esm"},"packages/core/assistant/src/blueprint/index.ts":{"bytes":647,"imports":[{"path":"packages/core/assistant/src/blueprint/blueprint.ts","kind":"import-statement","original":"./blueprint"},{"path":"packages/core/assistant/src/blueprint/machine.ts","kind":"import-statement","original":"./machine"},{"path":"packages/core/assistant/src/blueprint/logger.ts","kind":"import-statement","original":"./logger"}],"format":"esm"},"packages/core/assistant/src/index.ts":{"bytes":814,"imports":[{"path":"packages/core/assistant/src/extraction/index.ts","kind":"import-statement","original":"./extraction"},{"path":"packages/core/assistant/src/research/index.ts","kind":"import-statement","original":"./research"},{"path":"packages/core/assistant/src/session/index.ts","kind":"import-statement","original":"./session"},{"path":"packages/core/assistant/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/core/assistant/src/blueprint/index.ts","kind":"import-statement","original":"./blueprint"}],"format":"esm"}},"outputs":{"packages/core/assistant/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":206456},"packages/core/assistant/dist/lib/node-esm/index.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@xenova/transformers","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"exa-js","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"chalk","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true}],"exports":["AIServiecOverloadedError","AISession","Blueprint","BlueprintBuilder","BlueprintMachine","BlueprintParser","BlueprintStep","ExtractionInput","ExtractionOutput","ReferencedQuotes","Subgraph","VersionPin","combineNerTokens","createArtifactElement","createExaTool","createExtractionSchema","createGraphWriterTool","createLocalSearchTool","createMockExaTool","createTokenGroups","extractFullEntities","extractionAnthropicFn","extractionNerFn","findQuotes","findRelatedSchema","getNer","getSanitizedSchemaName","insertReferences","processTranscriptMessage","researchFn","sanitizeObjects","setConsolePrinter"],"entryPoint":"packages/core/assistant/src/index.ts","inputs":{"packages/core/assistant/src/extraction/extraction.ts":{"bytesInOutput":1383},"packages/core/assistant/src/extraction/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/extraction/extraction-llm-function/extraction-llm-function.ts":{"bytesInOutput":1649},"raw-loader:./instructions.tpl?raw":{"bytesInOutput":1376},"packages/core/assistant/src/session/session.ts":{"bytesInOutput":15770},"packages/core/assistant/src/session/version-pin.ts":{"bytesInOutput":758},"packages/core/assistant/src/session/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/extraction/quotes.ts":{"bytesInOutput":1671},"packages/core/assistant/src/extraction/extraction-llm-function/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/extraction/extraction-ner-function/extraction-ner-function.ts":{"bytesInOutput":2653},"packages/core/assistant/src/extraction/extraction-ner-function/named-entity-recognition.ts":{"bytesInOutput":2289},"packages/core/assistant/src/extraction/extraction-ner-function/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/research/exa.ts":{"bytesInOutput":2550},"packages/core/assistant/src/testing/exa-search-1748337321991.ts":{"bytesInOutput":31265},"packages/core/assistant/src/testing/exa-search-1748337331526.ts":{"bytesInOutput":43952},"packages/core/assistant/src/testing/exa-search-1748337344119.ts":{"bytesInOutput":28760},"packages/core/assistant/src/testing/index.ts":{"bytesInOutput":133},"packages/core/assistant/src/research/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/research/research.ts":{"bytesInOutput":2915},"packages/core/assistant/src/research/graph.ts":{"bytesInOutput":6803},"raw-loader:./instructions-research.tpl?raw":{"bytesInOutput":5201},"packages/core/assistant/src/types.ts":{"bytesInOutput":61},"packages/core/assistant/src/blueprint/blueprint.ts":{"bytesInOutput":1804},"packages/core/assistant/src/blueprint/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/blueprint/machine.ts":{"bytesInOutput":5392},"packages/core/assistant/src/blueprint/logger.ts":{"bytesInOutput":1667}},"bytes":160354}}}
1
+ {"inputs":{"packages/core/assistant/src/extraction/extraction.ts":{"bytes":6835,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"raw-loader:./instructions.tpl?raw":{"bytes":1318,"imports":[]},"packages/core/assistant/src/session/version-pin.ts":{"bytes":4222,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/core/assistant/src/session/session.ts":{"bytes":59353,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/core/assistant/src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"}],"format":"esm"},"packages/core/assistant/src/session/index.ts":{"bytes":569,"imports":[{"path":"packages/core/assistant/src/session/session.ts","kind":"import-statement","original":"./session"},{"path":"packages/core/assistant/src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"}],"format":"esm"},"packages/core/assistant/src/extraction/quotes.ts":{"bytes":7034,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/assistant/src/extraction/extraction-llm-function/extraction-llm-function.ts":{"bytes":7661,"imports":[{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"raw-loader:./instructions.tpl?raw","kind":"import-statement","original":"./instructions.tpl?raw"},{"path":"packages/core/assistant/src/session/index.ts","kind":"import-statement","original":"../../session"},{"path":"packages/core/assistant/src/extraction/extraction.ts","kind":"import-statement","original":"../extraction"},{"path":"packages/core/assistant/src/extraction/quotes.ts","kind":"import-statement","original":"../quotes"}],"format":"esm"},"packages/core/assistant/src/extraction/extraction-llm-function/index.ts":{"bytes":537,"imports":[{"path":"packages/core/assistant/src/extraction/extraction-llm-function/extraction-llm-function.ts","kind":"import-statement","original":"./extraction-llm-function"}],"format":"esm"},"packages/core/assistant/src/extraction/extraction-ner-function/named-entity-recognition.ts":{"bytes":10072,"imports":[{"path":"@xenova/transformers","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/assistant/src/extraction/extraction-ner-function/extraction-ner-function.ts":{"bytes":8910,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/core/assistant/src/extraction/extraction-ner-function/named-entity-recognition.ts","kind":"import-statement","original":"./named-entity-recognition"},{"path":"packages/core/assistant/src/extraction/extraction.ts","kind":"import-statement","original":"../extraction"},{"path":"packages/core/assistant/src/extraction/quotes.ts","kind":"import-statement","original":"../quotes"}],"format":"esm"},"packages/core/assistant/src/extraction/extraction-ner-function/index.ts":{"bytes":665,"imports":[{"path":"packages/core/assistant/src/extraction/extraction-ner-function/extraction-ner-function.ts","kind":"import-statement","original":"./extraction-ner-function"},{"path":"packages/core/assistant/src/extraction/extraction-ner-function/named-entity-recognition.ts","kind":"import-statement","original":"./named-entity-recognition"}],"format":"esm"},"packages/core/assistant/src/extraction/index.ts":{"bytes":816,"imports":[{"path":"packages/core/assistant/src/extraction/extraction.ts","kind":"import-statement","original":"./extraction"},{"path":"packages/core/assistant/src/extraction/extraction-llm-function/index.ts","kind":"import-statement","original":"./extraction-llm-function"},{"path":"packages/core/assistant/src/extraction/extraction-ner-function/index.ts","kind":"import-statement","original":"./extraction-ner-function"},{"path":"packages/core/assistant/src/extraction/quotes.ts","kind":"import-statement","original":"./quotes"}],"format":"esm"},"packages/core/assistant/src/testing/exa-search-1748337321991.ts":{"bytes":75521,"imports":[],"format":"esm"},"packages/core/assistant/src/testing/exa-search-1748337331526.ts":{"bytes":90591,"imports":[],"format":"esm"},"packages/core/assistant/src/testing/exa-search-1748337344119.ts":{"bytes":69963,"imports":[],"format":"esm"},"packages/core/assistant/src/testing/index.ts":{"bytes":1218,"imports":[{"path":"packages/core/assistant/src/testing/exa-search-1748337321991.ts","kind":"import-statement","original":"./exa-search-1748337321991"},{"path":"packages/core/assistant/src/testing/exa-search-1748337331526.ts","kind":"import-statement","original":"./exa-search-1748337331526"},{"path":"packages/core/assistant/src/testing/exa-search-1748337344119.ts","kind":"import-statement","original":"./exa-search-1748337344119"}],"format":"esm"},"packages/core/assistant/src/research/exa.ts":{"bytes":10703,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"exa-js","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/core/assistant/src/testing/index.ts","kind":"import-statement","original":"../testing"}],"format":"esm"},"packages/core/assistant/src/research/graph.ts":{"bytes":34629,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"raw-loader:./instructions-research.tpl?raw":{"bytes":5065,"imports":[]},"packages/core/assistant/src/research/research.ts":{"bytes":12349,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/core/assistant/src/research/exa.ts","kind":"import-statement","original":"./exa"},{"path":"packages/core/assistant/src/research/graph.ts","kind":"import-statement","original":"./graph"},{"path":"raw-loader:./instructions-research.tpl?raw","kind":"import-statement","original":"./instructions-research.tpl?raw"},{"path":"packages/core/assistant/src/session/index.ts","kind":"import-statement","original":"../session"}],"format":"esm"},"packages/core/assistant/src/research/index.ts":{"bytes":632,"imports":[{"path":"packages/core/assistant/src/research/exa.ts","kind":"import-statement","original":"./exa"},{"path":"packages/core/assistant/src/research/research.ts","kind":"import-statement","original":"./research"},{"path":"packages/core/assistant/src/research/graph.ts","kind":"import-statement","original":"./graph"}],"format":"esm"},"packages/core/assistant/src/types.ts":{"bytes":858,"imports":[],"format":"esm"},"packages/core/assistant/src/blueprint/blueprint.ts":{"bytes":6353,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"format":"esm"},"packages/core/assistant/src/blueprint/machine.ts":{"bytes":22240,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/assistant/src/session/index.ts","kind":"import-statement","original":"../session"}],"format":"esm"},"packages/core/assistant/src/blueprint/logger.ts":{"bytes":11635,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"chalk","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true}],"format":"esm"},"packages/core/assistant/src/blueprint/index.ts":{"bytes":647,"imports":[{"path":"packages/core/assistant/src/blueprint/blueprint.ts","kind":"import-statement","original":"./blueprint"},{"path":"packages/core/assistant/src/blueprint/machine.ts","kind":"import-statement","original":"./machine"},{"path":"packages/core/assistant/src/blueprint/logger.ts","kind":"import-statement","original":"./logger"}],"format":"esm"},"packages/core/assistant/src/index.ts":{"bytes":814,"imports":[{"path":"packages/core/assistant/src/extraction/index.ts","kind":"import-statement","original":"./extraction"},{"path":"packages/core/assistant/src/research/index.ts","kind":"import-statement","original":"./research"},{"path":"packages/core/assistant/src/session/index.ts","kind":"import-statement","original":"./session"},{"path":"packages/core/assistant/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/core/assistant/src/blueprint/index.ts","kind":"import-statement","original":"./blueprint"}],"format":"esm"}},"outputs":{"packages/core/assistant/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":211310},"packages/core/assistant/dist/lib/node-esm/index.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@xenova/transformers","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"exa-js","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"chalk","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true}],"exports":["AIServiecOverloadedError","AISession","Blueprint","BlueprintBuilder","BlueprintMachine","BlueprintParser","BlueprintSchema","BlueprintStepSchema","ExtractionInput","ExtractionOutput","Logger","ReferencedQuotes","Subgraph","VersionPin","combineNerTokens","createArtifactElement","createExaTool","createExtractionSchema","createGraphWriterTool","createLocalSearchTool","createMockExaTool","createTokenGroups","extractFullEntities","extractionAnthropicFn","extractionNerFn","findQuotes","findRelatedSchema","getNer","getSanitizedSchemaName","insertReferences","processTranscriptMessage","researchFn","sanitizeObjects","setConsolePrinter","setLogger"],"entryPoint":"packages/core/assistant/src/index.ts","inputs":{"packages/core/assistant/src/extraction/extraction.ts":{"bytesInOutput":1383},"packages/core/assistant/src/extraction/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/extraction/extraction-llm-function/extraction-llm-function.ts":{"bytesInOutput":1649},"raw-loader:./instructions.tpl?raw":{"bytesInOutput":1376},"packages/core/assistant/src/session/session.ts":{"bytesInOutput":15770},"packages/core/assistant/src/session/version-pin.ts":{"bytesInOutput":758},"packages/core/assistant/src/session/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/extraction/quotes.ts":{"bytesInOutput":1671},"packages/core/assistant/src/extraction/extraction-llm-function/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/extraction/extraction-ner-function/extraction-ner-function.ts":{"bytesInOutput":2653},"packages/core/assistant/src/extraction/extraction-ner-function/named-entity-recognition.ts":{"bytesInOutput":2289},"packages/core/assistant/src/extraction/extraction-ner-function/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/research/exa.ts":{"bytesInOutput":2550},"packages/core/assistant/src/testing/exa-search-1748337321991.ts":{"bytesInOutput":31265},"packages/core/assistant/src/testing/exa-search-1748337331526.ts":{"bytesInOutput":43952},"packages/core/assistant/src/testing/exa-search-1748337344119.ts":{"bytesInOutput":28760},"packages/core/assistant/src/testing/index.ts":{"bytesInOutput":133},"packages/core/assistant/src/research/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/research/research.ts":{"bytesInOutput":2915},"packages/core/assistant/src/research/graph.ts":{"bytesInOutput":8232},"raw-loader:./instructions-research.tpl?raw":{"bytesInOutput":5201},"packages/core/assistant/src/types.ts":{"bytesInOutput":61},"packages/core/assistant/src/blueprint/blueprint.ts":{"bytesInOutput":1489},"packages/core/assistant/src/blueprint/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/blueprint/machine.ts":{"bytesInOutput":5581},"packages/core/assistant/src/blueprint/logger.ts":{"bytesInOutput":2551}},"bytes":162589}}}
@@ -1,41 +1,29 @@
1
1
  import { Schema } from 'effect';
2
- import { type ExecutableTool } from '@dxos/ai';
3
- export declare const BlueprintStep: Schema.Struct<{
4
- id: typeof Schema.String;
2
+ export declare const BlueprintStepSchema: Schema.Struct<{
3
+ id: import("@dxos/keys").ObjectIdClass;
5
4
  instructions: typeof Schema.String;
6
- tools: Schema.mutable<Schema.Array$<Schema.Struct<{
7
- id: typeof Schema.String;
8
- name: typeof Schema.String;
9
- namespace: Schema.optional<typeof Schema.String>;
10
- function: Schema.optional<typeof Schema.String>;
11
- type: Schema.optional<typeof Schema.String>;
12
- caption: Schema.optional<typeof Schema.String>;
13
- description: Schema.optional<typeof Schema.String>;
14
- parameters: Schema.optional<Schema.Schema<import("@dxos/echo-schema").JsonSchemaType, import("@dxos/echo-schema").JsonSchemaType, never>>;
15
- options: Schema.optional<typeof Schema.Any>;
16
- }>>>;
5
+ tools: Schema.Array$<typeof Schema.String>;
17
6
  }>;
18
- export interface BlueprintStep extends Schema.Schema.Type<typeof BlueprintStep> {
19
- }
20
- export declare const Blueprint: Schema.Struct<{
21
- steps: Schema.mutable<Schema.Array$<Schema.Struct<{
22
- id: typeof Schema.String;
23
- instructions: typeof Schema.String;
24
- tools: Schema.mutable<Schema.Array$<Schema.Struct<{
25
- id: typeof Schema.String;
26
- name: typeof Schema.String;
27
- namespace: Schema.optional<typeof Schema.String>;
28
- function: Schema.optional<typeof Schema.String>;
29
- type: Schema.optional<typeof Schema.String>;
30
- caption: Schema.optional<typeof Schema.String>;
31
- description: Schema.optional<typeof Schema.String>;
32
- parameters: Schema.optional<Schema.Schema<import("@dxos/echo-schema").JsonSchemaType, import("@dxos/echo-schema").JsonSchemaType, never>>;
33
- options: Schema.optional<typeof Schema.Any>;
34
- }>>>;
35
- }>>>;
7
+ export type BlueprintStep = Schema.Schema.Type<typeof BlueprintStepSchema>;
8
+ export declare const BlueprintSchema: Schema.Struct<{
9
+ steps: Schema.Array$<Schema.SchemaClass<{
10
+ readonly instructions: string;
11
+ readonly tools: readonly string[];
12
+ }, {
13
+ readonly instructions: string;
14
+ readonly tools: readonly string[];
15
+ }, never>>;
36
16
  }>;
37
- export interface Blueprint extends Schema.Schema.Type<typeof Blueprint> {
38
- }
17
+ export type BlueprintDef = Schema.Schema.Type<typeof BlueprintSchema>;
18
+ export declare const Blueprint: import("@dxos/echo-schema").EchoTypeSchema<Schema.Struct<{
19
+ name: Schema.optional<typeof Schema.String>;
20
+ steps: Schema.Array$<Schema.Struct<{
21
+ id: import("@dxos/keys").ObjectIdClass;
22
+ instructions: typeof Schema.String;
23
+ tools: Schema.Array$<typeof Schema.String>;
24
+ }>>;
25
+ }>, {}>;
26
+ export type Blueprint = Schema.Schema.Type<typeof Blueprint>;
39
27
  /**
40
28
  * Blueprint builder API.
41
29
  */
@@ -44,7 +32,7 @@ export declare namespace BlueprintBuilder {
44
32
  class Builder {
45
33
  private readonly _steps;
46
34
  step(instructions: string, options?: {
47
- tools?: ExecutableTool[];
35
+ tools?: string[];
48
36
  }): Builder;
49
37
  build(): Blueprint;
50
38
  }
@@ -54,25 +42,9 @@ export declare namespace BlueprintBuilder {
54
42
  * Blueprint parser API.
55
43
  */
56
44
  export declare namespace BlueprintParser {
57
- export type Step = {
58
- instructions: string;
59
- tools?: string[];
60
- };
61
- export type DSL = {
62
- steps: Step[];
63
- };
64
- export const create: (tools?: ExecutableTool[]) => Parser;
45
+ export const create: () => Parser;
65
46
  class Parser {
66
- private readonly _tools;
67
- constructor(_tools: ExecutableTool[]);
68
- toJSON(): {
69
- tools: {
70
- name: string;
71
- namespace: string | undefined;
72
- type: string | undefined;
73
- }[];
74
- };
75
- parse({ steps }: DSL): Blueprint;
47
+ parse({ steps }: BlueprintDef): Blueprint;
76
48
  }
77
49
  export {};
78
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"blueprint.d.ts","sourceRoot":"","sources":["../../../../src/blueprint/blueprint.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,UAAU,CAAC;AAIrD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;EAKxB,CAAC;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,aAAa,CAAC;CAAG;AAElF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;EAEpB,CAAC;AACH,MAAM,WAAW,SAAU,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC;CAAG;AAE1E;;GAEG;AACH,yBAAiB,gBAAgB,CAAC;IAChC,MAAM,CAAC,MAAM,MAAM,eAAsB,CAAC;IAE1C,MAAM,OAAO;QACX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;QAE9C,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;SAAE,GAAG,OAAO;QAU3E,KAAK,IAAI,SAAS;KAKnB;;CACF;AAED;;GAEG;AACH,yBAAiB,eAAe,CAAC;IAC/B,MAAM,MAAM,IAAI,GAAG;QACjB,YAAY,EAAE,MAAM,CAAC;QAErB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG;QAChB,KAAK,EAAE,IAAI,EAAE,CAAC;KACf,CAAC;IAEF,MAAM,CAAC,MAAM,MAAM,GAAI,QAAO,cAAc,EAAO,WAAsB,CAAC;IAE1E,MAAM,MAAM;QACE,OAAO,CAAC,QAAQ,CAAC,MAAM;oBAAN,MAAM,EAAE,cAAc,EAAE;QAErD,MAAM;;;;;;;QAUN,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,SAAS;KAcjC;;CACF"}
1
+ {"version":3,"file":"blueprint.d.ts","sourceRoot":"","sources":["../../../../src/blueprint/blueprint.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,eAAO,MAAM,mBAAmB;;;;EAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE3E,eAAO,MAAM,eAAe;;;;;;;;EAE1B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,eAAe,CAAC,CAAC;AAEtE,eAAO,MAAM,SAAS;;;;;;;OAGsD,CAAC;AAC7E,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC;AAE7D;;GAEG;AACH,yBAAiB,gBAAgB,CAAC;IAChC,MAAM,CAAC,MAAM,MAAM,eAAsB,CAAC;IAE1C,MAAM,OAAO;QACX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;QAE9C,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO;QAUnE,KAAK,IAAI,SAAS;KAGnB;;CACF;AAED;;GAEG;AACH,yBAAiB,eAAe,CAAC;IAC/B,MAAM,CAAC,MAAM,MAAM,cAAqB,CAAC;IAEzC,MAAM,MAAM;QACV,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,YAAY,GAAG,SAAS;KAU1C;;CACF"}
@@ -1,3 +1,12 @@
1
+ import { type ReadonlySignal } from '@preact/signals-core';
2
+ import { type CleanupFn } from '@dxos/async';
1
3
  import { type BlueprintMachine } from './machine';
2
- export declare const setConsolePrinter: (machine: BlueprintMachine, extraLogging?: boolean) => void;
4
+ export declare class Logger {
5
+ private _messages;
6
+ get messages(): ReadonlySignal<string[]>;
7
+ clear(): void;
8
+ log(message: string): void;
9
+ }
10
+ export declare const setLogger: (machine: BlueprintMachine, logger: Logger) => CleanupFn;
11
+ export declare const setConsolePrinter: (machine: BlueprintMachine, verbose?: boolean) => CleanupFn;
3
12
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/blueprint/logger.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,gBAAgB,EAA8B,MAAM,WAAW,CAAC;AAO9E,eAAO,MAAM,iBAAiB,GAAI,SAAS,gBAAgB,EAAE,sBAAoB,SAahF,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/blueprint/logger.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,cAAc,EAAU,MAAM,sBAAsB,CAAC;AAInE,OAAO,EAAE,KAAK,SAAS,EAAW,MAAM,aAAa,CAAC;AAGtD,OAAO,EAAE,KAAK,gBAAgB,EAA8B,MAAM,WAAW,CAAC;AAO9E,qBAAa,MAAM;IACjB,OAAO,CAAC,SAAS,CAAwB;IAEzC,IAAI,QAAQ,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC,CAEvC;IAED,KAAK;IAIL,GAAG,CAAC,OAAO,EAAE,MAAM;CAGpB;AAED,eAAO,MAAM,SAAS,GAAI,SAAS,gBAAgB,EAAE,QAAQ,MAAM,KAAG,SAkBrE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,gBAAgB,EAAE,iBAAe,KAAG,SAkB9E,CAAC"}
@@ -1,17 +1,17 @@
1
- import { Message, type AIServiceClient } from '@dxos/ai';
1
+ import { type AIServiceClient, Message, type ToolRegistry } from '@dxos/ai';
2
2
  import { Event } from '@dxos/async';
3
3
  import { type ObjectId } from '@dxos/keys';
4
- import type { Blueprint, BlueprintStep } from './blueprint';
5
- export type BlueprintMachineState = {
6
- history: Message[];
7
- trace: BlueprintTraceStep[];
8
- state: 'working' | 'bail' | 'done';
9
- };
4
+ import type { Blueprint } from './blueprint';
10
5
  export type BlueprintTraceStep = {
11
6
  status: 'done' | 'bailed' | 'skipped';
12
7
  stepId: ObjectId;
13
8
  comment: string;
14
9
  };
10
+ export type BlueprintMachineState = {
11
+ history: Message[];
12
+ trace: BlueprintTraceStep[];
13
+ state: 'working' | 'bail' | 'done';
14
+ };
15
15
  type ExecutionOptions = {
16
16
  aiService: AIServiceClient;
17
17
  /**
@@ -23,11 +23,20 @@ type ExecutionOptions = {
23
23
  * Blueprint state machine.
24
24
  */
25
25
  export declare class BlueprintMachine {
26
+ readonly registry: ToolRegistry;
26
27
  readonly blueprint: Blueprint;
27
28
  readonly begin: Event<void>;
28
29
  readonly end: Event<void>;
29
- readonly stepStart: Event<BlueprintStep>;
30
- readonly stepComplete: Event<BlueprintStep>;
30
+ readonly stepStart: Event<{
31
+ readonly id: string;
32
+ readonly instructions: string;
33
+ readonly tools: readonly string[];
34
+ }>;
35
+ readonly stepComplete: Event<{
36
+ readonly id: string;
37
+ readonly instructions: string;
38
+ readonly tools: readonly string[];
39
+ }>;
31
40
  readonly message: Event<{
32
41
  readonly id: string;
33
42
  role: "user" | "assistant";
@@ -105,7 +114,7 @@ export declare class BlueprintMachine {
105
114
  isError?: boolean | undefined;
106
115
  }>;
107
116
  state: BlueprintMachineState;
108
- constructor(blueprint: Blueprint);
117
+ constructor(registry: ToolRegistry, blueprint: Blueprint);
109
118
  runToCompletion(options: ExecutionOptions): Promise<void>;
110
119
  private _execStep;
111
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../../../src/blueprint/machine.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,OAAO,EAEP,KAAK,eAAe,EAGrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;CACpC,CAAC;AAQF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE,eAAe,CAAC;IAE3B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,qBAAa,gBAAgB;IAUf,QAAQ,CAAC,SAAS,EAAE,SAAS;IATzC,SAAgB,KAAK,cAAqB;IAC1C,SAAgB,GAAG,cAAqB;IACxC,SAAgB,SAAS,uBAA8B;IACvD,SAAgB,YAAY,uBAA8B;IAC1D,SAAgB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAwB;IAC/C,SAAgB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoC;IAEzD,KAAK,EAAE,qBAAqB,CAAkC;gBAEzC,SAAS,EAAE,SAAS;IAEnC,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAwBjD,SAAS;CA2FxB"}
1
+ {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../../../src/blueprint/machine.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,eAAe,EACpB,OAAO,EAIP,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,aAAa,CAAC;AAG5D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;CACpC,CAAC;AAQF,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE,eAAe,CAAC;IAE3B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,qBAAa,gBAAgB;IAWzB,QAAQ,CAAC,QAAQ,EAAE,YAAY;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAX/B,SAAgB,KAAK,cAAqB;IAC1C,SAAgB,GAAG,cAAqB;IACxC,SAAgB,SAAS;;;;OAA8B;IACvD,SAAgB,YAAY;;;;OAA8B;IAC1D,SAAgB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAwB;IAC/C,SAAgB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoC;IAEzD,KAAK,EAAE,qBAAqB,CAAkC;gBAGnD,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,SAAS;IAGzB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAwBjD,SAAS;CA6FxB"}
@@ -1,5 +1,5 @@
1
1
  import { Schema } from 'effect';
2
- import { type EchoDatabase } from '@dxos/echo-db';
2
+ import { type EchoDatabase, type Queue } from '@dxos/echo-db';
3
3
  import { type AnyEchoObject, type BaseObject } from '@dxos/echo-schema';
4
4
  export declare const Subgraph: Schema.Struct<{
5
5
  /** Objects and relations. */
@@ -22,7 +22,7 @@ export declare const findRelatedSchema: (db: EchoDatabase, anchor: Schema.Schema
22
22
  /**
23
23
  * Perform vector search in the local database.
24
24
  */
25
- export declare const createLocalSearchTool: (db: EchoDatabase) => import("@dxos/ai").ExecutableTool;
25
+ export declare const createLocalSearchTool: (db: EchoDatabase, queue?: Queue) => import("@dxos/ai").ExecutableTool;
26
26
  /**
27
27
  * Create a schema for structured data extraction.
28
28
  */
@@ -30,9 +30,10 @@ export declare const createExtractionSchema: (types: Schema.Schema.AnyNoContext[
30
30
  [k: string]: Schema.optional<Schema.Array$<Schema.Schema.AnyNoContext>>;
31
31
  }>;
32
32
  export declare const getSanitizedSchemaName: (schema: Schema.Schema.AnyNoContext) => string;
33
- export declare const sanitizeObjects: (types: Schema.Schema.AnyNoContext[], data: Record<string, readonly unknown[]>, db: EchoDatabase) => Promise<BaseObject[]>;
34
- export declare const createGraphWriterTool: ({ db, schemaTypes, onDone, }: {
33
+ export declare const sanitizeObjects: (types: Schema.Schema.AnyNoContext[], data: Record<string, readonly unknown[]>, db: EchoDatabase, queue?: Queue) => Promise<BaseObject[]>;
34
+ export declare const createGraphWriterTool: ({ db, queue, schemaTypes, onDone, }: {
35
35
  db: EchoDatabase;
36
+ queue?: Queue;
36
37
  schemaTypes: Schema.Schema.AnyNoContext[];
37
38
  onDone?: (data: AnyEchoObject[]) => Promise<any>;
38
39
  }) => import("@dxos/ai").ExecutableTool;
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../src/research/graph.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAA+B,MAAM,QAAQ,CAAC;AAG7D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAKL,KAAK,aAAa,EAUlB,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAO3B,eAAO,MAAM,QAAQ;IACnB,6BAA6B;;EAE7B,CAAC;AACH,MAAM,WAAW,QAAS,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC;CAAG;AAExE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;IACnC,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC;CAChC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,IAAI,YAAY,EAChB,QAAQ,MAAM,CAAC,MAAM,CAAC,YAAY,KACjC,OAAO,CAAC,aAAa,EAAE,CAsBzB,CAAC;AAmBF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,IAAI,YAAY,sCAkBrD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;;EAWzE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,CAAC,MAAM,CAAC,YAAY,WAIxE,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EACnC,MAAM,MAAM,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC,EACxC,IAAI,YAAY,KACf,OAAO,CAAC,UAAU,EAAE,CAsFtB,CAAC;AA2CF,eAAO,MAAM,qBAAqB,GAAI,8BAInC;IACD,EAAE,EAAE,YAAY,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IAC1C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAClD,sCAUA,CAAC"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../src/research/graph.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAA+B,MAAM,QAAQ,CAAC;AAI7D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EAKL,KAAK,aAAa,EAQlB,KAAK,UAAU,EAKhB,MAAM,mBAAmB,CAAC;AAO3B,eAAO,MAAM,QAAQ;IACnB,6BAA6B;;EAE7B,CAAC;AACH,MAAM,WAAW,QAAS,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC;CAAG;AAExE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;IACnC,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC;CAChC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,IAAI,YAAY,EAChB,QAAQ,MAAM,CAAC,MAAM,CAAC,YAAY,KACjC,OAAO,CAAC,aAAa,EAAE,CAsBzB,CAAC;AAmBF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,IAAI,YAAY,EAAE,QAAQ,KAAK,sCAyBpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;;EAWzE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,CAAC,MAAM,CAAC,YAAY,WAIxE,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EACnC,MAAM,MAAM,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC,EACxC,IAAI,YAAY,EAChB,QAAQ,KAAK,KACZ,OAAO,CAAC,UAAU,EAAE,CAyHtB,CAAC;AA2CF,eAAO,MAAM,qBAAqB,GAAI,qCAKnC;IACD,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IAC1C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAClD,sCAUA,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/assistant",
3
- "version": "0.8.2",
3
+ "version": "0.8.3-main.672df60",
4
4
  "description": "Natural language interface to DXOS",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -21,28 +21,29 @@
21
21
  "src"
22
22
  ],
23
23
  "dependencies": {
24
+ "@preact/signals-core": "^1.9.0",
24
25
  "@xenova/transformers": "^2.17.2",
25
26
  "chalk": "^4.1.0",
26
27
  "exa-js": "^1.5.12",
27
- "@dxos/ai": "0.8.2",
28
- "@dxos/artifact": "0.8.2",
29
- "@dxos/async": "0.8.2",
30
- "@dxos/context": "0.8.2",
31
- "@dxos/echo": "0.8.2",
32
- "@dxos/debug": "0.8.2",
33
- "@dxos/echo-db": "0.8.2",
34
- "@dxos/echo-protocol": "0.8.2",
35
- "@dxos/echo-schema": "0.8.2",
36
- "@dxos/effect": "0.8.2",
37
- "@dxos/functions": "0.8.2",
38
- "@dxos/graph": "0.8.2",
39
- "@dxos/live-object": "0.8.2",
40
- "@dxos/invariant": "0.8.2",
41
- "@dxos/keys": "0.8.2",
42
- "@dxos/log": "0.8.2",
43
- "@dxos/node-std": "0.8.2",
44
- "@dxos/schema": "0.8.2",
45
- "@dxos/util": "0.8.2"
28
+ "@dxos/ai": "0.8.3-main.672df60",
29
+ "@dxos/artifact": "0.8.3-main.672df60",
30
+ "@dxos/async": "0.8.3-main.672df60",
31
+ "@dxos/context": "0.8.3-main.672df60",
32
+ "@dxos/debug": "0.8.3-main.672df60",
33
+ "@dxos/echo": "0.8.3-main.672df60",
34
+ "@dxos/echo-db": "0.8.3-main.672df60",
35
+ "@dxos/echo-protocol": "0.8.3-main.672df60",
36
+ "@dxos/echo-schema": "0.8.3-main.672df60",
37
+ "@dxos/effect": "0.8.3-main.672df60",
38
+ "@dxos/graph": "0.8.3-main.672df60",
39
+ "@dxos/invariant": "0.8.3-main.672df60",
40
+ "@dxos/keys": "0.8.3-main.672df60",
41
+ "@dxos/functions": "0.8.3-main.672df60",
42
+ "@dxos/live-object": "0.8.3-main.672df60",
43
+ "@dxos/log": "0.8.3-main.672df60",
44
+ "@dxos/node-std": "0.8.3-main.672df60",
45
+ "@dxos/schema": "0.8.3-main.672df60",
46
+ "@dxos/util": "0.8.3-main.672df60"
46
47
  },
47
48
  "devDependencies": {
48
49
  "effect": "3.14.21",
@@ -5,7 +5,7 @@
5
5
  import { Schema } from 'effect';
6
6
  import { describe, test } from 'vitest';
7
7
 
8
- import { AIServiceEdgeClient, ToolResult, createTool } from '@dxos/ai';
8
+ import { AIServiceEdgeClient, ToolRegistry, ToolResult, createTool } from '@dxos/ai';
9
9
  import { AI_SERVICE_ENDPOINT, EXA_API_KEY } from '@dxos/ai/testing';
10
10
  import { ArtifactId } from '@dxos/artifact';
11
11
  import { EchoTestBuilder } from '@dxos/echo-db/testing';
@@ -39,7 +39,8 @@ describe.skip('Blueprint', () => {
39
39
  .step('Write a pitch deck for the product')
40
40
  .build();
41
41
 
42
- const machine = new BlueprintMachine(blueprint);
42
+ const registry = new ToolRegistry([]);
43
+ const machine = new BlueprintMachine(registry, blueprint);
43
44
  setConsolePrinter(machine, true);
44
45
  await machine.runToCompletion({ aiService });
45
46
  });
@@ -82,20 +83,21 @@ describe.skip('Blueprint', () => {
82
83
  'Determine if the email is introduction, question, or spam. Bail if email does not fit into one of these categories.',
83
84
  )
84
85
  .step('If the email is spam, label it as spam and do not respond.', {
85
- tools: [labelTool],
86
+ tools: [labelTool.id],
86
87
  })
87
88
  .step(
88
89
  'If the email is an introduction, respond with a short introduction of yourself and ask for more information.',
89
90
  {
90
- tools: [replyTool],
91
+ tools: [replyTool.id],
91
92
  },
92
93
  )
93
94
  .step('If the email is a question, respond with a short answer and ask for more information.', {
94
- tools: [replyTool],
95
+ tools: [replyTool.id],
95
96
  })
96
97
  .build();
97
98
 
98
- const machine = new BlueprintMachine(blueprint);
99
+ const registry = new ToolRegistry([replyTool, labelTool]);
100
+ const machine = new BlueprintMachine(registry, blueprint);
99
101
  setConsolePrinter(machine);
100
102
  await machine.runToCompletion({ aiService, input: TEST_EMAILS[0] });
101
103
  });
@@ -123,19 +125,24 @@ describe.skip('Blueprint', () => {
123
125
 
124
126
  await db.flush({ indexes: true });
125
127
 
128
+ const webSearchTool = createExaTool({ apiKey: EXA_API_KEY });
129
+ const localSearchTool = createLocalSearchTool(db);
130
+ const graphWriterTool = createGraphWriterTool({ db, schemaTypes: DataTypes });
131
+ const registry = new ToolRegistry([webSearchTool, localSearchTool, graphWriterTool]);
132
+
126
133
  const blueprint = BlueprintBuilder.create()
127
134
  .step('Research founders of the organization. Do deep research.', {
128
- tools: [createExaTool({ apiKey: EXA_API_KEY })],
135
+ tools: [webSearchTool.id],
129
136
  })
130
137
  .step('Based on your research select matching entires that are already in the graph', {
131
- tools: [createLocalSearchTool(db)],
138
+ tools: [localSearchTool.id],
132
139
  })
133
140
  .step('Add researched data to the graph', {
134
- tools: [createLocalSearchTool(db), createGraphWriterTool({ db, schemaTypes: DataTypes })],
141
+ tools: [localSearchTool.id, graphWriterTool.id],
135
142
  })
136
143
  .build();
137
144
 
138
- const machine = new BlueprintMachine(blueprint);
145
+ const machine = new BlueprintMachine(registry, blueprint);
139
146
  setConsolePrinter(machine, true);
140
147
  await machine.runToCompletion({ aiService, input: org1 });
141
148
  });
@@ -4,22 +4,26 @@
4
4
 
5
5
  import { Schema } from 'effect';
6
6
 
7
- import { type ExecutableTool, Tool } from '@dxos/ai';
8
- import { raise } from '@dxos/debug';
7
+ import { Obj, Type } from '@dxos/echo';
9
8
  import { ObjectId } from '@dxos/keys';
10
9
 
11
- export const BlueprintStep = Schema.Struct({
12
- id: Schema.String,
10
+ export const BlueprintStepSchema = Schema.Struct({
11
+ id: ObjectId,
13
12
  instructions: Schema.String,
14
- // TODO(burdon): ExecutableTool can't be serialized.
15
- tools: Schema.Array(Tool).pipe(Schema.mutable),
13
+ tools: Schema.Array(Schema.String),
16
14
  });
17
- export interface BlueprintStep extends Schema.Schema.Type<typeof BlueprintStep> {}
15
+ export type BlueprintStep = Schema.Schema.Type<typeof BlueprintStepSchema>;
18
16
 
19
- export const Blueprint = Schema.Struct({
20
- steps: Schema.Array(BlueprintStep).pipe(Schema.mutable),
17
+ export const BlueprintSchema = Schema.Struct({
18
+ steps: Schema.Array(BlueprintStepSchema.pipe(Schema.omit('id'))),
21
19
  });
22
- export interface Blueprint extends Schema.Schema.Type<typeof Blueprint> {}
20
+ export type BlueprintDef = Schema.Schema.Type<typeof BlueprintSchema>;
21
+
22
+ export const Blueprint = Schema.Struct({
23
+ name: Schema.optional(Schema.String),
24
+ steps: Schema.Array(BlueprintStepSchema),
25
+ }).pipe(Type.Obj({ typename: 'dxos.org/type/Blueprint', version: '0.1.0' }));
26
+ export type Blueprint = Schema.Schema.Type<typeof Blueprint>;
23
27
 
24
28
  /**
25
29
  * Blueprint builder API.
@@ -30,7 +34,7 @@ export namespace BlueprintBuilder {
30
34
  class Builder {
31
35
  private readonly _steps: BlueprintStep[] = [];
32
36
 
33
- step(instructions: string, options?: { tools?: ExecutableTool[] }): Builder {
37
+ step(instructions: string, options?: { tools?: string[] }): Builder {
34
38
  this._steps.push({
35
39
  id: ObjectId.random(),
36
40
  instructions,
@@ -41,9 +45,7 @@ export namespace BlueprintBuilder {
41
45
  }
42
46
 
43
47
  build(): Blueprint {
44
- return {
45
- steps: this._steps,
46
- };
48
+ return Obj.make(Blueprint, { steps: this._steps });
47
49
  }
48
50
  }
49
51
  }
@@ -52,40 +54,14 @@ export namespace BlueprintBuilder {
52
54
  * Blueprint parser API.
53
55
  */
54
56
  export namespace BlueprintParser {
55
- export type Step = {
56
- instructions: string;
57
- // TODO(burdon): Tool DXN? Additional metadata?
58
- tools?: string[];
59
- };
60
-
61
- export type DSL = {
62
- steps: Step[];
63
- };
64
-
65
- export const create = (tools: ExecutableTool[] = []) => new Parser(tools);
57
+ export const create = () => new Parser();
66
58
 
67
59
  class Parser {
68
- constructor(private readonly _tools: ExecutableTool[]) {}
69
-
70
- toJSON() {
71
- return {
72
- tools: this._tools.map((tool) => ({
73
- name: tool.name,
74
- namespace: tool.namespace,
75
- type: tool.type,
76
- })),
77
- };
78
- }
79
-
80
- parse({ steps }: DSL): Blueprint {
60
+ parse({ steps }: BlueprintDef): Blueprint {
81
61
  const builder = BlueprintBuilder.create();
82
-
83
62
  for (const step of steps) {
84
63
  builder.step(step.instructions, {
85
- // TODO(burdon): Tool resolution is duplicated in the session and ollama-client.
86
- tools: step.tools?.map(
87
- (tool) => this._tools.find(({ id }) => id === tool) ?? raise(new Error(`Tool not found: ${tool}`)),
88
- ),
64
+ tools: (step.tools ?? []) as string[],
89
65
  });
90
66
  }
91
67