@ixo/common 1.1.0
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/.eslintrc.js +9 -0
- package/.prettierignore +3 -0
- package/.prettierrc.cjs +4 -0
- package/.turbo/turbo-build.log +4 -0
- package/CHANGELOG.md +76 -0
- package/README.md +245 -0
- package/dist/ai/checkpointer/index.d.ts +2 -0
- package/dist/ai/checkpointer/index.d.ts.map +1 -0
- package/dist/ai/checkpointer/index.js +2 -0
- package/dist/ai/checkpointer/index.js.map +1 -0
- package/dist/ai/index.d.ts +9 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +9 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/models/index.d.ts +2 -0
- package/dist/ai/models/index.d.ts.map +1 -0
- package/dist/ai/models/index.js +2 -0
- package/dist/ai/models/index.js.map +1 -0
- package/dist/ai/models/openai.d.ts +10 -0
- package/dist/ai/models/openai.d.ts.map +1 -0
- package/dist/ai/models/openai.js +38 -0
- package/dist/ai/models/openai.js.map +1 -0
- package/dist/ai/models/openai.test.d.ts +2 -0
- package/dist/ai/models/openai.test.d.ts.map +1 -0
- package/dist/ai/models/openai.test.js +58 -0
- package/dist/ai/models/openai.test.js.map +1 -0
- package/dist/ai/nodes/create-fake-node.d.ts +2 -0
- package/dist/ai/nodes/create-fake-node.d.ts.map +1 -0
- package/dist/ai/nodes/create-fake-node.js +2 -0
- package/dist/ai/nodes/create-fake-node.js.map +1 -0
- package/dist/ai/nodes/find-docs/find-docs.prompt.d.ts +3 -0
- package/dist/ai/nodes/find-docs/find-docs.prompt.d.ts.map +1 -0
- package/dist/ai/nodes/find-docs/find-docs.prompt.js +61 -0
- package/dist/ai/nodes/find-docs/find-docs.prompt.js.map +1 -0
- package/dist/ai/nodes/find-docs/index.d.ts +3 -0
- package/dist/ai/nodes/find-docs/index.d.ts.map +1 -0
- package/dist/ai/nodes/find-docs/index.js +3 -0
- package/dist/ai/nodes/find-docs/index.js.map +1 -0
- package/dist/ai/nodes/find-docs/node.d.ts +17 -0
- package/dist/ai/nodes/find-docs/node.d.ts.map +1 -0
- package/dist/ai/nodes/find-docs/node.js +46 -0
- package/dist/ai/nodes/find-docs/node.js.map +1 -0
- package/dist/ai/nodes/generic-chat/generic-chat.node.d.ts +12 -0
- package/dist/ai/nodes/generic-chat/generic-chat.node.d.ts.map +1 -0
- package/dist/ai/nodes/generic-chat/generic-chat.node.js +34 -0
- package/dist/ai/nodes/generic-chat/generic-chat.node.js.map +1 -0
- package/dist/ai/nodes/generic-chat/generic-chat.prompt.d.ts +10 -0
- package/dist/ai/nodes/generic-chat/generic-chat.prompt.d.ts.map +1 -0
- package/dist/ai/nodes/generic-chat/generic-chat.prompt.js +58 -0
- package/dist/ai/nodes/generic-chat/generic-chat.prompt.js.map +1 -0
- package/dist/ai/nodes/generic-chat/index.d.ts +2 -0
- package/dist/ai/nodes/generic-chat/index.d.ts.map +1 -0
- package/dist/ai/nodes/generic-chat/index.js +2 -0
- package/dist/ai/nodes/generic-chat/index.js.map +1 -0
- package/dist/ai/nodes/index.d.ts +4 -0
- package/dist/ai/nodes/index.d.ts.map +1 -0
- package/dist/ai/nodes/index.js +4 -0
- package/dist/ai/nodes/index.js.map +1 -0
- package/dist/ai/semantic-router-factory/create-semantic-router.d.ts +7 -0
- package/dist/ai/semantic-router-factory/create-semantic-router.d.ts.map +1 -0
- package/dist/ai/semantic-router-factory/create-semantic-router.js +71 -0
- package/dist/ai/semantic-router-factory/create-semantic-router.js.map +1 -0
- package/dist/ai/semantic-router-factory/create-semantic-router.test.d.ts +2 -0
- package/dist/ai/semantic-router-factory/create-semantic-router.test.d.ts.map +1 -0
- package/dist/ai/semantic-router-factory/create-semantic-router.test.js +68 -0
- package/dist/ai/semantic-router-factory/create-semantic-router.test.js.map +1 -0
- package/dist/ai/semantic-router-factory/index.d.ts +4 -0
- package/dist/ai/semantic-router-factory/index.d.ts.map +1 -0
- package/dist/ai/semantic-router-factory/index.js +4 -0
- package/dist/ai/semantic-router-factory/index.js.map +1 -0
- package/dist/ai/semantic-router-factory/semantic-router-prompt.d.ts +2 -0
- package/dist/ai/semantic-router-factory/semantic-router-prompt.d.ts.map +1 -0
- package/dist/ai/semantic-router-factory/semantic-router-prompt.js +169 -0
- package/dist/ai/semantic-router-factory/semantic-router-prompt.js.map +1 -0
- package/dist/ai/semantic-router-factory/validate-routes.d.ts +2 -0
- package/dist/ai/semantic-router-factory/validate-routes.d.ts.map +1 -0
- package/dist/ai/semantic-router-factory/validate-routes.js +16 -0
- package/dist/ai/semantic-router-factory/validate-routes.js.map +1 -0
- package/dist/ai/tools/action-caller.d.ts +14 -0
- package/dist/ai/tools/action-caller.d.ts.map +1 -0
- package/dist/ai/tools/action-caller.js +12 -0
- package/dist/ai/tools/action-caller.js.map +1 -0
- package/dist/ai/tools/ask-ixo-guru/ask-ixo-guru.d.ts +25 -0
- package/dist/ai/tools/ask-ixo-guru/ask-ixo-guru.d.ts.map +1 -0
- package/dist/ai/tools/ask-ixo-guru/ask-ixo-guru.js +46 -0
- package/dist/ai/tools/ask-ixo-guru/ask-ixo-guru.js.map +1 -0
- package/dist/ai/tools/ask-ixo-guru/index.d.ts +2 -0
- package/dist/ai/tools/ask-ixo-guru/index.d.ts.map +1 -0
- package/dist/ai/tools/ask-ixo-guru/index.js +2 -0
- package/dist/ai/tools/ask-ixo-guru/index.js.map +1 -0
- package/dist/ai/tools/browser-tool-caller.d.ts +14 -0
- package/dist/ai/tools/browser-tool-caller.d.ts.map +1 -0
- package/dist/ai/tools/browser-tool-caller.js +12 -0
- package/dist/ai/tools/browser-tool-caller.js.map +1 -0
- package/dist/ai/tools/frontend-tool-caller.d.ts +10 -0
- package/dist/ai/tools/frontend-tool-caller.d.ts.map +1 -0
- package/dist/ai/tools/frontend-tool-caller.js +50 -0
- package/dist/ai/tools/frontend-tool-caller.js.map +1 -0
- package/dist/ai/tools/index.d.ts +11 -0
- package/dist/ai/tools/index.d.ts.map +1 -0
- package/dist/ai/tools/index.js +11 -0
- package/dist/ai/tools/index.js.map +1 -0
- package/dist/ai/tools/log-action-to-matrix.d.ts +13 -0
- package/dist/ai/tools/log-action-to-matrix.d.ts.map +1 -0
- package/dist/ai/tools/log-action-to-matrix.js +14 -0
- package/dist/ai/tools/log-action-to-matrix.js.map +1 -0
- package/dist/ai/tools/parser-action-tool.d.ts +8 -0
- package/dist/ai/tools/parser-action-tool.d.ts.map +1 -0
- package/dist/ai/tools/parser-action-tool.js +40 -0
- package/dist/ai/tools/parser-action-tool.js.map +1 -0
- package/dist/ai/tools/parser-browser-tool.d.ts +8 -0
- package/dist/ai/tools/parser-browser-tool.d.ts.map +1 -0
- package/dist/ai/tools/parser-browser-tool.js +38 -0
- package/dist/ai/tools/parser-browser-tool.js.map +1 -0
- package/dist/ai/tools/retriever-tool/index.d.ts +2 -0
- package/dist/ai/tools/retriever-tool/index.d.ts.map +1 -0
- package/dist/ai/tools/retriever-tool/index.js +2 -0
- package/dist/ai/tools/retriever-tool/index.js.map +1 -0
- package/dist/ai/tools/retriever-tool/retriever-tool.d.ts +18 -0
- package/dist/ai/tools/retriever-tool/retriever-tool.d.ts.map +1 -0
- package/dist/ai/tools/retriever-tool/retriever-tool.js +62 -0
- package/dist/ai/tools/retriever-tool/retriever-tool.js.map +1 -0
- package/dist/ai/tools/retriever-tool/retriever-tool.test.d.ts +2 -0
- package/dist/ai/tools/retriever-tool/retriever-tool.test.d.ts.map +1 -0
- package/dist/ai/tools/retriever-tool/retriever-tool.test.js +119 -0
- package/dist/ai/tools/retriever-tool/retriever-tool.test.js.map +1 -0
- package/dist/ai/tools/scrape-web-page.d.ts +7 -0
- package/dist/ai/tools/scrape-web-page.d.ts.map +1 -0
- package/dist/ai/tools/scrape-web-page.js +65 -0
- package/dist/ai/tools/scrape-web-page.js.map +1 -0
- package/dist/ai/tools/web-search-tool.d.ts +10 -0
- package/dist/ai/tools/web-search-tool.d.ts.map +1 -0
- package/dist/ai/tools/web-search-tool.js +30 -0
- package/dist/ai/tools/web-search-tool.js.map +1 -0
- package/dist/ai/types.d.ts +4 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +2 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/ai/utils/__tests__/chunk-arr.test.d.ts +2 -0
- package/dist/ai/utils/__tests__/chunk-arr.test.d.ts.map +1 -0
- package/dist/ai/utils/__tests__/chunk-arr.test.js +37 -0
- package/dist/ai/utils/__tests__/chunk-arr.test.js.map +1 -0
- package/dist/ai/utils/__tests__/doc-relevance-checker.test.d.ts +2 -0
- package/dist/ai/utils/__tests__/doc-relevance-checker.test.d.ts.map +1 -0
- package/dist/ai/utils/__tests__/doc-relevance-checker.test.js +80 -0
- package/dist/ai/utils/__tests__/doc-relevance-checker.test.js.map +1 -0
- package/dist/ai/utils/__tests__/doc-splitter.test.d.ts +2 -0
- package/dist/ai/utils/__tests__/doc-splitter.test.d.ts.map +1 -0
- package/dist/ai/utils/__tests__/doc-splitter.test.js +35 -0
- package/dist/ai/utils/__tests__/doc-splitter.test.js.map +1 -0
- package/dist/ai/utils/__tests__/filter-similarity-search-results.test.d.ts +2 -0
- package/dist/ai/utils/__tests__/filter-similarity-search-results.test.d.ts.map +1 -0
- package/dist/ai/utils/__tests__/filter-similarity-search-results.test.js +47 -0
- package/dist/ai/utils/__tests__/filter-similarity-search-results.test.js.map +1 -0
- package/dist/ai/utils/__tests__/json-to-yaml.test.d.ts +2 -0
- package/dist/ai/utils/__tests__/json-to-yaml.test.d.ts.map +1 -0
- package/dist/ai/utils/__tests__/json-to-yaml.test.js +63 -0
- package/dist/ai/utils/__tests__/json-to-yaml.test.js.map +1 -0
- package/dist/ai/utils/__tests__/stringify-docs.test.d.ts +2 -0
- package/dist/ai/utils/__tests__/stringify-docs.test.d.ts.map +1 -0
- package/dist/ai/utils/__tests__/stringify-docs.test.js +54 -0
- package/dist/ai/utils/__tests__/stringify-docs.test.js.map +1 -0
- package/dist/ai/utils/chunk-arr.d.ts +3 -0
- package/dist/ai/utils/chunk-arr.d.ts.map +1 -0
- package/dist/ai/utils/chunk-arr.js +13 -0
- package/dist/ai/utils/chunk-arr.js.map +1 -0
- package/dist/ai/utils/doc-relevance-checker.d.ts +10 -0
- package/dist/ai/utils/doc-relevance-checker.d.ts.map +1 -0
- package/dist/ai/utils/doc-relevance-checker.js +37 -0
- package/dist/ai/utils/doc-relevance-checker.js.map +1 -0
- package/dist/ai/utils/doc-splitter.d.ts +3 -0
- package/dist/ai/utils/doc-splitter.d.ts.map +1 -0
- package/dist/ai/utils/doc-splitter.js +20 -0
- package/dist/ai/utils/doc-splitter.js.map +1 -0
- package/dist/ai/utils/filter-similarity-search-results.d.ts +4 -0
- package/dist/ai/utils/filter-similarity-search-results.d.ts.map +1 -0
- package/dist/ai/utils/filter-similarity-search-results.js +11 -0
- package/dist/ai/utils/filter-similarity-search-results.js.map +1 -0
- package/dist/ai/utils/generate-questions-from-chunks.d.ts +15 -0
- package/dist/ai/utils/generate-questions-from-chunks.d.ts.map +1 -0
- package/dist/ai/utils/generate-questions-from-chunks.js +101 -0
- package/dist/ai/utils/generate-questions-from-chunks.js.map +1 -0
- package/dist/ai/utils/index.d.ts +11 -0
- package/dist/ai/utils/index.d.ts.map +1 -0
- package/dist/ai/utils/index.js +11 -0
- package/dist/ai/utils/index.js.map +1 -0
- package/dist/ai/utils/json-to-yaml.d.ts +2 -0
- package/dist/ai/utils/json-to-yaml.d.ts.map +1 -0
- package/dist/ai/utils/json-to-yaml.js +25 -0
- package/dist/ai/utils/json-to-yaml.js.map +1 -0
- package/dist/ai/utils/load-file.d.ts +3 -0
- package/dist/ai/utils/load-file.d.ts.map +1 -0
- package/dist/ai/utils/load-file.js +133 -0
- package/dist/ai/utils/load-file.js.map +1 -0
- package/dist/ai/utils/stringify-docs.d.ts +3 -0
- package/dist/ai/utils/stringify-docs.d.ts.map +1 -0
- package/dist/ai/utils/stringify-docs.js +6 -0
- package/dist/ai/utils/stringify-docs.js.map +1 -0
- package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.d.ts +35 -0
- package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.d.ts.map +1 -0
- package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.js +55 -0
- package/dist/ai/utils/transformGraphStateMessageToListMessageResponse.js.map +1 -0
- package/dist/ai/utils/verify-matrix-openId-token.d.ts +6 -0
- package/dist/ai/utils/verify-matrix-openId-token.d.ts.map +1 -0
- package/dist/ai/utils/verify-matrix-openId-token.js +36 -0
- package/dist/ai/utils/verify-matrix-openId-token.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/services/env/env-service.test.d.ts +2 -0
- package/dist/services/env/env-service.test.d.ts.map +1 -0
- package/dist/services/env/env-service.test.js +99 -0
- package/dist/services/env/env-service.test.js.map +1 -0
- package/dist/services/env/env.service.d.ts +11 -0
- package/dist/services/env/env.service.d.ts.map +1 -0
- package/dist/services/env/env.service.js +42 -0
- package/dist/services/env/env.service.js.map +1 -0
- package/dist/services/env/index.d.ts +2 -0
- package/dist/services/env/index.d.ts.map +1 -0
- package/dist/services/env/index.js +2 -0
- package/dist/services/env/index.js.map +1 -0
- package/dist/services/index.d.ts +5 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +5 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/memory-engine/memory-engine.service.d.ts +35 -0
- package/dist/services/memory-engine/memory-engine.service.d.ts.map +1 -0
- package/dist/services/memory-engine/memory-engine.service.js +295 -0
- package/dist/services/memory-engine/memory-engine.service.js.map +1 -0
- package/dist/services/memory-engine/types.d.ts +88 -0
- package/dist/services/memory-engine/types.d.ts.map +1 -0
- package/dist/services/memory-engine/types.js +2 -0
- package/dist/services/memory-engine/types.js.map +1 -0
- package/dist/services/session-manager/dto.d.ts +40 -0
- package/dist/services/session-manager/dto.d.ts.map +1 -0
- package/dist/services/session-manager/dto.js +170 -0
- package/dist/services/session-manager/dto.js.map +1 -0
- package/dist/services/session-manager/errors.d.ts +22 -0
- package/dist/services/session-manager/errors.d.ts.map +1 -0
- package/dist/services/session-manager/errors.js +41 -0
- package/dist/services/session-manager/errors.js.map +1 -0
- package/dist/services/session-manager/index.d.ts +4 -0
- package/dist/services/session-manager/index.d.ts.map +1 -0
- package/dist/services/session-manager/index.js +4 -0
- package/dist/services/session-manager/index.js.map +1 -0
- package/dist/services/session-manager/session-manager.service.d.ts +40 -0
- package/dist/services/session-manager/session-manager.service.d.ts.map +1 -0
- package/dist/services/session-manager/session-manager.service.js +251 -0
- package/dist/services/session-manager/session-manager.service.js.map +1 -0
- package/dist/utils/get-user-subscription.d.ts +21 -0
- package/dist/utils/get-user-subscription.d.ts.map +1 -0
- package/dist/utils/get-user-subscription.js +44 -0
- package/dist/utils/get-user-subscription.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/docs/ai-module.md +84 -0
- package/docs/services.md +168 -0
- package/docs/tools.md +325 -0
- package/jest.config.js +6 -0
- package/package.json +81 -0
- package/src/ai/checkpointer/index.ts +1 -0
- package/src/ai/index.ts +8 -0
- package/src/ai/models/index.ts +1 -0
- package/src/ai/models/openai.test.ts +72 -0
- package/src/ai/models/openai.ts +54 -0
- package/src/ai/nodes/create-fake-node.ts +1 -0
- package/src/ai/nodes/find-docs/find-docs.prompt.ts +61 -0
- package/src/ai/nodes/find-docs/index.ts +2 -0
- package/src/ai/nodes/find-docs/node.ts +83 -0
- package/src/ai/nodes/generic-chat/generic-chat.node.ts +58 -0
- package/src/ai/nodes/generic-chat/generic-chat.prompt.ts +66 -0
- package/src/ai/nodes/generic-chat/index.ts +1 -0
- package/src/ai/nodes/index.ts +3 -0
- package/src/ai/semantic-router-factory/create-semantic-router.test.ts +98 -0
- package/src/ai/semantic-router-factory/create-semantic-router.ts +136 -0
- package/src/ai/semantic-router-factory/index.ts +3 -0
- package/src/ai/semantic-router-factory/semantic-router-prompt.ts +168 -0
- package/src/ai/semantic-router-factory/validate-routes.ts +26 -0
- package/src/ai/tools/action-caller.ts +37 -0
- package/src/ai/tools/ask-ixo-guru/ask-ixo-guru.ts +73 -0
- package/src/ai/tools/ask-ixo-guru/index.ts +1 -0
- package/src/ai/tools/browser-tool-caller.ts +37 -0
- package/src/ai/tools/frontend-tool-caller.ts +86 -0
- package/src/ai/tools/index.ts +10 -0
- package/src/ai/tools/log-action-to-matrix.ts +30 -0
- package/src/ai/tools/parser-action-tool.ts +61 -0
- package/src/ai/tools/parser-browser-tool.ts +55 -0
- package/src/ai/tools/retriever-tool/index.ts +1 -0
- package/src/ai/tools/retriever-tool/retriever-tool.test.ts +156 -0
- package/src/ai/tools/retriever-tool/retriever-tool.ts +107 -0
- package/src/ai/tools/scrape-web-page.ts +75 -0
- package/src/ai/tools/web-search-tool.ts +38 -0
- package/src/ai/types.ts +6 -0
- package/src/ai/utils/__tests__/chunk-arr.test.ts +46 -0
- package/src/ai/utils/__tests__/doc-relevance-checker.test.ts +90 -0
- package/src/ai/utils/__tests__/doc-splitter.test.ts +42 -0
- package/src/ai/utils/__tests__/filter-similarity-search-results.test.ts +57 -0
- package/src/ai/utils/__tests__/json-to-yaml.test.ts +70 -0
- package/src/ai/utils/__tests__/stringify-docs.test.ts +61 -0
- package/src/ai/utils/chunk-arr.ts +13 -0
- package/src/ai/utils/doc-relevance-checker.ts +58 -0
- package/src/ai/utils/doc-splitter.ts +28 -0
- package/src/ai/utils/filter-similarity-search-results.ts +15 -0
- package/src/ai/utils/generate-questions-from-chunks.ts +114 -0
- package/src/ai/utils/index.ts +10 -0
- package/src/ai/utils/json-to-yaml.ts +32 -0
- package/src/ai/utils/load-file.ts +170 -0
- package/src/ai/utils/stringify-docs.ts +14 -0
- package/src/ai/utils/transformGraphStateMessageToListMessageResponse.ts +108 -0
- package/src/ai/utils/verify-matrix-openId-token.ts +46 -0
- package/src/index.ts +3 -0
- package/src/services/env/env-service.test.ts +153 -0
- package/src/services/env/env.service.ts +65 -0
- package/src/services/env/index.ts +1 -0
- package/src/services/index.ts +4 -0
- package/src/services/memory-engine/memory-engine.service.ts +486 -0
- package/src/services/memory-engine/types.ts +208 -0
- package/src/services/session-manager/dto.ts +120 -0
- package/src/services/session-manager/errors.ts +56 -0
- package/src/services/session-manager/index.ts +3 -0
- package/src/services/session-manager/session-manager.service.ts +405 -0
- package/src/utils/get-user-subscription.ts +84 -0
- package/src/utils/index.ts +1 -0
- package/tsconfig.json +16 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-router-prompt.js","sourceRoot":"","sources":["../../../src/ai/semantic-router-factory/semantic-router-prompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuKnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-routes.d.ts","sourceRoot":"","sources":["../../../src/ai/semantic-router-factory/validate-routes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,GACzB,CAAC,SAAS,MAAM,EAAE,EAClB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAEzD,QAAQ,CAAC,EACT,SAAS,CAAC,KACT,CAAC,MAAM,CAAC,CAAC,EAmBX,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const validateRoutes = (routes, basedOn) => {
|
|
2
|
+
const keys = Object.keys(routes);
|
|
3
|
+
if (keys.length <= 1) {
|
|
4
|
+
throw new Error(`The routes must have at least 2 routes ${keys.toString()} provided`);
|
|
5
|
+
}
|
|
6
|
+
for (const key in routes) {
|
|
7
|
+
const value = routes[key];
|
|
8
|
+
basedOn.forEach((element) => {
|
|
9
|
+
if (!value?.includes(element)) {
|
|
10
|
+
throw new Error(`Invalid route map the value of the route ${key} must include the ${basedOn.toString()} So that the route can be resolve the path`);
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
return keys;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=validate-routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-routes.js","sourceRoot":"","sources":["../../../src/ai/semantic-router-factory/validate-routes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAI5B,MAAS,EACT,OAAU,EACG,EAAE;IACf,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAgB,CAAC;IAChD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,0CAA0C,IAAI,CAAC,QAAQ,EAAE,WAAW,CACrE,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAE1B,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1B,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CACb,4CAA4C,GAAG,qBAAqB,OAAO,CAAC,QAAQ,EAAE,4CAA4C,CACnI,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface AgActionResult {
|
|
2
|
+
result?: any;
|
|
3
|
+
error?: string;
|
|
4
|
+
success: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface IAgActionCallerParams {
|
|
7
|
+
sessionId: string;
|
|
8
|
+
toolCallId: string;
|
|
9
|
+
toolName: string;
|
|
10
|
+
args: any;
|
|
11
|
+
timeout?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function callAgAction({ sessionId, toolCallId, toolName, args, timeout, }: IAgActionCallerParams): Promise<any>;
|
|
14
|
+
//# sourceMappingURL=action-caller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-caller.d.ts","sourceRoot":"","sources":["../../../src/ai/tools/action-caller.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD,wBAAsB,YAAY,CAAC,EACjC,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,OAAe,GAChB,EAAE,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,CAStC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { callFrontendTool } from './frontend-tool-caller.js';
|
|
2
|
+
export async function callAgAction({ sessionId, toolCallId, toolName, args, timeout = 10000, }) {
|
|
3
|
+
return callFrontendTool({
|
|
4
|
+
sessionId,
|
|
5
|
+
toolId: toolCallId,
|
|
6
|
+
toolName,
|
|
7
|
+
args,
|
|
8
|
+
toolType: 'agui',
|
|
9
|
+
timeout,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=action-caller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-caller.js","sourceRoot":"","sources":["../../../src/ai/tools/action-caller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAqB7D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,OAAO,GAAG,KAAK,GACO;IACtB,OAAO,gBAAgB,CAAC;QACtB,SAAS;QACT,MAAM,EAAE,UAAU;QAClB,QAAQ;QACR,IAAI;QACJ,QAAQ,EAAE,MAAM;QAChB,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
export type RequestPayload = {
|
|
3
|
+
message: string;
|
|
4
|
+
did: string;
|
|
5
|
+
sessionId: string;
|
|
6
|
+
};
|
|
7
|
+
export type ResponsePayload = {
|
|
8
|
+
message: {
|
|
9
|
+
type: 'ai';
|
|
10
|
+
content: string;
|
|
11
|
+
};
|
|
12
|
+
docs: [];
|
|
13
|
+
sessionId: string;
|
|
14
|
+
};
|
|
15
|
+
export declare const askIXOGuruTool: import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
|
|
16
|
+
question: z.ZodString;
|
|
17
|
+
sessionId: z.ZodString;
|
|
18
|
+
}, z.z.core.$strip>, {
|
|
19
|
+
question: string;
|
|
20
|
+
sessionId: string;
|
|
21
|
+
}, {
|
|
22
|
+
question: string;
|
|
23
|
+
sessionId: string;
|
|
24
|
+
}, string>;
|
|
25
|
+
//# sourceMappingURL=ask-ixo-guru.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask-ixo-guru.d.ts","sourceRoot":"","sources":["../../../../src/ai/tools/ask-ixo-guru/ask-ixo-guru.ts"],"names":[],"mappings":"AACA,OAAQ,CAAC,MAAM,KAAK,CAAC;AAGrB,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE;QACP,IAAI,EAAE,IAAI,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,IAAI,EAAE,EAAE,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AA6CF,eAAO,MAAM,cAAc;;;;cAvCf,MAAM;eACL,MAAM;;;;UAgDjB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { tool } from '@langchain/core/tools';
|
|
2
|
+
import z from 'zod';
|
|
3
|
+
import { jsonToYaml } from '../../utils/json-to-yaml.js';
|
|
4
|
+
const callGuruApi = async ({ question, sessionId, }) => {
|
|
5
|
+
if (!process.env.IXO_GURU_QUERY_ENDPOINT) {
|
|
6
|
+
throw new Error('IXO Guru API URL is not set');
|
|
7
|
+
}
|
|
8
|
+
if (!process.env.GURU_ASSISTANCE_API_TOKEN) {
|
|
9
|
+
throw new Error('Guru Assistance API token is not set');
|
|
10
|
+
}
|
|
11
|
+
if (!process.env.ORACLE_DID) {
|
|
12
|
+
throw new Error('Oracle DID is not set');
|
|
13
|
+
}
|
|
14
|
+
const payload = {
|
|
15
|
+
message: question,
|
|
16
|
+
did: process.env.ORACLE_DID ?? '',
|
|
17
|
+
sessionId,
|
|
18
|
+
};
|
|
19
|
+
const response = await fetch(process.env.IXO_GURU_QUERY_ENDPOINT, {
|
|
20
|
+
method: 'POST',
|
|
21
|
+
headers: {
|
|
22
|
+
'Content-Type': 'application/json',
|
|
23
|
+
Authorization: `Bearer ${process.env.GURU_ASSISTANCE_API_TOKEN}`,
|
|
24
|
+
},
|
|
25
|
+
body: JSON.stringify(payload),
|
|
26
|
+
});
|
|
27
|
+
if (!response.ok) {
|
|
28
|
+
throw new Error(`Error: ${response.statusText}`);
|
|
29
|
+
}
|
|
30
|
+
const data = (await response.json());
|
|
31
|
+
return jsonToYaml({
|
|
32
|
+
answer: data.message.content,
|
|
33
|
+
sessionId: data.sessionId,
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
export const askIXOGuruTool = tool(callGuruApi, {
|
|
37
|
+
name: 'ask_guru_ai',
|
|
38
|
+
description: 'Ask the IXO Guru AI a question - IXO guru has access to internal knowledge base of IXO organization this tool will return the answer and the session ID to use for chat history if you want to continue a conversation within the same session send the same session ID otherwise a new session ID',
|
|
39
|
+
schema: z.object({
|
|
40
|
+
question: z.string('The question to ask the IXO Guru AI'),
|
|
41
|
+
sessionId: z
|
|
42
|
+
.string('The session ID to use for chat history if you want to continue a conversation within the same session send the same session ID otherwise a new session ID')
|
|
43
|
+
.uuid('Session ID must be a valid UUID'),
|
|
44
|
+
}),
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=ask-ixo-guru.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask-ixo-guru.js","sourceRoot":"","sources":["../../../../src/ai/tools/ask-ixo-guru/ask-ixo-guru.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAQ,CAAC,MAAM,KAAK,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAiBzD,MAAM,WAAW,GAAG,KAAK,EAAE,EACzB,QAAQ,EACR,SAAS,GAIV,EAAmB,EAAE;IACpB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,OAAO,GAAmB;QAC9B,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;QACjC,SAAS;KACV,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE;QAChE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE;SACjE;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAoB,CAAC;IACxD,OAAO,UAAU,CAAC;QAChB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;QAC5B,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE;IAC9C,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,oSAAoS;IACtS,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAE,qCAAqC,CAAE;QAC3D,SAAS,EAAE,CAAC;aACT,MAAM,CAAE,2JAA2J,CAAE;aACrK,IAAI,CAAE,iCAAiC,CAAE;KAC7C,CAAC;CACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai/tools/ask-ixo-guru/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai/tools/ask-ixo-guru/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface BrowserToolResult {
|
|
2
|
+
result?: any;
|
|
3
|
+
error?: string;
|
|
4
|
+
success: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface IBrowserToolCallerParams {
|
|
7
|
+
sessionId: string;
|
|
8
|
+
toolCallId: string;
|
|
9
|
+
toolName: string;
|
|
10
|
+
args: any;
|
|
11
|
+
timeout?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function callBrowserTool({ sessionId, toolCallId, toolName, args, timeout, }: IBrowserToolCallerParams): Promise<any>;
|
|
14
|
+
//# sourceMappingURL=browser-tool-caller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-tool-caller.d.ts","sourceRoot":"","sources":["../../../src/ai/tools/browser-tool-caller.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD,wBAAsB,eAAe,CAAC,EACpC,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,OAAe,GAChB,EAAE,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,CASzC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { callFrontendTool } from './frontend-tool-caller.js';
|
|
2
|
+
export async function callBrowserTool({ sessionId, toolCallId, toolName, args, timeout = 15000, }) {
|
|
3
|
+
return callFrontendTool({
|
|
4
|
+
sessionId,
|
|
5
|
+
toolId: toolCallId,
|
|
6
|
+
toolName,
|
|
7
|
+
args,
|
|
8
|
+
toolType: 'browser',
|
|
9
|
+
timeout,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=browser-tool-caller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-tool-caller.js","sourceRoot":"","sources":["../../../src/ai/tools/browser-tool-caller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAqB7D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EACpC,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,OAAO,GAAG,KAAK,GACU;IACzB,OAAO,gBAAgB,CAAC;QACtB,SAAS;QACT,MAAM,EAAE,UAAU;QAClB,QAAQ;QACR,IAAI;QACJ,QAAQ,EAAE,SAAS;QACnB,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface IFrontendToolCallerParams {
|
|
2
|
+
sessionId: string;
|
|
3
|
+
toolId: string;
|
|
4
|
+
toolName: string;
|
|
5
|
+
args: any;
|
|
6
|
+
toolType: 'browser' | 'agui';
|
|
7
|
+
timeout?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function callFrontendTool({ sessionId, toolId, toolName, args, toolType, timeout, }: IFrontendToolCallerParams): Promise<any>;
|
|
10
|
+
//# sourceMappingURL=frontend-tool-caller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-tool-caller.d.ts","sourceRoot":"","sources":["../../../src/ai/tools/frontend-tool-caller.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAQD,wBAAsB,gBAAgB,CAAC,EACrC,SAAS,EACT,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,OAAe,GAChB,EAAE,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,CA2D1C"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { rootEventEmitter } from '@ixo/oracles-events';
|
|
2
|
+
import { BrowserToolCallEvent } from '@ixo/oracles-events';
|
|
3
|
+
import { ActionCallEvent } from '@ixo/oracles-events';
|
|
4
|
+
export async function callFrontendTool({ sessionId, toolId, toolName, args, toolType, timeout = 15000, }) {
|
|
5
|
+
if (toolType === 'browser') {
|
|
6
|
+
new BrowserToolCallEvent({
|
|
7
|
+
sessionId,
|
|
8
|
+
requestId: toolId,
|
|
9
|
+
toolCallId: toolId,
|
|
10
|
+
toolName,
|
|
11
|
+
args,
|
|
12
|
+
}).emit();
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
new ActionCallEvent({
|
|
16
|
+
sessionId,
|
|
17
|
+
requestId: toolId,
|
|
18
|
+
toolCallId: toolId,
|
|
19
|
+
toolName,
|
|
20
|
+
args,
|
|
21
|
+
status: 'isRunning',
|
|
22
|
+
}).emit();
|
|
23
|
+
}
|
|
24
|
+
const resultEventName = toolType === 'browser' ? 'browser_tool_result' : 'action_call_result';
|
|
25
|
+
return await new Promise((resolve, reject) => {
|
|
26
|
+
let timeoutHandle;
|
|
27
|
+
const resultHandler = (data) => {
|
|
28
|
+
const receivedId = data.toolCallId;
|
|
29
|
+
if (receivedId === toolId) {
|
|
30
|
+
clearTimeout(timeoutHandle);
|
|
31
|
+
rootEventEmitter.removeListener(resultEventName, resultHandler);
|
|
32
|
+
if (data.error) {
|
|
33
|
+
reject(new Error(data.error));
|
|
34
|
+
}
|
|
35
|
+
else if (toolType === 'agui' && data.result?.success === false) {
|
|
36
|
+
reject(new Error(data.result.error || 'Action failed'));
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
resolve(data.result);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
rootEventEmitter.on(resultEventName, resultHandler);
|
|
44
|
+
timeoutHandle = setTimeout(() => {
|
|
45
|
+
rootEventEmitter.removeListener(resultEventName, resultHandler);
|
|
46
|
+
reject(new Error(`${toolType === 'agui' ? 'AG-UI action' : 'Browser tool'} timeout after ${timeout}ms: ${toolName}`));
|
|
47
|
+
}, timeout);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=frontend-tool-caller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-tool-caller.js","sourceRoot":"","sources":["../../../src/ai/tools/frontend-tool-caller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAiBtD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,SAAS,EACT,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,OAAO,GAAG,KAAK,GACW;IAE1B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,oBAAoB,CAAC;YACvB,SAAS;YACT,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,MAAM;YAClB,QAAQ;YACR,IAAI;SACL,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;SAAM,CAAC;QACN,IAAI,eAAe,CAAC;YAClB,SAAS;YACT,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,MAAM;YAClB,QAAQ;YACR,IAAI;YACJ,MAAM,EAAE,WAAW;SACb,CAAC,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;IAGD,MAAM,eAAe,GACnB,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAExE,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,aAA6B,CAAC;QAElC,MAAM,aAAa,GAAG,CAAC,IAAS,EAAE,EAAE;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC1B,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC5B,gBAAgB,CAAC,cAAc,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;gBAGhE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChC,CAAC;qBAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;oBAEjE,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAGF,gBAAgB,CAAC,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAGpD,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,gBAAgB,CAAC,cAAc,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;YAChE,MAAM,CACJ,IAAI,KAAK,CACP,GAAG,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,kBAAkB,OAAO,OAAO,QAAQ,EAAE,CACnG,CACF,CAAC;QACJ,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './ask-ixo-guru/index.js';
|
|
2
|
+
export * from './browser-tool-caller.js';
|
|
3
|
+
export * from './parser-browser-tool.js';
|
|
4
|
+
export * from './retriever-tool/index.js';
|
|
5
|
+
export * from './scrape-web-page.js';
|
|
6
|
+
export * from './web-search-tool.js';
|
|
7
|
+
export * from './log-action-to-matrix.js';
|
|
8
|
+
export * from './action-caller.js';
|
|
9
|
+
export * from './frontend-tool-caller.js';
|
|
10
|
+
export * from './parser-action-tool.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './ask-ixo-guru/index.js';
|
|
2
|
+
export * from './browser-tool-caller.js';
|
|
3
|
+
export * from './parser-browser-tool.js';
|
|
4
|
+
export * from './retriever-tool/index.js';
|
|
5
|
+
export * from './scrape-web-page.js';
|
|
6
|
+
export * from './web-search-tool.js';
|
|
7
|
+
export * from './log-action-to-matrix.js';
|
|
8
|
+
export * from './action-caller.js';
|
|
9
|
+
export * from './frontend-tool-caller.js';
|
|
10
|
+
export * from './parser-action-tool.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface IAction {
|
|
2
|
+
name: string;
|
|
3
|
+
args: Record<string, any>;
|
|
4
|
+
result: any;
|
|
5
|
+
error?: string;
|
|
6
|
+
success: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function logActionToMatrix(action: IAction, config: {
|
|
9
|
+
roomId: string;
|
|
10
|
+
threadId?: string;
|
|
11
|
+
}): Promise<void>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=log-action-to-matrix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-action-to-matrix.d.ts","sourceRoot":"","sources":["../../../src/ai/tools/log-action-to-matrix.ts"],"names":[],"mappings":"AAMA,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE;IACN,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,iBAUF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Logger } from '@ixo/logger';
|
|
2
|
+
import { MatrixManager } from '@ixo/matrix';
|
|
3
|
+
const matrixManager = MatrixManager.getInstance();
|
|
4
|
+
export async function logActionToMatrix(action, config) {
|
|
5
|
+
if (!matrixManager.getInitializationStatus().isInitialized) {
|
|
6
|
+
await matrixManager.init();
|
|
7
|
+
}
|
|
8
|
+
matrixManager
|
|
9
|
+
.sendActionLog(config.roomId, action, config.threadId)
|
|
10
|
+
.catch((error) => {
|
|
11
|
+
Logger.error('Error sending action to matrix:', error);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=log-action-to-matrix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-action-to-matrix.js","sourceRoot":"","sources":["../../../src/ai/tools/log-action-to-matrix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;AAWlD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAe,EACf,MAGC;IAED,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,CAAC,aAAa,EAAE,CAAC;QAC3D,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,aAAa;SACV,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;SACrD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface IParseAgActionParams {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
schema: Record<string, any>;
|
|
5
|
+
}
|
|
6
|
+
export declare function parserActionTool(action: IParseAgActionParams): import("@langchain/core/tools").DynamicStructuredTool<Record<string, any>, unknown, unknown, string>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=parser-action-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser-action-tool.d.ts","sourceRoot":"","sources":["../../../src/ai/tools/parser-action-tool.ts"],"names":[],"mappings":"AAKA,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAGD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,wGAgD5D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { tool } from '@langchain/core/tools';
|
|
2
|
+
import { callAgAction } from './action-caller.js';
|
|
3
|
+
import { logActionToMatrix } from './log-action-to-matrix.js';
|
|
4
|
+
export function parserActionTool(action) {
|
|
5
|
+
const { name, description, schema } = action;
|
|
6
|
+
return tool(async (input, runnableConfig) => {
|
|
7
|
+
const { configurable } = runnableConfig;
|
|
8
|
+
const { thread_id: sessionId, requestId, configs } = configurable;
|
|
9
|
+
if (!sessionId) {
|
|
10
|
+
throw new Error('sessionId is required for AG-UI actions');
|
|
11
|
+
}
|
|
12
|
+
const result = await callAgAction({
|
|
13
|
+
sessionId,
|
|
14
|
+
toolCallId: `ag_${requestId}`,
|
|
15
|
+
toolName: name,
|
|
16
|
+
args: input,
|
|
17
|
+
timeout: 5000,
|
|
18
|
+
});
|
|
19
|
+
if (configs?.matrix.roomId) {
|
|
20
|
+
logActionToMatrix({
|
|
21
|
+
name: name,
|
|
22
|
+
args: input,
|
|
23
|
+
result,
|
|
24
|
+
success: true,
|
|
25
|
+
}, {
|
|
26
|
+
roomId: configs.matrix.roomId,
|
|
27
|
+
threadId: sessionId,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return JSON.stringify(result);
|
|
31
|
+
}, {
|
|
32
|
+
name: name,
|
|
33
|
+
description: description,
|
|
34
|
+
schema: schema,
|
|
35
|
+
metadata: {
|
|
36
|
+
actionTool: true,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=parser-action-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser-action-tool.js","sourceRoot":"","sources":["../../../src/ai/tools/parser-action-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAS9D,MAAM,UAAU,gBAAgB,CAAC,MAA4B;IAC3D,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC7C,OAAO,IAAI,CACT,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;QAC9B,MAAM,EAAE,YAAY,EAAE,GACpB,cAAmD,CAAC;QACtD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;QAElE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAGD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,SAAS;YACT,UAAU,EAAE,MAAM,SAAS,EAAE;YAC7B,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YAC3B,iBAAiB,CACf;gBACE,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,KAAgC;gBACtC,MAAM;gBACN,OAAO,EAAE,IAAI;aACd,EACD;gBACE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;gBAC7B,QAAQ,EAAE,SAAS;aACpB,CACF,CAAC;QACJ,CAAC;QAGD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC,EACD;QACE,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,WAAW;QACxB,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE;YACR,UAAU,EAAE,IAAI;SACjB;KACF,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface IParserBrowserToolParams {
|
|
2
|
+
description: string;
|
|
3
|
+
schema: Record<string, any>;
|
|
4
|
+
toolName: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function parserBrowserTool(params: IParserBrowserToolParams): import("@langchain/core/tools").DynamicStructuredTool<Record<string, any>, unknown, unknown, any>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=parser-browser-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser-browser-tool.d.ts","sourceRoot":"","sources":["../../../src/ai/tools/parser-browser-tool.ts"],"names":[],"mappings":"AAKA,UAAU,wBAAwB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,qGA2CjE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { tool } from '@langchain/core/tools';
|
|
2
|
+
import { callBrowserTool } from './browser-tool-caller.js';
|
|
3
|
+
import { logActionToMatrix } from './log-action-to-matrix.js';
|
|
4
|
+
export function parserBrowserTool(params) {
|
|
5
|
+
const { description, schema, toolName } = params;
|
|
6
|
+
return tool(async (input, runnablesConfig) => {
|
|
7
|
+
const { configurable: { thread_id: sessionId, requestId, configs }, } = runnablesConfig;
|
|
8
|
+
if (!sessionId) {
|
|
9
|
+
throw new Error('sessionId is required');
|
|
10
|
+
}
|
|
11
|
+
const result = await callBrowserTool({
|
|
12
|
+
sessionId,
|
|
13
|
+
toolName,
|
|
14
|
+
args: input,
|
|
15
|
+
toolCallId: `tc-${requestId}`,
|
|
16
|
+
});
|
|
17
|
+
if (configs?.matrix.roomId) {
|
|
18
|
+
logActionToMatrix({
|
|
19
|
+
name: toolName,
|
|
20
|
+
args: input,
|
|
21
|
+
result,
|
|
22
|
+
success: true,
|
|
23
|
+
}, {
|
|
24
|
+
roomId: configs.matrix.roomId,
|
|
25
|
+
threadId: sessionId,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}, {
|
|
30
|
+
name: toolName,
|
|
31
|
+
description,
|
|
32
|
+
schema,
|
|
33
|
+
metadata: {
|
|
34
|
+
browserTool: true,
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=parser-browser-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser-browser-tool.js","sourceRoot":"","sources":["../../../src/ai/tools/parser-browser-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQ9D,MAAM,UAAU,iBAAiB,CAAC,MAAgC;IAChE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACjD,OAAO,IAAI,CACT,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE;QAC/B,MAAM,EACJ,YAAY,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,GAC3D,GAAG,eAAoD,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;YACnC,SAAS;YACT,QAAQ;YACR,IAAI,EAAE,KAAK;YACX,UAAU,EAAE,MAAM,SAAS,EAAE;SAC9B,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YAC3B,iBAAiB,CACf;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,KAAgC;gBACtC,MAAM;gBACN,OAAO,EAAE,IAAI;aACd,EACD;gBACE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;gBAC7B,QAAQ,EAAE,SAAS;aACpB,CACF,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW;QACX,MAAM;QACN,QAAQ,EAAE;YACR,WAAW,EAAE,IAAI;SAClB;KACF,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai/tools/retriever-tool/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai/tools/retriever-tool/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type VectorDBDataStore } from '@ixo/data-store';
|
|
2
|
+
import { type BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
3
|
+
import { type DynamicStructuredTool } from '@langchain/core/tools';
|
|
4
|
+
import z from 'zod';
|
|
5
|
+
type RetrieverToolFactoryArgs<Filters extends Record<string, unknown> = Record<string, unknown>, MapType extends Map<string, unknown> = Map<string, unknown>> = {
|
|
6
|
+
model?: BaseChatModel;
|
|
7
|
+
filters?: Filters;
|
|
8
|
+
similarThreshold?: number;
|
|
9
|
+
store: VectorDBDataStore;
|
|
10
|
+
map?: MapType;
|
|
11
|
+
requestId?: string;
|
|
12
|
+
};
|
|
13
|
+
declare const schema: z.ZodObject<{
|
|
14
|
+
query: z.ZodString;
|
|
15
|
+
}, z.z.core.$strip>;
|
|
16
|
+
export declare const retrieverToolFactory: ({ model, filters, similarThreshold, map, requestId, store, }: RetrieverToolFactoryArgs) => DynamicStructuredTool<typeof schema>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=retriever-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retriever-tool.d.ts","sourceRoot":"","sources":["../../../../src/ai/tools/retriever-tool/retriever-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAQ,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,CAAC,MAAM,KAAK,CAAC;AAIpB,KAAK,wBAAwB,CAC3B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,OAAO,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IACzD;IACF,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,iBAAiB,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,MAAM;;mBAEV,CAAC;AAEH,eAAO,MAAM,oBAAoB,GAAI,8DAOlC,wBAAwB,KAAG,qBAAqB,CAAC,OAAO,MAAM,CA0E9D,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Logger } from '@ixo/logger';
|
|
2
|
+
import { Document } from '@langchain/core/documents';
|
|
3
|
+
import { tool } from '@langchain/core/tools';
|
|
4
|
+
import z from 'zod';
|
|
5
|
+
import { getChatOpenAiModel } from '../../models/openai.js';
|
|
6
|
+
import checkDocRelevance from '../../utils/doc-relevance-checker.js';
|
|
7
|
+
const schema = z.object({
|
|
8
|
+
query: z.string(),
|
|
9
|
+
});
|
|
10
|
+
export const retrieverToolFactory = ({ model = getChatOpenAiModel(), filters, similarThreshold = 0.3, map, requestId, store, }) => tool(async ({ query }) => {
|
|
11
|
+
const docs = await store.queryWithSimilarity(query, {
|
|
12
|
+
similarityThreshold: similarThreshold,
|
|
13
|
+
filters,
|
|
14
|
+
});
|
|
15
|
+
if (map) {
|
|
16
|
+
map.set(requestId ?? query, docs.map((doc) => doc.metadata));
|
|
17
|
+
}
|
|
18
|
+
if (docs.length === 0) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
if (similarThreshold >= 0.3) {
|
|
22
|
+
const relevantDocs = await Promise.all(docs.map(async (doc) => {
|
|
23
|
+
try {
|
|
24
|
+
return (await checkDocRelevance({
|
|
25
|
+
doc: new Document({
|
|
26
|
+
pageContent: doc.content,
|
|
27
|
+
id: doc.id,
|
|
28
|
+
metadata: doc.metadata,
|
|
29
|
+
}),
|
|
30
|
+
query,
|
|
31
|
+
model,
|
|
32
|
+
})).valueOf()
|
|
33
|
+
? doc
|
|
34
|
+
: null;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
Logger.error(`Error checking relevance of document:`, error);
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}));
|
|
41
|
+
return relevantDocs.reduce((acc, doc) => {
|
|
42
|
+
if (doc) {
|
|
43
|
+
acc.push(new Document({
|
|
44
|
+
pageContent: doc.content,
|
|
45
|
+
id: doc.id,
|
|
46
|
+
metadata: doc.metadata,
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
return acc;
|
|
50
|
+
}, []);
|
|
51
|
+
}
|
|
52
|
+
return docs.map((doc) => new Document({
|
|
53
|
+
pageContent: doc.content,
|
|
54
|
+
id: doc.id,
|
|
55
|
+
metadata: doc.metadata,
|
|
56
|
+
}));
|
|
57
|
+
}, {
|
|
58
|
+
name: 'retrieverTool',
|
|
59
|
+
description: 'Retrieves documents from the knowledge base based on the query',
|
|
60
|
+
schema,
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=retriever-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retriever-tool.js","sourceRoot":"","sources":["../../../../src/ai/tools/retriever-tool/retriever-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,IAAI,EAA8B,MAAM,uBAAuB,CAAC;AACzE,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,iBAAiB,MAAM,sCAAsC,CAAC;AAcrE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,KAAK,GAAG,kBAAkB,EAAE,EAC5B,OAAO,EACP,gBAAgB,GAAG,GAAG,EACtB,GAAG,EACH,SAAS,EACT,KAAK,GACoB,EAAwC,EAAE,CACnE,IAAI,CACF,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAClB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE;QAClD,mBAAmB,EAAE,gBAAgB;QACrC,OAAO;KACR,CAAC,CAAC;IAGH,IAAI,GAAG,EAAE,CAAC;QACR,GAAG,CAAC,GAAG,CACL,SAAS,IAAI,KAAK,EAClB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAChC,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,gBAAgB,IAAI,GAAG,EAAE,CAAC;QAE5B,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACrB,IAAI,CAAC;gBACH,OAAO,CACL,MAAM,iBAAiB,CAAC;oBACtB,GAAG,EAAE,IAAI,QAAQ,CAAC;wBAChB,WAAW,EAAE,GAAG,CAAC,OAAO;wBACxB,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;qBACvB,CAAC;oBACF,KAAK;oBACL,KAAK;iBACN,CAAC,CACH,CAAC,OAAO,EAAE;oBACT,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,IAAI,CAAC;YACX,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;gBAC7D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,YAAY,CAAC,MAAM,CAAa,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAClD,IAAI,GAAG,EAAE,CAAC;gBACR,GAAG,CAAC,IAAI,CACN,IAAI,QAAQ,CAAC;oBACX,WAAW,EAAE,GAAG,CAAC,OAAO;oBACxB,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;iBACvB,CAAC,CACH,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CACb,CAAC,GAAG,EAAE,EAAE,CACN,IAAI,QAAQ,CAAC;QACX,WAAW,EAAE,GAAG,CAAC,OAAO;QACxB,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC,CACL,CAAC;AACJ,CAAC,EACD;IACE,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,gEAAgE;IAClE,MAAM;CACP,CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retriever-tool.test.d.ts","sourceRoot":"","sources":["../../../../src/ai/tools/retriever-tool/retriever-tool.test.ts"],"names":[],"mappings":""}
|