agent-orcha 0.0.4 → 0.0.5
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/README.md +197 -221
- package/dist/lib/agents/agent-executor.d.ts +13 -4
- package/dist/lib/agents/agent-executor.d.ts.map +1 -1
- package/dist/lib/agents/agent-executor.js +307 -73
- package/dist/lib/agents/agent-executor.js.map +1 -1
- package/dist/lib/agents/agent-loader.d.ts +1 -1
- package/dist/lib/agents/agent-loader.d.ts.map +1 -1
- package/dist/lib/agents/agent-loader.js +10 -3
- package/dist/lib/agents/agent-loader.js.map +1 -1
- package/dist/lib/agents/index.d.ts +5 -5
- package/dist/lib/agents/index.js +4 -4
- package/dist/lib/agents/react-loop.d.ts +30 -0
- package/dist/lib/agents/react-loop.d.ts.map +1 -0
- package/dist/lib/agents/react-loop.js +155 -0
- package/dist/lib/agents/react-loop.js.map +1 -0
- package/dist/lib/agents/structured-output-wrapper.d.ts +3 -3
- package/dist/lib/agents/structured-output-wrapper.d.ts.map +1 -1
- package/dist/lib/agents/structured-output-wrapper.js +2 -2
- package/dist/lib/agents/structured-output-wrapper.js.map +1 -1
- package/dist/lib/agents/types.d.ts +132 -8
- package/dist/lib/agents/types.d.ts.map +1 -1
- package/dist/lib/agents/types.js +16 -2
- package/dist/lib/agents/types.js.map +1 -1
- package/dist/lib/functions/function-loader.d.ts +1 -1
- package/dist/lib/functions/function-loader.js +13 -5
- package/dist/lib/functions/function-loader.js.map +1 -1
- package/dist/lib/functions/index.d.ts +2 -2
- package/dist/lib/functions/index.js +1 -1
- package/dist/lib/functions/simple-function-wrapper.d.ts +2 -11
- package/dist/lib/functions/simple-function-wrapper.d.ts.map +1 -1
- package/dist/lib/functions/simple-function-wrapper.js +3 -3
- package/dist/lib/functions/simple-function-wrapper.js.map +1 -1
- package/dist/lib/index.d.ts +29 -17
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +21 -9
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/integrations/collabnook.d.ts +56 -0
- package/dist/lib/integrations/collabnook.d.ts.map +1 -0
- package/dist/lib/integrations/collabnook.js +307 -0
- package/dist/lib/integrations/collabnook.js.map +1 -0
- package/dist/lib/integrations/integration-manager.d.ts +14 -0
- package/dist/lib/integrations/integration-manager.d.ts.map +1 -0
- package/dist/lib/integrations/integration-manager.js +109 -0
- package/dist/lib/integrations/integration-manager.js.map +1 -0
- package/dist/lib/integrations/types.d.ts +49 -0
- package/dist/lib/integrations/types.d.ts.map +1 -0
- package/dist/lib/integrations/types.js +14 -0
- package/dist/lib/integrations/types.js.map +1 -0
- package/dist/lib/knowledge/direct-mapper.d.ts +21 -0
- package/dist/lib/knowledge/direct-mapper.d.ts.map +1 -0
- package/dist/lib/knowledge/direct-mapper.js +134 -0
- package/dist/lib/knowledge/direct-mapper.js.map +1 -0
- package/dist/lib/knowledge/index.d.ts +9 -8
- package/dist/lib/knowledge/index.d.ts.map +1 -1
- package/dist/lib/knowledge/index.js +9 -7
- package/dist/lib/knowledge/index.js.map +1 -1
- package/dist/lib/knowledge/knowledge-store-metadata.d.ts +40 -0
- package/dist/lib/knowledge/knowledge-store-metadata.d.ts.map +1 -0
- package/dist/lib/knowledge/knowledge-store-metadata.js +93 -0
- package/dist/lib/knowledge/knowledge-store-metadata.js.map +1 -0
- package/dist/lib/knowledge/knowledge-store.d.ts +43 -0
- package/dist/lib/knowledge/knowledge-store.d.ts.map +1 -0
- package/dist/lib/knowledge/knowledge-store.js +603 -0
- package/dist/lib/knowledge/knowledge-store.js.map +1 -0
- package/dist/lib/knowledge/loaders/database-loader.d.ts +5 -5
- package/dist/lib/knowledge/loaders/database-loader.d.ts.map +1 -1
- package/dist/lib/knowledge/loaders/database-loader.js +21 -10
- package/dist/lib/knowledge/loaders/database-loader.js.map +1 -1
- package/dist/lib/knowledge/loaders/file-loaders.d.ts +39 -0
- package/dist/lib/knowledge/loaders/file-loaders.d.ts.map +1 -0
- package/dist/lib/knowledge/loaders/file-loaders.js +131 -0
- package/dist/lib/knowledge/loaders/file-loaders.js.map +1 -0
- package/dist/lib/knowledge/loaders/index.d.ts +3 -3
- package/dist/lib/knowledge/loaders/index.d.ts.map +1 -1
- package/dist/lib/knowledge/loaders/index.js +3 -3
- package/dist/lib/knowledge/loaders/index.js.map +1 -1
- package/dist/lib/knowledge/loaders/web-loader.d.ts +2 -2
- package/dist/lib/knowledge/loaders/web-loader.d.ts.map +1 -1
- package/dist/lib/knowledge/loaders/web-loader.js +22 -21
- package/dist/lib/knowledge/loaders/web-loader.js.map +1 -1
- package/dist/lib/knowledge/sqlite-store.d.ts +107 -0
- package/dist/lib/knowledge/sqlite-store.d.ts.map +1 -0
- package/dist/lib/knowledge/sqlite-store.js +327 -0
- package/dist/lib/knowledge/sqlite-store.js.map +1 -0
- package/dist/lib/knowledge/types.d.ts +72 -1432
- package/dist/lib/knowledge/types.d.ts.map +1 -1
- package/dist/lib/knowledge/types.js +36 -57
- package/dist/lib/knowledge/types.js.map +1 -1
- package/dist/lib/knowledge/utils/connection-pool.d.ts +3 -2
- package/dist/lib/knowledge/utils/connection-pool.d.ts.map +1 -1
- package/dist/lib/knowledge/utils/connection-pool.js +20 -10
- package/dist/lib/knowledge/utils/connection-pool.js.map +1 -1
- package/dist/lib/knowledge/utils/index.d.ts +2 -2
- package/dist/lib/knowledge/utils/index.js +2 -2
- package/dist/lib/llm/index.d.ts +5 -5
- package/dist/lib/llm/index.d.ts.map +1 -1
- package/dist/lib/llm/index.js +3 -3
- package/dist/lib/llm/index.js.map +1 -1
- package/dist/lib/llm/llm-call-logger.d.ts +37 -0
- package/dist/lib/llm/llm-call-logger.d.ts.map +1 -0
- package/dist/lib/llm/llm-call-logger.js +105 -0
- package/dist/lib/llm/llm-call-logger.js.map +1 -0
- package/dist/lib/llm/llm-config.d.ts +22 -16
- package/dist/lib/llm/llm-config.d.ts.map +1 -1
- package/dist/lib/llm/llm-config.js +19 -3
- package/dist/lib/llm/llm-config.js.map +1 -1
- package/dist/lib/llm/llm-factory.d.ts +3 -16
- package/dist/lib/llm/llm-factory.d.ts.map +1 -1
- package/dist/lib/llm/llm-factory.js +30 -48
- package/dist/lib/llm/llm-factory.js.map +1 -1
- package/dist/lib/llm/provider-detector.d.ts +1 -1
- package/dist/lib/llm/providers/anthropic-chat-model.d.ts +27 -0
- package/dist/lib/llm/providers/anthropic-chat-model.d.ts.map +1 -0
- package/dist/lib/llm/providers/anthropic-chat-model.js +186 -0
- package/dist/lib/llm/providers/anthropic-chat-model.js.map +1 -0
- package/dist/lib/llm/providers/gemini-chat-model.d.ts +29 -0
- package/dist/lib/llm/providers/gemini-chat-model.d.ts.map +1 -0
- package/dist/lib/llm/providers/gemini-chat-model.js +241 -0
- package/dist/lib/llm/providers/gemini-chat-model.js.map +1 -0
- package/dist/lib/llm/providers/gemini-embeddings.d.ts +14 -0
- package/dist/lib/llm/providers/gemini-embeddings.d.ts.map +1 -0
- package/dist/lib/llm/providers/gemini-embeddings.js +20 -0
- package/dist/lib/llm/providers/gemini-embeddings.js.map +1 -0
- package/dist/lib/llm/providers/openai-chat-model.d.ts +30 -0
- package/dist/lib/llm/providers/openai-chat-model.d.ts.map +1 -0
- package/dist/lib/llm/providers/openai-chat-model.js +196 -0
- package/dist/lib/llm/providers/openai-chat-model.js.map +1 -0
- package/dist/lib/llm/providers/openai-embeddings.d.ts +17 -0
- package/dist/lib/llm/providers/openai-embeddings.d.ts.map +1 -0
- package/dist/lib/llm/providers/openai-embeddings.js +35 -0
- package/dist/lib/llm/providers/openai-embeddings.js.map +1 -0
- package/dist/lib/llm/types.d.ts +2 -2
- package/dist/lib/llm/types.js +1 -1
- package/dist/lib/logger.d.ts +7 -0
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +43 -4
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/mcp/index.d.ts +3 -3
- package/dist/lib/mcp/index.js +2 -2
- package/dist/lib/mcp/mcp-client.d.ts +3 -2
- package/dist/lib/mcp/mcp-client.d.ts.map +1 -1
- package/dist/lib/mcp/mcp-client.js +5 -2
- package/dist/lib/mcp/mcp-client.js.map +1 -1
- package/dist/lib/mcp/types.d.ts +33 -23
- package/dist/lib/mcp/types.d.ts.map +1 -1
- package/dist/lib/mcp/types.js +11 -2
- package/dist/lib/mcp/types.js.map +1 -1
- package/dist/lib/memory/conversation-store.d.ts +2 -2
- package/dist/lib/memory/conversation-store.d.ts.map +1 -1
- package/dist/lib/memory/conversation-store.js +1 -1
- package/dist/lib/memory/index.d.ts +3 -2
- package/dist/lib/memory/index.d.ts.map +1 -1
- package/dist/lib/memory/index.js +3 -2
- package/dist/lib/memory/index.js.map +1 -1
- package/dist/lib/memory/memory-manager.d.ts +9 -0
- package/dist/lib/memory/memory-manager.d.ts.map +1 -0
- package/dist/lib/memory/memory-manager.js +34 -0
- package/dist/lib/memory/memory-manager.js.map +1 -0
- package/dist/lib/memory/types.d.ts +1 -1
- package/dist/lib/memory/types.d.ts.map +1 -1
- package/dist/lib/orchestrator.d.ts +78 -18
- package/dist/lib/orchestrator.d.ts.map +1 -1
- package/dist/lib/orchestrator.js +247 -55
- package/dist/lib/orchestrator.js.map +1 -1
- package/dist/lib/sandbox/html-to-markdown.d.ts +2 -0
- package/dist/lib/sandbox/html-to-markdown.d.ts.map +1 -0
- package/dist/lib/sandbox/html-to-markdown.js +64 -0
- package/dist/lib/sandbox/html-to-markdown.js.map +1 -0
- package/dist/lib/sandbox/index.d.ts +7 -0
- package/dist/lib/sandbox/index.d.ts.map +1 -0
- package/dist/lib/sandbox/index.js +6 -0
- package/dist/lib/sandbox/index.js.map +1 -0
- package/dist/lib/sandbox/sandbox-exec.d.ts +5 -0
- package/dist/lib/sandbox/sandbox-exec.d.ts.map +1 -0
- package/dist/lib/sandbox/sandbox-exec.js +35 -0
- package/dist/lib/sandbox/sandbox-exec.js.map +1 -0
- package/dist/lib/sandbox/sandbox-web.d.ts +5 -0
- package/dist/lib/sandbox/sandbox-web.d.ts.map +1 -0
- package/dist/lib/sandbox/sandbox-web.js +211 -0
- package/dist/lib/sandbox/sandbox-web.js.map +1 -0
- package/dist/lib/sandbox/types.d.ts +21 -0
- package/dist/lib/sandbox/types.d.ts.map +1 -0
- package/dist/lib/sandbox/types.js +7 -0
- package/dist/lib/sandbox/types.js.map +1 -0
- package/dist/lib/sandbox/vm-executor.d.ts +12 -0
- package/dist/lib/sandbox/vm-executor.d.ts.map +1 -0
- package/dist/lib/sandbox/vm-executor.js +101 -0
- package/dist/lib/sandbox/vm-executor.js.map +1 -0
- package/dist/lib/skills/index.d.ts +4 -0
- package/dist/lib/skills/index.d.ts.map +1 -0
- package/dist/lib/skills/index.js +3 -0
- package/dist/lib/skills/index.js.map +1 -0
- package/dist/lib/skills/skill-loader.d.ts +19 -0
- package/dist/lib/skills/skill-loader.d.ts.map +1 -0
- package/dist/lib/skills/skill-loader.js +105 -0
- package/dist/lib/skills/skill-loader.js.map +1 -0
- package/dist/lib/skills/types.d.ts +17 -0
- package/dist/lib/skills/types.d.ts.map +1 -0
- package/dist/lib/skills/types.js +6 -0
- package/dist/lib/skills/types.js.map +1 -0
- package/dist/lib/tasks/index.d.ts +4 -0
- package/dist/lib/tasks/index.d.ts.map +1 -0
- package/dist/lib/tasks/index.js +4 -0
- package/dist/lib/tasks/index.js.map +1 -0
- package/dist/lib/tasks/task-manager.d.ts +25 -0
- package/dist/lib/tasks/task-manager.d.ts.map +1 -0
- package/dist/lib/tasks/task-manager.js +189 -0
- package/dist/lib/tasks/task-manager.js.map +1 -0
- package/dist/lib/tasks/task-store.d.ts +20 -0
- package/dist/lib/tasks/task-store.d.ts.map +1 -0
- package/dist/lib/tasks/task-store.js +102 -0
- package/dist/lib/tasks/task-store.js.map +1 -0
- package/dist/lib/tasks/types.d.ts +38 -0
- package/dist/lib/tasks/types.d.ts.map +1 -0
- package/dist/lib/tasks/types.js +2 -0
- package/dist/lib/tasks/types.js.map +1 -0
- package/dist/lib/templates/resource-templates.d.ts +6 -0
- package/dist/lib/templates/resource-templates.d.ts.map +1 -0
- package/dist/lib/templates/resource-templates.js +146 -0
- package/dist/lib/templates/resource-templates.js.map +1 -0
- package/dist/lib/tools/agent-tool-wrapper.d.ts +5 -5
- package/dist/lib/tools/agent-tool-wrapper.js +3 -3
- package/dist/lib/tools/agent-tool-wrapper.js.map +1 -1
- package/dist/lib/tools/built-in/ask-user.tool.d.ts +1 -1
- package/dist/lib/tools/built-in/ask-user.tool.d.ts.map +1 -1
- package/dist/lib/tools/built-in/ask-user.tool.js +2 -2
- package/dist/lib/tools/built-in/ask-user.tool.js.map +1 -1
- package/dist/lib/tools/built-in/index.d.ts +9 -2
- package/dist/lib/tools/built-in/index.d.ts.map +1 -1
- package/dist/lib/tools/built-in/index.js +9 -2
- package/dist/lib/tools/built-in/index.js.map +1 -1
- package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.d.ts +9 -0
- package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.d.ts.map +1 -0
- package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.js +102 -0
- package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.js.map +1 -0
- package/dist/lib/tools/built-in/knowledge-graph-schema.tool.d.ts +9 -0
- package/dist/lib/tools/built-in/knowledge-graph-schema.tool.d.ts.map +1 -0
- package/dist/lib/tools/built-in/knowledge-graph-schema.tool.js +96 -0
- package/dist/lib/tools/built-in/knowledge-graph-schema.tool.js.map +1 -0
- package/dist/lib/tools/built-in/knowledge-search.tool.d.ts +2 -2
- package/dist/lib/tools/built-in/knowledge-search.tool.d.ts.map +1 -1
- package/dist/lib/tools/built-in/knowledge-search.tool.js +1 -1
- package/dist/lib/tools/built-in/knowledge-search.tool.js.map +1 -1
- package/dist/lib/tools/built-in/knowledge-sql.tool.d.ts +7 -0
- package/dist/lib/tools/built-in/knowledge-sql.tool.d.ts.map +1 -0
- package/dist/lib/tools/built-in/knowledge-sql.tool.js +127 -0
- package/dist/lib/tools/built-in/knowledge-sql.tool.js.map +1 -0
- package/dist/lib/tools/built-in/knowledge-tools-factory.d.ts +17 -0
- package/dist/lib/tools/built-in/knowledge-tools-factory.d.ts.map +1 -0
- package/dist/lib/tools/built-in/knowledge-tools-factory.js +54 -0
- package/dist/lib/tools/built-in/knowledge-tools-factory.js.map +1 -0
- package/dist/lib/tools/built-in/knowledge-traverse.tool.d.ts +9 -0
- package/dist/lib/tools/built-in/knowledge-traverse.tool.d.ts.map +1 -0
- package/dist/lib/tools/built-in/knowledge-traverse.tool.js +91 -0
- package/dist/lib/tools/built-in/knowledge-traverse.tool.js.map +1 -0
- package/dist/lib/tools/built-in/memory-save.tool.d.ts +4 -0
- package/dist/lib/tools/built-in/memory-save.tool.d.ts.map +1 -0
- package/dist/lib/tools/built-in/memory-save.tool.js +21 -0
- package/dist/lib/tools/built-in/memory-save.tool.js.map +1 -0
- package/dist/lib/tools/built-in/query-validators.d.ts +18 -0
- package/dist/lib/tools/built-in/query-validators.d.ts.map +1 -0
- package/dist/lib/tools/built-in/query-validators.js +87 -0
- package/dist/lib/tools/built-in/query-validators.js.map +1 -0
- package/dist/lib/tools/index.d.ts +4 -4
- package/dist/lib/tools/index.js +4 -4
- package/dist/lib/tools/tool-discovery.d.ts +11 -33
- package/dist/lib/tools/tool-discovery.d.ts.map +1 -1
- package/dist/lib/tools/tool-discovery.js +16 -43
- package/dist/lib/tools/tool-discovery.js.map +1 -1
- package/dist/lib/tools/tool-registry.d.ts +10 -18
- package/dist/lib/tools/tool-registry.d.ts.map +1 -1
- package/dist/lib/tools/tool-registry.js +37 -23
- package/dist/lib/tools/tool-registry.js.map +1 -1
- package/dist/lib/tools/workspace/workspace-tools.d.ts +60 -0
- package/dist/lib/tools/workspace/workspace-tools.d.ts.map +1 -0
- package/dist/lib/tools/workspace/workspace-tools.js +140 -0
- package/dist/lib/tools/workspace/workspace-tools.js.map +1 -0
- package/dist/lib/triggers/cron-trigger.d.ts +12 -0
- package/dist/lib/triggers/cron-trigger.d.ts.map +1 -0
- package/dist/lib/triggers/cron-trigger.js +45 -0
- package/dist/lib/triggers/cron-trigger.js.map +1 -0
- package/dist/lib/triggers/index.d.ts +6 -0
- package/dist/lib/triggers/index.d.ts.map +1 -0
- package/dist/lib/triggers/index.js +5 -0
- package/dist/lib/triggers/index.js.map +1 -0
- package/dist/lib/triggers/trigger-manager.d.ts +11 -0
- package/dist/lib/triggers/trigger-manager.d.ts.map +1 -0
- package/dist/lib/triggers/trigger-manager.js +51 -0
- package/dist/lib/triggers/trigger-manager.js.map +1 -0
- package/dist/lib/triggers/types.d.ts +57 -0
- package/dist/lib/triggers/types.d.ts.map +1 -0
- package/dist/lib/triggers/types.js +16 -0
- package/dist/lib/triggers/types.js.map +1 -0
- package/dist/lib/triggers/webhook-trigger.d.ts +12 -0
- package/dist/lib/triggers/webhook-trigger.d.ts.map +1 -0
- package/dist/lib/triggers/webhook-trigger.js +34 -0
- package/dist/lib/triggers/webhook-trigger.js.map +1 -0
- package/dist/lib/types/llm-types.d.ts +54 -0
- package/dist/lib/types/llm-types.d.ts.map +1 -0
- package/dist/lib/types/llm-types.js +22 -0
- package/dist/lib/types/llm-types.js.map +1 -0
- package/dist/lib/types/text-splitters.d.ts +27 -0
- package/dist/lib/types/text-splitters.d.ts.map +1 -0
- package/dist/lib/types/text-splitters.js +114 -0
- package/dist/lib/types/text-splitters.js.map +1 -0
- package/dist/lib/types/tool-factory.d.ts +9 -0
- package/dist/lib/types/tool-factory.d.ts.map +1 -0
- package/dist/lib/types/tool-factory.js +12 -0
- package/dist/lib/types/tool-factory.js.map +1 -0
- package/dist/lib/utils/file-utils.d.ts +11 -0
- package/dist/lib/utils/file-utils.d.ts.map +1 -0
- package/dist/lib/utils/file-utils.js +86 -0
- package/dist/lib/utils/file-utils.js.map +1 -0
- package/dist/lib/workflows/index.d.ts +6 -6
- package/dist/lib/workflows/index.d.ts.map +1 -1
- package/dist/lib/workflows/index.js +5 -5
- package/dist/lib/workflows/index.js.map +1 -1
- package/dist/lib/workflows/interrupt-manager.d.ts +1 -1
- package/dist/lib/workflows/interrupt-manager.js +1 -1
- package/dist/lib/workflows/react-workflow-executor.d.ts +26 -0
- package/dist/lib/workflows/react-workflow-executor.d.ts.map +1 -0
- package/dist/lib/workflows/react-workflow-executor.js +333 -0
- package/dist/lib/workflows/react-workflow-executor.js.map +1 -0
- package/dist/lib/workflows/types.d.ts +96 -97
- package/dist/lib/workflows/types.d.ts.map +1 -1
- package/dist/lib/workflows/types.js +5 -5
- package/dist/lib/workflows/types.js.map +1 -1
- package/dist/lib/workflows/workflow-executor.d.ts +3 -3
- package/dist/lib/workflows/workflow-executor.js +2 -2
- package/dist/lib/workflows/workflow-executor.js.map +1 -1
- package/dist/lib/workflows/workflow-loader.d.ts +1 -1
- package/dist/lib/workflows/workflow-loader.d.ts.map +1 -1
- package/dist/lib/workflows/workflow-loader.js +10 -3
- package/dist/lib/workflows/workflow-loader.js.map +1 -1
- package/dist/public/index.html +32 -0
- package/dist/public/src/components/AgentsView.js +298 -44
- package/dist/public/src/components/AppRoot.js +124 -4
- package/dist/public/src/components/GraphView.js +336 -0
- package/dist/public/src/components/IdeView.js +462 -7
- package/dist/public/src/components/KnowledgeView.js +443 -66
- package/dist/public/src/components/MonitorView.js +388 -0
- package/dist/public/src/components/NavBar.js +3 -0
- package/dist/public/src/components/SkillsView.js +137 -0
- package/dist/public/src/components/WorkflowsView.js +287 -114
- package/dist/public/src/services/ApiService.js +165 -25
- package/dist/public/src/store.js +3 -2
- package/dist/public/src/utils/markdown.js +1 -0
- package/dist/src/cli/commands/init.js +2 -2
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/start.d.ts +0 -1
- package/dist/src/cli/commands/start.d.ts.map +1 -1
- package/dist/src/cli/commands/start.js +23 -14
- package/dist/src/cli/commands/start.js.map +1 -1
- package/dist/src/cli/index.js +3 -3
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +23 -9
- package/dist/src/index.js.map +1 -1
- package/dist/src/middleware/auth.d.ts +3 -0
- package/dist/src/middleware/auth.d.ts.map +1 -0
- package/dist/src/middleware/auth.js +107 -0
- package/dist/src/middleware/auth.js.map +1 -0
- package/dist/src/routes/agents.route.d.ts.map +1 -1
- package/dist/src/routes/agents.route.js +31 -2
- package/dist/src/routes/agents.route.js.map +1 -1
- package/dist/src/routes/files.route.d.ts.map +1 -1
- package/dist/src/routes/files.route.js +128 -87
- package/dist/src/routes/files.route.js.map +1 -1
- package/dist/src/routes/functions.route.js +1 -1
- package/dist/src/routes/graph.route.d.ts +3 -0
- package/dist/src/routes/graph.route.d.ts.map +1 -0
- package/dist/src/routes/graph.route.js +173 -0
- package/dist/src/routes/graph.route.js.map +1 -0
- package/dist/src/routes/knowledge.route.d.ts.map +1 -1
- package/dist/src/routes/knowledge.route.js +172 -69
- package/dist/src/routes/knowledge.route.js.map +1 -1
- package/dist/src/routes/llm.route.d.ts.map +1 -1
- package/dist/src/routes/llm.route.js +48 -7
- package/dist/src/routes/llm.route.js.map +1 -1
- package/dist/src/routes/mcp.route.js +1 -1
- package/dist/src/routes/skills.route.d.ts +3 -0
- package/dist/src/routes/skills.route.d.ts.map +1 -0
- package/dist/src/routes/skills.route.js +23 -0
- package/dist/src/routes/skills.route.js.map +1 -0
- package/dist/src/routes/tasks.route.d.ts +3 -0
- package/dist/src/routes/tasks.route.d.ts.map +1 -0
- package/dist/src/routes/tasks.route.js +135 -0
- package/dist/src/routes/tasks.route.js.map +1 -0
- package/dist/src/routes/workflows.route.d.ts.map +1 -1
- package/dist/src/routes/workflows.route.js +9 -1
- package/dist/src/routes/workflows.route.js.map +1 -1
- package/dist/src/server.d.ts +1 -1
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +21 -8
- package/dist/src/server.js.map +1 -1
- package/dist/templates/.env.example +4 -19
- package/dist/templates/README.md +18 -10
- package/dist/templates/agents/architect.agent.yaml +49 -0
- package/dist/templates/agents/chatbot.agent.yaml +58 -0
- package/dist/templates/agents/knowledge-broker.agent.yaml +39 -0
- package/dist/templates/agents/sandbox.agent.yaml +56 -0
- package/dist/templates/knowledge/example.knowledge.yaml +0 -3
- package/dist/templates/knowledge/org-chart/personnel.csv +21 -0
- package/dist/templates/knowledge/org-chart.knowledge.yaml +49 -0
- package/dist/templates/knowledge/pet-store/pet-store.db +0 -0
- package/dist/templates/knowledge/pet-store.knowledge.yaml +78 -0
- package/dist/templates/knowledge/web-docs.knowledge.yaml +20 -0
- package/dist/templates/llm.json +2 -2
- package/dist/templates/mcp.json +3 -0
- package/dist/templates/skills/orcha-builder/SKILL.md +339 -0
- package/dist/templates/skills/sandbox/SKILL.md +63 -0
- package/dist/templates/workflows/example.workflow.yaml +25 -30
- package/dist/templates/workflows/react-example.workflow.yaml +53 -0
- package/package.json +17 -20
- package/dist/lib/knowledge/graph-rag/community-detector.d.ts +0 -16
- package/dist/lib/knowledge/graph-rag/community-detector.d.ts.map +0 -1
- package/dist/lib/knowledge/graph-rag/community-detector.js +0 -81
- package/dist/lib/knowledge/graph-rag/community-detector.js.map +0 -1
- package/dist/lib/knowledge/graph-rag/community-summarizer.d.ts +0 -17
- package/dist/lib/knowledge/graph-rag/community-summarizer.d.ts.map +0 -1
- package/dist/lib/knowledge/graph-rag/community-summarizer.js +0 -87
- package/dist/lib/knowledge/graph-rag/community-summarizer.js.map +0 -1
- package/dist/lib/knowledge/graph-rag/entity-extractor.d.ts +0 -36
- package/dist/lib/knowledge/graph-rag/entity-extractor.d.ts.map +0 -1
- package/dist/lib/knowledge/graph-rag/entity-extractor.js +0 -192
- package/dist/lib/knowledge/graph-rag/entity-extractor.js.map +0 -1
- package/dist/lib/knowledge/graph-rag/extraction-cache.d.ts +0 -30
- package/dist/lib/knowledge/graph-rag/extraction-cache.d.ts.map +0 -1
- package/dist/lib/knowledge/graph-rag/extraction-cache.js +0 -88
- package/dist/lib/knowledge/graph-rag/extraction-cache.js.map +0 -1
- package/dist/lib/knowledge/graph-rag/global-search.d.ts +0 -19
- package/dist/lib/knowledge/graph-rag/global-search.d.ts.map +0 -1
- package/dist/lib/knowledge/graph-rag/global-search.js +0 -96
- package/dist/lib/knowledge/graph-rag/global-search.js.map +0 -1
- package/dist/lib/knowledge/graph-rag/graph-rag-factory.d.ts +0 -24
- package/dist/lib/knowledge/graph-rag/graph-rag-factory.d.ts.map +0 -1
- package/dist/lib/knowledge/graph-rag/graph-rag-factory.js +0 -239
- package/dist/lib/knowledge/graph-rag/graph-rag-factory.js.map +0 -1
- package/dist/lib/knowledge/graph-rag/index.d.ts +0 -14
- package/dist/lib/knowledge/graph-rag/index.d.ts.map +0 -1
- package/dist/lib/knowledge/graph-rag/index.js +0 -12
- package/dist/lib/knowledge/graph-rag/index.js.map +0 -1
- package/dist/lib/knowledge/graph-rag/local-search.d.ts +0 -20
- package/dist/lib/knowledge/graph-rag/local-search.d.ts.map +0 -1
- package/dist/lib/knowledge/graph-rag/local-search.js +0 -110
- package/dist/lib/knowledge/graph-rag/local-search.js.map +0 -1
- package/dist/lib/knowledge/graph-rag/memory-graph-store.d.ts +0 -31
- package/dist/lib/knowledge/graph-rag/memory-graph-store.d.ts.map +0 -1
- package/dist/lib/knowledge/graph-rag/memory-graph-store.js +0 -165
- package/dist/lib/knowledge/graph-rag/memory-graph-store.js.map +0 -1
- package/dist/lib/knowledge/graph-rag/neo4j-graph-store.d.ts +0 -38
- package/dist/lib/knowledge/graph-rag/neo4j-graph-store.d.ts.map +0 -1
- package/dist/lib/knowledge/graph-rag/neo4j-graph-store.js +0 -190
- package/dist/lib/knowledge/graph-rag/neo4j-graph-store.js.map +0 -1
- package/dist/lib/knowledge/graph-rag/search-mode-detector.d.ts +0 -11
- package/dist/lib/knowledge/graph-rag/search-mode-detector.d.ts.map +0 -1
- package/dist/lib/knowledge/graph-rag/search-mode-detector.js +0 -50
- package/dist/lib/knowledge/graph-rag/search-mode-detector.js.map +0 -1
- package/dist/lib/knowledge/graph-rag/types.d.ts +0 -368
- package/dist/lib/knowledge/graph-rag/types.d.ts.map +0 -1
- package/dist/lib/knowledge/graph-rag/types.js +0 -48
- package/dist/lib/knowledge/graph-rag/types.js.map +0 -1
- package/dist/lib/knowledge/knowledge-store-factory.d.ts +0 -16
- package/dist/lib/knowledge/knowledge-store-factory.d.ts.map +0 -1
- package/dist/lib/knowledge/knowledge-store-factory.js +0 -376
- package/dist/lib/knowledge/knowledge-store-factory.js.map +0 -1
- package/dist/lib/knowledge/knowledge-store-manager.d.ts +0 -18
- package/dist/lib/knowledge/knowledge-store-manager.d.ts.map +0 -1
- package/dist/lib/knowledge/knowledge-store-manager.js +0 -98
- package/dist/lib/knowledge/knowledge-store-manager.js.map +0 -1
- package/dist/lib/knowledge/loaders/s3-loader.d.ts +0 -17
- package/dist/lib/knowledge/loaders/s3-loader.d.ts.map +0 -1
- package/dist/lib/knowledge/loaders/s3-loader.js +0 -185
- package/dist/lib/knowledge/loaders/s3-loader.js.map +0 -1
- package/dist/lib/workflows/langgraph-executor.d.ts +0 -51
- package/dist/lib/workflows/langgraph-executor.d.ts.map +0 -1
- package/dist/lib/workflows/langgraph-executor.js +0 -297
- package/dist/lib/workflows/langgraph-executor.js.map +0 -1
- package/dist/templates/agents/call-center-analyst-simple.agent.yaml +0 -36
- package/dist/templates/agents/math.agent.yaml +0 -28
- package/dist/templates/agents/sentiment-structured.agent.yaml +0 -42
- package/dist/templates/llm.md +0 -1195
- package/dist/templates/workflows/langgraph-example.workflow.yaml +0 -84
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import { HumanMessage, SystemMessage } from '@langchain/core/messages';
|
|
2
|
-
import { createLogger } from '../../logger.js';
|
|
3
|
-
const logger = createLogger('EntityExtractor');
|
|
4
|
-
/**
|
|
5
|
-
* LLM-based entity and relationship extraction from text chunks.
|
|
6
|
-
*/
|
|
7
|
-
export class EntityExtractor {
|
|
8
|
-
llm;
|
|
9
|
-
entityTypes;
|
|
10
|
-
relationshipTypes;
|
|
11
|
-
constructor(options) {
|
|
12
|
-
this.llm = options.llm;
|
|
13
|
-
this.entityTypes = options.entityTypes;
|
|
14
|
-
this.relationshipTypes = options.relationshipTypes;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Extract entities and relationships from a set of text chunks.
|
|
18
|
-
* Processes chunks sequentially to avoid rate limiting.
|
|
19
|
-
*/
|
|
20
|
-
async extractFromChunks(chunks) {
|
|
21
|
-
const allEntities = [];
|
|
22
|
-
const allRelationships = [];
|
|
23
|
-
for (let i = 0; i < chunks.length; i++) {
|
|
24
|
-
const chunk = chunks[i];
|
|
25
|
-
logger.info(`Extracting from chunk ${i + 1}/${chunks.length} (${chunk.content.length} chars)`);
|
|
26
|
-
try {
|
|
27
|
-
const result = await this.extractFromSingleChunk(chunk.id, chunk.content);
|
|
28
|
-
allEntities.push(...result.entities);
|
|
29
|
-
allRelationships.push(...result.relationships);
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
logger.error(`Failed to extract from chunk ${i + 1}: ${error instanceof Error ? error.message : String(error)}`);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
logger.info(`Raw extraction: ${allEntities.length} entities, ${allRelationships.length} relationships`);
|
|
36
|
-
// Deduplicate entities by normalized name + type
|
|
37
|
-
const deduplicated = this.deduplicateEntities(allEntities, allRelationships);
|
|
38
|
-
logger.info(`After dedup: ${deduplicated.entities.length} entities, ${deduplicated.relationships.length} relationships`);
|
|
39
|
-
return deduplicated;
|
|
40
|
-
}
|
|
41
|
-
async extractFromSingleChunk(chunkId, content) {
|
|
42
|
-
const systemPrompt = this.buildSystemPrompt();
|
|
43
|
-
const userPrompt = this.buildUserPrompt(content);
|
|
44
|
-
const response = await this.llm.invoke([
|
|
45
|
-
new SystemMessage(systemPrompt),
|
|
46
|
-
new HumanMessage(userPrompt),
|
|
47
|
-
]);
|
|
48
|
-
const responseText = typeof response.content === 'string'
|
|
49
|
-
? response.content
|
|
50
|
-
: Array.isArray(response.content)
|
|
51
|
-
? response.content.map((c) => (typeof c === 'string' ? c : 'text' in c ? c.text : '')).join('')
|
|
52
|
-
: '';
|
|
53
|
-
return this.parseExtractionResponse(responseText, chunkId);
|
|
54
|
-
}
|
|
55
|
-
buildSystemPrompt() {
|
|
56
|
-
const entityTypesSection = this.entityTypes && this.entityTypes.length > 0
|
|
57
|
-
? `\n\nEntity types to extract:\n${this.entityTypes.map((t) => `- ${t.name}: ${t.description}`).join('\n')}`
|
|
58
|
-
: '\n\nExtract all notable entities (people, organizations, concepts, locations, events, objects, etc.).';
|
|
59
|
-
const relationshipTypesSection = this.relationshipTypes && this.relationshipTypes.length > 0
|
|
60
|
-
? `\n\nRelationship types to extract:\n${this.relationshipTypes.map((t) => `- ${t.name}: ${t.description}`).join('\n')}`
|
|
61
|
-
: '\n\nExtract all meaningful relationships between entities.';
|
|
62
|
-
return `You are an entity and relationship extraction system. Given a text document, extract structured entities and relationships.
|
|
63
|
-
${entityTypesSection}
|
|
64
|
-
${relationshipTypesSection}
|
|
65
|
-
|
|
66
|
-
Respond ONLY with valid JSON in this exact format:
|
|
67
|
-
{
|
|
68
|
-
"entities": [
|
|
69
|
-
{
|
|
70
|
-
"name": "Entity Name",
|
|
71
|
-
"type": "EntityType",
|
|
72
|
-
"description": "Brief description of this entity based on the text"
|
|
73
|
-
}
|
|
74
|
-
],
|
|
75
|
-
"relationships": [
|
|
76
|
-
{
|
|
77
|
-
"sourceName": "Source Entity Name",
|
|
78
|
-
"sourceType": "SourceEntityType",
|
|
79
|
-
"targetName": "Target Entity Name",
|
|
80
|
-
"targetType": "TargetEntityType",
|
|
81
|
-
"type": "RELATIONSHIP_TYPE",
|
|
82
|
-
"description": "Brief description of this relationship",
|
|
83
|
-
"weight": 1.0
|
|
84
|
-
}
|
|
85
|
-
]
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
Rules:
|
|
89
|
-
- Entity names should be normalized (proper case, no extra whitespace)
|
|
90
|
-
- Use consistent naming for the same entity across extractions
|
|
91
|
-
- Relationship weight should be 0.0 to 1.0 (1.0 = very strong relationship)
|
|
92
|
-
- Every entity in a relationship must also appear in the entities array
|
|
93
|
-
- Be thorough but precise - extract real entities, not generic concepts`;
|
|
94
|
-
}
|
|
95
|
-
buildUserPrompt(content) {
|
|
96
|
-
return `Extract entities and relationships from the following text:\n\n---\n${content}\n---`;
|
|
97
|
-
}
|
|
98
|
-
parseExtractionResponse(responseText, chunkId) {
|
|
99
|
-
try {
|
|
100
|
-
// Extract JSON from response (handle markdown code blocks)
|
|
101
|
-
const jsonMatch = responseText.match(/```(?:json)?\s*([\s\S]*?)```/) ?? [null, responseText];
|
|
102
|
-
const jsonStr = (jsonMatch[1] ?? responseText).trim();
|
|
103
|
-
const parsed = JSON.parse(jsonStr);
|
|
104
|
-
const entities = (parsed.entities ?? []).map((e) => ({
|
|
105
|
-
name: String(e.name ?? '').trim(),
|
|
106
|
-
type: String(e.type ?? 'Unknown').trim(),
|
|
107
|
-
description: String(e.description ?? '').trim(),
|
|
108
|
-
properties: { sourceChunkId: chunkId },
|
|
109
|
-
})).filter((e) => e.name.length > 0);
|
|
110
|
-
const relationships = (parsed.relationships ?? []).map((r) => ({
|
|
111
|
-
sourceName: String(r.sourceName ?? '').trim(),
|
|
112
|
-
sourceType: String(r.sourceType ?? 'Unknown').trim(),
|
|
113
|
-
targetName: String(r.targetName ?? '').trim(),
|
|
114
|
-
targetType: String(r.targetType ?? 'Unknown').trim(),
|
|
115
|
-
type: String(r.type ?? 'RELATES_TO').trim(),
|
|
116
|
-
description: String(r.description ?? '').trim(),
|
|
117
|
-
weight: typeof r.weight === 'number' ? Math.max(0, Math.min(1, r.weight)) : 1.0,
|
|
118
|
-
})).filter((r) => r.sourceName.length > 0 && r.targetName.length > 0);
|
|
119
|
-
return { entities, relationships };
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
logger.warn(`Failed to parse extraction response for chunk ${chunkId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
123
|
-
logger.debug(`Response was: ${responseText.substring(0, 200)}...`);
|
|
124
|
-
return { entities: [], relationships: [] };
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Deduplicate entities by normalized key (lowercase name + type).
|
|
129
|
-
* Merges descriptions and source chunk IDs.
|
|
130
|
-
* Updates relationship references to use canonical entity names.
|
|
131
|
-
*/
|
|
132
|
-
deduplicateEntities(entities, relationships) {
|
|
133
|
-
const entityMap = new Map();
|
|
134
|
-
const nameNormMap = new Map(); // normalizedKey -> canonical name
|
|
135
|
-
for (const entity of entities) {
|
|
136
|
-
const key = `${entity.name.toLowerCase()}::${entity.type.toLowerCase()}`;
|
|
137
|
-
const existing = entityMap.get(key);
|
|
138
|
-
if (existing) {
|
|
139
|
-
// Merge: keep longer description, merge source chunks
|
|
140
|
-
if (entity.description.length > existing.description.length) {
|
|
141
|
-
existing.description = entity.description;
|
|
142
|
-
}
|
|
143
|
-
const existingChunks = existing.properties.sourceChunkIds ?? [];
|
|
144
|
-
const newChunkId = entity.properties.sourceChunkId;
|
|
145
|
-
if (newChunkId && !existingChunks.includes(newChunkId)) {
|
|
146
|
-
existingChunks.push(newChunkId);
|
|
147
|
-
}
|
|
148
|
-
existing.properties.sourceChunkIds = existingChunks;
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
const chunkId = entity.properties.sourceChunkId;
|
|
152
|
-
entityMap.set(key, {
|
|
153
|
-
...entity,
|
|
154
|
-
properties: {
|
|
155
|
-
sourceChunkIds: chunkId ? [chunkId] : [],
|
|
156
|
-
},
|
|
157
|
-
});
|
|
158
|
-
nameNormMap.set(key, entity.name);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
// Deduplicate relationships
|
|
162
|
-
const relMap = new Map();
|
|
163
|
-
for (const rel of relationships) {
|
|
164
|
-
const sourceKey = `${rel.sourceName.toLowerCase()}::${rel.sourceType.toLowerCase()}`;
|
|
165
|
-
const targetKey = `${rel.targetName.toLowerCase()}::${rel.targetType.toLowerCase()}`;
|
|
166
|
-
// Update names to canonical versions
|
|
167
|
-
const canonicalSource = nameNormMap.get(sourceKey) ?? rel.sourceName;
|
|
168
|
-
const canonicalTarget = nameNormMap.get(targetKey) ?? rel.targetName;
|
|
169
|
-
const relKey = `${sourceKey}->${rel.type.toLowerCase()}->${targetKey}`;
|
|
170
|
-
const existing = relMap.get(relKey);
|
|
171
|
-
if (existing) {
|
|
172
|
-
// Merge: average weights, keep longer description
|
|
173
|
-
existing.weight = (existing.weight + rel.weight) / 2;
|
|
174
|
-
if (rel.description.length > existing.description.length) {
|
|
175
|
-
existing.description = rel.description;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
relMap.set(relKey, {
|
|
180
|
-
...rel,
|
|
181
|
-
sourceName: canonicalSource,
|
|
182
|
-
targetName: canonicalTarget,
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
return {
|
|
187
|
-
entities: Array.from(entityMap.values()),
|
|
188
|
-
relationships: Array.from(relMap.values()),
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
//# sourceMappingURL=entity-extractor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity-extractor.js","sourceRoot":"","sources":["../../../../lib/knowledge/graph-rag/entity-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { CachedGraphData, ExtractedEntity, ExtractedRelationship, Community } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* File-based JSON cache for graph extraction results.
|
|
4
|
-
* Invalidates when source document content changes (SHA-256 hash).
|
|
5
|
-
*/
|
|
6
|
-
export declare class ExtractionCache {
|
|
7
|
-
private cacheDir;
|
|
8
|
-
constructor(baseDir: string, knowledgeName: string);
|
|
9
|
-
/**
|
|
10
|
-
* Compute SHA-256 hash of concatenated document contents.
|
|
11
|
-
*/
|
|
12
|
-
static computeSourceHash(documentContents: string[]): string;
|
|
13
|
-
/**
|
|
14
|
-
* Check if valid cache exists for the given source hash.
|
|
15
|
-
*/
|
|
16
|
-
isValid(sourceHash: string): Promise<boolean>;
|
|
17
|
-
/**
|
|
18
|
-
* Load cached graph data.
|
|
19
|
-
*/
|
|
20
|
-
load(): Promise<CachedGraphData>;
|
|
21
|
-
/**
|
|
22
|
-
* Save graph data to cache.
|
|
23
|
-
*/
|
|
24
|
-
save(sourceHash: string, entities: ExtractedEntity[], relationships: ExtractedRelationship[], communities: Community[]): Promise<void>;
|
|
25
|
-
/**
|
|
26
|
-
* Clear the cache directory.
|
|
27
|
-
*/
|
|
28
|
-
clear(): Promise<void>;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=extraction-cache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extraction-cache.d.ts","sourceRoot":"","sources":["../../../../lib/knowledge/graph-rag/extraction-cache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAiB,eAAe,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAOpH;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAIlD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM;IAQ5D;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWnD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;IAgBtC;;OAEG;IACG,IAAI,CACR,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,eAAe,EAAE,EAC3B,aAAa,EAAE,qBAAqB,EAAE,EACtC,WAAW,EAAE,SAAS,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;IAmBhB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import * as fs from 'fs/promises';
|
|
2
|
-
import * as path from 'path';
|
|
3
|
-
import * as crypto from 'crypto';
|
|
4
|
-
import { createLogger } from '../../logger.js';
|
|
5
|
-
const logger = createLogger('ExtractionCache');
|
|
6
|
-
const CONFIG_VERSION = '1.0';
|
|
7
|
-
/**
|
|
8
|
-
* File-based JSON cache for graph extraction results.
|
|
9
|
-
* Invalidates when source document content changes (SHA-256 hash).
|
|
10
|
-
*/
|
|
11
|
-
export class ExtractionCache {
|
|
12
|
-
cacheDir;
|
|
13
|
-
constructor(baseDir, knowledgeName) {
|
|
14
|
-
this.cacheDir = path.join(baseDir, knowledgeName);
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Compute SHA-256 hash of concatenated document contents.
|
|
18
|
-
*/
|
|
19
|
-
static computeSourceHash(documentContents) {
|
|
20
|
-
const hash = crypto.createHash('sha256');
|
|
21
|
-
for (const content of documentContents) {
|
|
22
|
-
hash.update(content);
|
|
23
|
-
}
|
|
24
|
-
return hash.digest('hex');
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Check if valid cache exists for the given source hash.
|
|
28
|
-
*/
|
|
29
|
-
async isValid(sourceHash) {
|
|
30
|
-
try {
|
|
31
|
-
const metadataPath = path.join(this.cacheDir, 'metadata.json');
|
|
32
|
-
const content = await fs.readFile(metadataPath, 'utf-8');
|
|
33
|
-
const metadata = JSON.parse(content);
|
|
34
|
-
return metadata.sourceHash === sourceHash && metadata.configVersion === CONFIG_VERSION;
|
|
35
|
-
}
|
|
36
|
-
catch {
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Load cached graph data.
|
|
42
|
-
*/
|
|
43
|
-
async load() {
|
|
44
|
-
const [metadataRaw, entitiesRaw, relationshipsRaw, communitiesRaw] = await Promise.all([
|
|
45
|
-
fs.readFile(path.join(this.cacheDir, 'metadata.json'), 'utf-8'),
|
|
46
|
-
fs.readFile(path.join(this.cacheDir, 'entities.json'), 'utf-8'),
|
|
47
|
-
fs.readFile(path.join(this.cacheDir, 'relationships.json'), 'utf-8'),
|
|
48
|
-
fs.readFile(path.join(this.cacheDir, 'communities.json'), 'utf-8'),
|
|
49
|
-
]);
|
|
50
|
-
return {
|
|
51
|
-
metadata: JSON.parse(metadataRaw),
|
|
52
|
-
entities: JSON.parse(entitiesRaw),
|
|
53
|
-
relationships: JSON.parse(relationshipsRaw),
|
|
54
|
-
communities: JSON.parse(communitiesRaw),
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Save graph data to cache.
|
|
59
|
-
*/
|
|
60
|
-
async save(sourceHash, entities, relationships, communities) {
|
|
61
|
-
await fs.mkdir(this.cacheDir, { recursive: true });
|
|
62
|
-
const metadata = {
|
|
63
|
-
sourceHash,
|
|
64
|
-
extractedAt: new Date().toISOString(),
|
|
65
|
-
configVersion: CONFIG_VERSION,
|
|
66
|
-
};
|
|
67
|
-
await Promise.all([
|
|
68
|
-
fs.writeFile(path.join(this.cacheDir, 'metadata.json'), JSON.stringify(metadata, null, 2)),
|
|
69
|
-
fs.writeFile(path.join(this.cacheDir, 'entities.json'), JSON.stringify(entities, null, 2)),
|
|
70
|
-
fs.writeFile(path.join(this.cacheDir, 'relationships.json'), JSON.stringify(relationships, null, 2)),
|
|
71
|
-
fs.writeFile(path.join(this.cacheDir, 'communities.json'), JSON.stringify(communities, null, 2)),
|
|
72
|
-
]);
|
|
73
|
-
logger.info(`Cache saved to ${this.cacheDir} (${entities.length} entities, ${relationships.length} relationships, ${communities.length} communities)`);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Clear the cache directory.
|
|
77
|
-
*/
|
|
78
|
-
async clear() {
|
|
79
|
-
try {
|
|
80
|
-
await fs.rm(this.cacheDir, { recursive: true, force: true });
|
|
81
|
-
logger.info(`Cache cleared: ${this.cacheDir}`);
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
// Cache directory may not exist
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=extraction-cache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extraction-cache.js","sourceRoot":"","sources":["../../../../lib/knowledge/graph-rag/extraction-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
2
|
-
import type { GraphStore, GlobalSearchConfig } from './types.js';
|
|
3
|
-
import type { SearchResult } from '../types.js';
|
|
4
|
-
/**
|
|
5
|
-
* Community-summary map-reduce search.
|
|
6
|
-
* 1. Retrieve top N community summaries
|
|
7
|
-
* 2. Map: ask LLM to answer query using each summary
|
|
8
|
-
* 3. Reduce: synthesize all partial answers into final response
|
|
9
|
-
*/
|
|
10
|
-
export declare class GlobalSearch {
|
|
11
|
-
private store;
|
|
12
|
-
private llm;
|
|
13
|
-
private config;
|
|
14
|
-
constructor(store: GraphStore, llm: BaseChatModel, config: GlobalSearchConfig);
|
|
15
|
-
search(query: string, _k: number): Promise<SearchResult[]>;
|
|
16
|
-
private mapQuery;
|
|
17
|
-
private reduceAnswers;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=global-search.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"global-search.d.ts","sourceRoot":"","sources":["../../../../lib/knowledge/graph-rag/global-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAEjF,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,MAAM,CAAqB;gBAEvB,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB;IAMvE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YAyDlD,QAAQ;YAoBR,aAAa;CAyB5B"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { HumanMessage, SystemMessage } from '@langchain/core/messages';
|
|
2
|
-
import { createLogger } from '../../logger.js';
|
|
3
|
-
const logger = createLogger('GraphGlobalSearch');
|
|
4
|
-
/**
|
|
5
|
-
* Community-summary map-reduce search.
|
|
6
|
-
* 1. Retrieve top N community summaries
|
|
7
|
-
* 2. Map: ask LLM to answer query using each summary
|
|
8
|
-
* 3. Reduce: synthesize all partial answers into final response
|
|
9
|
-
*/
|
|
10
|
-
export class GlobalSearch {
|
|
11
|
-
store;
|
|
12
|
-
llm;
|
|
13
|
-
config;
|
|
14
|
-
constructor(store, llm, config) {
|
|
15
|
-
this.store = store;
|
|
16
|
-
this.llm = llm;
|
|
17
|
-
this.config = config;
|
|
18
|
-
}
|
|
19
|
-
async search(query, _k) {
|
|
20
|
-
logger.info(`Global search: "${query.substring(0, 50)}..." (topCommunities=${this.config.topCommunities})`);
|
|
21
|
-
const communities = await this.store.getCommunities();
|
|
22
|
-
if (communities.length === 0) {
|
|
23
|
-
logger.warn('No communities found');
|
|
24
|
-
return [];
|
|
25
|
-
}
|
|
26
|
-
// Take top N communities (sorted by size, largest first)
|
|
27
|
-
const topCommunities = [...communities]
|
|
28
|
-
.sort((a, b) => b.nodeIds.length - a.nodeIds.length)
|
|
29
|
-
.slice(0, this.config.topCommunities);
|
|
30
|
-
logger.info(`Using ${topCommunities.length} communities for map-reduce`);
|
|
31
|
-
// Map phase: get partial answers from each community
|
|
32
|
-
const partialAnswers = [];
|
|
33
|
-
for (const community of topCommunities) {
|
|
34
|
-
if (!community.summary)
|
|
35
|
-
continue;
|
|
36
|
-
try {
|
|
37
|
-
const answer = await this.mapQuery(query, community.title ?? community.id, community.summary);
|
|
38
|
-
if (answer && answer.trim().length > 0) {
|
|
39
|
-
partialAnswers.push({
|
|
40
|
-
communityId: community.id,
|
|
41
|
-
title: community.title ?? community.id,
|
|
42
|
-
answer,
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
logger.warn(`Map failed for community ${community.id}: ${error instanceof Error ? error.message : String(error)}`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (partialAnswers.length === 0) {
|
|
51
|
-
logger.warn('No partial answers generated');
|
|
52
|
-
return [];
|
|
53
|
-
}
|
|
54
|
-
// Reduce phase: synthesize final answer
|
|
55
|
-
const synthesized = await this.reduceAnswers(query, partialAnswers);
|
|
56
|
-
const result = {
|
|
57
|
-
content: synthesized,
|
|
58
|
-
metadata: {
|
|
59
|
-
type: 'graph-global',
|
|
60
|
-
communitiesUsed: partialAnswers.length,
|
|
61
|
-
communityIds: partialAnswers.map((a) => a.communityId),
|
|
62
|
-
},
|
|
63
|
-
score: 1.0, // Global search is always fully relevant to broad queries
|
|
64
|
-
};
|
|
65
|
-
return [result];
|
|
66
|
-
}
|
|
67
|
-
async mapQuery(query, communityTitle, communitySummary) {
|
|
68
|
-
const response = await this.llm.invoke([
|
|
69
|
-
new SystemMessage(`You are a helpful analyst. Given a community summary from a knowledge graph, answer the user's question based on the information available. If the community summary is not relevant to the question, respond with an empty string "".
|
|
70
|
-
Be concise and factual.`),
|
|
71
|
-
new HumanMessage(`Community: ${communityTitle}\n\nSummary:\n${communitySummary}\n\nQuestion: ${query}`),
|
|
72
|
-
]);
|
|
73
|
-
const text = typeof response.content === 'string'
|
|
74
|
-
? response.content
|
|
75
|
-
: Array.isArray(response.content)
|
|
76
|
-
? response.content.map((c) => (typeof c === 'string' ? c : 'text' in c ? c.text : '')).join('')
|
|
77
|
-
: '';
|
|
78
|
-
return text.trim();
|
|
79
|
-
}
|
|
80
|
-
async reduceAnswers(query, partialAnswers) {
|
|
81
|
-
const answersText = partialAnswers
|
|
82
|
-
.map((a, i) => `[${i + 1}] Community "${a.title}":\n${a.answer}`)
|
|
83
|
-
.join('\n\n');
|
|
84
|
-
const response = await this.llm.invoke([
|
|
85
|
-
new SystemMessage(`You are a synthesis expert. Given multiple partial answers from different knowledge graph communities, synthesize them into a single comprehensive answer. Remove redundancies, reconcile any conflicts, and present a coherent response.`),
|
|
86
|
-
new HumanMessage(`Question: ${query}\n\nPartial answers from different communities:\n\n${answersText}\n\nProvide a synthesized comprehensive answer:`),
|
|
87
|
-
]);
|
|
88
|
-
const text = typeof response.content === 'string'
|
|
89
|
-
? response.content
|
|
90
|
-
: Array.isArray(response.content)
|
|
91
|
-
? response.content.map((c) => (typeof c === 'string' ? c : 'text' in c ? c.text : '')).join('')
|
|
92
|
-
: '';
|
|
93
|
-
return text.trim();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=global-search.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"global-search.js","sourceRoot":"","sources":["../../../../lib/knowledge/graph-rag/global-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { GraphStore } from './types.js';
|
|
2
|
-
import type { KnowledgeStoreInstance } from '../types.js';
|
|
3
|
-
import type { GraphRagKnowledgeConfig } from '../types.js';
|
|
4
|
-
/**
|
|
5
|
-
* Creates a GraphRAG KnowledgeStoreInstance from a graph-rag configuration.
|
|
6
|
-
* Orchestrates: load → split → extract entities → build graph → detect communities → summarize → index.
|
|
7
|
-
*/
|
|
8
|
-
export declare class GraphRagFactory {
|
|
9
|
-
/** Graph store references for API access (keyed by knowledge store name) */
|
|
10
|
-
private static graphStores;
|
|
11
|
-
/** Get a graph store by knowledge store name (for API endpoints) */
|
|
12
|
-
static getGraphStore(name: string): GraphStore | undefined;
|
|
13
|
-
static create(config: GraphRagKnowledgeConfig, projectRoot: string): Promise<KnowledgeStoreInstance>;
|
|
14
|
-
private static createGraphStore;
|
|
15
|
-
/**
|
|
16
|
-
* Build GraphNode objects from extracted entities, creating embeddings for each.
|
|
17
|
-
*/
|
|
18
|
-
private static buildNodes;
|
|
19
|
-
/**
|
|
20
|
-
* Build GraphEdge objects from extracted relationships, resolving entity names to node IDs.
|
|
21
|
-
*/
|
|
22
|
-
private static buildEdges;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=graph-rag-factory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graph-rag-factory.d.ts","sourceRoot":"","sources":["../../../../lib/knowledge/graph-rag/graph-rag-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,UAAU,EAIX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,sBAAsB,EAAgB,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAiB3D;;;GAGG;AACH,qBAAa,eAAe;IAC1B,4EAA4E;IAC5E,OAAO,CAAC,MAAM,CAAC,WAAW,CAAiC;IAE3D,oEAAoE;IACpE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;WAI7C,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmJ1G,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAiB/B;;OAEG;mBACkB,UAAU;IAgC/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;CAkC1B"}
|