@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,208 @@
|
|
|
1
|
+
// Complete TypeScript Response Types for /search-enhanced Endpoint
|
|
2
|
+
|
|
3
|
+
// Complete response type for /search-enhanced endpoint
|
|
4
|
+
export interface SearchEnhancedResponse {
|
|
5
|
+
strategy_used: string;
|
|
6
|
+
query: string;
|
|
7
|
+
total_results: {
|
|
8
|
+
facts: number;
|
|
9
|
+
entities: number;
|
|
10
|
+
episodes: number;
|
|
11
|
+
communities: number;
|
|
12
|
+
};
|
|
13
|
+
facts: FactResult[];
|
|
14
|
+
entities: EntityResult[];
|
|
15
|
+
episodes: EpisodeResult[];
|
|
16
|
+
communities: CommunityResult[];
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Individual result types
|
|
20
|
+
export interface FactResult {
|
|
21
|
+
uuid: string;
|
|
22
|
+
fact: string;
|
|
23
|
+
source_node_uuid: string;
|
|
24
|
+
target_node_uuid: string;
|
|
25
|
+
created_at: string; // ISO 8601 datetime string
|
|
26
|
+
valid_at: string | null; // ISO 8601 datetime string or null
|
|
27
|
+
invalid_at: string | null; // ISO 8601 datetime string or null
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface EntityResult {
|
|
31
|
+
uuid: string;
|
|
32
|
+
name: string;
|
|
33
|
+
summary: string;
|
|
34
|
+
labels: string[]; // Array of entity type labels
|
|
35
|
+
group_id: string;
|
|
36
|
+
created_at: string; // ISO 8601 datetime string
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface EpisodeResult {
|
|
40
|
+
uuid: string;
|
|
41
|
+
name: string;
|
|
42
|
+
content: string;
|
|
43
|
+
created_at: string; // ISO 8601 datetime string
|
|
44
|
+
group_id: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface CommunityResult {
|
|
48
|
+
uuid: string;
|
|
49
|
+
name: string;
|
|
50
|
+
summary: string;
|
|
51
|
+
created_at: string | null; // ISO 8601 datetime string or null
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Request type for /search-enhanced endpoint
|
|
55
|
+
export interface SearchEnhancedRequest {
|
|
56
|
+
oracle_dids: string[]; // Array of oracle identifiers (1-5 items)
|
|
57
|
+
query: string; // Search query string
|
|
58
|
+
strategy?: SearchStrategy; // Optional, defaults to "balanced"
|
|
59
|
+
max_facts?: number; // Optional, defaults to 10
|
|
60
|
+
max_entities?: number; // Optional, defaults to 5
|
|
61
|
+
max_episodes?: number; // Optional, defaults to 3
|
|
62
|
+
max_communities?: number; // Optional, defaults to 2
|
|
63
|
+
knowledge_level?: KnowledgeLevel; // Optional, defaults to "both"
|
|
64
|
+
center_node_uuid?: string | null; // Optional UUID for contextual search
|
|
65
|
+
search_filters?: SearchFilters | null; // Optional filters
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Search strategy enum
|
|
69
|
+
export type SearchStrategy =
|
|
70
|
+
| 'balanced' // Default - fast, comprehensive
|
|
71
|
+
| 'diverse' // Diverse results, avoid repetition
|
|
72
|
+
| 'precise' // High-precision results
|
|
73
|
+
| 'contextual' // Focus on specific entity (requires center_node_uuid)
|
|
74
|
+
| 'recent_memory' // Recent conversations
|
|
75
|
+
| 'facts_only' // Quick fact retrieval only
|
|
76
|
+
| 'entities_only' // Entity lookup only
|
|
77
|
+
| 'topics_only'; // Topic discovery only
|
|
78
|
+
|
|
79
|
+
// Knowledge level enum
|
|
80
|
+
export type KnowledgeLevel =
|
|
81
|
+
| 'both' // Search both personal + shared knowledge (default)
|
|
82
|
+
| 'user' // Search only personal/private memories
|
|
83
|
+
| 'oracle'; // Search only shared oracle knowledge
|
|
84
|
+
|
|
85
|
+
// Search filters type
|
|
86
|
+
export interface SearchFilters {
|
|
87
|
+
node_labels?: EntityType[] | null; // Array of entity type filters
|
|
88
|
+
edge_types?: EdgeType[] | null; // Array of relationship type filters
|
|
89
|
+
valid_at?: DateFilter[][] | null; // When event occurred
|
|
90
|
+
invalid_at?: DateFilter[][] | null; // When fact stopped being true
|
|
91
|
+
created_at?: DateFilter[][] | null; // When system learned the fact
|
|
92
|
+
expired_at?: DateFilter[][] | null; // When system learned fact became invalid
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Date filter type
|
|
96
|
+
export interface DateFilter {
|
|
97
|
+
date: string | null; // ISO 8601 datetime string or null
|
|
98
|
+
comparison_operator: ComparisonOperator;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Comparison operator enum
|
|
102
|
+
export type ComparisonOperator =
|
|
103
|
+
| '=' // Equal to
|
|
104
|
+
| '<>' // Not equal to
|
|
105
|
+
| '>' // Greater than
|
|
106
|
+
| '<' // Less than
|
|
107
|
+
| '>=' // Greater than or equal
|
|
108
|
+
| '<=' // Less than or equal
|
|
109
|
+
| 'IS NULL' // Is null
|
|
110
|
+
| 'IS NOT NULL'; // Is not null
|
|
111
|
+
|
|
112
|
+
// Entity types enum (from search_filters.py)
|
|
113
|
+
export type EntityType =
|
|
114
|
+
| 'Person'
|
|
115
|
+
| 'Trait'
|
|
116
|
+
| 'Value'
|
|
117
|
+
| 'Identity'
|
|
118
|
+
| 'Attribute'
|
|
119
|
+
| 'Emotion'
|
|
120
|
+
| 'Stress'
|
|
121
|
+
| 'CopingStrategy'
|
|
122
|
+
| 'Job'
|
|
123
|
+
| 'Project'
|
|
124
|
+
| 'Skill'
|
|
125
|
+
| 'Tool'
|
|
126
|
+
| 'Organization'
|
|
127
|
+
| 'Goal'
|
|
128
|
+
| 'Milestone'
|
|
129
|
+
| 'Habit'
|
|
130
|
+
| 'Routine'
|
|
131
|
+
| 'Pattern'
|
|
132
|
+
| 'Interest'
|
|
133
|
+
| 'Hobby'
|
|
134
|
+
| 'Content'
|
|
135
|
+
| 'Preference'
|
|
136
|
+
| 'Product'
|
|
137
|
+
| 'Expertise'
|
|
138
|
+
| 'LearningGoal'
|
|
139
|
+
| 'Resource'
|
|
140
|
+
| 'Location'
|
|
141
|
+
| 'Experience'
|
|
142
|
+
| 'Event'
|
|
143
|
+
| 'Group'
|
|
144
|
+
| 'Pet'
|
|
145
|
+
| 'CommunicationStyle'
|
|
146
|
+
| 'Language'
|
|
147
|
+
| 'Task'
|
|
148
|
+
| 'Belief'
|
|
149
|
+
| 'Cause'
|
|
150
|
+
| 'Procedure';
|
|
151
|
+
|
|
152
|
+
// Edge types enum (from search_filters.py)
|
|
153
|
+
export type EdgeType =
|
|
154
|
+
| 'Knows'
|
|
155
|
+
| 'WorksWith'
|
|
156
|
+
| 'Causes'
|
|
157
|
+
| 'Enables'
|
|
158
|
+
| 'Blocks'
|
|
159
|
+
| 'PartOf'
|
|
160
|
+
| 'BelongsTo'
|
|
161
|
+
| 'Practices'
|
|
162
|
+
| 'Uses'
|
|
163
|
+
| 'Pursuing'
|
|
164
|
+
| 'Requires'
|
|
165
|
+
| 'Achieved'
|
|
166
|
+
| 'EmployedAt'
|
|
167
|
+
| 'WorksOn'
|
|
168
|
+
| 'Manages'
|
|
169
|
+
| 'LivesAt'
|
|
170
|
+
| 'VisitedLocation'
|
|
171
|
+
| 'LocatedIn'
|
|
172
|
+
| 'Prefers'
|
|
173
|
+
| 'Likes'
|
|
174
|
+
| 'Dislikes'
|
|
175
|
+
| 'InterestedIn'
|
|
176
|
+
| 'ExpertiseIn'
|
|
177
|
+
| 'Studying'
|
|
178
|
+
| 'LearnedFrom'
|
|
179
|
+
| 'Triggers'
|
|
180
|
+
| 'Motivates'
|
|
181
|
+
| 'ManagesVia'
|
|
182
|
+
| 'Influences'
|
|
183
|
+
| 'Supports'
|
|
184
|
+
| 'MemberOf'
|
|
185
|
+
| 'Owns'
|
|
186
|
+
| 'CurrentlyIs'
|
|
187
|
+
| 'WasPreviously'
|
|
188
|
+
| 'AlignedWith'
|
|
189
|
+
| 'ConflictsWith'
|
|
190
|
+
| 'RelatesTo';
|
|
191
|
+
|
|
192
|
+
// HTTP Headers type
|
|
193
|
+
export interface SearchHeaders {
|
|
194
|
+
Authorization: string; // "Bearer <matrix_openid_token>"
|
|
195
|
+
'x-oracle-did': string; // Oracle identifier
|
|
196
|
+
'x-room-id': string; // Matrix room ID
|
|
197
|
+
'Content-Type': 'application/json';
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// User context data structure
|
|
201
|
+
export interface UserContextData {
|
|
202
|
+
identity?: SearchEnhancedResponse;
|
|
203
|
+
work?: SearchEnhancedResponse;
|
|
204
|
+
goals?: SearchEnhancedResponse;
|
|
205
|
+
interests?: SearchEnhancedResponse;
|
|
206
|
+
relationships?: SearchEnhancedResponse;
|
|
207
|
+
recent?: SearchEnhancedResponse;
|
|
208
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import {
|
|
2
|
+
IsArray,
|
|
3
|
+
IsNotEmpty,
|
|
4
|
+
IsNumber,
|
|
5
|
+
IsOptional,
|
|
6
|
+
IsString,
|
|
7
|
+
Min,
|
|
8
|
+
} from 'class-validator';
|
|
9
|
+
import { type UserContextData } from '../memory-engine/types.js';
|
|
10
|
+
|
|
11
|
+
export class UserAuthDto {
|
|
12
|
+
@IsString()
|
|
13
|
+
@IsNotEmpty()
|
|
14
|
+
did: string;
|
|
15
|
+
|
|
16
|
+
@IsString()
|
|
17
|
+
@IsOptional()
|
|
18
|
+
homeServer?: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export class ListChatSessionsDto extends UserAuthDto {
|
|
22
|
+
@IsString()
|
|
23
|
+
@IsNotEmpty()
|
|
24
|
+
oracleEntityDid: string;
|
|
25
|
+
|
|
26
|
+
@IsNumber()
|
|
27
|
+
@IsOptional()
|
|
28
|
+
@Min(1)
|
|
29
|
+
limit?: number;
|
|
30
|
+
|
|
31
|
+
@IsNumber()
|
|
32
|
+
@IsOptional()
|
|
33
|
+
@Min(0)
|
|
34
|
+
offset?: number;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export class CreateChatSessionDto extends UserAuthDto {
|
|
38
|
+
@IsString()
|
|
39
|
+
@IsNotEmpty()
|
|
40
|
+
oracleDid: string;
|
|
41
|
+
|
|
42
|
+
@IsString()
|
|
43
|
+
@IsNotEmpty()
|
|
44
|
+
oracleEntityDid: string;
|
|
45
|
+
|
|
46
|
+
@IsString()
|
|
47
|
+
@IsNotEmpty()
|
|
48
|
+
oracleName: string;
|
|
49
|
+
|
|
50
|
+
@IsString()
|
|
51
|
+
@IsOptional()
|
|
52
|
+
slackThreadTs?: string;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export class DeleteChatSessionDto extends UserAuthDto {
|
|
56
|
+
@IsString()
|
|
57
|
+
@IsNotEmpty()
|
|
58
|
+
sessionId: string;
|
|
59
|
+
|
|
60
|
+
@IsString()
|
|
61
|
+
@IsNotEmpty()
|
|
62
|
+
oracleEntityDid: string;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export class ChatSession {
|
|
66
|
+
@IsString()
|
|
67
|
+
@IsNotEmpty()
|
|
68
|
+
sessionId: string;
|
|
69
|
+
|
|
70
|
+
@IsString()
|
|
71
|
+
@IsOptional()
|
|
72
|
+
title?: string;
|
|
73
|
+
|
|
74
|
+
@IsString()
|
|
75
|
+
@IsNotEmpty()
|
|
76
|
+
lastUpdatedAt: string;
|
|
77
|
+
|
|
78
|
+
@IsString()
|
|
79
|
+
@IsNotEmpty()
|
|
80
|
+
createdAt: string;
|
|
81
|
+
|
|
82
|
+
@IsString()
|
|
83
|
+
@IsNotEmpty()
|
|
84
|
+
oracleName: string;
|
|
85
|
+
|
|
86
|
+
@IsString()
|
|
87
|
+
@IsNotEmpty()
|
|
88
|
+
oracleDid: string;
|
|
89
|
+
|
|
90
|
+
@IsString()
|
|
91
|
+
@IsNotEmpty()
|
|
92
|
+
oracleEntityDid: string;
|
|
93
|
+
|
|
94
|
+
@IsNumber()
|
|
95
|
+
@IsNotEmpty()
|
|
96
|
+
lastProcessedCount?: number;
|
|
97
|
+
|
|
98
|
+
@IsOptional()
|
|
99
|
+
userContext?: UserContextData;
|
|
100
|
+
|
|
101
|
+
@IsString()
|
|
102
|
+
@IsOptional()
|
|
103
|
+
roomId?: string;
|
|
104
|
+
|
|
105
|
+
@IsString()
|
|
106
|
+
@IsOptional()
|
|
107
|
+
slackThreadTs?: string;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export class ListChatSessionsResponseDto {
|
|
111
|
+
@IsArray()
|
|
112
|
+
@IsNotEmpty()
|
|
113
|
+
sessions: ChatSession[];
|
|
114
|
+
|
|
115
|
+
@IsNumber()
|
|
116
|
+
@IsOptional()
|
|
117
|
+
total?: number;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export class CreateChatSessionResponseDto extends ChatSession {}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export enum SessionManagerErrorCodes {
|
|
2
|
+
NO_USER_ROOMS_FOUND = 'NO_USER_ROOMS_FOUND',
|
|
3
|
+
ROOM_NOT_FOUND = 'ROOM_NOT_FOUND',
|
|
4
|
+
USER_NOT_IN_ROOM = 'USER_NOT_IN_ROOM',
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export class SessionManagerError extends Error {
|
|
8
|
+
constructor(
|
|
9
|
+
message: string,
|
|
10
|
+
public readonly code: SessionManagerErrorCodes,
|
|
11
|
+
) {
|
|
12
|
+
super(message);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export class NoUserRoomsFoundError extends SessionManagerError {
|
|
17
|
+
constructor(did: string) {
|
|
18
|
+
super(
|
|
19
|
+
`No user rooms found for the given did ${did}`,
|
|
20
|
+
SessionManagerErrorCodes.NO_USER_ROOMS_FOUND,
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
isNoUserRoomsFoundError(error: unknown): error is NoUserRoomsFoundError {
|
|
24
|
+
return (
|
|
25
|
+
error instanceof NoUserRoomsFoundError &&
|
|
26
|
+
error.code === SessionManagerErrorCodes.NO_USER_ROOMS_FOUND
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export class RoomNotFoundError extends SessionManagerError {
|
|
32
|
+
constructor(roomId: string) {
|
|
33
|
+
super(`Room ${roomId} not found`, SessionManagerErrorCodes.ROOM_NOT_FOUND);
|
|
34
|
+
}
|
|
35
|
+
isRoomNotFoundError(error: unknown): error is RoomNotFoundError {
|
|
36
|
+
return (
|
|
37
|
+
error instanceof RoomNotFoundError &&
|
|
38
|
+
error.code === SessionManagerErrorCodes.ROOM_NOT_FOUND
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export class UserNotInRoomError extends SessionManagerError {
|
|
44
|
+
constructor(did: string, roomId: string) {
|
|
45
|
+
super(
|
|
46
|
+
`User ${did} not in room ${roomId}`,
|
|
47
|
+
SessionManagerErrorCodes.USER_NOT_IN_ROOM,
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
isUserNotInRoomError(error: unknown): error is UserNotInRoomError {
|
|
51
|
+
return (
|
|
52
|
+
error instanceof UserNotInRoomError &&
|
|
53
|
+
error.code === SessionManagerErrorCodes.USER_NOT_IN_ROOM
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
}
|