@calliopelabs/cli 0.6.6 → 0.6.8
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/agterm/agent-detection.d.ts +35 -0
- package/dist/agterm/agent-detection.d.ts.map +1 -0
- package/dist/agterm/agent-detection.js +94 -0
- package/dist/agterm/agent-detection.js.map +1 -0
- package/dist/agterm/cli-backend.d.ts +32 -0
- package/dist/agterm/cli-backend.d.ts.map +1 -0
- package/dist/agterm/cli-backend.js +193 -0
- package/dist/agterm/cli-backend.js.map +1 -0
- package/dist/agterm/index.d.ts +12 -0
- package/dist/agterm/index.d.ts.map +1 -0
- package/dist/agterm/index.js +15 -0
- package/dist/agterm/index.js.map +1 -0
- package/dist/agterm/orchestrator.d.ts +94 -0
- package/dist/agterm/orchestrator.d.ts.map +1 -0
- package/dist/agterm/orchestrator.js +302 -0
- package/dist/agterm/orchestrator.js.map +1 -0
- package/dist/agterm/tools.d.ts +24 -0
- package/dist/agterm/tools.d.ts.map +1 -0
- package/dist/agterm/tools.js +277 -0
- package/dist/agterm/tools.js.map +1 -0
- package/dist/agterm/types.d.ts +95 -0
- package/dist/agterm/types.d.ts.map +1 -0
- package/dist/agterm/types.js +38 -0
- package/dist/agterm/types.js.map +1 -0
- package/dist/bin.d.ts +2 -1
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +18 -3
- package/dist/bin.js.map +1 -1
- package/dist/errors.d.ts +5 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +107 -4
- package/dist/errors.js.map +1 -1
- package/dist/plugins.d.ts +120 -0
- package/dist/plugins.d.ts.map +1 -0
- package/dist/plugins.js +356 -0
- package/dist/plugins.js.map +1 -0
- package/dist/providers.js +208 -58
- package/dist/providers.js.map +1 -1
- package/dist/scope.d.ts +89 -0
- package/dist/scope.d.ts.map +1 -0
- package/dist/scope.js +253 -0
- package/dist/scope.js.map +1 -0
- package/dist/storage.d.ts +23 -0
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +83 -0
- package/dist/storage.js.map +1 -1
- package/dist/styles.d.ts +49 -83
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +140 -126
- package/dist/styles.js.map +1 -1
- package/dist/tools.d.ts +5 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +24 -10
- package/dist/tools.js.map +1 -1
- package/dist/ui-cli.d.ts +1 -0
- package/dist/ui-cli.d.ts.map +1 -1
- package/dist/ui-cli.js +707 -102
- package/dist/ui-cli.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AGTerm Agent Detection
|
|
3
|
+
*
|
|
4
|
+
* Detect which agent CLIs are installed and available.
|
|
5
|
+
*/
|
|
6
|
+
import type { SubAgentType, AgentCLIInfo } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Detect available agent CLIs
|
|
9
|
+
* Returns info about each agent including availability status
|
|
10
|
+
*/
|
|
11
|
+
export declare function detectAgents(): AgentCLIInfo[];
|
|
12
|
+
/**
|
|
13
|
+
* Get available agent types (ready to spawn)
|
|
14
|
+
*/
|
|
15
|
+
export declare function getAvailableAgents(): SubAgentType[];
|
|
16
|
+
/**
|
|
17
|
+
* Check if a specific agent is available
|
|
18
|
+
*/
|
|
19
|
+
export declare function isAgentAvailable(agent: SubAgentType): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Get CLI command and args for an agent
|
|
22
|
+
*/
|
|
23
|
+
export declare function getAgentCLI(agent: SubAgentType): {
|
|
24
|
+
command: string;
|
|
25
|
+
args: string[];
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Get environment variable name for an agent's API key
|
|
29
|
+
*/
|
|
30
|
+
export declare function getAgentEnvVar(agent: SubAgentType): string;
|
|
31
|
+
/**
|
|
32
|
+
* Print agent availability status (for debugging/display)
|
|
33
|
+
*/
|
|
34
|
+
export declare function getAgentStatusReport(): string;
|
|
35
|
+
//# sourceMappingURL=agent-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-detection.d.ts","sourceRoot":"","sources":["../../src/agterm/agent-detection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAsB7D;;;GAGG;AACH,wBAAgB,YAAY,IAAI,YAAY,EAAE,CA4B7C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,EAAE,CAInD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAG7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAGpF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAO7C"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AGTerm Agent Detection
|
|
3
|
+
*
|
|
4
|
+
* Detect which agent CLIs are installed and available.
|
|
5
|
+
*/
|
|
6
|
+
import { execSync } from 'child_process';
|
|
7
|
+
import { AGENT_CLI_MAP } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Check if a command exists in PATH
|
|
10
|
+
*/
|
|
11
|
+
function commandExists(command) {
|
|
12
|
+
try {
|
|
13
|
+
execSync(`which ${command}`, { stdio: 'ignore' });
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Check if an environment variable is set
|
|
22
|
+
*/
|
|
23
|
+
function hasEnvVar(name) {
|
|
24
|
+
return !!process.env[name];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Detect available agent CLIs
|
|
28
|
+
* Returns info about each agent including availability status
|
|
29
|
+
*/
|
|
30
|
+
export function detectAgents() {
|
|
31
|
+
const agents = [];
|
|
32
|
+
for (const [type, config] of Object.entries(AGENT_CLI_MAP)) {
|
|
33
|
+
const agentType = type;
|
|
34
|
+
const exists = commandExists(config.command);
|
|
35
|
+
const hasKey = hasEnvVar(config.envVar);
|
|
36
|
+
let available = exists && hasKey;
|
|
37
|
+
let reason;
|
|
38
|
+
if (!exists) {
|
|
39
|
+
reason = `${config.command} not found in PATH`;
|
|
40
|
+
}
|
|
41
|
+
else if (!hasKey) {
|
|
42
|
+
reason = `${config.envVar} not set`;
|
|
43
|
+
}
|
|
44
|
+
agents.push({
|
|
45
|
+
type: agentType,
|
|
46
|
+
command: config.command,
|
|
47
|
+
args: config.args,
|
|
48
|
+
envVar: config.envVar,
|
|
49
|
+
available,
|
|
50
|
+
reason,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return agents;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get available agent types (ready to spawn)
|
|
57
|
+
*/
|
|
58
|
+
export function getAvailableAgents() {
|
|
59
|
+
return detectAgents()
|
|
60
|
+
.filter(a => a.available)
|
|
61
|
+
.map(a => a.type);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Check if a specific agent is available
|
|
65
|
+
*/
|
|
66
|
+
export function isAgentAvailable(agent) {
|
|
67
|
+
const info = detectAgents().find(a => a.type === agent);
|
|
68
|
+
return info?.available ?? false;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get CLI command and args for an agent
|
|
72
|
+
*/
|
|
73
|
+
export function getAgentCLI(agent) {
|
|
74
|
+
const config = AGENT_CLI_MAP[agent];
|
|
75
|
+
return { command: config.command, args: [...config.args] };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get environment variable name for an agent's API key
|
|
79
|
+
*/
|
|
80
|
+
export function getAgentEnvVar(agent) {
|
|
81
|
+
return AGENT_CLI_MAP[agent].envVar;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Print agent availability status (for debugging/display)
|
|
85
|
+
*/
|
|
86
|
+
export function getAgentStatusReport() {
|
|
87
|
+
const agents = detectAgents();
|
|
88
|
+
const lines = agents.map(a => {
|
|
89
|
+
const status = a.available ? '✓ Ready' : `✗ ${a.reason}`;
|
|
90
|
+
return ` ${a.type}: ${status}`;
|
|
91
|
+
});
|
|
92
|
+
return `Sub-Agents:\n${lines.join('\n')}`;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=agent-detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-detection.js","sourceRoot":"","sources":["../../src/agterm/agent-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AGTerm CLI Backend
|
|
3
|
+
*
|
|
4
|
+
* Process spawning and execution for sub-agents.
|
|
5
|
+
*/
|
|
6
|
+
import type { AgentEvent, SubAgentTask } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Execute an agent task
|
|
9
|
+
* Returns an async generator that yields events as they occur
|
|
10
|
+
*/
|
|
11
|
+
export declare function executeAgent(task: SubAgentTask, cwd: string, timeout?: number): AsyncIterable<AgentEvent>;
|
|
12
|
+
/**
|
|
13
|
+
* Cancel a running task
|
|
14
|
+
*/
|
|
15
|
+
export declare function cancelTask(taskId: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Get output of a running or recently completed task
|
|
18
|
+
*/
|
|
19
|
+
export declare function getTaskOutput(taskId: string): string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Check if a task is currently running
|
|
22
|
+
*/
|
|
23
|
+
export declare function isTaskRunning(taskId: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Get count of currently running tasks
|
|
26
|
+
*/
|
|
27
|
+
export declare function getRunningTaskCount(): number;
|
|
28
|
+
/**
|
|
29
|
+
* Kill all running tasks (cleanup)
|
|
30
|
+
*/
|
|
31
|
+
export declare function killAllTasks(): void;
|
|
32
|
+
//# sourceMappingURL=cli-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-backend.d.ts","sourceRoot":"","sources":["../../src/agterm/cli-backend.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAgB,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA6BzE;;;GAGG;AACH,wBAAuB,YAAY,CACjC,IAAI,EAAE,YAAY,EAClB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,MAAuB,GAC/B,aAAa,CAAC,UAAU,CAAC,CA2I3B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQlD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAKnC"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AGTerm CLI Backend
|
|
3
|
+
*
|
|
4
|
+
* Process spawning and execution for sub-agents.
|
|
5
|
+
*/
|
|
6
|
+
import { spawn } from 'child_process';
|
|
7
|
+
import { getAgentCLI } from './agent-detection.js';
|
|
8
|
+
/**
|
|
9
|
+
* Map of currently running tasks
|
|
10
|
+
*/
|
|
11
|
+
const runningTasks = new Map();
|
|
12
|
+
/**
|
|
13
|
+
* Get environment variables for an agent
|
|
14
|
+
* Passes through existing env with terminal settings
|
|
15
|
+
*/
|
|
16
|
+
function getAgentEnv() {
|
|
17
|
+
return {
|
|
18
|
+
...process.env,
|
|
19
|
+
TERM: 'xterm-256color',
|
|
20
|
+
COLORTERM: 'truecolor',
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Execute an agent task
|
|
25
|
+
* Returns an async generator that yields events as they occur
|
|
26
|
+
*/
|
|
27
|
+
export async function* executeAgent(task, cwd, timeout = 15 * 60 * 1000 // 15 minutes default
|
|
28
|
+
) {
|
|
29
|
+
const { command, args } = getAgentCLI(task.agent);
|
|
30
|
+
const env = getAgentEnv();
|
|
31
|
+
// Emit start event
|
|
32
|
+
yield {
|
|
33
|
+
type: 'start',
|
|
34
|
+
taskId: task.id,
|
|
35
|
+
timestamp: new Date(),
|
|
36
|
+
};
|
|
37
|
+
// Build final args - Claude takes prompt as argument, others via stdin
|
|
38
|
+
const finalArgs = task.agent === 'claude'
|
|
39
|
+
? [...args, task.prompt]
|
|
40
|
+
: args;
|
|
41
|
+
const proc = spawn(command, finalArgs, {
|
|
42
|
+
cwd,
|
|
43
|
+
env,
|
|
44
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
45
|
+
});
|
|
46
|
+
// Track the running task
|
|
47
|
+
runningTasks.set(task.id, {
|
|
48
|
+
process: proc,
|
|
49
|
+
task,
|
|
50
|
+
output: '',
|
|
51
|
+
});
|
|
52
|
+
// For non-claude agents, write prompt to stdin
|
|
53
|
+
if (task.agent !== 'claude' && proc.stdin) {
|
|
54
|
+
proc.stdin.write(task.prompt + '\n');
|
|
55
|
+
proc.stdin.end();
|
|
56
|
+
}
|
|
57
|
+
// Set up event queue for async iteration
|
|
58
|
+
const events = [];
|
|
59
|
+
let resolveNext = null;
|
|
60
|
+
let isComplete = false;
|
|
61
|
+
// Set up timeout
|
|
62
|
+
const timeoutHandle = setTimeout(() => {
|
|
63
|
+
if (!isComplete) {
|
|
64
|
+
proc.kill('SIGTERM');
|
|
65
|
+
events.push({
|
|
66
|
+
type: 'error',
|
|
67
|
+
taskId: task.id,
|
|
68
|
+
timestamp: new Date(),
|
|
69
|
+
code: 'TIMEOUT',
|
|
70
|
+
message: `Task timed out after ${timeout}ms`,
|
|
71
|
+
});
|
|
72
|
+
isComplete = true;
|
|
73
|
+
runningTasks.delete(task.id);
|
|
74
|
+
resolveNext?.();
|
|
75
|
+
}
|
|
76
|
+
}, timeout);
|
|
77
|
+
// Handle stdout
|
|
78
|
+
proc.stdout?.on('data', (data) => {
|
|
79
|
+
const content = data.toString();
|
|
80
|
+
const running = runningTasks.get(task.id);
|
|
81
|
+
if (running)
|
|
82
|
+
running.output += content;
|
|
83
|
+
events.push({
|
|
84
|
+
type: 'text',
|
|
85
|
+
taskId: task.id,
|
|
86
|
+
timestamp: new Date(),
|
|
87
|
+
content,
|
|
88
|
+
});
|
|
89
|
+
resolveNext?.();
|
|
90
|
+
});
|
|
91
|
+
// Handle stderr
|
|
92
|
+
proc.stderr?.on('data', (data) => {
|
|
93
|
+
const content = data.toString();
|
|
94
|
+
const running = runningTasks.get(task.id);
|
|
95
|
+
if (running)
|
|
96
|
+
running.output += content;
|
|
97
|
+
events.push({
|
|
98
|
+
type: 'text',
|
|
99
|
+
taskId: task.id,
|
|
100
|
+
timestamp: new Date(),
|
|
101
|
+
content,
|
|
102
|
+
});
|
|
103
|
+
resolveNext?.();
|
|
104
|
+
});
|
|
105
|
+
// Handle process exit
|
|
106
|
+
proc.on('close', (code) => {
|
|
107
|
+
clearTimeout(timeoutHandle);
|
|
108
|
+
if (code === 0) {
|
|
109
|
+
events.push({
|
|
110
|
+
type: 'complete',
|
|
111
|
+
taskId: task.id,
|
|
112
|
+
timestamp: new Date(),
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
events.push({
|
|
117
|
+
type: 'error',
|
|
118
|
+
taskId: task.id,
|
|
119
|
+
timestamp: new Date(),
|
|
120
|
+
code: 'EXIT_ERROR',
|
|
121
|
+
message: `Process exited with code ${code}`,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
isComplete = true;
|
|
125
|
+
runningTasks.delete(task.id);
|
|
126
|
+
resolveNext?.();
|
|
127
|
+
});
|
|
128
|
+
// Handle spawn errors
|
|
129
|
+
proc.on('error', (error) => {
|
|
130
|
+
clearTimeout(timeoutHandle);
|
|
131
|
+
events.push({
|
|
132
|
+
type: 'error',
|
|
133
|
+
taskId: task.id,
|
|
134
|
+
timestamp: new Date(),
|
|
135
|
+
code: 'SPAWN_ERROR',
|
|
136
|
+
message: error.message,
|
|
137
|
+
});
|
|
138
|
+
isComplete = true;
|
|
139
|
+
runningTasks.delete(task.id);
|
|
140
|
+
resolveNext?.();
|
|
141
|
+
});
|
|
142
|
+
// Yield events as they arrive
|
|
143
|
+
while (!isComplete || events.length > 0) {
|
|
144
|
+
if (events.length > 0) {
|
|
145
|
+
yield events.shift();
|
|
146
|
+
}
|
|
147
|
+
else if (!isComplete) {
|
|
148
|
+
await new Promise((resolve) => {
|
|
149
|
+
resolveNext = resolve;
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Cancel a running task
|
|
156
|
+
*/
|
|
157
|
+
export function cancelTask(taskId) {
|
|
158
|
+
const running = runningTasks.get(taskId);
|
|
159
|
+
if (running) {
|
|
160
|
+
running.process.kill('SIGTERM');
|
|
161
|
+
runningTasks.delete(taskId);
|
|
162
|
+
return true;
|
|
163
|
+
}
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Get output of a running or recently completed task
|
|
168
|
+
*/
|
|
169
|
+
export function getTaskOutput(taskId) {
|
|
170
|
+
return runningTasks.get(taskId)?.output;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Check if a task is currently running
|
|
174
|
+
*/
|
|
175
|
+
export function isTaskRunning(taskId) {
|
|
176
|
+
return runningTasks.has(taskId);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get count of currently running tasks
|
|
180
|
+
*/
|
|
181
|
+
export function getRunningTaskCount() {
|
|
182
|
+
return runningTasks.size;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Kill all running tasks (cleanup)
|
|
186
|
+
*/
|
|
187
|
+
export function killAllTasks() {
|
|
188
|
+
for (const [taskId, running] of runningTasks) {
|
|
189
|
+
running.process.kill('SIGTERM');
|
|
190
|
+
runningTasks.delete(taskId);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=cli-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-backend.js","sourceRoot":"","sources":["../../src/agterm/cli-backend.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAWnD;;GAEG;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEpD;;;GAGG;AACH,SAAS,WAAW;IAClB,OAAO;QACL,GAAG,OAAO,CAAC,GAA6B;QACxC,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,WAAW;KACvB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CACjC,IAAkB,EAClB,GAAW,EACX,UAAkB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,qBAAqB;;IAEtD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAE1B,mBAAmB;IACnB,MAAM;QACJ,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC;IAEF,uEAAuE;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ;QACvC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE;QACrC,GAAG;QACH,GAAG;QACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KAChC,CAAC,CAAC;IAEH,yBAAyB;IACzB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;QACxB,OAAO,EAAE,IAAI;QACb,IAAI;QACJ,MAAM,EAAE,EAAE;KACX,CAAC,CAAC;IAEH,+CAA+C;IAC/C,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,yCAAyC;IACzC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,WAAW,GAAwB,IAAI,CAAC;IAC5C,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,iBAAiB;IACjB,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,wBAAwB,OAAO,IAAI;aAC7C,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,CAAC;YAClB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7B,WAAW,EAAE,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,OAAO,CAAC,CAAC;IAEZ,gBAAgB;IAChB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,OAAO;YAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC;QAEvC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO;SACR,CAAC,CAAC;QACH,WAAW,EAAE,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,gBAAgB;IAChB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,OAAO;YAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC;QAEvC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO;SACR,CAAC,CAAC;QACH,WAAW,EAAE,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACxB,YAAY,CAAC,aAAa,CAAC,CAAC;QAE5B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,4BAA4B,IAAI,EAAE;aAC5C,CAAC,CAAC;QACL,CAAC;QAED,UAAU,GAAG,IAAI,CAAC;QAClB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7B,WAAW,EAAE,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACzB,YAAY,CAAC,aAAa,CAAC,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QAEH,UAAU,GAAG,IAAI,CAAC;QAClB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7B,WAAW,EAAE,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,CAAC,KAAK,EAAG,CAAC;QACxB,CAAC;aAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,WAAW,GAAG,OAAO,CAAC;YACxB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,YAAY,CAAC,IAAI,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AGTerm Multi-Agent Module
|
|
3
|
+
*
|
|
4
|
+
* Provides sub-agent orchestration capabilities.
|
|
5
|
+
*/
|
|
6
|
+
export type { SubAgentType, SubAgentTaskStatus, TaskPriority, SubAgentTask, OrchestratorConfig, AgentCLIInfo, AgentEventType, AgentEvent, } from './types.js';
|
|
7
|
+
export { DEFAULT_ORCHESTRATOR_CONFIG, AGENT_CLI_MAP, } from './types.js';
|
|
8
|
+
export { detectAgents, getAvailableAgents, isAgentAvailable, getAgentCLI, getAgentEnvVar, getAgentStatusReport, } from './agent-detection.js';
|
|
9
|
+
export { executeAgent, cancelTask, getTaskOutput, isTaskRunning, getRunningTaskCount, killAllTasks, } from './cli-backend.js';
|
|
10
|
+
export { orchestrator } from './orchestrator.js';
|
|
11
|
+
export { getAgtermTools, AGTERM_TOOL_NAMES, isAgtermTool, executeAgtermTool, } from './tools.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agterm/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,2BAA2B,EAC3B,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AGTerm Multi-Agent Module
|
|
3
|
+
*
|
|
4
|
+
* Provides sub-agent orchestration capabilities.
|
|
5
|
+
*/
|
|
6
|
+
export { DEFAULT_ORCHESTRATOR_CONFIG, AGENT_CLI_MAP, } from './types.js';
|
|
7
|
+
// Agent Detection
|
|
8
|
+
export { detectAgents, getAvailableAgents, isAgentAvailable, getAgentCLI, getAgentEnvVar, getAgentStatusReport, } from './agent-detection.js';
|
|
9
|
+
// CLI Backend
|
|
10
|
+
export { executeAgent, cancelTask, getTaskOutput, isTaskRunning, getRunningTaskCount, killAllTasks, } from './cli-backend.js';
|
|
11
|
+
// Orchestrator
|
|
12
|
+
export { orchestrator } from './orchestrator.js';
|
|
13
|
+
// Tools
|
|
14
|
+
export { getAgtermTools, AGTERM_TOOL_NAMES, isAgtermTool, executeAgtermTool, } from './tools.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agterm/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,OAAO,EACL,2BAA2B,EAC3B,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,kBAAkB;AAClB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,cAAc;AACd,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAE1B,eAAe;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,QAAQ;AACR,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AGTerm Orchestrator
|
|
3
|
+
*
|
|
4
|
+
* Task queue management with depth limiting and priority ordering.
|
|
5
|
+
*/
|
|
6
|
+
import type { SubAgentTask, SubAgentType, TaskPriority, OrchestratorConfig } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Agent Orchestrator
|
|
9
|
+
*
|
|
10
|
+
* Manages task queue, depth limiting, and sub-agent execution.
|
|
11
|
+
*/
|
|
12
|
+
declare class AgentOrchestrator {
|
|
13
|
+
private config;
|
|
14
|
+
private tasks;
|
|
15
|
+
private taskQueue;
|
|
16
|
+
private runningTasks;
|
|
17
|
+
private currentCwd;
|
|
18
|
+
constructor(config?: Partial<OrchestratorConfig>);
|
|
19
|
+
/**
|
|
20
|
+
* Update configuration
|
|
21
|
+
*/
|
|
22
|
+
updateConfig(config: Partial<OrchestratorConfig>): void;
|
|
23
|
+
/**
|
|
24
|
+
* Set the working directory for task execution
|
|
25
|
+
*/
|
|
26
|
+
setCwd(cwd: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* Spawn a sub-agent task
|
|
29
|
+
*/
|
|
30
|
+
spawnAgent(prompt: string, agent: SubAgentType, options?: {
|
|
31
|
+
parentId?: string;
|
|
32
|
+
priority?: TaskPriority;
|
|
33
|
+
background?: boolean;
|
|
34
|
+
cwd?: string;
|
|
35
|
+
}): Promise<SubAgentTask>;
|
|
36
|
+
/**
|
|
37
|
+
* Get a task by ID
|
|
38
|
+
*/
|
|
39
|
+
getTask(taskId: string): SubAgentTask | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Get all tasks
|
|
42
|
+
*/
|
|
43
|
+
getAllTasks(): SubAgentTask[];
|
|
44
|
+
/**
|
|
45
|
+
* Get tasks by status
|
|
46
|
+
*/
|
|
47
|
+
getTasksByStatus(status: SubAgentTask['status']): SubAgentTask[];
|
|
48
|
+
/**
|
|
49
|
+
* Get task tree (task and all descendants)
|
|
50
|
+
*/
|
|
51
|
+
getTaskTree(taskId: string): SubAgentTask[];
|
|
52
|
+
/**
|
|
53
|
+
* Cancel a task and its children
|
|
54
|
+
*/
|
|
55
|
+
cancelTask(taskId: string): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Get orchestrator statistics
|
|
58
|
+
*/
|
|
59
|
+
getStats(): {
|
|
60
|
+
totalTasks: number;
|
|
61
|
+
queuedTasks: number;
|
|
62
|
+
runningTasks: number;
|
|
63
|
+
completedTasks: number;
|
|
64
|
+
failedTasks: number;
|
|
65
|
+
cancelledTasks: number;
|
|
66
|
+
maxDepthUsed: number;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Cleanup old completed tasks
|
|
70
|
+
*/
|
|
71
|
+
cleanup(maxAgeMs?: number): number;
|
|
72
|
+
/**
|
|
73
|
+
* Reset orchestrator state
|
|
74
|
+
*/
|
|
75
|
+
reset(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Insert task into queue based on priority
|
|
78
|
+
*/
|
|
79
|
+
private insertIntoQueue;
|
|
80
|
+
/**
|
|
81
|
+
* Process the task queue
|
|
82
|
+
*/
|
|
83
|
+
private processQueue;
|
|
84
|
+
/**
|
|
85
|
+
* Run a single task
|
|
86
|
+
*/
|
|
87
|
+
private runTask;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Singleton orchestrator instance
|
|
91
|
+
*/
|
|
92
|
+
export declare const orchestrator: AgentOrchestrator;
|
|
93
|
+
export {};
|
|
94
|
+
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/agterm/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAepB;;;;GAIG;AACH,cAAM,iBAAiB;IACrB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,UAAU,CAAyB;gBAE/B,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAIpD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAIvD;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB;;OAEG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,GAAG,CAAC,EAAE,MAAM,CAAC;KACT,GACL,OAAO,CAAC,YAAY,CAAC;IA6FxB;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD;;OAEG;IACH,WAAW,IAAI,YAAY,EAAE;IAI7B;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,EAAE;IAIhE;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IAW3C;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B/C;;OAEG;IACH,QAAQ,IAAI;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;KACtB;IAaD;;OAEG;IACH,OAAO,CAAC,QAAQ,GAAE,MAAuB,GAAG,MAAM;IA0BlD;;OAEG;IACH,KAAK,IAAI,IAAI;IAUb;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;YACW,YAAY;IAmB1B;;OAEG;YACW,OAAO;CAgCtB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,mBAA0B,CAAC"}
|