doer-agent 0.5.1 → 0.5.3
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/agent-codex-cli.js +1 -1
- package/dist/agent-session-rpc.js +35 -12
- package/dist/agent-settings.js +45 -169
- package/dist/agent-skill-rpc.js +1 -1
- package/package.json +2 -2
package/dist/agent-codex-cli.js
CHANGED
|
@@ -22,7 +22,7 @@ export function stripAnsi(value) {
|
|
|
22
22
|
}
|
|
23
23
|
export function normalizeCodexModel(value) {
|
|
24
24
|
const normalized = typeof value === "string" ? value.trim() : "";
|
|
25
|
-
return normalized || "gpt-5.
|
|
25
|
+
return normalized || "gpt-5.5";
|
|
26
26
|
}
|
|
27
27
|
export function buildManagedCodexArgs(args) {
|
|
28
28
|
const promptArgs = ["--", args.prompt];
|
|
@@ -13,6 +13,7 @@ const SESSION_RPC_BLOB_KEYS = new Set([
|
|
|
13
13
|
"bytes",
|
|
14
14
|
"data",
|
|
15
15
|
]);
|
|
16
|
+
const SESSION_RPC_MAX_STRING_CHARS = 512;
|
|
16
17
|
function getSessionsRootPath(workspaceRoot) {
|
|
17
18
|
return path.join(workspaceRoot, ".codex", "sessions");
|
|
18
19
|
}
|
|
@@ -89,9 +90,16 @@ function buildInlineBlobMarker(value) {
|
|
|
89
90
|
}
|
|
90
91
|
return "[inline blob omitted]";
|
|
91
92
|
}
|
|
93
|
+
function truncateSessionRpcString(value) {
|
|
94
|
+
if (value.length <= SESSION_RPC_MAX_STRING_CHARS) {
|
|
95
|
+
return value;
|
|
96
|
+
}
|
|
97
|
+
const omittedChars = value.length - SESSION_RPC_MAX_STRING_CHARS;
|
|
98
|
+
return `${value.slice(0, SESSION_RPC_MAX_STRING_CHARS)}\n[truncated ${omittedChars} chars for session RPC]`;
|
|
99
|
+
}
|
|
92
100
|
function sanitizeSessionRpcPayload(value) {
|
|
93
101
|
if (typeof value === "string") {
|
|
94
|
-
return value;
|
|
102
|
+
return truncateSessionRpcString(value);
|
|
95
103
|
}
|
|
96
104
|
if (Array.isArray(value)) {
|
|
97
105
|
return value.map((entry) => sanitizeSessionRpcPayload(entry));
|
|
@@ -112,22 +120,41 @@ function sanitizeSessionRpcPayload(value) {
|
|
|
112
120
|
function sanitizeSessionRpcRawLine(line) {
|
|
113
121
|
const trimmed = line.trim();
|
|
114
122
|
if (!trimmed.startsWith("{")) {
|
|
115
|
-
return line;
|
|
123
|
+
return truncateSessionRpcString(line);
|
|
116
124
|
}
|
|
117
125
|
try {
|
|
118
126
|
const parsed = JSON.parse(line);
|
|
119
127
|
if (!isObjectRecord(parsed)) {
|
|
120
|
-
return line;
|
|
128
|
+
return truncateSessionRpcString(line);
|
|
121
129
|
}
|
|
122
130
|
if (parsed.type === "compacted" || parsed.type === "turn_context" || parsed.type === "session_meta") {
|
|
123
|
-
return
|
|
131
|
+
return JSON.stringify({
|
|
132
|
+
...parsed,
|
|
133
|
+
payload: sanitizeSessionRpcPayload(parsed.payload),
|
|
134
|
+
});
|
|
124
135
|
}
|
|
125
|
-
if (!isObjectRecord(parsed.payload)
|
|
126
|
-
return
|
|
136
|
+
if (!isObjectRecord(parsed.payload)) {
|
|
137
|
+
return JSON.stringify({
|
|
138
|
+
...parsed,
|
|
139
|
+
payload: sanitizeSessionRpcPayload(parsed.payload),
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
if (parsed.type !== "response_item") {
|
|
143
|
+
return JSON.stringify({
|
|
144
|
+
...parsed,
|
|
145
|
+
payload: sanitizeSessionRpcPayload(parsed.payload),
|
|
146
|
+
});
|
|
127
147
|
}
|
|
128
148
|
const payloadType = typeof parsed.payload.type === "string" ? parsed.payload.type : "";
|
|
129
149
|
if (payloadType === "message" || payloadType === "reasoning") {
|
|
130
|
-
return
|
|
150
|
+
return JSON.stringify({
|
|
151
|
+
...parsed,
|
|
152
|
+
payload: {
|
|
153
|
+
type: payloadType,
|
|
154
|
+
status: typeof parsed.payload.status === "string" ? parsed.payload.status : "completed",
|
|
155
|
+
message: `[${payloadType} payload omitted for session RPC pagination]`,
|
|
156
|
+
},
|
|
157
|
+
});
|
|
131
158
|
}
|
|
132
159
|
return JSON.stringify({
|
|
133
160
|
...parsed,
|
|
@@ -135,7 +162,7 @@ function sanitizeSessionRpcRawLine(line) {
|
|
|
135
162
|
});
|
|
136
163
|
}
|
|
137
164
|
catch {
|
|
138
|
-
return line;
|
|
165
|
+
return truncateSessionRpcString(line);
|
|
139
166
|
}
|
|
140
167
|
}
|
|
141
168
|
function toTrimmedStringOrNull(value) {
|
|
@@ -523,10 +550,6 @@ async function getAgentSessionRawRows(args) {
|
|
|
523
550
|
for (const line of lines) {
|
|
524
551
|
if (line.trim()) {
|
|
525
552
|
const sanitized = sanitizeSessionRpcRawLine(line);
|
|
526
|
-
if (!sanitized) {
|
|
527
|
-
lineNumber += 1;
|
|
528
|
-
continue;
|
|
529
|
-
}
|
|
530
553
|
rawRows.push({
|
|
531
554
|
id: lineNumber,
|
|
532
555
|
raw: sanitized,
|
package/dist/agent-settings.js
CHANGED
|
@@ -15,7 +15,7 @@ export function createDefaultAgentSettingsConfig() {
|
|
|
15
15
|
personality: "pragmatic",
|
|
16
16
|
},
|
|
17
17
|
codex: {
|
|
18
|
-
model: "gpt-5.
|
|
18
|
+
model: "gpt-5.5",
|
|
19
19
|
authMode: "api_key",
|
|
20
20
|
},
|
|
21
21
|
realtime: {
|
|
@@ -34,34 +34,8 @@ export function createDefaultAgentSettingsConfig() {
|
|
|
34
34
|
oauthLogin: null,
|
|
35
35
|
oauthScope: null,
|
|
36
36
|
},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
accessKeyId: null,
|
|
40
|
-
defaultRegion: null,
|
|
41
|
-
secretAccessKey: null,
|
|
42
|
-
sessionToken: null,
|
|
43
|
-
},
|
|
44
|
-
jira: {
|
|
45
|
-
baseUrl: null,
|
|
46
|
-
email: null,
|
|
47
|
-
enabled: false,
|
|
48
|
-
apiToken: null,
|
|
49
|
-
},
|
|
50
|
-
notion: {
|
|
51
|
-
baseUrl: "https://api.notion.com",
|
|
52
|
-
version: "2022-06-28",
|
|
53
|
-
enabled: false,
|
|
54
|
-
apiToken: null,
|
|
55
|
-
},
|
|
56
|
-
slack: {
|
|
57
|
-
baseUrl: "https://slack.com/api",
|
|
58
|
-
enabled: false,
|
|
59
|
-
botToken: null,
|
|
60
|
-
},
|
|
61
|
-
figma: {
|
|
62
|
-
baseUrl: "https://api.figma.com",
|
|
63
|
-
enabled: false,
|
|
64
|
-
apiToken: null,
|
|
37
|
+
env: {
|
|
38
|
+
variables: [],
|
|
65
39
|
},
|
|
66
40
|
databases: {
|
|
67
41
|
defaultConnectionId: null,
|
|
@@ -167,6 +141,38 @@ function normalizeAgentDatabaseSettings(value, fallback) {
|
|
|
167
141
|
connections,
|
|
168
142
|
};
|
|
169
143
|
}
|
|
144
|
+
function normalizeAgentEnvironmentVariable(value) {
|
|
145
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
const raw = value;
|
|
149
|
+
const key = normalizeEnvVarName(raw.key);
|
|
150
|
+
if (!key || typeof raw.value !== "string") {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
key,
|
|
155
|
+
value: raw.value.replace(/\r/g, ""),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
function normalizeAgentEnvironmentSettings(value, fallback) {
|
|
159
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
160
|
+
return fallback;
|
|
161
|
+
}
|
|
162
|
+
const raw = value;
|
|
163
|
+
const variablesRaw = Array.isArray(raw.variables) ? raw.variables : [];
|
|
164
|
+
const variables = [];
|
|
165
|
+
const seenKeys = new Set();
|
|
166
|
+
for (const item of variablesRaw) {
|
|
167
|
+
const normalized = normalizeAgentEnvironmentVariable(item);
|
|
168
|
+
if (!normalized || seenKeys.has(normalized.key)) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
seenKeys.add(normalized.key);
|
|
172
|
+
variables.push(normalized);
|
|
173
|
+
}
|
|
174
|
+
return { variables };
|
|
175
|
+
}
|
|
170
176
|
export function getAgentDatabaseConnectionById(config, connectionId) {
|
|
171
177
|
const normalizedId = normalizeDatabaseConnectionId(connectionId);
|
|
172
178
|
if (!normalizedId) {
|
|
@@ -188,11 +194,7 @@ export function normalizeAgentSettingsConfig(value, fallback) {
|
|
|
188
194
|
const codex = raw.codex && typeof raw.codex === "object" ? raw.codex : {};
|
|
189
195
|
const realtime = raw.realtime && typeof raw.realtime === "object" ? raw.realtime : {};
|
|
190
196
|
const git = raw.git && typeof raw.git === "object" ? raw.git : {};
|
|
191
|
-
const
|
|
192
|
-
const jira = raw.jira && typeof raw.jira === "object" ? raw.jira : {};
|
|
193
|
-
const notion = raw.notion && typeof raw.notion === "object" ? raw.notion : {};
|
|
194
|
-
const slack = raw.slack && typeof raw.slack === "object" ? raw.slack : {};
|
|
195
|
-
const figma = raw.figma && typeof raw.figma === "object" ? raw.figma : {};
|
|
197
|
+
const env = raw.env && typeof raw.env === "object" ? raw.env : null;
|
|
196
198
|
const databases = raw.databases && typeof raw.databases === "object" ? raw.databases : null;
|
|
197
199
|
return {
|
|
198
200
|
general: {
|
|
@@ -218,37 +220,7 @@ export function normalizeAgentSettingsConfig(value, fallback) {
|
|
|
218
220
|
oauthLogin: git.oauthLogin === null ? null : normalizeNullableString(git.oauthLogin) ?? base.git.oauthLogin,
|
|
219
221
|
oauthScope: git.oauthScope === null ? null : normalizeNullableString(git.oauthScope) ?? base.git.oauthScope,
|
|
220
222
|
},
|
|
221
|
-
|
|
222
|
-
enabled: typeof aws.enabled === "boolean" ? aws.enabled : base.aws.enabled,
|
|
223
|
-
accessKeyId: aws.accessKeyId === null ? null : normalizeNullableString(aws.accessKeyId) ?? base.aws.accessKeyId,
|
|
224
|
-
defaultRegion: aws.defaultRegion === null ? null : normalizeNullableString(aws.defaultRegion) ?? base.aws.defaultRegion,
|
|
225
|
-
secretAccessKey: aws.secretAccessKey === null
|
|
226
|
-
? null
|
|
227
|
-
: normalizeNullableString(aws.secretAccessKey) ?? base.aws.secretAccessKey,
|
|
228
|
-
sessionToken: aws.sessionToken === null ? null : normalizeNullableString(aws.sessionToken) ?? base.aws.sessionToken,
|
|
229
|
-
},
|
|
230
|
-
jira: {
|
|
231
|
-
baseUrl: jira.baseUrl === null ? null : normalizeNullableString(jira.baseUrl) ?? base.jira.baseUrl,
|
|
232
|
-
email: jira.email === null ? null : normalizeNullableString(jira.email) ?? base.jira.email,
|
|
233
|
-
enabled: typeof jira.enabled === "boolean" ? jira.enabled : base.jira.enabled,
|
|
234
|
-
apiToken: jira.apiToken === null ? null : normalizeNullableString(jira.apiToken) ?? base.jira.apiToken,
|
|
235
|
-
},
|
|
236
|
-
notion: {
|
|
237
|
-
baseUrl: notion.baseUrl === null ? null : normalizeNullableString(notion.baseUrl) ?? base.notion.baseUrl,
|
|
238
|
-
version: notion.version === null ? null : normalizeNullableString(notion.version) ?? base.notion.version,
|
|
239
|
-
enabled: typeof notion.enabled === "boolean" ? notion.enabled : base.notion.enabled,
|
|
240
|
-
apiToken: notion.apiToken === null ? null : normalizeNullableString(notion.apiToken) ?? base.notion.apiToken,
|
|
241
|
-
},
|
|
242
|
-
slack: {
|
|
243
|
-
baseUrl: slack.baseUrl === null ? null : normalizeNullableString(slack.baseUrl) ?? base.slack.baseUrl,
|
|
244
|
-
enabled: typeof slack.enabled === "boolean" ? slack.enabled : base.slack.enabled,
|
|
245
|
-
botToken: slack.botToken === null ? null : normalizeNullableString(slack.botToken) ?? base.slack.botToken,
|
|
246
|
-
},
|
|
247
|
-
figma: {
|
|
248
|
-
baseUrl: figma.baseUrl === null ? null : normalizeNullableString(figma.baseUrl) ?? base.figma.baseUrl,
|
|
249
|
-
enabled: typeof figma.enabled === "boolean" ? figma.enabled : base.figma.enabled,
|
|
250
|
-
apiToken: figma.apiToken === null ? null : normalizeNullableString(figma.apiToken) ?? base.figma.apiToken,
|
|
251
|
-
},
|
|
223
|
+
env: normalizeAgentEnvironmentSettings(env, base.env),
|
|
252
224
|
databases: normalizeAgentDatabaseSettings(databases, base.databases),
|
|
253
225
|
};
|
|
254
226
|
}
|
|
@@ -300,12 +272,6 @@ function toMaskedSecret(value) {
|
|
|
300
272
|
export async function toAgentSettingsPublic(args) {
|
|
301
273
|
const realtimeKey = toMaskedSecret(args.config.realtime.apiKey);
|
|
302
274
|
const gitOauth = toMaskedSecret(args.config.git.oauthToken);
|
|
303
|
-
const awsSecret = toMaskedSecret(args.config.aws.secretAccessKey);
|
|
304
|
-
const awsSession = toMaskedSecret(args.config.aws.sessionToken);
|
|
305
|
-
const jiraToken = toMaskedSecret(args.config.jira.apiToken);
|
|
306
|
-
const notionToken = toMaskedSecret(args.config.notion.apiToken);
|
|
307
|
-
const slackToken = toMaskedSecret(args.config.slack.botToken);
|
|
308
|
-
const figmaToken = toMaskedSecret(args.config.figma.apiToken);
|
|
309
275
|
const customInstructions = await readAgentModelInstructions(args.workspaceRoot);
|
|
310
276
|
return {
|
|
311
277
|
general: {
|
|
@@ -339,46 +305,11 @@ export async function toAgentSettingsPublic(args) {
|
|
|
339
305
|
oauthLogin: args.config.git.oauthLogin,
|
|
340
306
|
oauthScope: args.config.git.oauthScope,
|
|
341
307
|
},
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
secretAccessKeyMasked: awsSecret.masked,
|
|
348
|
-
secretAccessKeyLength: awsSecret.length,
|
|
349
|
-
hasSessionToken: awsSession.has,
|
|
350
|
-
sessionTokenMasked: awsSession.masked,
|
|
351
|
-
sessionTokenLength: awsSession.length,
|
|
352
|
-
},
|
|
353
|
-
jira: {
|
|
354
|
-
baseUrl: args.config.jira.baseUrl,
|
|
355
|
-
email: args.config.jira.email,
|
|
356
|
-
enabled: args.config.jira.enabled,
|
|
357
|
-
hasApiToken: jiraToken.has,
|
|
358
|
-
apiTokenMasked: jiraToken.masked,
|
|
359
|
-
apiTokenLength: jiraToken.length,
|
|
360
|
-
},
|
|
361
|
-
notion: {
|
|
362
|
-
baseUrl: args.config.notion.baseUrl,
|
|
363
|
-
version: args.config.notion.version,
|
|
364
|
-
enabled: args.config.notion.enabled,
|
|
365
|
-
hasApiToken: notionToken.has,
|
|
366
|
-
apiTokenMasked: notionToken.masked,
|
|
367
|
-
apiTokenLength: notionToken.length,
|
|
368
|
-
},
|
|
369
|
-
slack: {
|
|
370
|
-
baseUrl: args.config.slack.baseUrl,
|
|
371
|
-
enabled: args.config.slack.enabled,
|
|
372
|
-
hasBotToken: slackToken.has,
|
|
373
|
-
botTokenMasked: slackToken.masked,
|
|
374
|
-
botTokenLength: slackToken.length,
|
|
375
|
-
},
|
|
376
|
-
figma: {
|
|
377
|
-
baseUrl: args.config.figma.baseUrl,
|
|
378
|
-
enabled: args.config.figma.enabled,
|
|
379
|
-
hasApiToken: figmaToken.has,
|
|
380
|
-
apiTokenMasked: figmaToken.masked,
|
|
381
|
-
apiTokenLength: figmaToken.length,
|
|
308
|
+
env: {
|
|
309
|
+
variables: args.config.env.variables.map((variable) => ({
|
|
310
|
+
key: variable.key,
|
|
311
|
+
value: variable.value,
|
|
312
|
+
})),
|
|
382
313
|
},
|
|
383
314
|
databases: {
|
|
384
315
|
defaultConnectionId: args.config.databases.defaultConnectionId,
|
|
@@ -436,25 +367,7 @@ export function normalizeAgentSettingsPatch(value) {
|
|
|
436
367
|
move("gitOauthToken", "git", "oauthToken");
|
|
437
368
|
move("gitOauthLogin", "git", "oauthLogin");
|
|
438
369
|
move("gitOauthScope", "git", "oauthScope");
|
|
439
|
-
move("
|
|
440
|
-
move("awsAccessKeyId", "aws", "accessKeyId");
|
|
441
|
-
move("awsDefaultRegion", "aws", "defaultRegion");
|
|
442
|
-
move("awsSecretAccessKey", "aws", "secretAccessKey");
|
|
443
|
-
move("awsSessionToken", "aws", "sessionToken");
|
|
444
|
-
move("jiraBaseUrl", "jira", "baseUrl");
|
|
445
|
-
move("jiraEmail", "jira", "email");
|
|
446
|
-
move("jiraEnabled", "jira", "enabled");
|
|
447
|
-
move("jiraApiToken", "jira", "apiToken");
|
|
448
|
-
move("notionBaseUrl", "notion", "baseUrl");
|
|
449
|
-
move("notionVersion", "notion", "version");
|
|
450
|
-
move("notionEnabled", "notion", "enabled");
|
|
451
|
-
move("notionApiToken", "notion", "apiToken");
|
|
452
|
-
move("slackBaseUrl", "slack", "baseUrl");
|
|
453
|
-
move("slackEnabled", "slack", "enabled");
|
|
454
|
-
move("slackBotToken", "slack", "botToken");
|
|
455
|
-
move("figmaBaseUrl", "figma", "baseUrl");
|
|
456
|
-
move("figmaEnabled", "figma", "enabled");
|
|
457
|
-
move("figmaApiToken", "figma", "apiToken");
|
|
370
|
+
move("environmentVariables", "env", "variables");
|
|
458
371
|
return patch;
|
|
459
372
|
}
|
|
460
373
|
export function buildAgentSettingsEnvPatch(config) {
|
|
@@ -477,45 +390,8 @@ export function buildAgentSettingsEnvPatch(config) {
|
|
|
477
390
|
if (config.git.oauthScope)
|
|
478
391
|
envPatch.DOER_GIT_OAUTH_SCOPE = config.git.oauthScope;
|
|
479
392
|
}
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
envPatch.AWS_ACCESS_KEY_ID = config.aws.accessKeyId;
|
|
483
|
-
if (config.aws.defaultRegion)
|
|
484
|
-
envPatch.AWS_DEFAULT_REGION = config.aws.defaultRegion;
|
|
485
|
-
if (config.aws.defaultRegion)
|
|
486
|
-
envPatch.AWS_REGION = config.aws.defaultRegion;
|
|
487
|
-
if (config.aws.secretAccessKey)
|
|
488
|
-
envPatch.AWS_SECRET_ACCESS_KEY = config.aws.secretAccessKey;
|
|
489
|
-
if (config.aws.sessionToken)
|
|
490
|
-
envPatch.AWS_SESSION_TOKEN = config.aws.sessionToken;
|
|
491
|
-
}
|
|
492
|
-
if (config.jira.enabled) {
|
|
493
|
-
if (config.jira.baseUrl)
|
|
494
|
-
envPatch.JIRA_BASE_URL = config.jira.baseUrl;
|
|
495
|
-
if (config.jira.email)
|
|
496
|
-
envPatch.JIRA_EMAIL = config.jira.email;
|
|
497
|
-
if (config.jira.apiToken)
|
|
498
|
-
envPatch.JIRA_API_TOKEN = config.jira.apiToken;
|
|
499
|
-
}
|
|
500
|
-
if (config.notion.enabled) {
|
|
501
|
-
if (config.notion.baseUrl)
|
|
502
|
-
envPatch.NOTION_BASE_URL = config.notion.baseUrl;
|
|
503
|
-
if (config.notion.version)
|
|
504
|
-
envPatch.NOTION_VERSION = config.notion.version;
|
|
505
|
-
if (config.notion.apiToken)
|
|
506
|
-
envPatch.NOTION_API_TOKEN = config.notion.apiToken;
|
|
507
|
-
}
|
|
508
|
-
if (config.slack.enabled) {
|
|
509
|
-
if (config.slack.baseUrl)
|
|
510
|
-
envPatch.SLACK_BASE_URL = config.slack.baseUrl;
|
|
511
|
-
if (config.slack.botToken)
|
|
512
|
-
envPatch.SLACK_BOT_TOKEN = config.slack.botToken;
|
|
513
|
-
}
|
|
514
|
-
if (config.figma.enabled) {
|
|
515
|
-
if (config.figma.baseUrl)
|
|
516
|
-
envPatch.FIGMA_BASE_URL = config.figma.baseUrl;
|
|
517
|
-
if (config.figma.apiToken)
|
|
518
|
-
envPatch.FIGMA_API_TOKEN = config.figma.apiToken;
|
|
393
|
+
for (const variable of config.env.variables) {
|
|
394
|
+
envPatch[variable.key] = variable.value;
|
|
519
395
|
}
|
|
520
396
|
return envPatch;
|
|
521
397
|
}
|
package/dist/agent-skill-rpc.js
CHANGED
|
@@ -74,7 +74,7 @@ async function generateSkillViaCodex(args) {
|
|
|
74
74
|
const localAgentSettings = await args.readAgentSettingsConfig({ workspaceRoot: args.workspaceRoot });
|
|
75
75
|
const envPatch = args.buildAgentSettingsEnvPatch(localAgentSettings);
|
|
76
76
|
const prompt = buildSkillGeneratorPrompt(args.userPrompt);
|
|
77
|
-
const result = await args.runLocalCodexCli(buildSkillGeneratorCodexArgs(prompt, localAgentSettings.codex.model || "gpt-5.
|
|
77
|
+
const result = await args.runLocalCodexCli(buildSkillGeneratorCodexArgs(prompt, localAgentSettings.codex.model || "gpt-5.5"), 120_000, envPatch);
|
|
78
78
|
if (result.timedOut) {
|
|
79
79
|
throw new Error("Codex timed out while generating the skill");
|
|
80
80
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "doer-agent",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "Reverse-polling agent runtime for doer",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/agent.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
28
|
-
"@openai/codex-sdk": "^0.
|
|
28
|
+
"@openai/codex-sdk": "^0.128.0",
|
|
29
29
|
"mysql2": "^3.22.2",
|
|
30
30
|
"nats": "^2.29.3",
|
|
31
31
|
"pg": "^8.16.3",
|