@clemrig/flow 0.1.0 → 0.3.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.
- package/README.md +5 -5
- package/dist/app/run.js +5 -1
- package/dist/app/run.js.map +1 -1
- package/dist/app/runs.d.ts +16 -5
- package/dist/app/runs.js +23 -9
- package/dist/app/runs.js.map +1 -1
- package/dist/engine/metrics.d.ts +17 -10
- package/dist/engine/metrics.js +29 -15
- package/dist/engine/metrics.js.map +1 -1
- package/dist/engine/profiles.d.ts +36 -11
- package/dist/engine/profiles.js +65 -78
- package/dist/engine/profiles.js.map +1 -1
- package/dist/engine/types.d.ts +4 -2
- package/dist/engine/workflow.d.ts +6 -1
- package/dist/engine/workflow.js +17 -1
- package/dist/engine/workflow.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/system/process.d.ts +22 -6
- package/dist/system/process.js +10 -4
- package/dist/system/process.js.map +1 -1
- package/dist/system/runtimes/adapter.d.ts +21 -11
- package/dist/system/runtimes/adapter.js.map +1 -1
- package/dist/system/runtimes/agent-runtime.d.ts +6 -4
- package/dist/system/runtimes/agent-runtime.js +76 -87
- package/dist/system/runtimes/agent-runtime.js.map +1 -1
- package/dist/system/runtimes/claude-code.d.ts +5 -4
- package/dist/system/runtimes/claude-code.js +39 -84
- package/dist/system/runtimes/claude-code.js.map +1 -1
- package/dist/system/runtimes/codex.d.ts +11 -0
- package/dist/system/runtimes/codex.js +253 -0
- package/dist/system/runtimes/codex.js.map +1 -0
- package/dist/system/runtimes/inspect.d.ts +1 -1
- package/dist/system/runtimes/inspect.js +8 -6
- package/dist/system/runtimes/inspect.js.map +1 -1
- package/dist/system/runtimes/pi.d.ts +3 -1
- package/dist/system/runtimes/pi.js +22 -10
- package/dist/system/runtimes/pi.js.map +1 -1
- package/dist/system/runtimes/registry.d.ts +3 -2
- package/dist/system/runtimes/registry.js +6 -1
- package/dist/system/runtimes/registry.js.map +1 -1
- package/dist/system/store.js +6 -2
- package/dist/system/store.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../../../src/system/runtimes/agent-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../../../src/system/runtimes/agent-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,10 @@ import { type RuntimeAdapter } from "./adapter.js";
|
|
|
2
2
|
/** Claude Code session IDs are UUIDs: a stable one per session name. */
|
|
3
3
|
export declare function claudeCodeSessionId(name: string): string;
|
|
4
4
|
/**
|
|
5
|
-
* Claude Code in print mode,
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Claude Code in print mode, with the machine's configuration and the profile's
|
|
6
|
+
* settings. Its sessions need UUIDs: the run keeps a marker per session, so that
|
|
7
|
+
* the next call resumes it. At the end of each call, Claude Code announces its
|
|
8
|
+
* session's total, which is reported as it is. On SIGTERM it ends the process
|
|
9
|
+
* tree of its running commands (its documentation).
|
|
9
10
|
*/
|
|
10
11
|
export declare const claudeCode: RuntimeAdapter<"claude-code">;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { existsSync, writeFileSync } from "node:fs";
|
|
3
|
-
import { join } from "node:path";
|
|
3
|
+
import { isAbsolute, join, resolve } from "node:path";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { runtimeLabels } from "../../engine/profiles.js";
|
|
6
6
|
import { parseEvent, } from "./adapter.js";
|
|
@@ -10,16 +10,11 @@ const anyEvent = z.looseObject({
|
|
|
10
10
|
type: z.string(),
|
|
11
11
|
subtype: z.unknown().optional(),
|
|
12
12
|
});
|
|
13
|
-
/**
|
|
13
|
+
/** The session started: its tools and MCP servers confirm what the profile grants. */
|
|
14
14
|
const initEvent = z.looseObject({
|
|
15
15
|
session_id: z.string(),
|
|
16
16
|
tools: z.array(z.string()),
|
|
17
17
|
mcp_servers: z.array(z.looseObject({ name: z.string(), status: z.string() })),
|
|
18
|
-
plugins: z.array(z.looseObject({ name: z.string(), path: z.string() })),
|
|
19
|
-
skills: z.array(z.string()).optional(),
|
|
20
|
-
slash_commands: z.array(z.string()).optional(),
|
|
21
|
-
output_style: z.string().optional(),
|
|
22
|
-
memory_paths: z.unknown().optional(),
|
|
23
18
|
});
|
|
24
19
|
/** A content block; a tool use names its call and its tool, a tool result its call. */
|
|
25
20
|
const contentBlock = z
|
|
@@ -108,10 +103,12 @@ export function claudeCodeSessionId(name) {
|
|
|
108
103
|
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-5${hex.slice(13, 16)}-${variant}${hex.slice(17, 20)}-${hex.slice(20, 32)}`;
|
|
109
104
|
}
|
|
110
105
|
const isMcpTool = (tool) => tool.startsWith("mcp__");
|
|
106
|
+
/**
|
|
107
|
+
* The profile's settings over those of the machine, which Claude Code loads as
|
|
108
|
+
* usual: settings files, CLAUDE.md, plugins, hooks, skills, MCP servers, memory.
|
|
109
|
+
*/
|
|
111
110
|
function profileArgs(profile, systemPrompt) {
|
|
112
|
-
const
|
|
113
|
-
? ["--mcp-config", JSON.stringify({ mcpServers: profile.mcpServers })]
|
|
114
|
-
: [];
|
|
111
|
+
const { tools, permissionMode, mcpServers } = profile;
|
|
115
112
|
return [
|
|
116
113
|
"--model",
|
|
117
114
|
profile.model,
|
|
@@ -119,85 +116,31 @@ function profileArgs(profile, systemPrompt) {
|
|
|
119
116
|
profile.thinking,
|
|
120
117
|
"--append-system-prompt",
|
|
121
118
|
systemPrompt,
|
|
122
|
-
//
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
"",
|
|
126
|
-
"--strict-mcp-config",
|
|
127
|
-
...servers,
|
|
128
|
-
"--disable-slash-commands",
|
|
129
|
-
"--settings",
|
|
130
|
-
JSON.stringify({ outputStyle: "default", autoMemoryEnabled: false }),
|
|
131
|
-
// `--tools` bounds built-in tools only; the allowlist is what lets MCP tools run.
|
|
132
|
-
"--tools",
|
|
133
|
-
profile.tools.filter((tool) => !isMcpTool(tool)).join(","),
|
|
134
|
-
...(profile.tools.length
|
|
135
|
-
? ["--allowedTools", profile.tools.join(",")]
|
|
119
|
+
// Added to the machine's servers.
|
|
120
|
+
...(Object.keys(mcpServers).length
|
|
121
|
+
? ["--mcp-config", JSON.stringify({ mcpServers })]
|
|
136
122
|
: []),
|
|
137
|
-
|
|
138
|
-
|
|
123
|
+
// `--tools` bounds built-in tools only; the allowlist is what lets the listed tools run.
|
|
124
|
+
...(tools
|
|
125
|
+
? ["--tools", tools.filter((tool) => !isMcpTool(tool)).join(",")]
|
|
126
|
+
: []),
|
|
127
|
+
...(tools?.length ? ["--allowedTools", tools.join(",")] : []),
|
|
128
|
+
...(permissionMode ? ["--permission-mode", permissionMode] : []),
|
|
139
129
|
];
|
|
140
130
|
}
|
|
141
|
-
/**
|
|
142
|
-
* Checks the started session against the profile: what the agent can do must be
|
|
143
|
-
* exactly what the profile grants (failure); any other customization is a warning.
|
|
144
|
-
*/
|
|
131
|
+
/** The started session holds what the profile grants: its MCP servers connected, its tools available. */
|
|
145
132
|
function checkSession(profile, init) {
|
|
146
|
-
const declared = Object.keys(profile.mcpServers);
|
|
147
133
|
// A server that failed to start would otherwise surface as missing tools.
|
|
148
|
-
const unavailable =
|
|
134
|
+
const unavailable = Object.keys(profile.mcpServers).flatMap((server) => {
|
|
149
135
|
const status = init.mcp_servers.find(({ name }) => name === server)?.status;
|
|
150
136
|
return status === "connected" ? [] : [`${server} (${status ?? "missing"})`];
|
|
151
137
|
});
|
|
152
138
|
if (unavailable.length)
|
|
153
139
|
return failure(`${label} MCP servers are not connected: ${unavailable.join(", ")}`);
|
|
154
140
|
// An unknown name would silently remove a tool the profile grants.
|
|
155
|
-
const missing = profile.tools.filter((tool) => !init.tools.includes(tool));
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
const capabilities = [
|
|
159
|
-
[
|
|
160
|
-
"tools",
|
|
161
|
-
init.tools.filter((tool) => !profile.tools.includes(tool) &&
|
|
162
|
-
!declared.some((server) => tool.startsWith(`mcp__${server}__`))),
|
|
163
|
-
],
|
|
164
|
-
[
|
|
165
|
-
"MCP servers",
|
|
166
|
-
init.mcp_servers
|
|
167
|
-
.map(({ name }) => name)
|
|
168
|
-
.filter((name) => !declared.includes(name)),
|
|
169
|
-
],
|
|
170
|
-
[
|
|
171
|
-
"plugins",
|
|
172
|
-
init.plugins
|
|
173
|
-
.filter(({ path }) => path !== "builtin")
|
|
174
|
-
.map(({ name }) => name),
|
|
175
|
-
],
|
|
176
|
-
];
|
|
177
|
-
const extra = capabilities.flatMap(([field, names]) => names.length ? [`${field} ${names.join(", ")}`] : []);
|
|
178
|
-
if (extra.length)
|
|
179
|
-
return failure(`${label} session is not isolated: ${extra.join("; ")}`);
|
|
180
|
-
const customizations = [
|
|
181
|
-
...[
|
|
182
|
-
["skills", init.skills],
|
|
183
|
-
["slash commands", init.slash_commands],
|
|
184
|
-
].flatMap(([field, names]) => names === undefined
|
|
185
|
-
? [`${field} unreported`]
|
|
186
|
-
: names.length
|
|
187
|
-
? [`${field} ${names.join(", ")}`]
|
|
188
|
-
: []),
|
|
189
|
-
...(init.memory_paths === undefined ? [] : ["auto memory"]),
|
|
190
|
-
...(init.output_style === "default"
|
|
191
|
-
? []
|
|
192
|
-
: [`output style ${init.output_style ?? "unreported"}`]),
|
|
193
|
-
];
|
|
194
|
-
return customizations.length
|
|
195
|
-
? [
|
|
196
|
-
{
|
|
197
|
-
type: "warning",
|
|
198
|
-
message: `${label} session is not fully isolated: ${customizations.join("; ")}`,
|
|
199
|
-
},
|
|
200
|
-
]
|
|
141
|
+
const missing = (profile.tools ?? []).filter((tool) => !init.tools.includes(tool));
|
|
142
|
+
return missing.length
|
|
143
|
+
? failure(`${label} does not provide tools: ${missing.join(", ")}`)
|
|
201
144
|
: [];
|
|
202
145
|
}
|
|
203
146
|
/** `claude auth status --json`; it also names the account, which is never read. */
|
|
@@ -233,21 +176,33 @@ const failure = (message) => [
|
|
|
233
176
|
{ type: "failure", message },
|
|
234
177
|
];
|
|
235
178
|
/**
|
|
236
|
-
* Claude Code in print mode,
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
179
|
+
* Claude Code in print mode, with the machine's configuration and the profile's
|
|
180
|
+
* settings. Its sessions need UUIDs: the run keeps a marker per session, so that
|
|
181
|
+
* the next call resumes it. At the end of each call, Claude Code announces its
|
|
182
|
+
* session's total, which is reported as it is. On SIGTERM it ends the process
|
|
183
|
+
* tree of its running commands (its documentation).
|
|
240
184
|
*/
|
|
241
185
|
export const claudeCode = {
|
|
242
186
|
name: "claude-code",
|
|
243
187
|
label,
|
|
244
188
|
executable: "claude",
|
|
245
189
|
minimumVersion: "2.1.296",
|
|
190
|
+
stopSignal: "SIGTERM",
|
|
246
191
|
connection: () => ({
|
|
247
192
|
args: ["auth", "status", "--json"],
|
|
248
|
-
read: readLogin,
|
|
193
|
+
read: ({ stdout }) => readLogin(stdout),
|
|
249
194
|
}),
|
|
250
195
|
model: (profile) => profile.model,
|
|
196
|
+
// A command containing "/" belongs to the configuration directory; a bare one stays a PATH lookup.
|
|
197
|
+
resolvePaths: (profile, configDir) => ({
|
|
198
|
+
...profile,
|
|
199
|
+
mcpServers: Object.fromEntries(Object.entries(profile.mcpServers).map(([name, server]) => [
|
|
200
|
+
name,
|
|
201
|
+
server.command.includes("/") && !isAbsolute(server.command)
|
|
202
|
+
? { ...server, command: resolve(configDir, server.command) }
|
|
203
|
+
: server,
|
|
204
|
+
])),
|
|
205
|
+
}),
|
|
251
206
|
async start({ profile, systemPrompt, session, sessions }) {
|
|
252
207
|
const name = agentSessionName(sessions.runId, session);
|
|
253
208
|
const sessionId = claudeCodeSessionId(name);
|
|
@@ -363,7 +318,7 @@ export const claudeCode = {
|
|
|
363
318
|
usage,
|
|
364
319
|
...failure(`${label} final response ended with stop reason ${result.stop_reason}`),
|
|
365
320
|
];
|
|
366
|
-
// Without an init event, neither the session nor
|
|
321
|
+
// Without an init event, neither the session nor what it grants was checked.
|
|
367
322
|
if (!initialized)
|
|
368
323
|
return [
|
|
369
324
|
usage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/system/runtimes/claude-code.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/system/runtimes/claude-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type RuntimeAdapter } from "./adapter.js";
|
|
2
|
+
/**
|
|
3
|
+
* Codex in non-interactive mode (`codex exec --json`, its documented event
|
|
4
|
+
* stream). A session is a Codex thread: the run keeps its identifier per
|
|
5
|
+
* session, so that the next call resumes it (`codex exec resume`). At the end of
|
|
6
|
+
* each turn, Codex announces its thread's total tokens, earlier turns included,
|
|
7
|
+
* without a cost. Codex ends the commands it started on SIGINT, not on SIGTERM,
|
|
8
|
+
* and runs each in its own process group. Both observed with Codex 0.160.1, not
|
|
9
|
+
* documented.
|
|
10
|
+
*/
|
|
11
|
+
export declare const codex: RuntimeAdapter<"codex">;
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { runtimeLabels } from "../../engine/profiles.js";
|
|
5
|
+
import { parseEvent, } from "./adapter.js";
|
|
6
|
+
import { agentSessionName } from "./protocol.js";
|
|
7
|
+
const label = runtimeLabels.codex;
|
|
8
|
+
const anyEvent = z.looseObject({ type: z.string() });
|
|
9
|
+
/** The first event of a thread, new or resumed: its identifier resumes it. */
|
|
10
|
+
const threadStarted = z.looseObject({ thread_id: z.string().min(1) });
|
|
11
|
+
/** An item of the thread: its kind and identifier, then each kind's own fields. */
|
|
12
|
+
const item = z.looseObject({ id: z.string(), type: z.string() });
|
|
13
|
+
const itemEvent = z.looseObject({ item });
|
|
14
|
+
/** The kinds of item that end with a status: a command, a file change, an MCP call. */
|
|
15
|
+
const withStatus = new Set([
|
|
16
|
+
"command_execution",
|
|
17
|
+
"file_change",
|
|
18
|
+
"mcp_tool_call",
|
|
19
|
+
]);
|
|
20
|
+
const statusItem = z.looseObject({ status: z.string() });
|
|
21
|
+
const mcpToolItem = z.looseObject({ server: z.string(), tool: z.string() });
|
|
22
|
+
const agentMessageItem = z.looseObject({ text: z.string() });
|
|
23
|
+
/** A message only explains an error: its shape never hides the error. */
|
|
24
|
+
const explained = z.looseObject({ message: z.unknown().optional() });
|
|
25
|
+
const turnFailed = z.looseObject({ error: z.unknown().optional() });
|
|
26
|
+
/**
|
|
27
|
+
* The thread's usage at the end of a turn, earlier turns included: tokens only,
|
|
28
|
+
* Codex announces no cost. Its input tokens include the cached ones.
|
|
29
|
+
*/
|
|
30
|
+
const turnUsage = z
|
|
31
|
+
.looseObject({
|
|
32
|
+
input_tokens: z.number().nonnegative(),
|
|
33
|
+
cached_input_tokens: z.number().nonnegative(),
|
|
34
|
+
cache_write_input_tokens: z.number().nonnegative().optional(),
|
|
35
|
+
output_tokens: z.number().nonnegative(),
|
|
36
|
+
})
|
|
37
|
+
.refine((usage) => usage.cached_input_tokens <= usage.input_tokens);
|
|
38
|
+
const turnCompleted = z.looseObject({ usage: z.unknown().optional() });
|
|
39
|
+
const text = (value) => (typeof value === "string" ? value : "");
|
|
40
|
+
/** The message of a failure's error, when it has one. */
|
|
41
|
+
const errorMessage = (error) => typeof error === "object" && error !== null && "message" in error
|
|
42
|
+
? text(error.message)
|
|
43
|
+
: "";
|
|
44
|
+
/**
|
|
45
|
+
* The tool a thread item stands for, named as Codex reports it: its kind, or
|
|
46
|
+
* `<server>.<tool>` for an MCP call; `undefined` for an item that is not a tool.
|
|
47
|
+
*/
|
|
48
|
+
function toolOf(raw) {
|
|
49
|
+
switch (raw.type) {
|
|
50
|
+
case "command_execution":
|
|
51
|
+
case "file_change":
|
|
52
|
+
case "web_search":
|
|
53
|
+
return raw.type;
|
|
54
|
+
case "mcp_tool_call": {
|
|
55
|
+
const { server, tool } = parseEvent(label, mcpToolItem, raw);
|
|
56
|
+
return `${server}.${tool}`;
|
|
57
|
+
}
|
|
58
|
+
default:
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/** `codex login status`, on standard error: its text names the method; the account or key is never read. */
|
|
63
|
+
function readLogin(stderr) {
|
|
64
|
+
const status = stderr.trim();
|
|
65
|
+
if (status.startsWith("Logged in using ChatGPT"))
|
|
66
|
+
return { connected: true, detail: "ChatGPT login" };
|
|
67
|
+
if (status.startsWith("Logged in using an API key"))
|
|
68
|
+
return { connected: true, detail: "API key" };
|
|
69
|
+
if (status.startsWith("Logged in"))
|
|
70
|
+
return { connected: true, detail: "logged in" };
|
|
71
|
+
return {
|
|
72
|
+
connected: false,
|
|
73
|
+
detail: status
|
|
74
|
+
? `${label}: ${status}`
|
|
75
|
+
: `${label} login status is unreadable`,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/** The thread a session marker keeps; an unreadable marker stops the call before it starts. */
|
|
79
|
+
function threadOf(marker) {
|
|
80
|
+
try {
|
|
81
|
+
return z
|
|
82
|
+
.object({ threadId: z.string().min(1) })
|
|
83
|
+
.parse(JSON.parse(readFileSync(marker, "utf8"))).threadId;
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
throw new Error(`${label} session marker is unreadable: ${marker}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** A string as a TOML value for `-c key=value`, as Codex's own SDK writes it. */
|
|
90
|
+
const toml = (value) => JSON.stringify(value);
|
|
91
|
+
/**
|
|
92
|
+
* The profile's settings over the machine's configuration, which Codex loads as
|
|
93
|
+
* usual: config.toml, AGENTS.md files, skills, MCP servers. The workflow's prompt
|
|
94
|
+
* is the session's `developer_instructions`, replacing any from that configuration.
|
|
95
|
+
* `-c sandbox_mode` rather than `--sandbox`, which `codex exec resume` does not take.
|
|
96
|
+
*/
|
|
97
|
+
function profileArgs(profile, systemPrompt) {
|
|
98
|
+
return [
|
|
99
|
+
"--model",
|
|
100
|
+
profile.model,
|
|
101
|
+
"-c",
|
|
102
|
+
`model_reasoning_effort=${toml(profile.thinking)}`,
|
|
103
|
+
...(profile.sandbox ? ["-c", `sandbox_mode=${toml(profile.sandbox)}`] : []),
|
|
104
|
+
"-c",
|
|
105
|
+
`developer_instructions=${toml(systemPrompt)}`,
|
|
106
|
+
];
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Codex in non-interactive mode (`codex exec --json`, its documented event
|
|
110
|
+
* stream). A session is a Codex thread: the run keeps its identifier per
|
|
111
|
+
* session, so that the next call resumes it (`codex exec resume`). At the end of
|
|
112
|
+
* each turn, Codex announces its thread's total tokens, earlier turns included,
|
|
113
|
+
* without a cost. Codex ends the commands it started on SIGINT, not on SIGTERM,
|
|
114
|
+
* and runs each in its own process group. Both observed with Codex 0.160.1, not
|
|
115
|
+
* documented.
|
|
116
|
+
*/
|
|
117
|
+
export const codex = {
|
|
118
|
+
name: "codex",
|
|
119
|
+
label,
|
|
120
|
+
executable: "codex",
|
|
121
|
+
minimumVersion: "0.160.1",
|
|
122
|
+
stopSignal: "SIGINT",
|
|
123
|
+
// `codex exec` prefers an API key in the environment to the stored login
|
|
124
|
+
// (observed with Codex 0.160.1); only the variable's presence is read.
|
|
125
|
+
connection: () => process.env.CODEX_API_KEY
|
|
126
|
+
? { connected: true, detail: "API key (CODEX_API_KEY)" }
|
|
127
|
+
: { args: ["login", "status"], read: ({ stderr }) => readLogin(stderr) },
|
|
128
|
+
model: (profile) => profile.model,
|
|
129
|
+
async start({ profile, systemPrompt, session, sessions }) {
|
|
130
|
+
const name = agentSessionName(sessions.runId, session);
|
|
131
|
+
const marker = join(sessions.directory, name);
|
|
132
|
+
const resumed = existsSync(marker) ? threadOf(marker) : undefined;
|
|
133
|
+
const settings = profileArgs(profile, systemPrompt);
|
|
134
|
+
const tools = new Map();
|
|
135
|
+
let reply;
|
|
136
|
+
let threaded = resumed !== undefined;
|
|
137
|
+
return {
|
|
138
|
+
// The request comes through standard input (`-`).
|
|
139
|
+
args: resumed
|
|
140
|
+
? ["exec", "resume", "--json", ...settings, resumed, "-"]
|
|
141
|
+
: ["exec", "--json", ...settings, "-"],
|
|
142
|
+
read(raw) {
|
|
143
|
+
const { type } = parseEvent(label, anyEvent, raw);
|
|
144
|
+
switch (type) {
|
|
145
|
+
case "thread.started": {
|
|
146
|
+
const { thread_id } = parseEvent(label, threadStarted, raw);
|
|
147
|
+
if (resumed !== undefined && thread_id !== resumed)
|
|
148
|
+
return [
|
|
149
|
+
{
|
|
150
|
+
type: "failure",
|
|
151
|
+
message: `${label} started thread ${thread_id} instead of resuming ${resumed}`,
|
|
152
|
+
},
|
|
153
|
+
];
|
|
154
|
+
if (resumed === undefined)
|
|
155
|
+
writeFileSync(marker, `${JSON.stringify({ threadId: thread_id })}\n`, { mode: 0o600 });
|
|
156
|
+
threaded = true;
|
|
157
|
+
return [];
|
|
158
|
+
}
|
|
159
|
+
case "item.started": {
|
|
160
|
+
const begun = parseEvent(label, itemEvent, raw).item;
|
|
161
|
+
const tool = toolOf(begun);
|
|
162
|
+
if (tool === undefined)
|
|
163
|
+
return [];
|
|
164
|
+
tools.set(begun.id, tool);
|
|
165
|
+
return [
|
|
166
|
+
{ type: "tool", id: begun.id, name: tool, status: "started" },
|
|
167
|
+
];
|
|
168
|
+
}
|
|
169
|
+
case "item.completed": {
|
|
170
|
+
const completed = parseEvent(label, itemEvent, raw).item;
|
|
171
|
+
if (completed.type === "agent_message") {
|
|
172
|
+
reply = parseEvent(label, agentMessageItem, completed).text;
|
|
173
|
+
return [];
|
|
174
|
+
}
|
|
175
|
+
if (completed.type === "error")
|
|
176
|
+
return [
|
|
177
|
+
{
|
|
178
|
+
type: "warning",
|
|
179
|
+
message: `${label}: ${text(parseEvent(label, explained, completed).message) || "error without detail"}`,
|
|
180
|
+
},
|
|
181
|
+
];
|
|
182
|
+
const tool = tools.get(completed.id) ?? toolOf(completed);
|
|
183
|
+
if (tool === undefined)
|
|
184
|
+
return [];
|
|
185
|
+
const failed = withStatus.has(completed.type) &&
|
|
186
|
+
parseEvent(label, statusItem, completed).status !== "completed";
|
|
187
|
+
return [
|
|
188
|
+
{
|
|
189
|
+
type: "tool",
|
|
190
|
+
id: completed.id,
|
|
191
|
+
name: tool,
|
|
192
|
+
status: failed ? "failed" : "completed",
|
|
193
|
+
},
|
|
194
|
+
];
|
|
195
|
+
}
|
|
196
|
+
case "turn.completed": {
|
|
197
|
+
const usage = turnUsage.safeParse(parseEvent(label, turnCompleted, raw).usage);
|
|
198
|
+
// The thread's total so far replaces the session's earlier one;
|
|
199
|
+
// `input` counts the tokens read without the cache, as for the other runtimes.
|
|
200
|
+
const measure = {
|
|
201
|
+
type: "usage",
|
|
202
|
+
scope: "session",
|
|
203
|
+
usage: usage.success
|
|
204
|
+
? {
|
|
205
|
+
input: usage.data.input_tokens - usage.data.cached_input_tokens,
|
|
206
|
+
output: usage.data.output_tokens,
|
|
207
|
+
cacheRead: usage.data.cached_input_tokens,
|
|
208
|
+
cacheWrite: usage.data.cache_write_input_tokens ?? 0,
|
|
209
|
+
}
|
|
210
|
+
: undefined,
|
|
211
|
+
};
|
|
212
|
+
// Without a thread, the session cannot be resumed.
|
|
213
|
+
if (!threaded)
|
|
214
|
+
return [
|
|
215
|
+
measure,
|
|
216
|
+
{
|
|
217
|
+
type: "failure",
|
|
218
|
+
message: `${label} answered without starting a thread`,
|
|
219
|
+
},
|
|
220
|
+
];
|
|
221
|
+
return reply === undefined
|
|
222
|
+
? [
|
|
223
|
+
measure,
|
|
224
|
+
{
|
|
225
|
+
type: "failure",
|
|
226
|
+
message: `${label} completed its turn without a final message`,
|
|
227
|
+
},
|
|
228
|
+
]
|
|
229
|
+
: [measure, { type: "result", text: reply }];
|
|
230
|
+
}
|
|
231
|
+
case "turn.failed":
|
|
232
|
+
return [
|
|
233
|
+
{
|
|
234
|
+
type: "failure",
|
|
235
|
+
message: `${label} turn failed: ${errorMessage(parseEvent(label, turnFailed, raw).error) || "no detail provided"}`,
|
|
236
|
+
},
|
|
237
|
+
];
|
|
238
|
+
// As Codex's own SDK reads its stream, only a failed turn fails the call.
|
|
239
|
+
case "error":
|
|
240
|
+
return [
|
|
241
|
+
{
|
|
242
|
+
type: "warning",
|
|
243
|
+
message: `${label} error: ${text(parseEvent(label, explained, raw).message) || "no detail provided"}`,
|
|
244
|
+
},
|
|
245
|
+
];
|
|
246
|
+
default:
|
|
247
|
+
return [];
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
};
|
|
251
|
+
},
|
|
252
|
+
};
|
|
253
|
+
//# sourceMappingURL=codex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/system/runtimes/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export interface AgentProblem {
|
|
|
10
10
|
runtime: Runtime;
|
|
11
11
|
reason: string;
|
|
12
12
|
}
|
|
13
|
-
/** Node 24 or later
|
|
13
|
+
/** Node 24 or later, the oldest version flow supports. */
|
|
14
14
|
export declare function inspectNode(): RuntimeStatus;
|
|
15
15
|
/**
|
|
16
16
|
* Inspects each runtime the agent stages use, without any provider request: the
|
|
@@ -20,7 +20,7 @@ async function findInPath(name) {
|
|
|
20
20
|
}
|
|
21
21
|
return undefined;
|
|
22
22
|
}
|
|
23
|
-
/** Node 24 or later
|
|
23
|
+
/** Node 24 or later, the oldest version flow supports. */
|
|
24
24
|
export function inspectNode() {
|
|
25
25
|
const version = process.versions.node;
|
|
26
26
|
return Number(version.split(".")[0]) >= 24
|
|
@@ -75,7 +75,7 @@ function connectionOf(adapter, printed, read) {
|
|
|
75
75
|
connected: false,
|
|
76
76
|
detail: `Cannot run ${adapter.label}: ${printed.error}`,
|
|
77
77
|
};
|
|
78
|
-
const reported = read(printed
|
|
78
|
+
const reported = read(printed);
|
|
79
79
|
return reported.connected && printed.exitCode !== 0
|
|
80
80
|
? {
|
|
81
81
|
connected: false,
|
|
@@ -109,12 +109,14 @@ dir) {
|
|
|
109
109
|
// Stages whose profiles use the same connection share one check.
|
|
110
110
|
const checked = new Map();
|
|
111
111
|
for (const [stage, { profile }] of using) {
|
|
112
|
-
const
|
|
113
|
-
const key = args.join("\0");
|
|
112
|
+
const check = adapter.connection(profile);
|
|
113
|
+
const key = "connected" in check ? check.detail : check.args.join("\0");
|
|
114
114
|
let connection = checked.get(key);
|
|
115
115
|
if (!connection) {
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
connection =
|
|
117
|
+
"connected" in check
|
|
118
|
+
? check
|
|
119
|
+
: connectionOf(adapter, await output(executable.path, check.args, dir), check.read);
|
|
118
120
|
checked.set(key, connection);
|
|
119
121
|
}
|
|
120
122
|
if (!connection.connected)
|