poe-code 3.0.24 → 3.0.25
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/cli/commands/spawn.js +13 -1
- package/dist/cli/commands/spawn.js.map +1 -1
- package/dist/index.js +93 -3
- package/dist/index.js.map +4 -4
- package/dist/providers/spawn-options.d.ts +1 -0
- package/dist/sdk/spawn.js +15 -1
- package/dist/sdk/spawn.js.map +1 -1
- package/dist/sdk/types.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { renderAcpStream, getSpawnConfig } from "@poe-code/agent-spawn";
|
|
2
|
+
import { renderAcpStream, spawnInteractive, getSpawnConfig } from "@poe-code/agent-spawn";
|
|
3
3
|
import { allAgents, resolveAgentId } from "@poe-code/agent-defs";
|
|
4
4
|
import { text } from "@poe-code/design-system";
|
|
5
5
|
import { createExecutionResources, resolveCommandFlags, resolveServiceAdapter, formatServiceList } from "./shared.js";
|
|
@@ -19,6 +19,7 @@ export function registerSpawnCommand(program, container, options = {}) {
|
|
|
19
19
|
.option("--model <model>", "Model identifier override passed to the agent CLI")
|
|
20
20
|
.option("-C, --cwd <path>", "Working directory for the agent CLI")
|
|
21
21
|
.option("--stdin", "Read the prompt from stdin")
|
|
22
|
+
.option("-i, --interactive", "Launch the agent in interactive TUI mode")
|
|
22
23
|
.argument("<agent>", serviceDescription)
|
|
23
24
|
.argument("[prompt]", "Prompt text to send (or '-' / stdin)")
|
|
24
25
|
.argument("[agentArgs...]", "Additional arguments forwarded to the agent CLI")
|
|
@@ -39,6 +40,17 @@ export function registerSpawnCommand(program, container, options = {}) {
|
|
|
39
40
|
if (promptText === "-") {
|
|
40
41
|
promptText = undefined;
|
|
41
42
|
}
|
|
43
|
+
if (commandOptions.interactive) {
|
|
44
|
+
const adapter = resolveServiceAdapter(container, service);
|
|
45
|
+
const result = await spawnInteractive(adapter.name, {
|
|
46
|
+
prompt: promptText ?? "",
|
|
47
|
+
args: forwardedArgs,
|
|
48
|
+
model: commandOptions.model,
|
|
49
|
+
cwd: cwdOverride
|
|
50
|
+
});
|
|
51
|
+
process.exitCode = result.exitCode;
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
42
54
|
if (!promptText && shouldReadFromStdin) {
|
|
43
55
|
const chunks = [];
|
|
44
56
|
for await (const chunk of process.stdin) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/cli/commands/spawn.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/cli/commands/spawn.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16096,6 +16096,9 @@ var claudeCodeSpawnConfig = {
|
|
|
16096
16096
|
omitPrompt: true,
|
|
16097
16097
|
extraArgs: ["--input-format", "text"]
|
|
16098
16098
|
},
|
|
16099
|
+
interactive: {
|
|
16100
|
+
defaultArgs: ["--allowedTools", "Bash,Read", "--permission-mode", "acceptEdits"]
|
|
16101
|
+
},
|
|
16099
16102
|
resumeCommand: (threadId) => ["--resume", threadId]
|
|
16100
16103
|
};
|
|
16101
16104
|
|
|
@@ -16112,6 +16115,9 @@ var codexSpawnConfig = {
|
|
|
16112
16115
|
omitPrompt: true,
|
|
16113
16116
|
extraArgs: ["-"]
|
|
16114
16117
|
},
|
|
16118
|
+
interactive: {
|
|
16119
|
+
defaultArgs: ["-a", "never"]
|
|
16120
|
+
},
|
|
16115
16121
|
resumeCommand: (threadId, cwd) => ["resume", "-C", cwd, threadId]
|
|
16116
16122
|
};
|
|
16117
16123
|
|
|
@@ -16126,6 +16132,10 @@ var openCodeSpawnConfig = {
|
|
|
16126
16132
|
promptFlag: "run",
|
|
16127
16133
|
modelFlag: "--model",
|
|
16128
16134
|
defaultArgs: ["--format", "json"],
|
|
16135
|
+
interactive: {
|
|
16136
|
+
defaultArgs: [],
|
|
16137
|
+
promptFlag: "--prompt"
|
|
16138
|
+
},
|
|
16129
16139
|
resumeCommand: (threadId, cwd) => [cwd, "--session", threadId]
|
|
16130
16140
|
};
|
|
16131
16141
|
|
|
@@ -16143,6 +16153,10 @@ var kimiSpawnConfig = {
|
|
|
16143
16153
|
omitPrompt: true,
|
|
16144
16154
|
extraArgs: ["--input-format", "stream-json"]
|
|
16145
16155
|
},
|
|
16156
|
+
interactive: {
|
|
16157
|
+
defaultArgs: [],
|
|
16158
|
+
promptFlag: "-p"
|
|
16159
|
+
},
|
|
16146
16160
|
resumeCommand: (threadId, cwd) => ["--session", threadId, "--work-dir", cwd]
|
|
16147
16161
|
};
|
|
16148
16162
|
|
|
@@ -16252,6 +16266,57 @@ async function spawn2(agentId, options, _context) {
|
|
|
16252
16266
|
});
|
|
16253
16267
|
}
|
|
16254
16268
|
|
|
16269
|
+
// packages/agent-spawn/src/spawn-interactive.ts
|
|
16270
|
+
import { spawn as spawnChildProcess2 } from "node:child_process";
|
|
16271
|
+
async function spawnInteractive(agentId, options) {
|
|
16272
|
+
const resolved = resolveConfig(agentId);
|
|
16273
|
+
const spawnConfig = resolved.spawnConfig;
|
|
16274
|
+
if (!spawnConfig) {
|
|
16275
|
+
throw new Error(`Agent "${resolved.agentId}" has no spawn config.`);
|
|
16276
|
+
}
|
|
16277
|
+
if (spawnConfig.kind !== "cli") {
|
|
16278
|
+
throw new Error(`Agent "${resolved.agentId}" does not support CLI spawn.`);
|
|
16279
|
+
}
|
|
16280
|
+
if (!resolved.binaryName) {
|
|
16281
|
+
throw new Error(`Agent "${resolved.agentId}" has no binaryName.`);
|
|
16282
|
+
}
|
|
16283
|
+
if (!spawnConfig.interactive) {
|
|
16284
|
+
throw new Error(`Agent "${resolved.agentId}" does not support interactive mode.`);
|
|
16285
|
+
}
|
|
16286
|
+
const { interactive } = spawnConfig;
|
|
16287
|
+
const args = [];
|
|
16288
|
+
if (options.prompt) {
|
|
16289
|
+
if (interactive.promptFlag) {
|
|
16290
|
+
args.push(interactive.promptFlag, options.prompt);
|
|
16291
|
+
} else {
|
|
16292
|
+
args.push(options.prompt);
|
|
16293
|
+
}
|
|
16294
|
+
}
|
|
16295
|
+
if (options.model && spawnConfig.modelFlag) {
|
|
16296
|
+
args.push(spawnConfig.modelFlag, options.model);
|
|
16297
|
+
}
|
|
16298
|
+
args.push(...interactive.defaultArgs);
|
|
16299
|
+
if (options.args && options.args.length > 0) {
|
|
16300
|
+
args.push(...options.args);
|
|
16301
|
+
}
|
|
16302
|
+
const child = spawnChildProcess2(resolved.binaryName, args, {
|
|
16303
|
+
cwd: options.cwd,
|
|
16304
|
+
stdio: "inherit"
|
|
16305
|
+
});
|
|
16306
|
+
return new Promise((resolve, reject) => {
|
|
16307
|
+
child.on("error", (error2) => {
|
|
16308
|
+
reject(error2);
|
|
16309
|
+
});
|
|
16310
|
+
child.on("close", (code) => {
|
|
16311
|
+
resolve({
|
|
16312
|
+
stdout: "",
|
|
16313
|
+
stderr: "",
|
|
16314
|
+
exitCode: code ?? 1
|
|
16315
|
+
});
|
|
16316
|
+
});
|
|
16317
|
+
});
|
|
16318
|
+
}
|
|
16319
|
+
|
|
16255
16320
|
// packages/agent-spawn/src/acp/renderer.ts
|
|
16256
16321
|
function writeLine2(line) {
|
|
16257
16322
|
process.stdout.write(`${line}
|
|
@@ -16318,7 +16383,7 @@ async function renderAcpStream(events) {
|
|
|
16318
16383
|
}
|
|
16319
16384
|
|
|
16320
16385
|
// packages/agent-spawn/src/acp/spawn.ts
|
|
16321
|
-
import { spawn as
|
|
16386
|
+
import { spawn as spawnChildProcess3 } from "node:child_process";
|
|
16322
16387
|
|
|
16323
16388
|
// packages/agent-spawn/src/adapters/utils.ts
|
|
16324
16389
|
function truncate2(text4, maxLength) {
|
|
@@ -16811,7 +16876,7 @@ function spawnStreaming(options) {
|
|
|
16811
16876
|
if (options.args && options.args.length > 0) {
|
|
16812
16877
|
args.push(...options.args);
|
|
16813
16878
|
}
|
|
16814
|
-
const child =
|
|
16879
|
+
const child = spawnChildProcess3(binaryName, args, {
|
|
16815
16880
|
cwd: options.cwd,
|
|
16816
16881
|
stdio: ["pipe", "pipe", "pipe"]
|
|
16817
16882
|
});
|
|
@@ -18378,6 +18443,20 @@ function spawn3(service, promptOrOptions, maybeOptions) {
|
|
|
18378
18443
|
const result = (async () => {
|
|
18379
18444
|
try {
|
|
18380
18445
|
await getPoeApiKey();
|
|
18446
|
+
if (options.interactive) {
|
|
18447
|
+
resolveEventsOnce(emptyEvents);
|
|
18448
|
+
const interactiveResult = await spawnInteractive(service, {
|
|
18449
|
+
prompt: options.prompt,
|
|
18450
|
+
cwd: options.cwd,
|
|
18451
|
+
model: options.model,
|
|
18452
|
+
args: options.args
|
|
18453
|
+
});
|
|
18454
|
+
return {
|
|
18455
|
+
stdout: interactiveResult.stdout,
|
|
18456
|
+
stderr: interactiveResult.stderr,
|
|
18457
|
+
exitCode: interactiveResult.exitCode
|
|
18458
|
+
};
|
|
18459
|
+
}
|
|
18381
18460
|
const spawnConfig = getSpawnConfig(service);
|
|
18382
18461
|
const supportsStreaming = !!spawnConfig && spawnConfig.kind === "cli" && typeof spawnConfig.adapter === "string";
|
|
18383
18462
|
if (supportsStreaming) {
|
|
@@ -18432,7 +18511,7 @@ function registerSpawnCommand(program, container, options = {}) {
|
|
|
18432
18511
|
const extraServices = options.extraServices ?? [];
|
|
18433
18512
|
const serviceList = [...spawnServices, ...extraServices];
|
|
18434
18513
|
const serviceDescription = `Agent to spawn${formatServiceList(serviceList)}`;
|
|
18435
|
-
program.command("spawn").description("Run a single prompt through a configured agent CLI.").option("--model <model>", "Model identifier override passed to the agent CLI").option("-C, --cwd <path>", "Working directory for the agent CLI").option("--stdin", "Read the prompt from stdin").argument(
|
|
18514
|
+
program.command("spawn").description("Run a single prompt through a configured agent CLI.").option("--model <model>", "Model identifier override passed to the agent CLI").option("-C, --cwd <path>", "Working directory for the agent CLI").option("--stdin", "Read the prompt from stdin").option("-i, --interactive", "Launch the agent in interactive TUI mode").argument(
|
|
18436
18515
|
"<agent>",
|
|
18437
18516
|
serviceDescription
|
|
18438
18517
|
).argument("[prompt]", "Prompt text to send (or '-' / stdin)").argument(
|
|
@@ -18454,6 +18533,17 @@ function registerSpawnCommand(program, container, options = {}) {
|
|
|
18454
18533
|
if (promptText === "-") {
|
|
18455
18534
|
promptText = void 0;
|
|
18456
18535
|
}
|
|
18536
|
+
if (commandOptions.interactive) {
|
|
18537
|
+
const adapter2 = resolveServiceAdapter(container, service);
|
|
18538
|
+
const result = await spawnInteractive(adapter2.name, {
|
|
18539
|
+
prompt: promptText ?? "",
|
|
18540
|
+
args: forwardedArgs,
|
|
18541
|
+
model: commandOptions.model,
|
|
18542
|
+
cwd: cwdOverride
|
|
18543
|
+
});
|
|
18544
|
+
process.exitCode = result.exitCode;
|
|
18545
|
+
return;
|
|
18546
|
+
}
|
|
18457
18547
|
if (!promptText && shouldReadFromStdin) {
|
|
18458
18548
|
const chunks = [];
|
|
18459
18549
|
for await (const chunk of process.stdin) {
|