@backendkit-labs/agent-core 0.14.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/agent-discovery/AgentPackageLoader.d.ts +14 -0
- package/dist/agent-discovery/AgentPackageLoader.d.ts.map +1 -0
- package/dist/agent-discovery/AgentPackageLoader.js +78 -0
- package/dist/agent-discovery/AgentPackageLoader.js.map +1 -0
- package/dist/agent-discovery/RemoteAgentRegistry.d.ts +31 -0
- package/dist/agent-discovery/RemoteAgentRegistry.d.ts.map +1 -0
- package/dist/agent-discovery/RemoteAgentRegistry.js +103 -0
- package/dist/agent-discovery/RemoteAgentRegistry.js.map +1 -0
- package/dist/agent-discovery/discoverAgents.d.ts +18 -0
- package/dist/agent-discovery/discoverAgents.d.ts.map +1 -0
- package/dist/agent-discovery/discoverAgents.js +59 -0
- package/dist/agent-discovery/discoverAgents.js.map +1 -0
- package/dist/agent-discovery/index.d.ts +5 -0
- package/dist/agent-discovery/index.d.ts.map +1 -0
- package/dist/agent-discovery/index.js +12 -0
- package/dist/agent-discovery/index.js.map +1 -0
- package/dist/agent-discovery/types.d.ts +42 -0
- package/dist/agent-discovery/types.d.ts.map +1 -0
- package/dist/agent-discovery/types.js +3 -0
- package/dist/agent-discovery/types.js.map +1 -0
- package/dist/agent-memory/EpisodicMemory.d.ts +26 -0
- package/dist/agent-memory/EpisodicMemory.d.ts.map +1 -0
- package/dist/agent-memory/EpisodicMemory.js +83 -0
- package/dist/agent-memory/EpisodicMemory.js.map +1 -0
- package/dist/agent-memory/MemorySystem.d.ts +40 -0
- package/dist/agent-memory/MemorySystem.d.ts.map +1 -0
- package/dist/agent-memory/MemorySystem.js +75 -0
- package/dist/agent-memory/MemorySystem.js.map +1 -0
- package/dist/agent-memory/ProceduralMemory.d.ts +26 -0
- package/dist/agent-memory/ProceduralMemory.d.ts.map +1 -0
- package/dist/agent-memory/ProceduralMemory.js +104 -0
- package/dist/agent-memory/ProceduralMemory.js.map +1 -0
- package/dist/agent-memory/SemanticMemory.d.ts +21 -0
- package/dist/agent-memory/SemanticMemory.d.ts.map +1 -0
- package/dist/agent-memory/SemanticMemory.js +68 -0
- package/dist/agent-memory/SemanticMemory.js.map +1 -0
- package/dist/agent-memory/index.d.ts +9 -0
- package/dist/agent-memory/index.d.ts.map +1 -0
- package/dist/agent-memory/index.js +19 -0
- package/dist/agent-memory/index.js.map +1 -0
- package/dist/agent-memory/scoring.d.ts +10 -0
- package/dist/agent-memory/scoring.d.ts.map +1 -0
- package/dist/agent-memory/scoring.js +32 -0
- package/dist/agent-memory/scoring.js.map +1 -0
- package/dist/agent-memory/stores/InMemoryStore.d.ts +10 -0
- package/dist/agent-memory/stores/InMemoryStore.d.ts.map +1 -0
- package/dist/agent-memory/stores/InMemoryStore.js +25 -0
- package/dist/agent-memory/stores/InMemoryStore.js.map +1 -0
- package/dist/agent-memory/stores/JsonFileStore.d.ts +18 -0
- package/dist/agent-memory/stores/JsonFileStore.d.ts.map +1 -0
- package/dist/agent-memory/stores/JsonFileStore.js +61 -0
- package/dist/agent-memory/stores/JsonFileStore.js.map +1 -0
- package/dist/agent-memory/tools.d.ts +6 -0
- package/dist/agent-memory/tools.d.ts.map +1 -0
- package/dist/agent-memory/tools.js +74 -0
- package/dist/agent-memory/tools.js.map +1 -0
- package/dist/agent-memory/types.d.ts +75 -0
- package/dist/agent-memory/types.d.ts.map +1 -0
- package/dist/agent-memory/types.js +4 -0
- package/dist/agent-memory/types.js.map +1 -0
- package/dist/bootstrap/GlobalSeed.d.ts +46 -0
- package/dist/bootstrap/GlobalSeed.d.ts.map +1 -0
- package/dist/bootstrap/GlobalSeed.js +285 -0
- package/dist/bootstrap/GlobalSeed.js.map +1 -0
- package/dist/bootstrap/config.d.ts +24 -0
- package/dist/bootstrap/config.d.ts.map +1 -0
- package/dist/bootstrap/config.js +71 -0
- package/dist/bootstrap/config.js.map +1 -0
- package/dist/checkpoint/index.d.ts +17 -0
- package/dist/checkpoint/index.d.ts.map +1 -0
- package/dist/checkpoint/index.js +207 -0
- package/dist/checkpoint/index.js.map +1 -0
- package/dist/commands/SlashCommandRegistry.d.ts +98 -0
- package/dist/commands/SlashCommandRegistry.d.ts.map +1 -0
- package/dist/commands/SlashCommandRegistry.js +41 -0
- package/dist/commands/SlashCommandRegistry.js.map +1 -0
- package/dist/commands/builtin.d.ts +7 -0
- package/dist/commands/builtin.d.ts.map +1 -0
- package/dist/commands/builtin.js +694 -0
- package/dist/commands/builtin.js.map +1 -0
- package/dist/commands/index.d.ts +4 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +8 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/context/index.d.ts +8 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +8 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/pipeline.d.ts +46 -0
- package/dist/context/pipeline.d.ts.map +1 -0
- package/dist/context/pipeline.js +111 -0
- package/dist/context/pipeline.js.map +1 -0
- package/dist/context/stages/stage-instructions.d.ts +12 -0
- package/dist/context/stages/stage-instructions.d.ts.map +1 -0
- package/dist/context/stages/stage-instructions.js +76 -0
- package/dist/context/stages/stage-instructions.js.map +1 -0
- package/dist/context/stages/stage-lessons.d.ts +13 -0
- package/dist/context/stages/stage-lessons.d.ts.map +1 -0
- package/dist/context/stages/stage-lessons.js +83 -0
- package/dist/context/stages/stage-lessons.js.map +1 -0
- package/dist/context/stages/stage-manifest.d.ts +11 -0
- package/dist/context/stages/stage-manifest.d.ts.map +1 -0
- package/dist/context/stages/stage-manifest.js +62 -0
- package/dist/context/stages/stage-manifest.js.map +1 -0
- package/dist/context/stages/stage-project.d.ts +10 -0
- package/dist/context/stages/stage-project.d.ts.map +1 -0
- package/dist/context/stages/stage-project.js +55 -0
- package/dist/context/stages/stage-project.js.map +1 -0
- package/dist/context/stages/stage-session.d.ts +12 -0
- package/dist/context/stages/stage-session.d.ts.map +1 -0
- package/dist/context/stages/stage-session.js +69 -0
- package/dist/context/stages/stage-session.js.map +1 -0
- package/dist/delegation/DelegationBus.d.ts +40 -0
- package/dist/delegation/DelegationBus.d.ts.map +1 -0
- package/dist/delegation/DelegationBus.js +68 -0
- package/dist/delegation/DelegationBus.js.map +1 -0
- package/dist/engine/AgentEngine.d.ts +212 -0
- package/dist/engine/AgentEngine.d.ts.map +1 -0
- package/dist/engine/AgentEngine.js +1037 -0
- package/dist/engine/AgentEngine.js.map +1 -0
- package/dist/engine/AgentRegistry.d.ts +13 -0
- package/dist/engine/AgentRegistry.d.ts.map +1 -0
- package/dist/engine/AgentRegistry.js +37 -0
- package/dist/engine/AgentRegistry.js.map +1 -0
- package/dist/engine/IterationManager.d.ts +79 -0
- package/dist/engine/IterationManager.d.ts.map +1 -0
- package/dist/engine/IterationManager.js +103 -0
- package/dist/engine/IterationManager.js.map +1 -0
- package/dist/engine/ProviderRegistry.d.ts +10 -0
- package/dist/engine/ProviderRegistry.d.ts.map +1 -0
- package/dist/engine/ProviderRegistry.js +28 -0
- package/dist/engine/ProviderRegistry.js.map +1 -0
- package/dist/engine/ToolRegistry.d.ts +54 -0
- package/dist/engine/ToolRegistry.d.ts.map +1 -0
- package/dist/engine/ToolRegistry.js +75 -0
- package/dist/engine/ToolRegistry.js.map +1 -0
- package/dist/engine/createBaseEngine.d.ts +169 -0
- package/dist/engine/createBaseEngine.d.ts.map +1 -0
- package/dist/engine/createBaseEngine.js +91 -0
- package/dist/engine/createBaseEngine.js.map +1 -0
- package/dist/engine/qa-orchestrator.d.ts +56 -0
- package/dist/engine/qa-orchestrator.d.ts.map +1 -0
- package/dist/engine/qa-orchestrator.js +163 -0
- package/dist/engine/qa-orchestrator.js.map +1 -0
- package/dist/index.d.ts +83 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +163 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/MCPClientManager.d.ts +65 -0
- package/dist/mcp/MCPClientManager.d.ts.map +1 -0
- package/dist/mcp/MCPClientManager.js +211 -0
- package/dist/mcp/MCPClientManager.js.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +6 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/types.d.ts +121 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +3 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/memory/SessionMemory.d.ts +9 -0
- package/dist/memory/SessionMemory.d.ts.map +1 -0
- package/dist/memory/SessionMemory.js +20 -0
- package/dist/memory/SessionMemory.js.map +1 -0
- package/dist/observability/CostTracker.d.ts +19 -0
- package/dist/observability/CostTracker.d.ts.map +1 -0
- package/dist/observability/CostTracker.js +64 -0
- package/dist/observability/CostTracker.js.map +1 -0
- package/dist/observability/MetricsCollector.d.ts +17 -0
- package/dist/observability/MetricsCollector.d.ts.map +1 -0
- package/dist/observability/MetricsCollector.js +70 -0
- package/dist/observability/MetricsCollector.js.map +1 -0
- package/dist/observability/ObservabilityManager.d.ts +33 -0
- package/dist/observability/ObservabilityManager.d.ts.map +1 -0
- package/dist/observability/ObservabilityManager.js +107 -0
- package/dist/observability/ObservabilityManager.js.map +1 -0
- package/dist/observability/Tracer.d.ts +23 -0
- package/dist/observability/Tracer.d.ts.map +1 -0
- package/dist/observability/Tracer.js +65 -0
- package/dist/observability/Tracer.js.map +1 -0
- package/dist/observability/index.d.ts +7 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +14 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/types.d.ts +77 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +15 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/orchestration/audit/audit-ci-blocker.d.ts +31 -0
- package/dist/orchestration/audit/audit-ci-blocker.d.ts.map +1 -0
- package/dist/orchestration/audit/audit-ci-blocker.js +120 -0
- package/dist/orchestration/audit/audit-ci-blocker.js.map +1 -0
- package/dist/orchestration/audit/audit-finding-tracer.d.ts +33 -0
- package/dist/orchestration/audit/audit-finding-tracer.d.ts.map +1 -0
- package/dist/orchestration/audit/audit-finding-tracer.js +126 -0
- package/dist/orchestration/audit/audit-finding-tracer.js.map +1 -0
- package/dist/orchestration/audit/audit-lessons-learned.d.ts +27 -0
- package/dist/orchestration/audit/audit-lessons-learned.d.ts.map +1 -0
- package/dist/orchestration/audit/audit-lessons-learned.js +155 -0
- package/dist/orchestration/audit/audit-lessons-learned.js.map +1 -0
- package/dist/orchestration/audit/audit-pending-issues.d.ts +21 -0
- package/dist/orchestration/audit/audit-pending-issues.d.ts.map +1 -0
- package/dist/orchestration/audit/audit-pending-issues.js +110 -0
- package/dist/orchestration/audit/audit-pending-issues.js.map +1 -0
- package/dist/orchestration/audit/audit-reflection-bridge.d.ts +39 -0
- package/dist/orchestration/audit/audit-reflection-bridge.d.ts.map +1 -0
- package/dist/orchestration/audit/audit-reflection-bridge.js +65 -0
- package/dist/orchestration/audit/audit-reflection-bridge.js.map +1 -0
- package/dist/orchestration/audit/audit-report-renderer.d.ts +30 -0
- package/dist/orchestration/audit/audit-report-renderer.d.ts.map +1 -0
- package/dist/orchestration/audit/audit-report-renderer.js +249 -0
- package/dist/orchestration/audit/audit-report-renderer.js.map +1 -0
- package/dist/orchestration/audit/audit-report-version-manager.d.ts +52 -0
- package/dist/orchestration/audit/audit-report-version-manager.d.ts.map +1 -0
- package/dist/orchestration/audit/audit-report-version-manager.js +144 -0
- package/dist/orchestration/audit/audit-report-version-manager.js.map +1 -0
- package/dist/orchestration/audit/audit-silent-gates-buffer.d.ts +37 -0
- package/dist/orchestration/audit/audit-silent-gates-buffer.d.ts.map +1 -0
- package/dist/orchestration/audit/audit-silent-gates-buffer.js +129 -0
- package/dist/orchestration/audit/audit-silent-gates-buffer.js.map +1 -0
- package/dist/orchestration/audit/index.d.ts +17 -0
- package/dist/orchestration/audit/index.d.ts.map +1 -0
- package/dist/orchestration/audit/index.js +26 -0
- package/dist/orchestration/audit/index.js.map +1 -0
- package/dist/orchestration/audit/types.d.ts +79 -0
- package/dist/orchestration/audit/types.d.ts.map +1 -0
- package/dist/orchestration/audit/types.js +10 -0
- package/dist/orchestration/audit/types.js.map +1 -0
- package/dist/orchestration/audit-reporter.d.ts +133 -0
- package/dist/orchestration/audit-reporter.d.ts.map +1 -0
- package/dist/orchestration/audit-reporter.js +322 -0
- package/dist/orchestration/audit-reporter.js.map +1 -0
- package/dist/orchestration/config-loader.d.ts +51 -0
- package/dist/orchestration/config-loader.d.ts.map +1 -0
- package/dist/orchestration/config-loader.js +215 -0
- package/dist/orchestration/config-loader.js.map +1 -0
- package/dist/orchestration/domain-detector.d.ts +36 -0
- package/dist/orchestration/domain-detector.d.ts.map +1 -0
- package/dist/orchestration/domain-detector.js +157 -0
- package/dist/orchestration/domain-detector.js.map +1 -0
- package/dist/orchestration/fsm.d.ts +86 -0
- package/dist/orchestration/fsm.d.ts.map +1 -0
- package/dist/orchestration/fsm.js +223 -0
- package/dist/orchestration/fsm.js.map +1 -0
- package/dist/orchestration/gate-resolver.d.ts +42 -0
- package/dist/orchestration/gate-resolver.d.ts.map +1 -0
- package/dist/orchestration/gate-resolver.js +94 -0
- package/dist/orchestration/gate-resolver.js.map +1 -0
- package/dist/orchestration/index.d.ts +15 -0
- package/dist/orchestration/index.d.ts.map +1 -0
- package/dist/orchestration/index.js +32 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/intent-detector.d.ts +43 -0
- package/dist/orchestration/intent-detector.d.ts.map +1 -0
- package/dist/orchestration/intent-detector.js +249 -0
- package/dist/orchestration/intent-detector.js.map +1 -0
- package/dist/orchestration/keyword-match.d.ts +17 -0
- package/dist/orchestration/keyword-match.d.ts.map +1 -0
- package/dist/orchestration/keyword-match.js +26 -0
- package/dist/orchestration/keyword-match.js.map +1 -0
- package/dist/orchestration/llm-client-adapter.d.ts +11 -0
- package/dist/orchestration/llm-client-adapter.d.ts.map +1 -0
- package/dist/orchestration/llm-client-adapter.js +30 -0
- package/dist/orchestration/llm-client-adapter.js.map +1 -0
- package/dist/orchestration/orchestrator.d.ts +153 -0
- package/dist/orchestration/orchestrator.d.ts.map +1 -0
- package/dist/orchestration/orchestrator.js +471 -0
- package/dist/orchestration/orchestrator.js.map +1 -0
- package/dist/orchestration/policy-engine.d.ts +47 -0
- package/dist/orchestration/policy-engine.d.ts.map +1 -0
- package/dist/orchestration/policy-engine.js +262 -0
- package/dist/orchestration/policy-engine.js.map +1 -0
- package/dist/orchestration/risk-scorer.d.ts +38 -0
- package/dist/orchestration/risk-scorer.d.ts.map +1 -0
- package/dist/orchestration/risk-scorer.js +145 -0
- package/dist/orchestration/risk-scorer.js.map +1 -0
- package/dist/orchestration/task-context.d.ts +195 -0
- package/dist/orchestration/task-context.d.ts.map +1 -0
- package/dist/orchestration/task-context.js +160 -0
- package/dist/orchestration/task-context.js.map +1 -0
- package/dist/orchestration/types.d.ts +111 -0
- package/dist/orchestration/types.d.ts.map +1 -0
- package/dist/orchestration/types.js +37 -0
- package/dist/orchestration/types.js.map +1 -0
- package/dist/qa/index.d.ts +3 -0
- package/dist/qa/index.d.ts.map +1 -0
- package/dist/qa/index.js +6 -0
- package/dist/qa/index.js.map +1 -0
- package/dist/qa/qa-service.d.ts +30 -0
- package/dist/qa/qa-service.d.ts.map +1 -0
- package/dist/qa/qa-service.js +200 -0
- package/dist/qa/qa-service.js.map +1 -0
- package/dist/reflection/commands/domain-commands.d.ts +78 -0
- package/dist/reflection/commands/domain-commands.d.ts.map +1 -0
- package/dist/reflection/commands/domain-commands.js +203 -0
- package/dist/reflection/commands/domain-commands.js.map +1 -0
- package/dist/reflection/domain-registry.d.ts +104 -0
- package/dist/reflection/domain-registry.d.ts.map +1 -0
- package/dist/reflection/domain-registry.js +279 -0
- package/dist/reflection/domain-registry.js.map +1 -0
- package/dist/reflection/domains/agent-domain.d.ts +40 -0
- package/dist/reflection/domains/agent-domain.d.ts.map +1 -0
- package/dist/reflection/domains/agent-domain.js +161 -0
- package/dist/reflection/domains/agent-domain.js.map +1 -0
- package/dist/reflection/domains/audit-domain.d.ts +46 -0
- package/dist/reflection/domains/audit-domain.d.ts.map +1 -0
- package/dist/reflection/domains/audit-domain.js +241 -0
- package/dist/reflection/domains/audit-domain.js.map +1 -0
- package/dist/reflection/domains/bootstrap-domain.d.ts +40 -0
- package/dist/reflection/domains/bootstrap-domain.d.ts.map +1 -0
- package/dist/reflection/domains/bootstrap-domain.js +156 -0
- package/dist/reflection/domains/bootstrap-domain.js.map +1 -0
- package/dist/reflection/domains/commit-domain.d.ts +40 -0
- package/dist/reflection/domains/commit-domain.d.ts.map +1 -0
- package/dist/reflection/domains/commit-domain.js +174 -0
- package/dist/reflection/domains/commit-domain.js.map +1 -0
- package/dist/reflection/domains/test-domain.d.ts +40 -0
- package/dist/reflection/domains/test-domain.d.ts.map +1 -0
- package/dist/reflection/domains/test-domain.js +194 -0
- package/dist/reflection/domains/test-domain.js.map +1 -0
- package/dist/reflection/failure-catalog.d.ts +100 -0
- package/dist/reflection/failure-catalog.d.ts.map +1 -0
- package/dist/reflection/failure-catalog.js +269 -0
- package/dist/reflection/failure-catalog.js.map +1 -0
- package/dist/reflection/historical-loader.d.ts +105 -0
- package/dist/reflection/historical-loader.d.ts.map +1 -0
- package/dist/reflection/historical-loader.js +462 -0
- package/dist/reflection/historical-loader.js.map +1 -0
- package/dist/reflection/hooks/agent-hook.d.ts +72 -0
- package/dist/reflection/hooks/agent-hook.d.ts.map +1 -0
- package/dist/reflection/hooks/agent-hook.js +98 -0
- package/dist/reflection/hooks/agent-hook.js.map +1 -0
- package/dist/reflection/hooks/audit-hook.d.ts +72 -0
- package/dist/reflection/hooks/audit-hook.d.ts.map +1 -0
- package/dist/reflection/hooks/audit-hook.js +112 -0
- package/dist/reflection/hooks/audit-hook.js.map +1 -0
- package/dist/reflection/hooks/bootstrap-hook.d.ts +71 -0
- package/dist/reflection/hooks/bootstrap-hook.d.ts.map +1 -0
- package/dist/reflection/hooks/bootstrap-hook.js +97 -0
- package/dist/reflection/hooks/bootstrap-hook.js.map +1 -0
- package/dist/reflection/hooks/commit-hook.d.ts +63 -0
- package/dist/reflection/hooks/commit-hook.d.ts.map +1 -0
- package/dist/reflection/hooks/commit-hook.js +90 -0
- package/dist/reflection/hooks/commit-hook.js.map +1 -0
- package/dist/reflection/hooks/test-hook.d.ts +65 -0
- package/dist/reflection/hooks/test-hook.d.ts.map +1 -0
- package/dist/reflection/hooks/test-hook.js +99 -0
- package/dist/reflection/hooks/test-hook.js.map +1 -0
- package/dist/reflection/index.d.ts +19 -0
- package/dist/reflection/index.d.ts.map +1 -0
- package/dist/reflection/index.js +40 -0
- package/dist/reflection/index.js.map +1 -0
- package/dist/reflection/lessons-memo-generator.d.ts +60 -0
- package/dist/reflection/lessons-memo-generator.d.ts.map +1 -0
- package/dist/reflection/lessons-memo-generator.js +286 -0
- package/dist/reflection/lessons-memo-generator.js.map +1 -0
- package/dist/reflection/pattern-detector.d.ts +55 -0
- package/dist/reflection/pattern-detector.d.ts.map +1 -0
- package/dist/reflection/pattern-detector.js +137 -0
- package/dist/reflection/pattern-detector.js.map +1 -0
- package/dist/reflection/policy-promoter.d.ts +86 -0
- package/dist/reflection/policy-promoter.d.ts.map +1 -0
- package/dist/reflection/policy-promoter.js +382 -0
- package/dist/reflection/policy-promoter.js.map +1 -0
- package/dist/reflection/reflection-engine.d.ts +160 -0
- package/dist/reflection/reflection-engine.d.ts.map +1 -0
- package/dist/reflection/reflection-engine.js +352 -0
- package/dist/reflection/reflection-engine.js.map +1 -0
- package/dist/reflection/types.d.ts +106 -0
- package/dist/reflection/types.d.ts.map +1 -0
- package/dist/reflection/types.js +64 -0
- package/dist/reflection/types.js.map +1 -0
- package/dist/shared/llm/resilient-client.d.ts +40 -0
- package/dist/shared/llm/resilient-client.d.ts.map +1 -0
- package/dist/shared/llm/resilient-client.js +60 -0
- package/dist/shared/llm/resilient-client.js.map +1 -0
- package/dist/shared/utils/atomic-write.d.ts +7 -0
- package/dist/shared/utils/atomic-write.d.ts.map +1 -0
- package/dist/shared/utils/atomic-write.js +52 -0
- package/dist/shared/utils/atomic-write.js.map +1 -0
- package/dist/shared/utils/git.d.ts +2 -0
- package/dist/shared/utils/git.d.ts.map +1 -0
- package/dist/shared/utils/git.js +17 -0
- package/dist/shared/utils/git.js.map +1 -0
- package/dist/shared/utils/project-key.d.ts +4 -0
- package/dist/shared/utils/project-key.d.ts.map +1 -0
- package/dist/shared/utils/project-key.js +54 -0
- package/dist/shared/utils/project-key.js.map +1 -0
- package/dist/shared/utils/string-utils.d.ts +17 -0
- package/dist/shared/utils/string-utils.d.ts.map +1 -0
- package/dist/shared/utils/string-utils.js +37 -0
- package/dist/shared/utils/string-utils.js.map +1 -0
- package/dist/skills/activator.d.ts +27 -0
- package/dist/skills/activator.d.ts.map +1 -0
- package/dist/skills/activator.js +127 -0
- package/dist/skills/activator.js.map +1 -0
- package/dist/skills/builtins/global.d.ts +7 -0
- package/dist/skills/builtins/global.d.ts.map +1 -0
- package/dist/skills/builtins/global.js +208 -0
- package/dist/skills/builtins/global.js.map +1 -0
- package/dist/skills/builtins/go-pack.d.ts +7 -0
- package/dist/skills/builtins/go-pack.d.ts.map +1 -0
- package/dist/skills/builtins/go-pack.js +263 -0
- package/dist/skills/builtins/go-pack.js.map +1 -0
- package/dist/skills/builtins/java-pack.d.ts +7 -0
- package/dist/skills/builtins/java-pack.d.ts.map +1 -0
- package/dist/skills/builtins/java-pack.js +272 -0
- package/dist/skills/builtins/java-pack.js.map +1 -0
- package/dist/skills/builtins/kotlin-pack.d.ts +9 -0
- package/dist/skills/builtins/kotlin-pack.d.ts.map +1 -0
- package/dist/skills/builtins/kotlin-pack.js +292 -0
- package/dist/skills/builtins/kotlin-pack.js.map +1 -0
- package/dist/skills/builtins/node-pack.d.ts +7 -0
- package/dist/skills/builtins/node-pack.d.ts.map +1 -0
- package/dist/skills/builtins/node-pack.js +750 -0
- package/dist/skills/builtins/node-pack.js.map +1 -0
- package/dist/skills/builtins/python-pack.d.ts +7 -0
- package/dist/skills/builtins/python-pack.d.ts.map +1 -0
- package/dist/skills/builtins/python-pack.js +303 -0
- package/dist/skills/builtins/python-pack.js.map +1 -0
- package/dist/skills/index.d.ts +11 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +24 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/loader.d.ts +39 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +152 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/manager.d.ts +97 -0
- package/dist/skills/manager.d.ts.map +1 -0
- package/dist/skills/manager.js +296 -0
- package/dist/skills/manager.js.map +1 -0
- package/dist/skills/parse-md-skill.d.ts +14 -0
- package/dist/skills/parse-md-skill.d.ts.map +1 -0
- package/dist/skills/parse-md-skill.js +86 -0
- package/dist/skills/parse-md-skill.js.map +1 -0
- package/dist/skills/providers/github.d.ts +21 -0
- package/dist/skills/providers/github.d.ts.map +1 -0
- package/dist/skills/providers/github.js +146 -0
- package/dist/skills/providers/github.js.map +1 -0
- package/dist/skills/providers/index.d.ts +6 -0
- package/dist/skills/providers/index.d.ts.map +1 -0
- package/dist/skills/providers/index.js +12 -0
- package/dist/skills/providers/index.js.map +1 -0
- package/dist/skills/providers/local.d.ts +16 -0
- package/dist/skills/providers/local.d.ts.map +1 -0
- package/dist/skills/providers/local.js +91 -0
- package/dist/skills/providers/local.js.map +1 -0
- package/dist/skills/providers/obsidian.d.ts +31 -0
- package/dist/skills/providers/obsidian.d.ts.map +1 -0
- package/dist/skills/providers/obsidian.js +141 -0
- package/dist/skills/providers/obsidian.js.map +1 -0
- package/dist/skills/providers/skills-sh.d.ts +32 -0
- package/dist/skills/providers/skills-sh.d.ts.map +1 -0
- package/dist/skills/providers/skills-sh.js +53 -0
- package/dist/skills/providers/skills-sh.js.map +1 -0
- package/dist/skills/providers/types.d.ts +25 -0
- package/dist/skills/providers/types.d.ts.map +1 -0
- package/dist/skills/providers/types.js +3 -0
- package/dist/skills/providers/types.js.map +1 -0
- package/dist/skills/registry.d.ts +18 -0
- package/dist/skills/registry.d.ts.map +1 -0
- package/dist/skills/registry.js +45 -0
- package/dist/skills/registry.js.map +1 -0
- package/dist/skills/types.d.ts +66 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +3 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/tools/defineTool.d.ts +34 -0
- package/dist/tools/defineTool.d.ts.map +1 -0
- package/dist/tools/defineTool.js +63 -0
- package/dist/tools/defineTool.js.map +1 -0
- package/dist/transport/CallbackTransport.d.ts +12 -0
- package/dist/transport/CallbackTransport.d.ts.map +1 -0
- package/dist/transport/CallbackTransport.js +28 -0
- package/dist/transport/CallbackTransport.js.map +1 -0
- package/dist/transport/StdoutTransport.d.ts +9 -0
- package/dist/transport/StdoutTransport.d.ts.map +1 -0
- package/dist/transport/StdoutTransport.js +63 -0
- package/dist/transport/StdoutTransport.js.map +1 -0
- package/dist/transport/Transport.d.ts +8 -0
- package/dist/transport/Transport.d.ts.map +1 -0
- package/dist/transport/Transport.js +3 -0
- package/dist/transport/Transport.js.map +1 -0
- package/dist/triggers/EventBus.d.ts +14 -0
- package/dist/triggers/EventBus.d.ts.map +1 -0
- package/dist/triggers/EventBus.js +18 -0
- package/dist/triggers/EventBus.js.map +1 -0
- package/dist/triggers/TriggerManager.d.ts +28 -0
- package/dist/triggers/TriggerManager.d.ts.map +1 -0
- package/dist/triggers/TriggerManager.js +158 -0
- package/dist/triggers/TriggerManager.js.map +1 -0
- package/dist/triggers/WebhookServer.d.ts +23 -0
- package/dist/triggers/WebhookServer.d.ts.map +1 -0
- package/dist/triggers/WebhookServer.js +127 -0
- package/dist/triggers/WebhookServer.js.map +1 -0
- package/dist/triggers/createAutonomousAgent.d.ts +49 -0
- package/dist/triggers/createAutonomousAgent.d.ts.map +1 -0
- package/dist/triggers/createAutonomousAgent.js +42 -0
- package/dist/triggers/createAutonomousAgent.js.map +1 -0
- package/dist/triggers/index.d.ts +8 -0
- package/dist/triggers/index.d.ts.map +1 -0
- package/dist/triggers/index.js +12 -0
- package/dist/triggers/index.js.map +1 -0
- package/dist/triggers/types.d.ts +35 -0
- package/dist/triggers/types.d.ts.map +1 -0
- package/dist/triggers/types.js +3 -0
- package/dist/triggers/types.js.map +1 -0
- package/dist/types/index.d.ts +256 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/workflow/WorkflowBuilder.d.ts +22 -0
- package/dist/workflow/WorkflowBuilder.d.ts.map +1 -0
- package/dist/workflow/WorkflowBuilder.js +67 -0
- package/dist/workflow/WorkflowBuilder.js.map +1 -0
- package/dist/workflow/WorkflowRunner.d.ts +22 -0
- package/dist/workflow/WorkflowRunner.d.ts.map +1 -0
- package/dist/workflow/WorkflowRunner.js +97 -0
- package/dist/workflow/WorkflowRunner.js.map +1 -0
- package/dist/workflow/index.d.ts +5 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +10 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/types.d.ts +35 -0
- package/dist/workflow/types.d.ts.map +1 -0
- package/dist/workflow/types.js +3 -0
- package/dist/workflow/types.js.map +1 -0
- package/dist/workspace/index.d.ts +55 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +189 -0
- package/dist/workspace/index.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { Orchestrator } from './orchestrator';
|
|
2
|
+
export type { LLMChatClient } from './intent-detector';
|
|
3
|
+
export { detectIntent, enrichTaskWithIntent } from './intent-detector';
|
|
4
|
+
export { detectDomains, enrichTaskWithDomains } from './domain-detector';
|
|
5
|
+
export { calculateRisk, enrichTaskWithRisk } from './risk-scorer';
|
|
6
|
+
export { evaluatePolicies, applyPolicies } from './policy-engine';
|
|
7
|
+
export { TaskFSM } from './fsm';
|
|
8
|
+
export { AuditReporter } from './audit-reporter';
|
|
9
|
+
export type { OrchestratorConfig, OrchestrationResult, AgentCapability, CapabilityMatrix, AgentPipelinePhase, AgentPipelinePhaseType, } from './types';
|
|
10
|
+
export { defaultOrchestratorConfig } from './types';
|
|
11
|
+
export type { TaskContext, ActionType, RiskLevel, RiskFactors, TaskStatus, CommitPlan, ConventionalCommitType, DelegationRequest, DelegationResult, } from './task-context';
|
|
12
|
+
export { createTaskContext, touchTask, transitionTask, detectScopeFromFiles, } from './task-context';
|
|
13
|
+
export type { FSMTransitionResult } from './fsm';
|
|
14
|
+
export type { GateVeredict } from './audit';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,YAAY,EACR,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEpD,YAAY,EACR,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,oBAAoB,GACvB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.detectScopeFromFiles = exports.transitionTask = exports.touchTask = exports.createTaskContext = exports.defaultOrchestratorConfig = exports.AuditReporter = exports.TaskFSM = exports.applyPolicies = exports.evaluatePolicies = exports.enrichTaskWithRisk = exports.calculateRisk = exports.enrichTaskWithDomains = exports.detectDomains = exports.enrichTaskWithIntent = exports.detectIntent = exports.Orchestrator = void 0;
|
|
4
|
+
// Main orchestrator
|
|
5
|
+
var orchestrator_1 = require("./orchestrator");
|
|
6
|
+
Object.defineProperty(exports, "Orchestrator", { enumerable: true, get: function () { return orchestrator_1.Orchestrator; } });
|
|
7
|
+
// Pipeline components
|
|
8
|
+
var intent_detector_1 = require("./intent-detector");
|
|
9
|
+
Object.defineProperty(exports, "detectIntent", { enumerable: true, get: function () { return intent_detector_1.detectIntent; } });
|
|
10
|
+
Object.defineProperty(exports, "enrichTaskWithIntent", { enumerable: true, get: function () { return intent_detector_1.enrichTaskWithIntent; } });
|
|
11
|
+
var domain_detector_1 = require("./domain-detector");
|
|
12
|
+
Object.defineProperty(exports, "detectDomains", { enumerable: true, get: function () { return domain_detector_1.detectDomains; } });
|
|
13
|
+
Object.defineProperty(exports, "enrichTaskWithDomains", { enumerable: true, get: function () { return domain_detector_1.enrichTaskWithDomains; } });
|
|
14
|
+
var risk_scorer_1 = require("./risk-scorer");
|
|
15
|
+
Object.defineProperty(exports, "calculateRisk", { enumerable: true, get: function () { return risk_scorer_1.calculateRisk; } });
|
|
16
|
+
Object.defineProperty(exports, "enrichTaskWithRisk", { enumerable: true, get: function () { return risk_scorer_1.enrichTaskWithRisk; } });
|
|
17
|
+
var policy_engine_1 = require("./policy-engine");
|
|
18
|
+
Object.defineProperty(exports, "evaluatePolicies", { enumerable: true, get: function () { return policy_engine_1.evaluatePolicies; } });
|
|
19
|
+
Object.defineProperty(exports, "applyPolicies", { enumerable: true, get: function () { return policy_engine_1.applyPolicies; } });
|
|
20
|
+
var fsm_1 = require("./fsm");
|
|
21
|
+
Object.defineProperty(exports, "TaskFSM", { enumerable: true, get: function () { return fsm_1.TaskFSM; } });
|
|
22
|
+
// Audit
|
|
23
|
+
var audit_reporter_1 = require("./audit-reporter");
|
|
24
|
+
Object.defineProperty(exports, "AuditReporter", { enumerable: true, get: function () { return audit_reporter_1.AuditReporter; } });
|
|
25
|
+
var types_1 = require("./types");
|
|
26
|
+
Object.defineProperty(exports, "defaultOrchestratorConfig", { enumerable: true, get: function () { return types_1.defaultOrchestratorConfig; } });
|
|
27
|
+
var task_context_1 = require("./task-context");
|
|
28
|
+
Object.defineProperty(exports, "createTaskContext", { enumerable: true, get: function () { return task_context_1.createTaskContext; } });
|
|
29
|
+
Object.defineProperty(exports, "touchTask", { enumerable: true, get: function () { return task_context_1.touchTask; } });
|
|
30
|
+
Object.defineProperty(exports, "transitionTask", { enumerable: true, get: function () { return task_context_1.transitionTask; } });
|
|
31
|
+
Object.defineProperty(exports, "detectScopeFromFiles", { enumerable: true, get: function () { return task_context_1.detectScopeFromFiles; } });
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":";;;AAAA,oBAAoB;AACpB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAGrB,sBAAsB;AACtB,qDAAuE;AAA9D,+GAAA,YAAY,OAAA;AAAE,uHAAA,oBAAoB,OAAA;AAC3C,qDAAyE;AAAhE,gHAAA,aAAa,OAAA;AAAE,wHAAA,qBAAqB,OAAA;AAC7C,6CAAkE;AAAzD,4GAAA,aAAa,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAC1C,iDAAkE;AAAzD,iHAAA,gBAAgB,OAAA;AAAE,8GAAA,aAAa,OAAA;AACxC,6BAAgC;AAAvB,8FAAA,OAAO,OAAA;AAEhB,QAAQ;AACR,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAWtB,iCAAoD;AAA3C,kHAAA,yBAAyB,OAAA;AAalC,+CAKwB;AAJpB,iHAAA,iBAAiB,OAAA;AACjB,yGAAA,SAAS,OAAA;AACT,8GAAA,cAAc,OAAA;AACd,oHAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Intent Detector — Clasifica el input del usuario en un ActionType.
|
|
3
|
+
*
|
|
4
|
+
* Usa un enfoque de dos niveles:
|
|
5
|
+
* 1. Keyword scoring rápido (síncrono, sin LLM)
|
|
6
|
+
* 2. Clasificación semántica vía LLM cuando hay ambigüedad
|
|
7
|
+
*
|
|
8
|
+
* El detector transforma lenguaje natural ambiguo ("necesito mejorar la
|
|
9
|
+
* consistencia entre órdenes y pagos") en una acción formal como
|
|
10
|
+
* 'design' o 'implementation'.
|
|
11
|
+
*/
|
|
12
|
+
import { ActionType, TaskContext } from './task-context';
|
|
13
|
+
export interface LLMChatClient {
|
|
14
|
+
chat(messages: Array<{
|
|
15
|
+
role: string;
|
|
16
|
+
content: string;
|
|
17
|
+
}>, tools?: unknown, temperature?: number): Promise<{
|
|
18
|
+
content: string | null;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
export interface IntentDetectionResult {
|
|
22
|
+
actionType: ActionType;
|
|
23
|
+
confidence: number;
|
|
24
|
+
scores: Record<ActionType, number>;
|
|
25
|
+
method: 'keyword' | 'llm';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @description Detecta el tipo de acción a partir del input del usuario.
|
|
29
|
+
*
|
|
30
|
+
* Primero intenta clasificar con keywords (rápido, sin LLM).
|
|
31
|
+
* Si hay ambigüedad (múltiples acciones con score similar), usa LLM.
|
|
32
|
+
*
|
|
33
|
+
* @param input - Texto del usuario
|
|
34
|
+
* @param client - Cliente DeepSeek (opcional, solo para fallback LLM)
|
|
35
|
+
* @returns Resultado con el actionType detectado y nivel de confianza
|
|
36
|
+
*/
|
|
37
|
+
export declare function detectIntent(input: string, client?: LLMChatClient): Promise<IntentDetectionResult>;
|
|
38
|
+
/**
|
|
39
|
+
* @description Enriquce un TaskContext con el actionType detectado.
|
|
40
|
+
* Es el entry point principal para el orquestador.
|
|
41
|
+
*/
|
|
42
|
+
export declare function enrichTaskWithIntent(task: TaskContext, client?: LLMChatClient): Promise<TaskContext>;
|
|
43
|
+
//# sourceMappingURL=intent-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-detector.d.ts","sourceRoot":"","sources":["../../src/orchestration/intent-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAY5E,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CACxI;AAwGD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,EAAE,SAAS,GAAG,KAAK,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,qBAAqB,CAAC,CA4DhC;AAuED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,WAAW,EACjB,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC,CAQtB"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description Intent Detector — Clasifica el input del usuario en un ActionType.
|
|
4
|
+
*
|
|
5
|
+
* Usa un enfoque de dos niveles:
|
|
6
|
+
* 1. Keyword scoring rápido (síncrono, sin LLM)
|
|
7
|
+
* 2. Clasificación semántica vía LLM cuando hay ambigüedad
|
|
8
|
+
*
|
|
9
|
+
* El detector transforma lenguaje natural ambiguo ("necesito mejorar la
|
|
10
|
+
* consistencia entre órdenes y pagos") en una acción formal como
|
|
11
|
+
* 'design' o 'implementation'.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.detectIntent = detectIntent;
|
|
15
|
+
exports.enrichTaskWithIntent = enrichTaskWithIntent;
|
|
16
|
+
const retry_1 = require("@backendkit-labs/retry");
|
|
17
|
+
const keyword_match_1 = require("./keyword-match");
|
|
18
|
+
const LLM_RETRY = {
|
|
19
|
+
maxAttempts: 3,
|
|
20
|
+
backoff: { type: 'exponential', baseDelay: 500, maxDelay: 8_000, jitter: 'full' },
|
|
21
|
+
retryIf: (e) => e.type === 'network' || (e.type === 'http' && (e.status ?? 0) >= 500),
|
|
22
|
+
abortIf: (e) => e.type === 'http' && [401, 403].includes(e.status ?? 0),
|
|
23
|
+
};
|
|
24
|
+
const INTENT_KEYWORDS = {
|
|
25
|
+
design: [
|
|
26
|
+
{ words: ['diseña', 'diseñar', 'diseño', 'planifica', 'planificar', 'planea'], weight: 3 },
|
|
27
|
+
{ words: ['arquitectura', 'arquitectónico', 'estructura'], weight: 3 },
|
|
28
|
+
{ words: ['diagrama', 'c4', 'adr'], weight: 3 },
|
|
29
|
+
{ words: ['cómo debería', 'cómo implementar', 'qué patrón'], weight: 2 },
|
|
30
|
+
{ words: ['trade-off', 'comparar', 'alternativa'], weight: 2 },
|
|
31
|
+
{ words: ['bounded context', 'contexto del dominio', 'ddd'], weight: 3 },
|
|
32
|
+
{ words: ['event sourcing', 'cqrs', 'saga', 'outbox'], weight: 3 },
|
|
33
|
+
],
|
|
34
|
+
implementation: [
|
|
35
|
+
{ words: ['implementa', 'implementar', 'crea', 'crear', 'construye'], weight: 3 },
|
|
36
|
+
{ words: ['escribe', 'escribir', 'codifica', 'codificar'], weight: 2 },
|
|
37
|
+
{ words: ['endpoint', 'api', 'controlador', 'servicio'], weight: 2 },
|
|
38
|
+
{ words: ['componente', 'hook', 'useEffect', 'useState'], weight: 2 },
|
|
39
|
+
{ words: ['clase', 'interfaz', 'función', 'método'], weight: 1 },
|
|
40
|
+
{ words: ['agrega', 'agregar', 'añade', 'añadir'], weight: 2 },
|
|
41
|
+
{ words: ['configura', 'configurar'], weight: 1 },
|
|
42
|
+
],
|
|
43
|
+
review: [
|
|
44
|
+
{ words: ['revisa', 'revisar', 'revisión', 'review'], weight: 3 },
|
|
45
|
+
{ words: ['analiza', 'analizar', 'análisis'], weight: 2 },
|
|
46
|
+
{ words: ['código existente', 'código actual'], weight: 2 },
|
|
47
|
+
{ words: ['encuentra problemas', 'detecta errores'], weight: 2 },
|
|
48
|
+
{ words: ['code review', 'pull request', 'pr'], weight: 3 },
|
|
49
|
+
{ words: ['retroalimentación', 'feedback'], weight: 1 },
|
|
50
|
+
],
|
|
51
|
+
security_audit: [
|
|
52
|
+
{ words: ['audita', 'auditar', 'auditoría', 'auditoria'], weight: 3 },
|
|
53
|
+
{ words: ['seguridad', 'vulnerabilidad', 'owasp'], weight: 3 },
|
|
54
|
+
{ words: ['penetración', 'pentest', 'hacking'], weight: 3 },
|
|
55
|
+
{ words: ['jwt', 'token', 'autenticación', 'autenticacion'], weight: 2 },
|
|
56
|
+
{ words: ['cifrado', 'encriptación', 'hash', 'bcrypt'], weight: 2 },
|
|
57
|
+
{ words: ['xss', 'csrf', 'inyección', 'inyeccion', 'sql injection'], weight: 3 },
|
|
58
|
+
{ words: ['hardening', 'secrets', 'secretos'], weight: 2 },
|
|
59
|
+
],
|
|
60
|
+
documentation: [
|
|
61
|
+
{ words: ['documenta', 'documentar', 'documentación'], weight: 3 },
|
|
62
|
+
{ words: ['readme', 'readme.md', 'README'], weight: 3 },
|
|
63
|
+
{ words: ['comentario', 'comentarios', 'jsdoc'], weight: 2 },
|
|
64
|
+
{ words: ['manual', 'guía', 'tutorial', 'wiki'], weight: 2 },
|
|
65
|
+
{ words: ['swagger', 'openapi', 'api doc'], weight: 2 },
|
|
66
|
+
{ words: ['changelog', 'release notes'], weight: 2 },
|
|
67
|
+
],
|
|
68
|
+
refactor: [
|
|
69
|
+
{ words: ['refactoriza', 'refactorizar', 'refactor'], weight: 3 },
|
|
70
|
+
{ words: ['mejora', 'mejorar', 'optimiza', 'optimizar'], weight: 2 },
|
|
71
|
+
{ words: ['limpia', 'limpiar', 'clean code'], weight: 2 },
|
|
72
|
+
{ words: ['deuda técnica', 'technical debt'], weight: 3 },
|
|
73
|
+
{ words: ['simplifica', 'simplificar'], weight: 2 },
|
|
74
|
+
{ words: ['extrae', 'extraer', 'separar'], weight: 2 },
|
|
75
|
+
],
|
|
76
|
+
bugfix: [
|
|
77
|
+
{ words: ['corrige', 'corregir', 'corrección', 'correccion'], weight: 3 },
|
|
78
|
+
{ words: ['bug', 'error', 'fallo', 'issue'], weight: 3 },
|
|
79
|
+
{ words: ['arregla', 'arreglar', 'fix', 'hotfix'], weight: 3 },
|
|
80
|
+
{ words: ['no funciona', 'está roto', 'falla'], weight: 3 },
|
|
81
|
+
{ words: ['excepción', 'exception', 'stack trace'], weight: 2 },
|
|
82
|
+
{ words: ['null pointer', 'undefined', 'crash'], weight: 2 },
|
|
83
|
+
],
|
|
84
|
+
test: [
|
|
85
|
+
{ words: ['test', 'tests', 'testing', 'prueba', 'pruebas'], weight: 3 },
|
|
86
|
+
{ words: ['unitario', 'unitarios', 'unit test', 'integración', 'integration'], weight: 3 },
|
|
87
|
+
{ words: ['cobertura', 'coverage', 'tdd', 'bdd'], weight: 3 },
|
|
88
|
+
{ words: ['jest', 'vitest', 'playwright', 'cypress'], weight: 2 },
|
|
89
|
+
{ words: ['mock', 'stub', 'spy', 'fixture'], weight: 2 },
|
|
90
|
+
{ words: ['e2e', 'end to end', 'contrato', 'contract'], weight: 2 },
|
|
91
|
+
],
|
|
92
|
+
research: [
|
|
93
|
+
{ words: ['investiga', 'investigar', 'investigación'], weight: 3 },
|
|
94
|
+
{ words: ['explora', 'explorar', 'averigua'], weight: 2 },
|
|
95
|
+
{ words: ['qué es', 'cómo funciona', 'diferencia entre'], weight: 2 },
|
|
96
|
+
{ words: ['comparativa', 'comparación'], weight: 2 },
|
|
97
|
+
{ words: ['encuentra', 'busca', 'búsqueda'], weight: 1 },
|
|
98
|
+
],
|
|
99
|
+
optimize: [
|
|
100
|
+
{ words: ['optimiza', 'optimizar', 'optimización'], weight: 3 },
|
|
101
|
+
{ words: ['rendimiento', 'performance', 'lento', 'lentitud'], weight: 3 },
|
|
102
|
+
{ words: ['cuello de botella', 'bottleneck'], weight: 3 },
|
|
103
|
+
{ words: ['caché', 'cache', 'redis', 'memcached'], weight: 2 },
|
|
104
|
+
{ words: ['consulta lenta', 'slow query', 'índice', 'indice'], weight: 2 },
|
|
105
|
+
{ words: ['latencia', 'throughput', 'concurrencia'], weight: 2 },
|
|
106
|
+
],
|
|
107
|
+
deploy: [
|
|
108
|
+
{ words: ['despliega', 'desplegar', 'deploy'], weight: 3 },
|
|
109
|
+
{ words: ['docker', 'kubernetes', 'k8s', 'contenedor'], weight: 2 },
|
|
110
|
+
{ words: ['ci/cd', 'pipeline', 'github actions'], weight: 2 },
|
|
111
|
+
{ words: ['infraestructura', 'terraform', 'cloud'], weight: 2 },
|
|
112
|
+
{ words: ['release', 'versión', 'versión'], weight: 2 },
|
|
113
|
+
],
|
|
114
|
+
unknown: [],
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* @description Detecta el tipo de acción a partir del input del usuario.
|
|
118
|
+
*
|
|
119
|
+
* Primero intenta clasificar con keywords (rápido, sin LLM).
|
|
120
|
+
* Si hay ambigüedad (múltiples acciones con score similar), usa LLM.
|
|
121
|
+
*
|
|
122
|
+
* @param input - Texto del usuario
|
|
123
|
+
* @param client - Cliente DeepSeek (opcional, solo para fallback LLM)
|
|
124
|
+
* @returns Resultado con el actionType detectado y nivel de confianza
|
|
125
|
+
*/
|
|
126
|
+
async function detectIntent(input, client) {
|
|
127
|
+
const lower = input.toLowerCase();
|
|
128
|
+
const scores = computeKeywordScores(lower);
|
|
129
|
+
// Encontrar la mejor acción
|
|
130
|
+
const sorted = Object.entries(scores)
|
|
131
|
+
.filter(([action]) => action !== 'unknown')
|
|
132
|
+
.sort(([, a], [, b]) => b - a);
|
|
133
|
+
const best = sorted[0];
|
|
134
|
+
const second = sorted[1];
|
|
135
|
+
// Si no hay señal clara
|
|
136
|
+
if (!best || best[1] === 0) {
|
|
137
|
+
// Intentar con LLM antes de rendirse
|
|
138
|
+
if (client) {
|
|
139
|
+
try {
|
|
140
|
+
const llmResult = await classifyWithLLM(input, client);
|
|
141
|
+
return llmResult;
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return { actionType: 'implementation', confidence: 0.1, scores, method: 'keyword' };
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return { actionType: 'implementation', confidence: 0.1, scores, method: 'keyword' };
|
|
148
|
+
}
|
|
149
|
+
// Si hay un ganador claro (margen >= 2 puntos)
|
|
150
|
+
const margin = best[1] - (second?.[1] ?? 0);
|
|
151
|
+
if (margin >= 2) {
|
|
152
|
+
return {
|
|
153
|
+
actionType: best[0],
|
|
154
|
+
confidence: Math.min(1, best[1] / 15),
|
|
155
|
+
scores,
|
|
156
|
+
method: 'keyword',
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
// Ambigüedad: usar LLM si está disponible
|
|
160
|
+
if (client) {
|
|
161
|
+
try {
|
|
162
|
+
const llmResult = await classifyWithLLM(input, client);
|
|
163
|
+
return llmResult;
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
// Fallback: usar el mejor score aunque sea ambiguo
|
|
167
|
+
return {
|
|
168
|
+
actionType: best[0],
|
|
169
|
+
confidence: 0.5,
|
|
170
|
+
scores,
|
|
171
|
+
method: 'keyword',
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Sin LLM: devolver el mejor con confianza baja
|
|
176
|
+
return {
|
|
177
|
+
actionType: best[0],
|
|
178
|
+
confidence: 0.4,
|
|
179
|
+
scores,
|
|
180
|
+
method: 'keyword',
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Clasifica el intent usando el LLM cuando hay ambigüedad.
|
|
185
|
+
*/
|
|
186
|
+
async function classifyWithLLM(input, client) {
|
|
187
|
+
const actions = Object.keys(INTENT_KEYWORDS)
|
|
188
|
+
.filter(a => a !== 'unknown')
|
|
189
|
+
.join(', ');
|
|
190
|
+
const prompt = `Clasifica la siguiente solicitud en UNO de estos tipos de acción: ${actions}.
|
|
191
|
+
|
|
192
|
+
Responde ÚNICAMENTE con JSON: {"action":"<tipo>"}
|
|
193
|
+
|
|
194
|
+
Solicitud: "${input.slice(0, 500)}"`;
|
|
195
|
+
const result = await (0, retry_1.retry)(() => client.chat([{ role: 'user', content: prompt }], undefined, 0.0), LLM_RETRY);
|
|
196
|
+
const content = result.ok ? (result.value.content ?? '') : '';
|
|
197
|
+
const match = content.match(/"action"\s*:\s*"([\w-]+)"/);
|
|
198
|
+
const actionType = match?.[1] ?? 'unknown';
|
|
199
|
+
// Recalcular scores con el LLM como desempate
|
|
200
|
+
const scores = computeKeywordScores(input.toLowerCase());
|
|
201
|
+
if (actionType !== 'unknown') {
|
|
202
|
+
scores[actionType] = (scores[actionType] ?? 0) + 3; // bonus LLM
|
|
203
|
+
}
|
|
204
|
+
return {
|
|
205
|
+
actionType,
|
|
206
|
+
confidence: 0.7,
|
|
207
|
+
scores,
|
|
208
|
+
method: 'llm',
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Computa scores basados en keywords para cada acción.
|
|
213
|
+
* Usa word boundaries para palabras simples y coincidencia exacta para frases.
|
|
214
|
+
*
|
|
215
|
+
* El score de cada accion se capea en MAX_KEYWORD_SCORE para que textos largos
|
|
216
|
+
* con muchas keywords no acumulen valores arbitrariamente altos que opacan el
|
|
217
|
+
* margen de 2 puntos usado en detectIntent() para elegir ganador (H-006).
|
|
218
|
+
* El cap coincide con el denominador de la normalizacion de confianza (/ 15).
|
|
219
|
+
*/
|
|
220
|
+
const MAX_KEYWORD_SCORE = 15;
|
|
221
|
+
function computeKeywordScores(lower) {
|
|
222
|
+
const scores = {};
|
|
223
|
+
for (const [action, keywords] of Object.entries(INTENT_KEYWORDS)) {
|
|
224
|
+
let total = 0;
|
|
225
|
+
for (const kw of keywords) {
|
|
226
|
+
for (const word of kw.words) {
|
|
227
|
+
if ((0, keyword_match_1.matchesKeyword)(lower, word)) {
|
|
228
|
+
total += kw.weight;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
scores[action] = Math.min(total, MAX_KEYWORD_SCORE);
|
|
233
|
+
}
|
|
234
|
+
return scores;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* @description Enriquce un TaskContext con el actionType detectado.
|
|
238
|
+
* Es el entry point principal para el orquestador.
|
|
239
|
+
*/
|
|
240
|
+
async function enrichTaskWithIntent(task, client) {
|
|
241
|
+
const result = await detectIntent(task.rawPrompt, client);
|
|
242
|
+
return {
|
|
243
|
+
...task,
|
|
244
|
+
actionType: result.actionType,
|
|
245
|
+
status: 'classified',
|
|
246
|
+
updatedAt: new Date(),
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=intent-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-detector.js","sourceRoot":"","sources":["../../src/orchestration/intent-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Coincidencia de keywords compartida por los detectores del orquestador
|
|
3
|
+
* (intent-detector, risk-scorer, domain-detector).
|
|
4
|
+
*
|
|
5
|
+
* Antes esta funcion estaba duplicada byte-a-byte en tres modulos, con riesgo de
|
|
6
|
+
* deriva si uno cambiaba sin los otros (H-005). Es la unica fuente de verdad.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Verifica si un keyword aparece en el texto.
|
|
10
|
+
* - Palabras simples: con word boundary (`\b`), para evitar coincidencias parciales.
|
|
11
|
+
* - Frases (con espacios): como substring exacto, en minusculas.
|
|
12
|
+
*
|
|
13
|
+
* @param text Texto donde buscar (se compara case-insensitive).
|
|
14
|
+
* @param keyword Palabra o frase a buscar.
|
|
15
|
+
*/
|
|
16
|
+
export declare function matchesKeyword(text: string, keyword: string): boolean;
|
|
17
|
+
//# sourceMappingURL=keyword-match.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyword-match.d.ts","sourceRoot":"","sources":["../../src/orchestration/keyword-match.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAMrE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description Coincidencia de keywords compartida por los detectores del orquestador
|
|
4
|
+
* (intent-detector, risk-scorer, domain-detector).
|
|
5
|
+
*
|
|
6
|
+
* Antes esta funcion estaba duplicada byte-a-byte en tres modulos, con riesgo de
|
|
7
|
+
* deriva si uno cambiaba sin los otros (H-005). Es la unica fuente de verdad.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.matchesKeyword = matchesKeyword;
|
|
11
|
+
/**
|
|
12
|
+
* Verifica si un keyword aparece en el texto.
|
|
13
|
+
* - Palabras simples: con word boundary (`\b`), para evitar coincidencias parciales.
|
|
14
|
+
* - Frases (con espacios): como substring exacto, en minusculas.
|
|
15
|
+
*
|
|
16
|
+
* @param text Texto donde buscar (se compara case-insensitive).
|
|
17
|
+
* @param keyword Palabra o frase a buscar.
|
|
18
|
+
*/
|
|
19
|
+
function matchesKeyword(text, keyword) {
|
|
20
|
+
if (!keyword.includes(' ')) {
|
|
21
|
+
const escaped = keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
22
|
+
return new RegExp(`\\b${escaped}\\b`, 'i').test(text);
|
|
23
|
+
}
|
|
24
|
+
return text.includes(keyword.toLowerCase());
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=keyword-match.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyword-match.js","sourceRoot":"","sources":["../../src/orchestration/keyword-match.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAUH,wCAMC;AAdD;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,IAAY,EAAE,OAAe;IAC1D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,IAAI,MAAM,CAAC,MAAM,OAAO,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LLMProvider } from '../types';
|
|
2
|
+
import type { LLMChatClient } from './intent-detector';
|
|
3
|
+
/**
|
|
4
|
+
* Adapts a streaming LLMProvider to the simpler LLMChatClient interface
|
|
5
|
+
* required by Orchestrator (intent detection) and QAService (inline review).
|
|
6
|
+
*
|
|
7
|
+
* Accumulates the streaming response into a single string so the
|
|
8
|
+
* Orchestrator and QAService can work with synchronous-style completions.
|
|
9
|
+
*/
|
|
10
|
+
export declare function adaptProviderToLLMClient(provider: LLMProvider): LLMChatClient;
|
|
11
|
+
//# sourceMappingURL=llm-client-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-client-adapter.d.ts","sourceRoot":"","sources":["../../src/orchestration/llm-client-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,GAAG,aAAa,CAuB7E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adaptProviderToLLMClient = adaptProviderToLLMClient;
|
|
4
|
+
/**
|
|
5
|
+
* Adapts a streaming LLMProvider to the simpler LLMChatClient interface
|
|
6
|
+
* required by Orchestrator (intent detection) and QAService (inline review).
|
|
7
|
+
*
|
|
8
|
+
* Accumulates the streaming response into a single string so the
|
|
9
|
+
* Orchestrator and QAService can work with synchronous-style completions.
|
|
10
|
+
*/
|
|
11
|
+
function adaptProviderToLLMClient(provider) {
|
|
12
|
+
return {
|
|
13
|
+
async chat(messages, _tools, _temperature) {
|
|
14
|
+
let accumulated = '';
|
|
15
|
+
let failure;
|
|
16
|
+
await provider.chat(messages.map(m => ({
|
|
17
|
+
role: m.role,
|
|
18
|
+
content: m.content,
|
|
19
|
+
})), [], {
|
|
20
|
+
onChunk: (delta) => { accumulated += delta; },
|
|
21
|
+
onDone: () => { },
|
|
22
|
+
onError: (err) => { failure = err; },
|
|
23
|
+
});
|
|
24
|
+
if (failure)
|
|
25
|
+
throw failure;
|
|
26
|
+
return { content: accumulated || null };
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=llm-client-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-client-adapter.js","sourceRoot":"","sources":["../../src/orchestration/llm-client-adapter.ts"],"names":[],"mappings":";;AAUA,4DAuBC;AA9BD;;;;;;GAMG;AACH,SAAgB,wBAAwB,CAAC,QAAqB;IAC1D,OAAO;QACH,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY;YACrC,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,OAA0B,CAAC;YAE/B,MAAM,QAAQ,CAAC,IAAI,CACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACf,IAAI,EAAE,CAAC,CAAC,IAA0B;gBAClC,OAAO,EAAE,CAAC,CAAC,OAAO;aACrB,CAAC,CAAC,EACH,EAAE,EACF;gBACI,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC;gBAC7C,MAAM,EAAE,GAAG,EAAE,GAAyB,CAAC;gBACvC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC;aACvC,CACJ,CAAC;YAEF,IAAI,OAAO;gBAAE,MAAM,OAAO,CAAC;YAC3B,OAAO,EAAE,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC;QAC5C,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Orquestador principal — Pipeline completo de clasificación.
|
|
3
|
+
*
|
|
4
|
+
* Integra: Intent Detection → Domain Detection → Risk Scoring → Policy Engine
|
|
5
|
+
*
|
|
6
|
+
* Cada etapa enriquece el TaskContext progresivamente.
|
|
7
|
+
* El resultado final contiene los agentes seleccionados, políticas aplicadas
|
|
8
|
+
* y gates requeridos para proceder.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const orchestrator = new Orchestrator(client, config);
|
|
13
|
+
* const result = await orchestrator.orchestrate('Agregar circuit breaker para ServiceNow');
|
|
14
|
+
* // result.task.actionType === 'implementation'
|
|
15
|
+
* // result.task.domains === ['resilience', 'backend']
|
|
16
|
+
* // result.task.riskLevel === 'high'
|
|
17
|
+
* // result.selectedAgents === ['architecture', 'backend-agent', 'qa-engineer']
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
import { TaskContext, TaskStatus } from './task-context';
|
|
21
|
+
import { LLMChatClient } from './intent-detector';
|
|
22
|
+
import { TaskFSM, FSMTransitionResult } from './fsm';
|
|
23
|
+
import { OrchestratorConfig, OrchestrationResult, PolicyRule, CapabilityMatrix } from './types';
|
|
24
|
+
import { AuditReporter } from './audit-reporter';
|
|
25
|
+
export type { OrchestratorConfig, OrchestrationResult, PolicyRule, CapabilityMatrix };
|
|
26
|
+
export { defaultOrchestratorConfig } from './types';
|
|
27
|
+
export { detectIntent, enrichTaskWithIntent } from './intent-detector';
|
|
28
|
+
export { detectDomains, enrichTaskWithDomains } from './domain-detector';
|
|
29
|
+
export { calculateRisk, enrichTaskWithRisk } from './risk-scorer';
|
|
30
|
+
export { evaluatePolicies, applyPolicies } from './policy-engine';
|
|
31
|
+
export { TaskFSM } from './fsm';
|
|
32
|
+
export type { FSMTransitionResult } from './fsm';
|
|
33
|
+
export { createTaskContext } from './task-context';
|
|
34
|
+
export type { TaskContext } from './task-context';
|
|
35
|
+
export { AuditReporter } from './audit-reporter';
|
|
36
|
+
export type { AuditFinding, GateVeredict } from './audit';
|
|
37
|
+
/**
|
|
38
|
+
* @description Orquestador central del sistema multi-agente.
|
|
39
|
+
*
|
|
40
|
+
* Procesa el input del usuario a través de un pipeline de 4 etapas:
|
|
41
|
+
* 1. Intent Detection — clasifica la acción (design, implement, etc.)
|
|
42
|
+
* 2. Domain Detection — identifica bounded contexts
|
|
43
|
+
* 3. Risk Scoring — calcula nivel de riesgo técnico
|
|
44
|
+
* 4. Policy Engine — aplica reglas y determina agentes/gates
|
|
45
|
+
*
|
|
46
|
+
* El resultado es un OrchestrationResult que el AgentLoop puede usar
|
|
47
|
+
* para seleccionar agentes, aplicar gates y controlar el flujo.
|
|
48
|
+
*
|
|
49
|
+
* **Auditoría integrada:**
|
|
50
|
+
* Cada vez que `orchestrate()` se ejecuta, el AuditReporter registra
|
|
51
|
+
* automáticamente un gate de orquestación con los hallazgos detectados.
|
|
52
|
+
*
|
|
53
|
+
* Los gates de QA, security y architecture se registran desde el AgentLoop
|
|
54
|
+
* usando `getAuditReporter()`.
|
|
55
|
+
*/
|
|
56
|
+
export declare class Orchestrator {
|
|
57
|
+
private client?;
|
|
58
|
+
private config;
|
|
59
|
+
private customRules?;
|
|
60
|
+
private capabilityMatrix?;
|
|
61
|
+
private fsm;
|
|
62
|
+
private auditReporter;
|
|
63
|
+
private appName;
|
|
64
|
+
constructor(options?: {
|
|
65
|
+
client?: LLMChatClient;
|
|
66
|
+
config?: OrchestratorConfig;
|
|
67
|
+
customRules?: PolicyRule[];
|
|
68
|
+
capabilityMatrix?: CapabilityMatrix;
|
|
69
|
+
/** Ruta raíz del proyecto para los informes de auditoría (default: process.cwd()) */
|
|
70
|
+
projectRoot?: string;
|
|
71
|
+
/** App name para derivar ~/.{appName}/projects/ (default: 'bk-agent') */
|
|
72
|
+
appName?: string;
|
|
73
|
+
});
|
|
74
|
+
/**
|
|
75
|
+
* @description Procesa el input del usuario a través del pipeline completo.
|
|
76
|
+
*
|
|
77
|
+
* @param input - Texto del usuario
|
|
78
|
+
* @returns Resultado completo de la orquestación
|
|
79
|
+
*/
|
|
80
|
+
orchestrate(input: string): Promise<OrchestrationResult>;
|
|
81
|
+
/**
|
|
82
|
+
* @description Obtiene la instancia del AuditReporter para registrar gates
|
|
83
|
+
* desde el AgentLoop u otros componentes.
|
|
84
|
+
*/
|
|
85
|
+
getAuditReporter(): AuditReporter;
|
|
86
|
+
/**
|
|
87
|
+
* @description Intenta transicionar el estado de la tarea en el FSM.
|
|
88
|
+
* Expuesto para que el QA orchestrator pueda avanzar estados desde el loop.
|
|
89
|
+
*/
|
|
90
|
+
transitionTask(task: TaskContext, to: TaskStatus): FSMTransitionResult;
|
|
91
|
+
/**
|
|
92
|
+
* @description Registra automáticamente un gate de orquestación después
|
|
93
|
+
* de ejecutar el pipeline completo.
|
|
94
|
+
*/
|
|
95
|
+
private recordOrchestrationGate;
|
|
96
|
+
/**
|
|
97
|
+
* Selecciona agentes combinando:
|
|
98
|
+
* - Políticas obligatorias (mustInclude)
|
|
99
|
+
* - Capability matrix (dominios)
|
|
100
|
+
* - Pesos dinámicos
|
|
101
|
+
*/
|
|
102
|
+
private selectAgents;
|
|
103
|
+
/**
|
|
104
|
+
* Construye el pipeline secuencial de agentes en fases:
|
|
105
|
+
* review → implement → verify.
|
|
106
|
+
*
|
|
107
|
+
* - review: architecture-agent o security-agent si hay dominios de alto riesgo
|
|
108
|
+
* - implement: el agente con mayor score en selectedAgents
|
|
109
|
+
* - verify: qa-engineer siempre al final si hay implementación
|
|
110
|
+
*/
|
|
111
|
+
private buildAgentPipeline;
|
|
112
|
+
/**
|
|
113
|
+
* Determina si el commit está permitido según políticas y gates.
|
|
114
|
+
*
|
|
115
|
+
* Reglas:
|
|
116
|
+
* - Si commitGate está desactivado → siempre permitido
|
|
117
|
+
* - Si ya está en commit_allowed → permitido
|
|
118
|
+
* - Si requiere gates (QA, security, architecture) y no están resueltos → bloqueado
|
|
119
|
+
* - Si no requiere gates → permitido (se puede commitear directamente)
|
|
120
|
+
*/
|
|
121
|
+
private isCommitAllowed;
|
|
122
|
+
/**
|
|
123
|
+
* @description Obtiene los estados destino válidos desde el estado actual.
|
|
124
|
+
*/
|
|
125
|
+
getAvailableTransitions(status: TaskStatus): TaskStatus[];
|
|
126
|
+
/**
|
|
127
|
+
* @description Calcula la ruta crítica desde el estado actual hasta commit_allowed.
|
|
128
|
+
*/
|
|
129
|
+
getCriticalPath(task: TaskContext): TaskStatus[];
|
|
130
|
+
/**
|
|
131
|
+
* @description Obtiene la instancia del FSM.
|
|
132
|
+
*/
|
|
133
|
+
getFSM(): TaskFSM;
|
|
134
|
+
/**
|
|
135
|
+
* @description Actualiza la configuración en runtime.
|
|
136
|
+
*/
|
|
137
|
+
updateConfig(config: Partial<OrchestratorConfig>): void;
|
|
138
|
+
/**
|
|
139
|
+
* @description Actualiza las reglas personalizadas en runtime.
|
|
140
|
+
*/
|
|
141
|
+
updateRules(rules: PolicyRule[]): void;
|
|
142
|
+
/**
|
|
143
|
+
* @description Actualiza la capability matrix en runtime.
|
|
144
|
+
*/
|
|
145
|
+
updateCapabilityMatrix(matrix: CapabilityMatrix): void;
|
|
146
|
+
/**
|
|
147
|
+
* @description Carga las policyRules auto-promovidas desde manifest.yaml.
|
|
148
|
+
* Estas son generadas por el PolicyPromoter del Reflection Engine y se
|
|
149
|
+
* fusionan con las customRules en cada orchestrate().
|
|
150
|
+
*/
|
|
151
|
+
private loadManifestPolicyRules;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestration/orchestrator.ts"],"names":[],"mappings":"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"}
|