@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,262 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description Policy Engine — Motor de reglas para el orquestador.
|
|
4
|
+
*
|
|
5
|
+
* Evalúa reglas contra un TaskContext y determina:
|
|
6
|
+
* - Qué agentes deben participar obligatoriamente
|
|
7
|
+
* - Qué gates son obligatorios
|
|
8
|
+
* - Qué skills deben ejecutarse
|
|
9
|
+
*
|
|
10
|
+
* Las reglas se cargan desde ~/.deepseek-code/policy-rules.yaml
|
|
11
|
+
* y se complementan con reglas built-in por defecto.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.evaluatePolicies = evaluatePolicies;
|
|
15
|
+
exports.applyPolicies = applyPolicies;
|
|
16
|
+
// ── Reglas built-in por defecto ──────────────────────────────────────────────
|
|
17
|
+
const DEFAULT_RULES = [
|
|
18
|
+
// Si es diseño → architecture-agent obligatorio
|
|
19
|
+
{
|
|
20
|
+
if: { actionType: 'design' },
|
|
21
|
+
then: {
|
|
22
|
+
mustInclude: ['architecture'],
|
|
23
|
+
requireArchitectureReview: true,
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
// Si es security_audit → security-agent obligatorio
|
|
27
|
+
{
|
|
28
|
+
if: { actionType: 'security_audit' },
|
|
29
|
+
then: {
|
|
30
|
+
mustInclude: ['security'],
|
|
31
|
+
requireSecurityReview: true,
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
// Si riskLevel es high o critical → QA obligatorio
|
|
35
|
+
{
|
|
36
|
+
if: { riskLevel: ['high', 'critical'] },
|
|
37
|
+
then: {
|
|
38
|
+
mustInclude: ['qa-engineer'],
|
|
39
|
+
requireQaApproval: true,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
// Si riskLevel es critical → architecture review obligatorio
|
|
43
|
+
{
|
|
44
|
+
if: { riskLevel: 'critical' },
|
|
45
|
+
then: {
|
|
46
|
+
mustInclude: ['architecture'],
|
|
47
|
+
requireArchitectureReview: true,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
// Si el dominio es security → security-agent obligatorio
|
|
51
|
+
{
|
|
52
|
+
if: { domain: 'security' },
|
|
53
|
+
then: {
|
|
54
|
+
mustInclude: ['security'],
|
|
55
|
+
requireSecurityReview: true,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
// Si hay breaking change → architecture review obligatorio
|
|
59
|
+
{
|
|
60
|
+
if: { riskFactor: { breaking_change: true } },
|
|
61
|
+
then: {
|
|
62
|
+
mustInclude: ['architecture'],
|
|
63
|
+
requireArchitectureReview: true,
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
// Si es security_sensitive → security-agent obligatorio
|
|
67
|
+
{
|
|
68
|
+
if: { riskFactor: { security_sensitive: true } },
|
|
69
|
+
then: {
|
|
70
|
+
mustInclude: ['security'],
|
|
71
|
+
requireSecurityReview: true,
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
// Si es cross_service_impact → architecture review
|
|
75
|
+
{
|
|
76
|
+
if: { riskFactor: { cross_service_impact: true } },
|
|
77
|
+
then: {
|
|
78
|
+
mustInclude: ['architecture'],
|
|
79
|
+
requireArchitectureReview: true,
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
// Si es db_transactional → QA review
|
|
83
|
+
{
|
|
84
|
+
if: { riskFactor: { db_transactional: true } },
|
|
85
|
+
then: {
|
|
86
|
+
requireQaApproval: true,
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
// Si es test → QA como agente principal
|
|
90
|
+
{
|
|
91
|
+
if: { actionType: 'test' },
|
|
92
|
+
then: {
|
|
93
|
+
mustInclude: ['qa-engineer'],
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
// Si es refactor → QA review
|
|
97
|
+
{
|
|
98
|
+
if: { actionType: 'refactor' },
|
|
99
|
+
then: {
|
|
100
|
+
requireQaApproval: true,
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
];
|
|
104
|
+
/**
|
|
105
|
+
* @description Evalúa todas las reglas contra un TaskContext.
|
|
106
|
+
*
|
|
107
|
+
* Las reglas personalizadas (de ~/.deepseek-code/policy-rules.yaml)
|
|
108
|
+
* tienen prioridad sobre las built-in. Si una regla personalizada
|
|
109
|
+
* coincide, se aplica en lugar de la built-in equivalente.
|
|
110
|
+
*
|
|
111
|
+
* @param task - TaskContext enriquecido con actionType, domains, riskLevel
|
|
112
|
+
* @param customRules - Reglas personalizadas (opcional, desde config)
|
|
113
|
+
* @returns Políticas aplicadas: agentes, gates y skills obligatorios
|
|
114
|
+
*/
|
|
115
|
+
function evaluatePolicies(task, customRules, userInput = '') {
|
|
116
|
+
const rules = [...DEFAULT_RULES, ...(customRules ?? [])];
|
|
117
|
+
const mustInclude = new Set();
|
|
118
|
+
const requiredGates = new Set();
|
|
119
|
+
const mustExecute = new Set();
|
|
120
|
+
const appliedRules = [];
|
|
121
|
+
for (const rule of rules) {
|
|
122
|
+
if (matchesCondition(task, rule.if, userInput)) {
|
|
123
|
+
// Aplicar acción
|
|
124
|
+
if (rule.then.mustInclude) {
|
|
125
|
+
for (const agent of rule.then.mustInclude) {
|
|
126
|
+
mustInclude.add(agent);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (rule.then.mustPass) {
|
|
130
|
+
for (const gate of rule.then.mustPass) {
|
|
131
|
+
if (gate === 'qa')
|
|
132
|
+
requiredGates.add('qa');
|
|
133
|
+
if (gate === 'security')
|
|
134
|
+
requiredGates.add('security');
|
|
135
|
+
if (gate === 'architecture')
|
|
136
|
+
requiredGates.add('architecture');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (rule.then.mustExecute) {
|
|
140
|
+
for (const skill of rule.then.mustExecute) {
|
|
141
|
+
mustExecute.add(skill);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (rule.then.requireArchitectureReview) {
|
|
145
|
+
requiredGates.add('architecture');
|
|
146
|
+
}
|
|
147
|
+
if (rule.then.requireSecurityReview) {
|
|
148
|
+
requiredGates.add('security');
|
|
149
|
+
}
|
|
150
|
+
if (rule.then.requireQaApproval) {
|
|
151
|
+
requiredGates.add('qa');
|
|
152
|
+
}
|
|
153
|
+
// Registrar regla aplicada
|
|
154
|
+
const reason = buildRuleReason(rule.if);
|
|
155
|
+
appliedRules.push({ rule: reason, reason });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
mustInclude: [...mustInclude],
|
|
160
|
+
requiredGates: [...requiredGates],
|
|
161
|
+
mustExecute: [...mustExecute],
|
|
162
|
+
appliedRules,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Verifica si un TaskContext cumple con una condición.
|
|
167
|
+
* userInput es el texto original del usuario — necesario para keywords matching.
|
|
168
|
+
*/
|
|
169
|
+
function matchesCondition(task, condition, userInput = '') {
|
|
170
|
+
// Verificar actionType
|
|
171
|
+
if (condition.actionType) {
|
|
172
|
+
const types = Array.isArray(condition.actionType)
|
|
173
|
+
? condition.actionType
|
|
174
|
+
: [condition.actionType];
|
|
175
|
+
if (!types.includes(task.actionType))
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
// Verificar riskLevel
|
|
179
|
+
if (condition.riskLevel) {
|
|
180
|
+
const levels = Array.isArray(condition.riskLevel)
|
|
181
|
+
? condition.riskLevel
|
|
182
|
+
: [condition.riskLevel];
|
|
183
|
+
if (!levels.includes(task.riskLevel))
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
// Verificar domain
|
|
187
|
+
if (condition.domain) {
|
|
188
|
+
const domains = Array.isArray(condition.domain)
|
|
189
|
+
? condition.domain
|
|
190
|
+
: [condition.domain];
|
|
191
|
+
const hasDomain = domains.some(d => task.domains.includes(d));
|
|
192
|
+
if (!hasDomain)
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
// Verificar riskFactor
|
|
196
|
+
if (condition.riskFactor) {
|
|
197
|
+
for (const [factor, value] of Object.entries(condition.riskFactor)) {
|
|
198
|
+
const taskValue = task.riskFactors[factor];
|
|
199
|
+
if (taskValue !== value)
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// Verificar keywords en el mensaje original del usuario (OR logic, case-insensitive)
|
|
204
|
+
if (condition.keywords?.length) {
|
|
205
|
+
const msg = userInput.toLowerCase();
|
|
206
|
+
const matches = condition.keywords.some(kw => msg.includes(kw.toLowerCase()));
|
|
207
|
+
if (!matches)
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Construye una descripción legible de la regla aplicada.
|
|
214
|
+
*/
|
|
215
|
+
function buildRuleReason(condition) {
|
|
216
|
+
const parts = [];
|
|
217
|
+
if (condition.actionType) {
|
|
218
|
+
const types = Array.isArray(condition.actionType)
|
|
219
|
+
? condition.actionType.join(' | ')
|
|
220
|
+
: condition.actionType;
|
|
221
|
+
parts.push(`actionType=${types}`);
|
|
222
|
+
}
|
|
223
|
+
if (condition.riskLevel) {
|
|
224
|
+
const levels = Array.isArray(condition.riskLevel)
|
|
225
|
+
? condition.riskLevel.join(' | ')
|
|
226
|
+
: condition.riskLevel;
|
|
227
|
+
parts.push(`riskLevel=${levels}`);
|
|
228
|
+
}
|
|
229
|
+
if (condition.domain) {
|
|
230
|
+
const domains = Array.isArray(condition.domain)
|
|
231
|
+
? condition.domain.join(' | ')
|
|
232
|
+
: condition.domain;
|
|
233
|
+
parts.push(`domain=${domains}`);
|
|
234
|
+
}
|
|
235
|
+
if (condition.riskFactor) {
|
|
236
|
+
for (const [k, v] of Object.entries(condition.riskFactor)) {
|
|
237
|
+
parts.push(`${k}=${v}`);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
if (condition.keywords?.length) {
|
|
241
|
+
parts.push(`keywords=[${condition.keywords.join(', ')}]`);
|
|
242
|
+
}
|
|
243
|
+
return parts.length > 0 ? parts.join(', ') : 'regla generica';
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* @description Aplica políticas a un TaskContext y produce un resultado completo.
|
|
247
|
+
* Es el entry point principal para el orquestador.
|
|
248
|
+
*/
|
|
249
|
+
function applyPolicies(task, customRules, userInput = '') {
|
|
250
|
+
const result = evaluatePolicies(task, customRules, userInput);
|
|
251
|
+
// Enriquecer task con los resultados
|
|
252
|
+
const enrichedTask = {
|
|
253
|
+
...task,
|
|
254
|
+
assignedAgents: [...new Set([...task.assignedAgents, ...result.mustInclude])],
|
|
255
|
+
requiresArchitectureReview: task.requiresArchitectureReview || result.requiredGates.includes('architecture'),
|
|
256
|
+
requiresSecurityReview: task.requiresSecurityReview || result.requiredGates.includes('security'),
|
|
257
|
+
requiresQaApproval: task.requiresQaApproval || result.requiredGates.includes('qa'),
|
|
258
|
+
updatedAt: new Date(),
|
|
259
|
+
};
|
|
260
|
+
return { task: enrichedTask, result };
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=policy-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-engine.js","sourceRoot":"","sources":["../../src/orchestration/policy-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Risk Scorer — Calcula el nivel de riesgo técnico de una tarea.
|
|
3
|
+
*
|
|
4
|
+
* Evalúa múltiples factores (breaking change, seguridad, impacto entre
|
|
5
|
+
* servicios, transaccionalidad, criticidad en producción) y produce
|
|
6
|
+
* un score numérico [0-100] que determina el riskLevel.
|
|
7
|
+
*
|
|
8
|
+
* El score se usa en el Policy Engine para decidir qué gates son
|
|
9
|
+
* obligatorios y qué agentes deben participar.
|
|
10
|
+
*/
|
|
11
|
+
import { RiskFactors, RiskLevel, TaskContext } from './task-context';
|
|
12
|
+
import { OrchestratorConfig } from './types';
|
|
13
|
+
export interface RiskScoreResult {
|
|
14
|
+
riskLevel: RiskLevel;
|
|
15
|
+
riskFactors: RiskFactors;
|
|
16
|
+
totalScore: number;
|
|
17
|
+
breakdown: Array<{
|
|
18
|
+
factor: string;
|
|
19
|
+
score: number;
|
|
20
|
+
weight: number;
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @description Calcula el nivel de riesgo de una tarea basado en el input.
|
|
25
|
+
*
|
|
26
|
+
* Analiza el texto del usuario para detectar factores de riesgo y
|
|
27
|
+
* calcula un score ponderado usando los pesos de la configuración.
|
|
28
|
+
*
|
|
29
|
+
* @param input - Texto del usuario
|
|
30
|
+
* @param config - Configuración del orquestador (opcional)
|
|
31
|
+
* @returns RiskScoreResult con nivel, factores y desglose
|
|
32
|
+
*/
|
|
33
|
+
export declare function calculateRisk(input: string, config?: OrchestratorConfig): RiskScoreResult;
|
|
34
|
+
/**
|
|
35
|
+
* @description Enriquce un TaskContext con el riesgo calculado.
|
|
36
|
+
*/
|
|
37
|
+
export declare function enrichTaskWithRisk(task: TaskContext, config?: OrchestratorConfig): TaskContext;
|
|
38
|
+
//# sourceMappingURL=risk-scorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"risk-scorer.d.ts","sourceRoot":"","sources":["../../src/orchestration/risk-scorer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAA6B,MAAM,SAAS,CAAC;AA2DxE,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,kBAAkB,GAC1B,eAAe,CA4DjB;AAYD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,EACjB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,WAAW,CAWb"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @description Risk Scorer — Calcula el nivel de riesgo técnico de una tarea.
|
|
4
|
+
*
|
|
5
|
+
* Evalúa múltiples factores (breaking change, seguridad, impacto entre
|
|
6
|
+
* servicios, transaccionalidad, criticidad en producción) y produce
|
|
7
|
+
* un score numérico [0-100] que determina el riskLevel.
|
|
8
|
+
*
|
|
9
|
+
* El score se usa en el Policy Engine para decidir qué gates son
|
|
10
|
+
* obligatorios y qué agentes deben participar.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.calculateRisk = calculateRisk;
|
|
14
|
+
exports.enrichTaskWithRisk = enrichTaskWithRisk;
|
|
15
|
+
const types_1 = require("./types");
|
|
16
|
+
const keyword_match_1 = require("./keyword-match");
|
|
17
|
+
const RISK_KEYWORDS = [
|
|
18
|
+
// breaking_change
|
|
19
|
+
{ words: ['breaking change', 'breaking', 'rompe', 'incompatible'], factor: 'breaking_change', increment: 1 },
|
|
20
|
+
{ words: ['migrar', 'migración', 'migracion', 'cambiar api'], factor: 'breaking_change', increment: 1 },
|
|
21
|
+
{ words: ['deprecar', 'deprecated', 'obsoleto'], factor: 'breaking_change', increment: 1 },
|
|
22
|
+
{ words: ['renombrar', 'rename', 'cambiar nombre'], factor: 'breaking_change', increment: 1 },
|
|
23
|
+
// security_sensitive
|
|
24
|
+
{ words: ['token', 'jwt', 'contraseña', 'password', 'secreto'], factor: 'security_sensitive', increment: 1 },
|
|
25
|
+
{ words: ['autenticación', 'autenticacion', 'login', 'register'], factor: 'security_sensitive', increment: 1 },
|
|
26
|
+
{ words: ['autorización', 'autorizacion', 'permiso', 'rol'], factor: 'security_sensitive', increment: 1 },
|
|
27
|
+
{ words: ['datos sensibles', 'pii', 'privacidad', 'gdpr'], factor: 'security_sensitive', increment: 1 },
|
|
28
|
+
{ words: ['cifrado', 'encriptar', 'hash', 'bcrypt'], factor: 'security_sensitive', increment: 1 },
|
|
29
|
+
{ words: ['api key', 'apikey', 'secret'], factor: 'security_sensitive', increment: 1 },
|
|
30
|
+
// cross_service_impact
|
|
31
|
+
{ words: ['microservicio', 'servicio externo', 'otro servicio'], factor: 'cross_service_impact', increment: 1 },
|
|
32
|
+
{ words: ['api externa', 'integración', 'integracion', 'tercero'], factor: 'cross_service_impact', increment: 1 },
|
|
33
|
+
{ words: ['webhook', 'callback', 'evento', 'event'], factor: 'cross_service_impact', increment: 1 },
|
|
34
|
+
{ words: ['saga', 'orquestación', 'coreografía'], factor: 'cross_service_impact', increment: 1 },
|
|
35
|
+
// db_transactional
|
|
36
|
+
{ words: ['base de datos', 'bd', 'database', 'db'], factor: 'db_transactional', increment: 1 },
|
|
37
|
+
{ words: ['migración', 'migracion', 'schema', 'esquema', 'tabla'], factor: 'db_transactional', increment: 1 },
|
|
38
|
+
{ words: ['transacción', 'transaccion', 'transaction', 'rollback'], factor: 'db_transactional', increment: 1 },
|
|
39
|
+
{ words: ['consulta', 'query', 'join', 'índice', 'indice'], factor: 'db_transactional', increment: 1 },
|
|
40
|
+
{ words: ['modelo de datos', 'entidad', 'entity', 'relación'], factor: 'db_transactional', increment: 1 },
|
|
41
|
+
// production_critical
|
|
42
|
+
{ words: ['producción', 'produccion', 'production', 'prod'], factor: 'production_critical', increment: 1 },
|
|
43
|
+
{ words: ['deploy', 'despliegue', 'release', 'lanzar'], factor: 'production_critical', increment: 1 },
|
|
44
|
+
{ words: ['crítico', 'critico', 'urgente', 'emergencia'], factor: 'production_critical', increment: 1 },
|
|
45
|
+
{ words: ['rollback', 'hotfix', 'parche'], factor: 'production_critical', increment: 1 },
|
|
46
|
+
];
|
|
47
|
+
// ── Complexity keywords ──────────────────────────────────────────────────────
|
|
48
|
+
const COMPLEXITY_KEYWORDS = [
|
|
49
|
+
{ words: ['simple', 'sencillo', 'fácil', 'trivial', 'pequeño'], level: 1 },
|
|
50
|
+
{ words: ['medio', 'moderado', 'normal', 'estándar'], level: 4 },
|
|
51
|
+
{ words: ['complejo', 'complicado', 'difícil', 'elaborado'], level: 7 },
|
|
52
|
+
{ words: ['muy complejo', 'altamente', 'sofisticado', 'crítico'], level: 10 },
|
|
53
|
+
];
|
|
54
|
+
/**
|
|
55
|
+
* @description Calcula el nivel de riesgo de una tarea basado en el input.
|
|
56
|
+
*
|
|
57
|
+
* Analiza el texto del usuario para detectar factores de riesgo y
|
|
58
|
+
* calcula un score ponderado usando los pesos de la configuración.
|
|
59
|
+
*
|
|
60
|
+
* @param input - Texto del usuario
|
|
61
|
+
* @param config - Configuración del orquestador (opcional)
|
|
62
|
+
* @returns RiskScoreResult con nivel, factores y desglose
|
|
63
|
+
*/
|
|
64
|
+
function calculateRisk(input, config) {
|
|
65
|
+
const cfg = config ?? (0, types_1.defaultOrchestratorConfig)();
|
|
66
|
+
const lower = input.toLowerCase();
|
|
67
|
+
// 1. Detectar factores de riesgo por keywords
|
|
68
|
+
const factors = {
|
|
69
|
+
breaking_change: false,
|
|
70
|
+
security_sensitive: false,
|
|
71
|
+
cross_service_impact: false,
|
|
72
|
+
db_transactional: false,
|
|
73
|
+
production_critical: false,
|
|
74
|
+
complexity: 1,
|
|
75
|
+
};
|
|
76
|
+
const usedTerms = new Set();
|
|
77
|
+
for (const rk of RISK_KEYWORDS) {
|
|
78
|
+
for (const word of rk.words) {
|
|
79
|
+
if (!usedTerms.has(word) && (0, keyword_match_1.matchesKeyword)(lower, word)) {
|
|
80
|
+
usedTerms.add(word);
|
|
81
|
+
if (rk.factor === 'complexity') {
|
|
82
|
+
factors.complexity = Math.min(10, factors.complexity + rk.increment);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
factors[rk.factor] = true;
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// 2. Detectar nivel de complejidad
|
|
92
|
+
for (const ck of COMPLEXITY_KEYWORDS) {
|
|
93
|
+
for (const word of ck.words) {
|
|
94
|
+
if ((0, keyword_match_1.matchesKeyword)(lower, word)) {
|
|
95
|
+
factors.complexity = Math.max(factors.complexity, ck.level);
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// 3. Calcular score ponderado
|
|
101
|
+
const breakdown = [];
|
|
102
|
+
let totalScore = 0;
|
|
103
|
+
for (const [factor, value] of Object.entries(factors)) {
|
|
104
|
+
const weight = cfg.riskWeights[factor] ?? 0;
|
|
105
|
+
const score = typeof value === 'boolean' ? (value ? weight : 0) : value * (cfg.riskWeights.complexity ?? 1);
|
|
106
|
+
totalScore += score;
|
|
107
|
+
breakdown.push({ factor, score, weight });
|
|
108
|
+
}
|
|
109
|
+
// 4. Determinar nivel de riesgo
|
|
110
|
+
const riskLevel = getRiskLevel(totalScore, cfg);
|
|
111
|
+
return {
|
|
112
|
+
riskLevel,
|
|
113
|
+
riskFactors: factors,
|
|
114
|
+
totalScore,
|
|
115
|
+
breakdown,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Determina el nivel de riesgo basado en el score total.
|
|
120
|
+
*/
|
|
121
|
+
function getRiskLevel(score, config) {
|
|
122
|
+
if (score >= config.riskThresholds.critical)
|
|
123
|
+
return 'critical';
|
|
124
|
+
if (score >= config.riskThresholds.high)
|
|
125
|
+
return 'high';
|
|
126
|
+
if (score >= config.riskThresholds.medium)
|
|
127
|
+
return 'medium';
|
|
128
|
+
return 'low';
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* @description Enriquce un TaskContext con el riesgo calculado.
|
|
132
|
+
*/
|
|
133
|
+
function enrichTaskWithRisk(task, config) {
|
|
134
|
+
const result = calculateRisk(task.rawPrompt, config);
|
|
135
|
+
return {
|
|
136
|
+
...task,
|
|
137
|
+
riskLevel: result.riskLevel,
|
|
138
|
+
riskFactors: result.riskFactors,
|
|
139
|
+
requiresArchitectureReview: result.riskLevel === 'critical' || result.riskLevel === 'high',
|
|
140
|
+
requiresSecurityReview: result.riskFactors.security_sensitive,
|
|
141
|
+
requiresQaApproval: result.riskLevel === 'high' || result.riskLevel === 'critical',
|
|
142
|
+
updatedAt: new Date(),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=risk-scorer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"risk-scorer.js","sourceRoot":"","sources":["../../src/orchestration/risk-scorer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description TaskContext — Esquema formal de tarea para el orquestador.
|
|
3
|
+
*
|
|
4
|
+
* Transforma texto libre del usuario en una estructura tipada que el sistema
|
|
5
|
+
* puede procesar con políticas, scoring y routing deterministas.
|
|
6
|
+
*
|
|
7
|
+
* Cada tarea pasa por: Intent Detection → Domain Detection → Risk Scoring
|
|
8
|
+
* → Policy Engine → Agent Routing → FSM.
|
|
9
|
+
*
|
|
10
|
+
* @see {@link https://agentskills.io/specification} para el estándar de skills
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Tipos de acción que el sistema puede clasificar.
|
|
14
|
+
* Cada acción define qué tipo de procesamiento se necesita.
|
|
15
|
+
*/
|
|
16
|
+
export type ActionType = 'design' | 'implementation' | 'review' | 'security_audit' | 'documentation' | 'refactor' | 'bugfix' | 'test' | 'research' | 'optimize' | 'deploy' | 'unknown';
|
|
17
|
+
export type RiskLevel = 'low' | 'medium' | 'high' | 'critical';
|
|
18
|
+
export type TaskStatus = 'new' | 'classified' | 'design_review' | 'implementation' | 'security_review' | 'qa_review' | 'rework_required' | 'approved' | 'commit_allowed' | 'rejected' | 'commit_planning' | 'commit_reviewing' | 'commit_validated' | 'commit_rejected' | 'commit_failed' | 'commit_skipped';
|
|
19
|
+
export type ConventionalCommitType = 'feat' | 'fix' | 'refactor' | 'test' | 'docs' | 'chore' | 'style' | 'perf' | 'ci' | 'build' | 'revert';
|
|
20
|
+
export interface CommitPlan {
|
|
21
|
+
/** Tipo de commit convencional */
|
|
22
|
+
type: ConventionalCommitType;
|
|
23
|
+
/** Scope basado en el módulo afectado (ej: 'orchestrator', 'cli', 'fsm') */
|
|
24
|
+
scope: string;
|
|
25
|
+
/** Descripción corta en imperativo (< 72 chars) */
|
|
26
|
+
description: string;
|
|
27
|
+
/** Cuerpo opcional con detalles */
|
|
28
|
+
body?: string;
|
|
29
|
+
/** Si es breaking change */
|
|
30
|
+
breaking: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface RiskFactors {
|
|
33
|
+
/** Cambia APIs públicas o contratos existentes */
|
|
34
|
+
breaking_change: boolean;
|
|
35
|
+
/** Afecta autenticación, autorización, datos sensibles */
|
|
36
|
+
security_sensitive: boolean;
|
|
37
|
+
/** Impacta múltiples servicios */
|
|
38
|
+
cross_service_impact: boolean;
|
|
39
|
+
/** Modifica esquemas de base de datos o consultas transaccionales */
|
|
40
|
+
db_transactional: boolean;
|
|
41
|
+
/** Afecta código en producción */
|
|
42
|
+
production_critical: boolean;
|
|
43
|
+
/** Complejidad estimada (1-10) */
|
|
44
|
+
complexity: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @description Representación formal de una tarea del usuario.
|
|
48
|
+
*
|
|
49
|
+
* El orquestador convierte el input del usuario en un TaskContext
|
|
50
|
+
* que luego es procesado por el Policy Engine, Capability Matrix
|
|
51
|
+
* y FSM para determinar qué agentes participan y qué gates aplicar.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* const task: TaskContext = {
|
|
56
|
+
* taskId: 'task_abc123',
|
|
57
|
+
* rawPrompt: 'Agregar circuit breaker para ServiceNow',
|
|
58
|
+
* actionType: 'implementation',
|
|
59
|
+
* domains: ['resilience', 'backend', 'integration'],
|
|
60
|
+
* riskLevel: 'high',
|
|
61
|
+
* riskFactors: {
|
|
62
|
+
* breaking_change: false,
|
|
63
|
+
* security_sensitive: false,
|
|
64
|
+
* cross_service_impact: true,
|
|
65
|
+
* db_transactional: false,
|
|
66
|
+
* production_critical: true,
|
|
67
|
+
* complexity: 7,
|
|
68
|
+
* },
|
|
69
|
+
* requiresArchitectureReview: true,
|
|
70
|
+
* requiresSecurityReview: false,
|
|
71
|
+
* requiresQaApproval: true,
|
|
72
|
+
* targetServices: ['api-gateway', 'snowq-service'],
|
|
73
|
+
* relatedPatterns: ['circuit-breaker', 'retry-backoff'],
|
|
74
|
+
* status: 'new',
|
|
75
|
+
* assignedAgents: [],
|
|
76
|
+
* };
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export interface TaskContext {
|
|
80
|
+
/** ID único de la tarea */
|
|
81
|
+
taskId: string;
|
|
82
|
+
/** Prompt original del usuario */
|
|
83
|
+
rawPrompt: string;
|
|
84
|
+
/** Tipo de acción clasificada */
|
|
85
|
+
actionType: ActionType;
|
|
86
|
+
/** Dominios detectados (bounded contexts) */
|
|
87
|
+
domains: string[];
|
|
88
|
+
/** Nivel de riesgo calculado */
|
|
89
|
+
riskLevel: RiskLevel;
|
|
90
|
+
/** Factores de riesgo detallados */
|
|
91
|
+
riskFactors: RiskFactors;
|
|
92
|
+
/** Indica si requiere revisión de arquitectura */
|
|
93
|
+
requiresArchitectureReview: boolean;
|
|
94
|
+
/** Indica si requiere revisión de seguridad */
|
|
95
|
+
requiresSecurityReview: boolean;
|
|
96
|
+
/** Indica si requiere aprobación de QA */
|
|
97
|
+
requiresQaApproval: boolean;
|
|
98
|
+
/** Servicios objetivo (si se detectan) */
|
|
99
|
+
targetServices: string[];
|
|
100
|
+
/** Patrones relacionados del vault */
|
|
101
|
+
relatedPatterns: string[];
|
|
102
|
+
/** Estado actual en la FSM */
|
|
103
|
+
status: TaskStatus;
|
|
104
|
+
/** Agentes asignados a la tarea */
|
|
105
|
+
assignedAgents: string[];
|
|
106
|
+
/** Archivos relevantes detectados para la tarea */
|
|
107
|
+
relevantFiles?: string[];
|
|
108
|
+
/** Plan de commit generado por Architecture agent */
|
|
109
|
+
commitPlan?: CommitPlan;
|
|
110
|
+
/** Timestamp de creación */
|
|
111
|
+
createdAt: Date;
|
|
112
|
+
/** Timestamp de última actualización */
|
|
113
|
+
updatedAt: Date;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* @description Solicitud de delegación estructurada entre agentes.
|
|
117
|
+
* Reemplaza el mecanismo plano de ask_agent con un handoff formal
|
|
118
|
+
* que incluye contexto, entregables esperados y timeout.
|
|
119
|
+
*/
|
|
120
|
+
export interface DelegationRequest {
|
|
121
|
+
/** ID único de la solicitud de delegación */
|
|
122
|
+
requestId: string;
|
|
123
|
+
/** ID del agente que delega (origen) */
|
|
124
|
+
fromAgentId: string;
|
|
125
|
+
/** ID del agente especialista (destino) */
|
|
126
|
+
toAgentId: string;
|
|
127
|
+
/** Contexto compartido con el especialista */
|
|
128
|
+
context: {
|
|
129
|
+
taskId: string;
|
|
130
|
+
question: string;
|
|
131
|
+
relevantFiles: string[];
|
|
132
|
+
previousDelegations?: DelegationResult[];
|
|
133
|
+
};
|
|
134
|
+
/** Momento en que se crea la solicitud */
|
|
135
|
+
timestamp: Date;
|
|
136
|
+
/** Timeout en ms para considerar fallo (default: 30000) */
|
|
137
|
+
timeoutMs: number;
|
|
138
|
+
/** Profundidad de delegación (0 = primera delegación). Máximo permitido: 3 */
|
|
139
|
+
hopCount?: number;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* @description Resultado de una delegación ejecutada por un agente especialista.
|
|
143
|
+
* Incluye el contenido de la respuesta y un sello de completitud
|
|
144
|
+
* que garantiza que el especialista terminó su análisis.
|
|
145
|
+
*/
|
|
146
|
+
export interface DelegationResult {
|
|
147
|
+
/** Mismo requestId que la solicitud */
|
|
148
|
+
requestId: string;
|
|
149
|
+
/** ID del agente que ejecutó (destino) */
|
|
150
|
+
agentId: string;
|
|
151
|
+
/** Resultado textual del especialista */
|
|
152
|
+
result: string;
|
|
153
|
+
/** Sello de completitud */
|
|
154
|
+
completionStamp: {
|
|
155
|
+
status: 'completed' | 'partial' | 'failed';
|
|
156
|
+
summary: string;
|
|
157
|
+
suggestedFollowUp?: string;
|
|
158
|
+
filesTouched: string[];
|
|
159
|
+
};
|
|
160
|
+
/** Momento en que se completó */
|
|
161
|
+
completedAt: Date;
|
|
162
|
+
/** Si hubo error, descripción */
|
|
163
|
+
error?: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* @description Detecta el scope del commit a partir de los archivos staged.
|
|
167
|
+
* Analiza las rutas de los archivos y determina el módulo afectado.
|
|
168
|
+
*
|
|
169
|
+
* @param stagedFiles - Lista de rutas de archivos staged
|
|
170
|
+
* @returns Scope detectado (ej: 'cli', 'orchestrator', 'api', etc.)
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```ts
|
|
174
|
+
* detectScopeFromFiles(['bin/cli.ts', 'src/ui/formatters.ts']);
|
|
175
|
+
* // → 'cli'
|
|
176
|
+
*
|
|
177
|
+
* detectScopeFromFiles(['src/orchestrator/fsm.ts', 'src/types/task-context.ts']);
|
|
178
|
+
* // → 'core'
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
export declare function detectScopeFromFiles(stagedFiles: string[]): string;
|
|
182
|
+
/**
|
|
183
|
+
* Crea un TaskContext con valores por defecto.
|
|
184
|
+
* Útil para tests y para inicializar desde el detector de intents.
|
|
185
|
+
*/
|
|
186
|
+
export declare function createTaskContext(rawPrompt: string): TaskContext;
|
|
187
|
+
/**
|
|
188
|
+
* Actualiza el timestamp de una tarea.
|
|
189
|
+
*/
|
|
190
|
+
export declare function touchTask(task: TaskContext): TaskContext;
|
|
191
|
+
/**
|
|
192
|
+
* Cambia el estado de una tarea y actualiza timestamp.
|
|
193
|
+
*/
|
|
194
|
+
export declare function transitionTask(task: TaskContext, newStatus: TaskStatus): TaskContext;
|
|
195
|
+
//# sourceMappingURL=task-context.d.ts.map
|