@octo-cyber/ai 0.5.6 → 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.
Files changed (175) hide show
  1. package/dist/BranchDecisionEngine.d.ts +73 -0
  2. package/dist/BranchDecisionEngine.d.ts.map +1 -0
  3. package/dist/BranchDecisionEngine.js +195 -0
  4. package/dist/BranchDecisionEngine.js.map +1 -0
  5. package/dist/agent/coding-tools.d.ts +7 -0
  6. package/dist/agent/coding-tools.d.ts.map +1 -0
  7. package/dist/agent/coding-tools.js +181 -0
  8. package/dist/agent/coding-tools.js.map +1 -0
  9. package/dist/ai.module.d.ts +16 -0
  10. package/dist/ai.module.d.ts.map +1 -0
  11. package/dist/ai.module.js +106 -0
  12. package/dist/ai.module.js.map +1 -0
  13. package/dist/cli/adapters/antigravity.adapter.d.ts +31 -0
  14. package/dist/cli/adapters/antigravity.adapter.d.ts.map +1 -0
  15. package/dist/cli/adapters/antigravity.adapter.js +248 -0
  16. package/dist/cli/adapters/antigravity.adapter.js.map +1 -0
  17. package/dist/cli/adapters/claude-cli.adapter.d.ts +23 -0
  18. package/dist/cli/adapters/claude-cli.adapter.d.ts.map +1 -0
  19. package/dist/cli/adapters/claude-cli.adapter.js +81 -0
  20. package/dist/cli/adapters/claude-cli.adapter.js.map +1 -0
  21. package/dist/cli/adapters/cli-proxy-api.adapter.d.ts +32 -0
  22. package/dist/cli/adapters/cli-proxy-api.adapter.d.ts.map +1 -0
  23. package/dist/cli/adapters/cli-proxy-api.adapter.js +239 -0
  24. package/dist/cli/adapters/cli-proxy-api.adapter.js.map +1 -0
  25. package/dist/cli/adapters/codex-cli.adapter.d.ts +22 -0
  26. package/dist/cli/adapters/codex-cli.adapter.d.ts.map +1 -0
  27. package/dist/cli/adapters/codex-cli.adapter.js +76 -0
  28. package/dist/cli/adapters/codex-cli.adapter.js.map +1 -0
  29. package/dist/cli/adapters/detect-cli.d.ts +11 -0
  30. package/dist/cli/adapters/detect-cli.d.ts.map +1 -0
  31. package/dist/cli/adapters/detect-cli.js +40 -0
  32. package/dist/cli/adapters/detect-cli.js.map +1 -0
  33. package/dist/cli/adapters/gemini-cli.adapter.d.ts +21 -0
  34. package/dist/cli/adapters/gemini-cli.adapter.d.ts.map +1 -0
  35. package/dist/cli/adapters/gemini-cli.adapter.js +72 -0
  36. package/dist/cli/adapters/gemini-cli.adapter.js.map +1 -0
  37. package/dist/cli/adapters/index.d.ts +4 -0
  38. package/dist/cli/adapters/index.d.ts.map +1 -0
  39. package/dist/cli/adapters/index.js +10 -0
  40. package/dist/cli/adapters/index.js.map +1 -0
  41. package/dist/cli/cli-executor.service.d.ts +25 -0
  42. package/dist/cli/cli-executor.service.d.ts.map +1 -0
  43. package/dist/cli/cli-executor.service.js +170 -0
  44. package/dist/cli/cli-executor.service.js.map +1 -0
  45. package/dist/cli/cli-registry.service.d.ts +38 -0
  46. package/dist/cli/cli-registry.service.d.ts.map +1 -0
  47. package/dist/cli/cli-registry.service.js +114 -0
  48. package/dist/cli/cli-registry.service.js.map +1 -0
  49. package/dist/cli/controllers/ai-cli.controller.d.ts +40 -0
  50. package/dist/cli/controllers/ai-cli.controller.d.ts.map +1 -0
  51. package/dist/cli/controllers/ai-cli.controller.js +208 -0
  52. package/dist/cli/controllers/ai-cli.controller.js.map +1 -0
  53. package/dist/cli/index.d.ts +8 -0
  54. package/dist/cli/index.d.ts.map +1 -0
  55. package/dist/cli/index.js +17 -0
  56. package/dist/cli/index.js.map +1 -0
  57. package/dist/cli/types.d.ts +153 -0
  58. package/dist/cli/types.d.ts.map +1 -0
  59. package/dist/cli/types.js +9 -0
  60. package/dist/cli/types.js.map +1 -0
  61. package/dist/cli/workspace.service.d.ts +42 -0
  62. package/dist/cli/workspace.service.d.ts.map +1 -0
  63. package/dist/cli/workspace.service.js +249 -0
  64. package/dist/cli/workspace.service.js.map +1 -0
  65. package/dist/index.d.ts +10 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +44 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/session/claude-code-session-manager.service.d.ts +28 -0
  70. package/dist/session/claude-code-session-manager.service.d.ts.map +1 -0
  71. package/dist/session/claude-code-session-manager.service.js +177 -0
  72. package/dist/session/claude-code-session-manager.service.js.map +1 -0
  73. package/dist/skill/controllers/skill-market.controller.d.ts +18 -0
  74. package/dist/skill/controllers/skill-market.controller.d.ts.map +1 -0
  75. package/dist/skill/controllers/skill-market.controller.js +128 -0
  76. package/dist/skill/controllers/skill-market.controller.js.map +1 -0
  77. package/dist/skill/controllers/skill.controller.d.ts +37 -0
  78. package/dist/skill/controllers/skill.controller.d.ts.map +1 -0
  79. package/dist/skill/controllers/skill.controller.js +295 -0
  80. package/dist/skill/controllers/skill.controller.js.map +1 -0
  81. package/dist/skill/entities/octo-skill.entity.d.ts +22 -0
  82. package/dist/skill/entities/octo-skill.entity.d.ts.map +1 -0
  83. package/dist/skill/entities/octo-skill.entity.js +91 -0
  84. package/dist/skill/entities/octo-skill.entity.js.map +1 -0
  85. package/dist/skill/index.d.ts +9 -0
  86. package/dist/skill/index.d.ts.map +1 -0
  87. package/dist/skill/index.js +21 -0
  88. package/dist/skill/index.js.map +1 -0
  89. package/dist/skill/services/skill-generator.service.d.ts +47 -0
  90. package/dist/skill/services/skill-generator.service.d.ts.map +1 -0
  91. package/dist/skill/services/skill-generator.service.js +232 -0
  92. package/dist/skill/services/skill-generator.service.js.map +1 -0
  93. package/dist/skill/services/skill-installer.service.d.ts +65 -0
  94. package/dist/skill/services/skill-installer.service.d.ts.map +1 -0
  95. package/dist/skill/services/skill-installer.service.js +258 -0
  96. package/dist/skill/services/skill-installer.service.js.map +1 -0
  97. package/dist/skill/services/skill-market.service.d.ts +60 -0
  98. package/dist/skill/services/skill-market.service.d.ts.map +1 -0
  99. package/dist/skill/services/skill-market.service.js +244 -0
  100. package/dist/skill/services/skill-market.service.js.map +1 -0
  101. package/dist/skill/services/skill-registry.service.d.ts +61 -0
  102. package/dist/skill/services/skill-registry.service.d.ts.map +1 -0
  103. package/dist/skill/services/skill-registry.service.js +159 -0
  104. package/dist/skill/services/skill-registry.service.js.map +1 -0
  105. package/dist/skill/types.d.ts +76 -0
  106. package/dist/skill/types.d.ts.map +1 -0
  107. package/dist/skill/types.js +6 -0
  108. package/dist/skill/types.js.map +1 -0
  109. package/dist/src/agent/agent-run-persistence.service.d.ts +82 -0
  110. package/dist/src/agent/agent-run-persistence.service.d.ts.map +1 -0
  111. package/dist/src/agent/agent-run-persistence.service.js +171 -0
  112. package/dist/src/agent/agent-run-persistence.service.js.map +1 -0
  113. package/dist/src/agent/agent-run-step.entity.d.ts +23 -0
  114. package/dist/src/agent/agent-run-step.entity.d.ts.map +1 -0
  115. package/dist/src/agent/agent-run-step.entity.js +76 -0
  116. package/dist/src/agent/agent-run-step.entity.js.map +1 -0
  117. package/dist/src/skill/services/skill-market-utils.d.ts +25 -0
  118. package/dist/src/skill/services/skill-market-utils.d.ts.map +1 -0
  119. package/dist/src/skill/services/skill-market-utils.js +22 -0
  120. package/dist/src/skill/services/skill-market-utils.js.map +1 -0
  121. package/dist/src/workflow-design/WorkflowAssembler.d.ts +10 -0
  122. package/dist/src/workflow-design/WorkflowAssembler.d.ts.map +1 -0
  123. package/dist/src/workflow-design/WorkflowAssembler.js +81 -0
  124. package/dist/src/workflow-design/WorkflowAssembler.js.map +1 -0
  125. package/dist/src/workflow-design/n8n-node-templates-data.d.ts +4 -0
  126. package/dist/src/workflow-design/n8n-node-templates-data.d.ts.map +1 -0
  127. package/dist/src/workflow-design/n8n-node-templates-data.js +290 -0
  128. package/dist/src/workflow-design/n8n-node-templates-data.js.map +1 -0
  129. package/dist/workflow-design/DocumentExtractorAgent.d.ts +47 -0
  130. package/dist/workflow-design/DocumentExtractorAgent.d.ts.map +1 -0
  131. package/dist/workflow-design/DocumentExtractorAgent.js +118 -0
  132. package/dist/workflow-design/DocumentExtractorAgent.js.map +1 -0
  133. package/dist/workflow-design/N8nNodeKnowledgeBase.d.ts +26 -0
  134. package/dist/workflow-design/N8nNodeKnowledgeBase.d.ts.map +1 -0
  135. package/dist/workflow-design/N8nNodeKnowledgeBase.js +320 -0
  136. package/dist/workflow-design/N8nNodeKnowledgeBase.js.map +1 -0
  137. package/dist/workflow-design/OctoAgentClient.d.ts +42 -0
  138. package/dist/workflow-design/OctoAgentClient.d.ts.map +1 -0
  139. package/dist/workflow-design/OctoAgentClient.js +166 -0
  140. package/dist/workflow-design/OctoAgentClient.js.map +1 -0
  141. package/dist/workflow-design/WorkflowDesignOrchestrator.d.ts +45 -0
  142. package/dist/workflow-design/WorkflowDesignOrchestrator.d.ts.map +1 -0
  143. package/dist/workflow-design/WorkflowDesignOrchestrator.js +265 -0
  144. package/dist/workflow-design/WorkflowDesignOrchestrator.js.map +1 -0
  145. package/dist/workflow-design/agents/ActionChainAgent.d.ts +9 -0
  146. package/dist/workflow-design/agents/ActionChainAgent.d.ts.map +1 -0
  147. package/dist/workflow-design/agents/ActionChainAgent.js +79 -0
  148. package/dist/workflow-design/agents/ActionChainAgent.js.map +1 -0
  149. package/dist/workflow-design/agents/CodeScriptAgent.d.ts +15 -0
  150. package/dist/workflow-design/agents/CodeScriptAgent.d.ts.map +1 -0
  151. package/dist/workflow-design/agents/CodeScriptAgent.js +96 -0
  152. package/dist/workflow-design/agents/CodeScriptAgent.js.map +1 -0
  153. package/dist/workflow-design/agents/LogicFlowAgent.d.ts +9 -0
  154. package/dist/workflow-design/agents/LogicFlowAgent.d.ts.map +1 -0
  155. package/dist/workflow-design/agents/LogicFlowAgent.js +78 -0
  156. package/dist/workflow-design/agents/LogicFlowAgent.js.map +1 -0
  157. package/dist/workflow-design/agents/TriggerAnalystAgent.d.ts +9 -0
  158. package/dist/workflow-design/agents/TriggerAnalystAgent.d.ts.map +1 -0
  159. package/dist/workflow-design/agents/TriggerAnalystAgent.js +65 -0
  160. package/dist/workflow-design/agents/TriggerAnalystAgent.js.map +1 -0
  161. package/dist/workflow-design/agents/WorkflowValidatorAgent.d.ts +9 -0
  162. package/dist/workflow-design/agents/WorkflowValidatorAgent.d.ts.map +1 -0
  163. package/dist/workflow-design/agents/WorkflowValidatorAgent.js +117 -0
  164. package/dist/workflow-design/agents/WorkflowValidatorAgent.js.map +1 -0
  165. package/dist/workflow-design/index.d.ts +12 -0
  166. package/dist/workflow-design/index.d.ts.map +1 -0
  167. package/dist/workflow-design/index.js +23 -0
  168. package/dist/workflow-design/index.js.map +1 -0
  169. package/dist/workflow-design/types.d.ts +155 -0
  170. package/dist/workflow-design/types.d.ts.map +1 -0
  171. package/dist/workflow-design/types.js +6 -0
  172. package/dist/workflow-design/types.js.map +1 -0
  173. package/package.json +2 -1
  174. package/web/dist/module.iife.js +254 -0
  175. package/web/dynamic-entry.tsx +94 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-proxy-api.adapter.js","sourceRoot":"","sources":["../../../src/cli/adapters/cli-proxy-api.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { ICliAdapter, CliToolInfo, CliExecuteOptions, CliExecuteResult, AdapterExecutionType } from '../types.js';
2
+ /**
3
+ * Adapter for Codex CLI (OpenAI).
4
+ *
5
+ * Codex CLI supports:
6
+ * - `-p`: Single-shot print mode (non-interactive)
7
+ * - `--json`: JSON output
8
+ * - stdin: Accepts prompt via stdin
9
+ */
10
+ export declare class CodexCliAdapter implements ICliAdapter {
11
+ readonly toolName: "codex";
12
+ readonly displayName = "Codex CLI";
13
+ readonly executionType: AdapterExecutionType;
14
+ private static readonly MODELS;
15
+ buildArgs(options: CliExecuteOptions): string[];
16
+ buildEnv(_options: CliExecuteOptions): Record<string, string>;
17
+ parseOutput(stdout: string, stderr: string, exitCode: number, durationMs: number): CliExecuteResult;
18
+ detectInstallation(): Promise<CliToolInfo | null>;
19
+ listModels(): Promise<string[]>;
20
+ getDefaultModel(): string;
21
+ }
22
+ //# sourceMappingURL=codex-cli.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-cli.adapter.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/codex-cli.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAGrB;;;;;;;GAOG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IACrC,QAAQ,CAAC,WAAW,eAAe;IACnC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAW;IAEvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAI5B;IAEF,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,EAAE;IAoB/C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAK7D,WAAW,CACT,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,gBAAgB;IAcb,kBAAkB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAiBjD,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIrC,eAAe,IAAI,MAAM;CAG1B"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodexCliAdapter = void 0;
4
+ const detect_cli_js_1 = require("./detect-cli.js");
5
+ /**
6
+ * Adapter for Codex CLI (OpenAI).
7
+ *
8
+ * Codex CLI supports:
9
+ * - `-p`: Single-shot print mode (non-interactive)
10
+ * - `--json`: JSON output
11
+ * - stdin: Accepts prompt via stdin
12
+ */
13
+ class CodexCliAdapter {
14
+ toolName = 'codex';
15
+ displayName = 'Codex CLI';
16
+ executionType = 'spawn';
17
+ static MODELS = [
18
+ 'o4-mini',
19
+ 'o3',
20
+ 'gpt-4.1',
21
+ ];
22
+ buildArgs(options) {
23
+ const args = [];
24
+ if (options.model) {
25
+ args.push('--model', options.model);
26
+ }
27
+ args.push('-p', options.prompt);
28
+ if (options.jsonOutput) {
29
+ args.push('--json');
30
+ }
31
+ if (options.args) {
32
+ args.push(...options.args);
33
+ }
34
+ return args;
35
+ }
36
+ buildEnv(_options) {
37
+ // Codex CLI uses OPENAI_API_KEY from system env
38
+ return {};
39
+ }
40
+ parseOutput(stdout, stderr, exitCode, durationMs) {
41
+ const isSuccess = exitCode === 0;
42
+ // CLI tools may output informational messages to stderr even on success
43
+ // Only treat stderr as error when exitCode !== 0
44
+ return {
45
+ success: isSuccess,
46
+ output: stdout.trim(),
47
+ error: isSuccess ? undefined : (stderr.trim() || undefined),
48
+ exitCode,
49
+ durationMs,
50
+ tool: this.toolName,
51
+ };
52
+ }
53
+ async detectInstallation() {
54
+ const executablePath = await (0, detect_cli_js_1.findExecutable)('codex');
55
+ if (!executablePath)
56
+ return null;
57
+ const version = await (0, detect_cli_js_1.getCliVersion)(executablePath);
58
+ return {
59
+ name: this.toolName,
60
+ displayName: this.displayName,
61
+ version,
62
+ executablePath,
63
+ isAvailable: true,
64
+ models: CodexCliAdapter.MODELS,
65
+ defaultModel: this.getDefaultModel(),
66
+ };
67
+ }
68
+ async listModels() {
69
+ return CodexCliAdapter.MODELS;
70
+ }
71
+ getDefaultModel() {
72
+ return 'o4-mini';
73
+ }
74
+ }
75
+ exports.CodexCliAdapter = CodexCliAdapter;
76
+ //# sourceMappingURL=codex-cli.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-cli.adapter.js","sourceRoot":"","sources":["../../../src/cli/adapters/codex-cli.adapter.ts"],"names":[],"mappings":";;;AAOA,mDAAgE;AAEhE;;;;;;;GAOG;AACH,MAAa,eAAe;IACjB,QAAQ,GAAG,OAAgB,CAAC;IAC5B,WAAW,GAAG,WAAW,CAAC;IAC1B,aAAa,GAAyB,OAAO,CAAC;IAE/C,MAAM,CAAU,MAAM,GAAG;QAC/B,SAAS;QACT,IAAI;QACJ,SAAS;KACV,CAAC;IAEF,SAAS,CAAC,OAA0B;QAClC,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,QAA2B;QAClC,gDAAgD;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,WAAW,CACT,MAAc,EACd,MAAc,EACd,QAAgB,EAChB,UAAkB;QAElB,MAAM,SAAS,GAAG,QAAQ,KAAK,CAAC,CAAC;QACjC,wEAAwE;QACxE,iDAAiD;QACjD,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;YACrB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;YAC3D,QAAQ;YACR,UAAU;YACV,IAAI,EAAE,IAAI,CAAC,QAAQ;SACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,cAAc,GAAG,MAAM,IAAA,8BAAc,EAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAEjC,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAa,EAAC,cAAc,CAAC,CAAC;QAEpD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO;YACP,cAAc;YACd,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,eAAe,CAAC,MAAM;YAC9B,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;SACrC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,eAAe,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,eAAe;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;;AA9EH,0CA+EC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Detect if a CLI command is available by running `which` (unix) or `where` (windows).
3
+ * Returns the executable path or null.
4
+ */
5
+ export declare function findExecutable(command: string): Promise<string | null>;
6
+ /**
7
+ * Get CLI version by running `command --version`.
8
+ * Returns the version string or empty string.
9
+ */
10
+ export declare function getCliVersion(executablePath: string, versionFlag?: string): Promise<string>;
11
+ //# sourceMappingURL=detect-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-cli.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/detect-cli.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASxB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,cAAc,EAAE,MAAM,EACtB,WAAW,SAAc,GACxB,OAAO,CAAC,MAAM,CAAC,CAejB"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findExecutable = findExecutable;
4
+ exports.getCliVersion = getCliVersion;
5
+ const node_child_process_1 = require("node:child_process");
6
+ const node_util_1 = require("node:util");
7
+ const execFileAsync = (0, node_util_1.promisify)(node_child_process_1.execFile);
8
+ /**
9
+ * Detect if a CLI command is available by running `which` (unix) or `where` (windows).
10
+ * Returns the executable path or null.
11
+ */
12
+ async function findExecutable(command) {
13
+ const cmd = process.platform === 'win32' ? 'where' : 'which';
14
+ try {
15
+ const { stdout } = await execFileAsync(cmd, [command], { timeout: 5000 });
16
+ const path = stdout.trim().split('\n')[0];
17
+ return path || null;
18
+ }
19
+ catch {
20
+ return null;
21
+ }
22
+ }
23
+ /**
24
+ * Get CLI version by running `command --version`.
25
+ * Returns the version string or empty string.
26
+ */
27
+ async function getCliVersion(executablePath, versionFlag = '--version') {
28
+ try {
29
+ const { stdout, stderr } = await execFileAsync(executablePath, [versionFlag], { timeout: 10000 });
30
+ // Some CLIs output version to stderr
31
+ const output = (stdout || stderr).trim();
32
+ // Extract version number pattern (e.g., "1.2.3" or "v1.2.3")
33
+ const match = output.match(/v?(\d+\.\d+\.\d+[\w.-]*)/);
34
+ return match ? match[1] : output.split('\n')[0];
35
+ }
36
+ catch {
37
+ return '';
38
+ }
39
+ }
40
+ //# sourceMappingURL=detect-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-cli.js","sourceRoot":"","sources":["../../../src/cli/adapters/detect-cli.ts"],"names":[],"mappings":";;AASA,wCAWC;AAMD,sCAkBC;AA5CD,2DAA8C;AAC9C,yCAAsC;AAEtC,MAAM,aAAa,GAAG,IAAA,qBAAS,EAAC,6BAAQ,CAAC,CAAC;AAE1C;;;GAGG;AACI,KAAK,UAAU,cAAc,CAClC,OAAe;IAEf,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,OAAO,IAAI,IAAI,IAAI,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,aAAa,CACjC,cAAsB,EACtB,WAAW,GAAG,WAAW;IAEzB,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAC5C,cAAc,EACd,CAAC,WAAW,CAAC,EACb,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;QACF,qCAAqC;QACrC,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,6DAA6D;QAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { ICliAdapter, CliToolInfo, CliExecuteOptions, CliExecuteResult, AdapterExecutionType } from '../types.js';
2
+ /**
3
+ * Adapter for Gemini CLI (Google).
4
+ *
5
+ * Gemini CLI supports:
6
+ * - `-p`: Single-shot print mode (non-interactive)
7
+ * - stdin: Accepts prompt via stdin
8
+ */
9
+ export declare class GeminiCliAdapter implements ICliAdapter {
10
+ readonly toolName: "gemini";
11
+ readonly displayName = "Gemini CLI";
12
+ readonly executionType: AdapterExecutionType;
13
+ private static readonly MODELS;
14
+ buildArgs(options: CliExecuteOptions): string[];
15
+ buildEnv(_options: CliExecuteOptions): Record<string, string>;
16
+ parseOutput(stdout: string, stderr: string, exitCode: number, durationMs: number): CliExecuteResult;
17
+ detectInstallation(): Promise<CliToolInfo | null>;
18
+ listModels(): Promise<string[]>;
19
+ getDefaultModel(): string;
20
+ }
21
+ //# sourceMappingURL=gemini-cli.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini-cli.adapter.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/gemini-cli.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAGrB;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAClD,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,QAAQ,CAAC,WAAW,gBAAgB;IACpC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAW;IAEvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAG5B;IAEF,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,EAAE;IAgB/C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAK7D,WAAW,CACT,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,gBAAgB;IAeb,kBAAkB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAiBjD,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIrC,eAAe,IAAI,MAAM;CAG1B"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GeminiCliAdapter = void 0;
4
+ const detect_cli_js_1 = require("./detect-cli.js");
5
+ /**
6
+ * Adapter for Gemini CLI (Google).
7
+ *
8
+ * Gemini CLI supports:
9
+ * - `-p`: Single-shot print mode (non-interactive)
10
+ * - stdin: Accepts prompt via stdin
11
+ */
12
+ class GeminiCliAdapter {
13
+ toolName = 'gemini';
14
+ displayName = 'Gemini CLI';
15
+ executionType = 'spawn';
16
+ static MODELS = [
17
+ 'gemini-2.5-flash',
18
+ 'gemini-2.5-pro',
19
+ ];
20
+ buildArgs(options) {
21
+ const args = [];
22
+ if (options.model) {
23
+ args.push('--model', options.model);
24
+ }
25
+ args.push('-p', options.prompt);
26
+ if (options.args) {
27
+ args.push(...options.args);
28
+ }
29
+ return args;
30
+ }
31
+ buildEnv(_options) {
32
+ // Gemini CLI uses GEMINI_API_KEY from system env
33
+ return {};
34
+ }
35
+ parseOutput(stdout, stderr, exitCode, durationMs) {
36
+ const isSuccess = exitCode === 0;
37
+ // Gemini CLI outputs informational messages to stderr even on success
38
+ // (e.g. "Loaded cached credentials.", "Loading extension: conductor")
39
+ // Only treat stderr as error when exitCode !== 0
40
+ return {
41
+ success: isSuccess,
42
+ output: stdout.trim(),
43
+ error: isSuccess ? undefined : (stderr.trim() || undefined),
44
+ exitCode,
45
+ durationMs,
46
+ tool: this.toolName,
47
+ };
48
+ }
49
+ async detectInstallation() {
50
+ const executablePath = await (0, detect_cli_js_1.findExecutable)('gemini');
51
+ if (!executablePath)
52
+ return null;
53
+ const version = await (0, detect_cli_js_1.getCliVersion)(executablePath);
54
+ return {
55
+ name: this.toolName,
56
+ displayName: this.displayName,
57
+ version,
58
+ executablePath,
59
+ isAvailable: true,
60
+ models: GeminiCliAdapter.MODELS,
61
+ defaultModel: this.getDefaultModel(),
62
+ };
63
+ }
64
+ async listModels() {
65
+ return GeminiCliAdapter.MODELS;
66
+ }
67
+ getDefaultModel() {
68
+ return 'gemini-2.5-flash';
69
+ }
70
+ }
71
+ exports.GeminiCliAdapter = GeminiCliAdapter;
72
+ //# sourceMappingURL=gemini-cli.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini-cli.adapter.js","sourceRoot":"","sources":["../../../src/cli/adapters/gemini-cli.adapter.ts"],"names":[],"mappings":";;;AAOA,mDAAgE;AAEhE;;;;;;GAMG;AACH,MAAa,gBAAgB;IAClB,QAAQ,GAAG,QAAiB,CAAC;IAC7B,WAAW,GAAG,YAAY,CAAC;IAC3B,aAAa,GAAyB,OAAO,CAAC;IAE/C,MAAM,CAAU,MAAM,GAAG;QAC/B,kBAAkB;QAClB,gBAAgB;KACjB,CAAC;IAEF,SAAS,CAAC,OAA0B;QAClC,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,QAA2B;QAClC,iDAAiD;QACjD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,WAAW,CACT,MAAc,EACd,MAAc,EACd,QAAgB,EAChB,UAAkB;QAElB,MAAM,SAAS,GAAG,QAAQ,KAAK,CAAC,CAAC;QACjC,sEAAsE;QACtE,sEAAsE;QACtE,iDAAiD;QACjD,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;YACrB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;YAC3D,QAAQ;YACR,UAAU;YACV,IAAI,EAAE,IAAI,CAAC,QAAQ;SACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,cAAc,GAAG,MAAM,IAAA,8BAAc,EAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAEjC,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAa,EAAC,cAAc,CAAC,CAAC;QAEpD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO;YACP,cAAc;YACd,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;SACrC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,gBAAgB,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,eAAe;QACb,OAAO,kBAAkB,CAAC;IAC5B,CAAC;;AA1EH,4CA2EC"}
@@ -0,0 +1,4 @@
1
+ export { ClaudeCliAdapter } from './claude-cli.adapter.js';
2
+ export { GeminiCliAdapter } from './gemini-cli.adapter.js';
3
+ export { CodexCliAdapter } from './codex-cli.adapter.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodexCliAdapter = exports.GeminiCliAdapter = exports.ClaudeCliAdapter = void 0;
4
+ var claude_cli_adapter_js_1 = require("./claude-cli.adapter.js");
5
+ Object.defineProperty(exports, "ClaudeCliAdapter", { enumerable: true, get: function () { return claude_cli_adapter_js_1.ClaudeCliAdapter; } });
6
+ var gemini_cli_adapter_js_1 = require("./gemini-cli.adapter.js");
7
+ Object.defineProperty(exports, "GeminiCliAdapter", { enumerable: true, get: function () { return gemini_cli_adapter_js_1.GeminiCliAdapter; } });
8
+ var codex_cli_adapter_js_1 = require("./codex-cli.adapter.js");
9
+ Object.defineProperty(exports, "CodexCliAdapter", { enumerable: true, get: function () { return codex_cli_adapter_js_1.CodexCliAdapter; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/adapters/index.ts"],"names":[],"mappings":";;;AAAA,iEAA2D;AAAlD,yHAAA,gBAAgB,OAAA;AACzB,iEAA2D;AAAlD,yHAAA,gBAAgB,OAAA;AACzB,+DAAyD;AAAhD,uHAAA,eAAe,OAAA"}
@@ -0,0 +1,25 @@
1
+ import type { CliExecuteOptions, CliExecuteResult } from './types.js';
2
+ /**
3
+ * Unified CLI executor service.
4
+ *
5
+ * Spawns AI CLI processes, captures output, enforces timeouts,
6
+ * and limits concurrency. Uses registered adapters via CliRegistryService
7
+ * to build tool-specific arguments and parse output.
8
+ */
9
+ export declare class CliExecutorService {
10
+ private readonly logger;
11
+ private readonly registry;
12
+ private activeCount;
13
+ private readonly waitQueue;
14
+ /** Execute an AI CLI tool */
15
+ execute(options: CliExecuteOptions): Promise<CliExecuteResult>;
16
+ /** Execute an AI CLI tool with streaming output (for http-type adapters only) */
17
+ executeStream(options: CliExecuteOptions, onChunk: (chunk: string) => void): Promise<CliExecuteResult>;
18
+ /** Current number of active executions */
19
+ get activeExecutions(): number;
20
+ private executeInternal;
21
+ private createErrorResult;
22
+ private acquireSlot;
23
+ private releaseSlot;
24
+ }
25
+ //# sourceMappingURL=cli-executor.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-executor.service.d.ts","sourceRoot":"","sources":["../../src/cli/cli-executor.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMtE;;;;;;GAMG;AACH,qBACa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IAEnD,6BAA6B;IACvB,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA4BpE,iFAAiF;IAC3E,aAAa,CACjB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAmB5B,0CAA0C;IAC1C,IAAI,gBAAgB,IAAI,MAAM,CAE7B;YAIa,eAAe;IAkH7B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,WAAW;CAKpB"}
@@ -0,0 +1,170 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CliExecutorService = void 0;
10
+ const node_child_process_1 = require("node:child_process");
11
+ const core_1 = require("@octo-cyber/core");
12
+ const cli_registry_service_js_1 = require("./cli-registry.service.js");
13
+ const DEFAULT_TIMEOUT_MS = 300_000;
14
+ const MAX_TIMEOUT_MS = 1_800_000; // 30 minutes — async design tasks can run long
15
+ const MAX_CONCURRENT = 3;
16
+ /**
17
+ * Unified CLI executor service.
18
+ *
19
+ * Spawns AI CLI processes, captures output, enforces timeouts,
20
+ * and limits concurrency. Uses registered adapters via CliRegistryService
21
+ * to build tool-specific arguments and parse output.
22
+ */
23
+ let CliExecutorService = class CliExecutorService {
24
+ logger = core_1.Container.get(core_1.LoggerService);
25
+ registry = core_1.Container.get(cli_registry_service_js_1.CliRegistryService);
26
+ activeCount = 0;
27
+ waitQueue = [];
28
+ /** Execute an AI CLI tool */
29
+ async execute(options) {
30
+ const adapter = this.registry.getAdapter(options.tool);
31
+ if (!adapter) {
32
+ return this.createErrorResult(options.tool, `No adapter registered for tool: ${options.tool}`);
33
+ }
34
+ const toolInfo = await this.registry.getToolInfo(options.tool);
35
+ if (!toolInfo?.isAvailable) {
36
+ return this.createErrorResult(options.tool, `Tool not available: ${options.tool}. Is it installed?`);
37
+ }
38
+ await this.acquireSlot();
39
+ try {
40
+ if (adapter.executionType === 'http' && adapter.executeHttp) {
41
+ return await adapter.executeHttp(options);
42
+ }
43
+ return await this.executeInternal(options, toolInfo.executablePath);
44
+ }
45
+ finally {
46
+ this.releaseSlot();
47
+ }
48
+ }
49
+ /** Execute an AI CLI tool with streaming output (for http-type adapters only) */
50
+ async executeStream(options, onChunk) {
51
+ const adapter = this.registry.getAdapter(options.tool);
52
+ if (!adapter?.executeHttpStream) {
53
+ return this.createErrorResult(options.tool, `Streaming not supported by tool: ${options.tool}`);
54
+ }
55
+ const toolInfo = await this.registry.getToolInfo(options.tool);
56
+ if (!toolInfo?.isAvailable) {
57
+ return this.createErrorResult(options.tool, `Tool not available: ${options.tool}`);
58
+ }
59
+ await this.acquireSlot();
60
+ try {
61
+ return await adapter.executeHttpStream(options, onChunk);
62
+ }
63
+ finally {
64
+ this.releaseSlot();
65
+ }
66
+ }
67
+ /** Current number of active executions */
68
+ get activeExecutions() {
69
+ return this.activeCount;
70
+ }
71
+ // ─── Private ────────────────────────────────────────────────
72
+ async executeInternal(options, executablePath) {
73
+ const adapter = this.registry.getAdapter(options.tool);
74
+ const args = adapter.buildArgs(options);
75
+ const env = {
76
+ ...process.env,
77
+ ...adapter.buildEnv(options),
78
+ ...options.env,
79
+ };
80
+ // Allow CLI tools to run even when Octo server is started from a Claude Code session
81
+ delete env.CLAUDECODE;
82
+ const timeoutMs = Math.min(options.timeoutMs ?? DEFAULT_TIMEOUT_MS, MAX_TIMEOUT_MS);
83
+ const workingDir = options.workingDir ?? process.cwd();
84
+ this.logger.info(`[CliExecutor] Executing ${options.tool}: ${executablePath} (timeout: ${timeoutMs}ms)`);
85
+ const startTime = Date.now();
86
+ return new Promise((resolve) => {
87
+ const child = (0, node_child_process_1.spawn)(executablePath, args, {
88
+ cwd: workingDir,
89
+ env,
90
+ stdio: ['pipe', 'pipe', 'pipe'],
91
+ });
92
+ let stdout = '';
93
+ let stderr = '';
94
+ let isTimedOut = false;
95
+ child.stdout.on('data', (data) => {
96
+ stdout += data.toString();
97
+ });
98
+ child.stderr.on('data', (data) => {
99
+ stderr += data.toString();
100
+ });
101
+ // Send prompt via stdin for security (avoid shell injection)
102
+ if (options.prompt) {
103
+ child.stdin.write(options.prompt);
104
+ child.stdin.end();
105
+ }
106
+ const timer = setTimeout(() => {
107
+ isTimedOut = true;
108
+ child.kill('SIGTERM');
109
+ // Force kill after 5 seconds if SIGTERM is ignored
110
+ setTimeout(() => {
111
+ if (!child.killed) {
112
+ child.kill('SIGKILL');
113
+ }
114
+ }, 5000);
115
+ }, timeoutMs);
116
+ child.on('close', (exitCode) => {
117
+ clearTimeout(timer);
118
+ const durationMs = Date.now() - startTime;
119
+ if (isTimedOut) {
120
+ this.logger.warn(`[CliExecutor] ${options.tool} timed out after ${durationMs}ms`);
121
+ resolve(this.createErrorResult(options.tool, `Execution timed out after ${timeoutMs}ms`, exitCode ?? 124, durationMs));
122
+ return;
123
+ }
124
+ const result = adapter.parseOutput(stdout, stderr, exitCode ?? 1, durationMs);
125
+ this.logger.info(`[CliExecutor] ${options.tool} completed in ${durationMs}ms (exit: ${exitCode})`);
126
+ resolve(result);
127
+ });
128
+ child.on('error', (err) => {
129
+ clearTimeout(timer);
130
+ const durationMs = Date.now() - startTime;
131
+ this.logger.error(`[CliExecutor] ${options.tool} process error: ${err.message}`);
132
+ resolve(this.createErrorResult(options.tool, `Process error: ${err.message}`, 1, durationMs));
133
+ });
134
+ });
135
+ }
136
+ createErrorResult(tool, error, exitCode = 1, durationMs = 0) {
137
+ return {
138
+ success: false,
139
+ output: '',
140
+ error,
141
+ exitCode,
142
+ durationMs,
143
+ tool,
144
+ };
145
+ }
146
+ // ─── Concurrency control (simple semaphore) ─────────────────
147
+ acquireSlot() {
148
+ if (this.activeCount < MAX_CONCURRENT) {
149
+ this.activeCount++;
150
+ return Promise.resolve();
151
+ }
152
+ return new Promise((resolve) => {
153
+ this.waitQueue.push(() => {
154
+ this.activeCount++;
155
+ resolve();
156
+ });
157
+ });
158
+ }
159
+ releaseSlot() {
160
+ this.activeCount--;
161
+ const next = this.waitQueue.shift();
162
+ if (next)
163
+ next();
164
+ }
165
+ };
166
+ exports.CliExecutorService = CliExecutorService;
167
+ exports.CliExecutorService = CliExecutorService = __decorate([
168
+ (0, core_1.Service)()
169
+ ], CliExecutorService);
170
+ //# sourceMappingURL=cli-executor.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-executor.service.js","sourceRoot":"","sources":["../../src/cli/cli-executor.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { ICliAdapter, CliToolInfo, CliToolName } from './types.js';
2
+ /**
3
+ * Registry of available AI CLI tools.
4
+ *
5
+ * Manages CLI adapter registration, tool detection, and health checks.
6
+ * Adapters are registered at module initialization time;
7
+ * detection runs lazily on first query or explicitly via refresh().
8
+ */
9
+ export declare class CliRegistryService {
10
+ private readonly logger;
11
+ private readonly adapters;
12
+ private readonly toolInfoCache;
13
+ private hasDetected;
14
+ /** Register a CLI adapter */
15
+ registerAdapter(adapter: ICliAdapter): void;
16
+ /** Get adapter by tool name */
17
+ getAdapter(name: CliToolName): ICliAdapter | undefined;
18
+ /** Get all registered adapter names */
19
+ getRegisteredTools(): CliToolName[];
20
+ /** Check if a specific tool is available (installed and detected) */
21
+ isToolAvailable(name: CliToolName): Promise<boolean>;
22
+ /** Get info for a specific tool */
23
+ getToolInfo(name: CliToolName): Promise<CliToolInfo | null>;
24
+ /** Get info for all registered tools */
25
+ getAvailableTools(): Promise<CliToolInfo[]>;
26
+ /** Force re-detection of all tools */
27
+ refresh(): Promise<CliToolInfo[]>;
28
+ /**
29
+ * Health check for a specific tool.
30
+ * Re-detects the tool regardless of cache.
31
+ */
32
+ healthCheck(name: CliToolName): Promise<CliToolInfo | null>;
33
+ /** Get available models for a specific tool */
34
+ getModels(name: CliToolName): Promise<string[]>;
35
+ private ensureDetected;
36
+ private detectSingleTool;
37
+ }
38
+ //# sourceMappingURL=cli-registry.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-registry.service.d.ts","sourceRoot":"","sources":["../../src/cli/cli-registry.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;GAMG;AACH,qBACa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;IACrE,OAAO,CAAC,WAAW,CAAS;IAE5B,6BAA6B;IAC7B,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAO3C,+BAA+B;IAC/B,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;IAItD,uCAAuC;IACvC,kBAAkB,IAAI,WAAW,EAAE;IAInC,qEAAqE;IAC/D,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAM1D,mCAAmC;IAC7B,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAKjE,wCAAwC;IAClC,iBAAiB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKjD,sCAAsC;IAChC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAMvC;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IASjE,+CAA+C;IACzC,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAQvC,cAAc;YAmBd,gBAAgB;CAoB/B"}