paean 0.4.2 → 0.6.2

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 (67) hide show
  1. package/CHANGELOG.md +114 -0
  2. package/dist/cli.js +2 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/worker.d.ts +7 -0
  5. package/dist/commands/worker.d.ts.map +1 -0
  6. package/dist/commands/worker.js +321 -0
  7. package/dist/commands/worker.js.map +1 -0
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +4 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/mcp/system.d.ts +30 -0
  13. package/dist/mcp/system.d.ts.map +1 -0
  14. package/dist/mcp/system.js +530 -0
  15. package/dist/mcp/system.js.map +1 -0
  16. package/dist/mcp/tools.d.ts +1 -1
  17. package/dist/mcp/tools.d.ts.map +1 -1
  18. package/dist/mcp/tools.js +5 -1
  19. package/dist/mcp/tools.js.map +1 -1
  20. package/dist/ui/theme/branding.d.ts.map +1 -1
  21. package/dist/ui/theme/branding.js +2 -7
  22. package/dist/ui/theme/branding.js.map +1 -1
  23. package/dist/worker/executors/claude.d.ts +29 -0
  24. package/dist/worker/executors/claude.d.ts.map +1 -0
  25. package/dist/worker/executors/claude.js +114 -0
  26. package/dist/worker/executors/claude.js.map +1 -0
  27. package/dist/worker/executors/codex.d.ts +29 -0
  28. package/dist/worker/executors/codex.d.ts.map +1 -0
  29. package/dist/worker/executors/codex.js +126 -0
  30. package/dist/worker/executors/codex.js.map +1 -0
  31. package/dist/worker/executors/cursor.d.ts +29 -0
  32. package/dist/worker/executors/cursor.d.ts.map +1 -0
  33. package/dist/worker/executors/cursor.js +136 -0
  34. package/dist/worker/executors/cursor.js.map +1 -0
  35. package/dist/worker/executors/gemini.d.ts +29 -0
  36. package/dist/worker/executors/gemini.d.ts.map +1 -0
  37. package/dist/worker/executors/gemini.js +129 -0
  38. package/dist/worker/executors/gemini.js.map +1 -0
  39. package/dist/worker/executors/index.d.ts +56 -0
  40. package/dist/worker/executors/index.d.ts.map +1 -0
  41. package/dist/worker/executors/index.js +108 -0
  42. package/dist/worker/executors/index.js.map +1 -0
  43. package/dist/worker/executors/internal.d.ts +23 -0
  44. package/dist/worker/executors/internal.d.ts.map +1 -0
  45. package/dist/worker/executors/internal.js +77 -0
  46. package/dist/worker/executors/internal.js.map +1 -0
  47. package/dist/worker/executors/opencode.d.ts +31 -0
  48. package/dist/worker/executors/opencode.d.ts.map +1 -0
  49. package/dist/worker/executors/opencode.js +129 -0
  50. package/dist/worker/executors/opencode.js.map +1 -0
  51. package/dist/worker/index.d.ts +14 -0
  52. package/dist/worker/index.d.ts.map +1 -0
  53. package/dist/worker/index.js +17 -0
  54. package/dist/worker/index.js.map +1 -0
  55. package/dist/worker/service.d.ts +72 -0
  56. package/dist/worker/service.d.ts.map +1 -0
  57. package/dist/worker/service.js +435 -0
  58. package/dist/worker/service.js.map +1 -0
  59. package/dist/worker/supervisor.d.ts +83 -0
  60. package/dist/worker/supervisor.d.ts.map +1 -0
  61. package/dist/worker/supervisor.js +412 -0
  62. package/dist/worker/supervisor.js.map +1 -0
  63. package/dist/worker/types.d.ts +278 -0
  64. package/dist/worker/types.d.ts.map +1 -0
  65. package/dist/worker/types.js +71 -0
  66. package/dist/worker/types.js.map +1 -0
  67. package/package.json +2 -2
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Gemini CLI Executor
3
+ * Integrates with Gemini CLI for quick analysis and lightweight tasks
4
+ */
5
+ import { spawn } from 'child_process';
6
+ import { promisify } from 'util';
7
+ import { exec as execCallback } from 'child_process';
8
+ const exec = promisify(execCallback);
9
+ export class GeminiExecutor {
10
+ type = 'gemini';
11
+ process = null;
12
+ binaryPath;
13
+ constructor(binaryPath = 'gemini') {
14
+ this.binaryPath = binaryPath;
15
+ }
16
+ /**
17
+ * Check if Gemini CLI is installed
18
+ */
19
+ async isAvailable() {
20
+ try {
21
+ await exec(`which ${this.binaryPath}`);
22
+ return true;
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ }
28
+ /**
29
+ * Execute a prompt using Gemini CLI
30
+ */
31
+ async execute(prompt, options) {
32
+ const startTime = Date.now();
33
+ const args = this.buildArgs(prompt, options);
34
+ return new Promise((resolve) => {
35
+ let stdout = '';
36
+ let stderr = '';
37
+ const timeout = options?.timeout ?? 600000; // 10 min default
38
+ this.process = spawn(this.binaryPath, args, {
39
+ cwd: options?.cwd,
40
+ env: { ...process.env, ...options?.env },
41
+ stdio: ['pipe', 'pipe', 'pipe'],
42
+ });
43
+ const timeoutId = setTimeout(() => {
44
+ if (this.process) {
45
+ this.process.kill('SIGTERM');
46
+ resolve({
47
+ success: false,
48
+ output: stdout,
49
+ error: `Execution timed out after ${timeout}ms`,
50
+ durationMs: Date.now() - startTime,
51
+ });
52
+ }
53
+ }, timeout);
54
+ this.process.stdout?.on('data', (data) => {
55
+ const text = data.toString();
56
+ stdout += text;
57
+ options?.onOutput?.(text, 'stdout');
58
+ });
59
+ this.process.stderr?.on('data', (data) => {
60
+ const text = data.toString();
61
+ stderr += text;
62
+ options?.onOutput?.(text, 'stderr');
63
+ });
64
+ this.process.on('close', (code) => {
65
+ clearTimeout(timeoutId);
66
+ this.process = null;
67
+ // Try to parse JSON output
68
+ let structured;
69
+ try {
70
+ if (stdout.trim().startsWith('{')) {
71
+ structured = JSON.parse(stdout);
72
+ }
73
+ }
74
+ catch {
75
+ // Not JSON
76
+ }
77
+ resolve({
78
+ success: code === 0,
79
+ output: stdout,
80
+ error: code !== 0 ? stderr || `Exit code: ${code}` : undefined,
81
+ exitCode: code ?? undefined,
82
+ durationMs: Date.now() - startTime,
83
+ structured,
84
+ });
85
+ });
86
+ this.process.on('error', (err) => {
87
+ clearTimeout(timeoutId);
88
+ this.process = null;
89
+ resolve({
90
+ success: false,
91
+ output: stdout,
92
+ error: err.message,
93
+ durationMs: Date.now() - startTime,
94
+ });
95
+ });
96
+ });
97
+ }
98
+ /**
99
+ * Build Gemini CLI arguments
100
+ */
101
+ buildArgs(prompt, options) {
102
+ const args = [];
103
+ // Positional prompt for non-interactive mode
104
+ args.push(prompt);
105
+ // Use JSON output format for structured parsing
106
+ if (options?.captureOutput) {
107
+ args.push('--output-format', 'json');
108
+ }
109
+ // YOLO mode for autonomous execution
110
+ if (options?.skipPermissions) {
111
+ args.push('--yolo');
112
+ }
113
+ // Additional args from options
114
+ if (options?.args) {
115
+ args.push(...options.args);
116
+ }
117
+ return args;
118
+ }
119
+ /**
120
+ * Abort current execution
121
+ */
122
+ abort() {
123
+ if (this.process) {
124
+ this.process.kill('SIGTERM');
125
+ this.process = null;
126
+ }
127
+ }
128
+ }
129
+ //# sourceMappingURL=gemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/worker/executors/gemini.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Executor Framework
3
+ * Base interface and registry for multi-agent executors
4
+ */
5
+ import type { ExecutorType, ExecutorOptions, ExecutorResult, ExecutorConfig } from '../types.js';
6
+ /**
7
+ * Base interface for all agent executors
8
+ */
9
+ export interface AgentExecutor {
10
+ /** Executor type identifier */
11
+ readonly type: ExecutorType;
12
+ /** Check if the executor is available on this system */
13
+ isAvailable(): Promise<boolean>;
14
+ /** Execute a prompt with this executor */
15
+ execute(prompt: string, options?: ExecutorOptions): Promise<ExecutorResult>;
16
+ /** Abort current execution */
17
+ abort(): void;
18
+ }
19
+ /**
20
+ * Registry for managing multiple executors
21
+ */
22
+ export declare class ExecutorRegistry {
23
+ private executors;
24
+ private configs;
25
+ /**
26
+ * Register an executor
27
+ */
28
+ register(executor: AgentExecutor, config?: ExecutorConfig): void;
29
+ /**
30
+ * Get an executor by type
31
+ */
32
+ get(type: ExecutorType): AgentExecutor | undefined;
33
+ /**
34
+ * Get executor configuration
35
+ */
36
+ getConfig(type: ExecutorType): ExecutorConfig | undefined;
37
+ /**
38
+ * Check if an executor is registered and enabled
39
+ */
40
+ isEnabled(type: ExecutorType): boolean;
41
+ /**
42
+ * Get all available executors (installed and enabled)
43
+ */
44
+ getAvailable(): Promise<ExecutorType[]>;
45
+ /**
46
+ * Get all registered executor types
47
+ */
48
+ getRegistered(): ExecutorType[];
49
+ /**
50
+ * Execute with a specific executor
51
+ */
52
+ execute(type: ExecutorType, prompt: string, options?: ExecutorOptions): Promise<ExecutorResult>;
53
+ }
54
+ export declare function getExecutorRegistry(): ExecutorRegistry;
55
+ export declare function resetExecutorRegistry(): void;
56
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/worker/executors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjG;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B,wDAAwD;IACxD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC,0CAA0C;IAC1C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE5E,8BAA8B;IAC9B,KAAK,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,OAAO,CAAgD;IAE/D;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI;IAOhE;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS;IAIlD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,GAAG,SAAS;IAIzD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO;IAKtC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAmB7C;;OAEG;IACH,aAAa,IAAI,YAAY,EAAE;IAI/B;;OAEG;IACG,OAAO,CACT,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GAC1B,OAAO,CAAC,cAAc,CAAC;CA+B7B;AAKD,wBAAgB,mBAAmB,IAAI,gBAAgB,CAKtD;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Executor Framework
3
+ * Base interface and registry for multi-agent executors
4
+ */
5
+ /**
6
+ * Registry for managing multiple executors
7
+ */
8
+ export class ExecutorRegistry {
9
+ executors = new Map();
10
+ configs = new Map();
11
+ /**
12
+ * Register an executor
13
+ */
14
+ register(executor, config) {
15
+ this.executors.set(executor.type, executor);
16
+ if (config) {
17
+ this.configs.set(executor.type, config);
18
+ }
19
+ }
20
+ /**
21
+ * Get an executor by type
22
+ */
23
+ get(type) {
24
+ return this.executors.get(type);
25
+ }
26
+ /**
27
+ * Get executor configuration
28
+ */
29
+ getConfig(type) {
30
+ return this.configs.get(type);
31
+ }
32
+ /**
33
+ * Check if an executor is registered and enabled
34
+ */
35
+ isEnabled(type) {
36
+ const config = this.configs.get(type);
37
+ return config?.enabled !== false;
38
+ }
39
+ /**
40
+ * Get all available executors (installed and enabled)
41
+ */
42
+ async getAvailable() {
43
+ const available = [];
44
+ for (const [type, executor] of this.executors) {
45
+ if (!this.isEnabled(type))
46
+ continue;
47
+ try {
48
+ const isAvail = await executor.isAvailable();
49
+ if (isAvail) {
50
+ available.push(type);
51
+ }
52
+ }
53
+ catch {
54
+ // Not available
55
+ }
56
+ }
57
+ return available;
58
+ }
59
+ /**
60
+ * Get all registered executor types
61
+ */
62
+ getRegistered() {
63
+ return Array.from(this.executors.keys());
64
+ }
65
+ /**
66
+ * Execute with a specific executor
67
+ */
68
+ async execute(type, prompt, options) {
69
+ const executor = this.executors.get(type);
70
+ if (!executor) {
71
+ return {
72
+ success: false,
73
+ output: '',
74
+ error: `Executor '${type}' not registered`,
75
+ durationMs: 0,
76
+ };
77
+ }
78
+ const available = await executor.isAvailable();
79
+ if (!available) {
80
+ return {
81
+ success: false,
82
+ output: '',
83
+ error: `Executor '${type}' is not available on this system`,
84
+ durationMs: 0,
85
+ };
86
+ }
87
+ // Merge with config defaults
88
+ const config = this.configs.get(type);
89
+ const mergedOptions = {
90
+ timeout: config?.timeout,
91
+ args: config?.defaultArgs,
92
+ ...options,
93
+ };
94
+ return executor.execute(prompt, mergedOptions);
95
+ }
96
+ }
97
+ // Export singleton registry
98
+ let registryInstance = null;
99
+ export function getExecutorRegistry() {
100
+ if (!registryInstance) {
101
+ registryInstance = new ExecutorRegistry();
102
+ }
103
+ return registryInstance;
104
+ }
105
+ export function resetExecutorRegistry() {
106
+ registryInstance = null;
107
+ }
108
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/worker/executors/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Internal Agent Executor
3
+ * Uses Paean's built-in agent service for task execution
4
+ */
5
+ import type { ExecutorOptions, ExecutorResult } from '../types.js';
6
+ import type { AgentExecutor } from './index.js';
7
+ export declare class InternalExecutor implements AgentExecutor {
8
+ readonly type: "internal";
9
+ private abortController;
10
+ /**
11
+ * Internal executor is always available
12
+ */
13
+ isAvailable(): Promise<boolean>;
14
+ /**
15
+ * Execute a prompt using the internal agent service
16
+ */
17
+ execute(prompt: string, options?: ExecutorOptions): Promise<ExecutorResult>;
18
+ /**
19
+ * Abort current execution
20
+ */
21
+ abort(): void;
22
+ }
23
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/worker/executors/internal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,qBAAa,gBAAiB,YAAW,aAAa;IAClD,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,OAAO,CAAC,eAAe,CAAgC;IAEvD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAsDjF;;OAEG;IACH,KAAK,IAAI,IAAI;CAOhB"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Internal Agent Executor
3
+ * Uses Paean's built-in agent service for task execution
4
+ */
5
+ import { agentService } from '../../agent/service.js';
6
+ export class InternalExecutor {
7
+ type = 'internal';
8
+ abortController = null;
9
+ /**
10
+ * Internal executor is always available
11
+ */
12
+ async isAvailable() {
13
+ return true;
14
+ }
15
+ /**
16
+ * Execute a prompt using the internal agent service
17
+ */
18
+ async execute(prompt, options) {
19
+ const startTime = Date.now();
20
+ this.abortController = new AbortController();
21
+ return new Promise((resolve) => {
22
+ let output = '';
23
+ let hasError = false;
24
+ let errorMessage = '';
25
+ const timeout = options?.timeout ?? 600000; // 10 min default
26
+ const timeoutId = setTimeout(() => {
27
+ agentService.abort();
28
+ resolve({
29
+ success: false,
30
+ output,
31
+ error: `Execution timed out after ${timeout}ms`,
32
+ durationMs: Date.now() - startTime,
33
+ });
34
+ }, timeout);
35
+ agentService.streamMessage(prompt, {
36
+ onContent: (text, partial) => {
37
+ if (partial) {
38
+ output += text;
39
+ }
40
+ else {
41
+ output = text;
42
+ }
43
+ },
44
+ onError: (error) => {
45
+ hasError = true;
46
+ errorMessage = error;
47
+ },
48
+ onDone: () => {
49
+ clearTimeout(timeoutId);
50
+ this.abortController = null;
51
+ resolve({
52
+ success: !hasError,
53
+ output,
54
+ error: hasError ? errorMessage : undefined,
55
+ durationMs: Date.now() - startTime,
56
+ });
57
+ },
58
+ });
59
+ // Handle abort signal
60
+ this.abortController?.signal.addEventListener('abort', () => {
61
+ clearTimeout(timeoutId);
62
+ agentService.abort();
63
+ });
64
+ });
65
+ }
66
+ /**
67
+ * Abort current execution
68
+ */
69
+ abort() {
70
+ if (this.abortController) {
71
+ this.abortController.abort();
72
+ this.abortController = null;
73
+ }
74
+ agentService.abort();
75
+ }
76
+ }
77
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/worker/executors/internal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD,MAAM,OAAO,gBAAgB;IAChB,IAAI,GAAG,UAAmB,CAAC;IAC5B,eAAe,GAA2B,IAAI,CAAC;IAEvD;;OAEG;IACH,KAAK,CAAC,WAAW;QACb,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,OAAyB;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAE7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,YAAY,GAAG,EAAE,CAAC;YAEtB,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,iBAAiB;YAE7D,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,YAAY,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,CAAC;oBACJ,OAAO,EAAE,KAAK;oBACd,MAAM;oBACN,KAAK,EAAE,6BAA6B,OAAO,IAAI;oBAC/C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACrC,CAAC,CAAC;YACP,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE;gBAC/B,SAAS,EAAE,CAAC,IAAY,EAAE,OAAgB,EAAE,EAAE;oBAC1C,IAAI,OAAO,EAAE,CAAC;wBACV,MAAM,IAAI,IAAI,CAAC;oBACnB,CAAC;yBAAM,CAAC;wBACJ,MAAM,GAAG,IAAI,CAAC;oBAClB,CAAC;gBACL,CAAC;gBACD,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE;oBACvB,QAAQ,GAAG,IAAI,CAAC;oBAChB,YAAY,GAAG,KAAK,CAAC;gBACzB,CAAC;gBACD,MAAM,EAAE,GAAG,EAAE;oBACT,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAE5B,OAAO,CAAC;wBACJ,OAAO,EAAE,CAAC,QAAQ;wBAClB,MAAM;wBACN,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;wBAC1C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;qBACrC,CAAC,CAAC;gBACP,CAAC;aACJ,CAAC,CAAC;YAEH,sBAAsB;YACtB,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACxD,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,YAAY,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,KAAK;QACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAChC,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACJ"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * OpenCode CLI Executor
3
+ * Integrates with OpenCode CLI for AI-assisted coding tasks
4
+ * https://github.com/opencode-ai/opencode
5
+ */
6
+ import type { ExecutorOptions, ExecutorResult } from '../types.js';
7
+ import type { AgentExecutor } from './index.js';
8
+ export declare class OpenCodeExecutor implements AgentExecutor {
9
+ readonly type: "opencode";
10
+ private process;
11
+ private binaryPath;
12
+ constructor(binaryPath?: string);
13
+ /**
14
+ * Check if OpenCode CLI is installed
15
+ */
16
+ isAvailable(): Promise<boolean>;
17
+ /**
18
+ * Execute a prompt using OpenCode CLI
19
+ */
20
+ execute(prompt: string, options?: ExecutorOptions): Promise<ExecutorResult>;
21
+ /**
22
+ * Build OpenCode CLI arguments
23
+ * Uses `opencode run [message..]` for non-interactive execution
24
+ */
25
+ private buildArgs;
26
+ /**
27
+ * Abort current execution
28
+ */
29
+ abort(): void;
30
+ }
31
+ //# sourceMappingURL=opencode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/worker/executors/opencode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,qBAAa,gBAAiB,YAAW,aAAa;IAClD,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,GAAE,MAAmB;IAI3C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IA+EjF;;;OAGG;IACH,OAAO,CAAC,SAAS;IAsBjB;;OAEG;IACH,KAAK,IAAI,IAAI;CAMhB"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * OpenCode CLI Executor
3
+ * Integrates with OpenCode CLI for AI-assisted coding tasks
4
+ * https://github.com/opencode-ai/opencode
5
+ */
6
+ import { spawn } from 'child_process';
7
+ import { promisify } from 'util';
8
+ import { exec as execCallback } from 'child_process';
9
+ const exec = promisify(execCallback);
10
+ export class OpenCodeExecutor {
11
+ type = 'opencode';
12
+ process = null;
13
+ binaryPath;
14
+ constructor(binaryPath = 'opencode') {
15
+ this.binaryPath = binaryPath;
16
+ }
17
+ /**
18
+ * Check if OpenCode CLI is installed
19
+ */
20
+ async isAvailable() {
21
+ try {
22
+ await exec(`which ${this.binaryPath}`);
23
+ return true;
24
+ }
25
+ catch {
26
+ return false;
27
+ }
28
+ }
29
+ /**
30
+ * Execute a prompt using OpenCode CLI
31
+ */
32
+ async execute(prompt, options) {
33
+ const startTime = Date.now();
34
+ const args = this.buildArgs(prompt, options);
35
+ return new Promise((resolve) => {
36
+ let stdout = '';
37
+ let stderr = '';
38
+ const timeout = options?.timeout ?? 600000; // 10 min default
39
+ this.process = spawn(this.binaryPath, args, {
40
+ cwd: options?.cwd,
41
+ env: { ...process.env, ...options?.env },
42
+ stdio: ['pipe', 'pipe', 'pipe'],
43
+ });
44
+ const timeoutId = setTimeout(() => {
45
+ if (this.process) {
46
+ this.process.kill('SIGTERM');
47
+ resolve({
48
+ success: false,
49
+ output: stdout,
50
+ error: `Execution timed out after ${timeout}ms`,
51
+ durationMs: Date.now() - startTime,
52
+ });
53
+ }
54
+ }, timeout);
55
+ this.process.stdout?.on('data', (data) => {
56
+ const text = data.toString();
57
+ stdout += text;
58
+ options?.onOutput?.(text, 'stdout');
59
+ });
60
+ this.process.stderr?.on('data', (data) => {
61
+ const text = data.toString();
62
+ stderr += text;
63
+ options?.onOutput?.(text, 'stderr');
64
+ });
65
+ this.process.on('close', (code) => {
66
+ clearTimeout(timeoutId);
67
+ this.process = null;
68
+ // Try to parse JSON output if available
69
+ let structured;
70
+ try {
71
+ if (stdout.trim().startsWith('{')) {
72
+ structured = JSON.parse(stdout);
73
+ }
74
+ }
75
+ catch {
76
+ // Not JSON
77
+ }
78
+ resolve({
79
+ success: code === 0,
80
+ output: stdout,
81
+ error: code !== 0 ? stderr || `Exit code: ${code}` : undefined,
82
+ exitCode: code ?? undefined,
83
+ durationMs: Date.now() - startTime,
84
+ structured,
85
+ });
86
+ });
87
+ this.process.on('error', (err) => {
88
+ clearTimeout(timeoutId);
89
+ this.process = null;
90
+ resolve({
91
+ success: false,
92
+ output: stdout,
93
+ error: err.message,
94
+ durationMs: Date.now() - startTime,
95
+ });
96
+ });
97
+ });
98
+ }
99
+ /**
100
+ * Build OpenCode CLI arguments
101
+ * Uses `opencode run [message..]` for non-interactive execution
102
+ */
103
+ buildArgs(prompt, options) {
104
+ const args = [];
105
+ // Use 'run' subcommand for direct execution
106
+ args.push('run');
107
+ // Add prompt as message
108
+ args.push(prompt);
109
+ // Print logs for debugging
110
+ if (options?.captureOutput) {
111
+ args.push('--print-logs');
112
+ }
113
+ // Additional args from options
114
+ if (options?.args) {
115
+ args.push(...options.args);
116
+ }
117
+ return args;
118
+ }
119
+ /**
120
+ * Abort current execution
121
+ */
122
+ abort() {
123
+ if (this.process) {
124
+ this.process.kill('SIGTERM');
125
+ this.process = null;
126
+ }
127
+ }
128
+ }
129
+ //# sourceMappingURL=opencode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/worker/executors/opencode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Worker Module Exports
3
+ */
4
+ export { WorkerService, getWorker, resetWorker } from './service.js';
5
+ export { type WorkerConfig, type WorkerState, type TaskContext, type TaskResult, type WorkerEvent, type WorkerEventHandler, type WorkerStatus, DEFAULT_WORKER_CONFIG, buildTaskPrompt, type ExecutorType, type ExecutorConfig, type ExecutorOptions, type ExecutorResult, type SupervisorDecision, type VerificationResult, type RecoveryStrategy, type PromptCommandOptions, type PromptResult, type WorkerExecutorConfig, DEFAULT_EXECUTOR_CONFIG, } from './types.js';
6
+ export { SupervisorAgent, getSupervisor, resetSupervisor } from './supervisor.js';
7
+ export { type AgentExecutor, ExecutorRegistry, getExecutorRegistry, resetExecutorRegistry, } from './executors/index.js';
8
+ export { InternalExecutor } from './executors/internal.js';
9
+ export { ClaudeExecutor } from './executors/claude.js';
10
+ export { GeminiExecutor } from './executors/gemini.js';
11
+ export { CursorExecutor } from './executors/cursor.js';
12
+ export { CodexExecutor } from './executors/codex.js';
13
+ export { OpenCodeExecutor } from './executors/opencode.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,qBAAqB,EACrB,eAAe,EAEf,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,uBAAuB,GAC1B,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlF,OAAO,EACH,KAAK,aAAa,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,GACxB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Worker Module Exports
3
+ */
4
+ export { WorkerService, getWorker, resetWorker } from './service.js';
5
+ export { DEFAULT_WORKER_CONFIG, buildTaskPrompt, DEFAULT_EXECUTOR_CONFIG, } from './types.js';
6
+ // Supervisor Agent
7
+ export { SupervisorAgent, getSupervisor, resetSupervisor } from './supervisor.js';
8
+ // Executor Framework
9
+ export { ExecutorRegistry, getExecutorRegistry, resetExecutorRegistry, } from './executors/index.js';
10
+ // Individual Executors
11
+ export { InternalExecutor } from './executors/internal.js';
12
+ export { ClaudeExecutor } from './executors/claude.js';
13
+ export { GeminiExecutor } from './executors/gemini.js';
14
+ export { CursorExecutor } from './executors/cursor.js';
15
+ export { CodexExecutor } from './executors/codex.js';
16
+ export { OpenCodeExecutor } from './executors/opencode.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAQH,qBAAqB,EACrB,eAAe,EAYf,uBAAuB,GAC1B,MAAM,YAAY,CAAC;AAEpB,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElF,qBAAqB;AACrB,OAAO,EAEH,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,uBAAuB;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}