@seawork/server 1.0.18-rc.2 → 1.0.18
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/server/server/agent/providers/codex-app-server-agent.d.ts +14 -0
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js +123 -38
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/shared/messages.d.ts +2415 -0
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +24 -0
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/utils/checkout-git.d.ts +10 -0
- package/dist/server/utils/checkout-git.d.ts.map +1 -1
- package/dist/server/utils/checkout-git.js +108 -0
- package/dist/server/utils/checkout-git.js.map +1 -1
- package/dist/server/utils/directory-suggestions.d.ts.map +1 -1
- package/dist/server/utils/directory-suggestions.js +57 -8
- package/dist/server/utils/directory-suggestions.js.map +1 -1
- package/dist/server/utils/worktree.d.ts.map +1 -1
- package/dist/server/utils/worktree.js +100 -1
- package/dist/server/utils/worktree.js.map +1 -1
- package/package.json +4 -3
|
@@ -15,6 +15,12 @@ export declare class CodexExternalMigrationUnavailableError extends Error {
|
|
|
15
15
|
probeError?: string | null;
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
|
+
type CodexSkillEntry = {
|
|
19
|
+
name: string;
|
|
20
|
+
description: string;
|
|
21
|
+
path: string;
|
|
22
|
+
};
|
|
23
|
+
declare function listCodexSkillEntries(cwd: string): Promise<CodexSkillEntry[]>;
|
|
18
24
|
declare function toAgentUsage(tokenUsage: unknown): AgentUsage | undefined;
|
|
19
25
|
declare function planStepsToMarkdown(steps: Array<{
|
|
20
26
|
step: string;
|
|
@@ -61,6 +67,9 @@ declare function threadItemToTimeline(item: any, options?: {
|
|
|
61
67
|
}): AgentTimelineItem | null;
|
|
62
68
|
export declare function codexAppServerTurnInputFromPrompt(prompt: AgentPromptInput, logger: Logger): Promise<unknown[]>;
|
|
63
69
|
declare function buildCodexAppServerEnv(runtimeSettings?: ProviderRuntimeSettings, launchEnv?: Record<string, string>): Record<string, string | undefined>;
|
|
70
|
+
declare function buildCodexSeaworkProviderConfig(env: Record<string, string | undefined>): Record<string, unknown> | null;
|
|
71
|
+
declare function mergeCodexConfig(base: Record<string, unknown> | undefined, override: Record<string, unknown> | null): Record<string, unknown> | undefined;
|
|
72
|
+
declare function withManagedCodexConfig(config: AgentSessionConfig, runtimeSettings?: ProviderRuntimeSettings, launchEnv?: Record<string, string>): AgentSessionConfig;
|
|
64
73
|
declare class CodexAppServerAgentSession implements AgentSession {
|
|
65
74
|
private readonly resumeHandle;
|
|
66
75
|
private readonly spawnAppServer;
|
|
@@ -169,6 +178,7 @@ declare class CodexAppServerAgentSession implements AgentSession {
|
|
|
169
178
|
private rememberTerminalProcessForCommand;
|
|
170
179
|
private shouldEmitTerminalInteractionKey;
|
|
171
180
|
private warnOnIncompleteEditToolCall;
|
|
181
|
+
private shouldAutoAcceptToolApprovals;
|
|
172
182
|
private handleCommandApprovalRequest;
|
|
173
183
|
private handleFileChangeApprovalRequest;
|
|
174
184
|
private handleToolApprovalRequest;
|
|
@@ -202,9 +212,13 @@ export declare class CodexAppServerAgentClient implements AgentClient {
|
|
|
202
212
|
}
|
|
203
213
|
export declare const __codexAppServerInternals: {
|
|
204
214
|
buildCodexAppServerEnv: typeof buildCodexAppServerEnv;
|
|
215
|
+
buildCodexSeaworkProviderConfig: typeof buildCodexSeaworkProviderConfig;
|
|
205
216
|
codexModelSupportsFastMode: typeof codexModelSupportsFastMode;
|
|
206
217
|
CodexAppServerAgentSession: typeof CodexAppServerAgentSession;
|
|
218
|
+
listCodexSkillEntries: typeof listCodexSkillEntries;
|
|
207
219
|
formatCodexQuestionPrompts: typeof formatCodexQuestionPrompts;
|
|
220
|
+
mergeCodexConfig: typeof mergeCodexConfig;
|
|
221
|
+
withManagedCodexConfig: typeof withManagedCodexConfig;
|
|
208
222
|
mapCodexQuestionRequestToToolCall: typeof mapCodexQuestionRequestToToolCall;
|
|
209
223
|
mapCodexPatchNotificationToToolCall: typeof mapCodexPatchNotificationToToolCall;
|
|
210
224
|
planStepsToMarkdown: typeof planStepsToMarkdown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-app-server-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/codex-app-server-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAEpB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EAErB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAczE,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAAsB,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAYhG,QAAA,MAAM,cAAc,EAAG,OAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-app-server-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/codex-app-server-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ const DEFAULT_TIMEOUT_MS = 14 * 24 * 60 * 60 * 1000;
|
|
|
21
21
|
const TURN_START_TIMEOUT_MS = 90 * 1000;
|
|
22
22
|
const CODEX_EXTERNAL_MIGRATION_MIN_VERSION = "0.128.0";
|
|
23
23
|
const CODEX_PROVIDER = "codex";
|
|
24
|
+
const CODEX_SEAWORK_PROVIDER_ID = "seawork";
|
|
24
25
|
const CODEX_IMAGE_ATTACHMENT_DIR = "seawork-attachments";
|
|
25
26
|
const CODEX_PLAN_IMPLEMENTATION_PROMPT_PREFIX = "The user approved the plan. Implement it now. Do not restate or revise the plan unless blocked.";
|
|
26
27
|
const CODEX_APP_SERVER_CAPABILITIES = {
|
|
@@ -181,6 +182,11 @@ function isVersionAtLeast(raw, minimum) {
|
|
|
181
182
|
function readStringMetadata(value) {
|
|
182
183
|
return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
|
|
183
184
|
}
|
|
185
|
+
function readStringRecord(value) {
|
|
186
|
+
return value && typeof value === "object" && !Array.isArray(value)
|
|
187
|
+
? value
|
|
188
|
+
: {};
|
|
189
|
+
}
|
|
184
190
|
async function waitForCondition(predicate, timeoutMs, intervalMs) {
|
|
185
191
|
const deadline = Date.now() + timeoutMs;
|
|
186
192
|
while (!predicate()) {
|
|
@@ -326,10 +332,12 @@ async function listCodexCustomPrompts() {
|
|
|
326
332
|
}
|
|
327
333
|
return commands.sort((a, b) => a.name.localeCompare(b.name));
|
|
328
334
|
}
|
|
329
|
-
async function
|
|
335
|
+
async function listCodexSkillEntries(cwd) {
|
|
330
336
|
const candidates = [];
|
|
331
337
|
candidates.push(path.join(cwd, ".codex", "skills"));
|
|
332
338
|
candidates.push(path.join(cwd, ".agents", "skills"));
|
|
339
|
+
candidates.push(path.join(cwd, ".claude", "skills"));
|
|
340
|
+
candidates.push(path.join(cwd, "skills"));
|
|
333
341
|
const repoRoot = (() => {
|
|
334
342
|
try {
|
|
335
343
|
const output = execSync("git rev-parse --show-toplevel", {
|
|
@@ -347,13 +355,17 @@ async function listCodexSkills(cwd) {
|
|
|
347
355
|
if (repoRoot) {
|
|
348
356
|
candidates.push(path.join(path.dirname(cwd), ".codex", "skills"));
|
|
349
357
|
candidates.push(path.join(path.dirname(cwd), ".agents", "skills"));
|
|
358
|
+
candidates.push(path.join(path.dirname(cwd), ".claude", "skills"));
|
|
359
|
+
candidates.push(path.join(path.dirname(cwd), "skills"));
|
|
350
360
|
candidates.push(path.join(repoRoot, ".codex", "skills"));
|
|
351
361
|
candidates.push(path.join(repoRoot, ".agents", "skills"));
|
|
362
|
+
candidates.push(path.join(repoRoot, ".claude", "skills"));
|
|
363
|
+
candidates.push(path.join(repoRoot, "skills"));
|
|
352
364
|
}
|
|
353
365
|
candidates.push(path.join(resolveCodexHomeDir(), "skills"));
|
|
354
366
|
candidates.push(path.join(os.homedir(), ".agents", "skills"));
|
|
355
|
-
const
|
|
356
|
-
for (const dir of candidates) {
|
|
367
|
+
const skillsByName = new Map();
|
|
368
|
+
for (const dir of Array.from(new Set(candidates))) {
|
|
357
369
|
let entries;
|
|
358
370
|
try {
|
|
359
371
|
entries = await fs.readdir(dir, { withFileTypes: true });
|
|
@@ -380,16 +392,16 @@ async function listCodexSkills(cwd) {
|
|
|
380
392
|
if (!name || !description) {
|
|
381
393
|
continue;
|
|
382
394
|
}
|
|
383
|
-
if (!
|
|
384
|
-
|
|
395
|
+
if (!skillsByName.has(name)) {
|
|
396
|
+
skillsByName.set(name, {
|
|
385
397
|
name,
|
|
386
398
|
description,
|
|
387
|
-
|
|
399
|
+
path: skillPath,
|
|
388
400
|
});
|
|
389
401
|
}
|
|
390
402
|
}
|
|
391
403
|
}
|
|
392
|
-
return Array.from(
|
|
404
|
+
return Array.from(skillsByName.values()).sort((a, b) => a.name.localeCompare(b.name));
|
|
393
405
|
}
|
|
394
406
|
function escapeRegExp(value) {
|
|
395
407
|
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
@@ -1976,12 +1988,64 @@ function buildCodexAppServerEnv(runtimeSettings, launchEnv) {
|
|
|
1976
1988
|
env.https_proxy = "";
|
|
1977
1989
|
env.HTTP_PROXY = "";
|
|
1978
1990
|
env.HTTPS_PROXY = "";
|
|
1979
|
-
|
|
1980
|
-
|
|
1991
|
+
const merged = launchEnv
|
|
1992
|
+
? {
|
|
1993
|
+
...env,
|
|
1994
|
+
...launchEnv,
|
|
1995
|
+
}
|
|
1996
|
+
: env;
|
|
1997
|
+
if (readStringMetadata(merged.OPENAI_BASE_URL)) {
|
|
1998
|
+
merged.SEAWORK_API_KEY = merged.OPENAI_API_KEY ?? "";
|
|
1999
|
+
}
|
|
2000
|
+
return merged;
|
|
2001
|
+
}
|
|
2002
|
+
function codexProviderBaseUrl(baseUrl) {
|
|
2003
|
+
const normalized = baseUrl.replace(/\/+$/, "");
|
|
2004
|
+
return normalized.endsWith("/v1") ? normalized : `${normalized}/v1`;
|
|
2005
|
+
}
|
|
2006
|
+
function buildCodexSeaworkProviderConfig(env) {
|
|
2007
|
+
const baseUrl = readStringMetadata(env.OPENAI_BASE_URL);
|
|
2008
|
+
if (!baseUrl) {
|
|
2009
|
+
return null;
|
|
2010
|
+
}
|
|
2011
|
+
return {
|
|
2012
|
+
model_provider: CODEX_SEAWORK_PROVIDER_ID,
|
|
2013
|
+
model_providers: {
|
|
2014
|
+
[CODEX_SEAWORK_PROVIDER_ID]: {
|
|
2015
|
+
name: "Seawork",
|
|
2016
|
+
base_url: codexProviderBaseUrl(baseUrl),
|
|
2017
|
+
env_key: "SEAWORK_API_KEY",
|
|
2018
|
+
},
|
|
2019
|
+
},
|
|
2020
|
+
};
|
|
2021
|
+
}
|
|
2022
|
+
function mergeCodexConfig(base, override) {
|
|
2023
|
+
if (!override) {
|
|
2024
|
+
return base;
|
|
2025
|
+
}
|
|
2026
|
+
const baseProviders = readStringRecord(base?.model_providers);
|
|
2027
|
+
const overrideProviders = readStringRecord(override.model_providers);
|
|
2028
|
+
return {
|
|
2029
|
+
...(base ?? {}),
|
|
2030
|
+
...override,
|
|
2031
|
+
model_providers: {
|
|
2032
|
+
...baseProviders,
|
|
2033
|
+
...overrideProviders,
|
|
2034
|
+
},
|
|
2035
|
+
};
|
|
2036
|
+
}
|
|
2037
|
+
function withManagedCodexConfig(config, runtimeSettings, launchEnv) {
|
|
2038
|
+
const env = buildCodexAppServerEnv(runtimeSettings, launchEnv);
|
|
2039
|
+
const managedConfig = buildCodexSeaworkProviderConfig(env);
|
|
2040
|
+
if (!managedConfig) {
|
|
2041
|
+
return config;
|
|
1981
2042
|
}
|
|
1982
2043
|
return {
|
|
1983
|
-
...
|
|
1984
|
-
|
|
2044
|
+
...config,
|
|
2045
|
+
extra: {
|
|
2046
|
+
...(config.extra ?? {}),
|
|
2047
|
+
codex: mergeCodexConfig(config.extra?.codex, managedConfig),
|
|
2048
|
+
},
|
|
1985
2049
|
};
|
|
1986
2050
|
}
|
|
1987
2051
|
function buildCodexAppServerInitializeParams() {
|
|
@@ -2103,32 +2167,37 @@ class CodexAppServerAgentSession {
|
|
|
2103
2167
|
this.refreshResolvedCollaborationMode();
|
|
2104
2168
|
}
|
|
2105
2169
|
async loadSkills() {
|
|
2106
|
-
|
|
2107
|
-
|
|
2170
|
+
const skillsByName = new Map();
|
|
2171
|
+
const projectSkills = await listCodexSkillEntries(this.config.cwd);
|
|
2172
|
+
for (const skill of projectSkills) {
|
|
2173
|
+
skillsByName.set(skill.name, skill);
|
|
2174
|
+
}
|
|
2108
2175
|
try {
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2176
|
+
if (this.client) {
|
|
2177
|
+
const response = (await this.client.request("skills/list", {
|
|
2178
|
+
cwd: [this.config.cwd],
|
|
2179
|
+
}));
|
|
2180
|
+
const entries = Array.isArray(response?.data) ? response.data : [];
|
|
2181
|
+
for (const entry of entries) {
|
|
2182
|
+
const list = Array.isArray(entry.skills) ? entry.skills : [];
|
|
2183
|
+
for (const skill of list) {
|
|
2184
|
+
if (!skill?.name || !skill?.path)
|
|
2185
|
+
continue;
|
|
2186
|
+
if (skillsByName.has(skill.name))
|
|
2187
|
+
continue;
|
|
2188
|
+
skillsByName.set(skill.name, {
|
|
2189
|
+
name: skill.name,
|
|
2190
|
+
description: skill.description ?? skill.shortDescription ?? "Skill",
|
|
2191
|
+
path: skill.path,
|
|
2192
|
+
});
|
|
2193
|
+
}
|
|
2124
2194
|
}
|
|
2125
2195
|
}
|
|
2126
|
-
this.cachedSkills = skills;
|
|
2127
2196
|
}
|
|
2128
2197
|
catch (error) {
|
|
2129
2198
|
this.logger.trace({ error }, "Failed to load skills list");
|
|
2130
|
-
this.cachedSkills = [];
|
|
2131
2199
|
}
|
|
2200
|
+
this.cachedSkills = Array.from(skillsByName.values()).sort((a, b) => a.name.localeCompare(b.name));
|
|
2132
2201
|
}
|
|
2133
2202
|
findCollaborationMode(target) {
|
|
2134
2203
|
if (this.collaborationModes.length === 0)
|
|
@@ -2777,8 +2846,7 @@ class CodexAppServerAgentSession {
|
|
|
2777
2846
|
description: skill.description,
|
|
2778
2847
|
argumentHint: "",
|
|
2779
2848
|
}));
|
|
2780
|
-
|
|
2781
|
-
return [...appServerSkills, ...fallbackSkills, ...prompts].sort((a, b) => a.name.localeCompare(b.name));
|
|
2849
|
+
return [...appServerSkills, ...prompts].sort((a, b) => a.name.localeCompare(b.name));
|
|
2782
2850
|
}
|
|
2783
2851
|
async ensureThread() {
|
|
2784
2852
|
if (!this.client)
|
|
@@ -3288,8 +3356,16 @@ class CodexAppServerAgentSession {
|
|
|
3288
3356
|
payload,
|
|
3289
3357
|
}, "Codex edit tool call is missing diff/content fields");
|
|
3290
3358
|
}
|
|
3359
|
+
shouldAutoAcceptToolApprovals() {
|
|
3360
|
+
const preset = MODE_PRESETS[this.currentMode] ?? MODE_PRESETS[DEFAULT_CODEX_MODE_ID];
|
|
3361
|
+
const approvalPolicy = this.config.approvalPolicy ?? preset.approvalPolicy;
|
|
3362
|
+
return approvalPolicy === "never";
|
|
3363
|
+
}
|
|
3291
3364
|
handleCommandApprovalRequest(params) {
|
|
3292
3365
|
const parsed = params;
|
|
3366
|
+
if (this.shouldAutoAcceptToolApprovals()) {
|
|
3367
|
+
return Promise.resolve({ decision: "accept" });
|
|
3368
|
+
}
|
|
3293
3369
|
const commandPreview = mapCodexExecNotificationToToolCall({
|
|
3294
3370
|
callId: parsed.itemId,
|
|
3295
3371
|
command: parsed.command,
|
|
@@ -3332,6 +3408,9 @@ class CodexAppServerAgentSession {
|
|
|
3332
3408
|
handleFileChangeApprovalRequest(params) {
|
|
3333
3409
|
const parsed = params;
|
|
3334
3410
|
const requestId = `permission-${parsed.itemId}`;
|
|
3411
|
+
if (this.shouldAutoAcceptToolApprovals()) {
|
|
3412
|
+
return Promise.resolve({ decision: "accept" });
|
|
3413
|
+
}
|
|
3335
3414
|
const request = {
|
|
3336
3415
|
id: requestId,
|
|
3337
3416
|
provider: CODEX_PROVIDER,
|
|
@@ -3424,10 +3503,11 @@ export class CodexAppServerAgentClient {
|
|
|
3424
3503
|
// If a Seawork-managed base URL is available, inject a "seawork" provider
|
|
3425
3504
|
// via -c flags to override any user config.
|
|
3426
3505
|
const extraArgs = [];
|
|
3427
|
-
const
|
|
3428
|
-
|
|
3429
|
-
|
|
3430
|
-
|
|
3506
|
+
const seaworkConfig = buildCodexSeaworkProviderConfig(codexEnv);
|
|
3507
|
+
const seaworkProvider = readStringRecord(readStringRecord(seaworkConfig?.model_providers)[CODEX_SEAWORK_PROVIDER_ID]);
|
|
3508
|
+
const seaworkBaseUrl = readStringMetadata(seaworkProvider.base_url);
|
|
3509
|
+
if (seaworkConfig && seaworkBaseUrl) {
|
|
3510
|
+
extraArgs.push("-c", `model_provider="${CODEX_SEAWORK_PROVIDER_ID}"`, "-c", `model_providers.${CODEX_SEAWORK_PROVIDER_ID}.name="Seawork"`, "-c", `model_providers.${CODEX_SEAWORK_PROVIDER_ID}.base_url="${seaworkBaseUrl}"`, "-c", `model_providers.${CODEX_SEAWORK_PROVIDER_ID}.env_key="SEAWORK_API_KEY"`, "--disable", "js_repl");
|
|
3431
3511
|
}
|
|
3432
3512
|
let command = launchPrefix.command;
|
|
3433
3513
|
let fullArgs = [
|
|
@@ -3732,7 +3812,7 @@ export class CodexAppServerAgentClient {
|
|
|
3732
3812
|
return readStringMetadata(matchingRecords[0]?.imported_thread_id);
|
|
3733
3813
|
}
|
|
3734
3814
|
async createSession(config, launchContext) {
|
|
3735
|
-
const sessionConfig = { ...config, provider: CODEX_PROVIDER };
|
|
3815
|
+
const sessionConfig = withManagedCodexConfig({ ...config, provider: CODEX_PROVIDER }, this.runtimeSettings, launchContext?.env);
|
|
3736
3816
|
const session = new CodexAppServerAgentSession(sessionConfig, null, this.logger, () => this.spawnAppServer({ launchEnv: launchContext?.env }));
|
|
3737
3817
|
await session.connect();
|
|
3738
3818
|
return session;
|
|
@@ -3746,7 +3826,8 @@ export class CodexAppServerAgentClient {
|
|
|
3746
3826
|
cwd: overrides?.cwd ?? storedConfig.cwd ?? process.cwd(),
|
|
3747
3827
|
modeId: overrides?.modeId ?? storedConfig.modeId ?? "auto",
|
|
3748
3828
|
};
|
|
3749
|
-
const
|
|
3829
|
+
const sessionConfig = withManagedCodexConfig(merged, this.runtimeSettings, launchContext?.env);
|
|
3830
|
+
const session = new CodexAppServerAgentSession(sessionConfig, handle, this.logger, () => this.spawnAppServer({ launchEnv: launchContext?.env }));
|
|
3750
3831
|
await session.connect();
|
|
3751
3832
|
return session;
|
|
3752
3833
|
}
|
|
@@ -3869,9 +3950,13 @@ export class CodexAppServerAgentClient {
|
|
|
3869
3950
|
}
|
|
3870
3951
|
export const __codexAppServerInternals = {
|
|
3871
3952
|
buildCodexAppServerEnv,
|
|
3953
|
+
buildCodexSeaworkProviderConfig,
|
|
3872
3954
|
codexModelSupportsFastMode,
|
|
3873
3955
|
CodexAppServerAgentSession,
|
|
3956
|
+
listCodexSkillEntries,
|
|
3874
3957
|
formatCodexQuestionPrompts,
|
|
3958
|
+
mergeCodexConfig,
|
|
3959
|
+
withManagedCodexConfig,
|
|
3875
3960
|
mapCodexQuestionRequestToToolCall,
|
|
3876
3961
|
mapCodexPatchNotificationToToolCall,
|
|
3877
3962
|
planStepsToMarkdown,
|