@mcp-abap-adt/llm-agent-server 10.0.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/README.md +13 -0
- package/bin/llm-agent +2 -0
- package/bin/llm-agent-check +2 -0
- package/dist/agent.d.ts +49 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +97 -0
- package/dist/agent.js.map +1 -0
- package/dist/agents/anthropic-agent.d.ts +33 -0
- package/dist/agents/anthropic-agent.d.ts.map +1 -0
- package/dist/agents/anthropic-agent.js +138 -0
- package/dist/agents/anthropic-agent.js.map +1 -0
- package/dist/agents/base.d.ts +90 -0
- package/dist/agents/base.d.ts.map +1 -0
- package/dist/agents/base.js +107 -0
- package/dist/agents/base.js.map +1 -0
- package/dist/agents/deepseek-agent.d.ts +31 -0
- package/dist/agents/deepseek-agent.d.ts.map +1 -0
- package/dist/agents/deepseek-agent.js +121 -0
- package/dist/agents/deepseek-agent.js.map +1 -0
- package/dist/agents/index.d.ts +10 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +10 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/openai-agent.d.ts +32 -0
- package/dist/agents/openai-agent.d.ts.map +1 -0
- package/dist/agents/openai-agent.js +122 -0
- package/dist/agents/openai-agent.js.map +1 -0
- package/dist/agents/prompt-based-agent.d.ts +29 -0
- package/dist/agents/prompt-based-agent.d.ts.map +1 -0
- package/dist/agents/prompt-based-agent.js +67 -0
- package/dist/agents/prompt-based-agent.js.map +1 -0
- package/dist/agents/sap-core-ai-agent.d.ts +41 -0
- package/dist/agents/sap-core-ai-agent.d.ts.map +1 -0
- package/dist/agents/sap-core-ai-agent.js +151 -0
- package/dist/agents/sap-core-ai-agent.js.map +1 -0
- package/dist/cli.d.ts +53 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +338 -0
- package/dist/cli.js.map +1 -0
- package/dist/generated/version.d.ts +2 -0
- package/dist/generated/version.d.ts.map +1 -0
- package/dist/generated/version.js +3 -0
- package/dist/generated/version.js.map +1 -0
- package/dist/index.d.ts +75 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +78 -0
- package/dist/index.js.map +1 -0
- package/dist/llm-providers/anthropic.d.ts +25 -0
- package/dist/llm-providers/anthropic.d.ts.map +1 -0
- package/dist/llm-providers/anthropic.js +202 -0
- package/dist/llm-providers/anthropic.js.map +1 -0
- package/dist/llm-providers/base.d.ts +33 -0
- package/dist/llm-providers/base.d.ts.map +1 -0
- package/dist/llm-providers/base.js +18 -0
- package/dist/llm-providers/base.js.map +1 -0
- package/dist/llm-providers/deepseek.d.ts +24 -0
- package/dist/llm-providers/deepseek.d.ts.map +1 -0
- package/dist/llm-providers/deepseek.js +60 -0
- package/dist/llm-providers/deepseek.js.map +1 -0
- package/dist/llm-providers/index.d.ts +13 -0
- package/dist/llm-providers/index.d.ts.map +1 -0
- package/dist/llm-providers/index.js +15 -0
- package/dist/llm-providers/index.js.map +1 -0
- package/dist/llm-providers/openai.d.ts +34 -0
- package/dist/llm-providers/openai.d.ts.map +1 -0
- package/dist/llm-providers/openai.js +193 -0
- package/dist/llm-providers/openai.js.map +1 -0
- package/dist/llm-providers/sap-core-ai.d.ts +90 -0
- package/dist/llm-providers/sap-core-ai.d.ts.map +1 -0
- package/dist/llm-providers/sap-core-ai.js +394 -0
- package/dist/llm-providers/sap-core-ai.js.map +1 -0
- package/dist/mcp/client.d.ts +133 -0
- package/dist/mcp/client.d.ts.map +1 -0
- package/dist/mcp/client.js +314 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/smart-agent/adapters/cline-client-adapter.d.ts +18 -0
- package/dist/smart-agent/adapters/cline-client-adapter.d.ts.map +1 -0
- package/dist/smart-agent/adapters/cline-client-adapter.js +21 -0
- package/dist/smart-agent/adapters/cline-client-adapter.js.map +1 -0
- package/dist/smart-agent/adapters/index.d.ts +3 -0
- package/dist/smart-agent/adapters/index.d.ts.map +1 -0
- package/dist/smart-agent/adapters/index.js +3 -0
- package/dist/smart-agent/adapters/index.js.map +1 -0
- package/dist/smart-agent/adapters/llm-adapter.d.ts +24 -0
- package/dist/smart-agent/adapters/llm-adapter.d.ts.map +1 -0
- package/dist/smart-agent/adapters/llm-adapter.js +345 -0
- package/dist/smart-agent/adapters/llm-adapter.js.map +1 -0
- package/dist/smart-agent/adapters/mcp-client-adapter.d.ts +16 -0
- package/dist/smart-agent/adapters/mcp-client-adapter.d.ts.map +1 -0
- package/dist/smart-agent/adapters/mcp-client-adapter.js +95 -0
- package/dist/smart-agent/adapters/mcp-client-adapter.js.map +1 -0
- package/dist/smart-agent/adapters/non-streaming-llm.d.ts +18 -0
- package/dist/smart-agent/adapters/non-streaming-llm.d.ts.map +1 -0
- package/dist/smart-agent/adapters/non-streaming-llm.js +44 -0
- package/dist/smart-agent/adapters/non-streaming-llm.js.map +1 -0
- package/dist/smart-agent/agent.d.ts +229 -0
- package/dist/smart-agent/agent.d.ts.map +1 -0
- package/dist/smart-agent/agent.js +1538 -0
- package/dist/smart-agent/agent.js.map +1 -0
- package/dist/smart-agent/api-adapters/anthropic-adapter.d.ts +10 -0
- package/dist/smart-agent/api-adapters/anthropic-adapter.d.ts.map +1 -0
- package/dist/smart-agent/api-adapters/anthropic-adapter.js +356 -0
- package/dist/smart-agent/api-adapters/anthropic-adapter.js.map +1 -0
- package/dist/smart-agent/api-adapters/index.d.ts +3 -0
- package/dist/smart-agent/api-adapters/index.d.ts.map +1 -0
- package/dist/smart-agent/api-adapters/index.js +3 -0
- package/dist/smart-agent/api-adapters/index.js.map +1 -0
- package/dist/smart-agent/api-adapters/openai-adapter.d.ts +10 -0
- package/dist/smart-agent/api-adapters/openai-adapter.d.ts.map +1 -0
- package/dist/smart-agent/api-adapters/openai-adapter.js +277 -0
- package/dist/smart-agent/api-adapters/openai-adapter.js.map +1 -0
- package/dist/smart-agent/builder.d.ts +281 -0
- package/dist/smart-agent/builder.d.ts.map +1 -0
- package/dist/smart-agent/builder.js +942 -0
- package/dist/smart-agent/builder.js.map +1 -0
- package/dist/smart-agent/cache/index.d.ts +4 -0
- package/dist/smart-agent/cache/index.d.ts.map +1 -0
- package/dist/smart-agent/cache/index.js +3 -0
- package/dist/smart-agent/cache/index.js.map +1 -0
- package/dist/smart-agent/cache/noop-tool-cache.d.ts +7 -0
- package/dist/smart-agent/cache/noop-tool-cache.d.ts.map +1 -0
- package/dist/smart-agent/cache/noop-tool-cache.js +8 -0
- package/dist/smart-agent/cache/noop-tool-cache.js.map +1 -0
- package/dist/smart-agent/cache/tool-cache.d.ts +14 -0
- package/dist/smart-agent/cache/tool-cache.d.ts.map +1 -0
- package/dist/smart-agent/cache/tool-cache.js +32 -0
- package/dist/smart-agent/cache/tool-cache.js.map +1 -0
- package/dist/smart-agent/cache/types.d.ts +7 -0
- package/dist/smart-agent/cache/types.d.ts.map +1 -0
- package/dist/smart-agent/cache/types.js +2 -0
- package/dist/smart-agent/cache/types.js.map +1 -0
- package/dist/smart-agent/check-models-cli.d.ts +14 -0
- package/dist/smart-agent/check-models-cli.d.ts.map +1 -0
- package/dist/smart-agent/check-models-cli.js +237 -0
- package/dist/smart-agent/check-models-cli.js.map +1 -0
- package/dist/smart-agent/classifier/index.d.ts +3 -0
- package/dist/smart-agent/classifier/index.d.ts.map +1 -0
- package/dist/smart-agent/classifier/index.js +2 -0
- package/dist/smart-agent/classifier/index.js.map +1 -0
- package/dist/smart-agent/classifier/llm-classifier.d.ts +20 -0
- package/dist/smart-agent/classifier/llm-classifier.d.ts.map +1 -0
- package/dist/smart-agent/classifier/llm-classifier.js +128 -0
- package/dist/smart-agent/classifier/llm-classifier.js.map +1 -0
- package/dist/smart-agent/cli.d.ts +65 -0
- package/dist/smart-agent/cli.d.ts.map +1 -0
- package/dist/smart-agent/cli.js +199 -0
- package/dist/smart-agent/cli.js.map +1 -0
- package/dist/smart-agent/config/config-watcher.d.ts +54 -0
- package/dist/smart-agent/config/config-watcher.d.ts.map +1 -0
- package/dist/smart-agent/config/config-watcher.js +107 -0
- package/dist/smart-agent/config/config-watcher.js.map +1 -0
- package/dist/smart-agent/config/index.d.ts +2 -0
- package/dist/smart-agent/config/index.d.ts.map +1 -0
- package/dist/smart-agent/config/index.js +2 -0
- package/dist/smart-agent/config/index.js.map +1 -0
- package/dist/smart-agent/config.d.ts +35 -0
- package/dist/smart-agent/config.d.ts.map +1 -0
- package/dist/smart-agent/config.js +360 -0
- package/dist/smart-agent/config.js.map +1 -0
- package/dist/smart-agent/context/context-assembler.d.ts +49 -0
- package/dist/smart-agent/context/context-assembler.d.ts.map +1 -0
- package/dist/smart-agent/context/context-assembler.js +184 -0
- package/dist/smart-agent/context/context-assembler.js.map +1 -0
- package/dist/smart-agent/context/index.d.ts +3 -0
- package/dist/smart-agent/context/index.d.ts.map +1 -0
- package/dist/smart-agent/context/index.js +2 -0
- package/dist/smart-agent/context/index.js.map +1 -0
- package/dist/smart-agent/health/health-checker.d.ts +21 -0
- package/dist/smart-agent/health/health-checker.d.ts.map +1 -0
- package/dist/smart-agent/health/health-checker.js +52 -0
- package/dist/smart-agent/health/health-checker.js.map +1 -0
- package/dist/smart-agent/health/index.d.ts +3 -0
- package/dist/smart-agent/health/index.d.ts.map +1 -0
- package/dist/smart-agent/health/index.js +2 -0
- package/dist/smart-agent/health/index.js.map +1 -0
- package/dist/smart-agent/health/types.d.ts +25 -0
- package/dist/smart-agent/health/types.d.ts.map +1 -0
- package/dist/smart-agent/health/types.js +2 -0
- package/dist/smart-agent/health/types.js.map +1 -0
- package/dist/smart-agent/history/history-memory.d.ts +12 -0
- package/dist/smart-agent/history/history-memory.d.ts.map +1 -0
- package/dist/smart-agent/history/history-memory.js +26 -0
- package/dist/smart-agent/history/history-memory.js.map +1 -0
- package/dist/smart-agent/history/history-summarizer.d.ts +10 -0
- package/dist/smart-agent/history/history-summarizer.d.ts.map +1 -0
- package/dist/smart-agent/history/history-summarizer.js +27 -0
- package/dist/smart-agent/history/history-summarizer.js.map +1 -0
- package/dist/smart-agent/history/index.d.ts +3 -0
- package/dist/smart-agent/history/index.d.ts.map +1 -0
- package/dist/smart-agent/history/index.js +3 -0
- package/dist/smart-agent/history/index.js.map +1 -0
- package/dist/smart-agent/interfaces/api-adapter.d.ts +36 -0
- package/dist/smart-agent/interfaces/api-adapter.d.ts.map +1 -0
- package/dist/smart-agent/interfaces/api-adapter.js +9 -0
- package/dist/smart-agent/interfaces/api-adapter.js.map +1 -0
- package/dist/smart-agent/interfaces/client-adapter.d.ts +23 -0
- package/dist/smart-agent/interfaces/client-adapter.d.ts.map +1 -0
- package/dist/smart-agent/interfaces/client-adapter.js +10 -0
- package/dist/smart-agent/interfaces/client-adapter.js.map +1 -0
- package/dist/smart-agent/interfaces/mcp-connection-strategy.d.ts +27 -0
- package/dist/smart-agent/interfaces/mcp-connection-strategy.d.ts.map +1 -0
- package/dist/smart-agent/interfaces/mcp-connection-strategy.js +2 -0
- package/dist/smart-agent/interfaces/mcp-connection-strategy.js.map +1 -0
- package/dist/smart-agent/interfaces/model-resolver.d.ts +9 -0
- package/dist/smart-agent/interfaces/model-resolver.d.ts.map +1 -0
- package/dist/smart-agent/interfaces/model-resolver.js +2 -0
- package/dist/smart-agent/interfaces/model-resolver.js.map +1 -0
- package/dist/smart-agent/interfaces/pipeline.d.ts +125 -0
- package/dist/smart-agent/interfaces/pipeline.d.ts.map +1 -0
- package/dist/smart-agent/interfaces/pipeline.js +13 -0
- package/dist/smart-agent/interfaces/pipeline.js.map +1 -0
- package/dist/smart-agent/logger/console-logger.d.ts +7 -0
- package/dist/smart-agent/logger/console-logger.d.ts.map +1 -0
- package/dist/smart-agent/logger/console-logger.js +12 -0
- package/dist/smart-agent/logger/console-logger.js.map +1 -0
- package/dist/smart-agent/logger/default-request-logger.d.ts +17 -0
- package/dist/smart-agent/logger/default-request-logger.d.ts.map +1 -0
- package/dist/smart-agent/logger/default-request-logger.js +86 -0
- package/dist/smart-agent/logger/default-request-logger.js.map +1 -0
- package/dist/smart-agent/logger/index.d.ts +3 -0
- package/dist/smart-agent/logger/index.d.ts.map +1 -0
- package/dist/smart-agent/logger/index.js +2 -0
- package/dist/smart-agent/logger/index.js.map +1 -0
- package/dist/smart-agent/logger/noop-request-logger.d.ts +11 -0
- package/dist/smart-agent/logger/noop-request-logger.d.ts.map +1 -0
- package/dist/smart-agent/logger/noop-request-logger.js +20 -0
- package/dist/smart-agent/logger/noop-request-logger.js.map +1 -0
- package/dist/smart-agent/logger/session-logger.d.ts +10 -0
- package/dist/smart-agent/logger/session-logger.d.ts.map +1 -0
- package/dist/smart-agent/logger/session-logger.js +40 -0
- package/dist/smart-agent/logger/session-logger.js.map +1 -0
- package/dist/smart-agent/logger/types.d.ts +63 -0
- package/dist/smart-agent/logger/types.d.ts.map +1 -0
- package/dist/smart-agent/logger/types.js +2 -0
- package/dist/smart-agent/logger/types.js.map +1 -0
- package/dist/smart-agent/mcp-client-factory.d.ts +3 -0
- package/dist/smart-agent/mcp-client-factory.d.ts.map +1 -0
- package/dist/smart-agent/mcp-client-factory.js +21 -0
- package/dist/smart-agent/mcp-client-factory.js.map +1 -0
- package/dist/smart-agent/metrics/in-memory-metrics.d.ts +58 -0
- package/dist/smart-agent/metrics/in-memory-metrics.d.ts.map +1 -0
- package/dist/smart-agent/metrics/in-memory-metrics.js +78 -0
- package/dist/smart-agent/metrics/in-memory-metrics.js.map +1 -0
- package/dist/smart-agent/metrics/index.d.ts +4 -0
- package/dist/smart-agent/metrics/index.d.ts.map +1 -0
- package/dist/smart-agent/metrics/index.js +3 -0
- package/dist/smart-agent/metrics/index.js.map +1 -0
- package/dist/smart-agent/metrics/noop-metrics.d.ts +17 -0
- package/dist/smart-agent/metrics/noop-metrics.d.ts.map +1 -0
- package/dist/smart-agent/metrics/noop-metrics.js +22 -0
- package/dist/smart-agent/metrics/noop-metrics.js.map +1 -0
- package/dist/smart-agent/metrics/types.d.ts +36 -0
- package/dist/smart-agent/metrics/types.d.ts.map +1 -0
- package/dist/smart-agent/metrics/types.js +9 -0
- package/dist/smart-agent/metrics/types.js.map +1 -0
- package/dist/smart-agent/otel/index.d.ts +2 -0
- package/dist/smart-agent/otel/index.d.ts.map +1 -0
- package/dist/smart-agent/otel/index.js +2 -0
- package/dist/smart-agent/otel/index.js.map +1 -0
- package/dist/smart-agent/otel/otel-tracer-adapter.d.ts +15 -0
- package/dist/smart-agent/otel/otel-tracer-adapter.d.ts.map +1 -0
- package/dist/smart-agent/otel/otel-tracer-adapter.js +62 -0
- package/dist/smart-agent/otel/otel-tracer-adapter.js.map +1 -0
- package/dist/smart-agent/pipeline/condition-evaluator.d.ts +35 -0
- package/dist/smart-agent/pipeline/condition-evaluator.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/condition-evaluator.js +143 -0
- package/dist/smart-agent/pipeline/condition-evaluator.js.map +1 -0
- package/dist/smart-agent/pipeline/context.d.ts +121 -0
- package/dist/smart-agent/pipeline/context.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/context.js +19 -0
- package/dist/smart-agent/pipeline/context.js.map +1 -0
- package/dist/smart-agent/pipeline/default-pipeline.d.ts +69 -0
- package/dist/smart-agent/pipeline/default-pipeline.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/default-pipeline.js +278 -0
- package/dist/smart-agent/pipeline/default-pipeline.js.map +1 -0
- package/dist/smart-agent/pipeline/executor.d.ts +54 -0
- package/dist/smart-agent/pipeline/executor.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/executor.js +133 -0
- package/dist/smart-agent/pipeline/executor.js.map +1 -0
- package/dist/smart-agent/pipeline/handlers/assemble.d.ts +16 -0
- package/dist/smart-agent/pipeline/handlers/assemble.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/handlers/assemble.js +72 -0
- package/dist/smart-agent/pipeline/handlers/assemble.js.map +1 -0
- package/dist/smart-agent/pipeline/handlers/build-tool-query.d.ts +30 -0
- package/dist/smart-agent/pipeline/handlers/build-tool-query.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/handlers/build-tool-query.js +80 -0
- package/dist/smart-agent/pipeline/handlers/build-tool-query.js.map +1 -0
- package/dist/smart-agent/pipeline/handlers/classify.d.ts +21 -0
- package/dist/smart-agent/pipeline/handlers/classify.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/handlers/classify.js +60 -0
- package/dist/smart-agent/pipeline/handlers/classify.js.map +1 -0
- package/dist/smart-agent/pipeline/handlers/expand.d.ts +16 -0
- package/dist/smart-agent/pipeline/handlers/expand.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/handlers/expand.js +24 -0
- package/dist/smart-agent/pipeline/handlers/expand.js.map +1 -0
- package/dist/smart-agent/pipeline/handlers/history-upsert.d.ts +29 -0
- package/dist/smart-agent/pipeline/handlers/history-upsert.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/handlers/history-upsert.js +75 -0
- package/dist/smart-agent/pipeline/handlers/history-upsert.js.map +1 -0
- package/dist/smart-agent/pipeline/handlers/index.d.ts +31 -0
- package/dist/smart-agent/pipeline/handlers/index.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/handlers/index.js +44 -0
- package/dist/smart-agent/pipeline/handlers/index.js.map +1 -0
- package/dist/smart-agent/pipeline/handlers/rag-query.d.ts +27 -0
- package/dist/smart-agent/pipeline/handlers/rag-query.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/handlers/rag-query.js +117 -0
- package/dist/smart-agent/pipeline/handlers/rag-query.js.map +1 -0
- package/dist/smart-agent/pipeline/handlers/rerank.d.ts +16 -0
- package/dist/smart-agent/pipeline/handlers/rerank.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/handlers/rerank.js +27 -0
- package/dist/smart-agent/pipeline/handlers/rerank.js.map +1 -0
- package/dist/smart-agent/pipeline/handlers/skill-select.d.ts +18 -0
- package/dist/smart-agent/pipeline/handlers/skill-select.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/handlers/skill-select.js +88 -0
- package/dist/smart-agent/pipeline/handlers/skill-select.js.map +1 -0
- package/dist/smart-agent/pipeline/handlers/summarize.d.ts +17 -0
- package/dist/smart-agent/pipeline/handlers/summarize.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/handlers/summarize.js +56 -0
- package/dist/smart-agent/pipeline/handlers/summarize.js.map +1 -0
- package/dist/smart-agent/pipeline/handlers/tool-loop.d.ts +32 -0
- package/dist/smart-agent/pipeline/handlers/tool-loop.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/handlers/tool-loop.js +734 -0
- package/dist/smart-agent/pipeline/handlers/tool-loop.js.map +1 -0
- package/dist/smart-agent/pipeline/handlers/tool-select.d.ts +21 -0
- package/dist/smart-agent/pipeline/handlers/tool-select.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/handlers/tool-select.js +109 -0
- package/dist/smart-agent/pipeline/handlers/tool-select.js.map +1 -0
- package/dist/smart-agent/pipeline/handlers/translate.d.ts +17 -0
- package/dist/smart-agent/pipeline/handlers/translate.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/handlers/translate.js +42 -0
- package/dist/smart-agent/pipeline/handlers/translate.js.map +1 -0
- package/dist/smart-agent/pipeline/index.d.ts +14 -0
- package/dist/smart-agent/pipeline/index.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/index.js +16 -0
- package/dist/smart-agent/pipeline/index.js.map +1 -0
- package/dist/smart-agent/pipeline/stage-handler.d.ts +36 -0
- package/dist/smart-agent/pipeline/stage-handler.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/stage-handler.js +24 -0
- package/dist/smart-agent/pipeline/stage-handler.js.map +1 -0
- package/dist/smart-agent/pipeline/types.d.ts +116 -0
- package/dist/smart-agent/pipeline/types.d.ts.map +1 -0
- package/dist/smart-agent/pipeline/types.js +54 -0
- package/dist/smart-agent/pipeline/types.js.map +1 -0
- package/dist/smart-agent/pipeline.d.ts +82 -0
- package/dist/smart-agent/pipeline.d.ts.map +1 -0
- package/dist/smart-agent/pipeline.js +8 -0
- package/dist/smart-agent/pipeline.js.map +1 -0
- package/dist/smart-agent/plugins/index.d.ts +4 -0
- package/dist/smart-agent/plugins/index.d.ts.map +1 -0
- package/dist/smart-agent/plugins/index.js +3 -0
- package/dist/smart-agent/plugins/index.js.map +1 -0
- package/dist/smart-agent/plugins/loader.d.ts +67 -0
- package/dist/smart-agent/plugins/loader.d.ts.map +1 -0
- package/dist/smart-agent/plugins/loader.js +114 -0
- package/dist/smart-agent/plugins/loader.js.map +1 -0
- package/dist/smart-agent/plugins/types.d.ts +164 -0
- package/dist/smart-agent/plugins/types.d.ts.map +1 -0
- package/dist/smart-agent/plugins/types.js +136 -0
- package/dist/smart-agent/plugins/types.js.map +1 -0
- package/dist/smart-agent/policy/fallback-llm-call-strategy.d.ts +16 -0
- package/dist/smart-agent/policy/fallback-llm-call-strategy.d.ts.map +1 -0
- package/dist/smart-agent/policy/fallback-llm-call-strategy.js +66 -0
- package/dist/smart-agent/policy/fallback-llm-call-strategy.js.map +1 -0
- package/dist/smart-agent/policy/heuristic-injection-detector.d.ts +5 -0
- package/dist/smart-agent/policy/heuristic-injection-detector.d.ts.map +1 -0
- package/dist/smart-agent/policy/heuristic-injection-detector.js +36 -0
- package/dist/smart-agent/policy/heuristic-injection-detector.js.map +1 -0
- package/dist/smart-agent/policy/index.d.ts +6 -0
- package/dist/smart-agent/policy/index.d.ts.map +1 -0
- package/dist/smart-agent/policy/index.js +5 -0
- package/dist/smart-agent/policy/index.js.map +1 -0
- package/dist/smart-agent/policy/mixed-tool-call-handler.d.ts +16 -0
- package/dist/smart-agent/policy/mixed-tool-call-handler.d.ts.map +1 -0
- package/dist/smart-agent/policy/mixed-tool-call-handler.js +49 -0
- package/dist/smart-agent/policy/mixed-tool-call-handler.js.map +1 -0
- package/dist/smart-agent/policy/non-streaming-llm-call-strategy.d.ts +6 -0
- package/dist/smart-agent/policy/non-streaming-llm-call-strategy.d.ts.map +1 -0
- package/dist/smart-agent/policy/non-streaming-llm-call-strategy.js +21 -0
- package/dist/smart-agent/policy/non-streaming-llm-call-strategy.js.map +1 -0
- package/dist/smart-agent/policy/pending-tool-results-registry.d.ts +25 -0
- package/dist/smart-agent/policy/pending-tool-results-registry.d.ts.map +1 -0
- package/dist/smart-agent/policy/pending-tool-results-registry.js +50 -0
- package/dist/smart-agent/policy/pending-tool-results-registry.js.map +1 -0
- package/dist/smart-agent/policy/streaming-llm-call-strategy.d.ts +6 -0
- package/dist/smart-agent/policy/streaming-llm-call-strategy.d.ts.map +1 -0
- package/dist/smart-agent/policy/streaming-llm-call-strategy.js +7 -0
- package/dist/smart-agent/policy/streaming-llm-call-strategy.js.map +1 -0
- package/dist/smart-agent/policy/tool-availability-registry.d.ts +21 -0
- package/dist/smart-agent/policy/tool-availability-registry.d.ts.map +1 -0
- package/dist/smart-agent/policy/tool-availability-registry.js +77 -0
- package/dist/smart-agent/policy/tool-availability-registry.js.map +1 -0
- package/dist/smart-agent/policy/tool-policy-guard.d.ts +8 -0
- package/dist/smart-agent/policy/tool-policy-guard.d.ts.map +1 -0
- package/dist/smart-agent/policy/tool-policy-guard.js +40 -0
- package/dist/smart-agent/policy/tool-policy-guard.js.map +1 -0
- package/dist/smart-agent/policy/types.d.ts +51 -0
- package/dist/smart-agent/policy/types.d.ts.map +1 -0
- package/dist/smart-agent/policy/types.js +17 -0
- package/dist/smart-agent/policy/types.js.map +1 -0
- package/dist/smart-agent/providers.d.ts +98 -0
- package/dist/smart-agent/providers.d.ts.map +1 -0
- package/dist/smart-agent/providers.js +245 -0
- package/dist/smart-agent/providers.js.map +1 -0
- package/dist/smart-agent/reranker/index.d.ts +4 -0
- package/dist/smart-agent/reranker/index.d.ts.map +1 -0
- package/dist/smart-agent/reranker/index.js +3 -0
- package/dist/smart-agent/reranker/index.js.map +1 -0
- package/dist/smart-agent/reranker/llm-reranker.d.ts +10 -0
- package/dist/smart-agent/reranker/llm-reranker.d.ts.map +1 -0
- package/dist/smart-agent/reranker/llm-reranker.js +55 -0
- package/dist/smart-agent/reranker/llm-reranker.js.map +1 -0
- package/dist/smart-agent/reranker/noop-reranker.d.ts +6 -0
- package/dist/smart-agent/reranker/noop-reranker.d.ts.map +1 -0
- package/dist/smart-agent/reranker/noop-reranker.js +6 -0
- package/dist/smart-agent/reranker/noop-reranker.js.map +1 -0
- package/dist/smart-agent/reranker/types.d.ts +5 -0
- package/dist/smart-agent/reranker/types.d.ts.map +1 -0
- package/dist/smart-agent/reranker/types.js +2 -0
- package/dist/smart-agent/reranker/types.js.map +1 -0
- package/dist/smart-agent/resilience/circuit-breaker-embedder.d.ts +16 -0
- package/dist/smart-agent/resilience/circuit-breaker-embedder.d.ts.map +1 -0
- package/dist/smart-agent/resilience/circuit-breaker-embedder.js +47 -0
- package/dist/smart-agent/resilience/circuit-breaker-embedder.js.map +1 -0
- package/dist/smart-agent/resilience/circuit-breaker-llm.d.ts +19 -0
- package/dist/smart-agent/resilience/circuit-breaker-llm.d.ts.map +1 -0
- package/dist/smart-agent/resilience/circuit-breaker-llm.js +72 -0
- package/dist/smart-agent/resilience/circuit-breaker-llm.js.map +1 -0
- package/dist/smart-agent/resilience/circuit-breaker.d.ts +36 -0
- package/dist/smart-agent/resilience/circuit-breaker.d.ts.map +1 -0
- package/dist/smart-agent/resilience/circuit-breaker.js +60 -0
- package/dist/smart-agent/resilience/circuit-breaker.js.map +1 -0
- package/dist/smart-agent/resilience/fallback-rag.d.ts +21 -0
- package/dist/smart-agent/resilience/fallback-rag.d.ts.map +1 -0
- package/dist/smart-agent/resilience/fallback-rag.js +80 -0
- package/dist/smart-agent/resilience/fallback-rag.js.map +1 -0
- package/dist/smart-agent/resilience/index.d.ts +5 -0
- package/dist/smart-agent/resilience/index.d.ts.map +1 -0
- package/dist/smart-agent/resilience/index.js +5 -0
- package/dist/smart-agent/resilience/index.js.map +1 -0
- package/dist/smart-agent/resilience/rate-limiter-llm.d.ts +17 -0
- package/dist/smart-agent/resilience/rate-limiter-llm.d.ts.map +1 -0
- package/dist/smart-agent/resilience/rate-limiter-llm.js +30 -0
- package/dist/smart-agent/resilience/rate-limiter-llm.js.map +1 -0
- package/dist/smart-agent/resilience/retry-llm.d.ts +32 -0
- package/dist/smart-agent/resilience/retry-llm.d.ts.map +1 -0
- package/dist/smart-agent/resilience/retry-llm.js +103 -0
- package/dist/smart-agent/resilience/retry-llm.js.map +1 -0
- package/dist/smart-agent/resilience/token-bucket-rate-limiter.d.ts +21 -0
- package/dist/smart-agent/resilience/token-bucket-rate-limiter.d.ts.map +1 -0
- package/dist/smart-agent/resilience/token-bucket-rate-limiter.js +32 -0
- package/dist/smart-agent/resilience/token-bucket-rate-limiter.js.map +1 -0
- package/dist/smart-agent/server.d.ts +19 -0
- package/dist/smart-agent/server.d.ts.map +1 -0
- package/dist/smart-agent/server.js +349 -0
- package/dist/smart-agent/server.js.map +1 -0
- package/dist/smart-agent/session/index.d.ts +4 -0
- package/dist/smart-agent/session/index.d.ts.map +1 -0
- package/dist/smart-agent/session/index.js +3 -0
- package/dist/smart-agent/session/index.js.map +1 -0
- package/dist/smart-agent/session/noop-session-manager.d.ts +8 -0
- package/dist/smart-agent/session/noop-session-manager.d.ts.map +1 -0
- package/dist/smart-agent/session/noop-session-manager.js +11 -0
- package/dist/smart-agent/session/noop-session-manager.js.map +1 -0
- package/dist/smart-agent/session/session-manager.d.ts +13 -0
- package/dist/smart-agent/session/session-manager.d.ts.map +1 -0
- package/dist/smart-agent/session/session-manager.js +20 -0
- package/dist/smart-agent/session/session-manager.js.map +1 -0
- package/dist/smart-agent/session/types.d.ts +7 -0
- package/dist/smart-agent/session/types.d.ts.map +1 -0
- package/dist/smart-agent/session/types.js +2 -0
- package/dist/smart-agent/session/types.js.map +1 -0
- package/dist/smart-agent/skills/claude-skill-manager.d.ts +24 -0
- package/dist/smart-agent/skills/claude-skill-manager.d.ts.map +1 -0
- package/dist/smart-agent/skills/claude-skill-manager.js +81 -0
- package/dist/smart-agent/skills/claude-skill-manager.js.map +1 -0
- package/dist/smart-agent/skills/codex-skill-manager.d.ts +20 -0
- package/dist/smart-agent/skills/codex-skill-manager.d.ts.map +1 -0
- package/dist/smart-agent/skills/codex-skill-manager.js +75 -0
- package/dist/smart-agent/skills/codex-skill-manager.js.map +1 -0
- package/dist/smart-agent/skills/filesystem-skill-manager.d.ts +17 -0
- package/dist/smart-agent/skills/filesystem-skill-manager.d.ts.map +1 -0
- package/dist/smart-agent/skills/filesystem-skill-manager.js +48 -0
- package/dist/smart-agent/skills/filesystem-skill-manager.js.map +1 -0
- package/dist/smart-agent/skills/filesystem-skill.d.ts +25 -0
- package/dist/smart-agent/skills/filesystem-skill.d.ts.map +1 -0
- package/dist/smart-agent/skills/filesystem-skill.js +110 -0
- package/dist/smart-agent/skills/filesystem-skill.js.map +1 -0
- package/dist/smart-agent/skills/index.d.ts +9 -0
- package/dist/smart-agent/skills/index.d.ts.map +1 -0
- package/dist/smart-agent/skills/index.js +9 -0
- package/dist/smart-agent/skills/index.js.map +1 -0
- package/dist/smart-agent/skills/skill-utils.d.ts +15 -0
- package/dist/smart-agent/skills/skill-utils.d.ts.map +1 -0
- package/dist/smart-agent/skills/skill-utils.js +46 -0
- package/dist/smart-agent/skills/skill-utils.js.map +1 -0
- package/dist/smart-agent/smart-server.d.ts +150 -0
- package/dist/smart-agent/smart-server.d.ts.map +1 -0
- package/dist/smart-agent/smart-server.js +903 -0
- package/dist/smart-agent/smart-server.js.map +1 -0
- package/dist/smart-agent/strategies/index.d.ts +4 -0
- package/dist/smart-agent/strategies/index.d.ts.map +1 -0
- package/dist/smart-agent/strategies/index.js +4 -0
- package/dist/smart-agent/strategies/index.js.map +1 -0
- package/dist/smart-agent/strategies/lazy-connection-strategy.d.ts +15 -0
- package/dist/smart-agent/strategies/lazy-connection-strategy.d.ts.map +1 -0
- package/dist/smart-agent/strategies/lazy-connection-strategy.js +82 -0
- package/dist/smart-agent/strategies/lazy-connection-strategy.js.map +1 -0
- package/dist/smart-agent/strategies/noop-connection-strategy.d.ts +6 -0
- package/dist/smart-agent/strategies/noop-connection-strategy.d.ts.map +1 -0
- package/dist/smart-agent/strategies/noop-connection-strategy.js +6 -0
- package/dist/smart-agent/strategies/noop-connection-strategy.js.map +1 -0
- package/dist/smart-agent/strategies/periodic-connection-strategy.d.ts +13 -0
- package/dist/smart-agent/strategies/periodic-connection-strategy.d.ts.map +1 -0
- package/dist/smart-agent/strategies/periodic-connection-strategy.js +40 -0
- package/dist/smart-agent/strategies/periodic-connection-strategy.js.map +1 -0
- package/dist/smart-agent/testing/index.d.ts +121 -0
- package/dist/smart-agent/testing/index.d.ts.map +1 -0
- package/dist/smart-agent/testing/index.js +354 -0
- package/dist/smart-agent/testing/index.js.map +1 -0
- package/dist/smart-agent/tracer/index.d.ts +3 -0
- package/dist/smart-agent/tracer/index.d.ts.map +1 -0
- package/dist/smart-agent/tracer/index.js +2 -0
- package/dist/smart-agent/tracer/index.js.map +1 -0
- package/dist/smart-agent/tracer/noop-tracer.d.ts +5 -0
- package/dist/smart-agent/tracer/noop-tracer.d.ts.map +1 -0
- package/dist/smart-agent/tracer/noop-tracer.js +16 -0
- package/dist/smart-agent/tracer/noop-tracer.js.map +1 -0
- package/dist/smart-agent/tracer/types.d.ts +17 -0
- package/dist/smart-agent/tracer/types.d.ts.map +1 -0
- package/dist/smart-agent/tracer/types.js +2 -0
- package/dist/smart-agent/tracer/types.js.map +1 -0
- package/dist/smart-agent/utils/external-tools-normalizer.d.ts +15 -0
- package/dist/smart-agent/utils/external-tools-normalizer.d.ts.map +1 -0
- package/dist/smart-agent/utils/external-tools-normalizer.js +146 -0
- package/dist/smart-agent/utils/external-tools-normalizer.js.map +1 -0
- package/dist/smart-agent/utils/lazy.d.ts +51 -0
- package/dist/smart-agent/utils/lazy.d.ts.map +1 -0
- package/dist/smart-agent/utils/lazy.js +127 -0
- package/dist/smart-agent/utils/lazy.js.map +1 -0
- package/dist/smart-agent/utils/parse-frontmatter.d.ts +15 -0
- package/dist/smart-agent/utils/parse-frontmatter.d.ts.map +1 -0
- package/dist/smart-agent/utils/parse-frontmatter.js +22 -0
- package/dist/smart-agent/utils/parse-frontmatter.js.map +1 -0
- package/dist/smart-agent/utils/tool-call-deltas.d.ts +4 -0
- package/dist/smart-agent/utils/tool-call-deltas.d.ts.map +1 -0
- package/dist/smart-agent/utils/tool-call-deltas.js +25 -0
- package/dist/smart-agent/utils/tool-call-deltas.js.map +1 -0
- package/dist/smart-agent/validator/index.d.ts +3 -0
- package/dist/smart-agent/validator/index.d.ts.map +1 -0
- package/dist/smart-agent/validator/index.js +2 -0
- package/dist/smart-agent/validator/index.js.map +1 -0
- package/dist/smart-agent/validator/noop-validator.d.ts +6 -0
- package/dist/smart-agent/validator/noop-validator.d.ts.map +1 -0
- package/dist/smart-agent/validator/noop-validator.js +6 -0
- package/dist/smart-agent/validator/noop-validator.js.map +1 -0
- package/dist/smart-agent/validator/types.d.ts +17 -0
- package/dist/smart-agent/validator/types.d.ts.map +1 -0
- package/dist/smart-agent/validator/types.js +8 -0
- package/dist/smart-agent/validator/types.js.map +1 -0
- package/dist/smoke-adapters.d.ts +17 -0
- package/dist/smoke-adapters.d.ts.map +1 -0
- package/dist/smoke-adapters.js +178 -0
- package/dist/smoke-adapters.js.map +1 -0
- package/package.json +89 -0
- package/tools/claude-via-agent.ps1 +83 -0
- package/tools/claude-via-agent.sh +96 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BuildToolQueryHandler — composes an enriched query text for tool/skill retrieval.
|
|
3
|
+
*
|
|
4
|
+
* Reads: `ctx.ragText`, `ctx.ragResults`, `ctx.selectedSkills`
|
|
5
|
+
* Writes: `ctx.toolQueryText`
|
|
6
|
+
*
|
|
7
|
+
* The resulting text combines the user-facing RAG query with top-K snippets
|
|
8
|
+
* already retrieved from non-tool RAG stores plus descriptions of skills
|
|
9
|
+
* selected for this request. Downstream stages configured with
|
|
10
|
+
* `queryText: 'toolQueryText'` use this to drive tool discovery, so consumers
|
|
11
|
+
* can steer tool selection by seeding domain knowledge into other RAG stores
|
|
12
|
+
* or skills.
|
|
13
|
+
*
|
|
14
|
+
* ## Config
|
|
15
|
+
*
|
|
16
|
+
* | Field | Type | Default | Description |
|
|
17
|
+
* |---------------------|---------|---------|------------------------------------------------------|
|
|
18
|
+
* | `topK` | number | 5 | Max RAG snippets (per store, top-scored) to include |
|
|
19
|
+
* | `maxChars` | number | 2000 | Hard cap on the composed text length |
|
|
20
|
+
* | `includeRagSnippets`| boolean | true | Append RAG snippets (excluding `tool:*` IDs) |
|
|
21
|
+
* | `includeSkills` | boolean | true | Append selected skill names + descriptions |
|
|
22
|
+
* | `skipStores` | string[]| [] | RAG store names to exclude from snippet source |
|
|
23
|
+
*/
|
|
24
|
+
export class BuildToolQueryHandler {
|
|
25
|
+
async execute(ctx, config, span) {
|
|
26
|
+
const topK = config.topK ?? 5;
|
|
27
|
+
const maxChars = config.maxChars ?? 2000;
|
|
28
|
+
const includeRagSnippets = config.includeRagSnippets !== false;
|
|
29
|
+
const includeSkills = config.includeSkills !== false;
|
|
30
|
+
const skipStores = new Set(config.skipStores ?? []);
|
|
31
|
+
const parts = [];
|
|
32
|
+
const base = ctx.ragText || ctx.inputText;
|
|
33
|
+
if (base)
|
|
34
|
+
parts.push(base);
|
|
35
|
+
if (includeRagSnippets) {
|
|
36
|
+
const snippets = [];
|
|
37
|
+
for (const [storeName, results] of Object.entries(ctx.ragResults)) {
|
|
38
|
+
if (skipStores.has(storeName))
|
|
39
|
+
continue;
|
|
40
|
+
const top = results
|
|
41
|
+
.filter((r) => {
|
|
42
|
+
const id = r.metadata?.id;
|
|
43
|
+
return !id?.startsWith('tool:');
|
|
44
|
+
})
|
|
45
|
+
.slice(0, topK);
|
|
46
|
+
for (const r of top) {
|
|
47
|
+
const text = r.text?.trim();
|
|
48
|
+
if (text)
|
|
49
|
+
snippets.push(text);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (snippets.length > 0) {
|
|
53
|
+
parts.push(`Context:\n${snippets.join('\n')}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (includeSkills && ctx.selectedSkills.length > 0) {
|
|
57
|
+
const lines = ctx.selectedSkills.map((s) => {
|
|
58
|
+
const desc = s.description?.trim();
|
|
59
|
+
return desc ? `${s.name}: ${desc}` : s.name;
|
|
60
|
+
});
|
|
61
|
+
parts.push(`Active skills:\n${lines.join('\n')}`);
|
|
62
|
+
}
|
|
63
|
+
let composed = parts.join('\n\n');
|
|
64
|
+
if (composed.length > maxChars) {
|
|
65
|
+
composed = `${composed.slice(0, maxChars)}…`;
|
|
66
|
+
}
|
|
67
|
+
ctx.toolQueryText = composed;
|
|
68
|
+
span.setAttribute('length', composed.length);
|
|
69
|
+
span.setAttribute('base_length', base.length);
|
|
70
|
+
span.setAttribute('snippets_included', includeRagSnippets ? 'true' : 'false');
|
|
71
|
+
span.setAttribute('skills_included', includeSkills ? 'true' : 'false');
|
|
72
|
+
ctx.options?.sessionLogger?.logStep('tool_query_built', {
|
|
73
|
+
length: composed.length,
|
|
74
|
+
preview: composed.slice(0, 300),
|
|
75
|
+
skillCount: ctx.selectedSkills.length,
|
|
76
|
+
});
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=build-tool-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-tool-query.js","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/build-tool-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAMH,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,OAAO,CACX,GAAoB,EACpB,MAA+B,EAC/B,IAAW;QAEX,MAAM,IAAI,GAAI,MAAM,CAAC,IAAe,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAI,MAAM,CAAC,QAAmB,IAAI,IAAI,CAAC;QACrD,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,KAAK,KAAK,CAAC;QAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAE,MAAM,CAAC,UAAuB,IAAI,EAAE,CAAC,CAAC;QAElE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC;QAC1C,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3B,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClE,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,SAAS;gBACxC,MAAM,GAAG,GAAG,OAAO;qBAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;oBACZ,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAwB,CAAC;oBAChD,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;gBAClC,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAClB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;oBACpB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;oBAC5B,IAAI,IAAI;wBAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,IAAI,aAAa,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzC,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;YAC/B,QAAQ,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC;QAC/C,CAAC;QAED,GAAG,CAAC,aAAa,GAAG,QAAQ,CAAC;QAE7B,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,CACf,mBAAmB,EACnB,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CACtC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAEvE,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,kBAAkB,EAAE;YACtD,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YAC/B,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC,MAAM;SACtC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClassifyHandler — decomposes user input into typed subprompts.
|
|
3
|
+
*
|
|
4
|
+
* Reads: `ctx.inputText`
|
|
5
|
+
* Writes: `ctx.subprompts`, `ctx.isSapRequired`, `ctx.shouldRetrieve`
|
|
6
|
+
*
|
|
7
|
+
* When classification is disabled (`config.classificationEnabled === false`),
|
|
8
|
+
* the input is treated as a single action subprompt.
|
|
9
|
+
*/
|
|
10
|
+
import type { ISpan } from '../../tracer/types.js';
|
|
11
|
+
import type { PipelineContext } from '../context.js';
|
|
12
|
+
import type { IStageHandler } from '../stage-handler.js';
|
|
13
|
+
export declare class ClassifyHandler implements IStageHandler {
|
|
14
|
+
execute(ctx: PipelineContext, _config: Record<string, unknown>, span: ISpan): Promise<boolean>;
|
|
15
|
+
/**
|
|
16
|
+
* Update control flags based on classified subprompts.
|
|
17
|
+
* These flags are used by `when` conditions on downstream stages.
|
|
18
|
+
*/
|
|
19
|
+
private _updateControlFlags;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=classify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,eAAgB,YAAW,aAAa;IAC7C,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,OAAO,CAAC;IAmCnB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAmB5B"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClassifyHandler — decomposes user input into typed subprompts.
|
|
3
|
+
*
|
|
4
|
+
* Reads: `ctx.inputText`
|
|
5
|
+
* Writes: `ctx.subprompts`, `ctx.isSapRequired`, `ctx.shouldRetrieve`
|
|
6
|
+
*
|
|
7
|
+
* When classification is disabled (`config.classificationEnabled === false`),
|
|
8
|
+
* the input is treated as a single action subprompt.
|
|
9
|
+
*/
|
|
10
|
+
import { OrchestratorError } from '../../agent.js';
|
|
11
|
+
export class ClassifyHandler {
|
|
12
|
+
async execute(ctx, _config, span) {
|
|
13
|
+
if (ctx.config.classificationEnabled === false) {
|
|
14
|
+
ctx.subprompts = [
|
|
15
|
+
{ type: 'action', text: ctx.inputText, dependency: 'independent' },
|
|
16
|
+
];
|
|
17
|
+
ctx.options?.sessionLogger?.logStep('classification_skipped', {
|
|
18
|
+
text: ctx.inputText,
|
|
19
|
+
});
|
|
20
|
+
span.setAttribute('skipped', true);
|
|
21
|
+
this._updateControlFlags(ctx);
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
const result = await ctx.classifier.classify(ctx.inputText, ctx.options);
|
|
25
|
+
if (!result.ok) {
|
|
26
|
+
ctx.error = new OrchestratorError(result.error.message, 'CLASSIFIER_ERROR');
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
ctx.subprompts = result.value;
|
|
30
|
+
ctx.options?.sessionLogger?.logStep('classifier_response', {
|
|
31
|
+
subprompts: result.value,
|
|
32
|
+
});
|
|
33
|
+
for (const sp of ctx.subprompts) {
|
|
34
|
+
ctx.metrics.classifierIntentCount.add(1, { intent: sp.type });
|
|
35
|
+
}
|
|
36
|
+
this._updateControlFlags(ctx);
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Update control flags based on classified subprompts.
|
|
41
|
+
* These flags are used by `when` conditions on downstream stages.
|
|
42
|
+
*/
|
|
43
|
+
_updateControlFlags(ctx) {
|
|
44
|
+
const actions = ctx.subprompts.filter((sp) => sp.type === 'action');
|
|
45
|
+
const mode = ctx.config.mode || 'smart';
|
|
46
|
+
const hasRagStores = Object.keys(ctx.ragStores).length > 0;
|
|
47
|
+
const hasMcpClients = ctx.mcpClients.length > 0;
|
|
48
|
+
ctx.isSapRequired =
|
|
49
|
+
actions.some((a) => a.context === 'sap-abap') || mode === 'hard';
|
|
50
|
+
// Populate ragText from action texts — downstream stages (translate, expand,
|
|
51
|
+
// rag-query) all read from ctx.ragText.
|
|
52
|
+
ctx.ragText = actions.map((a) => a.text).join(' ');
|
|
53
|
+
// Retrieve when there are actions and stores/tools to search,
|
|
54
|
+
// or when mode is 'hard' (always retrieve).
|
|
55
|
+
ctx.shouldRetrieve =
|
|
56
|
+
mode === 'hard' ||
|
|
57
|
+
(actions.length > 0 && (hasMcpClients || hasRagStores));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=classify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify.js","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKnD,MAAM,OAAO,eAAe;IAC1B,KAAK,CAAC,OAAO,CACX,GAAoB,EACpB,OAAgC,EAChC,IAAW;QAEX,IAAI,GAAG,CAAC,MAAM,CAAC,qBAAqB,KAAK,KAAK,EAAE,CAAC;YAC/C,GAAG,CAAC,UAAU,GAAG;gBACf,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE;aACnE,CAAC;YACF,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,wBAAwB,EAAE;gBAC5D,IAAI,EAAE,GAAG,CAAC,SAAS;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,IAAI,iBAAiB,CAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,EACpB,kBAAkB,CACnB,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;QAC9B,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,qBAAqB,EAAE;YACzD,UAAU,EAAE,MAAM,CAAC,KAAK;SACzB,CAAC,CAAC;QAEH,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAChC,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,GAAoB;QAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC;QACxC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhD,GAAG,CAAC,aAAa;YACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC;QAEnE,6EAA6E;QAC7E,wCAAwC;QACxC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnD,8DAA8D;QAC9D,4CAA4C;QAC5C,GAAG,CAAC,cAAc;YAChB,IAAI,KAAK,MAAM;gBACf,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC,CAAC,CAAC;IAC5D,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExpandHandler — expands RAG query with synonyms and related terms.
|
|
3
|
+
*
|
|
4
|
+
* Reads: `ctx.ragText`, `ctx.queryExpander`
|
|
5
|
+
* Writes: `ctx.ragText`
|
|
6
|
+
*
|
|
7
|
+
* Uses the injected IQueryExpander to broaden RAG queries.
|
|
8
|
+
* Skipped when `queryExpansionEnabled` is false.
|
|
9
|
+
*/
|
|
10
|
+
import type { ISpan } from '../../tracer/types.js';
|
|
11
|
+
import type { PipelineContext } from '../context.js';
|
|
12
|
+
import type { IStageHandler } from '../stage-handler.js';
|
|
13
|
+
export declare class ExpandHandler implements IStageHandler {
|
|
14
|
+
execute(ctx: PipelineContext, _config: Record<string, unknown>, span: ISpan): Promise<boolean>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=expand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expand.d.ts","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/expand.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,aAAc,YAAW,aAAa;IAC3C,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,OAAO,CAAC;CAcpB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExpandHandler — expands RAG query with synonyms and related terms.
|
|
3
|
+
*
|
|
4
|
+
* Reads: `ctx.ragText`, `ctx.queryExpander`
|
|
5
|
+
* Writes: `ctx.ragText`
|
|
6
|
+
*
|
|
7
|
+
* Uses the injected IQueryExpander to broaden RAG queries.
|
|
8
|
+
* Skipped when `queryExpansionEnabled` is false.
|
|
9
|
+
*/
|
|
10
|
+
export class ExpandHandler {
|
|
11
|
+
async execute(ctx, _config, span) {
|
|
12
|
+
if (!ctx.config.queryExpansionEnabled) {
|
|
13
|
+
span.setAttribute('skipped', true);
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
const result = await ctx.queryExpander.expand(ctx.ragText, ctx.options);
|
|
17
|
+
if (result.ok) {
|
|
18
|
+
ctx.ragText = result.value;
|
|
19
|
+
span.setAttribute('expanded', true);
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=expand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expand.js","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/expand.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,OAAO,aAAa;IACxB,KAAK,CAAC,OAAO,CACX,GAAoB,EACpB,OAAgC,EAChC,IAAW;QAEX,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HistoryUpsertHandler — post-tool-loop pipeline stage.
|
|
3
|
+
*
|
|
4
|
+
* After tool-loop completes, this stage:
|
|
5
|
+
* 1. Calls IHistorySummarizer to produce a compact turn summary.
|
|
6
|
+
* 2. Upserts the summary to the history RAG store.
|
|
7
|
+
* 3. Pushes the summary to the recency memory buffer.
|
|
8
|
+
*
|
|
9
|
+
* All operations are best-effort — failures are logged but never block the
|
|
10
|
+
* response. The `summarizeAndStore` helper is exported for unit testing.
|
|
11
|
+
*/
|
|
12
|
+
import type { CallOptions, HistoryTurn, IHistoryMemory, IHistorySummarizer, IRag } from '@mcp-abap-adt/llm-agent';
|
|
13
|
+
import type { ISpan } from '../../tracer/types.js';
|
|
14
|
+
import type { PipelineContext } from '../context.js';
|
|
15
|
+
import type { IStageHandler } from '../stage-handler.js';
|
|
16
|
+
export interface SummarizeAndStoreArgs {
|
|
17
|
+
turn: HistoryTurn;
|
|
18
|
+
summarizer: IHistorySummarizer;
|
|
19
|
+
memory: IHistoryMemory;
|
|
20
|
+
rag: IRag;
|
|
21
|
+
sessionId: string;
|
|
22
|
+
options?: CallOptions;
|
|
23
|
+
log?: (msg: string, data?: unknown) => void;
|
|
24
|
+
}
|
|
25
|
+
export declare function summarizeAndStore(args: SummarizeAndStoreArgs): Promise<void>;
|
|
26
|
+
export declare class HistoryUpsertHandler implements IStageHandler {
|
|
27
|
+
execute(ctx: PipelineContext, _config: Record<string, unknown>, span: ISpan): Promise<boolean>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=history-upsert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history-upsert.d.ts","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/history-upsert.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,IAAI,EACL,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,GAAG,EAAE,IAAI,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,qBAAa,oBAAqB,YAAW,aAAa;IAClD,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,OAAO,CAAC;CAgDpB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HistoryUpsertHandler — post-tool-loop pipeline stage.
|
|
3
|
+
*
|
|
4
|
+
* After tool-loop completes, this stage:
|
|
5
|
+
* 1. Calls IHistorySummarizer to produce a compact turn summary.
|
|
6
|
+
* 2. Upserts the summary to the history RAG store.
|
|
7
|
+
* 3. Pushes the summary to the recency memory buffer.
|
|
8
|
+
*
|
|
9
|
+
* All operations are best-effort — failures are logged but never block the
|
|
10
|
+
* response. The `summarizeAndStore` helper is exported for unit testing.
|
|
11
|
+
*/
|
|
12
|
+
export async function summarizeAndStore(args) {
|
|
13
|
+
const { turn, summarizer, memory, rag, sessionId, options, log } = args;
|
|
14
|
+
const result = await summarizer.summarize(turn, options);
|
|
15
|
+
const summary = result.ok
|
|
16
|
+
? result.value
|
|
17
|
+
: `${turn.userText} → ${turn.assistantText}`;
|
|
18
|
+
if (!result.ok) {
|
|
19
|
+
log?.('history_summarize_failed', { error: result.error.message });
|
|
20
|
+
}
|
|
21
|
+
const ragWriter = rag.writer?.();
|
|
22
|
+
if (!ragWriter) {
|
|
23
|
+
log?.('history_upsert_failed', { error: 'RAG writer not available' });
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const upsertResult = await ragWriter.upsertRaw(`turn:${sessionId}:${turn.turnIndex}`, summary, {}, options);
|
|
27
|
+
if (!upsertResult.ok) {
|
|
28
|
+
log?.('history_upsert_failed', { error: upsertResult.error.message });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
memory.pushRecent(sessionId, summary);
|
|
32
|
+
}
|
|
33
|
+
export class HistoryUpsertHandler {
|
|
34
|
+
async execute(ctx, _config, span) {
|
|
35
|
+
if (!ctx.historySummarizer || !ctx.historyMemory) {
|
|
36
|
+
span.setAttribute('skipped', true);
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
if (!ctx.config.semanticHistoryEnabled) {
|
|
40
|
+
span.setAttribute('skipped', true);
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
const historyRag = ctx.ragStores.history;
|
|
44
|
+
if (!historyRag) {
|
|
45
|
+
span.setAttribute('skipped', true);
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
const turn = {
|
|
50
|
+
sessionId: ctx.sessionId,
|
|
51
|
+
turnIndex: Date.now(),
|
|
52
|
+
userText: ctx.inputText,
|
|
53
|
+
assistantText: '',
|
|
54
|
+
toolCalls: [],
|
|
55
|
+
toolResults: [],
|
|
56
|
+
timestamp: Date.now(),
|
|
57
|
+
};
|
|
58
|
+
await summarizeAndStore({
|
|
59
|
+
turn,
|
|
60
|
+
summarizer: ctx.historySummarizer,
|
|
61
|
+
memory: ctx.historyMemory,
|
|
62
|
+
rag: historyRag,
|
|
63
|
+
sessionId: ctx.sessionId,
|
|
64
|
+
options: ctx.options,
|
|
65
|
+
log: (msg, data) => ctx.options?.sessionLogger?.logStep(msg, data),
|
|
66
|
+
});
|
|
67
|
+
span.setStatus('ok');
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
span.setStatus('error', 'history upsert failed');
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=history-upsert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history-upsert.js","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/history-upsert.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default stage handler registry.
|
|
3
|
+
*
|
|
4
|
+
* Maps built-in stage type names to their handler implementations.
|
|
5
|
+
* Custom handlers can be registered by supplying a custom `IPipeline` implementation.
|
|
6
|
+
*/
|
|
7
|
+
import type { IStageHandler } from '../stage-handler.js';
|
|
8
|
+
import { AssembleHandler } from './assemble.js';
|
|
9
|
+
import { BuildToolQueryHandler } from './build-tool-query.js';
|
|
10
|
+
import { ClassifyHandler } from './classify.js';
|
|
11
|
+
import { ExpandHandler } from './expand.js';
|
|
12
|
+
import { HistoryUpsertHandler } from './history-upsert.js';
|
|
13
|
+
import { RagQueryHandler } from './rag-query.js';
|
|
14
|
+
import { RerankHandler } from './rerank.js';
|
|
15
|
+
import { SkillSelectHandler } from './skill-select.js';
|
|
16
|
+
import { SummarizeHandler } from './summarize.js';
|
|
17
|
+
import { ToolLoopHandler } from './tool-loop.js';
|
|
18
|
+
import { ToolSelectHandler } from './tool-select.js';
|
|
19
|
+
import { TranslateHandler } from './translate.js';
|
|
20
|
+
export type StageHandlerRegistry = Map<string, IStageHandler>;
|
|
21
|
+
/**
|
|
22
|
+
* Build the default handler registry with all built-in stage handlers.
|
|
23
|
+
*
|
|
24
|
+
* The registry maps stage type names (as used in YAML) to their handler
|
|
25
|
+
* instances. All handlers are stateless — they read/write through the
|
|
26
|
+
* {@link PipelineContext}.
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildDefaultHandlerRegistry(): StageHandlerRegistry;
|
|
29
|
+
export { summarizeAndStore } from './history-upsert.js';
|
|
30
|
+
export { AssembleHandler, BuildToolQueryHandler, ClassifyHandler, ExpandHandler, HistoryUpsertHandler, RagQueryHandler, RerankHandler, SkillSelectHandler, SummarizeHandler, ToolLoopHandler, ToolSelectHandler, TranslateHandler, };
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,2BAA2B,IAAI,oBAAoB,CAelE;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default stage handler registry.
|
|
3
|
+
*
|
|
4
|
+
* Maps built-in stage type names to their handler implementations.
|
|
5
|
+
* Custom handlers can be registered by supplying a custom `IPipeline` implementation.
|
|
6
|
+
*/
|
|
7
|
+
import { AssembleHandler } from './assemble.js';
|
|
8
|
+
import { BuildToolQueryHandler } from './build-tool-query.js';
|
|
9
|
+
import { ClassifyHandler } from './classify.js';
|
|
10
|
+
import { ExpandHandler } from './expand.js';
|
|
11
|
+
import { HistoryUpsertHandler } from './history-upsert.js';
|
|
12
|
+
import { RagQueryHandler } from './rag-query.js';
|
|
13
|
+
import { RerankHandler } from './rerank.js';
|
|
14
|
+
import { SkillSelectHandler } from './skill-select.js';
|
|
15
|
+
import { SummarizeHandler } from './summarize.js';
|
|
16
|
+
import { ToolLoopHandler } from './tool-loop.js';
|
|
17
|
+
import { ToolSelectHandler } from './tool-select.js';
|
|
18
|
+
import { TranslateHandler } from './translate.js';
|
|
19
|
+
/**
|
|
20
|
+
* Build the default handler registry with all built-in stage handlers.
|
|
21
|
+
*
|
|
22
|
+
* The registry maps stage type names (as used in YAML) to their handler
|
|
23
|
+
* instances. All handlers are stateless — they read/write through the
|
|
24
|
+
* {@link PipelineContext}.
|
|
25
|
+
*/
|
|
26
|
+
export function buildDefaultHandlerRegistry() {
|
|
27
|
+
return new Map([
|
|
28
|
+
['classify', new ClassifyHandler()],
|
|
29
|
+
['summarize', new SummarizeHandler()],
|
|
30
|
+
['translate', new TranslateHandler()],
|
|
31
|
+
['expand', new ExpandHandler()],
|
|
32
|
+
['rag-query', new RagQueryHandler()],
|
|
33
|
+
['rerank', new RerankHandler()],
|
|
34
|
+
['skill-select', new SkillSelectHandler()],
|
|
35
|
+
['build-tool-query', new BuildToolQueryHandler()],
|
|
36
|
+
['tool-select', new ToolSelectHandler()],
|
|
37
|
+
['assemble', new AssembleHandler()],
|
|
38
|
+
['tool-loop', new ToolLoopHandler()],
|
|
39
|
+
['history-upsert', new HistoryUpsertHandler()],
|
|
40
|
+
]);
|
|
41
|
+
}
|
|
42
|
+
export { summarizeAndStore } from './history-upsert.js';
|
|
43
|
+
export { AssembleHandler, BuildToolQueryHandler, ClassifyHandler, ExpandHandler, HistoryUpsertHandler, RagQueryHandler, RerankHandler, SkillSelectHandler, SummarizeHandler, ToolLoopHandler, ToolSelectHandler, TranslateHandler, };
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO,IAAI,GAAG,CAAwB;QACpC,CAAC,UAAU,EAAE,IAAI,eAAe,EAAE,CAAC;QACnC,CAAC,WAAW,EAAE,IAAI,gBAAgB,EAAE,CAAC;QACrC,CAAC,WAAW,EAAE,IAAI,gBAAgB,EAAE,CAAC;QACrC,CAAC,QAAQ,EAAE,IAAI,aAAa,EAAE,CAAC;QAC/B,CAAC,WAAW,EAAE,IAAI,eAAe,EAAE,CAAC;QACpC,CAAC,QAAQ,EAAE,IAAI,aAAa,EAAE,CAAC;QAC/B,CAAC,cAAc,EAAE,IAAI,kBAAkB,EAAE,CAAC;QAC1C,CAAC,kBAAkB,EAAE,IAAI,qBAAqB,EAAE,CAAC;QACjD,CAAC,aAAa,EAAE,IAAI,iBAAiB,EAAE,CAAC;QACxC,CAAC,UAAU,EAAE,IAAI,eAAe,EAAE,CAAC;QACnC,CAAC,WAAW,EAAE,IAAI,eAAe,EAAE,CAAC;QACpC,CAAC,gBAAgB,EAAE,IAAI,oBAAoB,EAAE,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RagQueryHandler — queries a single RAG store.
|
|
3
|
+
*
|
|
4
|
+
* Reads: `ctx.ragText`, `ctx.ragStores`
|
|
5
|
+
* Writes: `ctx.ragResults[store]` where `store` is from config
|
|
6
|
+
*
|
|
7
|
+
* ## Config
|
|
8
|
+
*
|
|
9
|
+
* | Field | Type | Default | Description |
|
|
10
|
+
* |---------|--------------------------------|----------|--------------------------------------|
|
|
11
|
+
* | `store` | string | required | Store key (must exist in `ctx.ragStores`) |
|
|
12
|
+
* | `k` | number | from ctx | Number of results to retrieve |
|
|
13
|
+
* | `scope` | `global` \| `user` \| `session` | — | Scope filter: `user` adds userId filter, `session` adds sessionId filter, `global` adds no filter |
|
|
14
|
+
* | `queryText` | `'toolQueryText'` \| string | — | Overrides the query text for this call. `'toolQueryText'` reads the enriched text from `ctx.toolQueryText` (falls back to `ragText`). Any other string is used literally. When set, a one-off embedding is built for this call without touching the cached `ctx.queryEmbedding`. |
|
|
15
|
+
*
|
|
16
|
+
* ## Parallel safety
|
|
17
|
+
*
|
|
18
|
+
* Each instance writes to a different slot in `ctx.ragResults`, so
|
|
19
|
+
* multiple rag-query stages can safely run in parallel.
|
|
20
|
+
*/
|
|
21
|
+
import type { ISpan } from '../../tracer/types.js';
|
|
22
|
+
import type { PipelineContext } from '../context.js';
|
|
23
|
+
import type { IStageHandler } from '../stage-handler.js';
|
|
24
|
+
export declare class RagQueryHandler implements IStageHandler {
|
|
25
|
+
execute(ctx: PipelineContext, config: Record<string, unknown>, span: ISpan): Promise<boolean>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=rag-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-query.d.ts","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/rag-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,eAAgB,YAAW,aAAa;IAC7C,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,OAAO,CAAC;CAyGpB"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RagQueryHandler — queries a single RAG store.
|
|
3
|
+
*
|
|
4
|
+
* Reads: `ctx.ragText`, `ctx.ragStores`
|
|
5
|
+
* Writes: `ctx.ragResults[store]` where `store` is from config
|
|
6
|
+
*
|
|
7
|
+
* ## Config
|
|
8
|
+
*
|
|
9
|
+
* | Field | Type | Default | Description |
|
|
10
|
+
* |---------|--------------------------------|----------|--------------------------------------|
|
|
11
|
+
* | `store` | string | required | Store key (must exist in `ctx.ragStores`) |
|
|
12
|
+
* | `k` | number | from ctx | Number of results to retrieve |
|
|
13
|
+
* | `scope` | `global` \| `user` \| `session` | — | Scope filter: `user` adds userId filter, `session` adds sessionId filter, `global` adds no filter |
|
|
14
|
+
* | `queryText` | `'toolQueryText'` \| string | — | Overrides the query text for this call. `'toolQueryText'` reads the enriched text from `ctx.toolQueryText` (falls back to `ragText`). Any other string is used literally. When set, a one-off embedding is built for this call without touching the cached `ctx.queryEmbedding`. |
|
|
15
|
+
*
|
|
16
|
+
* ## Parallel safety
|
|
17
|
+
*
|
|
18
|
+
* Each instance writes to a different slot in `ctx.ragResults`, so
|
|
19
|
+
* multiple rag-query stages can safely run in parallel.
|
|
20
|
+
*/
|
|
21
|
+
import { QueryEmbedding, TextOnlyEmbedding } from '@mcp-abap-adt/llm-agent';
|
|
22
|
+
export class RagQueryHandler {
|
|
23
|
+
async execute(ctx, config, span) {
|
|
24
|
+
const storeName = config.store;
|
|
25
|
+
if (!storeName || !ctx.ragStores[storeName]) {
|
|
26
|
+
span.setAttribute('error', `Invalid store: ${storeName}`);
|
|
27
|
+
return true; // non-fatal, skip
|
|
28
|
+
}
|
|
29
|
+
const k = config.k ?? ctx.config.ragQueryK ?? 10;
|
|
30
|
+
const store = ctx.ragStores[storeName];
|
|
31
|
+
span.setAttribute('store', storeName);
|
|
32
|
+
span.setAttribute('k', k);
|
|
33
|
+
// Resolve the query text for this call. Optional `queryText` override
|
|
34
|
+
// bypasses the shared cache so enriched-context searches don't pollute
|
|
35
|
+
// subsequent ragText-based queries.
|
|
36
|
+
const queryTextOverride = typeof config.queryText === 'string'
|
|
37
|
+
? config.queryText === 'toolQueryText'
|
|
38
|
+
? (ctx.toolQueryText ?? ctx.ragText)
|
|
39
|
+
: config.queryText
|
|
40
|
+
: undefined;
|
|
41
|
+
const queryText = queryTextOverride ?? ctx.ragText;
|
|
42
|
+
let embedding;
|
|
43
|
+
if (queryTextOverride !== undefined) {
|
|
44
|
+
embedding = ctx.embedder
|
|
45
|
+
? new QueryEmbedding(queryText, ctx.embedder, ctx.options)
|
|
46
|
+
: new TextOnlyEmbedding(queryText);
|
|
47
|
+
span.setAttribute('query_text_override', true);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Lazily create and cache a shared query embedding for all rag-query stages
|
|
51
|
+
if (!ctx.queryEmbedding) {
|
|
52
|
+
ctx.queryEmbedding = ctx.embedder
|
|
53
|
+
? new QueryEmbedding(ctx.ragText, ctx.embedder, ctx.options)
|
|
54
|
+
: new TextOnlyEmbedding(ctx.ragText);
|
|
55
|
+
}
|
|
56
|
+
embedding = ctx.queryEmbedding;
|
|
57
|
+
}
|
|
58
|
+
// Build scope filter based on config
|
|
59
|
+
const scope = config.scope;
|
|
60
|
+
const scopeFilter = {};
|
|
61
|
+
if (scope === 'user' && ctx.options?.userId) {
|
|
62
|
+
scopeFilter.userId = ctx.options.userId;
|
|
63
|
+
}
|
|
64
|
+
if (scope === 'session') {
|
|
65
|
+
scopeFilter.sessionId = ctx.sessionId;
|
|
66
|
+
}
|
|
67
|
+
const queryOptions = {
|
|
68
|
+
...ctx.options,
|
|
69
|
+
ragFilter: { ...ctx.options?.ragFilter, ...scopeFilter },
|
|
70
|
+
};
|
|
71
|
+
const ragStart = Date.now();
|
|
72
|
+
const result = await store.query(embedding, k, queryOptions);
|
|
73
|
+
ctx.requestLogger.logRagQuery({
|
|
74
|
+
store: storeName,
|
|
75
|
+
query: queryText.slice(0, 200),
|
|
76
|
+
resultCount: result.ok ? result.value.length : 0,
|
|
77
|
+
durationMs: Date.now() - ragStart,
|
|
78
|
+
});
|
|
79
|
+
// Log embedding usage once (first rag-query stage that uses the embedding)
|
|
80
|
+
if (!ctx.embeddingUsageLogged && embedding?.getUsage) {
|
|
81
|
+
const usage = await embedding.getUsage();
|
|
82
|
+
if (usage) {
|
|
83
|
+
ctx.requestLogger.logLlmCall({
|
|
84
|
+
component: 'embedding',
|
|
85
|
+
model: 'embedder',
|
|
86
|
+
promptTokens: usage.promptTokens,
|
|
87
|
+
completionTokens: 0,
|
|
88
|
+
totalTokens: usage.totalTokens,
|
|
89
|
+
durationMs: 0, // embed completed before store.query(); not separately measurable here
|
|
90
|
+
scope: 'request',
|
|
91
|
+
});
|
|
92
|
+
ctx.embeddingUsageLogged = true;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
ctx.metrics.ragQueryCount.add(1, {
|
|
96
|
+
store: storeName,
|
|
97
|
+
hit: String(result.ok && result.value.length > 0),
|
|
98
|
+
});
|
|
99
|
+
if (result.ok) {
|
|
100
|
+
ctx.ragResults[storeName] = result.value;
|
|
101
|
+
span.setAttribute('results', result.value.length);
|
|
102
|
+
// Log RAG results with scores for diagnostics
|
|
103
|
+
ctx.options?.sessionLogger?.logStep(`rag_query_${storeName}`, {
|
|
104
|
+
query: queryText.slice(0, 200),
|
|
105
|
+
k,
|
|
106
|
+
resultCount: result.value.length,
|
|
107
|
+
results: result.value.map((r) => ({
|
|
108
|
+
id: r.metadata.id,
|
|
109
|
+
score: r.score,
|
|
110
|
+
text: r.text.slice(0, 120),
|
|
111
|
+
})),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=rag-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-query.js","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/rag-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RerankHandler — re-scores RAG results using the injected reranker.
|
|
3
|
+
*
|
|
4
|
+
* Reads: `ctx.ragText`, `ctx.ragResults`
|
|
5
|
+
* Writes: `ctx.ragResults` (replaces with re-scored versions)
|
|
6
|
+
*
|
|
7
|
+
* Runs reranking on all stores in parallel. Falls back to original
|
|
8
|
+
* results if reranking fails for a store.
|
|
9
|
+
*/
|
|
10
|
+
import type { ISpan } from '../../tracer/types.js';
|
|
11
|
+
import type { PipelineContext } from '../context.js';
|
|
12
|
+
import type { IStageHandler } from '../stage-handler.js';
|
|
13
|
+
export declare class RerankHandler implements IStageHandler {
|
|
14
|
+
execute(ctx: PipelineContext, _config: Record<string, unknown>, span: ISpan): Promise<boolean>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=rerank.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rerank.d.ts","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/rerank.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,aAAc,YAAW,aAAa;IAC3C,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,OAAO,CAAC;CAwBpB"}
|