@amistio/cli 0.1.0 → 0.1.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.
- package/README.md +2 -2
- package/dist/index.d.ts +0 -1
- package/dist/index.js +3493 -642
- package/dist/index.js.map +7 -1
- package/package.json +9 -6
- package/dist/api-client.d.ts +0 -175
- package/dist/api-client.d.ts.map +0 -1
- package/dist/api-client.js +0 -116
- package/dist/api-client.js.map +0 -1
- package/dist/bootstrap.d.ts +0 -11
- package/dist/bootstrap.d.ts.map +0 -1
- package/dist/bootstrap.js +0 -66
- package/dist/bootstrap.js.map +0 -1
- package/dist/control-plane.d.ts +0 -11
- package/dist/control-plane.d.ts.map +0 -1
- package/dist/control-plane.js +0 -91
- package/dist/control-plane.js.map +0 -1
- package/dist/credential-store.d.ts +0 -9
- package/dist/credential-store.d.ts.map +0 -1
- package/dist/credential-store.js +0 -32
- package/dist/credential-store.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/local-tool-runner.d.ts +0 -93
- package/dist/local-tool-runner.d.ts.map +0 -1
- package/dist/local-tool-runner.js +0 -472
- package/dist/local-tool-runner.js.map +0 -1
- package/dist/orchestrator.d.ts +0 -7
- package/dist/orchestrator.d.ts.map +0 -1
- package/dist/orchestrator.js +0 -61
- package/dist/orchestrator.js.map +0 -1
- package/dist/session-policy.d.ts +0 -20
- package/dist/session-policy.d.ts.map +0 -1
- package/dist/session-policy.js +0 -125
- package/dist/session-policy.js.map +0 -1
- package/dist/sync.d.ts +0 -33
- package/dist/sync.d.ts.map +0 -1
- package/dist/sync.js +0 -279
- package/dist/sync.js.map +0 -1
- package/dist/tool-session-store.d.ts +0 -8
- package/dist/tool-session-store.d.ts.map +0 -1
- package/dist/tool-session-store.js +0 -38
- package/dist/tool-session-store.js.map +0 -1
- package/dist/work-runner.d.ts +0 -4
- package/dist/work-runner.d.ts.map +0 -1
- package/dist/work-runner.js +0 -100
- package/dist/work-runner.js.map +0 -1
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import type { SessionDecision, SessionPolicy, SessionResumabilityScope } from "@amistio/shared";
|
|
2
|
-
export declare const localToolNames: readonly ["opencode", "claude", "codex", "copilot", "gemini", "aider", "cursor-agent"];
|
|
3
|
-
export type LocalToolName = (typeof localToolNames)[number];
|
|
4
|
-
export type ToolRequest = LocalToolName | "auto" | "none";
|
|
5
|
-
export interface LocalToolAdapter {
|
|
6
|
-
name: LocalToolName;
|
|
7
|
-
description: string;
|
|
8
|
-
sdkPackageName?: string;
|
|
9
|
-
sdkDisplayCommand?: string;
|
|
10
|
-
sdkRequiresExecutable?: boolean;
|
|
11
|
-
executable?: string;
|
|
12
|
-
supportsSessionReuse?: boolean;
|
|
13
|
-
resumabilityScope?: SessionResumabilityScope;
|
|
14
|
-
buildInvocation?: (input: ToolInvocationInput) => ToolInvocation;
|
|
15
|
-
runWithSdk?: (input: ToolExecutionInput) => Promise<ToolExecutionResult>;
|
|
16
|
-
}
|
|
17
|
-
export interface DetectedLocalTool {
|
|
18
|
-
name: LocalToolName;
|
|
19
|
-
description: string;
|
|
20
|
-
available: boolean;
|
|
21
|
-
sdkAvailable: boolean;
|
|
22
|
-
commandAvailable: boolean;
|
|
23
|
-
execution: "sdk" | "command" | "unavailable";
|
|
24
|
-
supportsSessionReuse: boolean;
|
|
25
|
-
resumabilityScope: SessionResumabilityScope;
|
|
26
|
-
}
|
|
27
|
-
export interface ToolInvocationInput {
|
|
28
|
-
prompt: string;
|
|
29
|
-
promptFilePath: string;
|
|
30
|
-
rootDir: string;
|
|
31
|
-
}
|
|
32
|
-
export interface ToolExecutionInput extends ToolInvocationInput {
|
|
33
|
-
streamOutput: boolean;
|
|
34
|
-
session?: ToolExecutionSession;
|
|
35
|
-
}
|
|
36
|
-
export interface ToolExecutionSession {
|
|
37
|
-
toolSessionId: string;
|
|
38
|
-
policy: SessionPolicy;
|
|
39
|
-
decision: SessionDecision;
|
|
40
|
-
providerSessionId?: string;
|
|
41
|
-
}
|
|
42
|
-
export interface ToolInvocation {
|
|
43
|
-
command: string;
|
|
44
|
-
args: string[];
|
|
45
|
-
displayCommand: string;
|
|
46
|
-
shell?: boolean;
|
|
47
|
-
stdin?: string;
|
|
48
|
-
}
|
|
49
|
-
export interface RunLocalToolOptions {
|
|
50
|
-
rootDir: string;
|
|
51
|
-
prompt: string;
|
|
52
|
-
tool?: string;
|
|
53
|
-
toolCommand?: string;
|
|
54
|
-
streamOutput?: boolean;
|
|
55
|
-
session?: ToolExecutionSession;
|
|
56
|
-
}
|
|
57
|
-
export interface LocalToolRunResult {
|
|
58
|
-
toolName: string;
|
|
59
|
-
displayCommand: string;
|
|
60
|
-
exitCode: number;
|
|
61
|
-
stdout: string;
|
|
62
|
-
stderr: string;
|
|
63
|
-
supportsSessionReuse: boolean;
|
|
64
|
-
resumabilityScope: SessionResumabilityScope;
|
|
65
|
-
providerSessionId?: string;
|
|
66
|
-
messageCount?: number;
|
|
67
|
-
tokensIn?: number;
|
|
68
|
-
tokensOut?: number;
|
|
69
|
-
costUsd?: number;
|
|
70
|
-
}
|
|
71
|
-
interface ToolExecutionResult {
|
|
72
|
-
exitCode: number;
|
|
73
|
-
stdout: string;
|
|
74
|
-
stderr: string;
|
|
75
|
-
providerSessionId?: string;
|
|
76
|
-
messageCount?: number;
|
|
77
|
-
tokensIn?: number;
|
|
78
|
-
tokensOut?: number;
|
|
79
|
-
costUsd?: number;
|
|
80
|
-
}
|
|
81
|
-
export declare const localToolAdapters: readonly LocalToolAdapter[];
|
|
82
|
-
export declare function isLocalToolName(value: string): value is LocalToolName;
|
|
83
|
-
export declare function detectLocalTools(): Promise<DetectedLocalTool[]>;
|
|
84
|
-
export declare function runLocalTool(options: RunLocalToolOptions): Promise<LocalToolRunResult>;
|
|
85
|
-
export declare function createToolRunPreview(options: RunLocalToolOptions): Promise<{
|
|
86
|
-
toolName: string;
|
|
87
|
-
displayCommand: string;
|
|
88
|
-
supportsSessionReuse: boolean;
|
|
89
|
-
resumabilityScope: SessionResumabilityScope;
|
|
90
|
-
}>;
|
|
91
|
-
export declare function createCustomToolInvocation(commandTemplate: string, input: ToolInvocationInput): ToolInvocation;
|
|
92
|
-
export {};
|
|
93
|
-
//# sourceMappingURL=local-tool-runner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-tool-runner.d.ts","sourceRoot":"","sources":["../src/local-tool-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,472 +0,0 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
|
-
import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
3
|
-
import os from "node:os";
|
|
4
|
-
import path from "node:path";
|
|
5
|
-
export const localToolNames = ["opencode", "claude", "codex", "copilot", "gemini", "aider", "cursor-agent"];
|
|
6
|
-
export const localToolAdapters = [
|
|
7
|
-
{
|
|
8
|
-
name: "opencode",
|
|
9
|
-
description: "opencode SDK adapter using @opencode-ai/sdk, with CLI fallback.",
|
|
10
|
-
sdkPackageName: "@opencode-ai/sdk",
|
|
11
|
-
sdkDisplayCommand: "@opencode-ai/sdk createOpencode().client.session.prompt()",
|
|
12
|
-
sdkRequiresExecutable: true,
|
|
13
|
-
executable: "opencode",
|
|
14
|
-
supportsSessionReuse: true,
|
|
15
|
-
resumabilityScope: "localMachine",
|
|
16
|
-
runWithSdk: runOpencodeSdk,
|
|
17
|
-
buildInvocation: ({ prompt }) => ({
|
|
18
|
-
command: "opencode",
|
|
19
|
-
args: ["run", prompt],
|
|
20
|
-
displayCommand: "opencode run <generated prompt>"
|
|
21
|
-
})
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
name: "claude",
|
|
25
|
-
description: "Claude Agent SDK adapter using @anthropic-ai/claude-agent-sdk, with CLI fallback.",
|
|
26
|
-
sdkPackageName: "@anthropic-ai/claude-agent-sdk",
|
|
27
|
-
sdkDisplayCommand: "@anthropic-ai/claude-agent-sdk query()",
|
|
28
|
-
executable: "claude",
|
|
29
|
-
supportsSessionReuse: false,
|
|
30
|
-
resumabilityScope: "none",
|
|
31
|
-
runWithSdk: runClaudeSdk,
|
|
32
|
-
buildInvocation: ({ prompt }) => ({
|
|
33
|
-
command: "claude",
|
|
34
|
-
args: ["-p", prompt],
|
|
35
|
-
displayCommand: "claude -p <generated prompt>"
|
|
36
|
-
})
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: "codex",
|
|
40
|
-
description: "Codex SDK adapter using @openai/codex-sdk, with CLI fallback.",
|
|
41
|
-
sdkPackageName: "@openai/codex-sdk",
|
|
42
|
-
sdkDisplayCommand: "@openai/codex-sdk Codex.startThread().run()",
|
|
43
|
-
executable: "codex",
|
|
44
|
-
supportsSessionReuse: false,
|
|
45
|
-
resumabilityScope: "none",
|
|
46
|
-
runWithSdk: runCodexSdk,
|
|
47
|
-
buildInvocation: ({ prompt }) => ({
|
|
48
|
-
command: "codex",
|
|
49
|
-
args: ["exec", prompt],
|
|
50
|
-
displayCommand: "codex exec <generated prompt>"
|
|
51
|
-
})
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
name: "copilot",
|
|
55
|
-
description: "GitHub Copilot SDK adapter using @github/copilot-sdk.",
|
|
56
|
-
sdkPackageName: "@github/copilot-sdk",
|
|
57
|
-
sdkDisplayCommand: "@github/copilot-sdk CopilotClient.createSession().sendAndWait()",
|
|
58
|
-
supportsSessionReuse: false,
|
|
59
|
-
resumabilityScope: "none",
|
|
60
|
-
runWithSdk: runCopilotSdk
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
name: "gemini",
|
|
64
|
-
description: "Gemini CLI adapter using prompt mode.",
|
|
65
|
-
executable: "gemini",
|
|
66
|
-
supportsSessionReuse: false,
|
|
67
|
-
resumabilityScope: "none",
|
|
68
|
-
buildInvocation: ({ prompt }) => ({
|
|
69
|
-
command: "gemini",
|
|
70
|
-
args: ["-p", prompt],
|
|
71
|
-
displayCommand: "gemini -p <generated prompt>"
|
|
72
|
-
})
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
name: "aider",
|
|
76
|
-
description: "Aider CLI adapter using a one-shot message.",
|
|
77
|
-
executable: "aider",
|
|
78
|
-
supportsSessionReuse: false,
|
|
79
|
-
resumabilityScope: "none",
|
|
80
|
-
buildInvocation: ({ prompt }) => ({
|
|
81
|
-
command: "aider",
|
|
82
|
-
args: ["--yes", "--message", prompt],
|
|
83
|
-
displayCommand: "aider --yes --message <generated prompt>"
|
|
84
|
-
})
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
name: "cursor-agent",
|
|
88
|
-
description: "Cursor agent CLI adapter using prompt mode when installed.",
|
|
89
|
-
executable: "cursor-agent",
|
|
90
|
-
supportsSessionReuse: false,
|
|
91
|
-
resumabilityScope: "none",
|
|
92
|
-
buildInvocation: ({ prompt }) => ({
|
|
93
|
-
command: "cursor-agent",
|
|
94
|
-
args: ["-p", prompt],
|
|
95
|
-
displayCommand: "cursor-agent -p <generated prompt>"
|
|
96
|
-
})
|
|
97
|
-
}
|
|
98
|
-
];
|
|
99
|
-
export function isLocalToolName(value) {
|
|
100
|
-
return localToolNames.includes(value);
|
|
101
|
-
}
|
|
102
|
-
export async function detectLocalTools() {
|
|
103
|
-
return Promise.all(localToolAdapters.map(async (adapter) => {
|
|
104
|
-
const sdkAvailable = await isSdkAvailable(adapter);
|
|
105
|
-
const commandAvailable = adapter.executable ? await commandExists(adapter.executable) : false;
|
|
106
|
-
return {
|
|
107
|
-
name: adapter.name,
|
|
108
|
-
description: adapter.description,
|
|
109
|
-
available: sdkAvailable || commandAvailable,
|
|
110
|
-
sdkAvailable,
|
|
111
|
-
commandAvailable,
|
|
112
|
-
execution: sdkAvailable ? "sdk" : commandAvailable ? "command" : "unavailable",
|
|
113
|
-
supportsSessionReuse: Boolean(adapter.supportsSessionReuse),
|
|
114
|
-
resumabilityScope: adapter.resumabilityScope ?? "none"
|
|
115
|
-
};
|
|
116
|
-
}));
|
|
117
|
-
}
|
|
118
|
-
export async function runLocalTool(options) {
|
|
119
|
-
const promptTempDir = await mkdtemp(path.join(os.tmpdir(), "amistio-prompt-"));
|
|
120
|
-
const promptFilePath = path.join(promptTempDir, "prompt.md");
|
|
121
|
-
await writeFile(promptFilePath, options.prompt, "utf8");
|
|
122
|
-
try {
|
|
123
|
-
const runnerOptions = {
|
|
124
|
-
rootDir: options.rootDir,
|
|
125
|
-
prompt: options.prompt,
|
|
126
|
-
promptFilePath,
|
|
127
|
-
tool: options.tool ?? "auto"
|
|
128
|
-
};
|
|
129
|
-
if (options.toolCommand) {
|
|
130
|
-
runnerOptions.toolCommand = options.toolCommand;
|
|
131
|
-
}
|
|
132
|
-
const runner = await createToolRunner(runnerOptions);
|
|
133
|
-
const result = await executeToolRunner(runner, {
|
|
134
|
-
rootDir: options.rootDir,
|
|
135
|
-
prompt: options.prompt,
|
|
136
|
-
promptFilePath,
|
|
137
|
-
streamOutput: Boolean(options.streamOutput),
|
|
138
|
-
...(options.session ? { session: options.session } : {})
|
|
139
|
-
});
|
|
140
|
-
return {
|
|
141
|
-
toolName: runner.toolName,
|
|
142
|
-
displayCommand: runner.kind === "sdk" ? runner.displayCommand : runner.invocation.displayCommand,
|
|
143
|
-
supportsSessionReuse: runner.kind === "sdk" ? Boolean(runner.adapter.supportsSessionReuse) : false,
|
|
144
|
-
resumabilityScope: runner.kind === "sdk" ? runner.adapter.resumabilityScope ?? "none" : "none",
|
|
145
|
-
...result
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
finally {
|
|
149
|
-
await rm(promptTempDir, { recursive: true, force: true });
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
export async function createToolRunPreview(options) {
|
|
153
|
-
const promptFilePath = path.join(os.tmpdir(), "amistio-generated-prompt.md");
|
|
154
|
-
const runnerOptions = {
|
|
155
|
-
rootDir: options.rootDir,
|
|
156
|
-
prompt: options.prompt,
|
|
157
|
-
promptFilePath,
|
|
158
|
-
tool: options.tool ?? "auto"
|
|
159
|
-
};
|
|
160
|
-
if (options.toolCommand) {
|
|
161
|
-
runnerOptions.toolCommand = options.toolCommand;
|
|
162
|
-
}
|
|
163
|
-
const runner = await createToolRunner(runnerOptions);
|
|
164
|
-
return {
|
|
165
|
-
toolName: runner.toolName,
|
|
166
|
-
displayCommand: runner.kind === "sdk" ? runner.displayCommand : runner.invocation.displayCommand,
|
|
167
|
-
supportsSessionReuse: runner.kind === "sdk" ? Boolean(runner.adapter.supportsSessionReuse) : false,
|
|
168
|
-
resumabilityScope: runner.kind === "sdk" ? runner.adapter.resumabilityScope ?? "none" : "none"
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
export function createCustomToolInvocation(commandTemplate, input) {
|
|
172
|
-
const displayCommand = commandTemplate
|
|
173
|
-
.replaceAll("{promptFile}", shellQuote(input.promptFilePath))
|
|
174
|
-
.replaceAll("{root}", shellQuote(input.rootDir));
|
|
175
|
-
return {
|
|
176
|
-
command: displayCommand,
|
|
177
|
-
args: [],
|
|
178
|
-
displayCommand,
|
|
179
|
-
shell: true,
|
|
180
|
-
...(commandTemplate.includes("{promptFile}") ? {} : { stdin: input.prompt })
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
async function createToolRunner(options) {
|
|
184
|
-
if (options.toolCommand) {
|
|
185
|
-
return {
|
|
186
|
-
toolName: "custom",
|
|
187
|
-
kind: "command",
|
|
188
|
-
invocation: createCustomToolInvocation(options.toolCommand, options)
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
|
-
const tool = normalizeToolRequest(options.tool);
|
|
192
|
-
if (tool === "none") {
|
|
193
|
-
throw new Error("No local tool selected. Use --tool auto, a supported tool name, or --tool-command.");
|
|
194
|
-
}
|
|
195
|
-
const adapter = tool === "auto" ? await selectFirstAvailableAdapter() : await selectRequestedAdapter(tool);
|
|
196
|
-
if (adapter.runWithSdk && (await isSdkAvailable(adapter))) {
|
|
197
|
-
return {
|
|
198
|
-
toolName: adapter.name,
|
|
199
|
-
kind: "sdk",
|
|
200
|
-
displayCommand: adapter.sdkDisplayCommand ?? `${adapter.name} SDK`,
|
|
201
|
-
adapter
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
if (adapter.buildInvocation && adapter.executable && (await commandExists(adapter.executable))) {
|
|
205
|
-
return {
|
|
206
|
-
toolName: adapter.name,
|
|
207
|
-
kind: "command",
|
|
208
|
-
invocation: adapter.buildInvocation(options)
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
throw new Error(`The ${adapter.name} SDK or executable was not found. Install the SDK/runtime or pass --tool-command.`);
|
|
212
|
-
}
|
|
213
|
-
async function executeToolRunner(runner, input) {
|
|
214
|
-
if (runner.kind === "command") {
|
|
215
|
-
return executeToolInvocation(runner.invocation, input.rootDir, input.streamOutput);
|
|
216
|
-
}
|
|
217
|
-
try {
|
|
218
|
-
return await runner.adapter.runWithSdk(input);
|
|
219
|
-
}
|
|
220
|
-
catch (error) {
|
|
221
|
-
if (runner.adapter.buildInvocation && runner.adapter.executable && (await commandExists(runner.adapter.executable))) {
|
|
222
|
-
const fallback = runner.adapter.buildInvocation(input);
|
|
223
|
-
const result = await executeToolInvocation(fallback, input.rootDir, input.streamOutput);
|
|
224
|
-
const sdkFailure = `SDK execution for ${runner.adapter.name} failed, fell back to ${fallback.displayCommand}: ${errorMessage(error)}`;
|
|
225
|
-
return {
|
|
226
|
-
...result,
|
|
227
|
-
stderr: result.stderr ? `${sdkFailure}\n${result.stderr}` : sdkFailure
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
throw error;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
function normalizeToolRequest(value) {
|
|
234
|
-
if (value === "auto" || value === "none" || isLocalToolName(value)) {
|
|
235
|
-
return value;
|
|
236
|
-
}
|
|
237
|
-
throw new Error(`Unsupported local tool: ${value}. Supported tools: auto, none, ${localToolNames.join(", ")}.`);
|
|
238
|
-
}
|
|
239
|
-
async function selectFirstAvailableAdapter() {
|
|
240
|
-
for (const adapter of localToolAdapters) {
|
|
241
|
-
const sdkAvailable = await isSdkAvailable(adapter);
|
|
242
|
-
const commandAvailable = adapter.executable ? await commandExists(adapter.executable) : false;
|
|
243
|
-
if (sdkAvailable || commandAvailable) {
|
|
244
|
-
return adapter;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
throw new Error(`No supported local AI tool was found. Install one of ${localToolNames.join(", ")} or pass --tool-command "your-tool --prompt-file {promptFile}".`);
|
|
248
|
-
}
|
|
249
|
-
async function selectRequestedAdapter(tool) {
|
|
250
|
-
const adapter = localToolAdapters.find((candidate) => candidate.name === tool);
|
|
251
|
-
if (!adapter) {
|
|
252
|
-
throw new Error(`Unsupported local tool: ${tool}.`);
|
|
253
|
-
}
|
|
254
|
-
if (await isSdkAvailable(adapter)) {
|
|
255
|
-
return adapter;
|
|
256
|
-
}
|
|
257
|
-
if (adapter.executable && (await commandExists(adapter.executable))) {
|
|
258
|
-
return adapter;
|
|
259
|
-
}
|
|
260
|
-
throw new Error(`The ${tool} SDK or executable was not found. Install it or pass --tool-command.`);
|
|
261
|
-
}
|
|
262
|
-
async function isSdkAvailable(adapter) {
|
|
263
|
-
if (!adapter.sdkPackageName || !adapter.runWithSdk) {
|
|
264
|
-
return false;
|
|
265
|
-
}
|
|
266
|
-
if (adapter.sdkRequiresExecutable && adapter.executable && !(await commandExists(adapter.executable))) {
|
|
267
|
-
return false;
|
|
268
|
-
}
|
|
269
|
-
return packageAvailable(adapter.sdkPackageName);
|
|
270
|
-
}
|
|
271
|
-
async function packageAvailable(packageName) {
|
|
272
|
-
try {
|
|
273
|
-
await import(packageName);
|
|
274
|
-
return true;
|
|
275
|
-
}
|
|
276
|
-
catch {
|
|
277
|
-
return false;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
async function commandExists(command) {
|
|
281
|
-
const lookupCommand = process.platform === "win32" ? "where" : "which";
|
|
282
|
-
return new Promise((resolve) => {
|
|
283
|
-
const lookup = spawn(lookupCommand, [command], { stdio: "ignore" });
|
|
284
|
-
lookup.on("error", () => resolve(false));
|
|
285
|
-
lookup.on("close", (exitCode) => resolve(exitCode === 0));
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
async function executeToolInvocation(invocation, rootDir, streamOutput) {
|
|
289
|
-
return new Promise((resolve, reject) => {
|
|
290
|
-
const child = spawn(invocation.command, invocation.args, {
|
|
291
|
-
cwd: rootDir,
|
|
292
|
-
env: process.env,
|
|
293
|
-
shell: invocation.shell ?? false,
|
|
294
|
-
stdio: ["pipe", "pipe", "pipe"]
|
|
295
|
-
});
|
|
296
|
-
let stdout = "";
|
|
297
|
-
let stderr = "";
|
|
298
|
-
child.on("error", reject);
|
|
299
|
-
child.stdout.setEncoding("utf8");
|
|
300
|
-
child.stderr.setEncoding("utf8");
|
|
301
|
-
child.stdout.on("data", (chunk) => {
|
|
302
|
-
stdout += chunk;
|
|
303
|
-
if (streamOutput) {
|
|
304
|
-
process.stdout.write(chunk);
|
|
305
|
-
}
|
|
306
|
-
});
|
|
307
|
-
child.stderr.on("data", (chunk) => {
|
|
308
|
-
stderr += chunk;
|
|
309
|
-
if (streamOutput) {
|
|
310
|
-
process.stderr.write(chunk);
|
|
311
|
-
}
|
|
312
|
-
});
|
|
313
|
-
child.stdin.on("error", () => undefined);
|
|
314
|
-
if (invocation.stdin) {
|
|
315
|
-
child.stdin.write(invocation.stdin);
|
|
316
|
-
}
|
|
317
|
-
child.stdin.end();
|
|
318
|
-
child.on("close", (exitCode) => {
|
|
319
|
-
resolve({ exitCode: exitCode ?? 1, stdout, stderr });
|
|
320
|
-
});
|
|
321
|
-
});
|
|
322
|
-
}
|
|
323
|
-
async function runOpencodeSdk(input) {
|
|
324
|
-
const { createOpencode } = await import("@opencode-ai/sdk");
|
|
325
|
-
const previousDirectory = process.cwd();
|
|
326
|
-
process.chdir(input.rootDir);
|
|
327
|
-
try {
|
|
328
|
-
const opencode = await createOpencode({ timeout: 10_000 });
|
|
329
|
-
try {
|
|
330
|
-
let providerSessionId = input.session?.providerSessionId;
|
|
331
|
-
if (!providerSessionId) {
|
|
332
|
-
const sessionResult = (await opencode.client.session.create({
|
|
333
|
-
query: { directory: input.rootDir },
|
|
334
|
-
body: { title: "Amistio orchestration" }
|
|
335
|
-
}));
|
|
336
|
-
if (sessionResult.error || !sessionResult.data) {
|
|
337
|
-
throw new Error(`opencode session create failed: ${JSON.stringify(sessionResult.error ?? "missing data")}`);
|
|
338
|
-
}
|
|
339
|
-
providerSessionId = sessionResult.data.id;
|
|
340
|
-
}
|
|
341
|
-
const promptResult = (await opencode.client.session.prompt({
|
|
342
|
-
path: { id: providerSessionId },
|
|
343
|
-
query: { directory: input.rootDir },
|
|
344
|
-
body: { parts: [{ type: "text", text: input.prompt }] }
|
|
345
|
-
}));
|
|
346
|
-
if (promptResult.error || !promptResult.data) {
|
|
347
|
-
throw new Error(`opencode prompt failed: ${JSON.stringify(promptResult.error ?? "missing data")}`);
|
|
348
|
-
}
|
|
349
|
-
const stdout = extractTextParts(promptResult.data.parts);
|
|
350
|
-
if (input.streamOutput && stdout) {
|
|
351
|
-
process.stdout.write(stdout);
|
|
352
|
-
}
|
|
353
|
-
return { exitCode: 0, stdout, stderr: "", providerSessionId, messageCount: 1 };
|
|
354
|
-
}
|
|
355
|
-
finally {
|
|
356
|
-
opencode.server.close();
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
finally {
|
|
360
|
-
process.chdir(previousDirectory);
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
async function runClaudeSdk(input) {
|
|
364
|
-
const { query } = await import("@anthropic-ai/claude-agent-sdk");
|
|
365
|
-
let stdout = "";
|
|
366
|
-
let stderr = "";
|
|
367
|
-
let exitCode = 0;
|
|
368
|
-
for await (const message of query({
|
|
369
|
-
prompt: input.prompt,
|
|
370
|
-
options: {
|
|
371
|
-
cwd: input.rootDir,
|
|
372
|
-
permissionMode: "default",
|
|
373
|
-
tools: { type: "preset", preset: "claude_code" },
|
|
374
|
-
env: {
|
|
375
|
-
...process.env,
|
|
376
|
-
CLAUDE_AGENT_SDK_CLIENT_APP: "amistio-cli/0.1.0"
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
})) {
|
|
380
|
-
if (isRecord(message) && message.type === "result") {
|
|
381
|
-
if (message.subtype === "success" && typeof message.result === "string") {
|
|
382
|
-
stdout += message.result;
|
|
383
|
-
if (input.streamOutput) {
|
|
384
|
-
process.stdout.write(message.result);
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
else {
|
|
388
|
-
exitCode = 1;
|
|
389
|
-
const resultMessage = message;
|
|
390
|
-
const errors = Array.isArray(resultMessage.errors) ? resultMessage.errors.map(String).join("\n") : "Claude Agent SDK execution failed.";
|
|
391
|
-
stderr += errors;
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
return { exitCode, stdout, stderr };
|
|
396
|
-
}
|
|
397
|
-
async function runCodexSdk(input) {
|
|
398
|
-
const { Codex } = await import("@openai/codex-sdk");
|
|
399
|
-
const codex = new Codex();
|
|
400
|
-
const thread = codex.startThread({
|
|
401
|
-
workingDirectory: input.rootDir,
|
|
402
|
-
sandboxMode: "workspace-write",
|
|
403
|
-
approvalPolicy: "on-request",
|
|
404
|
-
skipGitRepoCheck: true
|
|
405
|
-
});
|
|
406
|
-
const result = await thread.run(input.prompt);
|
|
407
|
-
if (input.streamOutput && result.finalResponse) {
|
|
408
|
-
process.stdout.write(result.finalResponse);
|
|
409
|
-
}
|
|
410
|
-
return { exitCode: 0, stdout: result.finalResponse, stderr: "" };
|
|
411
|
-
}
|
|
412
|
-
async function runCopilotSdk(input) {
|
|
413
|
-
const { CopilotClient, approveAll } = await import("@github/copilot-sdk");
|
|
414
|
-
const client = new CopilotClient({
|
|
415
|
-
cwd: input.rootDir,
|
|
416
|
-
logLevel: "error"
|
|
417
|
-
});
|
|
418
|
-
try {
|
|
419
|
-
await client.start();
|
|
420
|
-
const session = await client.createSession({
|
|
421
|
-
clientName: "amistio-cli",
|
|
422
|
-
model: process.env.AMISTIO_COPILOT_MODEL ?? "gpt-5",
|
|
423
|
-
workingDirectory: input.rootDir,
|
|
424
|
-
enableConfigDiscovery: true,
|
|
425
|
-
streaming: input.streamOutput,
|
|
426
|
-
onPermissionRequest: approveAll
|
|
427
|
-
});
|
|
428
|
-
try {
|
|
429
|
-
let streamedOutput = "";
|
|
430
|
-
const unsubscribe = input.streamOutput
|
|
431
|
-
? session.on("assistant.message_delta", (event) => {
|
|
432
|
-
streamedOutput += event.data.deltaContent;
|
|
433
|
-
process.stdout.write(event.data.deltaContent);
|
|
434
|
-
})
|
|
435
|
-
: undefined;
|
|
436
|
-
try {
|
|
437
|
-
const response = await session.sendAndWait({ prompt: input.prompt }, 10 * 60 * 1000);
|
|
438
|
-
const stdout = response?.data.content ?? streamedOutput;
|
|
439
|
-
return { exitCode: 0, stdout, stderr: "" };
|
|
440
|
-
}
|
|
441
|
-
finally {
|
|
442
|
-
unsubscribe?.();
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
finally {
|
|
446
|
-
await session.disconnect();
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
finally {
|
|
450
|
-
await client.stop();
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
function extractTextParts(parts) {
|
|
454
|
-
if (!Array.isArray(parts)) {
|
|
455
|
-
return "";
|
|
456
|
-
}
|
|
457
|
-
return parts
|
|
458
|
-
.filter(isRecord)
|
|
459
|
-
.map((part) => (part.type === "text" && typeof part.text === "string" ? part.text : ""))
|
|
460
|
-
.filter(Boolean)
|
|
461
|
-
.join("\n");
|
|
462
|
-
}
|
|
463
|
-
function isRecord(value) {
|
|
464
|
-
return typeof value === "object" && value !== null;
|
|
465
|
-
}
|
|
466
|
-
function errorMessage(error) {
|
|
467
|
-
return error instanceof Error ? error.message : String(error);
|
|
468
|
-
}
|
|
469
|
-
function shellQuote(value) {
|
|
470
|
-
return `'${value.replaceAll("'", "'\\''")}'`;
|
|
471
|
-
}
|
|
472
|
-
//# sourceMappingURL=local-tool-runner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-tool-runner.js","sourceRoot":"","sources":["../src/local-tool-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/orchestrator.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export interface OrchestrationPromptOptions {
|
|
2
|
-
rootDir: string;
|
|
3
|
-
goal: string;
|
|
4
|
-
}
|
|
5
|
-
export declare function createOrchestrationPrompt(options: OrchestrationPromptOptions): Promise<string>;
|
|
6
|
-
export declare function writePromptFile(filePath: string, prompt: string): Promise<string>;
|
|
7
|
-
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,0BAA0B;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAmDpG;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIvF"}
|