poe-code 3.0.129 → 3.0.131
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/experiment.js +68 -5
- package/dist/cli/commands/experiment.js.map +1 -1
- package/dist/cli/commands/spawn.js +59 -18
- package/dist/cli/commands/spawn.js.map +1 -1
- package/dist/codegen/agent-spawn-py-types.d.ts +19 -0
- package/dist/codegen/agent-spawn-py-types.js +330 -0
- package/dist/codegen/agent-spawn-py-types.js.map +1 -0
- package/dist/index.js +9096 -8565
- package/dist/index.js.map +4 -4
- package/dist/providers/claude-code.js +38 -10
- package/dist/providers/claude-code.js.map +4 -4
- package/dist/providers/codex.js +38 -10
- package/dist/providers/codex.js.map +4 -4
- package/dist/providers/create-provider.js +3 -3
- package/dist/providers/create-provider.js.map +1 -1
- package/dist/providers/kimi.js +47 -10
- package/dist/providers/kimi.js.map +4 -4
- package/dist/providers/opencode.js +38 -10
- package/dist/providers/opencode.js.map +4 -4
- package/dist/providers/poe-agent.js +13 -10
- package/dist/providers/poe-agent.js.map +3 -3
- package/dist/providers/spawn-options.d.ts +2 -0
- package/dist/sdk/experiment.d.ts +5 -1
- package/dist/sdk/experiment.js +30 -10
- package/dist/sdk/experiment.js.map +1 -1
- package/dist/sdk/pipeline.js +25 -11
- package/dist/sdk/pipeline.js.map +1 -1
- package/dist/sdk/ralph.js +23 -10
- package/dist/sdk/ralph.js.map +1 -1
- package/dist/sdk/spawn.js +70 -6
- package/dist/sdk/spawn.js.map +1 -1
- package/dist/sdk/types.d.ts +8 -0
- package/package.json +20 -3
package/dist/sdk/experiment.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ExperimentFileSystem, type ExperimentRunOptions, type ExperimentRunResult, type JournalEntry } from "@poe-code/experiment-loop";
|
|
2
|
-
export type { AgentRunInput, AgentRunResult, EvalResult, ExperimentFileSystem, ExperimentFrontmatter,
|
|
2
|
+
export type { AgentRunInput, AgentRunResult, EvalResult, ExperimentFileSystem, ExperimentFrontmatter, ExperimentRunOptions, ExperimentRunResult, ExperimentStopReason, JournalEntry, MetricDef, MetricDirection } from "@poe-code/experiment-loop";
|
|
3
3
|
export interface ExperimentJournalOptions {
|
|
4
4
|
cwd: string;
|
|
5
5
|
homeDir: string;
|
|
@@ -8,3 +8,7 @@ export interface ExperimentJournalOptions {
|
|
|
8
8
|
}
|
|
9
9
|
export declare function runExperiment(options: ExperimentRunOptions): Promise<ExperimentRunResult>;
|
|
10
10
|
export declare function readExperimentJournal(options: ExperimentJournalOptions): Promise<JournalEntry[]>;
|
|
11
|
+
export interface AppendJournalEntryOptions extends ExperimentJournalOptions {
|
|
12
|
+
entry: JournalEntry;
|
|
13
|
+
}
|
|
14
|
+
export declare function appendExperimentJournalEntry(options: AppendJournalEntryOptions): Promise<void>;
|
package/dist/sdk/experiment.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import * as fsPromises from "node:fs/promises";
|
|
3
3
|
import { ExperimentJournal, runExperimentLoop as runWorkspaceExperimentLoop } from "@poe-code/experiment-loop";
|
|
4
|
-
import { renderAcpStream } from "@poe-code/agent-spawn";
|
|
4
|
+
import { renderAcpStream, isActivityTimeoutError } from "@poe-code/agent-spawn";
|
|
5
5
|
import { spawn as sdkSpawn } from "./spawn.js";
|
|
6
6
|
function createDefaultFs() {
|
|
7
7
|
return {
|
|
@@ -34,19 +34,32 @@ function resolveAbsoluteDocPath(docPath, cwd, homeDir) {
|
|
|
34
34
|
function resolveJournalPath(docPath) {
|
|
35
35
|
return path.join(path.dirname(docPath), `${path.basename(docPath, path.extname(docPath))}.journal.jsonl`);
|
|
36
36
|
}
|
|
37
|
+
const AUTONOMOUS_ACTIVITY_TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes
|
|
38
|
+
const MAX_TIMEOUT_RETRIES = 3;
|
|
37
39
|
export async function runExperiment(options) {
|
|
38
40
|
return runWorkspaceExperimentLoop({
|
|
39
41
|
...options,
|
|
40
42
|
runAgent: async (input) => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
43
|
+
for (let attempt = 1; attempt <= MAX_TIMEOUT_RETRIES; attempt++) {
|
|
44
|
+
try {
|
|
45
|
+
const { events, result } = sdkSpawn(input.agent, {
|
|
46
|
+
prompt: input.prompt,
|
|
47
|
+
cwd: input.cwd,
|
|
48
|
+
model: input.model,
|
|
49
|
+
mode: "yolo",
|
|
50
|
+
activityTimeoutMs: AUTONOMOUS_ACTIVITY_TIMEOUT_MS,
|
|
51
|
+
...(input.signal ? { signal: input.signal } : {})
|
|
52
|
+
});
|
|
53
|
+
await renderAcpStream(events);
|
|
54
|
+
return await result;
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
if (!isActivityTimeoutError(error) || attempt === MAX_TIMEOUT_RETRIES) {
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
throw new Error("Unreachable");
|
|
50
63
|
}
|
|
51
64
|
});
|
|
52
65
|
}
|
|
@@ -56,4 +69,11 @@ export async function readExperimentJournal(options) {
|
|
|
56
69
|
const journal = new ExperimentJournal(resolveJournalPath(absoluteDocPath), fs);
|
|
57
70
|
return await journal.readAll();
|
|
58
71
|
}
|
|
72
|
+
export async function appendExperimentJournalEntry(options) {
|
|
73
|
+
const fs = options.fs ?? createDefaultFs();
|
|
74
|
+
const absoluteDocPath = resolveAbsoluteDocPath(options.docPath, options.cwd, options.homeDir);
|
|
75
|
+
const journal = new ExperimentJournal(resolveJournalPath(absoluteDocPath), fs);
|
|
76
|
+
await journal.init();
|
|
77
|
+
await journal.log(options.entry);
|
|
78
|
+
}
|
|
59
79
|
//# sourceMappingURL=experiment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experiment.js","sourceRoot":"","sources":["../../src/sdk/experiment.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,IAAI,0BAA0B,EAKhD,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"experiment.js","sourceRoot":"","sources":["../../src/sdk/experiment.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/pipeline.js
CHANGED
|
@@ -1,21 +1,35 @@
|
|
|
1
1
|
import { runPipeline as runWorkspacePipeline } from "@poe-code/pipeline";
|
|
2
|
-
import { renderAcpStream } from "@poe-code/agent-spawn";
|
|
2
|
+
import { renderAcpStream, isActivityTimeoutError } from "@poe-code/agent-spawn";
|
|
3
3
|
import { spawn as sdkSpawn } from "./spawn.js";
|
|
4
4
|
export { resolvePlanDirectory } from "@poe-code/pipeline";
|
|
5
|
+
const AUTONOMOUS_ACTIVITY_TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes
|
|
6
|
+
const MAX_TIMEOUT_RETRIES = 3;
|
|
5
7
|
export async function runPipeline(options) {
|
|
6
8
|
return runWorkspacePipeline({
|
|
7
9
|
...options,
|
|
8
10
|
runAgent: async (input) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
for (let attempt = 1; attempt <= MAX_TIMEOUT_RETRIES; attempt++) {
|
|
12
|
+
try {
|
|
13
|
+
const { events, result } = sdkSpawn(input.agent, {
|
|
14
|
+
prompt: input.prompt,
|
|
15
|
+
cwd: input.cwd,
|
|
16
|
+
logDir: input.logDir,
|
|
17
|
+
model: input.model,
|
|
18
|
+
mode: input.mode,
|
|
19
|
+
activityTimeoutMs: AUTONOMOUS_ACTIVITY_TIMEOUT_MS,
|
|
20
|
+
...(input.mcpServers ? { mcpServers: input.mcpServers } : {}),
|
|
21
|
+
...(input.signal ? { signal: input.signal } : {})
|
|
22
|
+
});
|
|
23
|
+
await renderAcpStream(events);
|
|
24
|
+
return await result;
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
if (!isActivityTimeoutError(error) || attempt === MAX_TIMEOUT_RETRIES) {
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
throw new Error("Unreachable");
|
|
19
33
|
}
|
|
20
34
|
});
|
|
21
35
|
}
|
package/dist/sdk/pipeline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/sdk/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,oBAAoB,EAGpC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/sdk/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,oBAAoB,EAGpC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAkB/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,8BAA8B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AACpE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B;IAE3B,OAAO,oBAAoB,CAAC;QAC1B,GAAG,OAAO;QACV,QAAQ,EAAE,KAAK,EAAE,KAAiE,EAAE,EAAE;YACpF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,mBAAmB,EAAE,OAAO,EAAE,EAAE,CAAC;gBAChE,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;wBAC/C,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,GAAG,EAAE,KAAK,CAAC,GAAG;wBACd,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,iBAAiB,EAAE,8BAA8B;wBACjD,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC7D,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAClD,CAAC,CAAC;oBACH,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC9B,OAAO,MAAM,MAAM,CAAC;gBACtB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,mBAAmB,EAAE,CAAC;wBACtE,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/sdk/ralph.js
CHANGED
|
@@ -1,19 +1,32 @@
|
|
|
1
1
|
import { runRalph as runWorkspaceRalph } from "@poe-code/ralph";
|
|
2
|
-
import { renderAcpStream } from "@poe-code/agent-spawn";
|
|
2
|
+
import { renderAcpStream, isActivityTimeoutError } from "@poe-code/agent-spawn";
|
|
3
3
|
import { spawn as sdkSpawn } from "./spawn.js";
|
|
4
|
+
const AUTONOMOUS_ACTIVITY_TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes
|
|
5
|
+
const MAX_TIMEOUT_RETRIES = 3;
|
|
4
6
|
export async function runRalph(options) {
|
|
5
7
|
return runWorkspaceRalph({
|
|
6
8
|
...options,
|
|
7
9
|
runAgent: async (input) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
for (let attempt = 1; attempt <= MAX_TIMEOUT_RETRIES; attempt++) {
|
|
11
|
+
try {
|
|
12
|
+
const { events, result } = sdkSpawn(input.agent, {
|
|
13
|
+
prompt: input.prompt,
|
|
14
|
+
cwd: input.cwd,
|
|
15
|
+
model: input.model,
|
|
16
|
+
mode: "yolo",
|
|
17
|
+
activityTimeoutMs: AUTONOMOUS_ACTIVITY_TIMEOUT_MS,
|
|
18
|
+
...(input.signal ? { signal: input.signal } : {})
|
|
19
|
+
});
|
|
20
|
+
await renderAcpStream(events);
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
if (!isActivityTimeoutError(error) || attempt === MAX_TIMEOUT_RETRIES) {
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
throw new Error("Unreachable");
|
|
17
30
|
}
|
|
18
31
|
});
|
|
19
32
|
}
|
package/dist/sdk/ralph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ralph.js","sourceRoot":"","sources":["../../src/sdk/ralph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,IAAI,iBAAiB,EAG9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ralph.js","sourceRoot":"","sources":["../../src/sdk/ralph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,IAAI,iBAAiB,EAG9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAU/C,MAAM,8BAA8B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AACpE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAwB;IAExB,OAAO,iBAAiB,CAAC;QACvB,GAAG,OAAO;QACV,QAAQ,EAAE,KAAK,EACb,KAA8D,EAC9D,EAAE;YACF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,mBAAmB,EAAE,OAAO,EAAE,EAAE,CAAC;gBAChE,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;wBAC/C,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,GAAG,EAAE,KAAK,CAAC,GAAG;wBACd,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,IAAI,EAAE,MAAM;wBACZ,iBAAiB,EAAE,8BAA8B;wBACjD,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAClD,CAAC,CAAC;oBACH,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC9B,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,mBAAmB,EAAE,CAAC;wBACtE,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/sdk/spawn.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { getPoeApiKey } from "./credentials.js";
|
|
2
2
|
import { resolveConfiguredModel, spawnCore } from "./spawn-core.js";
|
|
3
3
|
import { createSdkContainer } from "./container.js";
|
|
4
|
-
import { getSpawnConfig, spawn as spawnNonStreaming, spawnInteractive, spawnStreaming, renderAcpStream, applyMiddlewares, sessionCapture, usageCapture, spawnLog } from "@poe-code/agent-spawn";
|
|
4
|
+
import { getAcpSpawnConfig, getSpawnConfig, spawn as spawnNonStreaming, spawnAcp, spawnInteractive, spawnStreaming, renderAcpStream, applyMiddlewares, sessionCapture, usageCapture, spawnLog } from "@poe-code/agent-spawn";
|
|
5
5
|
export function spawn(service, promptOrOptions, maybeOptions) {
|
|
6
6
|
const options = typeof promptOrOptions === "string"
|
|
7
7
|
? { ...maybeOptions, prompt: promptOrOptions }
|
|
8
8
|
: promptOrOptions;
|
|
9
|
+
const mcpConfig = options.mcpConfig ?? options.mcpServers;
|
|
9
10
|
const emptyEvents = (async function* () { })();
|
|
10
11
|
/**
|
|
11
12
|
* Deferred event stream resolution.
|
|
@@ -58,7 +59,7 @@ export function spawn(service, promptOrOptions, maybeOptions) {
|
|
|
58
59
|
mode: options.mode,
|
|
59
60
|
signal: options.signal,
|
|
60
61
|
args: options.args,
|
|
61
|
-
...(
|
|
62
|
+
...(mcpConfig ? { mcpServers: mcpConfig } : {})
|
|
62
63
|
});
|
|
63
64
|
return {
|
|
64
65
|
stdout: interactiveResult.stdout,
|
|
@@ -67,6 +68,50 @@ export function spawn(service, promptOrOptions, maybeOptions) {
|
|
|
67
68
|
...(interactiveResult.usage ? { usage: interactiveResult.usage } : {})
|
|
68
69
|
};
|
|
69
70
|
}
|
|
71
|
+
const acpSpawnConfig = getAcpSpawnConfig(service);
|
|
72
|
+
if (acpSpawnConfig) {
|
|
73
|
+
const model = await resolveModel();
|
|
74
|
+
const { events: rawEvents, done } = spawnAcp({
|
|
75
|
+
agentId: service,
|
|
76
|
+
prompt: options.prompt,
|
|
77
|
+
cwd: options.cwd,
|
|
78
|
+
model,
|
|
79
|
+
mode: options.mode,
|
|
80
|
+
mcpServers: options.mcpServers,
|
|
81
|
+
signal: options.signal,
|
|
82
|
+
});
|
|
83
|
+
const middlewareContext = {
|
|
84
|
+
sessionId: "unknown",
|
|
85
|
+
agent: service,
|
|
86
|
+
logDir: options.logDir,
|
|
87
|
+
events: [],
|
|
88
|
+
usage: {
|
|
89
|
+
inputTokens: 0,
|
|
90
|
+
outputTokens: 0
|
|
91
|
+
},
|
|
92
|
+
eventStream: rawEvents,
|
|
93
|
+
prompt: options.prompt,
|
|
94
|
+
model,
|
|
95
|
+
mode: options.mode,
|
|
96
|
+
cwd: options.cwd,
|
|
97
|
+
startedAt: new Date()
|
|
98
|
+
};
|
|
99
|
+
await applyMiddlewares([sessionCapture, usageCapture, spawnLog], middlewareContext);
|
|
100
|
+
resolveEventsOnce(middlewareContext.eventStream ?? emptyEvents);
|
|
101
|
+
const final = await done;
|
|
102
|
+
const threadId = middlewareContext.threadId ?? final.threadId;
|
|
103
|
+
const sessionId = (middlewareContext.sessionId !== "unknown" ? middlewareContext.sessionId : undefined) ??
|
|
104
|
+
final.sessionId ??
|
|
105
|
+
threadId;
|
|
106
|
+
return {
|
|
107
|
+
stdout: final.stdout,
|
|
108
|
+
stderr: final.stderr,
|
|
109
|
+
exitCode: final.exitCode,
|
|
110
|
+
...(threadId ? { threadId } : {}),
|
|
111
|
+
...(sessionId ? { sessionId } : {}),
|
|
112
|
+
...(final.usage ? { usage: final.usage } : {})
|
|
113
|
+
};
|
|
114
|
+
}
|
|
70
115
|
const spawnConfig = getSpawnConfig(service);
|
|
71
116
|
const supportsStreaming = !!spawnConfig &&
|
|
72
117
|
spawnConfig.kind === "cli" &&
|
|
@@ -81,7 +126,10 @@ export function spawn(service, promptOrOptions, maybeOptions) {
|
|
|
81
126
|
mode: options.mode,
|
|
82
127
|
args: options.args,
|
|
83
128
|
signal: options.signal,
|
|
84
|
-
...(
|
|
129
|
+
...(mcpConfig ? { mcpServers: mcpConfig } : {}),
|
|
130
|
+
...(options.activityTimeoutMs !== undefined
|
|
131
|
+
? { activityTimeoutMs: options.activityTimeoutMs }
|
|
132
|
+
: {}),
|
|
85
133
|
useStdin: false
|
|
86
134
|
});
|
|
87
135
|
const middlewareContext = {
|
|
@@ -107,13 +155,14 @@ export function spawn(service, promptOrOptions, maybeOptions) {
|
|
|
107
155
|
const sessionId = (middlewareContext.sessionId !== "unknown" ? middlewareContext.sessionId : undefined) ??
|
|
108
156
|
final.sessionId ??
|
|
109
157
|
threadId;
|
|
158
|
+
const usage = final.usage ?? getCapturedUsage(middlewareContext.usage);
|
|
110
159
|
return {
|
|
111
160
|
stdout: final.stdout,
|
|
112
161
|
stderr: final.stderr,
|
|
113
162
|
exitCode: final.exitCode,
|
|
114
163
|
...(threadId ? { threadId } : {}),
|
|
115
164
|
...(sessionId ? { sessionId } : {}),
|
|
116
|
-
...(
|
|
165
|
+
...(usage ? { usage } : {})
|
|
117
166
|
};
|
|
118
167
|
}
|
|
119
168
|
if (spawnConfig && spawnConfig.kind === "cli") {
|
|
@@ -126,7 +175,10 @@ export function spawn(service, promptOrOptions, maybeOptions) {
|
|
|
126
175
|
mode: options.mode,
|
|
127
176
|
args: options.args,
|
|
128
177
|
signal: options.signal,
|
|
129
|
-
...(
|
|
178
|
+
...(mcpConfig ? { mcpServers: mcpConfig } : {}),
|
|
179
|
+
...(options.activityTimeoutMs !== undefined
|
|
180
|
+
? { activityTimeoutMs: options.activityTimeoutMs }
|
|
181
|
+
: {}),
|
|
130
182
|
useStdin: false
|
|
131
183
|
});
|
|
132
184
|
}
|
|
@@ -138,7 +190,7 @@ export function spawn(service, promptOrOptions, maybeOptions) {
|
|
|
138
190
|
model,
|
|
139
191
|
mode: options.mode,
|
|
140
192
|
args: options.args,
|
|
141
|
-
...(
|
|
193
|
+
...(mcpConfig ? { mcpServers: mcpConfig } : {}),
|
|
142
194
|
useStdin: false
|
|
143
195
|
});
|
|
144
196
|
}
|
|
@@ -149,6 +201,18 @@ export function spawn(service, promptOrOptions, maybeOptions) {
|
|
|
149
201
|
})();
|
|
150
202
|
return { events, result };
|
|
151
203
|
}
|
|
204
|
+
function getCapturedUsage(usage) {
|
|
205
|
+
if (!usage) {
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
if (usage.inputTokens > 0 || usage.outputTokens > 0) {
|
|
209
|
+
return usage;
|
|
210
|
+
}
|
|
211
|
+
if (usage.cachedTokens !== undefined || usage.costUsd !== undefined) {
|
|
212
|
+
return usage;
|
|
213
|
+
}
|
|
214
|
+
return undefined;
|
|
215
|
+
}
|
|
152
216
|
/**
|
|
153
217
|
* Spawns an agent and renders ACP events to stdout with pretty formatting.
|
|
154
218
|
*
|
package/dist/sdk/spawn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/sdk/spawn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,cAAc,EACd,KAAK,IAAI,iBAAiB,EAC1B,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,QAAQ,EAGT,MAAM,uBAAuB,CAAC;AAiC/B,MAAM,UAAU,KAAK,CACnB,OAAe,EACf,eAAsC,EACtC,YAA2C;IAE3C,MAAM,OAAO,GACX,OAAO,eAAe,KAAK,QAAQ;QACjC,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE;QAC9C,CAAC,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/sdk/spawn.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/types.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export interface SpawnOptions {
|
|
|
14
14
|
/** Additional arguments forwarded to the CLI */
|
|
15
15
|
args?: string[];
|
|
16
16
|
/** MCP servers passed at spawn time */
|
|
17
|
+
mcpConfig?: McpSpawnConfig;
|
|
18
|
+
/** @deprecated Use mcpConfig instead. */
|
|
17
19
|
mcpServers?: McpSpawnConfig;
|
|
18
20
|
/** Directory override for ACP JSONL spawn logs */
|
|
19
21
|
logDir?: string;
|
|
@@ -21,6 +23,11 @@ export interface SpawnOptions {
|
|
|
21
23
|
interactive?: boolean;
|
|
22
24
|
/** Abort signal used to terminate the spawned agent */
|
|
23
25
|
signal?: AbortSignal;
|
|
26
|
+
/**
|
|
27
|
+
* Kill the spawned process after this many milliseconds of inactivity (no stdout data).
|
|
28
|
+
* Disabled when undefined.
|
|
29
|
+
*/
|
|
30
|
+
activityTimeoutMs?: number;
|
|
24
31
|
}
|
|
25
32
|
/**
|
|
26
33
|
* Token usage reported by a provider CLI spawn.
|
|
@@ -29,6 +36,7 @@ export interface SpawnUsage {
|
|
|
29
36
|
inputTokens: number;
|
|
30
37
|
outputTokens: number;
|
|
31
38
|
cachedTokens?: number;
|
|
39
|
+
costUsd?: number;
|
|
32
40
|
}
|
|
33
41
|
/**
|
|
34
42
|
* Result from spawning a provider CLI.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "poe-code",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.131",
|
|
4
4
|
"description": "CLI tool to configure Poe API for developer workflows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -9,8 +9,11 @@
|
|
|
9
9
|
"packages/*"
|
|
10
10
|
],
|
|
11
11
|
"scripts": {
|
|
12
|
-
"build": "turbo run build && tsc -p tsconfig.build.json && node scripts/generate-bin-wrappers.mjs && node scripts/bundle.mjs",
|
|
12
|
+
"build": "turbo run build && npm run codegen:python-types && tsc -p tsconfig.build.json && node scripts/generate-bin-wrappers.mjs && node scripts/bundle.mjs",
|
|
13
13
|
"build:deps": "node scripts/list-workspace-deps.mjs",
|
|
14
|
+
"codegen:python-types": "tsx scripts/generate-agent-spawn-py-types.ts",
|
|
15
|
+
"codegen:check:python-types": "tsx scripts/generate-agent-spawn-py-types.ts --check",
|
|
16
|
+
"install:py-poe-spawn": "pip install -e packages/py-poe-spawn",
|
|
14
17
|
"predev": "turbo run build --output-logs=none --log-prefix=none --verbosity=0 > /dev/null 2>&1",
|
|
15
18
|
"dev": "tsx src/index.ts",
|
|
16
19
|
"start": "node dist/bin.cjs",
|
|
@@ -93,19 +96,26 @@
|
|
|
93
96
|
"devDependencies": {
|
|
94
97
|
"@eslint/js": "^9.0.0",
|
|
95
98
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
99
|
+
"@poe-code/agent-defs": "*",
|
|
100
|
+
"@poe-code/agent-mcp-config": "*",
|
|
101
|
+
"@poe-code/agent-skill-config": "*",
|
|
96
102
|
"@poe-code/agent-spawn": "*",
|
|
103
|
+
"@poe-code/cached-resource": "*",
|
|
97
104
|
"@poe-code/cmdkit": "*",
|
|
98
|
-
"@poe-code/
|
|
105
|
+
"@poe-code/cmdkit-schema": "*",
|
|
99
106
|
"@poe-code/config-mutations": "*",
|
|
100
107
|
"@poe-code/design-system": "*",
|
|
101
108
|
"@poe-code/e2e-docker-test-runner": "*",
|
|
102
109
|
"@poe-code/experiment-loop": "*",
|
|
110
|
+
"@poe-code/github-workflows": "*",
|
|
103
111
|
"@poe-code/pipeline": "*",
|
|
104
112
|
"@poe-code/poe-acp-client": "*",
|
|
113
|
+
"@poe-code/poe-agent": "*",
|
|
105
114
|
"@poe-code/poe-code-config": "*",
|
|
106
115
|
"@poe-code/process-launcher": "*",
|
|
107
116
|
"@poe-code/process-runner": "*",
|
|
108
117
|
"@poe-code/ralph": "*",
|
|
118
|
+
"@poe-code/worktree": "*",
|
|
109
119
|
"@types/mustache": "^4.2.6",
|
|
110
120
|
"@types/node": "^25.2.2",
|
|
111
121
|
"@types/semver": "^7.7.1",
|
|
@@ -116,11 +126,18 @@
|
|
|
116
126
|
"globals": "^17.3.0",
|
|
117
127
|
"husky": "^9.1.7",
|
|
118
128
|
"memfs": "^4.56.10",
|
|
129
|
+
"opencode-poe-auth": "*",
|
|
119
130
|
"poe-oauth": "*",
|
|
120
131
|
"prettier": "^3.8.1",
|
|
132
|
+
"terminal-pilot": "*",
|
|
133
|
+
"terminal-pilot-mcp": "*",
|
|
121
134
|
"terminal-png": "*",
|
|
135
|
+
"tiny-http-mcp-server": "*",
|
|
136
|
+
"tiny-mcp-client": "*",
|
|
122
137
|
"tiny-stdio-mcp-server": "*",
|
|
123
138
|
"tiny-stdio-mcp-test-server": "*",
|
|
139
|
+
"tokenfill": "*",
|
|
140
|
+
"ts-morph": "^27.0.2",
|
|
124
141
|
"tsx": ">=4.21.0",
|
|
125
142
|
"turbo": "^2.8.3",
|
|
126
143
|
"typescript": "^5.9.3",
|