@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,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DefaultPipeline — IPipeline implementation backed by PipelineExecutor + stage handlers.
|
|
3
|
+
*
|
|
4
|
+
* This is the standard pipeline used by SmartAgent when no custom pipeline is
|
|
5
|
+
* configured. It runs one of two stage sequences, selected by
|
|
6
|
+
* {@link SmartAgentConfig.enrichedToolSearch}:
|
|
7
|
+
*
|
|
8
|
+
* **Single-phase (default):**
|
|
9
|
+
* ```text
|
|
10
|
+
* classify → summarize → parallel(rag-query tools, rag-query history, rag-query <custom>…) →
|
|
11
|
+
* rerank → skill-select → tool-select → assemble → tool-loop → history-upsert
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* **Enriched (`enrichedToolSearch: true`):** the tools RAG store is queried in
|
|
15
|
+
* a second phase driven by context from prior retrieval + selected skills:
|
|
16
|
+
* ```text
|
|
17
|
+
* classify → summarize → parallel(rag-query history, rag-query <custom>…) →
|
|
18
|
+
* rerank → skill-select → build-tool-query → rag-query tools (enriched) →
|
|
19
|
+
* tool-select → assemble → tool-loop → history-upsert
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* Built-in RAG stores (`tools`, `history`) are wired from `toolsRag`/`historyRag` deps.
|
|
23
|
+
* Additional custom stores can be passed via `ragStores` and are queried in parallel
|
|
24
|
+
* with built-ins. Stores can be added/removed at runtime via `rebuildStages()`.
|
|
25
|
+
*/
|
|
26
|
+
import { NoopQueryExpander } from '@mcp-abap-adt/llm-agent';
|
|
27
|
+
import { NoopToolCache } from '../cache/noop-tool-cache.js';
|
|
28
|
+
import { LlmClassifier } from '../classifier/llm-classifier.js';
|
|
29
|
+
import { ContextAssembler } from '../context/context-assembler.js';
|
|
30
|
+
import { NoopRequestLogger } from '../logger/noop-request-logger.js';
|
|
31
|
+
import { NoopMetrics } from '../metrics/noop-metrics.js';
|
|
32
|
+
import { PendingToolResultsRegistry } from '../policy/pending-tool-results-registry.js';
|
|
33
|
+
import { StreamingLlmCallStrategy } from '../policy/streaming-llm-call-strategy.js';
|
|
34
|
+
import { ToolAvailabilityRegistry } from '../policy/tool-availability-registry.js';
|
|
35
|
+
import { NoopReranker } from '../reranker/noop-reranker.js';
|
|
36
|
+
import { NoopSessionManager } from '../session/noop-session-manager.js';
|
|
37
|
+
import { NoopTracer } from '../tracer/noop-tracer.js';
|
|
38
|
+
import { NoopValidator } from '../validator/noop-validator.js';
|
|
39
|
+
import { PipelineExecutor } from './executor.js';
|
|
40
|
+
import { buildDefaultHandlerRegistry } from './handlers/index.js';
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
// Default SmartAgentConfig for standalone use
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
const DEFAULT_CONFIG = {
|
|
45
|
+
maxIterations: 10,
|
|
46
|
+
classificationEnabled: false,
|
|
47
|
+
skillInjectionEnabled: true,
|
|
48
|
+
mode: 'smart',
|
|
49
|
+
ragQueryK: 10,
|
|
50
|
+
};
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
// DefaultPipeline
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
/**
|
|
55
|
+
* Standard IPipeline implementation that orchestrates the default SmartAgent
|
|
56
|
+
* request lifecycle via PipelineExecutor and built-in stage handlers.
|
|
57
|
+
*
|
|
58
|
+
* Usage:
|
|
59
|
+
* ```ts
|
|
60
|
+
* const pipeline = new DefaultPipeline();
|
|
61
|
+
* pipeline.initialize(deps);
|
|
62
|
+
* const result = await pipeline.execute(input, history, options, yieldChunk);
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export class DefaultPipeline {
|
|
66
|
+
deps;
|
|
67
|
+
executor;
|
|
68
|
+
stages;
|
|
69
|
+
// Cached defaults (created once in initialize, reused per request)
|
|
70
|
+
resolvedTracer;
|
|
71
|
+
resolvedClassifier;
|
|
72
|
+
resolvedAssembler;
|
|
73
|
+
resolvedReranker;
|
|
74
|
+
resolvedQueryExpander;
|
|
75
|
+
resolvedToolCache;
|
|
76
|
+
resolvedOutputValidator;
|
|
77
|
+
resolvedSessionManager;
|
|
78
|
+
resolvedMetrics;
|
|
79
|
+
resolvedRequestLogger;
|
|
80
|
+
resolvedLlmCallStrategy;
|
|
81
|
+
// -------------------------------------------------------------------------
|
|
82
|
+
// IPipeline
|
|
83
|
+
// -------------------------------------------------------------------------
|
|
84
|
+
initialize(deps) {
|
|
85
|
+
this.deps = deps;
|
|
86
|
+
// Resolve all optional deps once
|
|
87
|
+
this.resolvedTracer = deps.tracer ?? new NoopTracer();
|
|
88
|
+
this.resolvedClassifier =
|
|
89
|
+
deps.classifier ?? new LlmClassifier(deps.classifierLlm ?? deps.mainLlm);
|
|
90
|
+
this.resolvedAssembler = deps.assembler ?? new ContextAssembler();
|
|
91
|
+
this.resolvedReranker = deps.reranker ?? new NoopReranker();
|
|
92
|
+
this.resolvedQueryExpander = deps.queryExpander ?? new NoopQueryExpander();
|
|
93
|
+
this.resolvedToolCache = deps.toolCache ?? new NoopToolCache();
|
|
94
|
+
this.resolvedOutputValidator = deps.outputValidator ?? new NoopValidator();
|
|
95
|
+
this.resolvedSessionManager =
|
|
96
|
+
deps.sessionManager ?? new NoopSessionManager();
|
|
97
|
+
this.resolvedMetrics = deps.metrics ?? new NoopMetrics();
|
|
98
|
+
this.resolvedRequestLogger = deps.requestLogger ?? new NoopRequestLogger();
|
|
99
|
+
this.resolvedLlmCallStrategy =
|
|
100
|
+
deps.llmCallStrategy ?? new StreamingLlmCallStrategy();
|
|
101
|
+
const registry = buildDefaultHandlerRegistry();
|
|
102
|
+
this.executor = new PipelineExecutor(registry, this.resolvedTracer);
|
|
103
|
+
// Fixed stage list — only tools + history RAG stores
|
|
104
|
+
this.stages = this._buildStages();
|
|
105
|
+
}
|
|
106
|
+
async execute(input, history, options, yieldChunk, externalTools) {
|
|
107
|
+
const rootSpan = this.resolvedTracer.startSpan('pipeline.execute');
|
|
108
|
+
const ctx = this._buildContext(input, history, options, yieldChunk, externalTools);
|
|
109
|
+
try {
|
|
110
|
+
await this.executor.executeStages(this.stages, ctx, rootSpan);
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
rootSpan.setStatus('error', String(err));
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
rootSpan.end();
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
timing: ctx.timing,
|
|
120
|
+
error: ctx.error,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
rebuildStages() {
|
|
124
|
+
this.stages = this._buildStages();
|
|
125
|
+
}
|
|
126
|
+
// -------------------------------------------------------------------------
|
|
127
|
+
// Internals
|
|
128
|
+
// -------------------------------------------------------------------------
|
|
129
|
+
/**
|
|
130
|
+
* Build the fixed stage list. RAG parallel block only includes stores
|
|
131
|
+
* that were provided in deps.
|
|
132
|
+
*/
|
|
133
|
+
_buildStages() {
|
|
134
|
+
const enriched = this.deps.agentConfig?.enrichedToolSearch === true;
|
|
135
|
+
const hasToolsRag = Boolean(this.deps.toolsRag);
|
|
136
|
+
const ragChildren = [];
|
|
137
|
+
// In enriched mode, the tools store is queried separately AFTER
|
|
138
|
+
// build-tool-query so the enriched query can drive tool discovery.
|
|
139
|
+
if (hasToolsRag && !enriched) {
|
|
140
|
+
ragChildren.push({
|
|
141
|
+
id: 'rag-tools',
|
|
142
|
+
type: 'rag-query',
|
|
143
|
+
config: { store: 'tools' },
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
if (this.deps.historyRag) {
|
|
147
|
+
ragChildren.push({
|
|
148
|
+
id: 'rag-history',
|
|
149
|
+
type: 'rag-query',
|
|
150
|
+
config: { store: 'history', scope: 'session' },
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
// Custom stores — appended after built-in, same parallel block
|
|
154
|
+
if (this.deps.ragStores) {
|
|
155
|
+
for (const name of Object.keys(this.deps.ragStores)) {
|
|
156
|
+
if (name === 'tools' || name === 'history')
|
|
157
|
+
continue;
|
|
158
|
+
ragChildren.push({
|
|
159
|
+
id: `rag-${name}`,
|
|
160
|
+
type: 'rag-query',
|
|
161
|
+
config: { store: name },
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
const stages = [
|
|
166
|
+
{ id: 'classify', type: 'classify' },
|
|
167
|
+
{ id: 'summarize', type: 'summarize' },
|
|
168
|
+
];
|
|
169
|
+
const needsTranslate = ragChildren.length > 0 || (enriched && hasToolsRag);
|
|
170
|
+
if (needsTranslate) {
|
|
171
|
+
// Translate non-ASCII RAG query before retrieval (enabled by default)
|
|
172
|
+
stages.push({
|
|
173
|
+
id: 'translate',
|
|
174
|
+
type: 'translate',
|
|
175
|
+
when: 'config.ragTranslateEnabled != false',
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
// First-phase retrieval: non-tool stores (enriched mode) or all stores (default).
|
|
179
|
+
if (ragChildren.length > 0) {
|
|
180
|
+
stages.push({
|
|
181
|
+
id: 'rag-retrieval',
|
|
182
|
+
type: 'parallel',
|
|
183
|
+
stages: ragChildren,
|
|
184
|
+
after: [{ id: 'rerank', type: 'rerank' }],
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
stages.push({ id: 'skill-select', type: 'skill-select' });
|
|
188
|
+
// Second-phase retrieval (enriched mode only): build the enriched
|
|
189
|
+
// query, then hit the tools RAG store with it.
|
|
190
|
+
if (enriched && hasToolsRag) {
|
|
191
|
+
stages.push({ id: 'build-tool-query', type: 'build-tool-query' });
|
|
192
|
+
stages.push({
|
|
193
|
+
id: 'rag-tools',
|
|
194
|
+
type: 'rag-query',
|
|
195
|
+
config: { store: 'tools', queryText: 'toolQueryText' },
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
stages.push({ id: 'tool-select', type: 'tool-select' }, { id: 'assemble', type: 'assemble' }, { id: 'tool-loop', type: 'tool-loop' }, { id: 'history-upsert', type: 'history-upsert' });
|
|
199
|
+
return stages;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Create a PipelineContext from deps + per-request input.
|
|
203
|
+
* Mirrors the pattern in SmartAgent._runStructuredPipeline().
|
|
204
|
+
*/
|
|
205
|
+
_buildContext(input, history, options, yieldChunk, externalTools) {
|
|
206
|
+
const text = typeof input === 'string'
|
|
207
|
+
? input
|
|
208
|
+
: (input.filter((m) => m.role === 'user').slice(-1)[0]?.content ?? '');
|
|
209
|
+
// Build ragStores record — custom stores first, built-ins override by name
|
|
210
|
+
const ragStores = {
|
|
211
|
+
...(this.deps.ragStores ?? {}),
|
|
212
|
+
};
|
|
213
|
+
if (this.deps.toolsRag)
|
|
214
|
+
ragStores.tools = this.deps.toolsRag;
|
|
215
|
+
if (this.deps.historyRag)
|
|
216
|
+
ragStores.history = this.deps.historyRag;
|
|
217
|
+
return {
|
|
218
|
+
// Immutable input
|
|
219
|
+
textOrMessages: input,
|
|
220
|
+
options,
|
|
221
|
+
config: { ...DEFAULT_CONFIG, ...this.deps.agentConfig },
|
|
222
|
+
sessionId: options?.sessionId ?? 'default',
|
|
223
|
+
// Dependencies (resolved once in initialize)
|
|
224
|
+
mainLlm: this.deps.mainLlm,
|
|
225
|
+
helperLlm: this.deps.helperLlm,
|
|
226
|
+
classifierLlm: this.deps.classifierLlm ?? this.deps.mainLlm,
|
|
227
|
+
classifier: this.resolvedClassifier,
|
|
228
|
+
assembler: this.resolvedAssembler,
|
|
229
|
+
ragStores,
|
|
230
|
+
ragRegistry: this.deps.ragRegistry,
|
|
231
|
+
ragProviderRegistry: this.deps.ragProviderRegistry,
|
|
232
|
+
mcpClients: this.deps.mcpClients,
|
|
233
|
+
reranker: this.resolvedReranker,
|
|
234
|
+
queryExpander: this.resolvedQueryExpander,
|
|
235
|
+
toolCache: this.resolvedToolCache,
|
|
236
|
+
outputValidator: this.resolvedOutputValidator,
|
|
237
|
+
sessionManager: this.resolvedSessionManager,
|
|
238
|
+
tracer: this.resolvedTracer,
|
|
239
|
+
metrics: this.resolvedMetrics,
|
|
240
|
+
logger: this.deps.logger,
|
|
241
|
+
requestLogger: this.resolvedRequestLogger,
|
|
242
|
+
toolPolicy: this.deps.toolPolicy,
|
|
243
|
+
injectionDetector: this.deps.injectionDetector,
|
|
244
|
+
toolAvailabilityRegistry: new ToolAvailabilityRegistry(),
|
|
245
|
+
pendingToolResults: new PendingToolResultsRegistry(),
|
|
246
|
+
skillManager: this.deps.skillManager,
|
|
247
|
+
embedder: this.deps.embedder,
|
|
248
|
+
historyMemory: this.deps.historyMemory,
|
|
249
|
+
historySummarizer: this.deps.historySummarizer,
|
|
250
|
+
llmCallStrategy: this.resolvedLlmCallStrategy,
|
|
251
|
+
// Mutable state
|
|
252
|
+
inputText: text,
|
|
253
|
+
history: [...history],
|
|
254
|
+
subprompts: [],
|
|
255
|
+
toolClientMap: new Map(),
|
|
256
|
+
ragText: '',
|
|
257
|
+
ragResults: Object.fromEntries(Object.keys(ragStores).map((k) => [k, []])),
|
|
258
|
+
mcpTools: [],
|
|
259
|
+
selectedTools: [],
|
|
260
|
+
externalTools: externalTools ?? [],
|
|
261
|
+
assembledMessages: [],
|
|
262
|
+
activeTools: [],
|
|
263
|
+
selectedSkills: [],
|
|
264
|
+
skillContent: '',
|
|
265
|
+
skillArgs: '',
|
|
266
|
+
queryEmbedding: undefined,
|
|
267
|
+
// Control flags — DefaultPipeline always retrieves when stores exist
|
|
268
|
+
shouldRetrieve: true,
|
|
269
|
+
isAscii: true,
|
|
270
|
+
isSapRequired: false,
|
|
271
|
+
// Output
|
|
272
|
+
timing: [],
|
|
273
|
+
// Streaming callback
|
|
274
|
+
yield: yieldChunk,
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=default-pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-pipeline.js","sourceRoot":"","sources":["../../../src/smart-agent/pipeline/default-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PipelineExecutor — walks a stage definition tree and dispatches to handlers.
|
|
3
|
+
*
|
|
4
|
+
* The executor is the engine that interprets the structured pipeline YAML.
|
|
5
|
+
* It handles three execution modes:
|
|
6
|
+
*
|
|
7
|
+
* 1. **Sequential** (default) — stages in a list run one after another.
|
|
8
|
+
* 2. **Parallel** — child stages run concurrently via `Promise.all`.
|
|
9
|
+
* Optional `after` stages run sequentially after all children complete.
|
|
10
|
+
* 3. **Repeat** — child stages run in a loop until a condition or max iterations.
|
|
11
|
+
*
|
|
12
|
+
* ## Condition evaluation
|
|
13
|
+
*
|
|
14
|
+
* Each stage can have a `when` field — a condition expression evaluated
|
|
15
|
+
* against the {@link PipelineContext}. If the condition is falsy, the stage
|
|
16
|
+
* is skipped. See {@link evaluateCondition} for supported expression syntax.
|
|
17
|
+
*
|
|
18
|
+
* ## Error handling
|
|
19
|
+
*
|
|
20
|
+
* If a handler returns `false` or sets `ctx.error`, the executor stops
|
|
21
|
+
* processing and propagates the error back to the caller.
|
|
22
|
+
*
|
|
23
|
+
* ## Tracing
|
|
24
|
+
*
|
|
25
|
+
* Each stage execution is wrapped in a tracer span named `pipeline.<stage.id>`.
|
|
26
|
+
* The span is passed to the handler for sub-span creation.
|
|
27
|
+
*/
|
|
28
|
+
import type { ISpan, ITracer } from '../tracer/types.js';
|
|
29
|
+
import type { PipelineContext } from './context.js';
|
|
30
|
+
import type { StageHandlerRegistry } from './handlers/index.js';
|
|
31
|
+
import type { StageDefinition } from './types.js';
|
|
32
|
+
export declare class PipelineExecutor {
|
|
33
|
+
private readonly handlers;
|
|
34
|
+
private readonly tracer;
|
|
35
|
+
constructor(handlers: StageHandlerRegistry, tracer: ITracer);
|
|
36
|
+
/**
|
|
37
|
+
* Execute a list of stages sequentially.
|
|
38
|
+
*
|
|
39
|
+
* @param stages - Stage definitions to execute in order.
|
|
40
|
+
* @param ctx - Mutable pipeline context.
|
|
41
|
+
* @param parentSpan - Parent tracing span.
|
|
42
|
+
* @returns `true` if all stages completed successfully, `false` if aborted.
|
|
43
|
+
*/
|
|
44
|
+
executeStages(stages: StageDefinition[], ctx: PipelineContext, parentSpan: ISpan): Promise<boolean>;
|
|
45
|
+
/**
|
|
46
|
+
* Execute child stages in parallel, then run `after` stages sequentially.
|
|
47
|
+
*/
|
|
48
|
+
private _executeParallel;
|
|
49
|
+
/**
|
|
50
|
+
* Execute child stages in a loop until condition or max iterations.
|
|
51
|
+
*/
|
|
52
|
+
private _executeRepeat;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/pipeline/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,OAAO;IAGlC;;;;;;;OAOG;IACG,aAAa,CACjB,MAAM,EAAE,eAAe,EAAE,EACzB,GAAG,EAAE,eAAe,EACpB,UAAU,EAAE,KAAK,GAChB,OAAO,CAAC,OAAO,CAAC;IAyDnB;;OAEG;YACW,gBAAgB;IAoB9B;;OAEG;YACW,cAAc;CAkB7B"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PipelineExecutor — walks a stage definition tree and dispatches to handlers.
|
|
3
|
+
*
|
|
4
|
+
* The executor is the engine that interprets the structured pipeline YAML.
|
|
5
|
+
* It handles three execution modes:
|
|
6
|
+
*
|
|
7
|
+
* 1. **Sequential** (default) — stages in a list run one after another.
|
|
8
|
+
* 2. **Parallel** — child stages run concurrently via `Promise.all`.
|
|
9
|
+
* Optional `after` stages run sequentially after all children complete.
|
|
10
|
+
* 3. **Repeat** — child stages run in a loop until a condition or max iterations.
|
|
11
|
+
*
|
|
12
|
+
* ## Condition evaluation
|
|
13
|
+
*
|
|
14
|
+
* Each stage can have a `when` field — a condition expression evaluated
|
|
15
|
+
* against the {@link PipelineContext}. If the condition is falsy, the stage
|
|
16
|
+
* is skipped. See {@link evaluateCondition} for supported expression syntax.
|
|
17
|
+
*
|
|
18
|
+
* ## Error handling
|
|
19
|
+
*
|
|
20
|
+
* If a handler returns `false` or sets `ctx.error`, the executor stops
|
|
21
|
+
* processing and propagates the error back to the caller.
|
|
22
|
+
*
|
|
23
|
+
* ## Tracing
|
|
24
|
+
*
|
|
25
|
+
* Each stage execution is wrapped in a tracer span named `pipeline.<stage.id>`.
|
|
26
|
+
* The span is passed to the handler for sub-span creation.
|
|
27
|
+
*/
|
|
28
|
+
import { evaluateCondition } from './condition-evaluator.js';
|
|
29
|
+
export class PipelineExecutor {
|
|
30
|
+
handlers;
|
|
31
|
+
tracer;
|
|
32
|
+
constructor(handlers, tracer) {
|
|
33
|
+
this.handlers = handlers;
|
|
34
|
+
this.tracer = tracer;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Execute a list of stages sequentially.
|
|
38
|
+
*
|
|
39
|
+
* @param stages - Stage definitions to execute in order.
|
|
40
|
+
* @param ctx - Mutable pipeline context.
|
|
41
|
+
* @param parentSpan - Parent tracing span.
|
|
42
|
+
* @returns `true` if all stages completed successfully, `false` if aborted.
|
|
43
|
+
*/
|
|
44
|
+
async executeStages(stages, ctx, parentSpan) {
|
|
45
|
+
for (const stage of stages) {
|
|
46
|
+
if (ctx.error)
|
|
47
|
+
return false;
|
|
48
|
+
if (ctx.options?.signal?.aborted)
|
|
49
|
+
return false;
|
|
50
|
+
// Evaluate `when` condition
|
|
51
|
+
const shouldRun = evaluateCondition(stage.when, ctx);
|
|
52
|
+
if (!shouldRun) {
|
|
53
|
+
ctx.options?.sessionLogger?.logStep(`stage_skipped_${stage.id}`, {
|
|
54
|
+
reason: stage.when,
|
|
55
|
+
});
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
const span = this.tracer.startSpan(`pipeline.${stage.id}`, {
|
|
59
|
+
parent: parentSpan,
|
|
60
|
+
attributes: { 'stage.type': stage.type },
|
|
61
|
+
});
|
|
62
|
+
const stageStart = Date.now();
|
|
63
|
+
let ok;
|
|
64
|
+
try {
|
|
65
|
+
if (stage.type === 'parallel') {
|
|
66
|
+
ok = await this._executeParallel(stage, ctx, span);
|
|
67
|
+
}
|
|
68
|
+
else if (stage.type === 'repeat') {
|
|
69
|
+
ok = await this._executeRepeat(stage, ctx, span);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
const handler = this.handlers.get(stage.type);
|
|
73
|
+
if (!handler) {
|
|
74
|
+
throw new Error(`Unknown stage type "${stage.type}" in stage "${stage.id}". ` +
|
|
75
|
+
`Available types: ${[...this.handlers.keys()].join(', ')}, parallel, repeat`);
|
|
76
|
+
}
|
|
77
|
+
ok = await handler.execute(ctx, stage.config ?? {}, span);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
span.setStatus('error', String(err));
|
|
82
|
+
span.end();
|
|
83
|
+
ctx.options?.sessionLogger?.logStep(`stage_error_${stage.id}`, {
|
|
84
|
+
error: String(err),
|
|
85
|
+
});
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
ctx.timing.push({
|
|
89
|
+
phase: stage.id,
|
|
90
|
+
duration: Date.now() - stageStart,
|
|
91
|
+
});
|
|
92
|
+
span.setStatus(ok ? 'ok' : 'error');
|
|
93
|
+
span.end();
|
|
94
|
+
if (!ok)
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Execute child stages in parallel, then run `after` stages sequentially.
|
|
101
|
+
*/
|
|
102
|
+
async _executeParallel(stage, ctx, parentSpan) {
|
|
103
|
+
if (!stage.stages?.length)
|
|
104
|
+
return true;
|
|
105
|
+
const results = await Promise.all(stage.stages.map((child) => this.executeStages([child], ctx, parentSpan)));
|
|
106
|
+
if (results.some((r) => !r))
|
|
107
|
+
return false;
|
|
108
|
+
// Run sequential `after` stages after all parallel children complete
|
|
109
|
+
if (stage.after?.length) {
|
|
110
|
+
return this.executeStages(stage.after, ctx, parentSpan);
|
|
111
|
+
}
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Execute child stages in a loop until condition or max iterations.
|
|
116
|
+
*/
|
|
117
|
+
async _executeRepeat(stage, ctx, parentSpan) {
|
|
118
|
+
const max = stage.maxIterations ?? 10;
|
|
119
|
+
for (let i = 0; i < max; i++) {
|
|
120
|
+
// Check `until` stop condition
|
|
121
|
+
if (stage.until && evaluateCondition(stage.until, ctx)) {
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
if (stage.stages) {
|
|
125
|
+
const ok = await this.executeStages(stage.stages, ctx, parentSpan);
|
|
126
|
+
if (!ok)
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/smart-agent/pipeline/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AssembleHandler — builds the final LLM context from action + retrieved + history.
|
|
3
|
+
*
|
|
4
|
+
* Reads: `ctx.subprompts`, `ctx.ragResults`, `ctx.mcpTools` (selected), `ctx.history`
|
|
5
|
+
* Writes: `ctx.assembledMessages`
|
|
6
|
+
*
|
|
7
|
+
* Merges multiple action subprompts into a single action, then delegates
|
|
8
|
+
* to the injected IContextAssembler.
|
|
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 AssembleHandler implements IStageHandler {
|
|
14
|
+
execute(ctx: PipelineContext, _config: Record<string, unknown>, span: ISpan): Promise<boolean>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=assemble.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assemble.d.ts","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/assemble.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;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,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,OAAO,CAAC;CAoFpB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AssembleHandler — builds the final LLM context from action + retrieved + history.
|
|
3
|
+
*
|
|
4
|
+
* Reads: `ctx.subprompts`, `ctx.ragResults`, `ctx.mcpTools` (selected), `ctx.history`
|
|
5
|
+
* Writes: `ctx.assembledMessages`
|
|
6
|
+
*
|
|
7
|
+
* Merges multiple action subprompts into a single action, then delegates
|
|
8
|
+
* to the injected IContextAssembler.
|
|
9
|
+
*/
|
|
10
|
+
import { OrchestratorError } from '../../agent.js';
|
|
11
|
+
export class AssembleHandler {
|
|
12
|
+
async execute(ctx, _config, span) {
|
|
13
|
+
const actions = ctx.subprompts.filter((sp) => sp.type === 'action');
|
|
14
|
+
// Merge multiple actions into one
|
|
15
|
+
const mainAction = actions.length > 1
|
|
16
|
+
? {
|
|
17
|
+
type: 'action',
|
|
18
|
+
text: actions.map((a) => a.text).join('\n'),
|
|
19
|
+
context: actions.find((a) => a.context)?.context,
|
|
20
|
+
dependency: 'independent',
|
|
21
|
+
}
|
|
22
|
+
: actions.length === 1
|
|
23
|
+
? actions[0]
|
|
24
|
+
: (ctx.subprompts.find((sp) => sp.type === 'chat') ??
|
|
25
|
+
ctx.subprompts[0]);
|
|
26
|
+
if (actions.length > 1) {
|
|
27
|
+
ctx.options?.sessionLogger?.logStep('actions_merged', {
|
|
28
|
+
count: actions.length,
|
|
29
|
+
actions: actions.map((a) => ({
|
|
30
|
+
text: a.text,
|
|
31
|
+
dependency: a.dependency,
|
|
32
|
+
})),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
// Build retrieved context — select tools that were chosen
|
|
36
|
+
const selectedMcpTools = ctx.mcpTools.filter((t) => ctx.activeTools.some((at) => at.name === t.name));
|
|
37
|
+
const recentActions = ctx.historyMemory && ctx.config.semanticHistoryEnabled
|
|
38
|
+
? ctx.historyMemory.getRecent(ctx.sessionId, ctx.config.historyRecencyWindow ?? 3)
|
|
39
|
+
: undefined;
|
|
40
|
+
const retrieved = {
|
|
41
|
+
ragResults: ctx.ragResults,
|
|
42
|
+
tools: selectedMcpTools,
|
|
43
|
+
recentActions,
|
|
44
|
+
};
|
|
45
|
+
const result = await ctx.assembler.assemble(mainAction, retrieved, ctx.history, ctx.options);
|
|
46
|
+
if (!result.ok) {
|
|
47
|
+
ctx.error = new OrchestratorError(result.error.message, 'ASSEMBLER_ERROR');
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
ctx.assembledMessages = result.value;
|
|
51
|
+
// Inject skill content into system message (post-assembly)
|
|
52
|
+
if (ctx.skillContent) {
|
|
53
|
+
const sysMsg = ctx.assembledMessages.find((m) => m.role === 'system');
|
|
54
|
+
if (sysMsg) {
|
|
55
|
+
sysMsg.content += `\n\n## Active Skills\n${ctx.skillContent}`;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
ctx.assembledMessages.unshift({
|
|
59
|
+
role: 'system',
|
|
60
|
+
content: `## Active Skills\n${ctx.skillContent}`,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
ctx.options?.sessionLogger?.logStep('final_context_assembled', {
|
|
65
|
+
messages: result.value,
|
|
66
|
+
tools: ctx.activeTools.map((t) => t.name),
|
|
67
|
+
});
|
|
68
|
+
span.setAttribute('message_count', result.value.length);
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=assemble.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assemble.js","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/assemble.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
import type { ISpan } from '../../tracer/types.js';
|
|
25
|
+
import type { PipelineContext } from '../context.js';
|
|
26
|
+
import type { IStageHandler } from '../stage-handler.js';
|
|
27
|
+
export declare class BuildToolQueryHandler implements IStageHandler {
|
|
28
|
+
execute(ctx: PipelineContext, config: Record<string, unknown>, span: ISpan): Promise<boolean>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=build-tool-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-tool-query.d.ts","sourceRoot":"","sources":["../../../../src/smart-agent/pipeline/handlers/build-tool-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;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,qBAAsB,YAAW,aAAa;IACnD,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,OAAO,CAAC;CA8DpB"}
|