@dxos/assistant 0.8.3-staging.0fa589b → 0.8.4-main.28f8d3d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/chunk-6WRGDEMH.mjs +89 -0
- package/dist/lib/browser/chunk-6WRGDEMH.mjs.map +7 -0
- package/dist/lib/browser/chunk-NZGGCEF3.mjs +341 -0
- package/dist/lib/browser/chunk-NZGGCEF3.mjs.map +7 -0
- package/dist/lib/browser/extraction/index.mjs +269 -0
- package/dist/lib/browser/extraction/index.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +306 -2110
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/named-entity-recognition-O46UTCLR.mjs +13 -0
- package/dist/lib/browser/named-entity-recognition-O46UTCLR.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-3UU5V4FS.mjs +91 -0
- package/dist/lib/node-esm/chunk-3UU5V4FS.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-XOOPGSGW.mjs +343 -0
- package/dist/lib/node-esm/chunk-XOOPGSGW.mjs.map +7 -0
- package/dist/lib/node-esm/extraction/index.mjs +270 -0
- package/dist/lib/node-esm/extraction/index.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +305 -2110
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/named-entity-recognition-W4VMRCH6.mjs +14 -0
- package/dist/lib/node-esm/named-entity-recognition-W4VMRCH6.mjs.map +7 -0
- package/dist/types/src/conversation/context.d.ts +90 -0
- package/dist/types/src/conversation/context.d.ts.map +1 -0
- package/dist/types/src/conversation/conversation.d.ts +50 -0
- package/dist/types/src/conversation/conversation.d.ts.map +1 -0
- package/dist/types/src/conversation/index.d.ts +3 -0
- package/dist/types/src/conversation/index.d.ts.map +1 -0
- package/dist/types/src/errors.d.ts +39 -0
- package/dist/types/src/errors.d.ts.map +1 -0
- package/dist/types/src/extraction/extraction-llm-function/extraction-llm-function.d.ts.map +1 -1
- package/dist/types/src/extraction/extraction-ner-function/extraction-ner-function.d.ts +151 -53
- package/dist/types/src/extraction/extraction-ner-function/extraction-ner-function.d.ts.map +1 -1
- package/dist/types/src/extraction/extraction-ner-function/named-entity-recognition.d.ts +1 -1
- package/dist/types/src/extraction/extraction-ner-function/named-entity-recognition.d.ts.map +1 -1
- package/dist/types/src/extraction/extraction.d.ts +106 -44
- package/dist/types/src/extraction/extraction.d.ts.map +1 -1
- package/dist/types/src/functions/index.d.ts +2 -0
- package/dist/types/src/functions/index.d.ts.map +1 -0
- package/dist/types/src/functions/services.d.ts +7 -0
- package/dist/types/src/functions/services.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +4 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/session/artifact-diff.d.ts +27 -0
- package/dist/types/src/session/artifact-diff.d.ts.map +1 -0
- package/dist/types/src/session/format.d.ts +168 -0
- package/dist/types/src/session/format.d.ts.map +1 -0
- package/dist/types/src/session/format.test.d.ts +2 -0
- package/dist/types/src/session/format.test.d.ts.map +1 -0
- package/dist/types/src/session/index.d.ts +1 -0
- package/dist/types/src/session/index.d.ts.map +1 -1
- package/dist/types/src/session/session.d.ts +125 -219
- package/dist/types/src/session/session.d.ts.map +1 -1
- package/dist/types/src/session/version-pin.d.ts +4 -4
- package/dist/types/src/session/version-pin.d.ts.map +1 -1
- package/dist/types/src/templates/index.d.ts +2 -0
- package/dist/types/src/templates/index.d.ts.map +1 -0
- package/dist/types/src/templates/system.d.ts +22 -0
- package/dist/types/src/templates/system.d.ts.map +1 -0
- package/dist/types/src/types.d.ts +13 -0
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +46 -31
- package/src/conversation/context.ts +133 -0
- package/src/conversation/conversation.ts +125 -0
- package/src/conversation/index.ts +6 -0
- package/src/errors.ts +10 -0
- package/src/extraction/extraction-llm-function/extraction-llm-function.test.ts +7 -18
- package/src/extraction/extraction-llm-function/extraction-llm-function.ts +23 -17
- package/src/extraction/extraction-ner-function/extraction-ner-function.test.ts +4 -3
- package/src/extraction/extraction-ner-function/extraction-ner-function.ts +7 -4
- package/src/extraction/extraction-ner-function/named-entity-recognition.test.ts +2 -2
- package/src/extraction/extraction-ner-function/named-entity-recognition.ts +1 -1
- package/src/extraction/quotes.test.ts +1 -1
- package/src/extraction/quotes.ts +1 -1
- package/src/functions/index.ts +5 -0
- package/src/functions/services.ts +114 -0
- package/src/index.ts +4 -3
- package/src/session/__snapshots__/session.test.ts.snap +32 -0
- package/src/session/artifact-diff.ts +37 -0
- package/src/session/format.test.ts +60 -0
- package/src/session/format.ts +139 -0
- package/src/session/index.ts +1 -0
- package/src/session/session.test.ts +95 -19
- package/src/session/session.ts +224 -494
- package/src/session/version-pin.test.ts +2 -21
- package/src/session/version-pin.ts +9 -9
- package/src/summarization/summarization.test.ts +82 -106
- package/src/templates/format.tpl +55 -0
- package/src/templates/index.ts +5 -0
- package/src/templates/system.tpl +47 -0
- package/src/templates/system.ts +32 -0
- package/src/types.ts +45 -1
- package/src/typings.d.ts +5 -0
- package/dist/lib/node/index.cjs +0 -2178
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/types/bin/chat.d.ts +0 -2
- package/dist/types/bin/chat.d.ts.map +0 -1
- package/dist/types/src/blueprint/ai.test.d.ts +0 -2
- package/dist/types/src/blueprint/ai.test.d.ts.map +0 -1
- package/dist/types/src/blueprint/blueprint.d.ts +0 -55
- package/dist/types/src/blueprint/blueprint.d.ts.map +0 -1
- package/dist/types/src/blueprint/blueprint.test.d.ts +0 -2
- package/dist/types/src/blueprint/blueprint.test.d.ts.map +0 -1
- package/dist/types/src/blueprint/index.d.ts +0 -4
- package/dist/types/src/blueprint/index.d.ts.map +0 -1
- package/dist/types/src/blueprint/logger.d.ts +0 -25
- package/dist/types/src/blueprint/logger.d.ts.map +0 -1
- package/dist/types/src/blueprint/machine.d.ts +0 -143
- package/dist/types/src/blueprint/machine.d.ts.map +0 -1
- package/dist/types/src/blueprint/test-data.d.ts +0 -3
- package/dist/types/src/blueprint/test-data.d.ts.map +0 -1
- package/dist/types/src/research/exa.d.ts +0 -7
- package/dist/types/src/research/exa.d.ts.map +0 -1
- package/dist/types/src/research/graph.d.ts +0 -41
- package/dist/types/src/research/graph.d.ts.map +0 -1
- package/dist/types/src/research/graph.test.d.ts +0 -2
- package/dist/types/src/research/graph.test.d.ts.map +0 -1
- package/dist/types/src/research/index.d.ts +0 -4
- package/dist/types/src/research/index.d.ts.map +0 -1
- package/dist/types/src/research/research.d.ts +0 -10
- package/dist/types/src/research/research.d.ts.map +0 -1
- package/dist/types/src/research/research.test.d.ts +0 -2
- package/dist/types/src/research/research.test.d.ts.map +0 -1
- package/dist/types/src/testing/exa-search-1748337321991.d.ts +0 -38
- package/dist/types/src/testing/exa-search-1748337321991.d.ts.map +0 -1
- package/dist/types/src/testing/exa-search-1748337331526.d.ts +0 -37
- package/dist/types/src/testing/exa-search-1748337331526.d.ts.map +0 -1
- package/dist/types/src/testing/exa-search-1748337344119.d.ts +0 -58
- package/dist/types/src/testing/exa-search-1748337344119.d.ts.map +0 -1
- package/dist/types/src/testing/index.d.ts +0 -3
- package/dist/types/src/testing/index.d.ts.map +0 -1
- package/src/blueprint/ai.test.ts +0 -156
- package/src/blueprint/blueprint.test.ts +0 -151
- package/src/blueprint/blueprint.ts +0 -75
- package/src/blueprint/index.ts +0 -7
- package/src/blueprint/logger.ts +0 -155
- package/src/blueprint/machine.ts +0 -251
- package/src/blueprint/test-data.ts +0 -55
- package/src/research/exa.ts +0 -100
- package/src/research/graph.test.ts +0 -15
- package/src/research/graph.ts +0 -337
- package/src/research/index.ts +0 -7
- package/src/research/instructions-research.tpl +0 -97
- package/src/research/research.test.ts +0 -190
- package/src/research/research.ts +0 -89
- package/src/testing/exa-search-1748337321991.ts +0 -131
- package/src/testing/exa-search-1748337331526.ts +0 -144
- package/src/testing/exa-search-1748337344119.ts +0 -133
- package/src/testing/index.ts +0 -11
- package/src/typedefs.d.ts +0 -8
|
@@ -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":59501,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"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":7123,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/assistant/src/extraction/extraction-llm-function/extraction-llm-function.ts":{"bytes":7821,"imports":[{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"raw-loader:./instructions.tpl?raw","kind":"import-statement","original":"./instructions.tpl?raw"},{"path":"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":34603,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"raw-loader:./instructions-research.tpl?raw":{"bytes":5065,"imports":[]},"packages/core/assistant/src/research/research.ts":{"bytes":12315,"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":6426,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"format":"esm"},"packages/core/assistant/src/blueprint/machine.ts":{"bytes":25722,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/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":16321,"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},{"path":"@dxos/log","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/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":215521},"packages/core/assistant/dist/lib/browser/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","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","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","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@xenova/transformers","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"exa-js","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/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},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["AIServiecOverloadedError","AISession","Blueprint","BlueprintBuilder","BlueprintDefinition","BlueprintLoggerAdapter","BlueprintMachine","BlueprintParser","BlueprintStep","BufferedLogger","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","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":1693},"raw-loader:./instructions.tpl?raw":{"bytesInOutput":1376},"packages/core/assistant/src/session/session.ts":{"bytesInOutput":15806},"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":1700},"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":2910},"packages/core/assistant/src/research/graph.ts":{"bytesInOutput":8246},"raw-loader:./instructions-research.tpl?raw":{"bytesInOutput":5201},"packages/core/assistant/src/types.ts":{"bytesInOutput":61},"packages/core/assistant/src/blueprint/blueprint.ts":{"bytesInOutput":1461},"packages/core/assistant/src/blueprint/index.ts":{"bytesInOutput":0},"packages/core/assistant/src/blueprint/machine.ts":{"bytesInOutput":6264},"packages/core/assistant/src/blueprint/logger.ts":{"bytesInOutput":3703}},"bytes":164453}}}
|
|
1
|
+
{"inputs":{"src/conversation/context.ts":{"bytes":13488,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/session/artifact-diff.ts":{"bytes":2594,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/errors.ts":{"bytes":939,"imports":[{"path":"@dxos/errors","kind":"import-statement","external":true}],"format":"esm"},"src/session/format.ts":{"bytes":16522,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/errors.ts","kind":"import-statement","original":"../errors"},{"path":"src/session/artifact-diff.ts","kind":"import-statement","original":"./artifact-diff"}],"format":"esm"},"src/session/session.ts":{"bytes":32915,"imports":[{"path":"@effect/ai","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/echo","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/session/format.ts","kind":"import-statement","original":"./format"}],"format":"esm"},"src/session/version-pin.ts":{"bytes":4194,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"src/session/index.ts":{"bytes":657,"imports":[{"path":"src/session/artifact-diff.ts","kind":"import-statement","original":"./artifact-diff"},{"path":"src/session/session.ts","kind":"import-statement","original":"./session"},{"path":"src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"}],"format":"esm"},"src/conversation/conversation.ts":{"bytes":11539,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/session/index.ts","kind":"import-statement","original":"../session"},{"path":"src/conversation/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/conversation/index.ts":{"bytes":562,"imports":[{"path":"src/conversation/context.ts","kind":"import-statement","original":"./context"},{"path":"src/conversation/conversation.ts","kind":"import-statement","original":"./conversation"}],"format":"esm"},"src/functions/services.ts":{"bytes":14283,"imports":[{"path":"@effect/ai","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"src/functions/index.ts":{"bytes":460,"imports":[{"path":"src/functions/services.ts","kind":"import-statement","original":"./services"}],"format":"esm"},"raw-loader:./format.tpl?raw":{"bytes":1808,"imports":[]},"raw-loader:./system.tpl?raw":{"bytes":3227,"imports":[]},"src/templates/system.ts":{"bytes":2283,"imports":[{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"raw-loader:./format.tpl?raw","kind":"import-statement","original":"./format.tpl?raw"},{"path":"raw-loader:./system.tpl?raw","kind":"import-statement","original":"./system.tpl?raw"}],"format":"esm"},"src/templates/index.ts":{"bytes":458,"imports":[{"path":"src/templates/system.ts","kind":"import-statement","original":"./system"}],"format":"esm"},"src/types.ts":{"bytes":6867,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":894,"imports":[{"path":"src/conversation/index.ts","kind":"import-statement","original":"./conversation"},{"path":"src/functions/index.ts","kind":"import-statement","original":"./functions"},{"path":"src/session/index.ts","kind":"import-statement","original":"./session"},{"path":"src/templates/index.ts","kind":"import-statement","original":"./templates"},{"path":"src/types.ts","kind":"import-statement","original":"./types"},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"},"src/extraction/extraction.ts":{"bytes":6822,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"src/extraction/quotes.ts":{"bytes":7110,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"raw-loader:./instructions.tpl?raw":{"bytes":1318,"imports":[]},"src/extraction/extraction-llm-function/extraction-llm-function.ts":{"bytes":8710,"imports":[{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/session/index.ts","kind":"import-statement","original":"../../session"},{"path":"src/extraction/extraction.ts","kind":"import-statement","original":"../extraction"},{"path":"src/extraction/quotes.ts","kind":"import-statement","original":"../quotes"},{"path":"raw-loader:./instructions.tpl?raw","kind":"import-statement","original":"./instructions.tpl?raw"}],"format":"esm"},"src/extraction/extraction-llm-function/index.ts":{"bytes":524,"imports":[{"path":"src/extraction/extraction-llm-function/extraction-llm-function.ts","kind":"import-statement","original":"./extraction-llm-function"}],"format":"esm"},"src/extraction/extraction-ner-function/named-entity-recognition.ts":{"bytes":10059,"imports":[{"path":"@xenova/transformers","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/extraction/extraction-ner-function/extraction-ner-function.ts":{"bytes":9083,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/extraction/extraction.ts","kind":"import-statement","original":"../extraction"},{"path":"src/extraction/quotes.ts","kind":"import-statement","original":"../quotes"},{"path":"src/extraction/extraction-ner-function/named-entity-recognition.ts","kind":"dynamic-import","original":"./named-entity-recognition"}],"format":"esm"},"src/extraction/extraction-ner-function/index.ts":{"bytes":652,"imports":[{"path":"src/extraction/extraction-ner-function/extraction-ner-function.ts","kind":"import-statement","original":"./extraction-ner-function"},{"path":"src/extraction/extraction-ner-function/named-entity-recognition.ts","kind":"import-statement","original":"./named-entity-recognition"}],"format":"esm"},"src/extraction/index.ts":{"bytes":803,"imports":[{"path":"src/extraction/extraction.ts","kind":"import-statement","original":"./extraction"},{"path":"src/extraction/extraction-llm-function/index.ts","kind":"import-statement","original":"./extraction-llm-function"},{"path":"src/extraction/extraction-ner-function/index.ts","kind":"import-statement","original":"./extraction-ner-function"},{"path":"src/extraction/quotes.ts","kind":"import-statement","original":"./quotes"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":30108},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-NZGGCEF3.mjs","kind":"import-statement"},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@effect/ai","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["AiAssistantError","AiContextBinder","AiConversation","AiSession","ArtifactDiffResolver","ArtifactId","Bindings","ContextBinding","GenerationObserver","VersionPin","createArtifactElement","createSystemPrompt","makeToolExecutionServiceFromFunctions","makeToolResolverFromFunctions","templates"],"entryPoint":"src/index.ts","inputs":{"src/conversation/context.ts":{"bytesInOutput":2996},"src/conversation/index.ts":{"bytesInOutput":0},"src/conversation/conversation.ts":{"bytesInOutput":2477},"src/index.ts":{"bytesInOutput":0},"src/functions/services.ts":{"bytesInOutput":3281},"src/functions/index.ts":{"bytesInOutput":0},"src/templates/system.ts":{"bytesInOutput":234},"raw-loader:./format.tpl?raw":{"bytesInOutput":1888},"raw-loader:./system.tpl?raw":{"bytesInOutput":3299},"src/templates/index.ts":{"bytesInOutput":0},"src/types.ts":{"bytesInOutput":1321}},"bytes":16218},"dist/lib/browser/extraction/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17085},"dist/lib/browser/extraction/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-NZGGCEF3.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-6WRGDEMH.mjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"dist/lib/browser/named-entity-recognition-O46UTCLR.mjs","kind":"dynamic-import"}],"exports":["ExtractionInput","ExtractionOutput","ReferencedQuotes","combineNerTokens","createTokenGroups","extractFullEntities","extractionAnthropicFn","extractionNerFn","findQuotes","getNer","insertReferences","processTranscriptMessage"],"entryPoint":"src/extraction/index.ts","inputs":{"src/extraction/extraction.ts":{"bytesInOutput":1370},"src/extraction/index.ts":{"bytesInOutput":0},"src/extraction/extraction-llm-function/extraction-llm-function.ts":{"bytesInOutput":1819},"src/extraction/quotes.ts":{"bytesInOutput":1673},"raw-loader:./instructions.tpl?raw":{"bytesInOutput":1376},"src/extraction/extraction-llm-function/index.ts":{"bytesInOutput":0},"src/extraction/extraction-ner-function/extraction-ner-function.ts":{"bytesInOutput":2729},"src/extraction/extraction-ner-function/index.ts":{"bytesInOutput":0}},"bytes":9729},"dist/lib/browser/chunk-NZGGCEF3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":28431},"dist/lib/browser/chunk-NZGGCEF3.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@effect/ai","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/echo","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/functions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["AiAssistantError","AiSession","ArtifactDiffResolver","GenerationObserver","VersionPin"],"inputs":{"src/session/artifact-diff.ts":{"bytesInOutput":134},"src/errors.ts":{"bytesInOutput":123},"src/session/session.ts":{"bytesInOutput":6467},"src/session/format.ts":{"bytesInOutput":3692},"src/session/version-pin.ts":{"bytesInOutput":731},"src/session/index.ts":{"bytesInOutput":0}},"bytes":11457},"dist/lib/browser/named-entity-recognition-O46UTCLR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/named-entity-recognition-O46UTCLR.mjs":{"imports":[{"path":"dist/lib/browser/chunk-6WRGDEMH.mjs","kind":"import-statement"}],"exports":["combineNerTokens","createTokenGroups","extractFullEntities","getNer"],"entryPoint":"src/extraction/extraction-ner-function/named-entity-recognition.ts","inputs":{},"bytes":261},"dist/lib/browser/chunk-6WRGDEMH.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5241},"dist/lib/browser/chunk-6WRGDEMH.mjs":{"imports":[{"path":"@xenova/transformers","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["combineNerTokens","createTokenGroups","extractFullEntities","getNer"],"inputs":{"src/extraction/extraction-ner-function/named-entity-recognition.ts":{"bytesInOutput":2265}},"bytes":2465}}}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
combineNerTokens,
|
|
3
|
+
createTokenGroups,
|
|
4
|
+
extractFullEntities,
|
|
5
|
+
getNer
|
|
6
|
+
} from "./chunk-6WRGDEMH.mjs";
|
|
7
|
+
export {
|
|
8
|
+
combineNerTokens,
|
|
9
|
+
createTokenGroups,
|
|
10
|
+
extractFullEntities,
|
|
11
|
+
getNer
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=named-entity-recognition-O46UTCLR.mjs.map
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/extraction/extraction-ner-function/named-entity-recognition.ts
|
|
4
|
+
import { pipeline } from "@xenova/transformers";
|
|
5
|
+
import { log } from "@dxos/log";
|
|
6
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/assistant/src/extraction/extraction-ner-function/named-entity-recognition.ts";
|
|
7
|
+
var _ner;
|
|
8
|
+
var getNer = () => {
|
|
9
|
+
if (!_ner) {
|
|
10
|
+
_ner = pipeline("ner", "Xenova/bert-base-NER").then((ner) => {
|
|
11
|
+
log.info("NER model is ready", void 0, {
|
|
12
|
+
F: __dxlog_file,
|
|
13
|
+
L: 23,
|
|
14
|
+
S: void 0,
|
|
15
|
+
C: (f, a) => f(...a)
|
|
16
|
+
});
|
|
17
|
+
return ner;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return _ner;
|
|
21
|
+
};
|
|
22
|
+
var extractFullEntities = async (text) => {
|
|
23
|
+
const ner = await getNer();
|
|
24
|
+
const entities = await ner(text);
|
|
25
|
+
const tokenGroups = createTokenGroups(entities);
|
|
26
|
+
const combinedEntities = tokenGroups.map(combineNerTokens);
|
|
27
|
+
return combinedEntities;
|
|
28
|
+
};
|
|
29
|
+
var createTokenGroups = (tokens) => {
|
|
30
|
+
const tokenGroups = [];
|
|
31
|
+
const canBeCombined = (prevToken, currentToken) => {
|
|
32
|
+
const [currentState, currentEntity] = currentToken.entity.split("-");
|
|
33
|
+
const [prevState, prevEntity] = prevToken.entity.split("-");
|
|
34
|
+
if (prevEntity !== currentEntity) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (prevState === "O") {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
if (currentState === "I") {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
if ((prevState === "B" || prevState === "I") && currentState === "B") {
|
|
44
|
+
return currentToken.word.startsWith("#");
|
|
45
|
+
}
|
|
46
|
+
return false;
|
|
47
|
+
};
|
|
48
|
+
for (const token of tokens) {
|
|
49
|
+
if (tokenGroups.length === 0) {
|
|
50
|
+
tokenGroups.push([
|
|
51
|
+
token
|
|
52
|
+
]);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const lastTokenGroup = tokenGroups.at(-1);
|
|
56
|
+
if (canBeCombined(lastTokenGroup.at(-1), token)) {
|
|
57
|
+
lastTokenGroup.push(token);
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
tokenGroups.push([
|
|
61
|
+
token
|
|
62
|
+
]);
|
|
63
|
+
}
|
|
64
|
+
return tokenGroups;
|
|
65
|
+
};
|
|
66
|
+
var combineNerTokens = (group) => {
|
|
67
|
+
const combinedToken = {
|
|
68
|
+
entity: group.at(0).entity.split("-")[1],
|
|
69
|
+
score: group.reduce((acc, token) => acc + token.score, 0) / group.length,
|
|
70
|
+
index: group.at(0).index,
|
|
71
|
+
word: group.at(0).word,
|
|
72
|
+
start: group.at(0).start,
|
|
73
|
+
end: group.at(-1).end
|
|
74
|
+
};
|
|
75
|
+
for (const token of group.slice(1)) {
|
|
76
|
+
if (token.word.startsWith("#")) {
|
|
77
|
+
combinedToken.word += token.word.replace(/^#+/, "");
|
|
78
|
+
} else {
|
|
79
|
+
combinedToken.word += " " + token.word;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return combinedToken;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export {
|
|
86
|
+
getNer,
|
|
87
|
+
extractFullEntities,
|
|
88
|
+
createTokenGroups,
|
|
89
|
+
combineNerTokens
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=chunk-3UU5V4FS.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/extraction/extraction-ner-function/named-entity-recognition.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n type TokenClassificationOutput,\n type TokenClassificationPipelineType,\n type TokenClassificationSingle,\n pipeline,\n} from '@xenova/transformers';\n\nimport { log } from '@dxos/log';\n\nlet _ner: Promise<TokenClassificationPipelineType>;\n/**\n * Named Entity Recognition pipeline.\n * Initializes the pipeline on first call.\n * @returns The singleton promise that resolves to a token classification pipeline.\n */\nexport const getNer = () => {\n if (!_ner) {\n _ner = pipeline('ner', 'Xenova/bert-base-NER').then((ner) => {\n log.info('NER model is ready');\n return ner;\n });\n }\n return _ner;\n};\n\n/**\n * Extracts entities from text using the named entity recognition pipeline and does simple grouping of tokens.\n */\nexport const extractFullEntities = async (text: string): Promise<TokenClassificationSingle[]> => {\n const ner = await getNer();\n const entities = (await ner(text)) as TokenClassificationOutput;\n const tokenGroups = createTokenGroups(entities);\n const combinedEntities = tokenGroups.map(combineNerTokens);\n return combinedEntities;\n};\n\nexport const createTokenGroups = (tokens: TokenClassificationSingle[]): TokenClassificationSingle[][] => {\n const tokenGroups: TokenClassificationSingle[][] = [];\n\n const canBeCombined = (prevToken: TokenClassificationSingle, currentToken: TokenClassificationSingle) => {\n const [currentState, currentEntity] = currentToken.entity.split('-'); // B, I, O\n const [prevState, prevEntity] = prevToken.entity.split('-'); // B, I, O\n if (prevEntity !== currentEntity) {\n return false;\n }\n if (prevState === 'O') {\n return false;\n }\n if (currentState === 'I') {\n return true;\n }\n if ((prevState === 'B' || prevState === 'I') && currentState === 'B') {\n return currentToken.word.startsWith('#');\n }\n return false;\n };\n\n for (const token of tokens) {\n if (tokenGroups.length === 0) {\n tokenGroups.push([token]);\n continue;\n }\n const lastTokenGroup = tokenGroups.at(-1)!;\n if (canBeCombined(lastTokenGroup.at(-1)!, token)) {\n lastTokenGroup.push(token);\n continue;\n }\n tokenGroups.push([token]);\n }\n\n return tokenGroups;\n};\n\nexport const combineNerTokens = (group: TokenClassificationSingle[]): TokenClassificationSingle => {\n const combinedToken: TokenClassificationSingle = {\n entity: group.at(0)!.entity.split('-')[1],\n score: group.reduce((acc, token) => acc + token.score, 0) / group.length,\n index: group.at(0)!.index,\n word: group.at(0)!.word,\n start: group.at(0)!.start,\n end: group.at(-1)!.end,\n };\n\n for (const token of group.slice(1)) {\n if (token.word.startsWith('#')) {\n combinedToken.word += token.word.replace(/^#+/, '');\n } else {\n combinedToken.word += ' ' + token.word;\n }\n }\n\n return combinedToken;\n};\n"],
|
|
5
|
+
"mappings": ";;;AAIA,SAIEA,gBACK;AAEP,SAASC,WAAW;;AAEpB,IAAIC;AAMG,IAAMC,SAAS,MAAA;AACpB,MAAI,CAACD,MAAM;AACTA,WAAOF,SAAS,OAAO,sBAAA,EAAwBI,KAAK,CAACC,QAAAA;AACnDJ,UAAIK,KAAK,sBAAA,QAAA;;;;;;AACT,aAAOD;IACT,CAAA;EACF;AACA,SAAOH;AACT;AAKO,IAAMK,sBAAsB,OAAOC,SAAAA;AACxC,QAAMH,MAAM,MAAMF,OAAAA;AAClB,QAAMM,WAAY,MAAMJ,IAAIG,IAAAA;AAC5B,QAAME,cAAcC,kBAAkBF,QAAAA;AACtC,QAAMG,mBAAmBF,YAAYG,IAAIC,gBAAAA;AACzC,SAAOF;AACT;AAEO,IAAMD,oBAAoB,CAACI,WAAAA;AAChC,QAAML,cAA6C,CAAA;AAEnD,QAAMM,gBAAgB,CAACC,WAAsCC,iBAAAA;AAC3D,UAAM,CAACC,cAAcC,aAAAA,IAAiBF,aAAaG,OAAOC,MAAM,GAAA;AAChE,UAAM,CAACC,WAAWC,UAAAA,IAAcP,UAAUI,OAAOC,MAAM,GAAA;AACvD,QAAIE,eAAeJ,eAAe;AAChC,aAAO;IACT;AACA,QAAIG,cAAc,KAAK;AACrB,aAAO;IACT;AACA,QAAIJ,iBAAiB,KAAK;AACxB,aAAO;IACT;AACA,SAAKI,cAAc,OAAOA,cAAc,QAAQJ,iBAAiB,KAAK;AACpE,aAAOD,aAAaO,KAAKC,WAAW,GAAA;IACtC;AACA,WAAO;EACT;AAEA,aAAWC,SAASZ,QAAQ;AAC1B,QAAIL,YAAYkB,WAAW,GAAG;AAC5BlB,kBAAYmB,KAAK;QAACF;OAAM;AACxB;IACF;AACA,UAAMG,iBAAiBpB,YAAYqB,GAAG,EAAC;AACvC,QAAIf,cAAcc,eAAeC,GAAG,EAAC,GAAKJ,KAAAA,GAAQ;AAChDG,qBAAeD,KAAKF,KAAAA;AACpB;IACF;AACAjB,gBAAYmB,KAAK;MAACF;KAAM;EAC1B;AAEA,SAAOjB;AACT;AAEO,IAAMI,mBAAmB,CAACkB,UAAAA;AAC/B,QAAMC,gBAA2C;IAC/CZ,QAAQW,MAAMD,GAAG,CAAA,EAAIV,OAAOC,MAAM,GAAA,EAAK,CAAA;IACvCY,OAAOF,MAAMG,OAAO,CAACC,KAAKT,UAAUS,MAAMT,MAAMO,OAAO,CAAA,IAAKF,MAAMJ;IAClES,OAAOL,MAAMD,GAAG,CAAA,EAAIM;IACpBZ,MAAMO,MAAMD,GAAG,CAAA,EAAIN;IACnBa,OAAON,MAAMD,GAAG,CAAA,EAAIO;IACpBC,KAAKP,MAAMD,GAAG,EAAC,EAAIQ;EACrB;AAEA,aAAWZ,SAASK,MAAMQ,MAAM,CAAA,GAAI;AAClC,QAAIb,MAAMF,KAAKC,WAAW,GAAA,GAAM;AAC9BO,oBAAcR,QAAQE,MAAMF,KAAKgB,QAAQ,OAAO,EAAA;IAClD,OAAO;AACLR,oBAAcR,QAAQ,MAAME,MAAMF;IACpC;EACF;AAEA,SAAOQ;AACT;",
|
|
6
|
+
"names": ["pipeline", "log", "_ner", "getNer", "then", "ner", "info", "extractFullEntities", "text", "entities", "tokenGroups", "createTokenGroups", "combinedEntities", "map", "combineNerTokens", "tokens", "canBeCombined", "prevToken", "currentToken", "currentState", "currentEntity", "entity", "split", "prevState", "prevEntity", "word", "startsWith", "token", "length", "push", "lastTokenGroup", "at", "group", "combinedToken", "score", "reduce", "acc", "index", "start", "end", "slice", "replace"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/session/artifact-diff.ts
|
|
4
|
+
import { Context } from "effect";
|
|
5
|
+
var ArtifactDiffResolver = class extends Context.Tag("@dxos/assistant/ArtifactDiffResolver")() {
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
// src/errors.ts
|
|
9
|
+
import { BaseError } from "@dxos/errors";
|
|
10
|
+
var AiAssistantError = class extends BaseError.extend("AI_ASSISTANT_ERROR") {
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// src/session/session.ts
|
|
14
|
+
import { AiLanguageModel, AiToolkit } from "@effect/ai";
|
|
15
|
+
import { Chunk, Effect as Effect2, Function, Option as Option2, Queue, Stream } from "effect";
|
|
16
|
+
import { AiParser, AiPreprocessor, ToolExecutionService, ToolResolverService, callTools, getToolCalls } from "@dxos/ai";
|
|
17
|
+
import { todo } from "@dxos/debug";
|
|
18
|
+
import { Obj as Obj2 } from "@dxos/echo";
|
|
19
|
+
import { log as log2 } from "@dxos/log";
|
|
20
|
+
import { DataType as DataType2 } from "@dxos/schema";
|
|
21
|
+
import { isNotFalsy } from "@dxos/util";
|
|
22
|
+
|
|
23
|
+
// src/session/format.ts
|
|
24
|
+
import { Array, Effect, Option, pipe } from "effect";
|
|
25
|
+
import { Template } from "@dxos/blueprints";
|
|
26
|
+
import { Obj } from "@dxos/echo";
|
|
27
|
+
import { ObjectVersion } from "@dxos/echo-db";
|
|
28
|
+
import { DatabaseService } from "@dxos/functions";
|
|
29
|
+
import { log } from "@dxos/log";
|
|
30
|
+
import { DataType } from "@dxos/schema";
|
|
31
|
+
import { trim } from "@dxos/util";
|
|
32
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/assistant/src/session/format.ts";
|
|
33
|
+
var formatSystemPrompt = ({ system, blueprints = [], objects = [] }) => Effect.gen(function* () {
|
|
34
|
+
const blueprintDefs = yield* pipe(blueprints, Effect.forEach((blueprint) => Effect.succeed(blueprint.instructions)), Effect.flatMap(Effect.forEach((template) => DatabaseService.load(template.source))), Effect.map(Array.map((template) => trim`
|
|
35
|
+
<blueprint>
|
|
36
|
+
${Template.process(template.content)}
|
|
37
|
+
</blueprint>
|
|
38
|
+
`)), Effect.map((blueprints2) => blueprints2.length > 0 ? [
|
|
39
|
+
"## Blueprints Definitions",
|
|
40
|
+
...blueprints2
|
|
41
|
+
].join("\n\n") : void 0));
|
|
42
|
+
const objectDefs = yield* pipe(objects, Effect.forEach((object) => Effect.succeed(trim`
|
|
43
|
+
<object>
|
|
44
|
+
<dxn>${Obj.getDXN(object)}</dxn>
|
|
45
|
+
<typename>${Obj.getTypename(object)}</typename>
|
|
46
|
+
</object>
|
|
47
|
+
`)), Effect.map((objects2) => objects2.length > 0 ? [
|
|
48
|
+
"## Context Objects",
|
|
49
|
+
...objects2
|
|
50
|
+
].join("\n\n") : void 0));
|
|
51
|
+
return yield* pipe(Effect.succeed([
|
|
52
|
+
system,
|
|
53
|
+
blueprintDefs,
|
|
54
|
+
objectDefs
|
|
55
|
+
].filter((def) => def !== void 0)), Effect.map((parts) => parts.join("\n\n")));
|
|
56
|
+
});
|
|
57
|
+
var formatUserPrompt = ({ prompt, history = [] }) => Effect.gen(function* () {
|
|
58
|
+
const prelude = [];
|
|
59
|
+
const artifactDiffResolver = yield* Effect.serviceOption(ArtifactDiffResolver);
|
|
60
|
+
if (Option.isSome(artifactDiffResolver)) {
|
|
61
|
+
const versions = gatherObjectVersions(history);
|
|
62
|
+
const artifactDiff = yield* Effect.tryPromise({
|
|
63
|
+
try: () => artifactDiffResolver.value.resolve([
|
|
64
|
+
...versions.entries()
|
|
65
|
+
].map(([id, version]) => ({
|
|
66
|
+
id,
|
|
67
|
+
lastVersion: version
|
|
68
|
+
}))),
|
|
69
|
+
catch: AiAssistantError.wrap("Artifact diff resolution error")
|
|
70
|
+
});
|
|
71
|
+
log.info("version", {
|
|
72
|
+
artifactDiff,
|
|
73
|
+
versions
|
|
74
|
+
}, {
|
|
75
|
+
F: __dxlog_file,
|
|
76
|
+
L: 90,
|
|
77
|
+
S: this,
|
|
78
|
+
C: (f, a) => f(...a)
|
|
79
|
+
});
|
|
80
|
+
for (const [id, { version }] of [
|
|
81
|
+
...artifactDiff.entries()
|
|
82
|
+
]) {
|
|
83
|
+
if (ObjectVersion.equals(version, versions.get(id))) {
|
|
84
|
+
artifactDiff.delete(id);
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
prelude.push({
|
|
88
|
+
_tag: "anchor",
|
|
89
|
+
objectId: id,
|
|
90
|
+
version
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (artifactDiff.size > 0) {
|
|
94
|
+
prelude.push(createArtifactUpdateBlock(artifactDiff));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return Obj.make(DataType.Message, {
|
|
98
|
+
created: (/* @__PURE__ */ new Date()).toISOString(),
|
|
99
|
+
sender: {
|
|
100
|
+
role: "user"
|
|
101
|
+
},
|
|
102
|
+
blocks: [
|
|
103
|
+
...prelude,
|
|
104
|
+
{
|
|
105
|
+
_tag: "text",
|
|
106
|
+
text: prompt
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
var gatherObjectVersions = (messages) => {
|
|
112
|
+
const artifactIds = /* @__PURE__ */ new Map();
|
|
113
|
+
for (const message of messages) {
|
|
114
|
+
for (const block of message.blocks) {
|
|
115
|
+
if (block._tag === "anchor") {
|
|
116
|
+
artifactIds.set(block.objectId, block.version);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return artifactIds;
|
|
121
|
+
};
|
|
122
|
+
var createArtifactUpdateBlock = (artifactDiff) => {
|
|
123
|
+
return {
|
|
124
|
+
_tag: "text",
|
|
125
|
+
// TODO(dmaretskyi): Does this need to be a special content-block?
|
|
126
|
+
disposition: "artifact-update",
|
|
127
|
+
text: trim`
|
|
128
|
+
The following artifacts have been updated since the last message:
|
|
129
|
+
${[
|
|
130
|
+
...artifactDiff.entries()
|
|
131
|
+
].map(([id, { diff }]) => `<changed-artifact id="${id}">${diff ? `
|
|
132
|
+
${diff}` : ""}</changed-artifact>`).join("\n")}
|
|
133
|
+
`
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
// src/session/session.ts
|
|
138
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/core/assistant/src/session/session.ts";
|
|
139
|
+
var GenerationObserver = Object.freeze({
|
|
140
|
+
make: ({ onPart = Function.constant(Effect2.void), onBlock = Function.constant(Effect2.void), onMessage = Function.constant(Effect2.void) } = {}) => ({
|
|
141
|
+
onPart,
|
|
142
|
+
onBlock,
|
|
143
|
+
onMessage
|
|
144
|
+
}),
|
|
145
|
+
noop: () => GenerationObserver.make(),
|
|
146
|
+
/**
|
|
147
|
+
* Debug printer to be used in unit-tests and browser devtools.
|
|
148
|
+
*/
|
|
149
|
+
fromPrinter: (printer) => GenerationObserver.make({
|
|
150
|
+
onBlock: (block) => Effect2.sync(() => {
|
|
151
|
+
if (block.pending) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
printer.printContentBlock(block);
|
|
155
|
+
}),
|
|
156
|
+
onMessage: (message) => Effect2.sync(() => {
|
|
157
|
+
if (message.sender.role === "assistant") {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
printer.printMessage(message);
|
|
161
|
+
})
|
|
162
|
+
})
|
|
163
|
+
});
|
|
164
|
+
var AiSession = class {
|
|
165
|
+
_options;
|
|
166
|
+
/** Complete messages fired during the session, both from the model and from the user. */
|
|
167
|
+
messageQueue;
|
|
168
|
+
// TODO(dmaretskyi): Remove the queues and convert everything to observer.
|
|
169
|
+
/**
|
|
170
|
+
* Blocks streaming from the model during the session.
|
|
171
|
+
* @deprecated Use `observer.onBlock` instead.
|
|
172
|
+
*/
|
|
173
|
+
blockQueue;
|
|
174
|
+
/** Unparsed events from the underlying generation stream. */
|
|
175
|
+
eventQueue;
|
|
176
|
+
/** Prevents concurrent execution of session. */
|
|
177
|
+
_semaphore;
|
|
178
|
+
/** Pending messages (incl. the current user request). */
|
|
179
|
+
_pending;
|
|
180
|
+
/** Prior history from queue. */
|
|
181
|
+
_history;
|
|
182
|
+
constructor(_options = {}) {
|
|
183
|
+
this._options = _options;
|
|
184
|
+
this.messageQueue = Effect2.runSync(Queue.unbounded());
|
|
185
|
+
this.blockQueue = Effect2.runSync(Queue.unbounded());
|
|
186
|
+
this.eventQueue = Effect2.runSync(Queue.unbounded());
|
|
187
|
+
this._semaphore = Effect2.runSync(Effect2.makeSemaphore(1));
|
|
188
|
+
this._pending = [];
|
|
189
|
+
this._history = [];
|
|
190
|
+
this.run = (params) => Effect2.gen(this, function* () {
|
|
191
|
+
const observer = params.observer ?? GenerationObserver.noop();
|
|
192
|
+
const toolkit = yield* createToolkit(params);
|
|
193
|
+
const system = yield* formatSystemPrompt(params);
|
|
194
|
+
console.log(system);
|
|
195
|
+
const promptMessages = yield* formatUserPrompt(params);
|
|
196
|
+
yield* this.messageQueue.offer(promptMessages);
|
|
197
|
+
yield* observer.onMessage(promptMessages);
|
|
198
|
+
this._history = [
|
|
199
|
+
...params.history ?? []
|
|
200
|
+
];
|
|
201
|
+
this._pending = [
|
|
202
|
+
promptMessages
|
|
203
|
+
];
|
|
204
|
+
do {
|
|
205
|
+
log2.info("request", {
|
|
206
|
+
prompt: promptMessages,
|
|
207
|
+
system: {
|
|
208
|
+
snippet: [
|
|
209
|
+
system.slice(0, 32),
|
|
210
|
+
"...",
|
|
211
|
+
system.slice(-32)
|
|
212
|
+
].join(""),
|
|
213
|
+
length: system.length
|
|
214
|
+
},
|
|
215
|
+
pending: this._pending.length,
|
|
216
|
+
history: this._history.length,
|
|
217
|
+
objects: params.objects?.length ?? 0,
|
|
218
|
+
blueprints: params.blueprints?.length ?? 0,
|
|
219
|
+
toolkit: Object.values(toolkit.tools).map((tool) => tool.name)
|
|
220
|
+
}, {
|
|
221
|
+
F: __dxlog_file2,
|
|
222
|
+
L: 174,
|
|
223
|
+
S: this,
|
|
224
|
+
C: (f, a) => f(...a)
|
|
225
|
+
});
|
|
226
|
+
const prompt = yield* AiPreprocessor.preprocessAiInput([
|
|
227
|
+
...this._history,
|
|
228
|
+
...this._pending
|
|
229
|
+
]);
|
|
230
|
+
const blocks = yield* AiLanguageModel.streamText({
|
|
231
|
+
prompt,
|
|
232
|
+
system,
|
|
233
|
+
toolkit,
|
|
234
|
+
// TODO(burdon): Despite this flag, the model still calls tools.
|
|
235
|
+
// Flag is only used in generateText (not streamText); patch and submit bug.
|
|
236
|
+
// https://github.com/Effect-TS/effect/blob/main/packages/ai/ai/src/AiLanguageModel.ts#L401
|
|
237
|
+
disableToolCallResolution: true
|
|
238
|
+
}).pipe(AiParser.parseResponse({
|
|
239
|
+
onBlock: (block) => Effect2.all([
|
|
240
|
+
this.blockQueue.offer(Option2.some(block)),
|
|
241
|
+
observer.onBlock(block)
|
|
242
|
+
], {
|
|
243
|
+
discard: true
|
|
244
|
+
}),
|
|
245
|
+
onPart: (part) => Effect2.all([
|
|
246
|
+
this.eventQueue.offer(part),
|
|
247
|
+
observer.onPart(part)
|
|
248
|
+
], {
|
|
249
|
+
discard: true
|
|
250
|
+
})
|
|
251
|
+
}), Stream.runCollect, Effect2.map(Chunk.toArray));
|
|
252
|
+
yield* this.blockQueue.offer(Option2.none());
|
|
253
|
+
const response = Obj2.make(DataType2.Message, {
|
|
254
|
+
created: (/* @__PURE__ */ new Date()).toISOString(),
|
|
255
|
+
sender: {
|
|
256
|
+
role: "assistant"
|
|
257
|
+
},
|
|
258
|
+
blocks
|
|
259
|
+
});
|
|
260
|
+
this._pending.push(response);
|
|
261
|
+
yield* this.messageQueue.offer(response);
|
|
262
|
+
yield* observer.onMessage(response);
|
|
263
|
+
const toolCalls = getToolCalls(response);
|
|
264
|
+
if (toolCalls.length === 0) {
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
const toolResults = yield* callTools(toolkit, toolCalls);
|
|
268
|
+
const toolResultsMessage = Obj2.make(DataType2.Message, {
|
|
269
|
+
created: (/* @__PURE__ */ new Date()).toISOString(),
|
|
270
|
+
sender: {
|
|
271
|
+
role: "user"
|
|
272
|
+
},
|
|
273
|
+
blocks: toolResults
|
|
274
|
+
});
|
|
275
|
+
this._pending.push(toolResultsMessage);
|
|
276
|
+
yield* this.messageQueue.offer(toolResultsMessage);
|
|
277
|
+
yield* observer.onMessage(toolResultsMessage);
|
|
278
|
+
} while (true);
|
|
279
|
+
yield* Queue.shutdown(this.messageQueue);
|
|
280
|
+
yield* Queue.shutdown(this.blockQueue);
|
|
281
|
+
yield* Queue.shutdown(this.eventQueue);
|
|
282
|
+
log2("done", {
|
|
283
|
+
pending: this._pending.length
|
|
284
|
+
}, {
|
|
285
|
+
F: __dxlog_file2,
|
|
286
|
+
L: 244,
|
|
287
|
+
S: this,
|
|
288
|
+
C: (f, a) => f(...a)
|
|
289
|
+
});
|
|
290
|
+
return this._pending;
|
|
291
|
+
}).pipe(this._semaphore.withPermits(1), Effect2.withSpan("AiSession.run"));
|
|
292
|
+
}
|
|
293
|
+
run;
|
|
294
|
+
// TODO(burdon): Implement.
|
|
295
|
+
async runStructured(_schema, _options) {
|
|
296
|
+
return todo();
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
var createToolkit = ({ toolkit, blueprints = [] }) => Effect2.gen(function* () {
|
|
300
|
+
const blueprintToolkit = yield* ToolResolverService.resolveToolkit(blueprints.flatMap(({ tools }) => tools));
|
|
301
|
+
const blueprintToolkitHandler = yield* blueprintToolkit.toContext(ToolExecutionService.handlersFor(blueprintToolkit));
|
|
302
|
+
return yield* AiToolkit.merge(...[
|
|
303
|
+
toolkit,
|
|
304
|
+
blueprintToolkit
|
|
305
|
+
].filter(isNotFalsy)).pipe(Effect2.provide(blueprintToolkitHandler));
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
// src/session/version-pin.ts
|
|
309
|
+
import { Schema } from "effect";
|
|
310
|
+
import { getVersion } from "@dxos/echo-db";
|
|
311
|
+
import { ObjectId } from "@dxos/echo-schema";
|
|
312
|
+
var ObjectVersionSchema = Schema.Unknown;
|
|
313
|
+
var VersionPinSchema = Schema.Struct({
|
|
314
|
+
// TODO(dmaretskyi): Use Ref when those support encoding.
|
|
315
|
+
objectId: ObjectId,
|
|
316
|
+
// TODO(dmaretskyi): Could be opaque.
|
|
317
|
+
version: ObjectVersionSchema
|
|
318
|
+
});
|
|
319
|
+
var VersionPin = class extends VersionPinSchema {
|
|
320
|
+
static DISPOSITION = "version-pin";
|
|
321
|
+
static fromObject(object) {
|
|
322
|
+
return VersionPin.make({
|
|
323
|
+
objectId: object.id,
|
|
324
|
+
version: getVersion(object)
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
static createBlock(pin) {
|
|
328
|
+
return {
|
|
329
|
+
_tag: "json",
|
|
330
|
+
disposition: VersionPin.DISPOSITION,
|
|
331
|
+
data: JSON.stringify(pin)
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
};
|
|
335
|
+
|
|
336
|
+
export {
|
|
337
|
+
ArtifactDiffResolver,
|
|
338
|
+
AiAssistantError,
|
|
339
|
+
GenerationObserver,
|
|
340
|
+
AiSession,
|
|
341
|
+
VersionPin
|
|
342
|
+
};
|
|
343
|
+
//# sourceMappingURL=chunk-XOOPGSGW.mjs.map
|