@rudderhq/agent-runtime-codex-local 0.1.0-canary.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/LICENSE +14 -0
- package/dist/cli/format-event.d.ts +2 -0
- package/dist/cli/format-event.d.ts.map +1 -0
- package/dist/cli/format-event.js +213 -0
- package/dist/cli/format-event.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/quota-probe.d.ts +3 -0
- package/dist/cli/quota-probe.d.ts.map +1 -0
- package/dist/cli/quota-probe.js +97 -0
- package/dist/cli/quota-probe.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/server/codex-home.d.ts +7 -0
- package/dist/server/codex-home.d.ts.map +1 -0
- package/dist/server/codex-home.js +456 -0
- package/dist/server/codex-home.js.map +1 -0
- package/dist/server/execute.d.ts +3 -0
- package/dist/server/execute.d.ts.map +1 -0
- package/dist/server/execute.js +514 -0
- package/dist/server/execute.js.map +1 -0
- package/dist/server/index.d.ts +8 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +57 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/parse.d.ts +12 -0
- package/dist/server/parse.d.ts.map +1 -0
- package/dist/server/parse.js +67 -0
- package/dist/server/parse.js.map +1 -0
- package/dist/server/quota.d.ts +64 -0
- package/dist/server/quota.d.ts.map +1 -0
- package/dist/server/quota.js +425 -0
- package/dist/server/quota.js.map +1 -0
- package/dist/server/skills.d.ts +7 -0
- package/dist/server/skills.d.ts.map +1 -0
- package/dist/server/skills.js +57 -0
- package/dist/server/skills.js.map +1 -0
- package/dist/server/test.d.ts +3 -0
- package/dist/server/test.d.ts.map +1 -0
- package/dist/server/test.js +194 -0
- package/dist/server/test.js.map +1 -0
- package/dist/ui/build-config.d.ts +3 -0
- package/dist/ui/build-config.d.ts.map +1 -0
- package/dist/ui/build-config.js +116 -0
- package/dist/ui/build-config.js.map +1 -0
- package/dist/ui/index.d.ts +3 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +3 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/parse-stdout.d.ts +3 -0
- package/dist/ui/parse-stdout.d.ts.map +1 -0
- package/dist/ui/parse-stdout.js +232 -0
- package/dist/ui/parse-stdout.js.map +1 -0
- package/package.json +62 -0
- package/skills/para-memory-files/SKILL.md +114 -0
- package/skills/para-memory-files/references/schemas.md +35 -0
- package/skills/rudder/SKILL.md +265 -0
- package/skills/rudder/references/api-reference.md +253 -0
- package/skills/rudder/references/cli-reference.md +67 -0
- package/skills/rudder/references/organization-skills.md +155 -0
- package/skills/rudder-create-agent/SKILL.md +166 -0
- package/skills/rudder-create-agent/references/api-reference.md +172 -0
- package/skills/rudder-create-agent/references/cli-reference.md +126 -0
- package/skills/rudder-create-plugin/SKILL.md +103 -0
|
@@ -0,0 +1,456 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
const TRUTHY_ENV_RE = /^(1|true|yes|on)$/i;
|
|
5
|
+
const COPIED_SHARED_FILES = ["config.json", "config.toml", "instructions.md"];
|
|
6
|
+
const SYMLINKED_SHARED_FILES = ["auth.json"];
|
|
7
|
+
const DEFAULT_RUDDER_INSTANCE_ID = "default";
|
|
8
|
+
const LEGACY_RUDDER_MANAGED_SKILLS_MARKERS = new Set([
|
|
9
|
+
"# rudder-managed-skills:start",
|
|
10
|
+
"# rudder-managed-skills:end",
|
|
11
|
+
]);
|
|
12
|
+
const MANAGED_CODEX_HOME_PRUNE_TARGETS = [
|
|
13
|
+
"plugins",
|
|
14
|
+
path.join(".tmp", "plugins"),
|
|
15
|
+
path.join(".tmp", "plugins.sha"),
|
|
16
|
+
path.join(".tmp", "app-server-remote-plugin-sync-v1"),
|
|
17
|
+
];
|
|
18
|
+
const codexHomeMutationLocks = new Map();
|
|
19
|
+
async function withCodexHomeMutationLock(codexHome, fn) {
|
|
20
|
+
const key = path.resolve(codexHome);
|
|
21
|
+
const previous = codexHomeMutationLocks.get(key) ?? Promise.resolve();
|
|
22
|
+
let release;
|
|
23
|
+
const current = new Promise((resolve) => {
|
|
24
|
+
release = resolve;
|
|
25
|
+
});
|
|
26
|
+
const marker = previous.then(() => current, () => current);
|
|
27
|
+
codexHomeMutationLocks.set(key, marker);
|
|
28
|
+
await previous.catch(() => undefined);
|
|
29
|
+
try {
|
|
30
|
+
return await fn();
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
release();
|
|
34
|
+
if (codexHomeMutationLocks.get(key) === marker) {
|
|
35
|
+
codexHomeMutationLocks.delete(key);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function nonEmpty(value) {
|
|
40
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
|
|
41
|
+
}
|
|
42
|
+
export async function pathExists(candidate) {
|
|
43
|
+
return fs.access(candidate).then(() => true).catch(() => false);
|
|
44
|
+
}
|
|
45
|
+
export function resolveSharedCodexHomeDir(env = process.env) {
|
|
46
|
+
const fromEnv = nonEmpty(env.CODEX_HOME);
|
|
47
|
+
return fromEnv ? path.resolve(fromEnv) : path.join(os.homedir(), ".codex");
|
|
48
|
+
}
|
|
49
|
+
function isWorktreeMode(env) {
|
|
50
|
+
return TRUTHY_ENV_RE.test(env.RUDDER_IN_WORKTREE ?? "");
|
|
51
|
+
}
|
|
52
|
+
export function resolveManagedCodexHomeDir(env, orgId, agentId) {
|
|
53
|
+
const rudderHome = nonEmpty(env.RUDDER_HOME) ?? path.resolve(os.homedir(), ".rudder");
|
|
54
|
+
const instanceId = nonEmpty(env.RUDDER_INSTANCE_ID) ?? DEFAULT_RUDDER_INSTANCE_ID;
|
|
55
|
+
if (orgId && agentId) {
|
|
56
|
+
return path.resolve(rudderHome, "instances", instanceId, "organizations", orgId, "codex-home", "agents", agentId);
|
|
57
|
+
}
|
|
58
|
+
return orgId
|
|
59
|
+
? path.resolve(rudderHome, "instances", instanceId, "organizations", orgId, "codex-home")
|
|
60
|
+
: path.resolve(rudderHome, "instances", instanceId, "codex-home");
|
|
61
|
+
}
|
|
62
|
+
async function ensureParentDir(target) {
|
|
63
|
+
await fs.mkdir(path.dirname(target), { recursive: true });
|
|
64
|
+
}
|
|
65
|
+
async function ensureSymlink(target, source) {
|
|
66
|
+
const existing = await fs.lstat(target).catch(() => null);
|
|
67
|
+
if (!existing) {
|
|
68
|
+
await ensureParentDir(target);
|
|
69
|
+
await fs.symlink(source, target);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (!existing.isSymbolicLink()) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const linkedPath = await fs.readlink(target).catch(() => null);
|
|
76
|
+
if (!linkedPath)
|
|
77
|
+
return;
|
|
78
|
+
const resolvedLinkedPath = path.resolve(path.dirname(target), linkedPath);
|
|
79
|
+
if (resolvedLinkedPath === source)
|
|
80
|
+
return;
|
|
81
|
+
await fs.unlink(target);
|
|
82
|
+
await fs.symlink(source, target);
|
|
83
|
+
}
|
|
84
|
+
async function ensureCopiedFile(target, source) {
|
|
85
|
+
const existing = await fs.lstat(target).catch(() => null);
|
|
86
|
+
if (existing)
|
|
87
|
+
return;
|
|
88
|
+
await ensureParentDir(target);
|
|
89
|
+
await fs.copyFile(source, target);
|
|
90
|
+
}
|
|
91
|
+
function isTomlTableBoundary(trimmedLine) {
|
|
92
|
+
return /^\[\[.+\]\]$/.test(trimmedLine) || /^\[(?!\[).+\]$/.test(trimmedLine);
|
|
93
|
+
}
|
|
94
|
+
function isManagedCodexConfigTableToStrip(trimmedLine) {
|
|
95
|
+
if (/^\[mcp_servers(?:\..+)?\]$/.test(trimmedLine))
|
|
96
|
+
return true;
|
|
97
|
+
if (/^\[plugins\..+\]$/.test(trimmedLine))
|
|
98
|
+
return true;
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
function sanitizeCodexConfigToml(content) {
|
|
102
|
+
const newline = content.includes("\r\n") ? "\r\n" : "\n";
|
|
103
|
+
const lines = content.split(/\r?\n/);
|
|
104
|
+
const output = [];
|
|
105
|
+
let blockLines = null;
|
|
106
|
+
let blockIsSkillsConfig = false;
|
|
107
|
+
let blockShouldBeRemoved = false;
|
|
108
|
+
let removedSkillEntries = 0;
|
|
109
|
+
let removedManagedTables = 0;
|
|
110
|
+
const flushBlock = () => {
|
|
111
|
+
if (!blockLines)
|
|
112
|
+
return;
|
|
113
|
+
if (blockShouldBeRemoved) {
|
|
114
|
+
removedManagedTables += 1;
|
|
115
|
+
}
|
|
116
|
+
else if (blockIsSkillsConfig) {
|
|
117
|
+
removedSkillEntries += 1;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
output.push(...blockLines);
|
|
121
|
+
}
|
|
122
|
+
blockLines = null;
|
|
123
|
+
blockIsSkillsConfig = false;
|
|
124
|
+
blockShouldBeRemoved = false;
|
|
125
|
+
};
|
|
126
|
+
for (const line of lines) {
|
|
127
|
+
const trimmedLine = line.trim();
|
|
128
|
+
if (isTomlTableBoundary(trimmedLine)) {
|
|
129
|
+
flushBlock();
|
|
130
|
+
blockLines = [line];
|
|
131
|
+
blockIsSkillsConfig = trimmedLine === "[[skills.config]]";
|
|
132
|
+
blockShouldBeRemoved = isManagedCodexConfigTableToStrip(trimmedLine);
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
if (!blockLines) {
|
|
136
|
+
output.push(line);
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
blockLines.push(line);
|
|
140
|
+
}
|
|
141
|
+
flushBlock();
|
|
142
|
+
return {
|
|
143
|
+
content: output.join(newline),
|
|
144
|
+
removedSkillEntries,
|
|
145
|
+
removedManagedTables,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function normalizeCodexFeaturesBlock(blockLines) {
|
|
149
|
+
const output = [];
|
|
150
|
+
let sawPlugins = false;
|
|
151
|
+
let changed = false;
|
|
152
|
+
for (const [index, line] of blockLines.entries()) {
|
|
153
|
+
if (index === 0) {
|
|
154
|
+
output.push(line);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
if (/^\s*plugins\s*=/.test(line)) {
|
|
158
|
+
const indent = line.match(/^(\s*)/)?.[1] ?? "";
|
|
159
|
+
output.push(`${indent}plugins = false`);
|
|
160
|
+
sawPlugins = true;
|
|
161
|
+
if (line.trim() !== "plugins = false") {
|
|
162
|
+
changed = true;
|
|
163
|
+
}
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
output.push(line);
|
|
167
|
+
}
|
|
168
|
+
if (!sawPlugins) {
|
|
169
|
+
const trailingBlankLines = [];
|
|
170
|
+
while (output.length > 1 && output.at(-1)?.trim() === "") {
|
|
171
|
+
trailingBlankLines.unshift(output.pop() ?? "");
|
|
172
|
+
}
|
|
173
|
+
output.push("plugins = false");
|
|
174
|
+
output.push(...trailingBlankLines);
|
|
175
|
+
changed = true;
|
|
176
|
+
}
|
|
177
|
+
return { lines: output, changed };
|
|
178
|
+
}
|
|
179
|
+
function normalizeCodexBundledSkillsBlock(blockLines) {
|
|
180
|
+
const output = [];
|
|
181
|
+
let sawEnabled = false;
|
|
182
|
+
let changed = false;
|
|
183
|
+
for (const [index, line] of blockLines.entries()) {
|
|
184
|
+
if (index === 0) {
|
|
185
|
+
output.push(line);
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
if (/^\s*enabled\s*=/.test(line)) {
|
|
189
|
+
const indent = line.match(/^(\s*)/)?.[1] ?? "";
|
|
190
|
+
output.push(`${indent}enabled = false`);
|
|
191
|
+
sawEnabled = true;
|
|
192
|
+
if (line.trim() !== "enabled = false") {
|
|
193
|
+
changed = true;
|
|
194
|
+
}
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
output.push(line);
|
|
198
|
+
}
|
|
199
|
+
if (!sawEnabled) {
|
|
200
|
+
const trailingBlankLines = [];
|
|
201
|
+
while (output.length > 1 && output.at(-1)?.trim() === "") {
|
|
202
|
+
trailingBlankLines.unshift(output.pop() ?? "");
|
|
203
|
+
}
|
|
204
|
+
output.push("enabled = false");
|
|
205
|
+
output.push(...trailingBlankLines);
|
|
206
|
+
changed = true;
|
|
207
|
+
}
|
|
208
|
+
return { lines: output, changed };
|
|
209
|
+
}
|
|
210
|
+
function normalizeCodexSkillSourceDir(source) {
|
|
211
|
+
const resolved = path.resolve(source);
|
|
212
|
+
if (path.basename(resolved).toLowerCase() === "skill.md") {
|
|
213
|
+
return path.dirname(resolved);
|
|
214
|
+
}
|
|
215
|
+
return resolved;
|
|
216
|
+
}
|
|
217
|
+
function ensureCodexPluginsDisabled(content) {
|
|
218
|
+
const newline = content.includes("\r\n") ? "\r\n" : "\n";
|
|
219
|
+
const lines = content.split(/\r?\n/);
|
|
220
|
+
const output = [];
|
|
221
|
+
let blockLines = null;
|
|
222
|
+
let blockIsFeatures = false;
|
|
223
|
+
let sawFeatures = false;
|
|
224
|
+
let changed = false;
|
|
225
|
+
const flushBlock = () => {
|
|
226
|
+
if (!blockLines)
|
|
227
|
+
return;
|
|
228
|
+
if (blockIsFeatures) {
|
|
229
|
+
const normalized = normalizeCodexFeaturesBlock(blockLines);
|
|
230
|
+
output.push(...normalized.lines);
|
|
231
|
+
if (normalized.changed)
|
|
232
|
+
changed = true;
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
output.push(...blockLines);
|
|
236
|
+
}
|
|
237
|
+
blockLines = null;
|
|
238
|
+
blockIsFeatures = false;
|
|
239
|
+
};
|
|
240
|
+
for (const line of lines) {
|
|
241
|
+
const trimmedLine = line.trim();
|
|
242
|
+
if (isTomlTableBoundary(trimmedLine)) {
|
|
243
|
+
flushBlock();
|
|
244
|
+
blockLines = [line];
|
|
245
|
+
blockIsFeatures = trimmedLine === "[features]";
|
|
246
|
+
if (blockIsFeatures)
|
|
247
|
+
sawFeatures = true;
|
|
248
|
+
continue;
|
|
249
|
+
}
|
|
250
|
+
if (!blockLines) {
|
|
251
|
+
output.push(line);
|
|
252
|
+
continue;
|
|
253
|
+
}
|
|
254
|
+
blockLines.push(line);
|
|
255
|
+
}
|
|
256
|
+
flushBlock();
|
|
257
|
+
if (!sawFeatures) {
|
|
258
|
+
const base = output.join(newline).replace(/\s+$/u, "");
|
|
259
|
+
const next = base.length > 0
|
|
260
|
+
? `${base}${newline}${newline}[features]${newline}plugins = false${newline}`
|
|
261
|
+
: `[features]${newline}plugins = false${newline}`;
|
|
262
|
+
return {
|
|
263
|
+
content: next,
|
|
264
|
+
changed: true,
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
return {
|
|
268
|
+
content: output.join(newline),
|
|
269
|
+
changed,
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
function ensureCodexBundledSkillsDisabled(content) {
|
|
273
|
+
const newline = content.includes("\r\n") ? "\r\n" : "\n";
|
|
274
|
+
const lines = content.split(/\r?\n/);
|
|
275
|
+
const output = [];
|
|
276
|
+
let blockLines = null;
|
|
277
|
+
let blockIsBundledSkills = false;
|
|
278
|
+
let sawBundledSkills = false;
|
|
279
|
+
let changed = false;
|
|
280
|
+
const flushBlock = () => {
|
|
281
|
+
if (!blockLines)
|
|
282
|
+
return;
|
|
283
|
+
if (blockIsBundledSkills) {
|
|
284
|
+
const normalized = normalizeCodexBundledSkillsBlock(blockLines);
|
|
285
|
+
output.push(...normalized.lines);
|
|
286
|
+
if (normalized.changed)
|
|
287
|
+
changed = true;
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
output.push(...blockLines);
|
|
291
|
+
}
|
|
292
|
+
blockLines = null;
|
|
293
|
+
blockIsBundledSkills = false;
|
|
294
|
+
};
|
|
295
|
+
for (const line of lines) {
|
|
296
|
+
const trimmedLine = line.trim();
|
|
297
|
+
if (isTomlTableBoundary(trimmedLine)) {
|
|
298
|
+
flushBlock();
|
|
299
|
+
blockLines = [line];
|
|
300
|
+
blockIsBundledSkills = trimmedLine === "[skills.bundled]";
|
|
301
|
+
if (blockIsBundledSkills)
|
|
302
|
+
sawBundledSkills = true;
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
if (!blockLines) {
|
|
306
|
+
output.push(line);
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
blockLines.push(line);
|
|
310
|
+
}
|
|
311
|
+
flushBlock();
|
|
312
|
+
if (!sawBundledSkills) {
|
|
313
|
+
const base = output.join(newline).replace(/\s+$/u, "");
|
|
314
|
+
const next = base.length > 0
|
|
315
|
+
? `${base}${newline}${newline}[skills.bundled]${newline}enabled = false${newline}`
|
|
316
|
+
: `[skills.bundled]${newline}enabled = false${newline}`;
|
|
317
|
+
return {
|
|
318
|
+
content: next,
|
|
319
|
+
changed: true,
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
return {
|
|
323
|
+
content: output.join(newline),
|
|
324
|
+
changed,
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
async function syncManagedCodexConfigToml(target, source, onLog) {
|
|
328
|
+
const existingTarget = await fs.lstat(target).catch(() => null);
|
|
329
|
+
const sourceContent = await fs.readFile(source, "utf8").catch(() => "");
|
|
330
|
+
const rawContent = existingTarget ? await fs.readFile(target, "utf8") : sourceContent;
|
|
331
|
+
const withoutLegacyMarkers = rawContent
|
|
332
|
+
.split(/\r?\n/)
|
|
333
|
+
.filter((line) => !LEGACY_RUDDER_MANAGED_SKILLS_MARKERS.has(line.trim()))
|
|
334
|
+
.join(rawContent.includes("\r\n") ? "\r\n" : "\n");
|
|
335
|
+
const sanitized = sanitizeCodexConfigToml(withoutLegacyMarkers);
|
|
336
|
+
const bundledSkillsDisabled = ensureCodexBundledSkillsDisabled(sanitized.content);
|
|
337
|
+
const pluginsDisabled = ensureCodexPluginsDisabled(bundledSkillsDisabled.content);
|
|
338
|
+
const nextContent = pluginsDisabled.content.replace(/\s+$/u, "").length > 0
|
|
339
|
+
? `${pluginsDisabled.content.replace(/\s+$/u, "")}\n`
|
|
340
|
+
: "";
|
|
341
|
+
if (!existingTarget || nextContent !== rawContent) {
|
|
342
|
+
await ensureParentDir(target);
|
|
343
|
+
await fs.writeFile(target, nextContent, "utf8");
|
|
344
|
+
}
|
|
345
|
+
if (sanitized.removedSkillEntries > 0) {
|
|
346
|
+
await onLog("stdout", `[rudder] Removed ${sanitized.removedSkillEntries} inherited Codex [[skills.config]] entr${sanitized.removedSkillEntries === 1 ? "y" : "ies"} from ${target}\n`);
|
|
347
|
+
}
|
|
348
|
+
if (sanitized.removedManagedTables > 0) {
|
|
349
|
+
await onLog("stdout", `[rudder] Removed ${sanitized.removedManagedTables} inherited Codex plugin/MCP configuration tabl${sanitized.removedManagedTables === 1 ? "e" : "es"} from ${target}\n`);
|
|
350
|
+
}
|
|
351
|
+
if (pluginsDisabled.changed) {
|
|
352
|
+
await onLog("stdout", `[rudder] Forced Codex plugins feature off in ${target} to prevent adapter plugin leakage.\n`);
|
|
353
|
+
}
|
|
354
|
+
if (bundledSkillsDisabled.changed) {
|
|
355
|
+
await onLog("stdout", `[rudder] Forced Codex bundled skills off in ${target} to prevent platform default system skills from loading.\n`);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
async function pruneManagedCodexPluginSurface(codexHome, onLog) {
|
|
359
|
+
let removedEntries = 0;
|
|
360
|
+
for (const relativeTarget of MANAGED_CODEX_HOME_PRUNE_TARGETS) {
|
|
361
|
+
const absoluteTarget = path.join(codexHome, relativeTarget);
|
|
362
|
+
if (!(await pathExists(absoluteTarget)))
|
|
363
|
+
continue;
|
|
364
|
+
await fs.rm(absoluteTarget, { recursive: true, force: true });
|
|
365
|
+
removedEntries += 1;
|
|
366
|
+
}
|
|
367
|
+
const tmpDir = path.join(codexHome, ".tmp");
|
|
368
|
+
const tmpEntries = await fs.readdir(tmpDir, { withFileTypes: true }).catch(() => []);
|
|
369
|
+
for (const entry of tmpEntries) {
|
|
370
|
+
if (!entry.name.startsWith("plugins-clone-"))
|
|
371
|
+
continue;
|
|
372
|
+
await fs.rm(path.join(tmpDir, entry.name), { recursive: true, force: true });
|
|
373
|
+
removedEntries += 1;
|
|
374
|
+
}
|
|
375
|
+
if (removedEntries > 0) {
|
|
376
|
+
await onLog("stdout", `[rudder] Pruned ${removedEntries} inherited Codex plugin cache entr${removedEntries === 1 ? "y" : "ies"} from ${codexHome}\n`);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
export async function prepareManagedCodexHome(env, onLog, orgId, agentId) {
|
|
380
|
+
const targetHome = resolveManagedCodexHomeDir(env, orgId, agentId);
|
|
381
|
+
const sourceHome = resolveSharedCodexHomeDir(env);
|
|
382
|
+
if (path.resolve(sourceHome) === path.resolve(targetHome))
|
|
383
|
+
return targetHome;
|
|
384
|
+
await withCodexHomeMutationLock(targetHome, async () => {
|
|
385
|
+
await fs.mkdir(targetHome, { recursive: true });
|
|
386
|
+
await pruneManagedCodexPluginSurface(targetHome, onLog);
|
|
387
|
+
for (const name of SYMLINKED_SHARED_FILES) {
|
|
388
|
+
const source = path.join(sourceHome, name);
|
|
389
|
+
if (!(await pathExists(source)))
|
|
390
|
+
continue;
|
|
391
|
+
await ensureSymlink(path.join(targetHome, name), source);
|
|
392
|
+
}
|
|
393
|
+
for (const name of COPIED_SHARED_FILES) {
|
|
394
|
+
const source = path.join(sourceHome, name);
|
|
395
|
+
if (!(await pathExists(source)))
|
|
396
|
+
continue;
|
|
397
|
+
if (name === "config.toml") {
|
|
398
|
+
await syncManagedCodexConfigToml(path.join(targetHome, name), source, onLog);
|
|
399
|
+
continue;
|
|
400
|
+
}
|
|
401
|
+
await ensureCopiedFile(path.join(targetHome, name), source);
|
|
402
|
+
}
|
|
403
|
+
});
|
|
404
|
+
await onLog("stdout", `[rudder] Using ${isWorktreeMode(env) ? "worktree-isolated" : "Rudder-managed"} Codex home "${targetHome}" (seeded from "${sourceHome}").\n`);
|
|
405
|
+
return targetHome;
|
|
406
|
+
}
|
|
407
|
+
async function ensureManagedCodexSkillLink(target, source) {
|
|
408
|
+
const existing = await fs.lstat(target).catch(() => null);
|
|
409
|
+
if (existing?.isSymbolicLink()) {
|
|
410
|
+
const linkedPath = await fs.readlink(target).catch(() => null);
|
|
411
|
+
if (linkedPath) {
|
|
412
|
+
const resolvedLinkedPath = path.resolve(path.dirname(target), linkedPath);
|
|
413
|
+
if (resolvedLinkedPath === source)
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
if (existing) {
|
|
418
|
+
await fs.rm(target, { recursive: true, force: true });
|
|
419
|
+
}
|
|
420
|
+
await ensureParentDir(target);
|
|
421
|
+
await fs.symlink(source, target);
|
|
422
|
+
}
|
|
423
|
+
async function syncManagedCodexSkillsHome(codexHome, skillSources, onLog) {
|
|
424
|
+
const skillsHome = path.join(codexHome, "skills");
|
|
425
|
+
const desiredSkillSources = Array.from(new Set(skillSources
|
|
426
|
+
.map((value) => value.trim())
|
|
427
|
+
.filter(Boolean)
|
|
428
|
+
.map((value) => normalizeCodexSkillSourceDir(value)))).sort((left, right) => left.localeCompare(right));
|
|
429
|
+
const desiredByRuntimeName = new Map(desiredSkillSources.map((sourceDir) => [path.basename(sourceDir), sourceDir]));
|
|
430
|
+
await fs.mkdir(skillsHome, { recursive: true });
|
|
431
|
+
const existingEntries = await fs.readdir(skillsHome, { withFileTypes: true }).catch(() => []);
|
|
432
|
+
let prunedEntries = 0;
|
|
433
|
+
for (const entry of existingEntries) {
|
|
434
|
+
if (desiredByRuntimeName.has(entry.name))
|
|
435
|
+
continue;
|
|
436
|
+
await fs.rm(path.join(skillsHome, entry.name), { recursive: true, force: true });
|
|
437
|
+
prunedEntries += 1;
|
|
438
|
+
}
|
|
439
|
+
for (const [runtimeName, sourceDir] of desiredByRuntimeName.entries()) {
|
|
440
|
+
await ensureManagedCodexSkillLink(path.join(skillsHome, runtimeName), sourceDir);
|
|
441
|
+
}
|
|
442
|
+
if (prunedEntries > 0) {
|
|
443
|
+
await onLog("stdout", `[rudder] Pruned ${prunedEntries} stale managed Codex skill entr${prunedEntries === 1 ? "y" : "ies"} from ${skillsHome}\n`);
|
|
444
|
+
}
|
|
445
|
+
await onLog("stdout", `[rudder] Realized ${desiredByRuntimeName.size} Rudder-managed Codex skill entr${desiredByRuntimeName.size === 1 ? "y" : "ies"} in ${skillsHome}\n`);
|
|
446
|
+
}
|
|
447
|
+
export async function realizeManagedCodexSkillEntries(env, codexHome, skillSources, onLog) {
|
|
448
|
+
await withCodexHomeMutationLock(codexHome, async () => {
|
|
449
|
+
const sourceHome = resolveSharedCodexHomeDir(env);
|
|
450
|
+
const sourceConfig = path.join(sourceHome, "config.toml");
|
|
451
|
+
const targetConfig = path.join(codexHome, "config.toml");
|
|
452
|
+
await syncManagedCodexConfigToml(targetConfig, sourceConfig, onLog);
|
|
453
|
+
await syncManagedCodexSkillsHome(codexHome, skillSources, onLog);
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
//# sourceMappingURL=codex-home.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-home.js","sourceRoot":"","sources":["../../src/server/codex-home.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/server/execute.ts"],"names":[],"mappings":"AAGA,OAAO,EAA+B,KAAK,4BAA4B,EAAE,KAAK,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAkHjJ,wBAAsB,OAAO,CAAC,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAqerG"}
|