@swmansion/argent 0.5.2 → 0.6.0-next.1

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.
Files changed (49) hide show
  1. package/README.md +21 -15
  2. package/bin/ax-service +0 -0
  3. package/bin/simulator-server +0 -0
  4. package/dist/bundled-paths.d.ts +2 -0
  5. package/dist/bundled-paths.js +9 -0
  6. package/dist/bundled-paths.js.map +1 -0
  7. package/dist/cli-cmds.mjs +729 -0
  8. package/dist/cli.d.ts +15 -6
  9. package/dist/cli.js +59 -12
  10. package/dist/cli.js.map +1 -1
  11. package/dist/installer.mjs +14730 -0
  12. package/dist/mcp-server.mjs +14352 -0
  13. package/dist/preview-ui/index.html +799 -0
  14. package/dist/tool-server.cjs +4243 -1176
  15. package/dylibs/libArgentInjectionBootstrap.dylib +0 -0
  16. package/dylibs/libKeyboardPatch.dylib +0 -0
  17. package/dylibs/libNativeDevtoolsIos.dylib +0 -0
  18. package/package.json +16 -10
  19. package/skills/argent-react-native-profiler/SKILL.md +16 -12
  20. package/dist/auto-screenshot.d.ts +0 -22
  21. package/dist/auto-screenshot.js +0 -79
  22. package/dist/auto-screenshot.js.map +0 -1
  23. package/dist/cli/constants.d.ts +0 -6
  24. package/dist/cli/constants.js +0 -12
  25. package/dist/cli/constants.js.map +0 -1
  26. package/dist/cli/init.d.ts +0 -2
  27. package/dist/cli/init.js +0 -476
  28. package/dist/cli/init.js.map +0 -1
  29. package/dist/cli/mcp-configs.d.ts +0 -38
  30. package/dist/cli/mcp-configs.js +0 -724
  31. package/dist/cli/mcp-configs.js.map +0 -1
  32. package/dist/cli/uninstall.d.ts +0 -13
  33. package/dist/cli/uninstall.js +0 -389
  34. package/dist/cli/uninstall.js.map +0 -1
  35. package/dist/cli/update.d.ts +0 -1
  36. package/dist/cli/update.js +0 -126
  37. package/dist/cli/update.js.map +0 -1
  38. package/dist/cli/utils.d.ts +0 -27
  39. package/dist/cli/utils.js +0 -158
  40. package/dist/cli/utils.js.map +0 -1
  41. package/dist/content.d.ts +0 -31
  42. package/dist/content.js +0 -59
  43. package/dist/content.js.map +0 -1
  44. package/dist/launcher.d.ts +0 -8
  45. package/dist/launcher.js +0 -183
  46. package/dist/launcher.js.map +0 -1
  47. package/dist/mcp-server.d.ts +0 -1
  48. package/dist/mcp-server.js +0 -228
  49. package/dist/mcp-server.js.map +0 -1
package/dist/cli/init.js DELETED
@@ -1,476 +0,0 @@
1
- import * as p from "@clack/prompts";
2
- import pc from "picocolors";
3
- import { existsSync } from "node:fs";
4
- import { resolve } from "node:path";
5
- import { execSync, spawn } from "node:child_process";
6
- import { detectAdapters, ALL_ADAPTERS, getMcpEntry, copyRulesAndAgents, } from "./mcp-configs.js";
7
- import { SKILLS_DIR, RULES_DIR, AGENTS_DIR, getInstalledVersion, getLatestVersion, detectPackageManager, globalInstallCommand, formatShellCommand, } from "./utils.js";
8
- import { PACKAGE_NAME, MCP_BINARY_NAME } from "./constants.js";
9
- // Path segments used by temp package runners (npx, pnpm dlx, bunx, yarn dlx).
10
- // When invoked via one of these, the runner prepends its cache .bin/ dir to PATH,
11
- // so `which argent` succeeds even though argent is not permanently installed globally.
12
- const TEMP_RUNNER_MARKERS = [
13
- "_npx",
14
- "/dlx-",
15
- "\\dlx-",
16
- "bun/install/cache",
17
- ".bun\\install\\cache",
18
- ];
19
- function isGloballyInstalled() {
20
- try {
21
- const cmd = process.platform === "win32" ? "where" : "which";
22
- const binaryPath = execSync(`${cmd} ${MCP_BINARY_NAME}`, {
23
- encoding: "utf8",
24
- stdio: ["ignore", "pipe", "ignore"],
25
- }).trim();
26
- return !TEMP_RUNNER_MARKERS.some((marker) => binaryPath.includes(marker));
27
- }
28
- catch {
29
- return false;
30
- }
31
- }
32
- function runShellCommand(cmd) {
33
- return new Promise((resolve, reject) => {
34
- const isWin = process.platform === "win32";
35
- const child = spawn(isWin ? `${cmd.bin}.cmd` : cmd.bin, cmd.args, {
36
- stdio: ["ignore", "pipe", "pipe"],
37
- shell: isWin,
38
- });
39
- let stderr = "";
40
- child.stderr?.on("data", (chunk) => {
41
- stderr += chunk.toString();
42
- });
43
- child.on("close", (code) => {
44
- if (code === 0)
45
- resolve();
46
- else
47
- reject(new Error(stderr.trim() || `Command exited with code ${code}`));
48
- });
49
- child.on("error", reject);
50
- });
51
- }
52
- function extractFlag(args, flag) {
53
- const idx = args.indexOf(flag);
54
- if (idx === -1 || idx + 1 >= args.length)
55
- return null;
56
- return args[idx + 1];
57
- }
58
- export async function init(args) {
59
- const nonInteractive = args.includes("--yes") || args.includes("-y");
60
- const fromTar = extractFlag(args, "--from");
61
- printBanner();
62
- p.intro(pc.bgCyan(pc.black(" argent init ")));
63
- let version = getInstalledVersion() ?? "unknown";
64
- p.log.info(`${pc.dim("Package:")} ${PACKAGE_NAME}@${version}`);
65
- // ── Step 0: Install / Update Check ──────────────────────────────────────────
66
- const globallyInstalled = isGloballyInstalled();
67
- if (!globallyInstalled) {
68
- if (!nonInteractive) {
69
- const installChoice = await p.select({
70
- message: "Argent is not installed globally. Would you like to install it?",
71
- options: [
72
- {
73
- value: "global",
74
- label: "Install globally",
75
- hint: "Makes the argent command available everywhere",
76
- },
77
- {
78
- value: "cancel",
79
- label: "Cancel installation",
80
- },
81
- ],
82
- });
83
- if (p.isCancel(installChoice) || installChoice === "cancel") {
84
- p.cancel("Installation cancelled.");
85
- process.exit(0);
86
- }
87
- }
88
- const pm = detectPackageManager();
89
- const installTarget = fromTar ?? PACKAGE_NAME;
90
- const cmd = globalInstallCommand(pm, installTarget);
91
- const cmdStr = formatShellCommand(cmd);
92
- const spinner = p.spinner();
93
- spinner.start(`Installing ${PACKAGE_NAME} globally...`);
94
- try {
95
- await runShellCommand(cmd);
96
- spinner.stop(pc.green("Installed globally."));
97
- version = getInstalledVersion() ?? version;
98
- }
99
- catch (err) {
100
- spinner.stop(pc.red("Installation failed."));
101
- p.log.error(`${err}`);
102
- p.log.info(`Install Argent manually with: ${pc.cyan(cmdStr)}`);
103
- process.exit(1);
104
- }
105
- }
106
- else if (fromTar) {
107
- // --from flag: reinstall from the specified tarball/path
108
- const pm = detectPackageManager();
109
- const cmd = globalInstallCommand(pm, fromTar);
110
- const cmdStr = formatShellCommand(cmd);
111
- const spinner = p.spinner();
112
- spinner.start(`Installing from ${fromTar}...`);
113
- try {
114
- await runShellCommand(cmd);
115
- spinner.stop(pc.green("Installed from tarball."));
116
- version = getInstalledVersion() ?? version;
117
- }
118
- catch (err) {
119
- spinner.stop(pc.red("Installation failed."));
120
- p.log.error(`${err}`);
121
- p.log.info(`Install manually with: ${pc.cyan(cmdStr)}`);
122
- process.exit(1);
123
- }
124
- }
125
- else {
126
- let latest = null;
127
- const spinner = p.spinner();
128
- spinner.start("Checking for updates...");
129
- try {
130
- latest = getLatestVersion();
131
- }
132
- catch {
133
- // Registry unreachable - silently skip
134
- }
135
- spinner.stop(pc.dim("Version check complete."));
136
- if (latest && latest !== version) {
137
- if (!nonInteractive) {
138
- const updateChoice = await p.select({
139
- message: `Update available: ${pc.yellow(`v${version}`)} → ${pc.green(`v${latest}`)}`,
140
- options: [
141
- {
142
- value: "update",
143
- label: `Update to v${latest} (recommended)`,
144
- },
145
- {
146
- value: "skip",
147
- label: "Skip",
148
- hint: "Continue with current version",
149
- },
150
- ],
151
- });
152
- if (!p.isCancel(updateChoice) && updateChoice === "update") {
153
- const pm = detectPackageManager();
154
- const cmd = globalInstallCommand(pm, `${PACKAGE_NAME}@${latest}`);
155
- const cmdStr = formatShellCommand(cmd);
156
- const updateSpinner = p.spinner();
157
- updateSpinner.start(`Updating to v${latest}...`);
158
- try {
159
- await runShellCommand(cmd);
160
- updateSpinner.stop(pc.green(`Updated to v${latest}.`));
161
- version = getInstalledVersion() ?? version;
162
- }
163
- catch (err) {
164
- updateSpinner.stop(pc.red("Update failed."));
165
- p.log.error(`${err}`);
166
- p.log.info(`You can update manually later: ${pc.cyan(cmdStr)}`);
167
- }
168
- }
169
- }
170
- }
171
- }
172
- // ── Step 1: MCP Server Configuration ────────────────────────────────────────
173
- p.log.step(pc.bold("Step 1: MCP Server Configuration"));
174
- const detected = detectAdapters();
175
- const detectedNames = detected.map((a) => a.name);
176
- let selectedAdapters;
177
- if (nonInteractive) {
178
- selectedAdapters = detected.length > 0 ? detected : ALL_ADAPTERS;
179
- }
180
- else {
181
- const choices = ALL_ADAPTERS.map((a) => ({
182
- value: a,
183
- label: a.name,
184
- hint: detectedNames.includes(a.name) ? "detected" : undefined,
185
- }));
186
- p.log.message(pc.dim(" Use arrow keys to move, space to toggle, enter to confirm."));
187
- const selected = await p.multiselect({
188
- message: "Which editors should Argent be configured for?",
189
- options: choices,
190
- initialValues: detected,
191
- required: true,
192
- });
193
- if (p.isCancel(selected)) {
194
- p.cancel("Initialization cancelled.");
195
- process.exit(0);
196
- }
197
- selectedAdapters = selected;
198
- }
199
- p.log.info(`Editors: ${selectedAdapters.map((a) => pc.cyan(a.name)).join(", ")}`);
200
- // Ask scope: global, local, or custom path
201
- let scope;
202
- let customRoot;
203
- if (nonInteractive) {
204
- scope = "local";
205
- }
206
- else {
207
- p.log.message(pc.dim(" Use arrow keys to move, enter to confirm."));
208
- const scopeChoice = await p.select({
209
- message: "Install MCP server globally or locally?",
210
- options: [
211
- {
212
- value: "local",
213
- label: "Local",
214
- hint: "Current project only - .cursor/mcp.json, .mcp.json, ...",
215
- },
216
- {
217
- value: "global",
218
- label: "Global",
219
- hint: "Available across all projects - ~/.*/mcp.json",
220
- },
221
- {
222
- value: "custom",
223
- label: "Specify installation directory",
224
- hint: "Specify a directory to use as the project root",
225
- },
226
- ],
227
- });
228
- if (p.isCancel(scopeChoice)) {
229
- p.cancel("Initialization cancelled.");
230
- process.exit(0);
231
- }
232
- scope = scopeChoice;
233
- if (scope === "custom") {
234
- const customPathInput = await p.text({
235
- message: "Enter the path to use as the project root for MCP config:",
236
- placeholder: process.cwd(),
237
- validate(value) {
238
- if (!value?.trim())
239
- return "Path cannot be empty.";
240
- const resolved = resolve(value.trim());
241
- if (!existsSync(resolved))
242
- return `Path does not exist: ${resolved}. Please verify and enter a valid path.`;
243
- },
244
- });
245
- if (p.isCancel(customPathInput)) {
246
- p.cancel("Initialization cancelled.");
247
- process.exit(0);
248
- }
249
- customRoot = resolve(customPathInput.trim());
250
- }
251
- }
252
- const projectRoot = process.cwd();
253
- const effectiveRoot = scope === "custom" ? customRoot : projectRoot;
254
- const normalizedScope = scope === "global" ? "global" : "local";
255
- const mcpEntry = getMcpEntry();
256
- const mcpResults = [];
257
- for (const adapter of selectedAdapters) {
258
- const configPath = scope === "global" ? adapter.globalPath() : adapter.projectPath(effectiveRoot);
259
- if (!configPath) {
260
- if (scope === "global" && adapter.projectPath(projectRoot)) {
261
- const fallback = adapter.projectPath(projectRoot);
262
- try {
263
- adapter.write(fallback, mcpEntry);
264
- mcpResults.push(`${pc.green("+")} ${adapter.name} ${pc.dim(`(local fallback: ${fallback})`)}`);
265
- }
266
- catch (err) {
267
- mcpResults.push(`${pc.red("x")} ${adapter.name}: ${pc.dim(String(err))}`);
268
- }
269
- }
270
- else {
271
- mcpResults.push(`${pc.yellow("-")} ${adapter.name} ${pc.dim("(no config path for this scope)")}`);
272
- }
273
- continue;
274
- }
275
- try {
276
- adapter.write(configPath, mcpEntry);
277
- mcpResults.push(`${pc.green("+")} ${adapter.name} ${pc.dim(configPath)}`);
278
- }
279
- catch (err) {
280
- mcpResults.push(`${pc.red("x")} ${adapter.name}: ${pc.dim(String(err))}`);
281
- }
282
- }
283
- p.note(mcpResults.join("\n"), "MCP Configuration");
284
- // ── Tool Auto-Approval ────────────────────────────────────────────────────
285
- const adaptersWithAllowlist = selectedAdapters.filter((a) => a.addAllowlist);
286
- const adaptersWithoutAllowlist = selectedAdapters.filter((a) => !a.addAllowlist);
287
- let allowlistEnabled = false;
288
- if (adaptersWithAllowlist.length > 0) {
289
- p.log.info(`By default, editors ask for confirmation before running each MCP tool.\n` +
290
- ` Adding Argent to the auto-approve allowlist lets tools run without\n` +
291
- ` repeated prompts. This is ${pc.cyan("recommended")} for a smooth experience.`);
292
- if (nonInteractive) {
293
- allowlistEnabled = true;
294
- }
295
- else {
296
- p.log.message(pc.dim(" Press y for yes, n for no, enter to confirm."));
297
- const allowlistChoice = await p.confirm({
298
- message: "Add Argent tools to editor auto-approve lists? - recommended",
299
- initialValue: true,
300
- });
301
- if (p.isCancel(allowlistChoice)) {
302
- p.cancel("Initialization cancelled.");
303
- process.exit(0);
304
- }
305
- allowlistEnabled = allowlistChoice;
306
- }
307
- }
308
- if (allowlistEnabled) {
309
- const allowlistResults = [];
310
- for (const adapter of adaptersWithAllowlist) {
311
- const hasPath = normalizedScope === "global" ? adapter.globalPath() : adapter.projectPath(effectiveRoot);
312
- if (!hasPath) {
313
- allowlistResults.push(`${pc.yellow("-")} ${adapter.name} ${pc.dim("(no config for this scope)")}`);
314
- continue;
315
- }
316
- try {
317
- adapter.addAllowlist(effectiveRoot, normalizedScope);
318
- allowlistResults.push(`${pc.green("+")} ${adapter.name}`);
319
- }
320
- catch (err) {
321
- allowlistResults.push(`${pc.red("x")} ${adapter.name}: ${pc.dim(String(err))}`);
322
- }
323
- }
324
- for (const adapter of adaptersWithoutAllowlist) {
325
- allowlistResults.push(`${pc.yellow("-")} ${adapter.name} ${pc.dim("(no auto-approve API - configure manually)")}`);
326
- }
327
- p.note(allowlistResults.join("\n"), "Tool Auto-Approval");
328
- }
329
- // ── Step 2: Skills Installation ─────────────────────────────────────────────
330
- p.log.step(pc.bold("Step 2: Skills Installation"));
331
- p.log.warn(pc.yellow("Skills installation is required for Argent to function properly."));
332
- let skillsMethod;
333
- if (nonInteractive) {
334
- skillsMethod = "default";
335
- }
336
- else {
337
- p.log.message(pc.dim(" Use arrow keys to move, enter to confirm."));
338
- const choice = await p.select({
339
- message: "How would you like to install skills?",
340
- options: [
341
- {
342
- value: "default",
343
- label: "Automatic",
344
- hint: "Installs all skills automatically with npx skills",
345
- },
346
- {
347
- value: "interactive",
348
- label: "Interactive",
349
- hint: "Full npx skills TUI - choose skills, agents, and method",
350
- },
351
- {
352
- value: "manual",
353
- label: "Manual",
354
- hint: "Print instructions for manual installation",
355
- },
356
- ],
357
- });
358
- if (p.isCancel(choice)) {
359
- p.cancel("Initialization cancelled.");
360
- process.exit(0);
361
- }
362
- skillsMethod = choice;
363
- }
364
- if (skillsMethod === "manual") {
365
- p.note([
366
- `Skills are bundled at:`,
367
- ` ${pc.cyan(SKILLS_DIR)}`,
368
- ``,
369
- `To install manually, copy them to your editor's skills directory:`,
370
- ``,
371
- ` ${pc.dim("# Claude Code")}`,
372
- ` cp -r ${SKILLS_DIR}/* ${scope === "global" ? "~/.claude/skills/" : `${scope === "custom" ? customRoot : "."}/.claude/skills/`}`,
373
- ``,
374
- ` ${pc.dim("# Cursor")}`,
375
- ` cp -r ${SKILLS_DIR}/* ${scope === "global" ? "~/.cursor/skills/" : `${scope === "custom" ? customRoot : "."}/.cursor/skills/`}`,
376
- ``,
377
- ` ${pc.dim("# Or use npx skills directly:")}`,
378
- ` npx skills add ${SKILLS_DIR}`,
379
- ].join("\n"), "Manual Skills Installation");
380
- }
381
- else {
382
- const skillsArgs = ["skills", "add", SKILLS_DIR];
383
- if (scope === "global") {
384
- skillsArgs.push("-g");
385
- }
386
- if (skillsMethod === "default") {
387
- skillsArgs.push("--skill", "*", "-y");
388
- }
389
- p.log.info(`Running: ${pc.dim("npx")} ${pc.cyan(skillsArgs.join(" "))}`);
390
- const spinner = p.spinner();
391
- if (skillsMethod === "default") {
392
- spinner.start("Installing skills...");
393
- }
394
- try {
395
- const skillsCwd = scope === "custom" ? customRoot : undefined;
396
- await runNpxSkills(skillsArgs, skillsMethod === "interactive", skillsCwd);
397
- if (skillsMethod === "default") {
398
- spinner.stop("Skills installed.");
399
- }
400
- }
401
- catch (err) {
402
- if (skillsMethod === "default") {
403
- spinner.stop(pc.red("Skills installation failed."));
404
- }
405
- p.log.error(`Failed to run npx skills: ${err}`);
406
- p.log.info(`You can install skills manually:\n npx ${skillsArgs.join(" ")}`);
407
- }
408
- }
409
- // ── Step 3: Rules and Agents ────────────────────────────────────────────────
410
- p.log.step(pc.bold("Step 3: Rules & Agents"));
411
- const copyResults = copyRulesAndAgents(selectedAdapters, effectiveRoot, normalizedScope, RULES_DIR, AGENTS_DIR);
412
- if (copyResults.length > 0) {
413
- p.note(copyResults.join("\n"), "Rules & Agents");
414
- }
415
- else {
416
- p.log.info(pc.dim("No rules or agents to copy for selected editors."));
417
- }
418
- // ── Summary ─────────────────────────────────────────────────────────────────
419
- const summaryLines = [
420
- `${pc.green("MCP server")} configured for ${selectedAdapters.map((a) => a.name).join(", ")} (${scope})`,
421
- `${pc.green("Auto-approve")} ${allowlistEnabled ? "enabled" : "skipped"}`,
422
- `${pc.green("Skills")} ${skillsMethod === "manual" ? "instructions printed" : "installed"}`,
423
- `${pc.green("Rules & agents")} ${copyResults.length > 0 ? "copied" : "n/a"}`,
424
- ];
425
- p.note(summaryLines.join("\n"), "Summary");
426
- p.outro(pc.green("Argent is ready!"));
427
- }
428
- export function printBanner() {
429
- const lines = [
430
- " █████╗ ██████╗ ██████╗ ███████╗███╗ ██╗████████╗",
431
- "██╔══██╗██╔══██╗██╔════╝ ██╔════╝████╗ ██║╚══██╔══╝",
432
- "███████║██████╔╝██║ ███╗█████╗ ██╔██╗ ██║ ██║",
433
- "██╔══██║██╔══██╗██║ ██║██╔══╝ ██║╚██╗██║ ██║",
434
- "██║ ██║██║ ██║╚██████╔╝███████╗██║ ╚████║ ██║",
435
- "╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝",
436
- ];
437
- const width = Math.max(...lines.map((l) => l.length));
438
- console.log();
439
- for (const line of lines) {
440
- console.log(line);
441
- }
442
- const attribution = "by Software Mansion";
443
- console.log(" ".repeat(width - attribution.length) + pc.dim(attribution));
444
- console.log();
445
- }
446
- function runNpxSkills(args, interactive, cwd) {
447
- return new Promise((resolve, reject) => {
448
- const npxCmd = process.platform === "win32" ? "npx.cmd" : "npx";
449
- const child = spawn(npxCmd, args, {
450
- stdio: interactive ? "inherit" : ["ignore", "pipe", "pipe"],
451
- shell: process.platform === "win32",
452
- ...(cwd ? { cwd } : {}),
453
- });
454
- let stdout = "";
455
- let stderr = "";
456
- if (!interactive) {
457
- child.stdout?.on("data", (chunk) => {
458
- stdout += chunk.toString();
459
- });
460
- child.stderr?.on("data", (chunk) => {
461
- stderr += chunk.toString();
462
- });
463
- }
464
- child.on("close", (code) => {
465
- if (code === 0) {
466
- resolve();
467
- }
468
- else {
469
- const output = [stderr, stdout].filter(Boolean).join("\n").trim();
470
- reject(new Error(output || `npx skills exited with code ${code}`));
471
- }
472
- });
473
- child.on("error", reject);
474
- });
475
- }
476
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- export interface McpServerEntry {
2
- command: string;
3
- args: string[];
4
- env: Record<string, string>;
5
- }
6
- export interface McpConfigAdapter {
7
- name: string;
8
- detect(): boolean;
9
- projectPath(root: string): string | null;
10
- globalPath(): string | null;
11
- write(configPath: string, entry: McpServerEntry): void;
12
- remove(configPath: string): boolean;
13
- addAllowlist?(root: string, scope: "local" | "global"): void;
14
- removeAllowlist?(root: string, scope: "local" | "global"): void;
15
- }
16
- export declare function getMcpEntry(): McpServerEntry;
17
- export declare const ALL_ADAPTERS: McpConfigAdapter[];
18
- export declare function detectAdapters(): McpConfigAdapter[];
19
- export declare function getAdapterByName(name: string): McpConfigAdapter | undefined;
20
- export declare function addClaudePermission(root: string, scope: "local" | "global"): void;
21
- export declare function removeClaudePermission(root: string, scope: "local" | "global"): void;
22
- export type ManagedContentScope = "local" | "global";
23
- export interface ManagedContentTarget {
24
- editorName: string;
25
- targetPath: string;
26
- label: string;
27
- }
28
- export interface ManagedContentTargets {
29
- skillTargets: ManagedContentTarget[];
30
- ruleTargets: ManagedContentTarget[];
31
- agentTargets: ManagedContentTarget[];
32
- codexConfigTargets: ManagedContentTarget[];
33
- skillsLockTargets: ManagedContentTarget[];
34
- }
35
- export declare function getManagedContentTargets(adapters: McpConfigAdapter[], root: string, scope: ManagedContentScope): ManagedContentTargets;
36
- export declare function injectCodexRules(configPath: string, rulesDir: string): string | null;
37
- export declare function removeCodexRules(configPath: string): boolean;
38
- export declare function copyRulesAndAgents(adapters: McpConfigAdapter[], root: string, scope: ManagedContentScope, rulesDir: string, agentsDir: string): string[];