@erenari/supercodex 0.2.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 +228 -0
- package/dist/backup.d.ts +6 -0
- package/dist/backup.js +37 -0
- package/dist/backup.js.map +1 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.js +63 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/aliases.d.ts +2 -0
- package/dist/commands/aliases.js +141 -0
- package/dist/commands/aliases.js.map +1 -0
- package/dist/commands/catalog.d.ts +3 -0
- package/dist/commands/catalog.js +103 -0
- package/dist/commands/catalog.js.map +1 -0
- package/dist/commands/core.d.ts +2 -0
- package/dist/commands/core.js +111 -0
- package/dist/commands/core.js.map +1 -0
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.js +72 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/index.d.ts +9 -0
- package/dist/commands/index.js +26 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/mcp.d.ts +2 -0
- package/dist/commands/mcp.js +128 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/mode.d.ts +2 -0
- package/dist/commands/mode.js +73 -0
- package/dist/commands/mode.js.map +1 -0
- package/dist/commands/persona.d.ts +2 -0
- package/dist/commands/persona.js +70 -0
- package/dist/commands/persona.js.map +1 -0
- package/dist/commands/run.d.ts +2 -0
- package/dist/commands/run.js +50 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/utils.d.ts +4 -0
- package/dist/commands/utils.js +28 -0
- package/dist/commands/utils.js.map +1 -0
- package/dist/commands/validate.d.ts +2 -0
- package/dist/commands/validate.js +56 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/config.d.ts +33 -0
- package/dist/config.js +433 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.d.ts +3 -0
- package/dist/constants.js +7 -0
- package/dist/constants.js.map +1 -0
- package/dist/doctor/checks.d.ts +18 -0
- package/dist/doctor/checks.js +100 -0
- package/dist/doctor/checks.js.map +1 -0
- package/dist/doctor/fix.d.ts +6 -0
- package/dist/doctor/fix.js +99 -0
- package/dist/doctor/fix.js.map +1 -0
- package/dist/doctor/index.d.ts +4 -0
- package/dist/doctor/index.js +21 -0
- package/dist/doctor/index.js.map +1 -0
- package/dist/doctor/report.d.ts +3 -0
- package/dist/doctor/report.js +21 -0
- package/dist/doctor/report.js.map +1 -0
- package/dist/doctor/types.d.ts +16 -0
- package/dist/doctor/types.js +3 -0
- package/dist/doctor/types.js.map +1 -0
- package/dist/fs-utils.d.ts +4 -0
- package/dist/fs-utils.js +31 -0
- package/dist/fs-utils.js.map +1 -0
- package/dist/mcp.d.ts +21 -0
- package/dist/mcp.js +222 -0
- package/dist/mcp.js.map +1 -0
- package/dist/operations.d.ts +108 -0
- package/dist/operations.js +388 -0
- package/dist/operations.js.map +1 -0
- package/dist/paths.d.ts +12 -0
- package/dist/paths.js +41 -0
- package/dist/paths.js.map +1 -0
- package/dist/project-init.d.ts +8 -0
- package/dist/project-init.js +92 -0
- package/dist/project-init.js.map +1 -0
- package/dist/prompts.d.ts +9 -0
- package/dist/prompts.js +157 -0
- package/dist/prompts.js.map +1 -0
- package/dist/registry/aliases.d.ts +16 -0
- package/dist/registry/aliases.js +347 -0
- package/dist/registry/aliases.js.map +1 -0
- package/dist/registry/builtins.d.ts +8 -0
- package/dist/registry/builtins.js +188 -0
- package/dist/registry/builtins.js.map +1 -0
- package/dist/registry/index.d.ts +4 -0
- package/dist/registry/index.js +21 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/loader.d.ts +16 -0
- package/dist/registry/loader.js +655 -0
- package/dist/registry/loader.js.map +1 -0
- package/dist/registry/types.d.ts +79 -0
- package/dist/registry/types.js +3 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/runtime/alias-dispatch.d.ts +10 -0
- package/dist/runtime/alias-dispatch.js +119 -0
- package/dist/runtime/alias-dispatch.js.map +1 -0
- package/dist/runtime/compat.d.ts +6 -0
- package/dist/runtime/compat.js +23 -0
- package/dist/runtime/compat.js.map +1 -0
- package/dist/runtime/context.d.ts +23 -0
- package/dist/runtime/context.js +59 -0
- package/dist/runtime/context.js.map +1 -0
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.js +21 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/workflow.d.ts +18 -0
- package/dist/runtime/workflow.js +45 -0
- package/dist/runtime/workflow.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerCoreCommands = registerCoreCommands;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const operations_1 = require("../operations");
|
|
9
|
+
const project_init_1 = require("../project-init");
|
|
10
|
+
const utils_1 = require("./utils");
|
|
11
|
+
function registerCoreCommands(program) {
|
|
12
|
+
program
|
|
13
|
+
.command("install")
|
|
14
|
+
.description("Install SuperCodex prompt pack and merge ~/.codex/config.toml safely")
|
|
15
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
16
|
+
.option("--force", "Apply SuperCodex values into conflicting standard locations")
|
|
17
|
+
.action((options) => (0, utils_1.runCommand)(async () => {
|
|
18
|
+
const result = await (0, operations_1.installSupercodex)({
|
|
19
|
+
codexHome: options.codexHome,
|
|
20
|
+
force: Boolean(options.force)
|
|
21
|
+
});
|
|
22
|
+
console.log(`Backup: ${result.backup.backupDir}`);
|
|
23
|
+
console.log(`Config: ${result.paths.configPath}`);
|
|
24
|
+
console.log(result.configChanged ? "Config merged." : "Config already up to date.");
|
|
25
|
+
console.log(result.promptChanged
|
|
26
|
+
? `Prompt pack installed at ${result.paths.promptPackDir}.`
|
|
27
|
+
: `Prompt pack already current at ${result.paths.promptPackDir}.`);
|
|
28
|
+
(0, utils_1.printWarnings)(result.warnings);
|
|
29
|
+
}));
|
|
30
|
+
program
|
|
31
|
+
.command("uninstall")
|
|
32
|
+
.description("Remove SuperCodex-managed config and prompt pack")
|
|
33
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
34
|
+
.action((options) => (0, utils_1.runCommand)(async () => {
|
|
35
|
+
const result = await (0, operations_1.uninstallSupercodex)({
|
|
36
|
+
codexHome: options.codexHome
|
|
37
|
+
});
|
|
38
|
+
console.log(`Backup: ${result.backup.backupDir}`);
|
|
39
|
+
console.log(`Config: ${result.paths.configPath}`);
|
|
40
|
+
console.log(result.configChanged ? "SuperCodex-managed config removed." : "No managed config found.");
|
|
41
|
+
console.log(result.promptRemoved ? "Prompt pack removed." : "Prompt pack was not installed.");
|
|
42
|
+
console.log(result.removedAgents.length > 0
|
|
43
|
+
? `Removed agents: ${result.removedAgents.join(", ")}`
|
|
44
|
+
: "Removed agents: (none)");
|
|
45
|
+
console.log(result.removedMcpServers.length > 0
|
|
46
|
+
? `Removed MCP servers: ${result.removedMcpServers.join(", ")}`
|
|
47
|
+
: "Removed MCP servers: (none)");
|
|
48
|
+
}));
|
|
49
|
+
program
|
|
50
|
+
.command("list")
|
|
51
|
+
.description("List bundled prompt pack files and installed prompt files")
|
|
52
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
53
|
+
.action((options) => (0, utils_1.runCommand)(async () => {
|
|
54
|
+
const result = await (0, operations_1.listPromptPackStatus)(options.codexHome);
|
|
55
|
+
const installed = new Set(result.installed);
|
|
56
|
+
console.log(`Prompt pack directory: ${result.promptPackDir}`);
|
|
57
|
+
console.log("Bundled prompts:");
|
|
58
|
+
for (const promptName of result.bundled) {
|
|
59
|
+
const state = installed.has(promptName) ? "installed" : "missing";
|
|
60
|
+
console.log(`- ${promptName} (${state})`);
|
|
61
|
+
}
|
|
62
|
+
}));
|
|
63
|
+
program
|
|
64
|
+
.command("status")
|
|
65
|
+
.description("Show SuperCodex install status and managed entries")
|
|
66
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
67
|
+
.option("--json", "Output JSON")
|
|
68
|
+
.action((options) => (0, utils_1.runCommand)(async () => {
|
|
69
|
+
const result = await (0, operations_1.getSupercodexStatus)(options.codexHome);
|
|
70
|
+
if (Boolean(options.json)) {
|
|
71
|
+
console.log(JSON.stringify(result, null, 2));
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
console.log(`Codex home: ${result.codexHome}`);
|
|
75
|
+
console.log(`Config path: ${result.configPath}`);
|
|
76
|
+
console.log(`Config exists: ${result.configExists ? "yes" : "no"}`);
|
|
77
|
+
console.log(`SuperCodex section installed: ${result.supercodexInstalled ? "yes" : "no"}`);
|
|
78
|
+
console.log(`Prompt pack: ${result.promptPackInstalled ? "installed" : "missing"} (${result.promptPackDir})`);
|
|
79
|
+
console.log(`Default mode: ${result.defaultMode ?? "(builtin)"}`);
|
|
80
|
+
console.log(`Default persona: ${result.defaultPersona ?? "(builtin)"}`);
|
|
81
|
+
console.log(`Catalog version: ${result.catalogVersion ?? "(unknown)"}`);
|
|
82
|
+
console.log(result.managedAgents.length > 0
|
|
83
|
+
? `Managed agents: ${result.managedAgents.join(", ")}`
|
|
84
|
+
: "Managed agents: (none)");
|
|
85
|
+
console.log(result.managedMcpServers.length > 0
|
|
86
|
+
? `Managed MCP servers: ${result.managedMcpServers.join(", ")}`
|
|
87
|
+
: "Managed MCP servers: (none)");
|
|
88
|
+
console.log(result.catalogInstalledIds.length > 0
|
|
89
|
+
? `Catalog-installed MCP ids: ${result.catalogInstalledIds.join(", ")}`
|
|
90
|
+
: "Catalog-installed MCP ids: (none)");
|
|
91
|
+
console.log(result.overridePaths.length > 0
|
|
92
|
+
? `Pending overrides: ${result.overridePaths.join(", ")}`
|
|
93
|
+
: "Pending overrides: (none)");
|
|
94
|
+
}));
|
|
95
|
+
program
|
|
96
|
+
.command("init")
|
|
97
|
+
.description("Create a project-scoped .codex template in the current directory")
|
|
98
|
+
.option("--dir <path>", "Project directory (default: cwd)")
|
|
99
|
+
.action((options) => (0, utils_1.runCommand)(async () => {
|
|
100
|
+
const projectRoot = options.dir ? node_path_1.default.resolve(options.dir) : process.cwd();
|
|
101
|
+
const result = await (0, project_init_1.initProjectTemplate)(projectRoot);
|
|
102
|
+
console.log(`Project config: ${result.configPath}`);
|
|
103
|
+
console.log(result.configChanged ? "Project config initialized." : "Project config already compatible.");
|
|
104
|
+
console.log(`Project README: ${result.readmePath}`);
|
|
105
|
+
console.log(result.readmeChanged ? "Project README created." : "Project README already exists.");
|
|
106
|
+
if (result.skippedPaths.length > 0) {
|
|
107
|
+
console.log(`Preserved existing values: ${result.skippedPaths.join(", ")}`);
|
|
108
|
+
}
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/commands/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerDoctorCommands = registerDoctorCommands;
|
|
4
|
+
exports.registerMcpDoctorCommand = registerMcpDoctorCommand;
|
|
5
|
+
const doctor_1 = require("../doctor");
|
|
6
|
+
const config_1 = require("../config");
|
|
7
|
+
const operations_1 = require("../operations");
|
|
8
|
+
const paths_1 = require("../paths");
|
|
9
|
+
const fs_utils_1 = require("../fs-utils");
|
|
10
|
+
const utils_1 = require("./utils");
|
|
11
|
+
function registerDoctorCommands(program) {
|
|
12
|
+
program
|
|
13
|
+
.command("doctor")
|
|
14
|
+
.description("Run diagnostics (report-only by default)")
|
|
15
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
16
|
+
.option("--json", "Output JSON")
|
|
17
|
+
.option("--strict", "Fail on warnings too")
|
|
18
|
+
.option("--fix", "Apply safe deterministic fixes")
|
|
19
|
+
.option("--mcp-connectivity", "Probe MCP command/url connectivity checks")
|
|
20
|
+
.action((options) => (0, utils_1.runCommand)(async () => {
|
|
21
|
+
const result = await (0, doctor_1.runDoctorChecks)({
|
|
22
|
+
codexHome: options.codexHome,
|
|
23
|
+
projectRoot: process.cwd(),
|
|
24
|
+
mcpConnectivity: Boolean(options.mcpConnectivity)
|
|
25
|
+
});
|
|
26
|
+
if (Boolean(options.fix)) {
|
|
27
|
+
await (0, doctor_1.applyDoctorFixes)(result.report, {
|
|
28
|
+
codexHome: options.codexHome,
|
|
29
|
+
doctorStatus: result.report.ok ? "ok" : "issues"
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
await (0, operations_1.updateDoctorState)(result.report.ok ? "ok" : "issues", {
|
|
34
|
+
codexHome: options.codexHome
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
if (Boolean(options.json)) {
|
|
38
|
+
console.log((0, doctor_1.formatDoctorReportJson)(result.report));
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.log((0, doctor_1.formatDoctorReport)(result.report));
|
|
42
|
+
}
|
|
43
|
+
const hasErrors = result.report.issues.some((issue) => issue.level === "error");
|
|
44
|
+
const hasWarnings = result.report.issues.some((issue) => issue.level === "warn");
|
|
45
|
+
if (hasErrors || (Boolean(options.strict) && hasWarnings)) {
|
|
46
|
+
process.exitCode = 1;
|
|
47
|
+
}
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
function registerMcpDoctorCommand(parent) {
|
|
51
|
+
parent
|
|
52
|
+
.command("doctor")
|
|
53
|
+
.description("Run MCP-only diagnostics")
|
|
54
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
55
|
+
.option("--json", "Output JSON")
|
|
56
|
+
.option("--connectivity", "Probe command/url reachability")
|
|
57
|
+
.action((options) => (0, utils_1.runCommand)(async () => {
|
|
58
|
+
const paths = (0, paths_1.getCodexPaths)(options.codexHome);
|
|
59
|
+
const config = (await (0, fs_utils_1.pathExists)(paths.configPath)) ? await (0, config_1.loadConfig)(paths.configPath) : {};
|
|
60
|
+
const report = await (0, doctor_1.runMcpDoctorChecks)(config, Boolean(options.connectivity));
|
|
61
|
+
if (Boolean(options.json)) {
|
|
62
|
+
console.log((0, doctor_1.formatDoctorReportJson)(report));
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
console.log((0, doctor_1.formatDoctorReport)(report));
|
|
66
|
+
}
|
|
67
|
+
if (!report.ok) {
|
|
68
|
+
process.exitCode = 1;
|
|
69
|
+
}
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./aliases"), exports);
|
|
18
|
+
__exportStar(require("./catalog"), exports);
|
|
19
|
+
__exportStar(require("./core"), exports);
|
|
20
|
+
__exportStar(require("./doctor"), exports);
|
|
21
|
+
__exportStar(require("./mcp"), exports);
|
|
22
|
+
__exportStar(require("./mode"), exports);
|
|
23
|
+
__exportStar(require("./persona"), exports);
|
|
24
|
+
__exportStar(require("./run"), exports);
|
|
25
|
+
__exportStar(require("./validate"), exports);
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,4CAA0B;AAC1B,yCAAuB;AACvB,2CAAyB;AACzB,wCAAsB;AACtB,yCAAuB;AACvB,4CAA0B;AAC1B,wCAAsB;AACtB,6CAA2B"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerMcpCommands = registerMcpCommands;
|
|
4
|
+
const mcp_1 = require("../mcp");
|
|
5
|
+
const operations_1 = require("../operations");
|
|
6
|
+
const registry_1 = require("../registry");
|
|
7
|
+
const catalog_1 = require("./catalog");
|
|
8
|
+
const doctor_1 = require("./doctor");
|
|
9
|
+
const utils_1 = require("./utils");
|
|
10
|
+
function registerMcpCommands(program) {
|
|
11
|
+
const mcp = program.command("mcp").description("Manage MCP servers and catalog entries");
|
|
12
|
+
mcp
|
|
13
|
+
.command("add")
|
|
14
|
+
.description("Add an MCP server entry in ~/.codex/config.toml")
|
|
15
|
+
.argument("<name>", "MCP server name")
|
|
16
|
+
.argument("[command...]", "STDIO command (omit when --http is used)")
|
|
17
|
+
.option("--http <url>", "Use HTTP transport instead of STDIO")
|
|
18
|
+
.option("--env <key=value>", "Environment variable assignment", utils_1.collectRepeatedOption, [])
|
|
19
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
20
|
+
.option("--force", "Apply values directly when conflicts exist")
|
|
21
|
+
.action((name, commandParts, options) => (0, utils_1.runCommand)(async () => {
|
|
22
|
+
const hasHttp = Boolean(options.http);
|
|
23
|
+
const command = commandParts ?? [];
|
|
24
|
+
if (hasHttp && command.length > 0) {
|
|
25
|
+
throw new Error("Do not pass <command...> when using --http.");
|
|
26
|
+
}
|
|
27
|
+
if (!hasHttp && command.length === 0) {
|
|
28
|
+
throw new Error("Provide <command...> for STDIO transport, or use --http <url>.");
|
|
29
|
+
}
|
|
30
|
+
const env = (0, mcp_1.parseEnvAssignments)(options.env ?? []);
|
|
31
|
+
const definition = hasHttp
|
|
32
|
+
? (0, mcp_1.buildHttpServerDefinition)(options.http, env)
|
|
33
|
+
: (0, mcp_1.buildStdioServerDefinition)(command, env);
|
|
34
|
+
const result = await (0, operations_1.addMcpServer)(name, definition, {
|
|
35
|
+
codexHome: options.codexHome,
|
|
36
|
+
force: Boolean(options.force)
|
|
37
|
+
});
|
|
38
|
+
console.log(`Backup: ${result.backup.backupDir}`);
|
|
39
|
+
console.log(`Config: ${result.paths.configPath}`);
|
|
40
|
+
console.log(result.configChanged ? `MCP server "${name}" merged.` : `MCP server "${name}" already current.`);
|
|
41
|
+
(0, utils_1.printWarnings)(result.warnings);
|
|
42
|
+
}));
|
|
43
|
+
mcp
|
|
44
|
+
.command("list")
|
|
45
|
+
.description("List configured MCP servers")
|
|
46
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
47
|
+
.option("--json", "Output JSON")
|
|
48
|
+
.action((options) => (0, utils_1.runCommand)(async () => {
|
|
49
|
+
const result = await (0, operations_1.listConfiguredMcpServers)(options.codexHome);
|
|
50
|
+
if (Boolean(options.json)) {
|
|
51
|
+
console.log(JSON.stringify(result.servers, null, 2));
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (result.servers.length === 0) {
|
|
55
|
+
console.log("No MCP servers configured.");
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
for (const server of result.servers) {
|
|
59
|
+
console.log(`${server.name} (${server.transport})`);
|
|
60
|
+
}
|
|
61
|
+
}));
|
|
62
|
+
mcp
|
|
63
|
+
.command("install")
|
|
64
|
+
.description("Install MCP server from bundled catalog")
|
|
65
|
+
.argument("<id>", "Catalog entry id")
|
|
66
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
67
|
+
.option("--force", "Apply values directly when conflicts exist")
|
|
68
|
+
.action((id, options) => (0, utils_1.runCommand)(async () => {
|
|
69
|
+
const registry = await (0, registry_1.loadRegistry)({ codexHome: options.codexHome });
|
|
70
|
+
const entry = (0, registry_1.getCatalogEntry)(registry.registry, id);
|
|
71
|
+
if (!entry) {
|
|
72
|
+
throw new Error(`Catalog entry "${id}" not found.`);
|
|
73
|
+
}
|
|
74
|
+
const result = await (0, operations_1.installMcpFromCatalog)(entry, {
|
|
75
|
+
codexHome: options.codexHome,
|
|
76
|
+
force: Boolean(options.force)
|
|
77
|
+
});
|
|
78
|
+
console.log(`Backup: ${result.backup.backupDir}`);
|
|
79
|
+
console.log(result.configChanged
|
|
80
|
+
? `Installed MCP catalog entry "${result.catalogId}" as server "${result.serverName}".`
|
|
81
|
+
: `MCP catalog entry "${result.catalogId}" is already current.`);
|
|
82
|
+
(0, utils_1.printWarnings)(result.warnings);
|
|
83
|
+
}));
|
|
84
|
+
mcp
|
|
85
|
+
.command("remove")
|
|
86
|
+
.description("Remove configured MCP server")
|
|
87
|
+
.argument("<name>", "MCP server name")
|
|
88
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
89
|
+
.action((name, options) => (0, utils_1.runCommand)(async () => {
|
|
90
|
+
const result = await (0, operations_1.removeMcpServer)(name, {
|
|
91
|
+
codexHome: options.codexHome
|
|
92
|
+
});
|
|
93
|
+
console.log(`Backup: ${result.backup.backupDir}`);
|
|
94
|
+
console.log(result.removed ? `Removed MCP server "${name}".` : `MCP server "${name}" not found.`);
|
|
95
|
+
if (result.removedCatalogIds.length > 0) {
|
|
96
|
+
console.log(`Removed catalog ids: ${result.removedCatalogIds.join(", ")}`);
|
|
97
|
+
}
|
|
98
|
+
}));
|
|
99
|
+
mcp
|
|
100
|
+
.command("test")
|
|
101
|
+
.description("Test a configured MCP server")
|
|
102
|
+
.argument("<name>", "MCP server name")
|
|
103
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
104
|
+
.option("--json", "Output JSON")
|
|
105
|
+
.action((name, options) => (0, utils_1.runCommand)(async () => {
|
|
106
|
+
const result = await (0, operations_1.testMcpServerByName)(name, {
|
|
107
|
+
codexHome: options.codexHome
|
|
108
|
+
});
|
|
109
|
+
if (!result.exists || !result.result) {
|
|
110
|
+
throw new Error(`MCP server "${name}" not found.`);
|
|
111
|
+
}
|
|
112
|
+
if (Boolean(options.json)) {
|
|
113
|
+
console.log(JSON.stringify(result.result, null, 2));
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
console.log(`${result.result.name}: ${result.result.ok ? "ok" : "failed"}`);
|
|
117
|
+
for (const message of result.result.messages) {
|
|
118
|
+
console.log(`- ${message}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (!result.result.ok) {
|
|
122
|
+
process.exitCode = 1;
|
|
123
|
+
}
|
|
124
|
+
}));
|
|
125
|
+
(0, doctor_1.registerMcpDoctorCommand)(mcp);
|
|
126
|
+
(0, catalog_1.registerMcpCatalogCommands)(mcp);
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":";;AAmBA,kDAiJC;AAlKD,gCAIgB;AAChB,8CAMuB;AACvB,0CAA4D;AAC5D,uCAAuD;AACvD,qCAAoD;AACpD,mCAA2E;AAE3E,SAAgB,mBAAmB,CAAC,OAAgB;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,wCAAwC,CAAC,CAAC;IAEzF,GAAG;SACA,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,iDAAiD,CAAC;SAC9D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACrC,QAAQ,CAAC,cAAc,EAAE,0CAA0C,CAAC;SACpE,MAAM,CAAC,cAAc,EAAE,qCAAqC,CAAC;SAC7D,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,EAAE,6BAAqB,EAAE,EAAE,CAAC;SACzF,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SAC9D,MAAM,CAAC,SAAS,EAAE,4CAA4C,CAAC;SAC/D,MAAM,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,CACtC,IAAA,kBAAU,EAAC,KAAK,IAAI,EAAE;QACpB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAI,YAAqC,IAAI,EAAE,CAAC;QAE7D,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,GAAG,GAAG,IAAA,yBAAmB,EAAE,OAAO,CAAC,GAAgB,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,OAAO;YACxB,CAAC,CAAC,IAAA,+BAAyB,EAAC,OAAO,CAAC,IAAc,EAAE,GAAG,CAAC;YACxD,CAAC,CAAC,IAAA,gCAA0B,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAY,EAAC,IAAc,EAAE,UAAU,EAAE;YAC5D,SAAS,EAAE,OAAO,CAAC,SAA+B;YAClD,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;SAC9B,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,IAAI,WAAW,CAAC,CAAC,CAAC,eAAe,IAAI,oBAAoB,CAAC,CAAC;QAC7G,IAAA,qBAAa,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC,CACH,CAAC;IAEJ,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SAC9D,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAClB,IAAA,kBAAU,EAAC,KAAK,IAAI,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,IAAA,qCAAwB,EAAC,OAAO,CAAC,SAA+B,CAAC,CAAC;QACvF,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEJ,GAAG;SACA,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,yCAAyC,CAAC;SACtD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;SACpC,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SAC9D,MAAM,CAAC,SAAS,EAAE,4CAA4C,CAAC;SAC/D,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CACtB,IAAA,kBAAU,EAAC,KAAK,IAAI,EAAE;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAA+B,EAAE,CAAC,CAAC;QAC5F,MAAM,KAAK,GAAG,IAAA,0BAAe,EAAC,QAAQ,CAAC,QAAQ,EAAE,EAAY,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAA,kCAAqB,EAAC,KAAK,EAAE;YAChD,SAAS,EAAE,OAAO,CAAC,SAA+B;YAClD,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;SAC9B,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,aAAa;YAClB,CAAC,CAAC,gCAAgC,MAAM,CAAC,SAAS,gBAAgB,MAAM,CAAC,UAAU,IAAI;YACvF,CAAC,CAAC,sBAAsB,MAAM,CAAC,SAAS,uBAAuB,CAClE,CAAC;QACF,IAAA,qBAAa,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC,CACH,CAAC;IAEJ,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACrC,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SAC9D,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACxB,IAAA,kBAAU,EAAC,KAAK,IAAI,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAe,EAAC,IAAc,EAAE;YACnD,SAAS,EAAE,OAAO,CAAC,SAA+B;SACnD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,cAAc,CAAC,CAAC;QAClG,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEJ,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8BAA8B,CAAC;SAC3C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACrC,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SAC9D,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACxB,IAAA,kBAAU,EAAC,KAAK,IAAI,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,IAAA,gCAAmB,EAAC,IAAc,EAAE;YACvD,SAAS,EAAE,OAAO,CAAC,SAA+B;SACnD,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,cAAc,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5E,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACtB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEJ,IAAA,iCAAwB,EAAC,GAAG,CAAC,CAAC;IAC9B,IAAA,oCAA0B,EAAC,GAAG,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerModeCommands = registerModeCommands;
|
|
4
|
+
const operations_1 = require("../operations");
|
|
5
|
+
const registry_1 = require("../registry");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
function registerModeCommands(program) {
|
|
8
|
+
const mode = program.command("mode").description("Manage SuperCodex modes");
|
|
9
|
+
mode
|
|
10
|
+
.command("list")
|
|
11
|
+
.description("List modes")
|
|
12
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
13
|
+
.action((options) => (0, utils_1.runCommand)(async () => {
|
|
14
|
+
const registry = await (0, registry_1.loadRegistry)({ codexHome: options.codexHome });
|
|
15
|
+
for (const modeName of Object.keys(registry.registry.modes).sort()) {
|
|
16
|
+
const definition = registry.registry.modes[modeName];
|
|
17
|
+
console.log(`${modeName} - ${definition.description}`);
|
|
18
|
+
}
|
|
19
|
+
}));
|
|
20
|
+
mode
|
|
21
|
+
.command("show")
|
|
22
|
+
.description("Show mode details")
|
|
23
|
+
.argument("<name>", "Mode name")
|
|
24
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
25
|
+
.option("--json", "Output JSON")
|
|
26
|
+
.action((name, options) => (0, utils_1.runCommand)(async () => {
|
|
27
|
+
const registry = await (0, registry_1.loadRegistry)({ codexHome: options.codexHome });
|
|
28
|
+
const definition = registry.registry.modes[name];
|
|
29
|
+
if (!definition) {
|
|
30
|
+
throw new Error(`Mode "${name}" not found.`);
|
|
31
|
+
}
|
|
32
|
+
if (Boolean(options.json)) {
|
|
33
|
+
console.log(JSON.stringify(definition, null, 2));
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.log(`${definition.name} - ${definition.description}`);
|
|
37
|
+
if (definition.prompt_overlay) {
|
|
38
|
+
console.log(`Prompt overlay: ${definition.prompt_overlay}`);
|
|
39
|
+
}
|
|
40
|
+
if (definition.reasoning_budget) {
|
|
41
|
+
console.log(`Reasoning budget: ${definition.reasoning_budget}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}));
|
|
45
|
+
mode
|
|
46
|
+
.command("set")
|
|
47
|
+
.description("Set default mode")
|
|
48
|
+
.argument("<name>", "Mode name")
|
|
49
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
50
|
+
.action((name, options) => (0, utils_1.runCommand)(async () => {
|
|
51
|
+
const registry = await (0, registry_1.loadRegistry)({ codexHome: options.codexHome });
|
|
52
|
+
if (!registry.registry.modes[name]) {
|
|
53
|
+
throw new Error(`Unknown mode "${name}".`);
|
|
54
|
+
}
|
|
55
|
+
const result = await (0, operations_1.setDefaultMode)(name, {
|
|
56
|
+
codexHome: options.codexHome
|
|
57
|
+
});
|
|
58
|
+
console.log(`Backup: ${result.backup.backupDir}`);
|
|
59
|
+
console.log(result.changed ? `Default mode set to "${name}".` : `Default mode already "${name}".`);
|
|
60
|
+
}));
|
|
61
|
+
mode
|
|
62
|
+
.command("unset")
|
|
63
|
+
.description("Unset default mode")
|
|
64
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
65
|
+
.action((options) => (0, utils_1.runCommand)(async () => {
|
|
66
|
+
const result = await (0, operations_1.unsetDefaultMode)({
|
|
67
|
+
codexHome: options.codexHome
|
|
68
|
+
});
|
|
69
|
+
console.log(`Backup: ${result.backup.backupDir}`);
|
|
70
|
+
console.log(result.changed ? "Default mode unset." : "Default mode was already unset.");
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/commands/mode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerPersonaCommands = registerPersonaCommands;
|
|
4
|
+
const operations_1 = require("../operations");
|
|
5
|
+
const registry_1 = require("../registry");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
function registerPersonaCommands(program) {
|
|
8
|
+
const persona = program.command("persona").description("Manage SuperCodex personas");
|
|
9
|
+
persona
|
|
10
|
+
.command("list")
|
|
11
|
+
.description("List personas")
|
|
12
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
13
|
+
.action((options) => (0, utils_1.runCommand)(async () => {
|
|
14
|
+
const registry = await (0, registry_1.loadRegistry)({ codexHome: options.codexHome });
|
|
15
|
+
for (const personaName of Object.keys(registry.registry.personas).sort()) {
|
|
16
|
+
const definition = registry.registry.personas[personaName];
|
|
17
|
+
console.log(`${personaName} - ${definition.description}`);
|
|
18
|
+
}
|
|
19
|
+
}));
|
|
20
|
+
persona
|
|
21
|
+
.command("show")
|
|
22
|
+
.description("Show persona details")
|
|
23
|
+
.argument("<name>", "Persona name")
|
|
24
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
25
|
+
.option("--json", "Output JSON")
|
|
26
|
+
.action((name, options) => (0, utils_1.runCommand)(async () => {
|
|
27
|
+
const registry = await (0, registry_1.loadRegistry)({ codexHome: options.codexHome });
|
|
28
|
+
const definition = registry.registry.personas[name];
|
|
29
|
+
if (!definition) {
|
|
30
|
+
throw new Error(`Persona "${name}" not found.`);
|
|
31
|
+
}
|
|
32
|
+
if (Boolean(options.json)) {
|
|
33
|
+
console.log(JSON.stringify(definition, null, 2));
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.log(`${definition.name} - ${definition.description}`);
|
|
37
|
+
if (definition.system_prompt) {
|
|
38
|
+
console.log(`System prompt: ${definition.system_prompt}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}));
|
|
42
|
+
persona
|
|
43
|
+
.command("set")
|
|
44
|
+
.description("Set default persona")
|
|
45
|
+
.argument("<name>", "Persona name")
|
|
46
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
47
|
+
.action((name, options) => (0, utils_1.runCommand)(async () => {
|
|
48
|
+
const registry = await (0, registry_1.loadRegistry)({ codexHome: options.codexHome });
|
|
49
|
+
if (!registry.registry.personas[name]) {
|
|
50
|
+
throw new Error(`Unknown persona "${name}".`);
|
|
51
|
+
}
|
|
52
|
+
const result = await (0, operations_1.setDefaultPersona)(name, {
|
|
53
|
+
codexHome: options.codexHome
|
|
54
|
+
});
|
|
55
|
+
console.log(`Backup: ${result.backup.backupDir}`);
|
|
56
|
+
console.log(result.changed ? `Default persona set to "${name}".` : `Default persona already "${name}".`);
|
|
57
|
+
}));
|
|
58
|
+
persona
|
|
59
|
+
.command("unset")
|
|
60
|
+
.description("Unset default persona")
|
|
61
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
62
|
+
.action((options) => (0, utils_1.runCommand)(async () => {
|
|
63
|
+
const result = await (0, operations_1.unsetDefaultPersona)({
|
|
64
|
+
codexHome: options.codexHome
|
|
65
|
+
});
|
|
66
|
+
console.log(`Backup: ${result.backup.backupDir}`);
|
|
67
|
+
console.log(result.changed ? "Default persona unset." : "Default persona was already unset.");
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=persona.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persona.js","sourceRoot":"","sources":["../../src/commands/persona.ts"],"names":[],"mappings":";;AAMA,0DA2EC;AA/ED,8CAAuE;AACvE,0CAA2C;AAC3C,mCAAqC;AAErC,SAAgB,uBAAuB,CAAC,OAAgB;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;IAErF,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,eAAe,CAAC;SAC5B,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SAC9D,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAClB,IAAA,kBAAU,EAAC,KAAK,IAAI,EAAE;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAA+B,EAAE,CAAC,CAAC;QAC5F,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACzE,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,sBAAsB,CAAC;SACnC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;SAClC,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SAC9D,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACxB,IAAA,kBAAU,EAAC,KAAK,IAAI,EAAE;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAA+B,EAAE,CAAC,CAAC;QAC5F,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAc,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,cAAc,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9D,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,qBAAqB,CAAC;SAClC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;SAClC,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SAC9D,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACxB,IAAA,kBAAU,EAAC,KAAK,IAAI,EAAE;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAA+B,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAc,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAiB,EAAC,IAAc,EAAE;YACrD,SAAS,EAAE,OAAO,CAAC,SAA+B;SACnD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,IAAI,IAAI,CAAC,CAAC,CAAC,4BAA4B,IAAI,IAAI,CAAC,CAAC;IAC3G,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SAC9D,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAClB,IAAA,kBAAU,EAAC,KAAK,IAAI,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,IAAA,gCAAmB,EAAC;YACvC,SAAS,EAAE,OAAO,CAAC,SAA+B;SACnD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC;IAChG,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerRunCommands = registerRunCommands;
|
|
4
|
+
const registry_1 = require("../registry");
|
|
5
|
+
const runtime_1 = require("../runtime");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
function registerRunCommands(program) {
|
|
8
|
+
const run = program.command("run").description("Resolve workflow context");
|
|
9
|
+
for (const workflowName of ["plan", "review", "refactor", "debug"]) {
|
|
10
|
+
run
|
|
11
|
+
.command(workflowName)
|
|
12
|
+
.description(`Resolve ${workflowName} workflow context`)
|
|
13
|
+
.option("--codex-home <path>", "Override Codex home directory")
|
|
14
|
+
.option("--mode <name>", "Override mode")
|
|
15
|
+
.option("--persona <name>", "Override persona")
|
|
16
|
+
.option("--json", "Output JSON")
|
|
17
|
+
.action((options) => (0, utils_1.runCommand)(async () => {
|
|
18
|
+
const registry = await (0, registry_1.loadRegistry)({
|
|
19
|
+
codexHome: options.codexHome,
|
|
20
|
+
projectRoot: process.cwd()
|
|
21
|
+
});
|
|
22
|
+
const resolution = await (0, runtime_1.resolveWorkflow)(registry.registry, {
|
|
23
|
+
workflow: workflowName,
|
|
24
|
+
codexHome: options.codexHome,
|
|
25
|
+
mode: options.mode,
|
|
26
|
+
persona: options.persona,
|
|
27
|
+
projectRoot: process.cwd()
|
|
28
|
+
});
|
|
29
|
+
const compat = (0, runtime_1.checkCompatibility)(registry.registry, `run.${workflowName}`, resolution.mode, resolution.persona);
|
|
30
|
+
if (!compat.ok) {
|
|
31
|
+
throw new Error(compat.errors.join(" "));
|
|
32
|
+
}
|
|
33
|
+
if (Boolean(options.json)) {
|
|
34
|
+
console.log(JSON.stringify(resolution, null, 2));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
console.log(`Workflow: ${resolution.workflow}`);
|
|
38
|
+
console.log(`Prompt: ${resolution.promptPath}`);
|
|
39
|
+
console.log(`Mode: ${resolution.mode} (${resolution.modeSource})`);
|
|
40
|
+
console.log(`Persona: ${resolution.persona} (${resolution.personaSource})`);
|
|
41
|
+
if (resolution.overlays.modePrompt) {
|
|
42
|
+
console.log(`Mode overlay: ${resolution.overlays.modePrompt}`);
|
|
43
|
+
}
|
|
44
|
+
if (resolution.overlays.personaPrompt) {
|
|
45
|
+
console.log(`Persona overlay: ${resolution.overlays.personaPrompt}`);
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":";;AAMA,kDAoDC;AAxDD,0CAA2C;AAC3C,wCAAiE;AACjE,mCAAqC;AAErC,SAAgB,mBAAmB,CAAC,OAAgB;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAE3E,KAAK,MAAM,YAAY,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAU,EAAE,CAAC;QAC5E,GAAG;aACA,OAAO,CAAC,YAAY,CAAC;aACrB,WAAW,CAAC,WAAW,YAAY,mBAAmB,CAAC;aACvD,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;aAC9D,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC;aACxC,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;aAC9C,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;aAC/B,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAClB,IAAA,kBAAU,EAAC,KAAK,IAAI,EAAE;YACpB,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC;gBAClC,SAAS,EAAE,OAAO,CAAC,SAA+B;gBAClD,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;aAC3B,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAA,yBAAe,EAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC1D,QAAQ,EAAE,YAAY;gBACtB,SAAS,EAAE,OAAO,CAAC,SAA+B;gBAClD,IAAI,EAAE,OAAO,CAAC,IAA0B;gBACxC,OAAO,EAAE,OAAO,CAAC,OAA6B;gBAC9C,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;aAC3B,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,4BAAkB,EAC/B,QAAQ,CAAC,QAAQ,EACjB,OAAO,YAAY,EAAE,EACrB,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,OAAO,CACnB,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjD,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,YAAY,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC;YAC5E,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,iBAAiB,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MergeWarning } from "../config";
|
|
2
|
+
export declare function runCommand(task: () => Promise<void>): Promise<void>;
|
|
3
|
+
export declare function printWarnings(warnings: MergeWarning[]): void;
|
|
4
|
+
export declare function collectRepeatedOption(value: string, previous: string[]): string[];
|