@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.
Files changed (110) hide show
  1. package/README.md +228 -0
  2. package/dist/backup.d.ts +6 -0
  3. package/dist/backup.js +37 -0
  4. package/dist/backup.js.map +1 -0
  5. package/dist/cli.d.ts +4 -0
  6. package/dist/cli.js +63 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/aliases.d.ts +2 -0
  9. package/dist/commands/aliases.js +141 -0
  10. package/dist/commands/aliases.js.map +1 -0
  11. package/dist/commands/catalog.d.ts +3 -0
  12. package/dist/commands/catalog.js +103 -0
  13. package/dist/commands/catalog.js.map +1 -0
  14. package/dist/commands/core.d.ts +2 -0
  15. package/dist/commands/core.js +111 -0
  16. package/dist/commands/core.js.map +1 -0
  17. package/dist/commands/doctor.d.ts +3 -0
  18. package/dist/commands/doctor.js +72 -0
  19. package/dist/commands/doctor.js.map +1 -0
  20. package/dist/commands/index.d.ts +9 -0
  21. package/dist/commands/index.js +26 -0
  22. package/dist/commands/index.js.map +1 -0
  23. package/dist/commands/mcp.d.ts +2 -0
  24. package/dist/commands/mcp.js +128 -0
  25. package/dist/commands/mcp.js.map +1 -0
  26. package/dist/commands/mode.d.ts +2 -0
  27. package/dist/commands/mode.js +73 -0
  28. package/dist/commands/mode.js.map +1 -0
  29. package/dist/commands/persona.d.ts +2 -0
  30. package/dist/commands/persona.js +70 -0
  31. package/dist/commands/persona.js.map +1 -0
  32. package/dist/commands/run.d.ts +2 -0
  33. package/dist/commands/run.js +50 -0
  34. package/dist/commands/run.js.map +1 -0
  35. package/dist/commands/utils.d.ts +4 -0
  36. package/dist/commands/utils.js +28 -0
  37. package/dist/commands/utils.js.map +1 -0
  38. package/dist/commands/validate.d.ts +2 -0
  39. package/dist/commands/validate.js +56 -0
  40. package/dist/commands/validate.js.map +1 -0
  41. package/dist/config.d.ts +33 -0
  42. package/dist/config.js +433 -0
  43. package/dist/config.js.map +1 -0
  44. package/dist/constants.d.ts +3 -0
  45. package/dist/constants.js +7 -0
  46. package/dist/constants.js.map +1 -0
  47. package/dist/doctor/checks.d.ts +18 -0
  48. package/dist/doctor/checks.js +100 -0
  49. package/dist/doctor/checks.js.map +1 -0
  50. package/dist/doctor/fix.d.ts +6 -0
  51. package/dist/doctor/fix.js +99 -0
  52. package/dist/doctor/fix.js.map +1 -0
  53. package/dist/doctor/index.d.ts +4 -0
  54. package/dist/doctor/index.js +21 -0
  55. package/dist/doctor/index.js.map +1 -0
  56. package/dist/doctor/report.d.ts +3 -0
  57. package/dist/doctor/report.js +21 -0
  58. package/dist/doctor/report.js.map +1 -0
  59. package/dist/doctor/types.d.ts +16 -0
  60. package/dist/doctor/types.js +3 -0
  61. package/dist/doctor/types.js.map +1 -0
  62. package/dist/fs-utils.d.ts +4 -0
  63. package/dist/fs-utils.js +31 -0
  64. package/dist/fs-utils.js.map +1 -0
  65. package/dist/mcp.d.ts +21 -0
  66. package/dist/mcp.js +222 -0
  67. package/dist/mcp.js.map +1 -0
  68. package/dist/operations.d.ts +108 -0
  69. package/dist/operations.js +388 -0
  70. package/dist/operations.js.map +1 -0
  71. package/dist/paths.d.ts +12 -0
  72. package/dist/paths.js +41 -0
  73. package/dist/paths.js.map +1 -0
  74. package/dist/project-init.d.ts +8 -0
  75. package/dist/project-init.js +92 -0
  76. package/dist/project-init.js.map +1 -0
  77. package/dist/prompts.d.ts +9 -0
  78. package/dist/prompts.js +157 -0
  79. package/dist/prompts.js.map +1 -0
  80. package/dist/registry/aliases.d.ts +16 -0
  81. package/dist/registry/aliases.js +347 -0
  82. package/dist/registry/aliases.js.map +1 -0
  83. package/dist/registry/builtins.d.ts +8 -0
  84. package/dist/registry/builtins.js +188 -0
  85. package/dist/registry/builtins.js.map +1 -0
  86. package/dist/registry/index.d.ts +4 -0
  87. package/dist/registry/index.js +21 -0
  88. package/dist/registry/index.js.map +1 -0
  89. package/dist/registry/loader.d.ts +16 -0
  90. package/dist/registry/loader.js +655 -0
  91. package/dist/registry/loader.js.map +1 -0
  92. package/dist/registry/types.d.ts +79 -0
  93. package/dist/registry/types.js +3 -0
  94. package/dist/registry/types.js.map +1 -0
  95. package/dist/runtime/alias-dispatch.d.ts +10 -0
  96. package/dist/runtime/alias-dispatch.js +119 -0
  97. package/dist/runtime/alias-dispatch.js.map +1 -0
  98. package/dist/runtime/compat.d.ts +6 -0
  99. package/dist/runtime/compat.js +23 -0
  100. package/dist/runtime/compat.js.map +1 -0
  101. package/dist/runtime/context.d.ts +23 -0
  102. package/dist/runtime/context.js +59 -0
  103. package/dist/runtime/context.js.map +1 -0
  104. package/dist/runtime/index.d.ts +4 -0
  105. package/dist/runtime/index.js +21 -0
  106. package/dist/runtime/index.js.map +1 -0
  107. package/dist/runtime/workflow.d.ts +18 -0
  108. package/dist/runtime/workflow.js +45 -0
  109. package/dist/runtime/workflow.js.map +1 -0
  110. package/package.json +57 -0
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runCommand = runCommand;
4
+ exports.printWarnings = printWarnings;
5
+ exports.collectRepeatedOption = collectRepeatedOption;
6
+ async function runCommand(task) {
7
+ try {
8
+ await task();
9
+ }
10
+ catch (error) {
11
+ const message = error instanceof Error ? error.message : String(error);
12
+ console.error(`Error: ${message}`);
13
+ process.exitCode = 1;
14
+ }
15
+ }
16
+ function printWarnings(warnings) {
17
+ if (warnings.length === 0) {
18
+ return;
19
+ }
20
+ console.warn("Warnings:");
21
+ for (const warning of warnings) {
22
+ console.warn(`- ${warning.message}`);
23
+ }
24
+ }
25
+ function collectRepeatedOption(value, previous) {
26
+ return [...previous, value];
27
+ }
28
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/commands/utils.ts"],"names":[],"mappings":";;AAEA,gCAQC;AAED,sCASC;AAED,sDAEC;AAvBM,KAAK,UAAU,UAAU,CAAC,IAAyB;IACxD,IAAI,CAAC;QACH,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,QAAwB;IACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,KAAa,EAAE,QAAkB;IACrE,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerValidateCommand(program: Command): void;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerValidateCommand = registerValidateCommand;
4
+ const operations_1 = require("../operations");
5
+ const registry_1 = require("../registry");
6
+ const utils_1 = require("./utils");
7
+ function registerValidateCommand(program) {
8
+ program
9
+ .command("validate")
10
+ .description("Validate command registry and static SuperCodex configuration")
11
+ .option("--codex-home <path>", "Override Codex home directory")
12
+ .option("--strict", "Fail on warnings too")
13
+ .option("--json", "Output JSON")
14
+ .action((options) => (0, utils_1.runCommand)(async () => {
15
+ const registryResult = await (0, registry_1.loadRegistry)({ codexHome: options.codexHome });
16
+ const issues = [
17
+ ...registryResult.issues,
18
+ ...(0, registry_1.validateRegistry)(registryResult.registry)
19
+ ];
20
+ const strict = Boolean(options.strict);
21
+ const commandCountValidation = (0, operations_1.validateSupercodexCommandCount)(Object.keys(registryResult.registry.commands));
22
+ const hasErrors = issues.some((issue) => issue.level === "error");
23
+ const hasWarnings = issues.some((issue) => issue.level === "warn");
24
+ const payload = {
25
+ valid: !hasErrors &&
26
+ commandCountValidation.valid &&
27
+ (!strict || !hasWarnings),
28
+ command_count: Object.keys(registryResult.registry.commands).length,
29
+ strict,
30
+ issues: issues.map((issue) => ({
31
+ level: issue.level,
32
+ path: issue.path,
33
+ message: issue.message
34
+ })),
35
+ errors: commandCountValidation.errors
36
+ };
37
+ if (Boolean(options.json)) {
38
+ console.log(JSON.stringify(payload, null, 2));
39
+ }
40
+ else {
41
+ console.log(`Registry valid: ${payload.valid ? "yes" : "no"}`);
42
+ console.log(`Strict mode: ${strict ? "on" : "off"}`);
43
+ console.log(`Command count: ${payload.command_count}`);
44
+ for (const error of commandCountValidation.errors) {
45
+ console.log(`- [error] ${error}`);
46
+ }
47
+ for (const issue of payload.issues) {
48
+ console.log(`- [${issue.level}] ${issue.message} (${issue.path})`);
49
+ }
50
+ }
51
+ if (!payload.valid) {
52
+ process.exitCode = 1;
53
+ }
54
+ }));
55
+ }
56
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export type TomlTable = Record<string, unknown>;
2
+ export interface InstallSpec {
3
+ supercodex: TomlTable;
4
+ agents: Record<string, TomlTable>;
5
+ mcpServers: Record<string, TomlTable>;
6
+ }
7
+ export interface MergeWarning {
8
+ path: string;
9
+ message: string;
10
+ desired: unknown;
11
+ }
12
+ export interface MergeOutcome {
13
+ config: TomlTable;
14
+ changed: boolean;
15
+ warnings: MergeWarning[];
16
+ }
17
+ export interface UninstallOutcome {
18
+ config: TomlTable;
19
+ changed: boolean;
20
+ removedAgents: string[];
21
+ removedMcpServers: string[];
22
+ }
23
+ export declare function loadConfig(configPath: string): Promise<TomlTable>;
24
+ export declare function writeConfig(configPath: string, config: TomlTable): Promise<void>;
25
+ export declare function createInstallSpec(promptPackDir: string, version?: string): InstallSpec;
26
+ export declare function mergeSupercodexPatch(current: TomlTable, patch: TomlTable, force?: boolean): MergeOutcome;
27
+ export declare function mergeInstallConfig(current: TomlTable, spec: InstallSpec, force?: boolean): MergeOutcome;
28
+ export declare function mergeMcpServerConfig(current: TomlTable, serverName: string, serverDefinition: TomlTable, force?: boolean): MergeOutcome;
29
+ export declare function removeSupercodexManagedSections(current: TomlTable): UninstallOutcome;
30
+ export declare function getManagedNames(config: TomlTable): {
31
+ agents: string[];
32
+ mcpServers: string[];
33
+ };
package/dist/config.js ADDED
@@ -0,0 +1,433 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.loadConfig = loadConfig;
40
+ exports.writeConfig = writeConfig;
41
+ exports.createInstallSpec = createInstallSpec;
42
+ exports.mergeSupercodexPatch = mergeSupercodexPatch;
43
+ exports.mergeInstallConfig = mergeInstallConfig;
44
+ exports.mergeMcpServerConfig = mergeMcpServerConfig;
45
+ exports.removeSupercodexManagedSections = removeSupercodexManagedSections;
46
+ exports.getManagedNames = getManagedNames;
47
+ const node_path_1 = __importDefault(require("node:path"));
48
+ const promises_1 = require("node:fs/promises");
49
+ const TOML = __importStar(require("@iarna/toml"));
50
+ const constants_1 = require("./constants");
51
+ const fs_utils_1 = require("./fs-utils");
52
+ const builtins_1 = require("./registry/builtins");
53
+ async function loadConfig(configPath) {
54
+ if (!(await (0, fs_utils_1.pathExists)(configPath))) {
55
+ return {};
56
+ }
57
+ const raw = await (0, promises_1.readFile)(configPath, "utf8");
58
+ if (!raw.trim()) {
59
+ return {};
60
+ }
61
+ const parsed = TOML.parse(raw);
62
+ if (!(0, fs_utils_1.isPlainObject)(parsed)) {
63
+ return {};
64
+ }
65
+ return parsed;
66
+ }
67
+ async function writeConfig(configPath, config) {
68
+ await (0, promises_1.mkdir)(node_path_1.default.dirname(configPath), { recursive: true });
69
+ const serialized = TOML.stringify(config);
70
+ await (0, promises_1.writeFile)(configPath, serialized, "utf8");
71
+ }
72
+ function createInstallSpec(promptPackDir, version = constants_1.SUPERCODEX_VERSION) {
73
+ const modeTable = {};
74
+ for (const [name, definition] of Object.entries(builtins_1.BUILTIN_MODES)) {
75
+ modeTable[name] = {
76
+ description: definition.description,
77
+ prompt_overlay: definition.prompt_overlay ?? "",
78
+ reasoning_budget: definition.reasoning_budget ?? "medium",
79
+ temperature: definition.temperature ?? 0.2
80
+ };
81
+ }
82
+ const personaTable = {};
83
+ for (const [name, definition] of Object.entries(builtins_1.BUILTIN_PERSONAS)) {
84
+ personaTable[name] = {
85
+ description: definition.description,
86
+ policy_tags: definition.policy_tags ?? []
87
+ };
88
+ }
89
+ const commandTable = {};
90
+ for (const [name, definition] of Object.entries(builtins_1.BUILTIN_COMMANDS)) {
91
+ commandTable[name] = {
92
+ description: definition.description,
93
+ enabled: definition.enabled,
94
+ mode_compatible: definition.mode_compatible,
95
+ persona_compatible: definition.persona_compatible
96
+ };
97
+ }
98
+ return {
99
+ supercodex: {
100
+ enabled: true,
101
+ version,
102
+ prompt_pack: constants_1.SUPERCODEX_PROMPT_PACK,
103
+ prompts_dir: promptPackDir,
104
+ runtime: {
105
+ default_mode: builtins_1.BUILTIN_DEFAULT_MODE,
106
+ default_persona: builtins_1.BUILTIN_DEFAULT_PERSONA,
107
+ catalog_version: builtins_1.BUILTIN_CATALOG_VERSION
108
+ },
109
+ prompts: {
110
+ plan: "supercodex/plan.md",
111
+ review: "supercodex/review.md",
112
+ refactor: "supercodex/refactor.md",
113
+ debug: "supercodex/debug.md"
114
+ },
115
+ modes: modeTable,
116
+ personas: personaTable,
117
+ commands: commandTable,
118
+ catalog: {
119
+ source: "local",
120
+ installed_ids: []
121
+ },
122
+ doctor: {
123
+ last_run_at: "",
124
+ last_status: "unknown"
125
+ }
126
+ },
127
+ agents: {
128
+ [constants_1.SUPERCODEX_DEFAULT_AGENT]: {
129
+ description: "SuperCodex structured planning profile",
130
+ prompt: "supercodex/plan.md"
131
+ }
132
+ },
133
+ mcpServers: {}
134
+ };
135
+ }
136
+ function mergeSupercodexPatch(current, patch, force = false) {
137
+ return mergeInstallConfig(current, {
138
+ supercodex: patch,
139
+ agents: {},
140
+ mcpServers: {}
141
+ }, force);
142
+ }
143
+ function mergeInstallConfig(current, spec, force = false) {
144
+ const next = (0, fs_utils_1.deepClone)(current);
145
+ const warnings = [];
146
+ let changed = false;
147
+ const ensureSupercodex = ensureObjectTable(next, "supercodex", force, warnings, "supercodex", {
148
+ install_spec: spec.supercodex
149
+ });
150
+ changed = changed || ensureSupercodex.changed;
151
+ const supercodexTable = ensureSupercodex.table;
152
+ if (supercodexTable) {
153
+ changed =
154
+ mergeObject(supercodexTable, spec.supercodex, "supercodex", force, warnings, supercodexTable) || changed;
155
+ }
156
+ const mergedAgents = mergeNamedEntries(next, "agents", spec.agents, force, warnings, supercodexTable);
157
+ changed = changed || mergedAgents.changed;
158
+ if (supercodexTable && mergedAgents.appliedNames.length > 0) {
159
+ changed =
160
+ mergeManagedNames(supercodexTable, "agents", mergedAgents.appliedNames, force, warnings) || changed;
161
+ }
162
+ const mergedMcpServers = mergeNamedEntries(next, "mcp_servers", spec.mcpServers, force, warnings, supercodexTable);
163
+ changed = changed || mergedMcpServers.changed;
164
+ if (supercodexTable && mergedMcpServers.appliedNames.length > 0) {
165
+ changed =
166
+ mergeManagedNames(supercodexTable, "mcp_servers", mergedMcpServers.appliedNames, force, warnings) || changed;
167
+ }
168
+ return { config: next, changed, warnings };
169
+ }
170
+ function mergeMcpServerConfig(current, serverName, serverDefinition, force = false) {
171
+ const next = (0, fs_utils_1.deepClone)(current);
172
+ const warnings = [];
173
+ let changed = false;
174
+ const ensureSupercodex = ensureObjectTable(next, "supercodex", force, warnings, "supercodex", {
175
+ managed: { mcp_servers: [serverName] }
176
+ });
177
+ changed = changed || ensureSupercodex.changed;
178
+ const supercodexTable = ensureSupercodex.table;
179
+ const mcpMerge = mergeNamedEntries(next, "mcp_servers", { [serverName]: serverDefinition }, force, warnings, supercodexTable);
180
+ changed = changed || mcpMerge.changed;
181
+ if (supercodexTable && mcpMerge.appliedNames.includes(serverName)) {
182
+ changed =
183
+ mergeManagedNames(supercodexTable, "mcp_servers", [serverName], force, warnings) || changed;
184
+ }
185
+ return { config: next, changed, warnings };
186
+ }
187
+ function removeSupercodexManagedSections(current) {
188
+ const next = (0, fs_utils_1.deepClone)(current);
189
+ let changed = false;
190
+ const removedAgents = [];
191
+ const removedMcpServers = [];
192
+ const supercodex = (0, fs_utils_1.isPlainObject)(next.supercodex) ? next.supercodex : null;
193
+ const managedAgents = readManagedNames(supercodex, "agents");
194
+ const managedMcpServers = readManagedNames(supercodex, "mcp_servers");
195
+ if ((0, fs_utils_1.isPlainObject)(next.agents)) {
196
+ const agentTable = next.agents;
197
+ for (const agentName of managedAgents) {
198
+ if (Object.hasOwn(agentTable, agentName)) {
199
+ delete agentTable[agentName];
200
+ removedAgents.push(agentName);
201
+ changed = true;
202
+ }
203
+ }
204
+ }
205
+ if ((0, fs_utils_1.isPlainObject)(next.mcp_servers)) {
206
+ const mcpTable = next.mcp_servers;
207
+ for (const serverName of managedMcpServers) {
208
+ if (Object.hasOwn(mcpTable, serverName)) {
209
+ delete mcpTable[serverName];
210
+ removedMcpServers.push(serverName);
211
+ changed = true;
212
+ }
213
+ }
214
+ }
215
+ if ((0, fs_utils_1.isPlainObject)(next.agents) && Object.keys(next.agents).length === 0) {
216
+ delete next.agents;
217
+ changed = true;
218
+ }
219
+ if ((0, fs_utils_1.isPlainObject)(next.mcp_servers) && Object.keys(next.mcp_servers).length === 0) {
220
+ delete next.mcp_servers;
221
+ changed = true;
222
+ }
223
+ if (Object.hasOwn(next, "supercodex")) {
224
+ delete next.supercodex;
225
+ changed = true;
226
+ }
227
+ return {
228
+ config: next,
229
+ changed,
230
+ removedAgents: removedAgents.sort(),
231
+ removedMcpServers: removedMcpServers.sort()
232
+ };
233
+ }
234
+ function getManagedNames(config) {
235
+ const supercodex = (0, fs_utils_1.isPlainObject)(config.supercodex) ? config.supercodex : null;
236
+ return {
237
+ agents: readManagedNames(supercodex, "agents"),
238
+ mcpServers: readManagedNames(supercodex, "mcp_servers")
239
+ };
240
+ }
241
+ function mergeNamedEntries(config, tableKey, desiredEntries, force, warnings, supercodexTable) {
242
+ if (Object.keys(desiredEntries).length === 0) {
243
+ return { changed: false, appliedNames: [] };
244
+ }
245
+ let changed = false;
246
+ const appliedNames = [];
247
+ const ensureTable = ensureObjectTable(config, tableKey, force, warnings, tableKey, desiredEntries);
248
+ changed = changed || ensureTable.changed;
249
+ if (!ensureTable.table) {
250
+ return { changed, appliedNames };
251
+ }
252
+ const table = ensureTable.table;
253
+ for (const [entryName, desiredValue] of Object.entries(desiredEntries)) {
254
+ if (!Object.hasOwn(table, entryName)) {
255
+ table[entryName] = (0, fs_utils_1.deepClone)(desiredValue);
256
+ changed = true;
257
+ appliedNames.push(entryName);
258
+ continue;
259
+ }
260
+ const existingValue = table[entryName];
261
+ if ((0, fs_utils_1.deepEqual)(existingValue, desiredValue)) {
262
+ appliedNames.push(entryName);
263
+ continue;
264
+ }
265
+ if (force) {
266
+ table[entryName] = (0, fs_utils_1.deepClone)(desiredValue);
267
+ changed = true;
268
+ appliedNames.push(entryName);
269
+ continue;
270
+ }
271
+ changed =
272
+ addOverride(supercodexTable, `${tableKey}.${entryName}`, desiredValue, warnings) || changed;
273
+ }
274
+ return { changed, appliedNames };
275
+ }
276
+ function mergeObject(target, desired, rootPath, force, warnings, supercodexTable) {
277
+ let changed = false;
278
+ for (const [key, desiredValue] of Object.entries(desired)) {
279
+ const currentPath = `${rootPath}.${key}`;
280
+ if (!Object.hasOwn(target, key)) {
281
+ target[key] = (0, fs_utils_1.deepClone)(desiredValue);
282
+ changed = true;
283
+ continue;
284
+ }
285
+ const existingValue = target[key];
286
+ if ((0, fs_utils_1.isPlainObject)(existingValue) && (0, fs_utils_1.isPlainObject)(desiredValue)) {
287
+ changed =
288
+ mergeObject(existingValue, desiredValue, currentPath, force, warnings, supercodexTable) ||
289
+ changed;
290
+ continue;
291
+ }
292
+ if (Array.isArray(existingValue) && Array.isArray(desiredValue) && isManagedListPath(currentPath)) {
293
+ const mergedList = mergeStringList(existingValue, desiredValue);
294
+ if (!(0, fs_utils_1.deepEqual)(existingValue, mergedList)) {
295
+ target[key] = mergedList;
296
+ changed = true;
297
+ }
298
+ continue;
299
+ }
300
+ if ((0, fs_utils_1.deepEqual)(existingValue, desiredValue)) {
301
+ continue;
302
+ }
303
+ if (force) {
304
+ target[key] = (0, fs_utils_1.deepClone)(desiredValue);
305
+ changed = true;
306
+ continue;
307
+ }
308
+ changed = addOverride(supercodexTable, currentPath, desiredValue, warnings) || changed;
309
+ }
310
+ return changed;
311
+ }
312
+ function mergeManagedNames(supercodexTable, key, names, force, warnings) {
313
+ const normalizedNames = Array.from(new Set(names)).sort();
314
+ if (normalizedNames.length === 0) {
315
+ return false;
316
+ }
317
+ let changed = false;
318
+ if (!Object.hasOwn(supercodexTable, "managed")) {
319
+ supercodexTable.managed = {};
320
+ changed = true;
321
+ }
322
+ if (!(0, fs_utils_1.isPlainObject)(supercodexTable.managed)) {
323
+ if (force) {
324
+ supercodexTable.managed = {};
325
+ changed = true;
326
+ }
327
+ else {
328
+ changed =
329
+ addOverride(supercodexTable, `supercodex.managed.${key}`, normalizedNames, warnings) || changed;
330
+ return changed;
331
+ }
332
+ }
333
+ const managedTable = supercodexTable.managed;
334
+ if (!Object.hasOwn(managedTable, key)) {
335
+ managedTable[key] = normalizedNames;
336
+ return true;
337
+ }
338
+ if (!Array.isArray(managedTable[key])) {
339
+ if (force) {
340
+ managedTable[key] = normalizedNames;
341
+ return true;
342
+ }
343
+ changed =
344
+ addOverride(supercodexTable, `supercodex.managed.${key}`, normalizedNames, warnings) || changed;
345
+ return changed;
346
+ }
347
+ const merged = mergeStringList(managedTable[key], normalizedNames);
348
+ if (!(0, fs_utils_1.deepEqual)(managedTable[key], merged)) {
349
+ managedTable[key] = merged;
350
+ changed = true;
351
+ }
352
+ return changed;
353
+ }
354
+ function ensureObjectTable(root, key, force, warnings, warningPath, desiredValue) {
355
+ if (!Object.hasOwn(root, key)) {
356
+ const nextTable = {};
357
+ root[key] = nextTable;
358
+ return { table: nextTable, changed: true };
359
+ }
360
+ const existingValue = root[key];
361
+ if ((0, fs_utils_1.isPlainObject)(existingValue)) {
362
+ return { table: existingValue, changed: false };
363
+ }
364
+ if (force) {
365
+ const nextTable = {};
366
+ root[key] = nextTable;
367
+ return { table: nextTable, changed: true };
368
+ }
369
+ warnings.push({
370
+ path: warningPath,
371
+ desired: (0, fs_utils_1.deepClone)(desiredValue),
372
+ message: `Conflict at "${warningPath}". Existing non-table value was preserved. ` +
373
+ `Re-run with --force to replace it.`
374
+ });
375
+ return { table: null, changed: false };
376
+ }
377
+ function addOverride(supercodexTable, conflictPath, desiredValue, warnings) {
378
+ warnings.push({
379
+ path: conflictPath,
380
+ desired: (0, fs_utils_1.deepClone)(desiredValue),
381
+ message: `Conflict at "${conflictPath}". Existing value was preserved and desired value ` +
382
+ `was recorded under [supercodex.overrides]. Re-run with --force to apply.`
383
+ });
384
+ if (!supercodexTable) {
385
+ return false;
386
+ }
387
+ let changed = false;
388
+ if (!Object.hasOwn(supercodexTable, "overrides")) {
389
+ supercodexTable.overrides = {};
390
+ changed = true;
391
+ }
392
+ if (!(0, fs_utils_1.isPlainObject)(supercodexTable.overrides)) {
393
+ supercodexTable.overrides = {};
394
+ changed = true;
395
+ }
396
+ const overrides = supercodexTable.overrides;
397
+ if (!(0, fs_utils_1.deepEqual)(overrides[conflictPath], desiredValue)) {
398
+ overrides[conflictPath] = (0, fs_utils_1.deepClone)(desiredValue);
399
+ changed = true;
400
+ }
401
+ return changed;
402
+ }
403
+ function readManagedNames(supercodexTable, key) {
404
+ if (!supercodexTable || !(0, fs_utils_1.isPlainObject)(supercodexTable.managed)) {
405
+ return [];
406
+ }
407
+ const managedValue = supercodexTable.managed[key];
408
+ if (!Array.isArray(managedValue)) {
409
+ return [];
410
+ }
411
+ return managedValue
412
+ .filter((name) => typeof name === "string" && name.trim().length > 0)
413
+ .map((name) => name.trim())
414
+ .sort();
415
+ }
416
+ function mergeStringList(existing, desired) {
417
+ const merged = new Set();
418
+ for (const value of existing) {
419
+ if (typeof value === "string" && value.trim().length > 0) {
420
+ merged.add(value.trim());
421
+ }
422
+ }
423
+ for (const value of desired) {
424
+ if (typeof value === "string" && value.trim().length > 0) {
425
+ merged.add(value.trim());
426
+ }
427
+ }
428
+ return Array.from(merged).sort();
429
+ }
430
+ function isManagedListPath(pathValue) {
431
+ return pathValue === "supercodex.managed.agents" || pathValue === "supercodex.managed.mcp_servers";
432
+ }
433
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const SUPERCODEX_VERSION = "0.2.0";
2
+ export declare const SUPERCODEX_PROMPT_PACK = "supercodex";
3
+ export declare const SUPERCODEX_DEFAULT_AGENT = "supercodex_planner";
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SUPERCODEX_DEFAULT_AGENT = exports.SUPERCODEX_PROMPT_PACK = exports.SUPERCODEX_VERSION = void 0;
4
+ exports.SUPERCODEX_VERSION = "0.2.0";
5
+ exports.SUPERCODEX_PROMPT_PACK = "supercodex";
6
+ exports.SUPERCODEX_DEFAULT_AGENT = "supercodex_planner";
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,OAAO,CAAC;AAC7B,QAAA,sBAAsB,GAAG,YAAY,CAAC;AACtC,QAAA,wBAAwB,GAAG,oBAAoB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type TomlTable } from "../config";
2
+ import type { DoctorReport } from "./types";
3
+ export interface DoctorOptions {
4
+ codexHome?: string;
5
+ projectRoot?: string;
6
+ mcpConnectivity?: boolean;
7
+ }
8
+ export interface DoctorContext {
9
+ config: TomlTable;
10
+ configPath: string;
11
+ promptPackDir: string;
12
+ }
13
+ export interface DoctorRunResult {
14
+ report: DoctorReport;
15
+ context: DoctorContext;
16
+ }
17
+ export declare function runDoctorChecks(options?: DoctorOptions): Promise<DoctorRunResult>;
18
+ export declare function runMcpDoctorChecks(config: TomlTable, includeConnectivity: boolean): Promise<DoctorReport>;