ceetrix 1.0.19 → 1.1.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.
@@ -0,0 +1,42 @@
1
+ /**
2
+ * OpenAI Codex CLI integration (Story 397)
3
+ *
4
+ * Codex uses TOML config at ~/.codex/config.toml.
5
+ * API keys are referenced via environment variables (env_http_headers),
6
+ * never stored in plaintext.
7
+ *
8
+ * Direct file write because `codex mcp add` does not support custom headers.
9
+ */
10
+ /**
11
+ * Check if the Codex CLI is available.
12
+ *
13
+ * @returns true if codex command is available and responds to --version
14
+ */
15
+ export declare function isCodexAvailable(): Promise<boolean>;
16
+ /**
17
+ * Add Ceetrix MCP server configuration to Codex.
18
+ *
19
+ * Reads existing config.toml, merges ceetrix entry, writes back.
20
+ * Uses env_http_headers so the API key is read from an environment
21
+ * variable at runtime, never stored in plaintext.
22
+ *
23
+ * @param _apiKey - Not written to TOML. The env var name is written instead.
24
+ * @param url - The MCP server URL
25
+ */
26
+ export declare function addConfig(_apiKey: string, url: string): Promise<void>;
27
+ /**
28
+ * Check if Ceetrix is already configured in Codex.
29
+ *
30
+ * @returns true if ceetrix MCP server entry exists in config.toml
31
+ */
32
+ export declare function checkExistingConfig(): Promise<boolean>;
33
+ /**
34
+ * Remove Ceetrix configuration from Codex.
35
+ * Preserves all other config entries.
36
+ */
37
+ export declare function removeConfig(): Promise<void>;
38
+ /**
39
+ * Reset cached codex path (for testing).
40
+ */
41
+ export declare function resetCache(): void;
42
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyFH;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAKzD;AAID;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B3E;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAQ5D;AAED;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAYlD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC"}
package/dist/codex.js ADDED
@@ -0,0 +1,152 @@
1
+ /**
2
+ * OpenAI Codex CLI integration (Story 397)
3
+ *
4
+ * Codex uses TOML config at ~/.codex/config.toml.
5
+ * API keys are referenced via environment variables (env_http_headers),
6
+ * never stored in plaintext.
7
+ *
8
+ * Direct file write because `codex mcp add` does not support custom headers.
9
+ */
10
+ import { readFile, writeFile, mkdir } from 'fs/promises';
11
+ import { join } from 'path';
12
+ import { homedir } from 'os';
13
+ import { exec } from 'child_process';
14
+ import { promisify } from 'util';
15
+ import which from 'which';
16
+ import { parse, stringify } from 'smol-toml';
17
+ import { CODEX_CONFIG_DIR, CODEX_CONFIG_FILE, CODEX_MCP_SERVER_NAME, CODEX_API_KEY_ENV_VAR, CODEX_VERSION_MARKER, CODEX_VERSION_CHECK_TIMEOUT_MS, COMMON_CODEX_PATHS, } from './constants.js';
18
+ const execAsync = promisify(exec);
19
+ /** Full path to Codex config directory */
20
+ function getConfigDir() {
21
+ return join(homedir(), CODEX_CONFIG_DIR);
22
+ }
23
+ /** Full path to Codex config file */
24
+ function getConfigPath() {
25
+ return join(getConfigDir(), CODEX_CONFIG_FILE);
26
+ }
27
+ // --- Detection ---
28
+ /** Cached path to codex executable */
29
+ let cachedCodexPath = null;
30
+ /**
31
+ * Verify a path is actually OpenAI Codex CLI.
32
+ *
33
+ * @param path - Path to executable
34
+ * @returns true if responds with version output containing the Codex marker
35
+ */
36
+ async function isCodexCli(path) {
37
+ try {
38
+ const { stdout } = await execAsync(`"${path}" --version`, {
39
+ timeout: CODEX_VERSION_CHECK_TIMEOUT_MS,
40
+ });
41
+ return stdout.toLowerCase().includes(CODEX_VERSION_MARKER);
42
+ }
43
+ catch {
44
+ return false;
45
+ }
46
+ }
47
+ /**
48
+ * Find codex executable by checking candidates in order.
49
+ * Verifies each candidate is actually Codex CLI.
50
+ *
51
+ * @returns Full path to codex executable, or null if not found
52
+ */
53
+ async function findCodexPath() {
54
+ const candidates = [];
55
+ try {
56
+ candidates.push(await which('codex'));
57
+ }
58
+ catch {
59
+ // Not in PATH
60
+ }
61
+ candidates.push(...COMMON_CODEX_PATHS);
62
+ for (const path of candidates) {
63
+ if (await isCodexCli(path)) {
64
+ return path;
65
+ }
66
+ }
67
+ return null;
68
+ }
69
+ /**
70
+ * Check if the Codex CLI is available.
71
+ *
72
+ * @returns true if codex command is available and responds to --version
73
+ */
74
+ export async function isCodexAvailable() {
75
+ if (cachedCodexPath === null) {
76
+ cachedCodexPath = (await findCodexPath()) ?? '';
77
+ }
78
+ return cachedCodexPath !== '';
79
+ }
80
+ // --- Config management ---
81
+ /**
82
+ * Add Ceetrix MCP server configuration to Codex.
83
+ *
84
+ * Reads existing config.toml, merges ceetrix entry, writes back.
85
+ * Uses env_http_headers so the API key is read from an environment
86
+ * variable at runtime, never stored in plaintext.
87
+ *
88
+ * @param _apiKey - Not written to TOML. The env var name is written instead.
89
+ * @param url - The MCP server URL
90
+ */
91
+ export async function addConfig(_apiKey, url) {
92
+ const configDir = getConfigDir();
93
+ const configPath = getConfigPath();
94
+ await mkdir(configDir, { recursive: true });
95
+ let config = {};
96
+ try {
97
+ const existingContent = await readFile(configPath, 'utf-8');
98
+ if (existingContent.trim()) {
99
+ config = parse(existingContent);
100
+ }
101
+ }
102
+ catch {
103
+ // File doesn't exist or is invalid, start fresh
104
+ }
105
+ if (!config.mcp_servers) {
106
+ config.mcp_servers = {};
107
+ }
108
+ config.mcp_servers[CODEX_MCP_SERVER_NAME] = {
109
+ url,
110
+ env_http_headers: { 'X-API-Key': CODEX_API_KEY_ENV_VAR },
111
+ };
112
+ await writeFile(configPath, stringify(config), 'utf-8');
113
+ }
114
+ /**
115
+ * Check if Ceetrix is already configured in Codex.
116
+ *
117
+ * @returns true if ceetrix MCP server entry exists in config.toml
118
+ */
119
+ export async function checkExistingConfig() {
120
+ try {
121
+ const content = await readFile(getConfigPath(), 'utf-8');
122
+ const config = parse(content);
123
+ return !!(config.mcp_servers && config.mcp_servers[CODEX_MCP_SERVER_NAME]);
124
+ }
125
+ catch {
126
+ return false;
127
+ }
128
+ }
129
+ /**
130
+ * Remove Ceetrix configuration from Codex.
131
+ * Preserves all other config entries.
132
+ */
133
+ export async function removeConfig() {
134
+ try {
135
+ const content = await readFile(getConfigPath(), 'utf-8');
136
+ const config = parse(content);
137
+ if (config.mcp_servers && config.mcp_servers[CODEX_MCP_SERVER_NAME]) {
138
+ delete config.mcp_servers[CODEX_MCP_SERVER_NAME];
139
+ await writeFile(getConfigPath(), stringify(config), 'utf-8');
140
+ }
141
+ }
142
+ catch {
143
+ // File doesn't exist or other error, nothing to remove
144
+ }
145
+ }
146
+ /**
147
+ * Reset cached codex path (for testing).
148
+ */
149
+ export function resetCache() {
150
+ cachedCodexPath = null;
151
+ }
152
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,14 +1,30 @@
1
1
  /**
2
2
  * Configuration management for existing Ceetrix setup
3
+ *
4
+ * Checks and manages Ceetrix config across supported agents.
5
+ */
6
+ import type { AgentType } from './prompts.js';
7
+ /** Per-agent detection and configuration status */
8
+ export interface AgentStatus {
9
+ detected: boolean;
10
+ configured: boolean;
11
+ }
12
+ /**
13
+ * Get detection and configuration status for all supported agents.
14
+ *
15
+ * Runs all checks in parallel for speed.
16
+ *
17
+ * @returns Per-agent status map
3
18
  */
19
+ export declare function getAgentStatuses(): Promise<Record<AgentType, AgentStatus>>;
4
20
  /**
5
- * Check if Ceetrix is already configured in Claude Code.
21
+ * Check if Ceetrix is already configured in any supported agent.
6
22
  *
7
- * @returns true if ceetrix MCP server is configured
23
+ * @returns true if ceetrix is configured in Claude Code or Codex CLI
8
24
  */
9
25
  export declare function checkExistingConfig(): Promise<boolean>;
10
26
  /**
11
- * Remove existing Ceetrix configuration from Claude Code.
27
+ * Remove existing Ceetrix configuration from all supported agents.
12
28
  *
13
29
  * @throws Error if removal fails
14
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE5D;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,mDAAmD;AACnD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAWhF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAM5D;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK1D"}
package/dist/config.js CHANGED
@@ -1,21 +1,50 @@
1
1
  /**
2
2
  * Configuration management for existing Ceetrix setup
3
+ *
4
+ * Checks and manages Ceetrix config across supported agents.
5
+ */
6
+ import { checkClaudeCli, checkExistingConfig as checkClaudeConfig, removeConfig as removeClaudeConfig } from './claude.js';
7
+ import { isCodexAvailable, checkExistingConfig as checkCodexConfig, removeConfig as removeCodexConfig } from './codex.js';
8
+ /**
9
+ * Get detection and configuration status for all supported agents.
10
+ *
11
+ * Runs all checks in parallel for speed.
12
+ *
13
+ * @returns Per-agent status map
3
14
  */
4
- import { checkExistingConfig as checkClaudeConfig, removeConfig as removeClaudeConfig } from './claude.js';
15
+ export async function getAgentStatuses() {
16
+ const [claudeDetected, codexDetected, claudeConfigured, codexConfigured] = await Promise.all([
17
+ checkClaudeCli(),
18
+ isCodexAvailable(),
19
+ checkClaudeConfig(),
20
+ checkCodexConfig(),
21
+ ]);
22
+ return {
23
+ claude: { detected: claudeDetected, configured: claudeConfigured },
24
+ codex: { detected: codexDetected, configured: codexConfigured },
25
+ };
26
+ }
5
27
  /**
6
- * Check if Ceetrix is already configured in Claude Code.
28
+ * Check if Ceetrix is already configured in any supported agent.
7
29
  *
8
- * @returns true if ceetrix MCP server is configured
30
+ * @returns true if ceetrix is configured in Claude Code or Codex CLI
9
31
  */
10
32
  export async function checkExistingConfig() {
11
- return checkClaudeConfig();
33
+ const [claude, codex] = await Promise.all([
34
+ checkClaudeConfig(),
35
+ checkCodexConfig(),
36
+ ]);
37
+ return claude || codex;
12
38
  }
13
39
  /**
14
- * Remove existing Ceetrix configuration from Claude Code.
40
+ * Remove existing Ceetrix configuration from all supported agents.
15
41
  *
16
42
  * @throws Error if removal fails
17
43
  */
18
44
  export async function removeExistingConfig() {
19
- await removeClaudeConfig();
45
+ await Promise.all([
46
+ removeClaudeConfig(),
47
+ removeCodexConfig(),
48
+ ]);
20
49
  }
21
50
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,IAAI,iBAAiB,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE3G;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,OAAO,iBAAiB,EAAE,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,kBAAkB,EAAE,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,mBAAmB,IAAI,iBAAiB,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC3H,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,IAAI,gBAAgB,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAS1H;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,CAAC,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3F,cAAc,EAAE;QAChB,gBAAgB,EAAE;QAClB,iBAAiB,EAAE;QACnB,gBAAgB,EAAE;KACnB,CAAC,CAAC;IACH,OAAO;QACL,MAAM,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE;QAClE,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE;KAChE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxC,iBAAiB,EAAE;QACnB,gBAAgB,EAAE;KACnB,CAAC,CAAC;IACH,OAAO,MAAM,IAAI,KAAK,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,kBAAkB,EAAE;QACpB,iBAAiB,EAAE;KACpB,CAAC,CAAC;AACL,CAAC"}
@@ -36,6 +36,22 @@ export declare const DEVICE_COMPLETE_PATH = "/setup/device-complete";
36
36
  export declare function getClientIdUrl(): string;
37
37
  /** Device completion endpoint URL */
38
38
  export declare function getDeviceCompleteUrl(): string;
39
+ /** Codex CLI config directory (relative to home) */
40
+ export declare const CODEX_CONFIG_DIR = ".codex";
41
+ /** Codex CLI config filename */
42
+ export declare const CODEX_CONFIG_FILE = "config.toml";
43
+ /** MCP server name in Codex TOML config */
44
+ export declare const CODEX_MCP_SERVER_NAME = "ceetrix";
45
+ /** Environment variable name for API key in Codex env_http_headers */
46
+ export declare const CODEX_API_KEY_ENV_VAR = "CEETRIX_API_KEY";
47
+ /** Expected string in Codex CLI version output (lowercase match) */
48
+ export declare const CODEX_VERSION_MARKER = "codex";
49
+ /** Timeout for Codex CLI commands in milliseconds */
50
+ export declare const CODEX_COMMAND_TIMEOUT_MS = 10000;
51
+ /** Short timeout for Codex version check */
52
+ export declare const CODEX_VERSION_CHECK_TIMEOUT_MS = 3000;
53
+ /** Common installation paths for Codex CLI (fallback when not in PATH) */
54
+ export declare const COMMON_CODEX_PATHS: string[];
39
55
  /**
40
56
  * Check if we're using a custom (non-production) API URL.
41
57
  *
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8EAA8E;AAC9E,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,yBAAyB;AACzB,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,yDAAyD;AACzD,eAAO,MAAM,eAAe,QAAgB,CAAC;AAE7C,6CAA6C;AAC7C,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,4DAA4D;AAC5D,eAAO,MAAM,UAAU,UAAsC,CAAC;AAE9D,6DAA6D;AAC7D,wBAAgB,eAAe,IAAI,MAAM,CAexC;AAID,sDAAsD;AACtD,eAAO,MAAM,sBAAsB,yCAAyC,CAAC;AAE7E,2CAA2C;AAC3C,eAAO,MAAM,uBAAuB,gDAAgD,CAAC;AAErF,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,iDAAiD,CAAC;AAErF,gEAAgE;AAChE,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,sFAAsF;AACtF,eAAO,MAAM,sCAAsC,IAAI,CAAC;AAExD,yGAAyG;AACzG,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,8BAA8B;AAC9B,eAAO,MAAM,cAAc,qBAAqB,CAAC;AAEjD,sCAAsC;AACtC,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AAE7D,6BAA6B;AAC7B,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,qCAAqC;AACrC,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAOD;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAOxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAajD"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8EAA8E;AAC9E,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,yBAAyB;AACzB,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,yDAAyD;AACzD,eAAO,MAAM,eAAe,QAAgB,CAAC;AAE7C,6CAA6C;AAC7C,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,4DAA4D;AAC5D,eAAO,MAAM,UAAU,UAAsC,CAAC;AAE9D,6DAA6D;AAC7D,wBAAgB,eAAe,IAAI,MAAM,CAexC;AAID,sDAAsD;AACtD,eAAO,MAAM,sBAAsB,yCAAyC,CAAC;AAE7E,2CAA2C;AAC3C,eAAO,MAAM,uBAAuB,gDAAgD,CAAC;AAErF,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,iDAAiD,CAAC;AAErF,gEAAgE;AAChE,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,sFAAsF;AACtF,eAAO,MAAM,sCAAsC,IAAI,CAAC;AAExD,yGAAyG;AACzG,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,8BAA8B;AAC9B,eAAO,MAAM,cAAc,qBAAqB,CAAC;AAEjD,sCAAsC;AACtC,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AAE7D,6BAA6B;AAC7B,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,qCAAqC;AACrC,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAMD,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,gCAAgC;AAChC,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,2CAA2C;AAC3C,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAE/C,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD,oEAAoE;AACpE,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAE5C,qDAAqD;AACrD,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C,4CAA4C;AAC5C,eAAO,MAAM,8BAA8B,OAAO,CAAC;AAEnD,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,UAK9B,CAAC;AAOF;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAOxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAajD"}
package/dist/constants.js CHANGED
@@ -59,6 +59,29 @@ export function getDeviceCompleteUrl() {
59
59
  return `${getApiBaseUrl()}${DEVICE_COMPLETE_PATH}`;
60
60
  }
61
61
  // --- End Device Flow constants ---
62
+ // --- Codex CLI constants (Story 397) ---
63
+ /** Codex CLI config directory (relative to home) */
64
+ export const CODEX_CONFIG_DIR = '.codex';
65
+ /** Codex CLI config filename */
66
+ export const CODEX_CONFIG_FILE = 'config.toml';
67
+ /** MCP server name in Codex TOML config */
68
+ export const CODEX_MCP_SERVER_NAME = 'ceetrix';
69
+ /** Environment variable name for API key in Codex env_http_headers */
70
+ export const CODEX_API_KEY_ENV_VAR = 'CEETRIX_API_KEY';
71
+ /** Expected string in Codex CLI version output (lowercase match) */
72
+ export const CODEX_VERSION_MARKER = 'codex';
73
+ /** Timeout for Codex CLI commands in milliseconds */
74
+ export const CODEX_COMMAND_TIMEOUT_MS = 10000;
75
+ /** Short timeout for Codex version check */
76
+ export const CODEX_VERSION_CHECK_TIMEOUT_MS = 3000;
77
+ /** Common installation paths for Codex CLI (fallback when not in PATH) */
78
+ export const COMMON_CODEX_PATHS = [
79
+ '/opt/homebrew/bin/codex',
80
+ '/usr/local/bin/codex',
81
+ '/usr/bin/codex',
82
+ `${process.env.HOME}/.local/bin/codex`,
83
+ ];
84
+ // --- End Codex CLI constants ---
62
85
  /** Production API base URL (for comparison) */
63
86
  const PRODUCTION_API_URL = 'https://api.ceetrix.com';
64
87
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6BH;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAqHpD"}
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwCH;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA0KpD"}
package/dist/debug.js CHANGED
@@ -6,7 +6,11 @@
6
6
  */
7
7
  import { exec } from 'child_process';
8
8
  import { promisify } from 'util';
9
+ import { readFile } from 'fs/promises';
10
+ import { join } from 'path';
11
+ import { homedir } from 'os';
9
12
  import which from 'which';
13
+ import { CODEX_CONFIG_DIR, CODEX_CONFIG_FILE, CODEX_API_KEY_ENV_VAR, CODEX_VERSION_MARKER, CODEX_VERSION_CHECK_TIMEOUT_MS, COMMON_CODEX_PATHS, } from './constants.js';
10
14
  const execAsync = promisify(exec);
11
15
  /** Common installation paths for Claude CLI */
12
16
  const COMMON_CLAUDE_PATHS = [
@@ -109,9 +113,63 @@ export async function printDebugInfo() {
109
113
  console.log(` ${status}`);
110
114
  }
111
115
  console.log('');
112
- // Existing MCP config
113
- console.log('Ceetrix MCP Config');
114
- console.log('──────────────────');
116
+ // Codex CLI detection
117
+ console.log('Codex CLI Detection');
118
+ console.log('───────────────────');
119
+ async function checkCodexVersion(path) {
120
+ try {
121
+ const { stdout } = await execAsync(`"${path}" --version`, {
122
+ timeout: CODEX_VERSION_CHECK_TIMEOUT_MS,
123
+ });
124
+ if (stdout.toLowerCase().includes(CODEX_VERSION_MARKER)) {
125
+ return `✓ Codex CLI (${stdout.trim()})`;
126
+ }
127
+ return `✗ NOT Codex CLI (responds: ${stdout.trim().slice(0, 40)})`;
128
+ }
129
+ catch (e) {
130
+ const err = e;
131
+ if (err.killed)
132
+ return '✗ TIMEOUT';
133
+ return '✗ NOT FOUND or ERROR';
134
+ }
135
+ }
136
+ let codexWhichPath = null;
137
+ try {
138
+ codexWhichPath = await which('codex');
139
+ const status = await checkCodexVersion(codexWhichPath);
140
+ console.log(` which('codex'): ${codexWhichPath}`);
141
+ console.log(` ${status}`);
142
+ }
143
+ catch {
144
+ console.log(` which('codex'): NOT IN PATH`);
145
+ }
146
+ for (const path of COMMON_CODEX_PATHS) {
147
+ if (path === codexWhichPath)
148
+ continue;
149
+ const status = await checkCodexVersion(path);
150
+ console.log(` ${path}:`);
151
+ console.log(` ${status}`);
152
+ }
153
+ // Codex config file
154
+ const codexConfigPath = join(homedir(), CODEX_CONFIG_DIR, CODEX_CONFIG_FILE);
155
+ console.log(` Config file: ${codexConfigPath}`);
156
+ try {
157
+ const content = await readFile(codexConfigPath, 'utf-8');
158
+ if (content.includes('ceetrix')) {
159
+ console.log(' Ceetrix entry: CONFIGURED');
160
+ }
161
+ else {
162
+ console.log(' Ceetrix entry: NOT CONFIGURED');
163
+ }
164
+ }
165
+ catch {
166
+ console.log(' Ceetrix entry: FILE NOT FOUND');
167
+ }
168
+ console.log(` ${CODEX_API_KEY_ENV_VAR}: ${process.env[CODEX_API_KEY_ENV_VAR] ? 'SET' : 'NOT SET'}`);
169
+ console.log('');
170
+ // Existing MCP config (Claude)
171
+ console.log('Ceetrix MCP Config (Claude)');
172
+ console.log('───────────────────────────');
115
173
  try {
116
174
  const { stdout } = await execAsync('claude mcp list', { timeout: DIAG_TIMEOUT_MS });
117
175
  if (stdout.includes('ceetrix:')) {
@@ -138,7 +196,7 @@ export async function printDebugInfo() {
138
196
  console.log(` USER: ${process.env.USER || 'not set'}`);
139
197
  console.log('');
140
198
  console.log('─────────────────────────────────────────────────────');
141
- console.log('Ceetrix supports macOS and Linux + Claude Code.');
199
+ console.log('Ceetrix supports macOS and Linux with Claude Code and Codex CLI.');
142
200
  console.log('');
143
201
  console.log('If you have issues, copy the above and post to the');
144
202
  console.log('Ceetrix Discord: https://ceetrix.com/discord');
package/dist/debug.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Ceetrix CLI - Set up Ceetrix backlog management for Claude Code
2
+ * Ceetrix CLI - Set up Ceetrix backlog management for coding agents
3
3
  */
4
4
  /**
5
5
  * Main CLI entry point
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0CH;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6G1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4CH;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA4H1C"}
package/dist/index.js CHANGED
@@ -1,13 +1,14 @@
1
1
  /**
2
- * Ceetrix CLI - Set up Ceetrix backlog management for Claude Code
2
+ * Ceetrix CLI - Set up Ceetrix backlog management for coding agents
3
3
  */
4
4
  import { detectGitRemote } from './git.js';
5
- import { checkExistingConfig, removeExistingConfig } from './config.js';
5
+ import { getAgentStatuses, removeExistingConfig } from './config.js';
6
6
  import { startCallbackServer } from './server.js';
7
7
  import { openBrowser, canLaunchBrowser } from './browser.js';
8
- import { promptForRepo, promptExistingConfig } from './prompts.js';
9
- import { checkClaudeCli, addConfig, writeConfigToFile } from './claude.js';
10
- import { getSetupUrl, AUTH_TIMEOUT_MS, getMcpServerUrl, isCustomApiUrl, getAutoConfigPath } from './constants.js';
8
+ import { promptForRepo, promptExistingConfig, promptAgentWizard } from './prompts.js';
9
+ import { addConfig as addClaudeConfig, writeConfigToFile } from './claude.js';
10
+ import { addConfig as addCodexConfig } from './codex.js';
11
+ import { getSetupUrl, AUTH_TIMEOUT_MS, getMcpServerUrl, isCustomApiUrl, getAutoConfigPath, CODEX_API_KEY_ENV_VAR } from './constants.js';
11
12
  import { printDebugInfo } from './debug.js';
12
13
  import { enforceLatestVersion } from './version-check.js';
13
14
  import { requestPermissionOrExit } from './permissions.js';
@@ -58,7 +59,7 @@ export async function main() {
58
59
  // Platform check - macOS and Linux only
59
60
  if (!SUPPORTED_PLATFORMS.includes(process.platform)) {
60
61
  console.error(`✗ Unsupported platform: ${process.platform}\n`);
61
- console.error('Ceetrix currently supports macOS and Linux + Claude Code only.');
62
+ console.error('Ceetrix currently supports macOS and Linux only.');
62
63
  console.error('Windows support coming soon.');
63
64
  console.error('');
64
65
  console.error('Join the Discord for updates: https://ceetrix.com/discord\n');
@@ -68,26 +69,40 @@ export async function main() {
68
69
  if (!cliContext.configPath) {
69
70
  await requestPermissionOrExit();
70
71
  }
71
- // Check Claude CLI is available (skip if using custom config - we write directly)
72
+ // Detect available agents and their config status (skip if using custom config)
73
+ let selectedAgents = ['claude'];
72
74
  if (!cliContext.configPath) {
73
- const claudeAvailable = await checkClaudeCli();
74
- if (!claudeAvailable) {
75
- console.error('✗ Claude Code CLI not found or version too old\n');
76
- console.error('Ceetrix requires Claude Code version 2.0 or later.');
77
- console.error('Install/update: https://docs.anthropic.com/en/docs/claude-code');
75
+ const statuses = await getAgentStatuses();
76
+ const detected = Object.entries(statuses)
77
+ .filter(([, s]) => s.detected);
78
+ if (detected.length === 0) {
79
+ console.error(' No supported coding agent found\n');
80
+ console.error('Ceetrix works with:');
81
+ console.error(' - Claude Code (v2.0+): https://docs.anthropic.com/en/docs/claude-code');
82
+ console.error(' - OpenAI Codex CLI: https://github.com/openai/codex');
78
83
  console.error('');
79
84
  console.error('Run: npx ceetrix --debug');
80
85
  console.error('for diagnostic info to share at: https://ceetrix.com/discord\n');
81
86
  process.exit(1);
82
87
  }
83
- // Check if already configured (only when writing to default location)
84
- const existingConfig = await checkExistingConfig();
85
- if (existingConfig) {
88
+ // If all detected agents are already configured, show existing config menu
89
+ const allConfigured = detected.every(([, s]) => s.configured);
90
+ if (allConfigured) {
86
91
  const action = await handleExistingConfig();
87
92
  if (action === 'cancel' || action === 'done') {
88
93
  return;
89
94
  }
90
- // For 'continue', proceed with normal flow
95
+ // For 'continue' (re-auth), configure all detected agents
96
+ selectedAgents = detected.map(([agent]) => agent);
97
+ }
98
+ else {
99
+ // Show wizard for incremental agent selection
100
+ selectedAgents = await promptAgentWizard(statuses);
101
+ if (selectedAgents.length === 0) {
102
+ console.log('No agents selected.\n');
103
+ return;
104
+ }
105
+ console.log('');
91
106
  }
92
107
  }
93
108
  else {
@@ -128,10 +143,10 @@ export async function main() {
128
143
  if (!cliContext.noBrowser) {
129
144
  console.log('No display server detected. Using device code authentication.\n');
130
145
  }
131
- await runDeviceSetupFlow(repo, cliContext.configPath);
146
+ await runDeviceSetupFlow(repo, cliContext.configPath, selectedAgents);
132
147
  }
133
148
  else {
134
- await runBrowserSetupFlow(repo, cliContext.configPath);
149
+ await runBrowserSetupFlow(repo, cliContext.configPath, selectedAgents);
135
150
  }
136
151
  }
137
152
  /**
@@ -181,9 +196,10 @@ async function handleExistingConfig() {
181
196
  * The CLI displays a code; user enters it at github.com/login/device on any device.
182
197
  *
183
198
  * @param repo - The repository to set up (owner/repo)
184
- * @param configPath - Optional custom config file path (null = use claude mcp add)
199
+ * @param configPath - Optional custom config file path (null = use agent's default config)
200
+ * @param agents - Which agents to configure
185
201
  */
186
- async function runDeviceSetupFlow(repo, configPath) {
202
+ async function runDeviceSetupFlow(repo, configPath, agents) {
187
203
  const result = await runDeviceFlow({ repo });
188
204
  if (!result) {
189
205
  // User denied, code expired, or app not installed — messages already printed
@@ -197,8 +213,8 @@ async function runDeviceSetupFlow(repo, configPath) {
197
213
  else {
198
214
  console.log('');
199
215
  }
200
- // Write config (same as browser flow)
201
- await writeConfig(result.apiKey, configPath);
216
+ // Write config for each selected agent
217
+ await writeConfig(result.apiKey, configPath, agents);
202
218
  }
203
219
  /**
204
220
  * Run the browser-based OAuth setup flow (existing behaviour).
@@ -207,9 +223,10 @@ async function runDeviceSetupFlow(repo, configPath) {
207
223
  * Falls back to device flow if the browser fails to open.
208
224
  *
209
225
  * @param repo - The repository to set up (owner/repo)
210
- * @param configPath - Optional custom config file path (null = use claude mcp add)
226
+ * @param configPath - Optional custom config file path (null = use agent's default config)
227
+ * @param agents - Which agents to configure
211
228
  */
212
- async function runBrowserSetupFlow(repo, configPath) {
229
+ async function runBrowserSetupFlow(repo, configPath, agents) {
213
230
  // Start callback server
214
231
  const { port, waitForCallback, close } = await startCallbackServer();
215
232
  try {
@@ -222,7 +239,7 @@ async function runBrowserSetupFlow(repo, configPath) {
222
239
  // Browser failed — fall back to device flow explicitly (not silently)
223
240
  close();
224
241
  console.log('Could not open browser. Switching to device code authentication.\n');
225
- await runDeviceSetupFlow(repo, configPath);
242
+ await runDeviceSetupFlow(repo, configPath, agents);
226
243
  return;
227
244
  }
228
245
  console.log('Opening browser for GitHub authentication...');
@@ -248,32 +265,47 @@ async function runBrowserSetupFlow(repo, configPath) {
248
265
  else {
249
266
  console.log('');
250
267
  }
251
- // Write config
252
- await writeConfig(result.apiKey, configPath);
268
+ // Write config for each selected agent
269
+ await writeConfig(result.apiKey, configPath, agents);
253
270
  }
254
271
  finally {
255
272
  close();
256
273
  }
257
274
  }
258
275
  /**
259
- * Write MCP config to Claude Code or a custom file.
276
+ * Write MCP config to all selected agents or a custom file.
260
277
  *
261
278
  * Shared by both browser and device flow paths.
279
+ *
280
+ * @param apiKey - The API key from authentication
281
+ * @param configPath - Custom config file path (null = use agent's default)
282
+ * @param agents - Which agents to configure
262
283
  */
263
- async function writeConfig(apiKey, configPath) {
284
+ async function writeConfig(apiKey, configPath, agents) {
264
285
  if (configPath) {
265
- // Write directly to custom config file (non-destructive to ~/.claude.json)
286
+ // Write directly to custom config file (non-destructive to default configs)
266
287
  console.log(`Writing Ceetrix config to ${configPath}...`);
267
288
  await writeConfigToFile(apiKey, getMcpServerUrl(), configPath);
268
289
  console.log('✓ Configuration written\n');
269
290
  printCustomConfigNotice(configPath);
291
+ return;
270
292
  }
271
- else {
272
- // Use claude mcp add (writes to ~/.claude.json)
273
- console.log('Adding Ceetrix to Claude Code...');
274
- await addConfig(apiKey);
275
- console.log(' Configuration added\n');
276
- printRestartNotice();
293
+ const url = getMcpServerUrl();
294
+ for (const agent of agents) {
295
+ switch (agent) {
296
+ case 'claude':
297
+ console.log('Adding Ceetrix to Claude Code...');
298
+ await addClaudeConfig(apiKey);
299
+ console.log('✓ Configuration added\n');
300
+ printRestartNotice();
301
+ break;
302
+ case 'codex':
303
+ console.log('Adding Ceetrix to Codex CLI...');
304
+ await addCodexConfig(apiKey, url);
305
+ console.log('✓ Configuration added\n');
306
+ printCodexEnvNotice(apiKey);
307
+ break;
308
+ }
277
309
  }
278
310
  }
279
311
  /**
@@ -317,4 +349,22 @@ function printCustomConfigNotice(configPath) {
317
349
  console.log('│ Your production ~/.claude.json was NOT modified. │');
318
350
  console.log('└─────────────────────────────────────────────────────────────────┘\n');
319
351
  }
352
+ /**
353
+ * Print notice for Codex CLI users about setting the env var.
354
+ *
355
+ * Codex reads API keys from environment variables at runtime.
356
+ * The TOML config references the var name; user must set the var.
357
+ *
358
+ * @param apiKey - The actual API key to show in the export command
359
+ */
360
+ function printCodexEnvNotice(apiKey) {
361
+ console.log('┌─────────────────────────────────────────────────────────────────┐');
362
+ console.log('│ IMPORTANT: Set your API key as an environment variable │');
363
+ console.log('│ │');
364
+ console.log('│ Add to your shell profile (~/.bashrc, ~/.zshrc, etc.): │');
365
+ console.log(`│ export ${CODEX_API_KEY_ENV_VAR}="${apiKey}"`);
366
+ console.log('│ │');
367
+ console.log('│ Then restart your shell and run codex. │');
368
+ console.log('└─────────────────────────────────────────────────────────────────┘\n');
369
+ }
320
370
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B7D;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B7D;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
@@ -9,11 +9,13 @@ import { confirm } from '@inquirer/prompts';
9
9
  let permissionGranted = false;
10
10
  /** Commands that will be executed */
11
11
  const COMMANDS_DESCRIPTION = `
12
- • which claude (find Claude CLI location)
13
- • claude --version (verify it's Claude Code)
14
- claude mcp list (check existing config)
15
- • claude mcp add (add Ceetrix server)
16
- • claude mcp remove (if reconfiguring)
12
+ • which claude / codex (find CLI locations)
13
+ • claude --version (verify Claude Code)
14
+ codex --version (verify Codex CLI)
15
+ • claude mcp list (check existing Claude config)
16
+ • claude mcp add (add Ceetrix to Claude)
17
+ • claude mcp remove (if reconfiguring Claude)
18
+ • Read/write ~/.codex/config.toml (Codex config)
17
19
  `;
18
20
  /**
19
21
  * Request upfront permission for all CLI operations.
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,2DAA2D;AAC3D,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B,qCAAqC;AACrC,MAAM,oBAAoB,GAAG;;;;;;CAM5B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC;QAC5B,OAAO,EAAE,sCAAsC;QAC/C,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iBAAiB,GAAG,IAAI,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,iBAAiB,GAAG,KAAK,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,2DAA2D;AAC3D,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B,qCAAqC;AACrC,MAAM,oBAAoB,GAAG;;;;;;;;CAQ5B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC;QAC5B,OAAO,EAAE,sCAAsC;QAC/C,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iBAAiB,GAAG,IAAI,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,iBAAiB,GAAG,KAAK,CAAC;AAC5B,CAAC"}
package/dist/prompts.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Interactive prompts for user input
3
3
  */
4
+ import type { AgentStatus } from './config.js';
4
5
  /**
5
6
  * Prompt user for repository in owner/repo format.
6
7
  *
@@ -15,6 +16,21 @@ export type ExistingConfigAction = 'add-repo' | 'reauth' | 'remove' | 'cancel';
15
16
  * @returns The selected action
16
17
  */
17
18
  export declare function promptExistingConfig(): Promise<ExistingConfigAction>;
19
+ /** Supported agent types */
20
+ export type AgentType = 'claude' | 'codex';
21
+ /**
22
+ * Wizard-style prompt for incremental agent configuration.
23
+ *
24
+ * Shows all detected agents with their config status. Already-configured
25
+ * agents appear disabled. Unconfigured agents are pre-checked.
26
+ *
27
+ * Auto-selects when exactly one unconfigured agent is detected and no
28
+ * others are present (skip the prompt entirely).
29
+ *
30
+ * @param statuses - Per-agent detection and configuration status
31
+ * @returns Array of agent types selected for configuration (may be empty)
32
+ */
33
+ export declare function promptAgentWizard(statuses: Record<AgentType, AgentStatus>): Promise<AgentType[]>;
18
34
  /**
19
35
  * Prompt user to confirm an action.
20
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAkBrD;AAED,2DAA2D;AAC3D,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/E;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAW1E;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASrE"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAkBrD;AAED,2DAA2D;AAC3D,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/E;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAW1E;AAED,4BAA4B;AAC5B,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAQ3C;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GACvC,OAAO,CAAC,SAAS,EAAE,CAAC,CA4BtB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASrE"}
package/dist/prompts.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Interactive prompts for user input
3
3
  */
4
- import { input, select } from '@inquirer/prompts';
4
+ import { input, select, checkbox } from '@inquirer/prompts';
5
5
  /**
6
6
  * Prompt user for repository in owner/repo format.
7
7
  *
@@ -43,6 +43,47 @@ export async function promptExistingConfig() {
43
43
  });
44
44
  return action;
45
45
  }
46
+ /** Display labels for each agent type */
47
+ const AGENT_LABELS = {
48
+ claude: 'Claude Code',
49
+ codex: 'OpenAI Codex CLI',
50
+ };
51
+ /**
52
+ * Wizard-style prompt for incremental agent configuration.
53
+ *
54
+ * Shows all detected agents with their config status. Already-configured
55
+ * agents appear disabled. Unconfigured agents are pre-checked.
56
+ *
57
+ * Auto-selects when exactly one unconfigured agent is detected and no
58
+ * others are present (skip the prompt entirely).
59
+ *
60
+ * @param statuses - Per-agent detection and configuration status
61
+ * @returns Array of agent types selected for configuration (may be empty)
62
+ */
63
+ export async function promptAgentWizard(statuses) {
64
+ const detected = Object.entries(statuses)
65
+ .filter(([, s]) => s.detected);
66
+ if (detected.length === 0)
67
+ return [];
68
+ const unconfigured = detected.filter(([, s]) => !s.configured);
69
+ // Single unconfigured agent, no other agents detected → auto-select
70
+ if (unconfigured.length === detected.length && detected.length === 1) {
71
+ return [detected[0][0]];
72
+ }
73
+ const choices = detected.map(([agent, status]) => ({
74
+ name: status.configured
75
+ ? `${AGENT_LABELS[agent]} (configured)`
76
+ : AGENT_LABELS[agent],
77
+ value: agent,
78
+ checked: !status.configured,
79
+ disabled: status.configured ? '(already configured)' : false,
80
+ }));
81
+ const selected = await checkbox({
82
+ message: 'Which agents should Ceetrix be configured for?',
83
+ choices,
84
+ });
85
+ return selected;
86
+ }
46
87
  /**
47
88
  * Prompt user to confirm an action.
48
89
  *
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;QACvB,OAAO,EAAE,gCAAgC;QACzC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,oBAAoB,CAAC;YAC9B,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,oBAAoB,CAAC;YAC9B,CAAC;YACD,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACpB,OAAO,oBAAoB,CAAC;YAC9B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAKD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;QAC1B,OAAO,EAAE,2DAA2D;QACpE,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,UAAmB,EAAE;YAC9D,EAAE,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,QAAiB,EAAE;YACvE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAiB,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAiB,EAAE;SAC7C;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;QAC5B,OAAO;QACP,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;YAC5B,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;SAC7B;KACF,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ceetrix",
3
- "version": "1.0.19",
4
- "description": "Set up Ceetrix backlog management for Claude Code",
3
+ "version": "1.1.0",
4
+ "description": "Set up Ceetrix backlog management for Claude Code and OpenAI Codex",
5
5
  "bin": {
6
6
  "ceetrix": "./bin/ceetrix.js"
7
7
  },
@@ -21,6 +21,7 @@
21
21
  "dependencies": {
22
22
  "@inquirer/prompts": "^7.0.0",
23
23
  "open": "^10.0.0",
24
+ "smol-toml": "^1.3.0",
24
25
  "which": "^6.0.0"
25
26
  },
26
27
  "devDependencies": {
@@ -41,6 +42,8 @@
41
42
  "ceetrix",
42
43
  "claude",
43
44
  "claude-code",
45
+ "codex",
46
+ "openai",
44
47
  "mcp",
45
48
  "backlog"
46
49
  ],