@octo-cyber/ai 0.5.5 → 0.5.7
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/BranchDecisionEngine.d.ts +73 -0
- package/dist/BranchDecisionEngine.d.ts.map +1 -0
- package/dist/BranchDecisionEngine.js +195 -0
- package/dist/BranchDecisionEngine.js.map +1 -0
- package/dist/agent/coding-tools.d.ts +7 -0
- package/dist/agent/coding-tools.d.ts.map +1 -0
- package/dist/agent/coding-tools.js +181 -0
- package/dist/agent/coding-tools.js.map +1 -0
- package/dist/ai.module.d.ts +14 -2
- package/dist/ai.module.d.ts.map +1 -1
- package/dist/ai.module.js +61 -14
- package/dist/ai.module.js.map +1 -1
- package/dist/cli/adapters/antigravity.adapter.d.ts +2 -0
- package/dist/cli/adapters/antigravity.adapter.d.ts.map +1 -1
- package/dist/cli/adapters/antigravity.adapter.js +78 -0
- package/dist/cli/adapters/antigravity.adapter.js.map +1 -1
- package/dist/cli/adapters/claude-cli.adapter.d.ts.map +1 -1
- package/dist/cli/adapters/claude-cli.adapter.js +2 -0
- package/dist/cli/adapters/claude-cli.adapter.js.map +1 -1
- package/dist/cli/adapters/cli-proxy-api.adapter.d.ts +32 -0
- package/dist/cli/adapters/cli-proxy-api.adapter.d.ts.map +1 -0
- package/dist/cli/adapters/cli-proxy-api.adapter.js +239 -0
- package/dist/cli/adapters/cli-proxy-api.adapter.js.map +1 -0
- package/dist/cli/cli-executor.service.d.ts +2 -0
- package/dist/cli/cli-executor.service.d.ts.map +1 -1
- package/dist/cli/cli-executor.service.js +21 -1
- package/dist/cli/cli-executor.service.js.map +1 -1
- package/dist/cli/cli-registry.service.d.ts.map +1 -1
- package/dist/cli/cli-registry.service.js +3 -1
- package/dist/cli/cli-registry.service.js.map +1 -1
- package/dist/cli/controllers/ai-cli.controller.d.ts +4 -0
- package/dist/cli/controllers/ai-cli.controller.d.ts.map +1 -1
- package/dist/cli/controllers/ai-cli.controller.js +33 -4
- package/dist/cli/controllers/ai-cli.controller.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/types.d.ts +23 -1
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/workspace.service.d.ts +11 -3
- package/dist/cli/workspace.service.d.ts.map +1 -1
- package/dist/cli/workspace.service.js +61 -6
- package/dist/cli/workspace.service.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -1
- package/dist/index.js.map +1 -1
- package/dist/session/claude-code-session-manager.service.d.ts +28 -0
- package/dist/session/claude-code-session-manager.service.d.ts.map +1 -0
- package/dist/session/claude-code-session-manager.service.js +177 -0
- package/dist/session/claude-code-session-manager.service.js.map +1 -0
- package/dist/shared/IClaudeCodeSessionManager.d.ts +151 -0
- package/dist/shared/IClaudeCodeSessionManager.d.ts.map +1 -0
- package/dist/shared/IClaudeCodeSessionManager.js +6 -0
- package/dist/shared/IClaudeCodeSessionManager.js.map +1 -0
- package/dist/skill/controllers/skill-market.controller.d.ts +18 -0
- package/dist/skill/controllers/skill-market.controller.d.ts.map +1 -0
- package/dist/skill/controllers/skill-market.controller.js +128 -0
- package/dist/skill/controllers/skill-market.controller.js.map +1 -0
- package/dist/skill/controllers/skill.controller.d.ts +4 -0
- package/dist/skill/controllers/skill.controller.d.ts.map +1 -1
- package/dist/skill/controllers/skill.controller.js +31 -0
- package/dist/skill/controllers/skill.controller.js.map +1 -1
- package/dist/skill/index.d.ts +3 -1
- package/dist/skill/index.d.ts.map +1 -1
- package/dist/skill/index.js +5 -1
- package/dist/skill/index.js.map +1 -1
- package/dist/skill/services/skill-installer.service.d.ts +27 -0
- package/dist/skill/services/skill-installer.service.d.ts.map +1 -1
- package/dist/skill/services/skill-installer.service.js +108 -0
- package/dist/skill/services/skill-installer.service.js.map +1 -1
- package/dist/skill/services/skill-market.service.d.ts +60 -0
- package/dist/skill/services/skill-market.service.d.ts.map +1 -0
- package/dist/skill/services/skill-market.service.js +244 -0
- package/dist/skill/services/skill-market.service.js.map +1 -0
- package/dist/skill/services/skill-registry.service.js +4 -4
- package/dist/skill/services/skill-registry.service.js.map +1 -1
- package/dist/skill/types.d.ts +32 -1
- package/dist/skill/types.d.ts.map +1 -1
- package/dist/src/BranchDecisionEngine.d.ts +73 -0
- package/dist/src/BranchDecisionEngine.d.ts.map +1 -0
- package/dist/src/BranchDecisionEngine.js +195 -0
- package/dist/src/BranchDecisionEngine.js.map +1 -0
- package/dist/src/agent/agent-approval.controller.d.ts +20 -0
- package/dist/src/agent/agent-approval.controller.d.ts.map +1 -0
- package/dist/src/agent/agent-approval.controller.js +101 -0
- package/dist/src/agent/agent-approval.controller.js.map +1 -0
- package/dist/src/agent/agent-approval.entity.d.ts +15 -0
- package/dist/src/agent/agent-approval.entity.d.ts.map +1 -0
- package/dist/src/agent/agent-approval.entity.js +63 -0
- package/dist/src/agent/agent-approval.entity.js.map +1 -0
- package/dist/src/agent/agent-approval.service.d.ts +35 -0
- package/dist/src/agent/agent-approval.service.d.ts.map +1 -0
- package/dist/src/agent/agent-approval.service.js +109 -0
- package/dist/src/agent/agent-approval.service.js.map +1 -0
- package/dist/src/agent/agent-gateway.controller.d.ts +30 -0
- package/dist/src/agent/agent-gateway.controller.d.ts.map +1 -0
- package/dist/src/agent/agent-gateway.controller.js +112 -0
- package/dist/src/agent/agent-gateway.controller.js.map +1 -0
- package/dist/src/agent/agent-gateway.service.d.ts +33 -0
- package/dist/src/agent/agent-gateway.service.d.ts.map +1 -0
- package/dist/src/agent/agent-gateway.service.js +84 -0
- package/dist/src/agent/agent-gateway.service.js.map +1 -0
- package/dist/src/agent/agent-registry.service.d.ts +30 -0
- package/dist/src/agent/agent-registry.service.d.ts.map +1 -0
- package/dist/src/agent/agent-registry.service.js +45 -0
- package/dist/src/agent/agent-registry.service.js.map +1 -0
- package/dist/src/agent/agent-run-persistence.service.d.ts +82 -0
- package/dist/src/agent/agent-run-persistence.service.d.ts.map +1 -0
- package/dist/src/agent/agent-run-persistence.service.js +171 -0
- package/dist/src/agent/agent-run-persistence.service.js.map +1 -0
- package/dist/src/agent/agent-run-step.entity.d.ts +23 -0
- package/dist/src/agent/agent-run-step.entity.d.ts.map +1 -0
- package/dist/src/agent/agent-run-step.entity.js +76 -0
- package/dist/src/agent/agent-run-step.entity.js.map +1 -0
- package/dist/src/agent/agent-run.controller.d.ts +42 -0
- package/dist/src/agent/agent-run.controller.d.ts.map +1 -0
- package/dist/src/agent/agent-run.controller.js +195 -0
- package/dist/src/agent/agent-run.controller.js.map +1 -0
- package/dist/src/agent/agent-run.entity.d.ts +35 -0
- package/dist/src/agent/agent-run.entity.d.ts.map +1 -0
- package/dist/src/agent/agent-run.entity.js +98 -0
- package/dist/src/agent/agent-run.entity.js.map +1 -0
- package/dist/src/agent/agent-run.service.d.ts +48 -0
- package/dist/src/agent/agent-run.service.d.ts.map +1 -0
- package/dist/src/agent/agent-run.service.js +155 -0
- package/dist/src/agent/agent-run.service.js.map +1 -0
- package/dist/src/agent/agent-session.controller.d.ts +20 -0
- package/dist/src/agent/agent-session.controller.d.ts.map +1 -0
- package/dist/src/agent/agent-session.controller.js +97 -0
- package/dist/src/agent/agent-session.controller.js.map +1 -0
- package/dist/src/agent/agent-session.entity.d.ts +13 -0
- package/dist/src/agent/agent-session.entity.d.ts.map +1 -0
- package/dist/src/agent/agent-session.entity.js +57 -0
- package/dist/src/agent/agent-session.entity.js.map +1 -0
- package/dist/src/agent/agent-session.service.d.ts +38 -0
- package/dist/src/agent/agent-session.service.d.ts.map +1 -0
- package/dist/src/agent/agent-session.service.js +112 -0
- package/dist/src/agent/agent-session.service.js.map +1 -0
- package/dist/src/agent/coding-tools.d.ts +7 -0
- package/dist/src/agent/coding-tools.d.ts.map +1 -0
- package/dist/src/agent/coding-tools.js +181 -0
- package/dist/src/agent/coding-tools.js.map +1 -0
- package/dist/src/agent/computer-use-tools.d.ts +15 -0
- package/dist/src/agent/computer-use-tools.d.ts.map +1 -0
- package/dist/src/agent/computer-use-tools.js +256 -0
- package/dist/src/agent/computer-use-tools.js.map +1 -0
- package/dist/src/agent/external-agent.controller.d.ts +41 -0
- package/dist/src/agent/external-agent.controller.d.ts.map +1 -0
- package/dist/src/agent/external-agent.controller.js +129 -0
- package/dist/src/agent/external-agent.controller.js.map +1 -0
- package/dist/src/agent/external-agent.entity.d.ts +22 -0
- package/dist/src/agent/external-agent.entity.d.ts.map +1 -0
- package/dist/src/agent/external-agent.entity.js +75 -0
- package/dist/src/agent/external-agent.entity.js.map +1 -0
- package/dist/src/agent/external-agent.service.d.ts +60 -0
- package/dist/src/agent/external-agent.service.d.ts.map +1 -0
- package/dist/src/agent/external-agent.service.js +143 -0
- package/dist/src/agent/external-agent.service.js.map +1 -0
- package/dist/src/ai.module.d.ts +22 -0
- package/dist/src/ai.module.d.ts.map +1 -0
- package/dist/src/ai.module.js +178 -0
- package/dist/src/ai.module.js.map +1 -0
- package/dist/src/cli/adapters/antigravity.adapter.d.ts +31 -0
- package/dist/src/cli/adapters/antigravity.adapter.d.ts.map +1 -0
- package/dist/src/cli/adapters/antigravity.adapter.js +248 -0
- package/dist/src/cli/adapters/antigravity.adapter.js.map +1 -0
- package/dist/src/cli/adapters/claude-cli.adapter.d.ts +23 -0
- package/dist/src/cli/adapters/claude-cli.adapter.d.ts.map +1 -0
- package/dist/src/cli/adapters/claude-cli.adapter.js +81 -0
- package/dist/src/cli/adapters/claude-cli.adapter.js.map +1 -0
- package/dist/src/cli/adapters/cli-proxy-api.adapter.d.ts +32 -0
- package/dist/src/cli/adapters/cli-proxy-api.adapter.d.ts.map +1 -0
- package/dist/src/cli/adapters/cli-proxy-api.adapter.js +239 -0
- package/dist/src/cli/adapters/cli-proxy-api.adapter.js.map +1 -0
- package/dist/src/cli/adapters/codex-cli.adapter.d.ts +22 -0
- package/dist/src/cli/adapters/codex-cli.adapter.d.ts.map +1 -0
- package/dist/src/cli/adapters/codex-cli.adapter.js +76 -0
- package/dist/src/cli/adapters/codex-cli.adapter.js.map +1 -0
- package/dist/src/cli/adapters/detect-cli.d.ts +11 -0
- package/dist/src/cli/adapters/detect-cli.d.ts.map +1 -0
- package/dist/src/cli/adapters/detect-cli.js +40 -0
- package/dist/src/cli/adapters/detect-cli.js.map +1 -0
- package/dist/src/cli/adapters/gemini-cli.adapter.d.ts +21 -0
- package/dist/src/cli/adapters/gemini-cli.adapter.d.ts.map +1 -0
- package/dist/src/cli/adapters/gemini-cli.adapter.js +72 -0
- package/dist/src/cli/adapters/gemini-cli.adapter.js.map +1 -0
- package/dist/src/cli/adapters/index.d.ts +4 -0
- package/dist/src/cli/adapters/index.d.ts.map +1 -0
- package/dist/src/cli/adapters/index.js +10 -0
- package/dist/src/cli/adapters/index.js.map +1 -0
- package/dist/src/cli/cli-executor.service.d.ts +25 -0
- package/dist/src/cli/cli-executor.service.d.ts.map +1 -0
- package/dist/src/cli/cli-executor.service.js +170 -0
- package/dist/src/cli/cli-executor.service.js.map +1 -0
- package/dist/src/cli/cli-registry.service.d.ts +38 -0
- package/dist/src/cli/cli-registry.service.d.ts.map +1 -0
- package/dist/src/cli/cli-registry.service.js +114 -0
- package/dist/src/cli/cli-registry.service.js.map +1 -0
- package/dist/src/cli/controllers/ai-cli.controller.d.ts +40 -0
- package/dist/src/cli/controllers/ai-cli.controller.d.ts.map +1 -0
- package/dist/src/cli/controllers/ai-cli.controller.js +208 -0
- package/dist/src/cli/controllers/ai-cli.controller.js.map +1 -0
- package/dist/src/cli/index.d.ts +8 -0
- package/dist/src/cli/index.d.ts.map +1 -0
- package/dist/src/cli/index.js +17 -0
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cli/types.d.ts +153 -0
- package/dist/src/cli/types.d.ts.map +1 -0
- package/dist/src/cli/types.js +9 -0
- package/dist/src/cli/types.js.map +1 -0
- package/dist/src/cli/workspace.service.d.ts +42 -0
- package/dist/src/cli/workspace.service.d.ts.map +1 -0
- package/dist/src/cli/workspace.service.js +249 -0
- package/dist/src/cli/workspace.service.js.map +1 -0
- package/dist/src/computer-use/computer-use.controller.d.ts +23 -0
- package/dist/src/computer-use/computer-use.controller.d.ts.map +1 -0
- package/dist/src/computer-use/computer-use.controller.js +87 -0
- package/dist/src/computer-use/computer-use.controller.js.map +1 -0
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +51 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/orchestrator/orchestrator-plan.entity.d.ts +31 -0
- package/dist/src/orchestrator/orchestrator-plan.entity.d.ts.map +1 -0
- package/dist/src/orchestrator/orchestrator-plan.entity.js +69 -0
- package/dist/src/orchestrator/orchestrator-plan.entity.js.map +1 -0
- package/dist/src/orchestrator/orchestrator-plan.service.d.ts +27 -0
- package/dist/src/orchestrator/orchestrator-plan.service.d.ts.map +1 -0
- package/dist/src/orchestrator/orchestrator-plan.service.js +201 -0
- package/dist/src/orchestrator/orchestrator-plan.service.js.map +1 -0
- package/dist/src/orchestrator/orchestrator.controller.d.ts +29 -0
- package/dist/src/orchestrator/orchestrator.controller.d.ts.map +1 -0
- package/dist/src/orchestrator/orchestrator.controller.js +144 -0
- package/dist/src/orchestrator/orchestrator.controller.js.map +1 -0
- package/dist/src/orchestrator/workflow-feedback.entity.d.ts +12 -0
- package/dist/src/orchestrator/workflow-feedback.entity.d.ts.map +1 -0
- package/dist/src/orchestrator/workflow-feedback.entity.js +49 -0
- package/dist/src/orchestrator/workflow-feedback.entity.js.map +1 -0
- package/dist/src/orchestrator/workflow-feedback.service.d.ts +14 -0
- package/dist/src/orchestrator/workflow-feedback.service.d.ts.map +1 -0
- package/dist/src/orchestrator/workflow-feedback.service.js +51 -0
- package/dist/src/orchestrator/workflow-feedback.service.js.map +1 -0
- package/dist/src/session/claude-code-session-manager.service.d.ts +28 -0
- package/dist/src/session/claude-code-session-manager.service.d.ts.map +1 -0
- package/dist/src/session/claude-code-session-manager.service.js +177 -0
- package/dist/src/session/claude-code-session-manager.service.js.map +1 -0
- package/dist/src/skill/controllers/skill-market.controller.d.ts +18 -0
- package/dist/src/skill/controllers/skill-market.controller.d.ts.map +1 -0
- package/dist/src/skill/controllers/skill-market.controller.js +128 -0
- package/dist/src/skill/controllers/skill-market.controller.js.map +1 -0
- package/dist/src/skill/controllers/skill.controller.d.ts +37 -0
- package/dist/src/skill/controllers/skill.controller.d.ts.map +1 -0
- package/dist/src/skill/controllers/skill.controller.js +295 -0
- package/dist/src/skill/controllers/skill.controller.js.map +1 -0
- package/dist/src/skill/entities/octo-skill.entity.d.ts +22 -0
- package/dist/src/skill/entities/octo-skill.entity.d.ts.map +1 -0
- package/dist/src/skill/entities/octo-skill.entity.js +91 -0
- package/dist/src/skill/entities/octo-skill.entity.js.map +1 -0
- package/dist/src/skill/index.d.ts +9 -0
- package/dist/src/skill/index.d.ts.map +1 -0
- package/dist/src/skill/index.js +21 -0
- package/dist/src/skill/index.js.map +1 -0
- package/dist/src/skill/services/skill-generator.service.d.ts +47 -0
- package/dist/src/skill/services/skill-generator.service.d.ts.map +1 -0
- package/dist/src/skill/services/skill-generator.service.js +232 -0
- package/dist/src/skill/services/skill-generator.service.js.map +1 -0
- package/dist/src/skill/services/skill-installer.service.d.ts +65 -0
- package/dist/src/skill/services/skill-installer.service.d.ts.map +1 -0
- package/dist/src/skill/services/skill-installer.service.js +258 -0
- package/dist/src/skill/services/skill-installer.service.js.map +1 -0
- package/dist/src/skill/services/skill-market-helpers.d.ts +25 -0
- package/dist/src/skill/services/skill-market-helpers.d.ts.map +1 -0
- package/dist/src/skill/services/skill-market-helpers.js +22 -0
- package/dist/src/skill/services/skill-market-helpers.js.map +1 -0
- package/dist/src/skill/services/skill-market-utils.d.ts +25 -0
- package/dist/src/skill/services/skill-market-utils.d.ts.map +1 -0
- package/dist/src/skill/services/skill-market-utils.js +22 -0
- package/dist/src/skill/services/skill-market-utils.js.map +1 -0
- package/dist/src/skill/services/skill-market.service.d.ts +60 -0
- package/dist/src/skill/services/skill-market.service.d.ts.map +1 -0
- package/dist/src/skill/services/skill-market.service.js +228 -0
- package/dist/src/skill/services/skill-market.service.js.map +1 -0
- package/dist/src/skill/services/skill-registry.service.d.ts +61 -0
- package/dist/src/skill/services/skill-registry.service.d.ts.map +1 -0
- package/dist/src/skill/services/skill-registry.service.js +159 -0
- package/dist/src/skill/services/skill-registry.service.js.map +1 -0
- package/dist/src/skill/types.d.ts +76 -0
- package/dist/src/skill/types.d.ts.map +1 -0
- package/dist/src/skill/types.js +6 -0
- package/dist/src/skill/types.js.map +1 -0
- package/dist/src/workflow-design/DocumentExtractorAgent.d.ts +47 -0
- package/dist/src/workflow-design/DocumentExtractorAgent.d.ts.map +1 -0
- package/dist/src/workflow-design/DocumentExtractorAgent.js +118 -0
- package/dist/src/workflow-design/DocumentExtractorAgent.js.map +1 -0
- package/dist/src/workflow-design/N8nNodeKnowledgeBase.d.ts +26 -0
- package/dist/src/workflow-design/N8nNodeKnowledgeBase.d.ts.map +1 -0
- package/dist/src/workflow-design/N8nNodeKnowledgeBase.js +362 -0
- package/dist/src/workflow-design/N8nNodeKnowledgeBase.js.map +1 -0
- package/dist/src/workflow-design/OctoAgentClient.d.ts +42 -0
- package/dist/src/workflow-design/OctoAgentClient.d.ts.map +1 -0
- package/dist/src/workflow-design/OctoAgentClient.js +191 -0
- package/dist/src/workflow-design/OctoAgentClient.js.map +1 -0
- package/dist/src/workflow-design/WorkflowAssembler.d.ts +10 -0
- package/dist/src/workflow-design/WorkflowAssembler.d.ts.map +1 -0
- package/dist/src/workflow-design/WorkflowAssembler.js +81 -0
- package/dist/src/workflow-design/WorkflowAssembler.js.map +1 -0
- package/dist/src/workflow-design/WorkflowDesignOrchestrator.d.ts +45 -0
- package/dist/src/workflow-design/WorkflowDesignOrchestrator.d.ts.map +1 -0
- package/dist/src/workflow-design/WorkflowDesignOrchestrator.js +265 -0
- package/dist/src/workflow-design/WorkflowDesignOrchestrator.js.map +1 -0
- package/dist/src/workflow-design/agents/ActionChainAgent.d.ts +9 -0
- package/dist/src/workflow-design/agents/ActionChainAgent.d.ts.map +1 -0
- package/dist/src/workflow-design/agents/ActionChainAgent.js +79 -0
- package/dist/src/workflow-design/agents/ActionChainAgent.js.map +1 -0
- package/dist/src/workflow-design/agents/CodeScriptAgent.d.ts +15 -0
- package/dist/src/workflow-design/agents/CodeScriptAgent.d.ts.map +1 -0
- package/dist/src/workflow-design/agents/CodeScriptAgent.js +96 -0
- package/dist/src/workflow-design/agents/CodeScriptAgent.js.map +1 -0
- package/dist/src/workflow-design/agents/LogicFlowAgent.d.ts +9 -0
- package/dist/src/workflow-design/agents/LogicFlowAgent.d.ts.map +1 -0
- package/dist/src/workflow-design/agents/LogicFlowAgent.js +78 -0
- package/dist/src/workflow-design/agents/LogicFlowAgent.js.map +1 -0
- package/dist/src/workflow-design/agents/TriggerAnalystAgent.d.ts +9 -0
- package/dist/src/workflow-design/agents/TriggerAnalystAgent.d.ts.map +1 -0
- package/dist/src/workflow-design/agents/TriggerAnalystAgent.js +65 -0
- package/dist/src/workflow-design/agents/TriggerAnalystAgent.js.map +1 -0
- package/dist/src/workflow-design/agents/WorkflowValidatorAgent.d.ts +9 -0
- package/dist/src/workflow-design/agents/WorkflowValidatorAgent.d.ts.map +1 -0
- package/dist/src/workflow-design/agents/WorkflowValidatorAgent.js +117 -0
- package/dist/src/workflow-design/agents/WorkflowValidatorAgent.js.map +1 -0
- package/dist/src/workflow-design/index.d.ts +12 -0
- package/dist/src/workflow-design/index.d.ts.map +1 -0
- package/dist/src/workflow-design/index.js +23 -0
- package/dist/src/workflow-design/index.js.map +1 -0
- package/dist/src/workflow-design/n8n-node-templates-data.d.ts +4 -0
- package/dist/src/workflow-design/n8n-node-templates-data.d.ts.map +1 -0
- package/dist/src/workflow-design/n8n-node-templates-data.js +290 -0
- package/dist/src/workflow-design/n8n-node-templates-data.js.map +1 -0
- package/dist/src/workflow-design/types.d.ts +155 -0
- package/dist/src/workflow-design/types.d.ts.map +1 -0
- package/dist/src/workflow-design/types.js +6 -0
- package/dist/src/workflow-design/types.js.map +1 -0
- package/dist/workflow-design/DocumentExtractorAgent.d.ts +47 -0
- package/dist/workflow-design/DocumentExtractorAgent.d.ts.map +1 -0
- package/dist/workflow-design/DocumentExtractorAgent.js +118 -0
- package/dist/workflow-design/DocumentExtractorAgent.js.map +1 -0
- package/dist/workflow-design/N8nNodeKnowledgeBase.d.ts +26 -0
- package/dist/workflow-design/N8nNodeKnowledgeBase.d.ts.map +1 -0
- package/dist/workflow-design/N8nNodeKnowledgeBase.js +320 -0
- package/dist/workflow-design/N8nNodeKnowledgeBase.js.map +1 -0
- package/dist/workflow-design/OctoAgentClient.d.ts +42 -0
- package/dist/workflow-design/OctoAgentClient.d.ts.map +1 -0
- package/dist/workflow-design/OctoAgentClient.js +166 -0
- package/dist/workflow-design/OctoAgentClient.js.map +1 -0
- package/dist/workflow-design/WorkflowDesignOrchestrator.d.ts +45 -0
- package/dist/workflow-design/WorkflowDesignOrchestrator.d.ts.map +1 -0
- package/dist/workflow-design/WorkflowDesignOrchestrator.js +265 -0
- package/dist/workflow-design/WorkflowDesignOrchestrator.js.map +1 -0
- package/dist/workflow-design/agents/ActionChainAgent.d.ts +9 -0
- package/dist/workflow-design/agents/ActionChainAgent.d.ts.map +1 -0
- package/dist/workflow-design/agents/ActionChainAgent.js +79 -0
- package/dist/workflow-design/agents/ActionChainAgent.js.map +1 -0
- package/dist/workflow-design/agents/CodeScriptAgent.d.ts +15 -0
- package/dist/workflow-design/agents/CodeScriptAgent.d.ts.map +1 -0
- package/dist/workflow-design/agents/CodeScriptAgent.js +96 -0
- package/dist/workflow-design/agents/CodeScriptAgent.js.map +1 -0
- package/dist/workflow-design/agents/LogicFlowAgent.d.ts +9 -0
- package/dist/workflow-design/agents/LogicFlowAgent.d.ts.map +1 -0
- package/dist/workflow-design/agents/LogicFlowAgent.js +78 -0
- package/dist/workflow-design/agents/LogicFlowAgent.js.map +1 -0
- package/dist/workflow-design/agents/TriggerAnalystAgent.d.ts +9 -0
- package/dist/workflow-design/agents/TriggerAnalystAgent.d.ts.map +1 -0
- package/dist/workflow-design/agents/TriggerAnalystAgent.js +65 -0
- package/dist/workflow-design/agents/TriggerAnalystAgent.js.map +1 -0
- package/dist/workflow-design/agents/WorkflowValidatorAgent.d.ts +9 -0
- package/dist/workflow-design/agents/WorkflowValidatorAgent.d.ts.map +1 -0
- package/dist/workflow-design/agents/WorkflowValidatorAgent.js +117 -0
- package/dist/workflow-design/agents/WorkflowValidatorAgent.js.map +1 -0
- package/dist/workflow-design/index.d.ts +12 -0
- package/dist/workflow-design/index.d.ts.map +1 -0
- package/dist/workflow-design/index.js +23 -0
- package/dist/workflow-design/index.js.map +1 -0
- package/dist/workflow-design/types.d.ts +155 -0
- package/dist/workflow-design/types.d.ts.map +1 -0
- package/dist/workflow-design/types.js +6 -0
- package/dist/workflow-design/types.js.map +1 -0
- package/package.json +21 -14
- package/web/components/CreateWorkspaceDialog.tsx +157 -0
- package/web/components/DirBrowser.tsx +85 -0
- package/web/components/GithubTokenDialog.tsx +152 -0
- package/web/components/LocalPathSection.tsx +91 -0
- package/web/components/MarketInstallDialog.tsx +196 -0
- package/web/components/MarketSkillCard.tsx +74 -0
- package/web/components/RepoList.tsx +97 -0
- package/web/components/SearchResultsGrid.tsx +55 -0
- package/web/components/SkillCard.tsx +4 -1
- package/web/components/ToolCard.tsx +88 -0
- package/web/components/WorkspaceCard.tsx +146 -0
- package/web/components/WorkspaceItem.tsx +65 -0
- package/web/components/WorkspaceSelect.tsx +94 -0
- package/web/dist/module.iife.js +254 -0
- package/web/dynamic-entry.tsx +94 -0
- package/web/index.ts +18 -1
- package/web/manifest.ts +7 -0
- package/web/messages/en-US.json +231 -7
- package/web/messages/zh-CN.json +234 -7
- package/web/pages/AgentMarketPage.tsx +318 -0
- package/web/pages/AgentRunsPage.tsx +162 -0
- package/web/pages/AgentsPage.tsx +239 -0
- package/web/pages/AiCliToolsPage.tsx +17 -128
- package/web/pages/ApprovalsPage.tsx +260 -0
- package/web/pages/OrchestratorPage.tsx +384 -0
- package/web/pages/SessionsPage.tsx +248 -0
- package/web/pages/SkillMarketPage.tsx +25 -0
- package/web/pages/WorkspaceSection.tsx +13 -113
- package/web/pages/WorkspacesPage.tsx +29 -254
- package/web/services/agent-approval.service.ts +35 -0
- package/web/services/agent-gateway.service.ts +41 -0
- package/web/services/agent-run.service.ts +48 -0
- package/web/services/agent-session.service.ts +30 -0
- package/web/services/ai-cli-service.ts +33 -0
- package/web/services/external-agent.service.ts +38 -0
- package/web/services/orchestrator.service.ts +52 -0
- package/web/services/skill-market-service.ts +88 -0
- package/web/services/skill-service.ts +12 -0
package/dist/skill/types.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Skill-related type definitions for the SKILL.md generation system.
|
|
3
3
|
*/
|
|
4
4
|
/** Supported AI tool targets for skill installation. */
|
|
5
|
-
export type SkillTarget = 'claude' | 'cursor' | 'codex';
|
|
5
|
+
export type SkillTarget = 'claude' | 'cursor' | 'codex' | 'gemini';
|
|
6
6
|
/** Information about an AI tool installation target. */
|
|
7
7
|
export interface SkillTargetInfo {
|
|
8
8
|
id: SkillTarget;
|
|
@@ -42,4 +42,35 @@ export interface EndpointInfo {
|
|
|
42
42
|
controllerName?: string;
|
|
43
43
|
tags?: string[];
|
|
44
44
|
}
|
|
45
|
+
/** A skill discovered from an external market/GitHub repo. */
|
|
46
|
+
export interface MarketSkillInfo {
|
|
47
|
+
/** Skill name (directory name) */
|
|
48
|
+
name: string;
|
|
49
|
+
/** Skill description from SKILL.md frontmatter */
|
|
50
|
+
description: string;
|
|
51
|
+
/** GitHub owner/repo */
|
|
52
|
+
repo: string;
|
|
53
|
+
/** Path within repo to SKILL.md */
|
|
54
|
+
path: string;
|
|
55
|
+
/** Raw download URL */
|
|
56
|
+
downloadUrl: string;
|
|
57
|
+
/** Category/group inferred from path */
|
|
58
|
+
category?: string;
|
|
59
|
+
/** Stars of the repo */
|
|
60
|
+
stars?: number;
|
|
61
|
+
}
|
|
62
|
+
/** Search result from the skill market. */
|
|
63
|
+
export interface MarketSearchResult {
|
|
64
|
+
skills: MarketSkillInfo[];
|
|
65
|
+
total: number;
|
|
66
|
+
source: string;
|
|
67
|
+
}
|
|
68
|
+
/** Known skill repositories that can be browsed. */
|
|
69
|
+
export interface SkillRepo {
|
|
70
|
+
owner: string;
|
|
71
|
+
repo: string;
|
|
72
|
+
description: string;
|
|
73
|
+
stars: number;
|
|
74
|
+
skillCount?: number;
|
|
75
|
+
}
|
|
45
76
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skill/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skill/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEnE,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,WAAW,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,+BAA+B;AAC/B,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAElD,uDAAuD;AACvD,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,kCAAkC;AAClC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Requirement type accepted by the decision engine.
|
|
3
|
+
* Maps directly to `FeedbackItem.type` values used in the self-iteration
|
|
4
|
+
* pipeline.
|
|
5
|
+
*/
|
|
6
|
+
export type RequirementType = 'bug' | 'enhancement' | 'new_feature' | 'arch';
|
|
7
|
+
/**
|
|
8
|
+
* Branch strategy produced by the decision engine.
|
|
9
|
+
*
|
|
10
|
+
* | Strategy | Meaning |
|
|
11
|
+
* |--------------|----------------------------------------------------------------|
|
|
12
|
+
* | `hotfix` | Minimal patch on the current stable branch (bug fixes, typos) |
|
|
13
|
+
* | `feature` | Feature branch off the current integration branch |
|
|
14
|
+
* | `experiment` | Isolated long-lived branch for architectural exploration |
|
|
15
|
+
*/
|
|
16
|
+
export type BranchStrategy = 'hotfix' | 'feature' | 'experiment';
|
|
17
|
+
/**
|
|
18
|
+
* Full decision record returned by {@link BranchDecisionEngine.decide}.
|
|
19
|
+
*/
|
|
20
|
+
export interface BranchDecision {
|
|
21
|
+
/** Chosen branch strategy. */
|
|
22
|
+
strategy: BranchStrategy;
|
|
23
|
+
/**
|
|
24
|
+
* Human-readable explanation of why this strategy was selected.
|
|
25
|
+
* Recorded in the generated TASK.md for traceability.
|
|
26
|
+
*/
|
|
27
|
+
rationale: string;
|
|
28
|
+
/**
|
|
29
|
+
* Confidence score in the range [0, 1].
|
|
30
|
+
* Scores below 0.8 should trigger a human-confirmation step before
|
|
31
|
+
* automatically dispatching a worktree (per n8n workflow design).
|
|
32
|
+
*/
|
|
33
|
+
confidence: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Input to the decision engine.
|
|
37
|
+
*/
|
|
38
|
+
export interface DecisionInput {
|
|
39
|
+
/** Requirement type from the feedback item. */
|
|
40
|
+
type: RequirementType;
|
|
41
|
+
/**
|
|
42
|
+
* Full text of the requirement (title + content).
|
|
43
|
+
* Used for keyword matching when the type alone is ambiguous.
|
|
44
|
+
*/
|
|
45
|
+
text: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Rule-based branch strategy decision engine for the Octo self-iteration
|
|
49
|
+
* pipeline.
|
|
50
|
+
*
|
|
51
|
+
* Evaluates a prioritised rule table against the requirement type and
|
|
52
|
+
* free-text content to select the appropriate git branch strategy.
|
|
53
|
+
*
|
|
54
|
+
* This is a pure, stateless function object — no DI, no I/O.
|
|
55
|
+
* It can be unit-tested without any infrastructure setup.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const engine = new BranchDecisionEngine();
|
|
60
|
+
* const decision = engine.decide({ type: 'bug', text: '登录页崩溃 null error' });
|
|
61
|
+
* // → { strategy: 'hotfix', confidence: 0.95, rationale: '...' }
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export declare class BranchDecisionEngine {
|
|
65
|
+
/**
|
|
66
|
+
* Evaluates the rule table and returns the first matching branch decision.
|
|
67
|
+
*
|
|
68
|
+
* @param input - Requirement type and full text content.
|
|
69
|
+
* @returns The selected {@link BranchDecision}.
|
|
70
|
+
*/
|
|
71
|
+
decide(input: DecisionInput): BranchDecision;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=BranchDecisionEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BranchDecisionEngine.d.ts","sourceRoot":"","sources":["../../src/BranchDecisionEngine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,aAAa,GAAG,aAAa,GAAG,MAAM,CAAC;AAE7E;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,IAAI,EAAE,eAAe,CAAC;IACtB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AA8LD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,oBAAoB;IAC/B;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc;CAoB7C"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BranchDecisionEngine = void 0;
|
|
4
|
+
// ── Keyword lists ─────────────────────────────────────────────────────────────
|
|
5
|
+
/**
|
|
6
|
+
* Keywords that strongly indicate a production defect requiring an urgent
|
|
7
|
+
* hotfix regardless of the nominal `type` field.
|
|
8
|
+
*/
|
|
9
|
+
const CRASH_KEYWORDS = [
|
|
10
|
+
'错误',
|
|
11
|
+
'崩溃',
|
|
12
|
+
'报错',
|
|
13
|
+
'exception',
|
|
14
|
+
'null',
|
|
15
|
+
'undefined',
|
|
16
|
+
'crash',
|
|
17
|
+
'fatal',
|
|
18
|
+
'panic',
|
|
19
|
+
'异常',
|
|
20
|
+
'挂了',
|
|
21
|
+
'无法启动',
|
|
22
|
+
'白屏',
|
|
23
|
+
'500',
|
|
24
|
+
'error',
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* Keywords that suggest the requirement involves introducing a brand-new
|
|
28
|
+
* `@octo-cyber/*` package or cross-module architecture work, pushing the
|
|
29
|
+
* decision toward the `experiment` strategy.
|
|
30
|
+
*/
|
|
31
|
+
const ARCH_KEYWORDS = [
|
|
32
|
+
'arch',
|
|
33
|
+
'架构',
|
|
34
|
+
'breaking',
|
|
35
|
+
'refactor',
|
|
36
|
+
'重构',
|
|
37
|
+
'new package',
|
|
38
|
+
'新包',
|
|
39
|
+
'@octo-cyber',
|
|
40
|
+
'major',
|
|
41
|
+
'v0.6',
|
|
42
|
+
'v1.0',
|
|
43
|
+
'跨模块',
|
|
44
|
+
];
|
|
45
|
+
/**
|
|
46
|
+
* Keywords that indicate a new, self-contained feature that can be developed
|
|
47
|
+
* on a regular feature branch.
|
|
48
|
+
*/
|
|
49
|
+
const NEW_MODULE_KEYWORDS = [
|
|
50
|
+
'new module',
|
|
51
|
+
'新模块',
|
|
52
|
+
'new page',
|
|
53
|
+
'新页面',
|
|
54
|
+
'new feature',
|
|
55
|
+
'新功能',
|
|
56
|
+
'integration',
|
|
57
|
+
'集成',
|
|
58
|
+
];
|
|
59
|
+
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
60
|
+
function containsAny(text, keywords) {
|
|
61
|
+
const lower = text.toLowerCase();
|
|
62
|
+
return keywords.some((kw) => lower.includes(kw.toLowerCase()));
|
|
63
|
+
}
|
|
64
|
+
// Pre-sorted by priority so decide() incurs no per-call sort overhead.
|
|
65
|
+
const RULES = [
|
|
66
|
+
// ── P0: Crash / error keywords override everything ──────────────────────────
|
|
67
|
+
{
|
|
68
|
+
priority: 0,
|
|
69
|
+
description: 'Crash/error keywords detected — urgent hotfix',
|
|
70
|
+
matches: ({ text }) => containsAny(text, CRASH_KEYWORDS),
|
|
71
|
+
strategy: 'hotfix',
|
|
72
|
+
rationale: () => '检测到崩溃/错误关键词,判定为紧急缺陷,采用 hotfix 策略直接基于稳定分支修复',
|
|
73
|
+
confidence: 0.95,
|
|
74
|
+
},
|
|
75
|
+
// ── P1: Explicit bug type ────────────────────────────────────────────────────
|
|
76
|
+
{
|
|
77
|
+
priority: 1,
|
|
78
|
+
description: 'type=bug — hotfix',
|
|
79
|
+
matches: ({ type }) => type === 'bug',
|
|
80
|
+
strategy: 'hotfix',
|
|
81
|
+
rationale: () => 'type=bug,采用 hotfix 策略,基于当前稳定分支修复缺陷',
|
|
82
|
+
confidence: 0.9,
|
|
83
|
+
},
|
|
84
|
+
// ── P2: Arch / breaking change ───────────────────────────────────────────────
|
|
85
|
+
{
|
|
86
|
+
priority: 2,
|
|
87
|
+
description: 'type=arch OR arch keywords — experiment branch',
|
|
88
|
+
matches: ({ type, text }) => type === 'arch' || containsAny(text, ARCH_KEYWORDS),
|
|
89
|
+
strategy: 'experiment',
|
|
90
|
+
rationale: ({ type, text }) => {
|
|
91
|
+
if (type === 'arch') {
|
|
92
|
+
return 'type=arch,架构级变更采用独立 experiment 分支,需人工确认后合并';
|
|
93
|
+
}
|
|
94
|
+
return `检测到架构关键词(${ARCH_KEYWORDS.find((kw) => text.toLowerCase().includes(kw.toLowerCase()))}),涉及跨模块或大型重构,采用 experiment 分支隔离风险`;
|
|
95
|
+
},
|
|
96
|
+
confidence: 0.85,
|
|
97
|
+
},
|
|
98
|
+
// ── P3: new_feature with new @octo-cyber/* package signals ──────────────────
|
|
99
|
+
{
|
|
100
|
+
priority: 3,
|
|
101
|
+
description: 'new_feature + new-module keywords — experiment branch',
|
|
102
|
+
matches: ({ type, text }) => type === 'new_feature' && containsAny(text, ARCH_KEYWORDS),
|
|
103
|
+
strategy: 'experiment',
|
|
104
|
+
rationale: () => 'new_feature 需要新建 @octo-cyber/* 包或涉及跨模块架构,采用 experiment 分支独立演进',
|
|
105
|
+
confidence: 0.8,
|
|
106
|
+
},
|
|
107
|
+
// ── P4: new_feature within existing modules ──────────────────────────────────
|
|
108
|
+
{
|
|
109
|
+
priority: 4,
|
|
110
|
+
description: 'new_feature — feature branch',
|
|
111
|
+
matches: ({ type }) => type === 'new_feature',
|
|
112
|
+
strategy: 'feature',
|
|
113
|
+
rationale: ({ text }) => {
|
|
114
|
+
if (containsAny(text, NEW_MODULE_KEYWORDS)) {
|
|
115
|
+
return 'new_feature 涉及新页面或新功能模块,在现有模块内扩展,采用 feature 分支开发';
|
|
116
|
+
}
|
|
117
|
+
return 'new_feature 在现有模块可扩展范围内,采用 feature 分支,合并到 v0.5 主干';
|
|
118
|
+
},
|
|
119
|
+
confidence: 0.85,
|
|
120
|
+
},
|
|
121
|
+
// ── P5: Small enhancement (≤200 chars) ──────────────────────────────────────
|
|
122
|
+
{
|
|
123
|
+
priority: 5,
|
|
124
|
+
description: 'enhancement + short content — hotfix',
|
|
125
|
+
matches: ({ type, text }) => type === 'enhancement' && text.length <= 200,
|
|
126
|
+
strategy: 'hotfix',
|
|
127
|
+
rationale: () => 'enhancement 内容较短(≤200字),判定为小改动,采用 hotfix 策略快速交付',
|
|
128
|
+
confidence: 0.8,
|
|
129
|
+
},
|
|
130
|
+
// ── P6: Larger enhancement ───────────────────────────────────────────────────
|
|
131
|
+
{
|
|
132
|
+
priority: 6,
|
|
133
|
+
description: 'enhancement + longer content — feature branch',
|
|
134
|
+
matches: ({ type }) => type === 'enhancement',
|
|
135
|
+
strategy: 'feature',
|
|
136
|
+
rationale: () => 'enhancement 内容较长(>200字),可能涉及新字段或新流程,采用 feature 分支开发,功能开关控制上线',
|
|
137
|
+
confidence: 0.75,
|
|
138
|
+
},
|
|
139
|
+
// ── P7: Fallback ─────────────────────────────────────────────────────────────
|
|
140
|
+
{
|
|
141
|
+
priority: 7,
|
|
142
|
+
description: 'fallback — feature branch, low confidence',
|
|
143
|
+
matches: () => true,
|
|
144
|
+
strategy: 'feature',
|
|
145
|
+
rationale: () => '无法匹配明确规则,默认采用 feature 分支,置信度较低,建议人工确认分支策略',
|
|
146
|
+
confidence: 0.5,
|
|
147
|
+
},
|
|
148
|
+
];
|
|
149
|
+
// ── Engine ────────────────────────────────────────────────────────────────────
|
|
150
|
+
/**
|
|
151
|
+
* Rule-based branch strategy decision engine for the Octo self-iteration
|
|
152
|
+
* pipeline.
|
|
153
|
+
*
|
|
154
|
+
* Evaluates a prioritised rule table against the requirement type and
|
|
155
|
+
* free-text content to select the appropriate git branch strategy.
|
|
156
|
+
*
|
|
157
|
+
* This is a pure, stateless function object — no DI, no I/O.
|
|
158
|
+
* It can be unit-tested without any infrastructure setup.
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* const engine = new BranchDecisionEngine();
|
|
163
|
+
* const decision = engine.decide({ type: 'bug', text: '登录页崩溃 null error' });
|
|
164
|
+
* // → { strategy: 'hotfix', confidence: 0.95, rationale: '...' }
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
class BranchDecisionEngine {
|
|
168
|
+
/**
|
|
169
|
+
* Evaluates the rule table and returns the first matching branch decision.
|
|
170
|
+
*
|
|
171
|
+
* @param input - Requirement type and full text content.
|
|
172
|
+
* @returns The selected {@link BranchDecision}.
|
|
173
|
+
*/
|
|
174
|
+
decide(input) {
|
|
175
|
+
for (const rule of RULES) {
|
|
176
|
+
if (rule.matches(input)) {
|
|
177
|
+
return {
|
|
178
|
+
strategy: rule.strategy,
|
|
179
|
+
rationale: rule.rationale(input),
|
|
180
|
+
confidence: rule.confidence,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// The fallback rule (priority 7) always matches, so this is unreachable.
|
|
185
|
+
// Included for TypeScript exhaustiveness.
|
|
186
|
+
/* istanbul ignore next */
|
|
187
|
+
return {
|
|
188
|
+
strategy: 'feature',
|
|
189
|
+
rationale: '未匹配任何规则,使用默认 feature 策略',
|
|
190
|
+
confidence: 0.5,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.BranchDecisionEngine = BranchDecisionEngine;
|
|
195
|
+
//# sourceMappingURL=BranchDecisionEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BranchDecisionEngine.js","sourceRoot":"","sources":["../../src/BranchDecisionEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Request, Response } from '@octo-cyber/core';
|
|
2
|
+
/**
|
|
3
|
+
* AgentApprovalController — human-in-the-loop approval API.
|
|
4
|
+
*
|
|
5
|
+
* Endpoints:
|
|
6
|
+
* POST /api/v1/ai/agent/approval — Create an approval request
|
|
7
|
+
* GET /api/v1/ai/agent/approval/pending — List pending approvals
|
|
8
|
+
* GET /api/v1/ai/agent/approval/:id — Get a specific approval
|
|
9
|
+
* POST /api/v1/ai/agent/approval/:id/approve — Approve a request
|
|
10
|
+
* POST /api/v1/ai/agent/approval/:id/reject — Reject a request
|
|
11
|
+
*/
|
|
12
|
+
export declare class AgentApprovalController {
|
|
13
|
+
private get service();
|
|
14
|
+
createApproval(req: Request, res: Response): Promise<void>;
|
|
15
|
+
listPending(_req: Request, res: Response): Promise<void>;
|
|
16
|
+
getApproval(req: Request, res: Response): Promise<void>;
|
|
17
|
+
approveRequest(req: Request, res: Response): Promise<void>;
|
|
18
|
+
rejectRequest(req: Request, res: Response): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=agent-approval.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-approval.controller.d.ts","sourceRoot":"","sources":["../../../src/agent/agent-approval.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG1D;;;;;;;;;GASG;AACH,qBACa,uBAAuB;IAClC,OAAO,KAAK,OAAO,GAElB;IAGK,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB1D,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxD,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvD,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1D,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAOhE"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AgentApprovalController = void 0;
|
|
13
|
+
const core_1 = require("@octo-cyber/core");
|
|
14
|
+
const agent_approval_service_js_1 = require("./agent-approval.service.js");
|
|
15
|
+
/**
|
|
16
|
+
* AgentApprovalController — human-in-the-loop approval API.
|
|
17
|
+
*
|
|
18
|
+
* Endpoints:
|
|
19
|
+
* POST /api/v1/ai/agent/approval — Create an approval request
|
|
20
|
+
* GET /api/v1/ai/agent/approval/pending — List pending approvals
|
|
21
|
+
* GET /api/v1/ai/agent/approval/:id — Get a specific approval
|
|
22
|
+
* POST /api/v1/ai/agent/approval/:id/approve — Approve a request
|
|
23
|
+
* POST /api/v1/ai/agent/approval/:id/reject — Reject a request
|
|
24
|
+
*/
|
|
25
|
+
let AgentApprovalController = class AgentApprovalController {
|
|
26
|
+
get service() {
|
|
27
|
+
return core_1.Container.get(agent_approval_service_js_1.AgentApprovalService);
|
|
28
|
+
}
|
|
29
|
+
async createApproval(req, res) {
|
|
30
|
+
const body = req.body;
|
|
31
|
+
if (!body.runId || typeof body.runId !== 'string' || body.runId.trim().length === 0) {
|
|
32
|
+
throw core_1.AppError.badRequest('Missing or invalid runId');
|
|
33
|
+
}
|
|
34
|
+
if (!body.question || typeof body.question !== 'string' || body.question.trim().length === 0) {
|
|
35
|
+
throw core_1.AppError.badRequest('Missing or invalid question');
|
|
36
|
+
}
|
|
37
|
+
const context = typeof body.context === 'string' ? body.context : undefined;
|
|
38
|
+
const approval = await this.service.create(body.runId.trim(), body.question.trim(), context);
|
|
39
|
+
res.json(core_1.ApiResponse.ok(this.service.toDto(approval)));
|
|
40
|
+
}
|
|
41
|
+
async listPending(_req, res) {
|
|
42
|
+
const approvals = await this.service.getPending();
|
|
43
|
+
res.json(core_1.ApiResponse.ok(approvals.map((a) => this.service.toDto(a))));
|
|
44
|
+
}
|
|
45
|
+
async getApproval(req, res) {
|
|
46
|
+
const id = String(req.params['id'] ?? '');
|
|
47
|
+
const approval = await this.service.getById(id);
|
|
48
|
+
if (!approval)
|
|
49
|
+
throw core_1.AppError.notFound(`Agent approval not found: ${id}`);
|
|
50
|
+
res.json(core_1.ApiResponse.ok(this.service.toDto(approval)));
|
|
51
|
+
}
|
|
52
|
+
async approveRequest(req, res) {
|
|
53
|
+
const id = String(req.params['id'] ?? '');
|
|
54
|
+
const body = req.body;
|
|
55
|
+
const response = typeof body.response === 'string' ? body.response : undefined;
|
|
56
|
+
const approval = await this.service.respond(id, true, response);
|
|
57
|
+
res.json(core_1.ApiResponse.ok(this.service.toDto(approval)));
|
|
58
|
+
}
|
|
59
|
+
async rejectRequest(req, res) {
|
|
60
|
+
const id = String(req.params['id'] ?? '');
|
|
61
|
+
const body = req.body;
|
|
62
|
+
const response = typeof body.response === 'string' ? body.response : undefined;
|
|
63
|
+
const approval = await this.service.respond(id, false, response);
|
|
64
|
+
res.json(core_1.ApiResponse.ok(this.service.toDto(approval)));
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
exports.AgentApprovalController = AgentApprovalController;
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, core_1.Post)('/approval'),
|
|
70
|
+
__metadata("design:type", Function),
|
|
71
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
72
|
+
__metadata("design:returntype", Promise)
|
|
73
|
+
], AgentApprovalController.prototype, "createApproval", null);
|
|
74
|
+
__decorate([
|
|
75
|
+
(0, core_1.Get)('/approval/pending'),
|
|
76
|
+
__metadata("design:type", Function),
|
|
77
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
78
|
+
__metadata("design:returntype", Promise)
|
|
79
|
+
], AgentApprovalController.prototype, "listPending", null);
|
|
80
|
+
__decorate([
|
|
81
|
+
(0, core_1.Get)('/approval/:id'),
|
|
82
|
+
__metadata("design:type", Function),
|
|
83
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
84
|
+
__metadata("design:returntype", Promise)
|
|
85
|
+
], AgentApprovalController.prototype, "getApproval", null);
|
|
86
|
+
__decorate([
|
|
87
|
+
(0, core_1.Post)('/approval/:id/approve'),
|
|
88
|
+
__metadata("design:type", Function),
|
|
89
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
90
|
+
__metadata("design:returntype", Promise)
|
|
91
|
+
], AgentApprovalController.prototype, "approveRequest", null);
|
|
92
|
+
__decorate([
|
|
93
|
+
(0, core_1.Post)('/approval/:id/reject'),
|
|
94
|
+
__metadata("design:type", Function),
|
|
95
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
96
|
+
__metadata("design:returntype", Promise)
|
|
97
|
+
], AgentApprovalController.prototype, "rejectRequest", null);
|
|
98
|
+
exports.AgentApprovalController = AgentApprovalController = __decorate([
|
|
99
|
+
(0, core_1.Controller)('/api/v1/ai/agent')
|
|
100
|
+
], AgentApprovalController);
|
|
101
|
+
//# sourceMappingURL=agent-approval.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-approval.controller.js","sourceRoot":"","sources":["../../../src/agent/agent-approval.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type AgentApprovalStatus = 'pending' | 'approved' | 'rejected';
|
|
2
|
+
export declare class AgentApproval {
|
|
3
|
+
id: string;
|
|
4
|
+
runId: string;
|
|
5
|
+
/** The question or action description requiring human approval. */
|
|
6
|
+
question: string;
|
|
7
|
+
/** Optional JSON or text context to help the reviewer decide. */
|
|
8
|
+
context: string | null;
|
|
9
|
+
status: AgentApprovalStatus;
|
|
10
|
+
/** Optional response message from the human reviewer. */
|
|
11
|
+
response: string | null;
|
|
12
|
+
respondedAt: Date | null;
|
|
13
|
+
createdAt: Date;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=agent-approval.entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-approval.entity.d.ts","sourceRoot":"","sources":["../../../src/agent/agent-approval.entity.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEtE,qBACa,aAAa;IAExB,EAAE,EAAG,MAAM,CAAC;IAGZ,KAAK,EAAG,MAAM,CAAC;IAEf,mEAAmE;IAEnE,QAAQ,EAAG,MAAM,CAAC;IAElB,iEAAiE;IAEjE,OAAO,EAAG,MAAM,GAAG,IAAI,CAAC;IAGxB,MAAM,EAAG,mBAAmB,CAAC;IAE7B,yDAAyD;IAEzD,QAAQ,EAAG,MAAM,GAAG,IAAI,CAAC;IAGzB,WAAW,EAAG,IAAI,GAAG,IAAI,CAAC;IAG1B,SAAS,EAAG,IAAI,CAAC;CAClB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AgentApproval = void 0;
|
|
13
|
+
const core_1 = require("@octo-cyber/core");
|
|
14
|
+
let AgentApproval = class AgentApproval {
|
|
15
|
+
id;
|
|
16
|
+
runId;
|
|
17
|
+
/** The question or action description requiring human approval. */
|
|
18
|
+
question;
|
|
19
|
+
/** Optional JSON or text context to help the reviewer decide. */
|
|
20
|
+
context;
|
|
21
|
+
status;
|
|
22
|
+
/** Optional response message from the human reviewer. */
|
|
23
|
+
response;
|
|
24
|
+
respondedAt;
|
|
25
|
+
createdAt;
|
|
26
|
+
};
|
|
27
|
+
exports.AgentApproval = AgentApproval;
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, core_1.PrimaryGeneratedColumn)('uuid'),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], AgentApproval.prototype, "id", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, core_1.Column)({ type: 'varchar', length: 36, name: 'run_id' }),
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], AgentApproval.prototype, "runId", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, core_1.Column)({ type: 'text' }),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], AgentApproval.prototype, "question", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, core_1.Column)({ type: 'text', nullable: true }),
|
|
42
|
+
__metadata("design:type", Object)
|
|
43
|
+
], AgentApproval.prototype, "context", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, core_1.Column)({ type: 'varchar', length: 32, default: 'pending' }),
|
|
46
|
+
__metadata("design:type", String)
|
|
47
|
+
], AgentApproval.prototype, "status", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, core_1.Column)({ type: 'text', nullable: true }),
|
|
50
|
+
__metadata("design:type", Object)
|
|
51
|
+
], AgentApproval.prototype, "response", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
(0, core_1.Column)({ type: 'datetime', nullable: true, name: 'responded_at' }),
|
|
54
|
+
__metadata("design:type", Object)
|
|
55
|
+
], AgentApproval.prototype, "respondedAt", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, core_1.CreateDateColumn)({ name: 'created_at' }),
|
|
58
|
+
__metadata("design:type", Date)
|
|
59
|
+
], AgentApproval.prototype, "createdAt", void 0);
|
|
60
|
+
exports.AgentApproval = AgentApproval = __decorate([
|
|
61
|
+
(0, core_1.Entity)('agent_approval')
|
|
62
|
+
], AgentApproval);
|
|
63
|
+
//# sourceMappingURL=agent-approval.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-approval.entity.js","sourceRoot":"","sources":["../../../src/agent/agent-approval.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAK0B;AAKnB,IAAM,aAAa,GAAnB,MAAM,aAAa;IAExB,EAAE,CAAU;IAGZ,KAAK,CAAU;IAEf,mEAAmE;IAEnE,QAAQ,CAAU;IAElB,iEAAiE;IAEjE,OAAO,CAAiB;IAGxB,MAAM,CAAuB;IAE7B,yDAAyD;IAEzD,QAAQ,CAAiB;IAGzB,WAAW,CAAe;IAG1B,SAAS,CAAQ;CAClB,CAAA;AA3BY,sCAAa;AAExB;IADC,IAAA,6BAAsB,EAAC,MAAM,CAAC;;yCACnB;AAGZ;IADC,IAAA,aAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;4CACzC;AAIf;IADC,IAAA,aAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;+CACP;AAIlB;IADC,IAAA,aAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACjB;AAGxB;IADC,IAAA,aAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;;6CAC/B;AAI7B;IADC,IAAA,aAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CAChB;AAGzB;IADC,IAAA,aAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;kDACzC;AAG1B;IADC,IAAA,uBAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC7B,IAAI;gDAAC;wBA1BN,aAAa;IADzB,IAAA,aAAM,EAAC,gBAAgB,CAAC;GACZ,aAAa,CA2BzB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Repository } from '@octo-cyber/core';
|
|
2
|
+
import { AgentApproval } from './agent-approval.entity.js';
|
|
3
|
+
export interface AgentApprovalDto {
|
|
4
|
+
id: string;
|
|
5
|
+
runId: string;
|
|
6
|
+
question: string;
|
|
7
|
+
context: string | null;
|
|
8
|
+
status: 'pending' | 'approved' | 'rejected';
|
|
9
|
+
response: string | null;
|
|
10
|
+
respondedAt: string | null;
|
|
11
|
+
createdAt: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* AgentApprovalService — human-in-the-loop approval mechanism.
|
|
15
|
+
*
|
|
16
|
+
* An agent creates an approval request when it needs a human to confirm a
|
|
17
|
+
* sensitive operation. The agent then calls waitForResponse() to block until
|
|
18
|
+
* a human approves or rejects, or until the timeout expires.
|
|
19
|
+
*/
|
|
20
|
+
export declare class AgentApprovalService {
|
|
21
|
+
private repo;
|
|
22
|
+
setRepository(repo: Repository<AgentApproval>): void;
|
|
23
|
+
private getRepo;
|
|
24
|
+
create(runId: string, question: string, context?: string): Promise<AgentApproval>;
|
|
25
|
+
getPending(): Promise<AgentApproval[]>;
|
|
26
|
+
getById(id: string): Promise<AgentApproval | null>;
|
|
27
|
+
respond(id: string, approved: boolean, response?: string): Promise<AgentApproval>;
|
|
28
|
+
/**
|
|
29
|
+
* Poll the database every 2 s until the approval is resolved or timeout expires.
|
|
30
|
+
* Returns the final decision or 'timeout'.
|
|
31
|
+
*/
|
|
32
|
+
waitForResponse(id: string, timeoutMs?: number): Promise<'approved' | 'rejected' | 'timeout'>;
|
|
33
|
+
toDto(approval: AgentApproval): AgentApprovalDto;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=agent-approval.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-approval.service.d.ts","sourceRoot":"","sources":["../../../src/agent/agent-approval.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAI3D,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IAC5C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,qBACa,oBAAoB;IAC/B,OAAO,CAAC,IAAI,CAA0C;IAEtD,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,IAAI;IAIpD,OAAO,CAAC,OAAO;IAKT,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAajF,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAOtC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAIlD,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAmBvF;;;OAGG;IACG,eAAe,CACnB,EAAE,EAAE,MAAM,EACV,SAAS,SAAU,GAClB,OAAO,CAAC,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAgB/C,KAAK,CAAC,QAAQ,EAAE,aAAa,GAAG,gBAAgB;CAYjD"}
|