@kilnai/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/circuit-breaker.d.ts +26 -0
- package/dist/agents/circuit-breaker.d.ts.map +1 -0
- package/dist/agents/circuit-breaker.js +90 -0
- package/dist/agents/circuit-breaker.js.map +1 -0
- package/dist/agents/context-compressor.d.ts +13 -0
- package/dist/agents/context-compressor.d.ts.map +1 -0
- package/dist/agents/context-compressor.js +21 -0
- package/dist/agents/context-compressor.js.map +1 -0
- package/dist/agents/index.d.ts +68 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +13 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/infrastructure/anthropic.d.ts +24 -0
- package/dist/agents/infrastructure/anthropic.d.ts.map +1 -0
- package/dist/agents/infrastructure/anthropic.js +226 -0
- package/dist/agents/infrastructure/anthropic.js.map +1 -0
- package/dist/agents/infrastructure/deepseek.d.ts +10 -0
- package/dist/agents/infrastructure/deepseek.d.ts.map +1 -0
- package/dist/agents/infrastructure/deepseek.js +14 -0
- package/dist/agents/infrastructure/deepseek.js.map +1 -0
- package/dist/agents/infrastructure/ollama.d.ts +20 -0
- package/dist/agents/infrastructure/ollama.d.ts.map +1 -0
- package/dist/agents/infrastructure/ollama.js +128 -0
- package/dist/agents/infrastructure/ollama.js.map +1 -0
- package/dist/agents/infrastructure/openai-compat.d.ts +25 -0
- package/dist/agents/infrastructure/openai-compat.d.ts.map +1 -0
- package/dist/agents/infrastructure/openai-compat.js +211 -0
- package/dist/agents/infrastructure/openai-compat.js.map +1 -0
- package/dist/agents/infrastructure/openai.d.ts +12 -0
- package/dist/agents/infrastructure/openai.d.ts.map +1 -0
- package/dist/agents/infrastructure/openai.js +16 -0
- package/dist/agents/infrastructure/openai.js.map +1 -0
- package/dist/agents/infrastructure/retry.d.ts +10 -0
- package/dist/agents/infrastructure/retry.d.ts.map +1 -0
- package/dist/agents/infrastructure/retry.js +22 -0
- package/dist/agents/infrastructure/retry.js.map +1 -0
- package/dist/agents/mcp-client.d.ts +22 -0
- package/dist/agents/mcp-client.d.ts.map +1 -0
- package/dist/agents/mcp-client.js +104 -0
- package/dist/agents/mcp-client.js.map +1 -0
- package/dist/agents/model-pricing.d.ts +9 -0
- package/dist/agents/model-pricing.d.ts.map +1 -0
- package/dist/agents/model-pricing.js +17 -0
- package/dist/agents/model-pricing.js.map +1 -0
- package/dist/agents/provider-registry.d.ts +25 -0
- package/dist/agents/provider-registry.d.ts.map +1 -0
- package/dist/agents/provider-registry.js +62 -0
- package/dist/agents/provider-registry.js.map +1 -0
- package/dist/agents/tool-cache.d.ts +13 -0
- package/dist/agents/tool-cache.d.ts.map +1 -0
- package/dist/agents/tool-cache.js +52 -0
- package/dist/agents/tool-cache.js.map +1 -0
- package/dist/agents/tool-rag.d.ts +15 -0
- package/dist/agents/tool-rag.d.ts.map +1 -0
- package/dist/agents/tool-rag.js +92 -0
- package/dist/agents/tool-rag.js.map +1 -0
- package/dist/agents/tool-registry.d.ts +29 -0
- package/dist/agents/tool-registry.d.ts.map +1 -0
- package/dist/agents/tool-registry.js +64 -0
- package/dist/agents/tool-registry.js.map +1 -0
- package/dist/cost/cost-tracker.d.ts +27 -0
- package/dist/cost/cost-tracker.d.ts.map +1 -0
- package/dist/cost/cost-tracker.js +103 -0
- package/dist/cost/cost-tracker.js.map +1 -0
- package/dist/cost/index.d.ts +30 -0
- package/dist/cost/index.d.ts.map +1 -0
- package/dist/cost/index.js +2 -0
- package/dist/cost/index.js.map +1 -0
- package/dist/domain/domain-package-adapter.d.ts +13 -0
- package/dist/domain/domain-package-adapter.d.ts.map +1 -0
- package/dist/domain/domain-package-adapter.js +66 -0
- package/dist/domain/domain-package-adapter.js.map +1 -0
- package/dist/domain/domain-registry.d.ts +26 -0
- package/dist/domain/domain-registry.d.ts.map +1 -0
- package/dist/domain/domain-registry.js +119 -0
- package/dist/domain/domain-registry.js.map +1 -0
- package/dist/domain/index.d.ts +22 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +30 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/yaml-parser.d.ts +18 -0
- package/dist/domain/yaml-parser.d.ts.map +1 -0
- package/dist/domain/yaml-parser.js +47 -0
- package/dist/domain/yaml-parser.js.map +1 -0
- package/dist/domain/yaml-schema.d.ts +26 -0
- package/dist/domain/yaml-schema.d.ts.map +1 -0
- package/dist/domain/yaml-schema.js +66 -0
- package/dist/domain/yaml-schema.js.map +1 -0
- package/dist/engine/composites/app.d.ts +39 -0
- package/dist/engine/composites/app.d.ts.map +1 -0
- package/dist/engine/composites/app.js +125 -0
- package/dist/engine/composites/app.js.map +1 -0
- package/dist/engine/composites/router.d.ts +20 -0
- package/dist/engine/composites/router.d.ts.map +1 -0
- package/dist/engine/composites/router.js +31 -0
- package/dist/engine/composites/router.js.map +1 -0
- package/dist/engine/composites/team.d.ts +36 -0
- package/dist/engine/composites/team.d.ts.map +1 -0
- package/dist/engine/composites/team.js +100 -0
- package/dist/engine/composites/team.js.map +1 -0
- package/dist/engine/domain/a2a-config.d.ts +53 -0
- package/dist/engine/domain/a2a-config.d.ts.map +1 -0
- package/dist/engine/domain/a2a-config.js +32 -0
- package/dist/engine/domain/a2a-config.js.map +1 -0
- package/dist/engine/domain/agent.d.ts +18 -0
- package/dist/engine/domain/agent.d.ts.map +1 -0
- package/dist/engine/domain/agent.js +4 -0
- package/dist/engine/domain/agent.js.map +1 -0
- package/dist/engine/domain/capability.d.ts +24 -0
- package/dist/engine/domain/capability.d.ts.map +1 -0
- package/dist/engine/domain/capability.js +3 -0
- package/dist/engine/domain/capability.js.map +1 -0
- package/dist/engine/domain/channel.d.ts +37 -0
- package/dist/engine/domain/channel.d.ts.map +1 -0
- package/dist/engine/domain/channel.js +4 -0
- package/dist/engine/domain/channel.js.map +1 -0
- package/dist/engine/domain/chunker.d.ts +22 -0
- package/dist/engine/domain/chunker.d.ts.map +1 -0
- package/dist/engine/domain/chunker.js +3 -0
- package/dist/engine/domain/chunker.js.map +1 -0
- package/dist/engine/domain/content.d.ts +57 -0
- package/dist/engine/domain/content.d.ts.map +1 -0
- package/dist/engine/domain/content.js +63 -0
- package/dist/engine/domain/content.js.map +1 -0
- package/dist/engine/domain/cron.d.ts +15 -0
- package/dist/engine/domain/cron.d.ts.map +1 -0
- package/dist/engine/domain/cron.js +114 -0
- package/dist/engine/domain/cron.js.map +1 -0
- package/dist/engine/domain/embedding.d.ts +9 -0
- package/dist/engine/domain/embedding.d.ts.map +1 -0
- package/dist/engine/domain/embedding.js +4 -0
- package/dist/engine/domain/embedding.js.map +1 -0
- package/dist/engine/domain/eval-config.d.ts +36 -0
- package/dist/engine/domain/eval-config.d.ts.map +1 -0
- package/dist/engine/domain/eval-config.js +155 -0
- package/dist/engine/domain/eval-config.js.map +1 -0
- package/dist/engine/domain/knowledge-config.d.ts +34 -0
- package/dist/engine/domain/knowledge-config.d.ts.map +1 -0
- package/dist/engine/domain/knowledge-config.js +62 -0
- package/dist/engine/domain/knowledge-config.js.map +1 -0
- package/dist/engine/domain/mcp-config.d.ts +15 -0
- package/dist/engine/domain/mcp-config.d.ts.map +1 -0
- package/dist/engine/domain/mcp-config.js +26 -0
- package/dist/engine/domain/mcp-config.js.map +1 -0
- package/dist/engine/domain/memory.d.ts +17 -0
- package/dist/engine/domain/memory.d.ts.map +1 -0
- package/dist/engine/domain/memory.js +4 -0
- package/dist/engine/domain/memory.js.map +1 -0
- package/dist/engine/domain/modality.d.ts +5 -0
- package/dist/engine/domain/modality.d.ts.map +1 -0
- package/dist/engine/domain/modality.js +19 -0
- package/dist/engine/domain/modality.js.map +1 -0
- package/dist/engine/domain/orchestrator-config.d.ts +11 -0
- package/dist/engine/domain/orchestrator-config.d.ts.map +1 -0
- package/dist/engine/domain/orchestrator-config.js +4 -0
- package/dist/engine/domain/orchestrator-config.js.map +1 -0
- package/dist/engine/domain/prompt-assembler.d.ts +32 -0
- package/dist/engine/domain/prompt-assembler.d.ts.map +1 -0
- package/dist/engine/domain/prompt-assembler.js +60 -0
- package/dist/engine/domain/prompt-assembler.js.map +1 -0
- package/dist/engine/domain/safety-config.d.ts +51 -0
- package/dist/engine/domain/safety-config.d.ts.map +1 -0
- package/dist/engine/domain/safety-config.js +74 -0
- package/dist/engine/domain/safety-config.js.map +1 -0
- package/dist/engine/domain/speech-config.d.ts +53 -0
- package/dist/engine/domain/speech-config.d.ts.map +1 -0
- package/dist/engine/domain/speech-config.js +26 -0
- package/dist/engine/domain/speech-config.js.map +1 -0
- package/dist/engine/domain/task.d.ts +16 -0
- package/dist/engine/domain/task.d.ts.map +1 -0
- package/dist/engine/domain/task.js +4 -0
- package/dist/engine/domain/task.js.map +1 -0
- package/dist/engine/domain/tool-selection-config.d.ts +12 -0
- package/dist/engine/domain/tool-selection-config.d.ts.map +1 -0
- package/dist/engine/domain/tool-selection-config.js +22 -0
- package/dist/engine/domain/tool-selection-config.js.map +1 -0
- package/dist/engine/domain/trigger.d.ts +43 -0
- package/dist/engine/domain/trigger.d.ts.map +1 -0
- package/dist/engine/domain/trigger.js +39 -0
- package/dist/engine/domain/trigger.js.map +1 -0
- package/dist/engine/domain/vector-store.d.ts +27 -0
- package/dist/engine/domain/vector-store.d.ts.map +1 -0
- package/dist/engine/domain/vector-store.js +3 -0
- package/dist/engine/domain/vector-store.js.map +1 -0
- package/dist/engine/domain/workflow.d.ts +11 -0
- package/dist/engine/domain/workflow.d.ts.map +1 -0
- package/dist/engine/domain/workflow.js +4 -0
- package/dist/engine/domain/workflow.js.map +1 -0
- package/dist/engine/error-catalog.d.ts +8 -0
- package/dist/engine/error-catalog.d.ts.map +1 -0
- package/dist/engine/error-catalog.js +335 -0
- package/dist/engine/error-catalog.js.map +1 -0
- package/dist/engine/errors.d.ts +18 -0
- package/dist/engine/errors.d.ts.map +1 -0
- package/dist/engine/errors.js +20 -0
- package/dist/engine/errors.js.map +1 -0
- package/dist/engine/gateway/delegation-config.d.ts +52 -0
- package/dist/engine/gateway/delegation-config.d.ts.map +1 -0
- package/dist/engine/gateway/delegation-config.js +48 -0
- package/dist/engine/gateway/delegation-config.js.map +1 -0
- package/dist/engine/gateway/gateway-config.d.ts +33 -0
- package/dist/engine/gateway/gateway-config.d.ts.map +1 -0
- package/dist/engine/gateway/gateway-config.js +61 -0
- package/dist/engine/gateway/gateway-config.js.map +1 -0
- package/dist/engine/gateway/gateway-loader.d.ts +10 -0
- package/dist/engine/gateway/gateway-loader.d.ts.map +1 -0
- package/dist/engine/gateway/gateway-loader.js +150 -0
- package/dist/engine/gateway/gateway-loader.js.map +1 -0
- package/dist/engine/gateway/mode-b-config.d.ts +44 -0
- package/dist/engine/gateway/mode-b-config.d.ts.map +1 -0
- package/dist/engine/gateway/mode-b-config.js +45 -0
- package/dist/engine/gateway/mode-b-config.js.map +1 -0
- package/dist/engine/gateway/mode-b-loader.d.ts +14 -0
- package/dist/engine/gateway/mode-b-loader.d.ts.map +1 -0
- package/dist/engine/gateway/mode-b-loader.js +104 -0
- package/dist/engine/gateway/mode-b-loader.js.map +1 -0
- package/dist/engine/gateway/observability-config.d.ts +19 -0
- package/dist/engine/gateway/observability-config.d.ts.map +1 -0
- package/dist/engine/gateway/observability-config.js +27 -0
- package/dist/engine/gateway/observability-config.js.map +1 -0
- package/dist/engine/gateway/tenant-config.d.ts +59 -0
- package/dist/engine/gateway/tenant-config.d.ts.map +1 -0
- package/dist/engine/gateway/tenant-config.js +44 -0
- package/dist/engine/gateway/tenant-config.js.map +1 -0
- package/dist/engine/index.d.ts +49 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +27 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/loader/app-loader.d.ts +18 -0
- package/dist/engine/loader/app-loader.d.ts.map +1 -0
- package/dist/engine/loader/app-loader.js +947 -0
- package/dist/engine/loader/app-loader.js.map +1 -0
- package/dist/engine/loader/preset-loader.d.ts +13 -0
- package/dist/engine/loader/preset-loader.d.ts.map +1 -0
- package/dist/engine/loader/preset-loader.js +51 -0
- package/dist/engine/loader/preset-loader.js.map +1 -0
- package/dist/eval/dataset-loader.d.ts +3 -0
- package/dist/eval/dataset-loader.d.ts.map +1 -0
- package/dist/eval/dataset-loader.js +70 -0
- package/dist/eval/dataset-loader.js.map +1 -0
- package/dist/eval/experiment-comparator.d.ts +16 -0
- package/dist/eval/experiment-comparator.d.ts.map +1 -0
- package/dist/eval/experiment-comparator.js +34 -0
- package/dist/eval/experiment-comparator.js.map +1 -0
- package/dist/eval/experiment-runner.d.ts +20 -0
- package/dist/eval/experiment-runner.d.ts.map +1 -0
- package/dist/eval/experiment-runner.js +54 -0
- package/dist/eval/experiment-runner.js.map +1 -0
- package/dist/eval/index.d.ts +21 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +19 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/eval/scorer-factory.d.ts +4 -0
- package/dist/eval/scorer-factory.d.ts.map +1 -0
- package/dist/eval/scorer-factory.js +67 -0
- package/dist/eval/scorer-factory.js.map +1 -0
- package/dist/eval/scorers/coherence-scorer.d.ts +8 -0
- package/dist/eval/scorers/coherence-scorer.d.ts.map +1 -0
- package/dist/eval/scorers/coherence-scorer.js +22 -0
- package/dist/eval/scorers/coherence-scorer.js.map +1 -0
- package/dist/eval/scorers/composite-scorer.d.ts +8 -0
- package/dist/eval/scorers/composite-scorer.d.ts.map +1 -0
- package/dist/eval/scorers/composite-scorer.js +19 -0
- package/dist/eval/scorers/composite-scorer.js.map +1 -0
- package/dist/eval/scorers/contains-scorer.d.ts +8 -0
- package/dist/eval/scorers/contains-scorer.d.ts.map +1 -0
- package/dist/eval/scorers/contains-scorer.js +30 -0
- package/dist/eval/scorers/contains-scorer.js.map +1 -0
- package/dist/eval/scorers/cost-scorer.d.ts +8 -0
- package/dist/eval/scorers/cost-scorer.d.ts.map +1 -0
- package/dist/eval/scorers/cost-scorer.js +19 -0
- package/dist/eval/scorers/cost-scorer.js.map +1 -0
- package/dist/eval/scorers/custom-prompt-scorer.d.ts +9 -0
- package/dist/eval/scorers/custom-prompt-scorer.d.ts.map +1 -0
- package/dist/eval/scorers/custom-prompt-scorer.js +24 -0
- package/dist/eval/scorers/custom-prompt-scorer.js.map +1 -0
- package/dist/eval/scorers/exact-match-scorer.d.ts +6 -0
- package/dist/eval/scorers/exact-match-scorer.d.ts.map +1 -0
- package/dist/eval/scorers/exact-match-scorer.js +16 -0
- package/dist/eval/scorers/exact-match-scorer.js.map +1 -0
- package/dist/eval/scorers/faithfulness-scorer.d.ts +8 -0
- package/dist/eval/scorers/faithfulness-scorer.d.ts.map +1 -0
- package/dist/eval/scorers/faithfulness-scorer.js +27 -0
- package/dist/eval/scorers/faithfulness-scorer.js.map +1 -0
- package/dist/eval/scorers/hallucination-scorer.d.ts +8 -0
- package/dist/eval/scorers/hallucination-scorer.d.ts.map +1 -0
- package/dist/eval/scorers/hallucination-scorer.js +31 -0
- package/dist/eval/scorers/hallucination-scorer.js.map +1 -0
- package/dist/eval/scorers/json-validity-scorer.d.ts +8 -0
- package/dist/eval/scorers/json-validity-scorer.d.ts.map +1 -0
- package/dist/eval/scorers/json-validity-scorer.js +32 -0
- package/dist/eval/scorers/json-validity-scorer.js.map +1 -0
- package/dist/eval/scorers/latency-scorer.d.ts +8 -0
- package/dist/eval/scorers/latency-scorer.d.ts.map +1 -0
- package/dist/eval/scorers/latency-scorer.js +19 -0
- package/dist/eval/scorers/latency-scorer.js.map +1 -0
- package/dist/eval/scorers/length-scorer.d.ts +9 -0
- package/dist/eval/scorers/length-scorer.d.ts.map +1 -0
- package/dist/eval/scorers/length-scorer.js +26 -0
- package/dist/eval/scorers/length-scorer.js.map +1 -0
- package/dist/eval/scorers/parse-llm-response.d.ts +5 -0
- package/dist/eval/scorers/parse-llm-response.d.ts.map +1 -0
- package/dist/eval/scorers/parse-llm-response.js +13 -0
- package/dist/eval/scorers/parse-llm-response.js.map +1 -0
- package/dist/eval/scorers/relevance-scorer.d.ts +8 -0
- package/dist/eval/scorers/relevance-scorer.d.ts.map +1 -0
- package/dist/eval/scorers/relevance-scorer.js +23 -0
- package/dist/eval/scorers/relevance-scorer.js.map +1 -0
- package/dist/eval/scorers/toxicity-scorer.d.ts +8 -0
- package/dist/eval/scorers/toxicity-scorer.d.ts.map +1 -0
- package/dist/eval/scorers/toxicity-scorer.js +26 -0
- package/dist/eval/scorers/toxicity-scorer.js.map +1 -0
- package/dist/eval/types.d.ts +51 -0
- package/dist/eval/types.d.ts.map +1 -0
- package/dist/eval/types.js +3 -0
- package/dist/eval/types.js.map +1 -0
- package/dist/events/event-bus.d.ts +36 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/event-bus.js +116 -0
- package/dist/events/event-bus.js.map +1 -0
- package/dist/events/event-store.d.ts +11 -0
- package/dist/events/event-store.d.ts.map +1 -0
- package/dist/events/event-store.js +2 -0
- package/dist/events/event-store.js.map +1 -0
- package/dist/events/index.d.ts +295 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +48 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/trace.d.ts +30 -0
- package/dist/events/trace.d.ts.map +1 -0
- package/dist/events/trace.js +45 -0
- package/dist/events/trace.js.map +1 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/index.d.ts +10 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +9 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/knowledge/infrastructure/memory-vector-store.d.ts +12 -0
- package/dist/knowledge/infrastructure/memory-vector-store.d.ts.map +1 -0
- package/dist/knowledge/infrastructure/memory-vector-store.js +71 -0
- package/dist/knowledge/infrastructure/memory-vector-store.js.map +1 -0
- package/dist/knowledge/infrastructure/ollama-embedding.d.ts +15 -0
- package/dist/knowledge/infrastructure/ollama-embedding.d.ts.map +1 -0
- package/dist/knowledge/infrastructure/ollama-embedding.js +38 -0
- package/dist/knowledge/infrastructure/ollama-embedding.js.map +1 -0
- package/dist/knowledge/infrastructure/openai-embedding.d.ts +18 -0
- package/dist/knowledge/infrastructure/openai-embedding.d.ts.map +1 -0
- package/dist/knowledge/infrastructure/openai-embedding.js +66 -0
- package/dist/knowledge/infrastructure/openai-embedding.js.map +1 -0
- package/dist/knowledge/knowledge-capability.d.ts +15 -0
- package/dist/knowledge/knowledge-capability.d.ts.map +1 -0
- package/dist/knowledge/knowledge-capability.js +36 -0
- package/dist/knowledge/knowledge-capability.js.map +1 -0
- package/dist/knowledge/markdown-chunker.d.ts +8 -0
- package/dist/knowledge/markdown-chunker.d.ts.map +1 -0
- package/dist/knowledge/markdown-chunker.js +146 -0
- package/dist/knowledge/markdown-chunker.js.map +1 -0
- package/dist/knowledge/recursive-chunker.d.ts +8 -0
- package/dist/knowledge/recursive-chunker.d.ts.map +1 -0
- package/dist/knowledge/recursive-chunker.js +73 -0
- package/dist/knowledge/recursive-chunker.js.map +1 -0
- package/dist/knowledge/reranker.d.ts +5 -0
- package/dist/knowledge/reranker.d.ts.map +1 -0
- package/dist/knowledge/reranker.js +3 -0
- package/dist/knowledge/reranker.js.map +1 -0
- package/dist/knowledge/retrieval-pipeline.d.ts +26 -0
- package/dist/knowledge/retrieval-pipeline.d.ts.map +1 -0
- package/dist/knowledge/retrieval-pipeline.js +56 -0
- package/dist/knowledge/retrieval-pipeline.js.map +1 -0
- package/dist/memory/chunk-importer.d.ts +16 -0
- package/dist/memory/chunk-importer.d.ts.map +1 -0
- package/dist/memory/chunk-importer.js +58 -0
- package/dist/memory/chunk-importer.js.map +1 -0
- package/dist/memory/compactor.d.ts +59 -0
- package/dist/memory/compactor.d.ts.map +1 -0
- package/dist/memory/compactor.js +100 -0
- package/dist/memory/compactor.js.map +1 -0
- package/dist/memory/decay-curves.d.ts +33 -0
- package/dist/memory/decay-curves.d.ts.map +1 -0
- package/dist/memory/decay-curves.js +48 -0
- package/dist/memory/decay-curves.js.map +1 -0
- package/dist/memory/developer-identity.d.ts +7 -0
- package/dist/memory/developer-identity.d.ts.map +1 -0
- package/dist/memory/developer-identity.js +20 -0
- package/dist/memory/developer-identity.js.map +1 -0
- package/dist/memory/git-sync-manager.d.ts +28 -0
- package/dist/memory/git-sync-manager.d.ts.map +1 -0
- package/dist/memory/git-sync-manager.js +77 -0
- package/dist/memory/git-sync-manager.js.map +1 -0
- package/dist/memory/index.d.ts +46 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +11 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/memory-manager.d.ts +34 -0
- package/dist/memory/memory-manager.d.ts.map +1 -0
- package/dist/memory/memory-manager.js +151 -0
- package/dist/memory/memory-manager.js.map +1 -0
- package/dist/memory/project-store.d.ts +28 -0
- package/dist/memory/project-store.d.ts.map +1 -0
- package/dist/memory/project-store.js +159 -0
- package/dist/memory/project-store.js.map +1 -0
- package/dist/memory/sqlite-store.d.ts +41 -0
- package/dist/memory/sqlite-store.d.ts.map +1 -0
- package/dist/memory/sqlite-store.js +320 -0
- package/dist/memory/sqlite-store.js.map +1 -0
- package/dist/observability/index.d.ts +5 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +3 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/otel-exporter.d.ts +41 -0
- package/dist/observability/otel-exporter.d.ts.map +1 -0
- package/dist/observability/otel-exporter.js +166 -0
- package/dist/observability/otel-exporter.js.map +1 -0
- package/dist/observability/span-mapper.d.ts +24 -0
- package/dist/observability/span-mapper.d.ts.map +1 -0
- package/dist/observability/span-mapper.js +375 -0
- package/dist/observability/span-mapper.js.map +1 -0
- package/dist/orchestrator/checkpoint-store.d.ts +9 -0
- package/dist/orchestrator/checkpoint-store.d.ts.map +1 -0
- package/dist/orchestrator/checkpoint-store.js +2 -0
- package/dist/orchestrator/checkpoint-store.js.map +1 -0
- package/dist/orchestrator/checkpoint-types.d.ts +30 -0
- package/dist/orchestrator/checkpoint-types.d.ts.map +1 -0
- package/dist/orchestrator/checkpoint-types.js +2 -0
- package/dist/orchestrator/checkpoint-types.js.map +1 -0
- package/dist/orchestrator/guardrails.d.ts +23 -0
- package/dist/orchestrator/guardrails.d.ts.map +1 -0
- package/dist/orchestrator/guardrails.js +136 -0
- package/dist/orchestrator/guardrails.js.map +1 -0
- package/dist/orchestrator/index.d.ts +45 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +8 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/interrupt.d.ts +20 -0
- package/dist/orchestrator/interrupt.d.ts.map +1 -0
- package/dist/orchestrator/interrupt.js +4 -0
- package/dist/orchestrator/interrupt.js.map +1 -0
- package/dist/orchestrator/orchestrator.d.ts +170 -0
- package/dist/orchestrator/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator.js +509 -0
- package/dist/orchestrator/orchestrator.js.map +1 -0
- package/dist/orchestrator/phase-machine.d.ts +48 -0
- package/dist/orchestrator/phase-machine.d.ts.map +1 -0
- package/dist/orchestrator/phase-machine.js +176 -0
- package/dist/orchestrator/phase-machine.js.map +1 -0
- package/dist/orchestrator/schemas.d.ts +145 -0
- package/dist/orchestrator/schemas.d.ts.map +1 -0
- package/dist/orchestrator/schemas.js +126 -0
- package/dist/orchestrator/schemas.js.map +1 -0
- package/dist/orchestrator/sqlite-checkpoint-store.d.ts +15 -0
- package/dist/orchestrator/sqlite-checkpoint-store.d.ts.map +1 -0
- package/dist/orchestrator/sqlite-checkpoint-store.js +98 -0
- package/dist/orchestrator/sqlite-checkpoint-store.js.map +1 -0
- package/dist/orchestrator/strategies/index.d.ts +28 -0
- package/dist/orchestrator/strategies/index.d.ts.map +1 -0
- package/dist/orchestrator/strategies/index.js +20 -0
- package/dist/orchestrator/strategies/index.js.map +1 -0
- package/dist/orchestrator/strategies/sequential-strategy.d.ts +13 -0
- package/dist/orchestrator/strategies/sequential-strategy.d.ts.map +1 -0
- package/dist/orchestrator/strategies/sequential-strategy.js +29 -0
- package/dist/orchestrator/strategies/sequential-strategy.js.map +1 -0
- package/dist/orchestrator/strategies/supervisor-strategy.d.ts +43 -0
- package/dist/orchestrator/strategies/supervisor-strategy.d.ts.map +1 -0
- package/dist/orchestrator/strategies/supervisor-strategy.js +118 -0
- package/dist/orchestrator/strategies/supervisor-strategy.js.map +1 -0
- package/dist/orchestrator/strategies/swarm-strategy.d.ts +36 -0
- package/dist/orchestrator/strategies/swarm-strategy.d.ts.map +1 -0
- package/dist/orchestrator/strategies/swarm-strategy.js +126 -0
- package/dist/orchestrator/strategies/swarm-strategy.js.map +1 -0
- package/dist/package/index.d.ts +7 -0
- package/dist/package/index.d.ts.map +1 -0
- package/dist/package/index.js +6 -0
- package/dist/package/index.js.map +1 -0
- package/dist/package/security.d.ts +18 -0
- package/dist/package/security.d.ts.map +1 -0
- package/dist/package/security.js +110 -0
- package/dist/package/security.js.map +1 -0
- package/dist/package/types.d.ts +34 -0
- package/dist/package/types.d.ts.map +1 -0
- package/dist/package/types.js +4 -0
- package/dist/package/types.js.map +1 -0
- package/dist/package/yaml-parser.d.ts +22 -0
- package/dist/package/yaml-parser.d.ts.map +1 -0
- package/dist/package/yaml-parser.js +109 -0
- package/dist/package/yaml-parser.js.map +1 -0
- package/dist/package/yaml-schema.d.ts +42 -0
- package/dist/package/yaml-schema.d.ts.map +1 -0
- package/dist/package/yaml-schema.js +141 -0
- package/dist/package/yaml-schema.js.map +1 -0
- package/dist/safety/content-classifier.d.ts +31 -0
- package/dist/safety/content-classifier.d.ts.map +1 -0
- package/dist/safety/content-classifier.js +107 -0
- package/dist/safety/content-classifier.js.map +1 -0
- package/dist/safety/index.d.ts +10 -0
- package/dist/safety/index.d.ts.map +1 -0
- package/dist/safety/index.js +10 -0
- package/dist/safety/index.js.map +1 -0
- package/dist/safety/pii-scanner.d.ts +26 -0
- package/dist/safety/pii-scanner.d.ts.map +1 -0
- package/dist/safety/pii-scanner.js +82 -0
- package/dist/safety/pii-scanner.js.map +1 -0
- package/dist/safety/rails.d.ts +33 -0
- package/dist/safety/rails.d.ts.map +1 -0
- package/dist/safety/rails.js +134 -0
- package/dist/safety/rails.js.map +1 -0
- package/dist/safety/safety-pipeline.d.ts +41 -0
- package/dist/safety/safety-pipeline.d.ts.map +1 -0
- package/dist/safety/safety-pipeline.js +153 -0
- package/dist/safety/safety-pipeline.js.map +1 -0
- package/dist/safety/types.d.ts +38 -0
- package/dist/safety/types.d.ts.map +1 -0
- package/dist/safety/types.js +3 -0
- package/dist/safety/types.js.map +1 -0
- package/dist/sandbox/index.d.ts +17 -0
- package/dist/sandbox/index.d.ts.map +1 -0
- package/dist/sandbox/index.js +4 -0
- package/dist/sandbox/index.js.map +1 -0
- package/dist/sandbox/network-filter.d.ts +13 -0
- package/dist/sandbox/network-filter.d.ts.map +1 -0
- package/dist/sandbox/network-filter.js +43 -0
- package/dist/sandbox/network-filter.js.map +1 -0
- package/dist/sandbox/path-validator.d.ts +16 -0
- package/dist/sandbox/path-validator.d.ts.map +1 -0
- package/dist/sandbox/path-validator.js +47 -0
- package/dist/sandbox/path-validator.js.map +1 -0
- package/dist/sandbox/policies.d.ts +38 -0
- package/dist/sandbox/policies.d.ts.map +1 -0
- package/dist/sandbox/policies.js +145 -0
- package/dist/sandbox/policies.js.map +1 -0
- package/dist/security/audit-log.d.ts +17 -0
- package/dist/security/audit-log.d.ts.map +1 -0
- package/dist/security/audit-log.js +214 -0
- package/dist/security/audit-log.js.map +1 -0
- package/dist/security/guardian.d.ts +24 -0
- package/dist/security/guardian.d.ts.map +1 -0
- package/dist/security/guardian.js +177 -0
- package/dist/security/guardian.js.map +1 -0
- package/dist/security/index.d.ts +10 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +7 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/prompt-scanner.d.ts +23 -0
- package/dist/security/prompt-scanner.d.ts.map +1 -0
- package/dist/security/prompt-scanner.js +376 -0
- package/dist/security/prompt-scanner.js.map +1 -0
- package/dist/security/secret-store.d.ts +18 -0
- package/dist/security/secret-store.d.ts.map +1 -0
- package/dist/security/secret-store.js +123 -0
- package/dist/security/secret-store.js.map +1 -0
- package/dist/security/self-audit.d.ts +33 -0
- package/dist/security/self-audit.d.ts.map +1 -0
- package/dist/security/self-audit.js +142 -0
- package/dist/security/self-audit.js.map +1 -0
- package/dist/security/types.d.ts +107 -0
- package/dist/security/types.d.ts.map +1 -0
- package/dist/security/types.js +3 -0
- package/dist/security/types.js.map +1 -0
- package/dist/skill/index.d.ts +7 -0
- package/dist/skill/index.d.ts.map +1 -0
- package/dist/skill/index.js +4 -0
- package/dist/skill/index.js.map +1 -0
- package/dist/skill/skill-registry.d.ts +26 -0
- package/dist/skill/skill-registry.d.ts.map +1 -0
- package/dist/skill/skill-registry.js +81 -0
- package/dist/skill/skill-registry.js.map +1 -0
- package/dist/skill/types.d.ts +17 -0
- package/dist/skill/types.d.ts.map +1 -0
- package/dist/skill/types.js +2 -0
- package/dist/skill/types.js.map +1 -0
- package/dist/skill/yaml-parser.d.ts +18 -0
- package/dist/skill/yaml-parser.d.ts.map +1 -0
- package/dist/skill/yaml-parser.js +61 -0
- package/dist/skill/yaml-parser.js.map +1 -0
- package/dist/skill/yaml-schema.d.ts +20 -0
- package/dist/skill/yaml-schema.d.ts.map +1 -0
- package/dist/skill/yaml-schema.js +80 -0
- package/dist/skill/yaml-schema.js.map +1 -0
- package/dist/tree/batch-executor.d.ts +28 -0
- package/dist/tree/batch-executor.d.ts.map +1 -0
- package/dist/tree/batch-executor.js +78 -0
- package/dist/tree/batch-executor.js.map +1 -0
- package/dist/tree/index.d.ts +26 -0
- package/dist/tree/index.d.ts.map +1 -0
- package/dist/tree/index.js +3 -0
- package/dist/tree/index.js.map +1 -0
- package/dist/tree/task-tree.d.ts +74 -0
- package/dist/tree/task-tree.d.ts.map +1 -0
- package/dist/tree/task-tree.js +262 -0
- package/dist/tree/task-tree.js.map +1 -0
- package/dist/verification/coverage-parser.d.ts +6 -0
- package/dist/verification/coverage-parser.d.ts.map +1 -0
- package/dist/verification/coverage-parser.js +29 -0
- package/dist/verification/coverage-parser.js.map +1 -0
- package/dist/verification/gate-runner.d.ts +18 -0
- package/dist/verification/gate-runner.d.ts.map +1 -0
- package/dist/verification/gate-runner.js +63 -0
- package/dist/verification/gate-runner.js.map +1 -0
- package/dist/verification/index.d.ts +24 -0
- package/dist/verification/index.d.ts.map +1 -0
- package/dist/verification/index.js +4 -0
- package/dist/verification/index.js.map +1 -0
- package/dist/verification/verification-loop.d.ts +32 -0
- package/dist/verification/verification-loop.d.ts.map +1 -0
- package/dist/verification/verification-loop.js +71 -0
- package/dist/verification/verification-loop.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ExecutionStrategy, StrategyContext, StrategyHandler } from "./index.js";
|
|
2
|
+
import type { TaskNode } from "../../tree/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Sequential mode: select batches from the tree, execute via BatchExecutor,
|
|
5
|
+
* record evidence and status updates. Identical to the original Orchestrator
|
|
6
|
+
* runImplementLoop behavior.
|
|
7
|
+
*
|
|
8
|
+
* The first agent in the team's agents map is used for all tasks.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SequentialStrategy implements ExecutionStrategy {
|
|
11
|
+
execute(context: StrategyContext, handler: StrategyHandler): Promise<TaskNode[]>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=sequential-strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequential-strategy.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/strategies/sequential-strategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;GAMG;AACH,qBAAa,kBAAmB,YAAW,iBAAiB;IACpD,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAsBvF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Sequential strategy: default team execution mode
|
|
2
|
+
// Extracts existing runImplementLoop behavior from Orchestrator
|
|
3
|
+
/**
|
|
4
|
+
* Sequential mode: select batches from the tree, execute via BatchExecutor,
|
|
5
|
+
* record evidence and status updates. Identical to the original Orchestrator
|
|
6
|
+
* runImplementLoop behavior.
|
|
7
|
+
*
|
|
8
|
+
* The first agent in the team's agents map is used for all tasks.
|
|
9
|
+
*/
|
|
10
|
+
export class SequentialStrategy {
|
|
11
|
+
async execute(context, handler) {
|
|
12
|
+
const { team, tree, batchExecutor } = context;
|
|
13
|
+
const defaultAgent = Object.keys(team.agents)[0] ?? "worker";
|
|
14
|
+
while (!tree.isComplete) {
|
|
15
|
+
const batch = tree.selectBatch();
|
|
16
|
+
if (batch.length === 0)
|
|
17
|
+
break;
|
|
18
|
+
const results = await batchExecutor.execute(batch, (task, workerIndex) => handler(task, workerIndex, defaultAgent));
|
|
19
|
+
for (const result of results) {
|
|
20
|
+
for (const evidence of result.evidence) {
|
|
21
|
+
tree.addEvidence(result.taskId, evidence);
|
|
22
|
+
}
|
|
23
|
+
tree.updateStatus(result.taskId, result.success ? "supported" : "refuted");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return tree.allNodes;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=sequential-strategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequential-strategy.js","sourceRoot":"","sources":["../../../src/orchestrator/strategies/sequential-strategy.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,gEAAgE;AAKhE;;;;;;GAMG;AACH,MAAM,OAAO,kBAAkB;IAC7B,KAAK,CAAC,OAAO,CAAC,OAAwB,EAAE,OAAwB;QAC9D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;QAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;QAE7D,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAE9B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CACvE,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CACzC,CAAC;YAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC5C,CAAC;gBACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ExecutionStrategy, StrategyContext, StrategyHandler } from "./index.js";
|
|
2
|
+
import type { TaskNode } from "../../tree/index.js";
|
|
3
|
+
/** Manager's delegation decision */
|
|
4
|
+
export interface DelegationDecision {
|
|
5
|
+
readonly assignTo: string;
|
|
6
|
+
readonly instructions: string;
|
|
7
|
+
}
|
|
8
|
+
/** Manager's review of a worker's result */
|
|
9
|
+
export interface ReviewDecision {
|
|
10
|
+
readonly accepted: boolean;
|
|
11
|
+
readonly feedback?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Configuration for supervisor behavior */
|
|
14
|
+
export interface SupervisorConfig {
|
|
15
|
+
readonly maxRetriesPerTask: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Supervisor mode: manager agent receives all tasks, delegates to workers
|
|
19
|
+
* by name, and validates results.
|
|
20
|
+
*
|
|
21
|
+
* Flow:
|
|
22
|
+
* 1. Select batch from tree
|
|
23
|
+
* 2. For each task, call handler with manager agent name (manager decides delegation)
|
|
24
|
+
* 3. If the result output contains a delegation decision, call handler with the assigned worker
|
|
25
|
+
* 4. Record evidence and advance
|
|
26
|
+
*
|
|
27
|
+
* In practice, the handler callback is responsible for:
|
|
28
|
+
* - When called with the manager agent: returning a DelegationDecision as structured output
|
|
29
|
+
* - When called with a worker agent: executing the task
|
|
30
|
+
*
|
|
31
|
+
* The strategy orchestrates the delegation flow and emits handoff events.
|
|
32
|
+
*/
|
|
33
|
+
export declare class SupervisorStrategy implements ExecutionStrategy {
|
|
34
|
+
private readonly config;
|
|
35
|
+
constructor(config?: Partial<SupervisorConfig>);
|
|
36
|
+
execute(context: StrategyContext, handler: StrategyHandler): Promise<TaskNode[]>;
|
|
37
|
+
/**
|
|
38
|
+
* Parse a delegation decision from the manager's output.
|
|
39
|
+
* Tries to parse JSON; falls back to assigning to first worker.
|
|
40
|
+
*/
|
|
41
|
+
private parseDelegation;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=supervisor-strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervisor-strategy.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/strategies/supervisor-strategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,oCAAoC;AACpC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAMD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;gBAE9B,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAIxC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA2EtF;;;OAGG;IACH,OAAO,CAAC,eAAe;CAwBxB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
// Supervisor strategy: manager agent delegates tasks to workers
|
|
2
|
+
// Manager decides which worker handles each task, then reviews results
|
|
3
|
+
const DEFAULT_SUPERVISOR_CONFIG = {
|
|
4
|
+
maxRetriesPerTask: 2,
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Supervisor mode: manager agent receives all tasks, delegates to workers
|
|
8
|
+
* by name, and validates results.
|
|
9
|
+
*
|
|
10
|
+
* Flow:
|
|
11
|
+
* 1. Select batch from tree
|
|
12
|
+
* 2. For each task, call handler with manager agent name (manager decides delegation)
|
|
13
|
+
* 3. If the result output contains a delegation decision, call handler with the assigned worker
|
|
14
|
+
* 4. Record evidence and advance
|
|
15
|
+
*
|
|
16
|
+
* In practice, the handler callback is responsible for:
|
|
17
|
+
* - When called with the manager agent: returning a DelegationDecision as structured output
|
|
18
|
+
* - When called with a worker agent: executing the task
|
|
19
|
+
*
|
|
20
|
+
* The strategy orchestrates the delegation flow and emits handoff events.
|
|
21
|
+
*/
|
|
22
|
+
export class SupervisorStrategy {
|
|
23
|
+
config;
|
|
24
|
+
constructor(config) {
|
|
25
|
+
this.config = { ...DEFAULT_SUPERVISOR_CONFIG, ...config };
|
|
26
|
+
}
|
|
27
|
+
async execute(context, handler) {
|
|
28
|
+
const { team, tree, eventBus, sessionId } = context;
|
|
29
|
+
const managerKey = team.manager;
|
|
30
|
+
if (!managerKey) {
|
|
31
|
+
throw new Error("Supervisor strategy requires a manager agent");
|
|
32
|
+
}
|
|
33
|
+
const workerKeys = Object.keys(team.agents).filter((k) => k !== managerKey);
|
|
34
|
+
if (workerKeys.length === 0) {
|
|
35
|
+
throw new Error("Supervisor strategy requires at least one worker agent besides the manager");
|
|
36
|
+
}
|
|
37
|
+
while (!tree.isComplete) {
|
|
38
|
+
const batch = tree.selectBatch();
|
|
39
|
+
if (batch.length === 0)
|
|
40
|
+
break;
|
|
41
|
+
// Process tasks sequentially through the supervisor -- manager must see each task
|
|
42
|
+
for (const task of batch) {
|
|
43
|
+
let assigned = false;
|
|
44
|
+
let retries = 0;
|
|
45
|
+
while (!assigned && retries <= this.config.maxRetriesPerTask) {
|
|
46
|
+
// Step 1: Manager decides delegation
|
|
47
|
+
const managerResult = await handler(task, 0, managerKey);
|
|
48
|
+
// Parse delegation decision from manager output
|
|
49
|
+
const decision = this.parseDelegation(managerResult.output, workerKeys);
|
|
50
|
+
// Emit handoff request
|
|
51
|
+
const handoffRequest = {
|
|
52
|
+
type: "handoff_requested",
|
|
53
|
+
fromAgent: managerKey,
|
|
54
|
+
toAgent: decision.assignTo,
|
|
55
|
+
reason: decision.instructions,
|
|
56
|
+
timestamp: new Date(),
|
|
57
|
+
sessionId,
|
|
58
|
+
};
|
|
59
|
+
eventBus.emit(handoffRequest);
|
|
60
|
+
// Step 2: Worker executes task
|
|
61
|
+
const workerResult = await handler(task, retries + 1, decision.assignTo);
|
|
62
|
+
// Emit handoff completion
|
|
63
|
+
const handoffComplete = {
|
|
64
|
+
type: "handoff_completed",
|
|
65
|
+
fromAgent: managerKey,
|
|
66
|
+
toAgent: decision.assignTo,
|
|
67
|
+
accepted: workerResult.success,
|
|
68
|
+
timestamp: new Date(),
|
|
69
|
+
sessionId,
|
|
70
|
+
};
|
|
71
|
+
eventBus.emit(handoffComplete);
|
|
72
|
+
// Record evidence from worker
|
|
73
|
+
for (const evidence of workerResult.evidence) {
|
|
74
|
+
tree.addEvidence(task.id, evidence);
|
|
75
|
+
}
|
|
76
|
+
if (workerResult.success) {
|
|
77
|
+
tree.updateStatus(task.id, "supported");
|
|
78
|
+
assigned = true;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
retries++;
|
|
82
|
+
if (retries > this.config.maxRetriesPerTask) {
|
|
83
|
+
tree.updateStatus(task.id, "refuted");
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return tree.allNodes;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Parse a delegation decision from the manager's output.
|
|
93
|
+
* Tries to parse JSON; falls back to assigning to first worker.
|
|
94
|
+
*/
|
|
95
|
+
parseDelegation(output, workerKeys) {
|
|
96
|
+
try {
|
|
97
|
+
const parsed = JSON.parse(output);
|
|
98
|
+
if (typeof parsed === "object" &&
|
|
99
|
+
parsed !== null &&
|
|
100
|
+
typeof parsed.assignTo === "string" &&
|
|
101
|
+
workerKeys.includes(parsed.assignTo)) {
|
|
102
|
+
return {
|
|
103
|
+
assignTo: parsed.assignTo,
|
|
104
|
+
instructions: typeof parsed.instructions === "string" ? parsed.instructions : "",
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
// Not valid JSON -- fall through to default
|
|
110
|
+
}
|
|
111
|
+
// Default: assign to first available worker
|
|
112
|
+
return {
|
|
113
|
+
assignTo: workerKeys[0],
|
|
114
|
+
instructions: output,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=supervisor-strategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervisor-strategy.js","sourceRoot":"","sources":["../../../src/orchestrator/strategies/supervisor-strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ExecutionStrategy, StrategyContext, StrategyHandler } from "./index.js";
|
|
2
|
+
import type { TaskNode } from "../../tree/index.js";
|
|
3
|
+
/** Handoff request parsed from agent output */
|
|
4
|
+
export interface HandoffRequest {
|
|
5
|
+
readonly targetAgent: string;
|
|
6
|
+
readonly reason: string;
|
|
7
|
+
readonly context?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
/** Configuration for swarm behavior */
|
|
10
|
+
export interface SwarmConfig {
|
|
11
|
+
readonly maxHandoffDepth: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Swarm mode: agents hand control to each other via handoff capabilities.
|
|
15
|
+
* No central coordinator. Active agent tracked per-task.
|
|
16
|
+
*
|
|
17
|
+
* Flow:
|
|
18
|
+
* 1. Start with first agent in the agents map
|
|
19
|
+
* 2. Active agent processes the current task
|
|
20
|
+
* 3. If agent output indicates a handoff, control transfers to target agent
|
|
21
|
+
* 4. Continue until no more handoffs (agent completes without handoff)
|
|
22
|
+
*
|
|
23
|
+
* Cycle detection: track handoff chain, error if same agent seen twice in one task.
|
|
24
|
+
* Max handoff depth per task (configurable, default 10).
|
|
25
|
+
*/
|
|
26
|
+
export declare class SwarmStrategy implements ExecutionStrategy {
|
|
27
|
+
private readonly config;
|
|
28
|
+
constructor(config?: Partial<SwarmConfig>);
|
|
29
|
+
execute(context: StrategyContext, handler: StrategyHandler): Promise<TaskNode[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Parse a handoff request from agent output.
|
|
32
|
+
* Returns null if no handoff is indicated.
|
|
33
|
+
*/
|
|
34
|
+
private parseHandoff;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=swarm-strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swarm-strategy.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/strategies/swarm-strategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAMD;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAc,YAAW,iBAAiB;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;IAInC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAqFtF;;;OAGG;IACH,OAAO,CAAC,YAAY;CA0BrB"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
// Swarm strategy: agents hand control to each other via handoff capabilities
|
|
2
|
+
// No central coordinator. Active agent tracked per-task.
|
|
3
|
+
const DEFAULT_SWARM_CONFIG = {
|
|
4
|
+
maxHandoffDepth: 10,
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Swarm mode: agents hand control to each other via handoff capabilities.
|
|
8
|
+
* No central coordinator. Active agent tracked per-task.
|
|
9
|
+
*
|
|
10
|
+
* Flow:
|
|
11
|
+
* 1. Start with first agent in the agents map
|
|
12
|
+
* 2. Active agent processes the current task
|
|
13
|
+
* 3. If agent output indicates a handoff, control transfers to target agent
|
|
14
|
+
* 4. Continue until no more handoffs (agent completes without handoff)
|
|
15
|
+
*
|
|
16
|
+
* Cycle detection: track handoff chain, error if same agent seen twice in one task.
|
|
17
|
+
* Max handoff depth per task (configurable, default 10).
|
|
18
|
+
*/
|
|
19
|
+
export class SwarmStrategy {
|
|
20
|
+
config;
|
|
21
|
+
constructor(config) {
|
|
22
|
+
this.config = { ...DEFAULT_SWARM_CONFIG, ...config };
|
|
23
|
+
}
|
|
24
|
+
async execute(context, handler) {
|
|
25
|
+
const { team, tree, eventBus, sessionId } = context;
|
|
26
|
+
const agentKeys = Object.keys(team.agents);
|
|
27
|
+
if (agentKeys.length < 2) {
|
|
28
|
+
throw new Error("Swarm strategy requires at least 2 agents");
|
|
29
|
+
}
|
|
30
|
+
while (!tree.isComplete) {
|
|
31
|
+
const batch = tree.selectBatch();
|
|
32
|
+
if (batch.length === 0)
|
|
33
|
+
break;
|
|
34
|
+
for (const task of batch) {
|
|
35
|
+
try {
|
|
36
|
+
let activeAgent = agentKeys[0];
|
|
37
|
+
const visitedAgents = new Set();
|
|
38
|
+
let handoffCount = 0;
|
|
39
|
+
let taskCompleted = false;
|
|
40
|
+
while (!taskCompleted) {
|
|
41
|
+
// Cycle detection -- mark task as refuted instead of aborting batch
|
|
42
|
+
if (visitedAgents.has(activeAgent)) {
|
|
43
|
+
tree.updateStatus(task.id, "refuted");
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
visitedAgents.add(activeAgent);
|
|
47
|
+
// Depth check -- mark task as refuted instead of aborting batch
|
|
48
|
+
if (handoffCount >= this.config.maxHandoffDepth) {
|
|
49
|
+
tree.updateStatus(task.id, "refuted");
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
// Execute with active agent
|
|
53
|
+
const result = await handler(task, handoffCount, activeAgent);
|
|
54
|
+
// Record evidence
|
|
55
|
+
for (const evidence of result.evidence) {
|
|
56
|
+
tree.addEvidence(task.id, evidence);
|
|
57
|
+
}
|
|
58
|
+
// Check for handoff in the output
|
|
59
|
+
const handoff = this.parseHandoff(result.output, agentKeys);
|
|
60
|
+
if (handoff) {
|
|
61
|
+
// Emit handoff events
|
|
62
|
+
const handoffRequest = {
|
|
63
|
+
type: "handoff_requested",
|
|
64
|
+
fromAgent: activeAgent,
|
|
65
|
+
toAgent: handoff.targetAgent,
|
|
66
|
+
reason: handoff.reason,
|
|
67
|
+
context: handoff.context,
|
|
68
|
+
timestamp: new Date(),
|
|
69
|
+
sessionId,
|
|
70
|
+
};
|
|
71
|
+
eventBus.emit(handoffRequest);
|
|
72
|
+
const handoffComplete = {
|
|
73
|
+
type: "handoff_completed",
|
|
74
|
+
fromAgent: activeAgent,
|
|
75
|
+
toAgent: handoff.targetAgent,
|
|
76
|
+
accepted: true,
|
|
77
|
+
timestamp: new Date(),
|
|
78
|
+
sessionId,
|
|
79
|
+
};
|
|
80
|
+
eventBus.emit(handoffComplete);
|
|
81
|
+
activeAgent = handoff.targetAgent;
|
|
82
|
+
handoffCount++;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
// No handoff -- task is complete
|
|
86
|
+
tree.updateStatus(task.id, result.success ? "supported" : "refuted");
|
|
87
|
+
taskCompleted = true;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
// Handler error -- mark task as refuted, continue with remaining tasks
|
|
93
|
+
tree.updateStatus(task.id, "refuted");
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return tree.allNodes;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Parse a handoff request from agent output.
|
|
101
|
+
* Returns null if no handoff is indicated.
|
|
102
|
+
*/
|
|
103
|
+
parseHandoff(output, agentKeys) {
|
|
104
|
+
try {
|
|
105
|
+
const parsed = JSON.parse(output);
|
|
106
|
+
if (typeof parsed === "object" &&
|
|
107
|
+
parsed !== null &&
|
|
108
|
+
parsed.type === "handoff" &&
|
|
109
|
+
typeof parsed.targetAgent === "string" &&
|
|
110
|
+
agentKeys.includes(parsed.targetAgent)) {
|
|
111
|
+
return {
|
|
112
|
+
targetAgent: parsed.targetAgent,
|
|
113
|
+
reason: typeof parsed.reason === "string" ? parsed.reason : "",
|
|
114
|
+
context: typeof parsed.context === "object" && parsed.context !== null
|
|
115
|
+
? parsed.context
|
|
116
|
+
: undefined,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// Not valid JSON or not a handoff -- no handoff
|
|
122
|
+
}
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=swarm-strategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swarm-strategy.js","sourceRoot":"","sources":["../../../src/orchestrator/strategies/swarm-strategy.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,yDAAyD;AAkBzD,MAAM,oBAAoB,GAAgB;IACxC,eAAe,EAAE,EAAE;CACpB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,aAAa;IACP,MAAM,CAAc;IAErC,YAAY,MAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAwB,EAAE,OAAwB;QAC9D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,IAAI,WAAW,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;oBAChC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;oBACxC,IAAI,YAAY,GAAG,CAAC,CAAC;oBACrB,IAAI,aAAa,GAAG,KAAK,CAAC;oBAE1B,OAAO,CAAC,aAAa,EAAE,CAAC;wBACtB,oEAAoE;wBACpE,IAAI,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;4BACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;4BACtC,MAAM;wBACR,CAAC;wBACD,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;wBAE/B,gEAAgE;wBAChE,IAAI,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;4BAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;4BACtC,MAAM;wBACR,CAAC;wBAED,4BAA4B;wBAC5B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;wBAE9D,kBAAkB;wBAClB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;4BACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;wBACtC,CAAC;wBAED,kCAAkC;wBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;wBAE5D,IAAI,OAAO,EAAE,CAAC;4BACZ,sBAAsB;4BACtB,MAAM,cAAc,GAA0B;gCAC5C,IAAI,EAAE,mBAAmB;gCACzB,SAAS,EAAE,WAAW;gCACtB,OAAO,EAAE,OAAO,CAAC,WAAW;gCAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gCACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gCACxB,SAAS,EAAE,IAAI,IAAI,EAAE;gCACrB,SAAS;6BACV,CAAC;4BACF,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;4BAE9B,MAAM,eAAe,GAA0B;gCAC7C,IAAI,EAAE,mBAAmB;gCACzB,SAAS,EAAE,WAAW;gCACtB,OAAO,EAAE,OAAO,CAAC,WAAW;gCAC5B,QAAQ,EAAE,IAAI;gCACd,SAAS,EAAE,IAAI,IAAI,EAAE;gCACrB,SAAS;6BACV,CAAC;4BACF,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;4BAE/B,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;4BAClC,YAAY,EAAE,CAAC;wBACjB,CAAC;6BAAM,CAAC;4BACN,iCAAiC;4BACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;4BACrE,aAAa,GAAG,IAAI,CAAC;wBACvB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,uEAAuE;oBACvE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;OAGG;IACK,YAAY,CAClB,MAAc,EACd,SAA4B;QAE5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,IACE,OAAO,MAAM,KAAK,QAAQ;gBAC1B,MAAM,KAAK,IAAI;gBACf,MAAM,CAAC,IAAI,KAAK,SAAS;gBACzB,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;gBACtC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EACtC,CAAC;gBACD,OAAO;oBACL,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBAC9D,OAAO,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;wBACpE,CAAC,CAAC,MAAM,CAAC,OAAO;wBAChB,CAAC,CAAC,SAAS;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;QAClD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type { PackageManifest, SkillPackageManifest, PackageToolsConfig, PackageKnowledgeConfig, } from "./types.js";
|
|
2
|
+
export type { PackageYaml, PackageToolsYaml, PackageKnowledgeYaml } from "./yaml-schema.js";
|
|
3
|
+
export { validatePackageYaml } from "./yaml-schema.js";
|
|
4
|
+
export { PackageYamlError, parseSkillPackageYaml, loadSkillPackageYaml, } from "./yaml-parser.js";
|
|
5
|
+
export type { SecurityValidationResult } from "./security.js";
|
|
6
|
+
export { computeContentHash, validatePackageSecurity, applyDefaultAnnotations, validatePackageFiles, } from "./security.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/package/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Package: distribution infrastructure for domain and skill packages
|
|
2
|
+
// Handles versioning, bundling, security -- separate from domain config
|
|
3
|
+
export { validatePackageYaml } from "./yaml-schema.js";
|
|
4
|
+
export { PackageYamlError, parseSkillPackageYaml, loadSkillPackageYaml, } from "./yaml-parser.js";
|
|
5
|
+
export { computeContentHash, validatePackageSecurity, applyDefaultAnnotations, validatePackageFiles, } from "./security.js";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/package/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,wEAAwE;AAUxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CapabilityAnnotations } from "../engine/domain/capability.js";
|
|
2
|
+
/** Result of security validation on a package */
|
|
3
|
+
export interface SecurityValidationResult {
|
|
4
|
+
readonly valid: boolean;
|
|
5
|
+
readonly errors: readonly string[];
|
|
6
|
+
readonly warnings: readonly string[];
|
|
7
|
+
}
|
|
8
|
+
/** Compute SHA-256 hash of file contents */
|
|
9
|
+
export declare function computeContentHash(content: string): string;
|
|
10
|
+
/** Verify a file has not been tampered with */
|
|
11
|
+
export declare function verifyContentHash(content: string, expectedHash: string): boolean;
|
|
12
|
+
/** Validate a package for security compliance (lifecycle scripts + file extensions) */
|
|
13
|
+
export declare function validatePackageSecurity(packageJsonContent: string | null, fileList: readonly string[]): SecurityValidationResult;
|
|
14
|
+
/** Apply safe defaults to capability annotations -- unannotated tools default to destructive */
|
|
15
|
+
export declare function applyDefaultAnnotations(annotations?: CapabilityAnnotations | null): CapabilityAnnotations;
|
|
16
|
+
/** Validate package file paths for security violations */
|
|
17
|
+
export declare function validatePackageFiles(fileList: readonly string[]): SecurityValidationResult;
|
|
18
|
+
//# sourceMappingURL=security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/package/security.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,iDAAiD;AACjD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,4CAA4C;AAC5C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,+CAA+C;AAC/C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAEhF;AA0BD,uFAAuF;AACvF,wBAAgB,uBAAuB,CACrC,kBAAkB,EAAE,MAAM,GAAG,IAAI,EACjC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,wBAAwB,CAkC1B;AAED,gGAAgG;AAChG,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,qBAAqB,GAAG,IAAI,GAAG,qBAAqB,CASzG;AAMD,0DAA0D;AAC1D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,wBAAwB,CA6B1F"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// Package security: content hashing, lifecycle script validation, path traversal detection
|
|
2
|
+
// Moved from domain/ -- package-level concern, not domain config
|
|
3
|
+
import { createHash } from "node:crypto";
|
|
4
|
+
/** Compute SHA-256 hash of file contents */
|
|
5
|
+
export function computeContentHash(content) {
|
|
6
|
+
return createHash("sha256").update(content, "utf-8").digest("hex");
|
|
7
|
+
}
|
|
8
|
+
/** Verify a file has not been tampered with */
|
|
9
|
+
export function verifyContentHash(content, expectedHash) {
|
|
10
|
+
return computeContentHash(content) === expectedHash;
|
|
11
|
+
}
|
|
12
|
+
const FORBIDDEN_SCRIPTS = [
|
|
13
|
+
"preinstall",
|
|
14
|
+
"install",
|
|
15
|
+
"postinstall",
|
|
16
|
+
"preuninstall",
|
|
17
|
+
"uninstall",
|
|
18
|
+
"postuninstall",
|
|
19
|
+
"preprepare",
|
|
20
|
+
"prepare",
|
|
21
|
+
"postprepare",
|
|
22
|
+
"prepublish",
|
|
23
|
+
"prepublishOnly",
|
|
24
|
+
"postpublish",
|
|
25
|
+
];
|
|
26
|
+
const ALLOWED_EXTENSIONS = new Set([
|
|
27
|
+
".yaml",
|
|
28
|
+
".yml",
|
|
29
|
+
".md",
|
|
30
|
+
".ts",
|
|
31
|
+
".json",
|
|
32
|
+
".txt",
|
|
33
|
+
]);
|
|
34
|
+
/** Validate a package for security compliance (lifecycle scripts + file extensions) */
|
|
35
|
+
export function validatePackageSecurity(packageJsonContent, fileList) {
|
|
36
|
+
const errors = [];
|
|
37
|
+
const warnings = [];
|
|
38
|
+
// Check package.json for forbidden lifecycle scripts
|
|
39
|
+
if (packageJsonContent !== null) {
|
|
40
|
+
try {
|
|
41
|
+
const pkg = JSON.parse(packageJsonContent);
|
|
42
|
+
const scripts = pkg.scripts;
|
|
43
|
+
if (scripts && typeof scripts === "object") {
|
|
44
|
+
for (const script of FORBIDDEN_SCRIPTS) {
|
|
45
|
+
if (script in scripts) {
|
|
46
|
+
errors.push(`Forbidden lifecycle script "${script}" found in package.json`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
errors.push("Invalid package.json: failed to parse JSON");
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Check file extensions
|
|
56
|
+
for (const file of fileList) {
|
|
57
|
+
const ext = file.slice(file.lastIndexOf("."));
|
|
58
|
+
if (!ALLOWED_EXTENSIONS.has(ext)) {
|
|
59
|
+
warnings.push(`Non-standard file extension "${ext}" in ${file}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
valid: errors.length === 0,
|
|
64
|
+
errors,
|
|
65
|
+
warnings,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/** Apply safe defaults to capability annotations -- unannotated tools default to destructive */
|
|
69
|
+
export function applyDefaultAnnotations(annotations) {
|
|
70
|
+
if (!annotations) {
|
|
71
|
+
return { destructive: true, readOnly: false, idempotent: false };
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
destructive: annotations.destructive ?? true,
|
|
75
|
+
readOnly: annotations.readOnly ?? false,
|
|
76
|
+
idempotent: annotations.idempotent ?? false,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
const PATH_TRAVERSAL_PATTERN = /(^|[\\/])\.\.($|[\\/])/;
|
|
80
|
+
const ABSOLUTE_UNIX_PATTERN = /^\//;
|
|
81
|
+
const ABSOLUTE_WINDOWS_PATTERN = /^[A-Za-z]:\\/;
|
|
82
|
+
/** Validate package file paths for security violations */
|
|
83
|
+
export function validatePackageFiles(fileList) {
|
|
84
|
+
const errors = [];
|
|
85
|
+
const warnings = [];
|
|
86
|
+
for (const file of fileList) {
|
|
87
|
+
if (PATH_TRAVERSAL_PATTERN.test(file)) {
|
|
88
|
+
errors.push(`Path traversal detected in "${file}"`);
|
|
89
|
+
}
|
|
90
|
+
if (ABSOLUTE_UNIX_PATTERN.test(file)) {
|
|
91
|
+
errors.push(`Absolute path detected: "${file}"`);
|
|
92
|
+
}
|
|
93
|
+
if (ABSOLUTE_WINDOWS_PATTERN.test(file)) {
|
|
94
|
+
errors.push(`Absolute path detected: "${file}"`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Warn about non-standard extensions
|
|
98
|
+
for (const file of fileList) {
|
|
99
|
+
const ext = file.slice(file.lastIndexOf("."));
|
|
100
|
+
if (!ALLOWED_EXTENSIONS.has(ext)) {
|
|
101
|
+
warnings.push(`Non-standard file extension "${ext}" in ${file}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
valid: errors.length === 0,
|
|
106
|
+
errors,
|
|
107
|
+
warnings,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/package/security.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { DomainConfig } from "../domain/index.js";
|
|
2
|
+
import type { SkillConfig } from "../skill/types.js";
|
|
3
|
+
/** MCP server tools configuration for a package */
|
|
4
|
+
export interface PackageToolsConfig {
|
|
5
|
+
readonly server: string;
|
|
6
|
+
}
|
|
7
|
+
/** Knowledge file references for a package */
|
|
8
|
+
export interface PackageKnowledgeConfig {
|
|
9
|
+
readonly examples?: string;
|
|
10
|
+
readonly gates?: string;
|
|
11
|
+
}
|
|
12
|
+
/** Base manifest for any installable package */
|
|
13
|
+
export interface PackageManifest {
|
|
14
|
+
readonly name: string;
|
|
15
|
+
readonly type: "domain" | "skill";
|
|
16
|
+
readonly version: string;
|
|
17
|
+
readonly author: string;
|
|
18
|
+
readonly contentHash: string;
|
|
19
|
+
readonly installPath: string;
|
|
20
|
+
}
|
|
21
|
+
/** Manifest for an installed domain package */
|
|
22
|
+
export interface DomainPackageManifest extends PackageManifest {
|
|
23
|
+
readonly type: "domain";
|
|
24
|
+
readonly config: DomainConfig;
|
|
25
|
+
readonly skills: readonly string[];
|
|
26
|
+
readonly tools: PackageToolsConfig | null;
|
|
27
|
+
readonly knowledge: PackageKnowledgeConfig | null;
|
|
28
|
+
}
|
|
29
|
+
/** Manifest for an installed skill package */
|
|
30
|
+
export interface SkillPackageManifest extends PackageManifest {
|
|
31
|
+
readonly type: "skill";
|
|
32
|
+
readonly skill: SkillConfig;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/package/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,+CAA+C;AAC/C,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACnD;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/package/types.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,8FAA8F"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { KilnError } from "../engine/errors.js";
|
|
2
|
+
import type { DomainPackageManifest, SkillPackageManifest } from "./types.js";
|
|
3
|
+
export declare class PackageYamlError extends KilnError {
|
|
4
|
+
readonly errors: readonly {
|
|
5
|
+
field: string;
|
|
6
|
+
message: string;
|
|
7
|
+
}[];
|
|
8
|
+
readonly filePath?: string;
|
|
9
|
+
constructor(errors: readonly {
|
|
10
|
+
field: string;
|
|
11
|
+
message: string;
|
|
12
|
+
}[], filePath?: string);
|
|
13
|
+
}
|
|
14
|
+
/** Parse a YAML string into a DomainPackageManifest */
|
|
15
|
+
export declare function parseDomainPackageYaml(content: string, installPath: string, filePath?: string): DomainPackageManifest;
|
|
16
|
+
/** Parse a YAML string into a SkillPackageManifest */
|
|
17
|
+
export declare function parseSkillPackageYaml(content: string, installPath: string, filePath?: string): SkillPackageManifest;
|
|
18
|
+
/** Load a domain package YAML from disk */
|
|
19
|
+
export declare function loadDomainPackageYaml(filePath: string, installPath: string): DomainPackageManifest;
|
|
20
|
+
/** Load a skill package YAML from disk */
|
|
21
|
+
export declare function loadSkillPackageYaml(filePath: string, installPath: string): SkillPackageManifest;
|
|
22
|
+
//# sourceMappingURL=yaml-parser.d.ts.map
|