@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,108 @@
1
+ import { type BackupResult } from "./backup";
2
+ import { type MergeWarning, type TomlTable } from "./config";
3
+ import { testMcpServer } from "./mcp";
4
+ import { getCodexPaths } from "./paths";
5
+ import { type CatalogEntry } from "./registry";
6
+ export interface OperationOptions {
7
+ codexHome?: string;
8
+ force?: boolean;
9
+ now?: Date;
10
+ }
11
+ export interface InstallResult {
12
+ paths: ReturnType<typeof getCodexPaths>;
13
+ backup: BackupResult;
14
+ configChanged: boolean;
15
+ promptChanged: boolean;
16
+ warnings: MergeWarning[];
17
+ }
18
+ export interface UninstallResult {
19
+ paths: ReturnType<typeof getCodexPaths>;
20
+ backup: BackupResult;
21
+ configChanged: boolean;
22
+ promptRemoved: boolean;
23
+ removedAgents: string[];
24
+ removedMcpServers: string[];
25
+ }
26
+ export interface AddMcpResult {
27
+ paths: ReturnType<typeof getCodexPaths>;
28
+ backup: BackupResult;
29
+ configChanged: boolean;
30
+ warnings: MergeWarning[];
31
+ }
32
+ export interface PromptListResult {
33
+ promptPackDir: string;
34
+ bundled: string[];
35
+ installed: string[];
36
+ }
37
+ export interface StatusResult {
38
+ codexHome: string;
39
+ configPath: string;
40
+ promptPackDir: string;
41
+ configExists: boolean;
42
+ promptPackInstalled: boolean;
43
+ supercodexInstalled: boolean;
44
+ managedAgents: string[];
45
+ managedMcpServers: string[];
46
+ overridePaths: string[];
47
+ defaultMode?: string;
48
+ defaultPersona?: string;
49
+ catalogVersion?: string;
50
+ catalogInstalledIds: string[];
51
+ }
52
+ export interface SetDefaultResult {
53
+ paths: ReturnType<typeof getCodexPaths>;
54
+ backup: BackupResult;
55
+ changed: boolean;
56
+ }
57
+ export interface McpListResult {
58
+ paths: ReturnType<typeof getCodexPaths>;
59
+ servers: Array<{
60
+ name: string;
61
+ transport: string;
62
+ }>;
63
+ }
64
+ export interface McpRemoveResult {
65
+ paths: ReturnType<typeof getCodexPaths>;
66
+ backup: BackupResult;
67
+ changed: boolean;
68
+ removed: boolean;
69
+ removedCatalogIds: string[];
70
+ }
71
+ export interface McpCatalogInstallResult {
72
+ paths: ReturnType<typeof getCodexPaths>;
73
+ backup: BackupResult;
74
+ configChanged: boolean;
75
+ warnings: MergeWarning[];
76
+ serverName: string;
77
+ catalogId: string;
78
+ }
79
+ export interface McpTestOperationResult {
80
+ paths: ReturnType<typeof getCodexPaths>;
81
+ exists: boolean;
82
+ result: Awaited<ReturnType<typeof testMcpServer>> | null;
83
+ }
84
+ export interface CatalogSyncResult {
85
+ paths: ReturnType<typeof getCodexPaths>;
86
+ backup: BackupResult;
87
+ changed: boolean;
88
+ }
89
+ export interface ValidateResult {
90
+ valid: boolean;
91
+ errors: string[];
92
+ }
93
+ export declare function installSupercodex(options?: OperationOptions): Promise<InstallResult>;
94
+ export declare function uninstallSupercodex(options?: OperationOptions): Promise<UninstallResult>;
95
+ export declare function addMcpServer(name: string, definition: TomlTable, options?: OperationOptions): Promise<AddMcpResult>;
96
+ export declare function listPromptPackStatus(codexHome?: string): Promise<PromptListResult>;
97
+ export declare function getSupercodexStatus(codexHome?: string): Promise<StatusResult>;
98
+ export declare function setDefaultMode(mode: string, options?: OperationOptions): Promise<SetDefaultResult>;
99
+ export declare function unsetDefaultMode(options?: OperationOptions): Promise<SetDefaultResult>;
100
+ export declare function setDefaultPersona(persona: string, options?: OperationOptions): Promise<SetDefaultResult>;
101
+ export declare function unsetDefaultPersona(options?: OperationOptions): Promise<SetDefaultResult>;
102
+ export declare function listConfiguredMcpServers(codexHome?: string): Promise<McpListResult>;
103
+ export declare function removeMcpServer(name: string, options?: OperationOptions): Promise<McpRemoveResult>;
104
+ export declare function installMcpFromCatalog(entry: CatalogEntry, options?: OperationOptions): Promise<McpCatalogInstallResult>;
105
+ export declare function testMcpServerByName(name: string, options?: OperationOptions): Promise<McpTestOperationResult>;
106
+ export declare function syncCatalogMetadata(options?: OperationOptions): Promise<CatalogSyncResult>;
107
+ export declare function updateDoctorState(status: "ok" | "issues", options?: OperationOptions): Promise<void>;
108
+ export declare function validateSupercodexCommandCount(commandIds: string[]): ValidateResult;
@@ -0,0 +1,388 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.installSupercodex = installSupercodex;
4
+ exports.uninstallSupercodex = uninstallSupercodex;
5
+ exports.addMcpServer = addMcpServer;
6
+ exports.listPromptPackStatus = listPromptPackStatus;
7
+ exports.getSupercodexStatus = getSupercodexStatus;
8
+ exports.setDefaultMode = setDefaultMode;
9
+ exports.unsetDefaultMode = unsetDefaultMode;
10
+ exports.setDefaultPersona = setDefaultPersona;
11
+ exports.unsetDefaultPersona = unsetDefaultPersona;
12
+ exports.listConfiguredMcpServers = listConfiguredMcpServers;
13
+ exports.removeMcpServer = removeMcpServer;
14
+ exports.installMcpFromCatalog = installMcpFromCatalog;
15
+ exports.testMcpServerByName = testMcpServerByName;
16
+ exports.syncCatalogMetadata = syncCatalogMetadata;
17
+ exports.updateDoctorState = updateDoctorState;
18
+ exports.validateSupercodexCommandCount = validateSupercodexCommandCount;
19
+ const promises_1 = require("node:fs/promises");
20
+ const backup_1 = require("./backup");
21
+ const config_1 = require("./config");
22
+ const fs_utils_1 = require("./fs-utils");
23
+ const mcp_1 = require("./mcp");
24
+ const paths_1 = require("./paths");
25
+ const prompts_1 = require("./prompts");
26
+ const registry_1 = require("./registry");
27
+ async function installSupercodex(options = {}) {
28
+ const paths = (0, paths_1.getCodexPaths)(options.codexHome);
29
+ await (0, promises_1.mkdir)(paths.home, { recursive: true });
30
+ const backup = await (0, backup_1.createTimestampedBackup)(paths.configPath, paths.home, options.now ?? new Date());
31
+ const current = await (0, config_1.loadConfig)(paths.configPath);
32
+ const spec = (0, config_1.createInstallSpec)(paths.promptPackDir);
33
+ const merged = (0, config_1.mergeInstallConfig)(current, spec, Boolean(options.force));
34
+ if (merged.changed) {
35
+ await (0, config_1.writeConfig)(paths.configPath, merged.config);
36
+ }
37
+ const promptInstall = await (0, prompts_1.installPromptPack)(paths.promptPackDir);
38
+ return {
39
+ paths,
40
+ backup,
41
+ configChanged: merged.changed,
42
+ promptChanged: promptInstall.changed,
43
+ warnings: merged.warnings
44
+ };
45
+ }
46
+ async function uninstallSupercodex(options = {}) {
47
+ const paths = (0, paths_1.getCodexPaths)(options.codexHome);
48
+ await (0, promises_1.mkdir)(paths.home, { recursive: true });
49
+ const backup = await (0, backup_1.createTimestampedBackup)(paths.configPath, paths.home, options.now ?? new Date());
50
+ const current = await (0, config_1.loadConfig)(paths.configPath);
51
+ const removed = (0, config_1.removeSupercodexManagedSections)(current);
52
+ if (removed.changed) {
53
+ await (0, config_1.writeConfig)(paths.configPath, removed.config);
54
+ }
55
+ const promptRemoved = await (0, prompts_1.removePromptPack)(paths.promptPackDir);
56
+ return {
57
+ paths,
58
+ backup,
59
+ configChanged: removed.changed,
60
+ promptRemoved,
61
+ removedAgents: removed.removedAgents,
62
+ removedMcpServers: removed.removedMcpServers
63
+ };
64
+ }
65
+ async function addMcpServer(name, definition, options = {}) {
66
+ const paths = (0, paths_1.getCodexPaths)(options.codexHome);
67
+ await (0, promises_1.mkdir)(paths.home, { recursive: true });
68
+ const backup = await (0, backup_1.createTimestampedBackup)(paths.configPath, paths.home, options.now ?? new Date());
69
+ const current = await (0, config_1.loadConfig)(paths.configPath);
70
+ const merged = (0, config_1.mergeMcpServerConfig)(current, name, definition, Boolean(options.force));
71
+ let nextConfig = merged.config;
72
+ let changed = merged.changed;
73
+ const warnings = [...merged.warnings];
74
+ const catalogPatch = (0, config_1.mergeSupercodexPatch)(nextConfig, {
75
+ catalog: {
76
+ source: "local",
77
+ catalog_version: registry_1.BUILTIN_CATALOG_VERSION
78
+ }
79
+ }, false);
80
+ if (catalogPatch.changed) {
81
+ nextConfig = catalogPatch.config;
82
+ changed = true;
83
+ warnings.push(...catalogPatch.warnings);
84
+ }
85
+ if (changed) {
86
+ await (0, config_1.writeConfig)(paths.configPath, nextConfig);
87
+ }
88
+ return {
89
+ paths,
90
+ backup,
91
+ configChanged: changed,
92
+ warnings
93
+ };
94
+ }
95
+ async function listPromptPackStatus(codexHome) {
96
+ const paths = (0, paths_1.getCodexPaths)(codexHome);
97
+ return {
98
+ promptPackDir: paths.promptPackDir,
99
+ bundled: (0, prompts_1.listBundledPrompts)(),
100
+ installed: await (0, prompts_1.listInstalledPrompts)(paths.promptPackDir)
101
+ };
102
+ }
103
+ async function getSupercodexStatus(codexHome) {
104
+ const paths = (0, paths_1.getCodexPaths)(codexHome);
105
+ const configExists = await (0, fs_utils_1.pathExists)(paths.configPath);
106
+ const promptPackInstalled = await (0, fs_utils_1.pathExists)(paths.promptPackDir);
107
+ const config = configExists ? await (0, config_1.loadConfig)(paths.configPath) : {};
108
+ const managed = (0, config_1.getManagedNames)(config);
109
+ const supercodex = (0, fs_utils_1.isPlainObject)(config.supercodex) ? config.supercodex : null;
110
+ const overridePaths = supercodex && (0, fs_utils_1.isPlainObject)(supercodex.overrides)
111
+ ? Object.keys(supercodex.overrides).sort()
112
+ : [];
113
+ const runtime = supercodex && (0, fs_utils_1.isPlainObject)(supercodex.runtime) ? supercodex.runtime : null;
114
+ const catalog = supercodex && (0, fs_utils_1.isPlainObject)(supercodex.catalog) ? supercodex.catalog : null;
115
+ const catalogInstalledIds = Array.isArray(catalog?.installed_ids)
116
+ ? (catalog?.installed_ids)
117
+ .filter((value) => typeof value === "string" && value.trim().length > 0)
118
+ .sort()
119
+ : [];
120
+ return {
121
+ codexHome: paths.home,
122
+ configPath: paths.configPath,
123
+ promptPackDir: paths.promptPackDir,
124
+ configExists,
125
+ promptPackInstalled,
126
+ supercodexInstalled: Boolean(supercodex),
127
+ managedAgents: managed.agents,
128
+ managedMcpServers: managed.mcpServers,
129
+ overridePaths,
130
+ defaultMode: typeof runtime?.default_mode === "string" ? runtime.default_mode : undefined,
131
+ defaultPersona: typeof runtime?.default_persona === "string" ? runtime.default_persona : undefined,
132
+ catalogVersion: typeof runtime?.catalog_version === "string" ? runtime.catalog_version : undefined,
133
+ catalogInstalledIds
134
+ };
135
+ }
136
+ async function setDefaultMode(mode, options = {}) {
137
+ return updateRuntimeKey("default_mode", mode, options);
138
+ }
139
+ async function unsetDefaultMode(options = {}) {
140
+ return clearRuntimeKey("default_mode", options);
141
+ }
142
+ async function setDefaultPersona(persona, options = {}) {
143
+ return updateRuntimeKey("default_persona", persona, options);
144
+ }
145
+ async function unsetDefaultPersona(options = {}) {
146
+ return clearRuntimeKey("default_persona", options);
147
+ }
148
+ async function listConfiguredMcpServers(codexHome) {
149
+ const paths = (0, paths_1.getCodexPaths)(codexHome);
150
+ const config = (await (0, fs_utils_1.pathExists)(paths.configPath)) ? await (0, config_1.loadConfig)(paths.configPath) : {};
151
+ const servers = (0, mcp_1.listMcpServersFromConfig)(config).map((server) => ({
152
+ name: server.name,
153
+ transport: String(server.definition.transport ?? "unknown")
154
+ }));
155
+ return { paths, servers };
156
+ }
157
+ async function removeMcpServer(name, options = {}) {
158
+ const paths = (0, paths_1.getCodexPaths)(options.codexHome);
159
+ await (0, promises_1.mkdir)(paths.home, { recursive: true });
160
+ const backup = await (0, backup_1.createTimestampedBackup)(paths.configPath, paths.home, options.now ?? new Date());
161
+ const config = await (0, config_1.loadConfig)(paths.configPath);
162
+ const removedCatalogIds = new Set();
163
+ let changed = false;
164
+ if ((0, fs_utils_1.isPlainObject)(config.mcp_servers) && Object.hasOwn(config.mcp_servers, name)) {
165
+ delete config.mcp_servers[name];
166
+ changed = true;
167
+ if (Object.keys(config.mcp_servers).length === 0) {
168
+ delete config.mcp_servers;
169
+ }
170
+ }
171
+ const supercodex = (0, fs_utils_1.isPlainObject)(config.supercodex) ? config.supercodex : null;
172
+ if (supercodex && (0, fs_utils_1.isPlainObject)(supercodex.managed)) {
173
+ const managed = supercodex.managed;
174
+ if (Array.isArray(managed.mcp_servers)) {
175
+ const filtered = managed.mcp_servers
176
+ .filter((value) => typeof value === "string")
177
+ .filter((value) => value !== name);
178
+ if (managed.mcp_servers.length !== filtered.length) {
179
+ managed.mcp_servers = filtered.sort();
180
+ changed = true;
181
+ }
182
+ }
183
+ }
184
+ if (supercodex && (0, fs_utils_1.isPlainObject)(supercodex.catalog) && Array.isArray(supercodex.catalog.installed_ids)) {
185
+ const catalog = supercodex.catalog;
186
+ if ((0, fs_utils_1.isPlainObject)(catalog.installed_servers)) {
187
+ const installedServers = catalog.installed_servers;
188
+ const mappedId = typeof installedServers[name] === "string" ? installedServers[name] : null;
189
+ if (mappedId) {
190
+ removedCatalogIds.add(mappedId);
191
+ delete installedServers[name];
192
+ changed = true;
193
+ }
194
+ }
195
+ const beforeIds = catalog.installed_ids
196
+ .filter((value) => typeof value === "string");
197
+ const filtered = beforeIds.filter((value) => {
198
+ if (removedCatalogIds.has(value)) {
199
+ return false;
200
+ }
201
+ if (removedCatalogIds.size === 0 && value === name) {
202
+ removedCatalogIds.add(value);
203
+ return false;
204
+ }
205
+ return true;
206
+ });
207
+ if (beforeIds.length !== filtered.length) {
208
+ catalog.installed_ids = filtered.sort();
209
+ changed = true;
210
+ }
211
+ }
212
+ if (changed) {
213
+ await (0, config_1.writeConfig)(paths.configPath, config);
214
+ }
215
+ return {
216
+ paths,
217
+ backup,
218
+ changed,
219
+ removed: changed,
220
+ removedCatalogIds: Array.from(removedCatalogIds).sort()
221
+ };
222
+ }
223
+ async function installMcpFromCatalog(entry, options = {}) {
224
+ const paths = (0, paths_1.getCodexPaths)(options.codexHome);
225
+ await (0, promises_1.mkdir)(paths.home, { recursive: true });
226
+ const backup = await (0, backup_1.createTimestampedBackup)(paths.configPath, paths.home, options.now ?? new Date());
227
+ const current = await (0, config_1.loadConfig)(paths.configPath);
228
+ const serverName = entry.name;
229
+ const definition = (0, mcp_1.buildServerDefinitionFromCatalog)(entry);
230
+ const merged = (0, config_1.mergeMcpServerConfig)(current, serverName, definition, Boolean(options.force));
231
+ let nextConfig = merged.config;
232
+ let changed = merged.changed;
233
+ const warnings = [...merged.warnings];
234
+ const supercodex = ensureSupercodexTable(nextConfig);
235
+ const runtime = ensureChildTable(supercodex, "runtime");
236
+ if (runtime.catalog_version !== registry_1.BUILTIN_CATALOG_VERSION) {
237
+ runtime.catalog_version = registry_1.BUILTIN_CATALOG_VERSION;
238
+ changed = true;
239
+ }
240
+ const catalog = ensureChildTable(supercodex, "catalog");
241
+ const installedIds = Array.isArray(catalog.installed_ids)
242
+ ? catalog.installed_ids.filter((value) => typeof value === "string")
243
+ : [];
244
+ if (!installedIds.includes(entry.id)) {
245
+ installedIds.push(entry.id);
246
+ catalog.installed_ids = installedIds.sort();
247
+ changed = true;
248
+ }
249
+ const installedServers = ensureChildTable(catalog, "installed_servers");
250
+ if (installedServers[serverName] !== entry.id) {
251
+ installedServers[serverName] = entry.id;
252
+ changed = true;
253
+ }
254
+ if (!catalog.catalog_version || typeof catalog.catalog_version !== "string") {
255
+ catalog.catalog_version = registry_1.BUILTIN_CATALOG_VERSION;
256
+ changed = true;
257
+ }
258
+ if (changed) {
259
+ await (0, config_1.writeConfig)(paths.configPath, nextConfig);
260
+ }
261
+ return {
262
+ paths,
263
+ backup,
264
+ configChanged: changed,
265
+ warnings,
266
+ serverName,
267
+ catalogId: entry.id
268
+ };
269
+ }
270
+ async function testMcpServerByName(name, options = {}) {
271
+ const paths = (0, paths_1.getCodexPaths)(options.codexHome);
272
+ const config = (await (0, fs_utils_1.pathExists)(paths.configPath)) ? await (0, config_1.loadConfig)(paths.configPath) : {};
273
+ const server = (0, mcp_1.getMcpServerFromConfig)(config, name);
274
+ if (!server) {
275
+ return {
276
+ paths,
277
+ exists: false,
278
+ result: null
279
+ };
280
+ }
281
+ return {
282
+ paths,
283
+ exists: true,
284
+ result: await (0, mcp_1.testMcpServer)(server.name, server.definition)
285
+ };
286
+ }
287
+ async function syncCatalogMetadata(options = {}) {
288
+ const paths = (0, paths_1.getCodexPaths)(options.codexHome);
289
+ await (0, promises_1.mkdir)(paths.home, { recursive: true });
290
+ const backup = await (0, backup_1.createTimestampedBackup)(paths.configPath, paths.home, options.now ?? new Date());
291
+ const config = await (0, config_1.loadConfig)(paths.configPath);
292
+ const merged = (0, config_1.mergeSupercodexPatch)(config, {
293
+ catalog: {
294
+ source: "local"
295
+ },
296
+ runtime: {
297
+ catalog_version: registry_1.BUILTIN_CATALOG_VERSION
298
+ }
299
+ }, false);
300
+ if (merged.changed) {
301
+ await (0, config_1.writeConfig)(paths.configPath, merged.config);
302
+ }
303
+ return {
304
+ paths,
305
+ backup,
306
+ changed: merged.changed
307
+ };
308
+ }
309
+ async function updateDoctorState(status, options = {}) {
310
+ const paths = (0, paths_1.getCodexPaths)(options.codexHome);
311
+ if (!(await (0, fs_utils_1.pathExists)(paths.configPath))) {
312
+ return;
313
+ }
314
+ const config = await (0, config_1.loadConfig)(paths.configPath);
315
+ const supercodex = ensureSupercodexTable(config);
316
+ const doctor = ensureChildTable(supercodex, "doctor");
317
+ const nextRunAt = new Date().toISOString();
318
+ const changed = doctor.last_status !== status || doctor.last_run_at !== nextRunAt;
319
+ doctor.last_run_at = nextRunAt;
320
+ doctor.last_status = status;
321
+ if (changed) {
322
+ await (0, backup_1.createTimestampedBackup)(paths.configPath, paths.home, options.now ?? new Date());
323
+ await (0, config_1.writeConfig)(paths.configPath, config);
324
+ }
325
+ }
326
+ function validateSupercodexCommandCount(commandIds) {
327
+ if (commandIds.length < 26) {
328
+ return {
329
+ valid: false,
330
+ errors: [`Expected at least 26 commands but found ${commandIds.length}.`]
331
+ };
332
+ }
333
+ return {
334
+ valid: true,
335
+ errors: []
336
+ };
337
+ }
338
+ async function updateRuntimeKey(key, value, options) {
339
+ const paths = (0, paths_1.getCodexPaths)(options.codexHome);
340
+ await (0, promises_1.mkdir)(paths.home, { recursive: true });
341
+ const backup = await (0, backup_1.createTimestampedBackup)(paths.configPath, paths.home, options.now ?? new Date());
342
+ const config = await (0, config_1.loadConfig)(paths.configPath);
343
+ const supercodex = ensureSupercodexTable(config);
344
+ const runtime = ensureChildTable(supercodex, "runtime");
345
+ const changed = runtime[key] !== value;
346
+ runtime[key] = value;
347
+ if (changed) {
348
+ await (0, config_1.writeConfig)(paths.configPath, config);
349
+ }
350
+ return {
351
+ paths,
352
+ backup,
353
+ changed
354
+ };
355
+ }
356
+ async function clearRuntimeKey(key, options) {
357
+ const paths = (0, paths_1.getCodexPaths)(options.codexHome);
358
+ await (0, promises_1.mkdir)(paths.home, { recursive: true });
359
+ const backup = await (0, backup_1.createTimestampedBackup)(paths.configPath, paths.home, options.now ?? new Date());
360
+ const config = await (0, config_1.loadConfig)(paths.configPath);
361
+ const supercodex = (0, fs_utils_1.isPlainObject)(config.supercodex) ? config.supercodex : null;
362
+ const runtime = supercodex && (0, fs_utils_1.isPlainObject)(supercodex.runtime) ? supercodex.runtime : null;
363
+ const changed = Boolean(runtime && Object.hasOwn(runtime, key));
364
+ if (runtime && Object.hasOwn(runtime, key)) {
365
+ delete runtime[key];
366
+ }
367
+ if (changed) {
368
+ await (0, config_1.writeConfig)(paths.configPath, config);
369
+ }
370
+ return {
371
+ paths,
372
+ backup,
373
+ changed
374
+ };
375
+ }
376
+ function ensureSupercodexTable(config) {
377
+ if (!(0, fs_utils_1.isPlainObject)(config.supercodex)) {
378
+ config.supercodex = {};
379
+ }
380
+ return config.supercodex;
381
+ }
382
+ function ensureChildTable(parent, key) {
383
+ if (!(0, fs_utils_1.isPlainObject)(parent[key])) {
384
+ parent[key] = {};
385
+ }
386
+ return parent[key];
387
+ }
388
+ //# sourceMappingURL=operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface CodexPaths {
2
+ home: string;
3
+ configPath: string;
4
+ backupsDir: string;
5
+ promptsDir: string;
6
+ promptPackDir: string;
7
+ supercodexDir: string;
8
+ registryPath: string;
9
+ }
10
+ export declare function expandHomePath(inputPath: string): string;
11
+ export declare function resolveCodexHome(codexHome?: string): string;
12
+ export declare function getCodexPaths(codexHome?: string): CodexPaths;
package/dist/paths.js ADDED
@@ -0,0 +1,41 @@
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.expandHomePath = expandHomePath;
7
+ exports.resolveCodexHome = resolveCodexHome;
8
+ exports.getCodexPaths = getCodexPaths;
9
+ const node_os_1 = __importDefault(require("node:os"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const constants_1 = require("./constants");
12
+ function expandHomePath(inputPath) {
13
+ if (!inputPath.startsWith("~")) {
14
+ return inputPath;
15
+ }
16
+ const home = node_os_1.default.homedir();
17
+ if (inputPath === "~") {
18
+ return home;
19
+ }
20
+ if (inputPath.startsWith("~/") || inputPath.startsWith("~\\")) {
21
+ return node_path_1.default.join(home, inputPath.slice(2));
22
+ }
23
+ return inputPath;
24
+ }
25
+ function resolveCodexHome(codexHome) {
26
+ const basePath = codexHome ?? process.env.CODEX_HOME ?? node_path_1.default.join(node_os_1.default.homedir(), ".codex");
27
+ return node_path_1.default.resolve(expandHomePath(basePath));
28
+ }
29
+ function getCodexPaths(codexHome) {
30
+ const home = resolveCodexHome(codexHome);
31
+ return {
32
+ home,
33
+ configPath: node_path_1.default.join(home, "config.toml"),
34
+ backupsDir: node_path_1.default.join(home, "backups"),
35
+ promptsDir: node_path_1.default.join(home, "prompts"),
36
+ promptPackDir: node_path_1.default.join(home, "prompts", constants_1.SUPERCODEX_PROMPT_PACK),
37
+ supercodexDir: node_path_1.default.join(home, "supercodex"),
38
+ registryPath: node_path_1.default.join(home, "supercodex", "registry.toml")
39
+ };
40
+ }
41
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":";;;;;AAeA,wCAeC;AAED,4CAGC;AAED,sCAYC;AAjDD,sDAAyB;AACzB,0DAA6B;AAE7B,2CAAqD;AAYrD,SAAgB,cAAc,CAAC,SAAiB;IAC9C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,iBAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,gBAAgB,CAAC,SAAkB;IACjD,MAAM,QAAQ,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1F,OAAO,mBAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,aAAa,CAAC,SAAkB;IAC9C,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAEzC,OAAO;QACL,IAAI;QACJ,UAAU,EAAE,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QAC1C,UAAU,EAAE,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;QACtC,UAAU,EAAE,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;QACtC,aAAa,EAAE,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,kCAAsB,CAAC;QACjE,aAAa,EAAE,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;QAC5C,YAAY,EAAE,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,eAAe,CAAC;KAC7D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface InitProjectResult {
2
+ configPath: string;
3
+ readmePath: string;
4
+ configChanged: boolean;
5
+ readmeChanged: boolean;
6
+ skippedPaths: string[];
7
+ }
8
+ export declare function initProjectTemplate(projectRoot?: string): Promise<InitProjectResult>;