@amistio/cli 0.1.0

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 (46) hide show
  1. package/README.md +12 -0
  2. package/dist/api-client.d.ts +175 -0
  3. package/dist/api-client.d.ts.map +1 -0
  4. package/dist/api-client.js +116 -0
  5. package/dist/api-client.js.map +1 -0
  6. package/dist/bootstrap.d.ts +11 -0
  7. package/dist/bootstrap.d.ts.map +1 -0
  8. package/dist/bootstrap.js +66 -0
  9. package/dist/bootstrap.js.map +1 -0
  10. package/dist/control-plane.d.ts +11 -0
  11. package/dist/control-plane.d.ts.map +1 -0
  12. package/dist/control-plane.js +91 -0
  13. package/dist/control-plane.js.map +1 -0
  14. package/dist/credential-store.d.ts +9 -0
  15. package/dist/credential-store.d.ts.map +1 -0
  16. package/dist/credential-store.js +32 -0
  17. package/dist/credential-store.js.map +1 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +698 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/local-tool-runner.d.ts +93 -0
  23. package/dist/local-tool-runner.d.ts.map +1 -0
  24. package/dist/local-tool-runner.js +472 -0
  25. package/dist/local-tool-runner.js.map +1 -0
  26. package/dist/orchestrator.d.ts +7 -0
  27. package/dist/orchestrator.d.ts.map +1 -0
  28. package/dist/orchestrator.js +61 -0
  29. package/dist/orchestrator.js.map +1 -0
  30. package/dist/session-policy.d.ts +20 -0
  31. package/dist/session-policy.d.ts.map +1 -0
  32. package/dist/session-policy.js +125 -0
  33. package/dist/session-policy.js.map +1 -0
  34. package/dist/sync.d.ts +33 -0
  35. package/dist/sync.d.ts.map +1 -0
  36. package/dist/sync.js +279 -0
  37. package/dist/sync.js.map +1 -0
  38. package/dist/tool-session-store.d.ts +8 -0
  39. package/dist/tool-session-store.d.ts.map +1 -0
  40. package/dist/tool-session-store.js +38 -0
  41. package/dist/tool-session-store.js.map +1 -0
  42. package/dist/work-runner.d.ts +4 -0
  43. package/dist/work-runner.d.ts.map +1 -0
  44. package/dist/work-runner.js +100 -0
  45. package/dist/work-runner.js.map +1 -0
  46. package/package.json +40 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-tool-runner.d.ts","sourceRoot":"","sources":["../src/local-tool-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,472 @@
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