suzi-cli 0.1.13 → 0.1.15

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 (77) hide show
  1. package/CODEX_CLAUDE_ONBOARDING_DRAFT.md +318 -0
  2. package/dist/commands/accounts.d.ts.map +1 -1
  3. package/dist/commands/accounts.js +27 -7
  4. package/dist/commands/accounts.js.map +1 -1
  5. package/dist/commands/agent.d.ts +45 -0
  6. package/dist/commands/agent.d.ts.map +1 -0
  7. package/dist/commands/agent.js +1000 -0
  8. package/dist/commands/agent.js.map +1 -0
  9. package/dist/commands/create.d.ts +4 -0
  10. package/dist/commands/create.d.ts.map +1 -1
  11. package/dist/commands/create.js +379 -3
  12. package/dist/commands/create.js.map +1 -1
  13. package/dist/commands/debug.d.ts.map +1 -1
  14. package/dist/commands/debug.js +124 -41
  15. package/dist/commands/debug.js.map +1 -1
  16. package/dist/commands/list-actions.d.ts.map +1 -1
  17. package/dist/commands/list-actions.js +35 -4
  18. package/dist/commands/list-actions.js.map +1 -1
  19. package/dist/commands/list-triggers.d.ts.map +1 -1
  20. package/dist/commands/list-triggers.js +38 -10
  21. package/dist/commands/list-triggers.js.map +1 -1
  22. package/dist/commands/portfolio.d.ts.map +1 -1
  23. package/dist/commands/portfolio.js +113 -14
  24. package/dist/commands/portfolio.js.map +1 -1
  25. package/dist/commands/preferences.d.ts.map +1 -1
  26. package/dist/commands/preferences.js +119 -26
  27. package/dist/commands/preferences.js.map +1 -1
  28. package/dist/commands/transactions.d.ts.map +1 -1
  29. package/dist/commands/transactions.js +18 -4
  30. package/dist/commands/transactions.js.map +1 -1
  31. package/dist/commands/update.d.ts +3 -0
  32. package/dist/commands/update.d.ts.map +1 -0
  33. package/dist/commands/update.js +265 -0
  34. package/dist/commands/update.js.map +1 -0
  35. package/dist/index.js +35 -27
  36. package/dist/index.js.map +1 -1
  37. package/dist/lib/config.d.ts +13 -0
  38. package/dist/lib/config.d.ts.map +1 -1
  39. package/dist/lib/config.js +25 -0
  40. package/dist/lib/config.js.map +1 -1
  41. package/dist/lib/session-registry.d.ts +57 -0
  42. package/dist/lib/session-registry.d.ts.map +1 -0
  43. package/dist/lib/session-registry.js +192 -0
  44. package/dist/lib/session-registry.js.map +1 -0
  45. package/dist/lib/tooling-preflight.d.ts +17 -0
  46. package/dist/lib/tooling-preflight.d.ts.map +1 -0
  47. package/dist/lib/tooling-preflight.js +519 -0
  48. package/dist/lib/tooling-preflight.js.map +1 -0
  49. package/dist/utils/agent-picker.d.ts +16 -0
  50. package/dist/utils/agent-picker.d.ts.map +1 -0
  51. package/dist/utils/agent-picker.js +83 -0
  52. package/dist/utils/agent-picker.js.map +1 -0
  53. package/dist/utils/resolver.d.ts +35 -0
  54. package/dist/utils/resolver.d.ts.map +1 -0
  55. package/dist/utils/resolver.js +157 -0
  56. package/dist/utils/resolver.js.map +1 -0
  57. package/dist/utils/tty.d.ts +26 -0
  58. package/dist/utils/tty.d.ts.map +1 -0
  59. package/dist/utils/tty.js +50 -0
  60. package/dist/utils/tty.js.map +1 -0
  61. package/dist/utils/ui.d.ts +4 -0
  62. package/dist/utils/ui.d.ts.map +1 -1
  63. package/dist/utils/ui.js +9 -0
  64. package/dist/utils/ui.js.map +1 -1
  65. package/package.json +1 -1
  66. package/dist/commands/agents.d.ts +0 -3
  67. package/dist/commands/agents.d.ts.map +0 -1
  68. package/dist/commands/agents.js +0 -309
  69. package/dist/commands/agents.js.map +0 -1
  70. package/dist/commands/deploy.d.ts +0 -3
  71. package/dist/commands/deploy.d.ts.map +0 -1
  72. package/dist/commands/deploy.js +0 -174
  73. package/dist/commands/deploy.js.map +0 -1
  74. package/dist/commands/validate.d.ts +0 -3
  75. package/dist/commands/validate.d.ts.map +0 -1
  76. package/dist/commands/validate.js +0 -165
  77. package/dist/commands/validate.js.map +0 -1
@@ -0,0 +1,519 @@
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.detectToolingStateForPreflight = detectToolingStateForPreflight;
7
+ exports.runToolingPreflightForStart = runToolingPreflightForStart;
8
+ const child_process_1 = require("child_process");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const inquirer_1 = __importDefault(require("inquirer"));
11
+ const config_1 = require("./config");
12
+ const ui_1 = require("../utils/ui");
13
+ const CODEX_INSTALL_COMMAND = ['install', '-g', '@openai/codex'];
14
+ const CLAUDE_CODEX_MCP_ADD_COMMAND = ['mcp', 'add', '--scope', 'user', '--transport', 'stdio', 'codex', '--', 'codex', 'mcp-server'];
15
+ function nowIso() {
16
+ return new Date().toISOString();
17
+ }
18
+ function isInteractiveTerminal() {
19
+ return Boolean(process.stdin.isTTY && process.stdout.isTTY);
20
+ }
21
+ function isCommandAvailable(command) {
22
+ if (process.platform === 'win32') {
23
+ const res = (0, child_process_1.spawnSync)('where', [command], { stdio: 'ignore' });
24
+ return res.status === 0;
25
+ }
26
+ const res = (0, child_process_1.spawnSync)('/bin/sh', ['-lc', `command -v ${command} >/dev/null 2>&1`], { stdio: 'ignore' });
27
+ return res.status === 0;
28
+ }
29
+ function npmExecutable() {
30
+ return process.platform === 'win32' ? 'npm.cmd' : 'npm';
31
+ }
32
+ function runCommandCapture(command, args, options) {
33
+ const res = (0, child_process_1.spawnSync)(command, args, {
34
+ cwd: options?.cwd,
35
+ encoding: 'utf8',
36
+ stdio: ['ignore', 'pipe', 'pipe'],
37
+ });
38
+ const stdout = res.stdout || '';
39
+ const stderr = res.stderr || '';
40
+ const errorMessage = res.error ? res.error.message : undefined;
41
+ const combined = [stdout.trim(), stderr.trim(), errorMessage || ''].filter(Boolean).join('\n');
42
+ return {
43
+ ok: res.status === 0 && !res.error,
44
+ code: res.status,
45
+ signal: res.signal,
46
+ stdout,
47
+ stderr,
48
+ combined,
49
+ errorMessage,
50
+ };
51
+ }
52
+ function runInteractiveCommand(command, args) {
53
+ const res = (0, child_process_1.spawnSync)(command, args, {
54
+ stdio: 'inherit',
55
+ env: { ...process.env },
56
+ });
57
+ return {
58
+ ok: res.status === 0 && !res.error,
59
+ code: res.status,
60
+ signal: res.signal,
61
+ stdout: '',
62
+ stderr: '',
63
+ combined: res.error ? res.error.message : '',
64
+ errorMessage: res.error ? res.error.message : undefined,
65
+ };
66
+ }
67
+ function detectClaudeCodexMcp() {
68
+ if (!isCommandAvailable('claude')) {
69
+ return { installed: false, details: 'Claude Code CLI not found in PATH.' };
70
+ }
71
+ const list = runCommandCapture('claude', ['mcp', 'list']);
72
+ if (!list.ok) {
73
+ return { installed: false, details: list.combined || 'Failed to run `claude mcp list`.' };
74
+ }
75
+ const haystack = `${list.stdout}\n${list.stderr}`.toLowerCase();
76
+ return { installed: haystack.includes('codex') };
77
+ }
78
+ async function runCommandCaptureAsync(command, args, options) {
79
+ return new Promise((resolve) => {
80
+ const child = (0, child_process_1.spawn)(command, args, {
81
+ cwd: options?.cwd,
82
+ stdio: ['ignore', 'pipe', 'pipe'],
83
+ env: { ...process.env },
84
+ });
85
+ let stdout = '';
86
+ let stderr = '';
87
+ let settled = false;
88
+ let timeout = null;
89
+ const finish = (result) => {
90
+ if (settled)
91
+ return;
92
+ settled = true;
93
+ if (timeout)
94
+ clearTimeout(timeout);
95
+ resolve(result);
96
+ };
97
+ child.stdout?.on('data', (chunk) => {
98
+ stdout += chunk.toString();
99
+ });
100
+ child.stderr?.on('data', (chunk) => {
101
+ stderr += chunk.toString();
102
+ });
103
+ child.on('error', (err) => {
104
+ const errorMessage = err.message;
105
+ const combined = [stdout.trim(), stderr.trim(), errorMessage].filter(Boolean).join('\n');
106
+ finish({
107
+ ok: false,
108
+ code: null,
109
+ signal: null,
110
+ stdout,
111
+ stderr,
112
+ combined,
113
+ errorMessage,
114
+ });
115
+ });
116
+ child.on('close', (code, signal) => {
117
+ const combined = [stdout.trim(), stderr.trim()].filter(Boolean).join('\n');
118
+ finish({
119
+ ok: code === 0,
120
+ code,
121
+ signal,
122
+ stdout,
123
+ stderr,
124
+ combined,
125
+ });
126
+ });
127
+ if (options?.timeoutMs && options.timeoutMs > 0) {
128
+ timeout = setTimeout(() => {
129
+ try {
130
+ child.kill('SIGTERM');
131
+ }
132
+ catch {
133
+ // ignore
134
+ }
135
+ const errorMessage = `Command timed out after ${options.timeoutMs}ms`;
136
+ const combined = [stdout.trim(), stderr.trim(), errorMessage].filter(Boolean).join('\n');
137
+ finish({
138
+ ok: false,
139
+ code: null,
140
+ signal: 'SIGTERM',
141
+ stdout,
142
+ stderr,
143
+ combined,
144
+ errorMessage,
145
+ });
146
+ }, options.timeoutMs);
147
+ }
148
+ });
149
+ }
150
+ async function isCommandAvailableAsync(command) {
151
+ if (process.platform === 'win32') {
152
+ const res = await runCommandCaptureAsync('where', [command], { timeoutMs: 2000 });
153
+ return res.ok;
154
+ }
155
+ const res = await runCommandCaptureAsync('/bin/sh', ['-lc', `command -v ${command} >/dev/null 2>&1`], { timeoutMs: 2000 });
156
+ return res.ok;
157
+ }
158
+ async function detectClaudeCodexMcpAsync() {
159
+ if (!(await isCommandAvailableAsync('claude'))) {
160
+ return { installed: false, details: 'Claude Code CLI not found in PATH.' };
161
+ }
162
+ const list = await runCommandCaptureAsync('claude', ['mcp', 'list'], { timeoutMs: 4000 });
163
+ if (!list.ok) {
164
+ return { installed: false, details: list.combined || 'Failed to run `claude mcp list`.' };
165
+ }
166
+ const haystack = `${list.stdout}\n${list.stderr}`.toLowerCase();
167
+ return { installed: haystack.includes('codex') };
168
+ }
169
+ function detectCodexLoginStatus() {
170
+ if (!isCommandAvailable('codex')) {
171
+ return { loggedIn: false, details: 'Codex CLI not found in PATH.' };
172
+ }
173
+ const res = runCommandCapture('codex', ['login', 'status']);
174
+ const stdout = res.stdout.trim();
175
+ const stderr = res.stderr.trim();
176
+ const normalized = stdout.toLowerCase();
177
+ if (res.ok && normalized.includes('logged in')) {
178
+ return { loggedIn: true };
179
+ }
180
+ return {
181
+ loggedIn: false,
182
+ details: [stdout, stderr, res.errorMessage].filter(Boolean).join('\n') || 'Failed to determine Codex login status.',
183
+ };
184
+ }
185
+ async function detectCodexLoginStatusAsync() {
186
+ if (!(await isCommandAvailableAsync('codex'))) {
187
+ return { loggedIn: false, details: 'Codex CLI not found in PATH.' };
188
+ }
189
+ const res = await runCommandCaptureAsync('codex', ['login', 'status'], { timeoutMs: 4000 });
190
+ const stdout = res.stdout.trim();
191
+ const stderr = res.stderr.trim();
192
+ const normalized = stdout.toLowerCase();
193
+ if (res.ok && normalized.includes('logged in')) {
194
+ return { loggedIn: true };
195
+ }
196
+ return {
197
+ loggedIn: false,
198
+ details: [stdout, stderr, res.errorMessage].filter(Boolean).join('\n') || 'Failed to determine Codex login status.',
199
+ };
200
+ }
201
+ function getDetectionState(storeState) {
202
+ const codexBinaryInstalled = isCommandAvailable('codex');
203
+ const codexLoginCompleted = codexBinaryInstalled ? detectCodexLoginStatus().loggedIn : false;
204
+ const claudeCodexMcpInstalled = detectClaudeCodexMcp().installed;
205
+ return { codexBinaryInstalled, codexLoginCompleted, claudeCodexMcpInstalled };
206
+ }
207
+ async function detectToolingStateForPreflight() {
208
+ const storeState = (0, config_1.getToolingOnboardingState)();
209
+ const codexBinaryInstalled = await isCommandAvailableAsync('codex');
210
+ const [codexLogin, mcp] = await Promise.all([
211
+ codexBinaryInstalled ? detectCodexLoginStatusAsync() : Promise.resolve({ loggedIn: false }),
212
+ detectClaudeCodexMcpAsync(),
213
+ ]);
214
+ // keep storeState read for future evolution and parity with sync detector
215
+ void storeState;
216
+ return {
217
+ codexBinaryInstalled,
218
+ codexLoginCompleted: codexBinaryInstalled ? codexLogin.loggedIn : false,
219
+ claudeCodexMcpInstalled: mcp.installed,
220
+ };
221
+ }
222
+ function hasIncompleteTooling(state) {
223
+ if (!state.codexBinaryInstalled)
224
+ return true;
225
+ if (!state.codexLoginCompleted)
226
+ return true;
227
+ if (!state.claudeCodexMcpInstalled)
228
+ return true;
229
+ return false;
230
+ }
231
+ function statusLabel(status) {
232
+ switch (status) {
233
+ case 'installed':
234
+ return ui_1.colors.success('Installed');
235
+ case 'missing':
236
+ return ui_1.colors.muted('Missing');
237
+ case 'installing':
238
+ return ui_1.colors.secondary('Installing');
239
+ case 'failed':
240
+ return ui_1.colors.error('Failed');
241
+ case 'skipped':
242
+ return ui_1.colors.warning('Skipped');
243
+ case 'deferred':
244
+ return ui_1.colors.muted('Deferred');
245
+ default:
246
+ return status;
247
+ }
248
+ }
249
+ async function promptListChoice(message, choices) {
250
+ const { value } = await inquirer_1.default.prompt([
251
+ {
252
+ type: 'list',
253
+ name: 'value',
254
+ message,
255
+ choices,
256
+ },
257
+ ]);
258
+ return value;
259
+ }
260
+ async function confirmContinueSetup() {
261
+ return promptListChoice('What would you like to do?', [
262
+ { name: 'Continue setup (Recommended)', value: 'continue' },
263
+ { name: 'Skip for now', value: 'skip' },
264
+ ]);
265
+ }
266
+ function printPreflightSummary(state) {
267
+ console.log();
268
+ (0, ui_1.divider)();
269
+ console.log();
270
+ console.log(chalk_1.default.bold(' Suzi AI setup (recommended)'));
271
+ console.log();
272
+ console.log(` ${ui_1.colors.muted('These tools improve strategy creation with Claude Code.')}`);
273
+ console.log();
274
+ console.log(chalk_1.default.bold(' Status'));
275
+ console.log(` - Codex CLI: ${state.codexBinaryInstalled ? statusLabel('installed') : statusLabel('missing')}`);
276
+ console.log(` - Codex login: ${state.codexBinaryInstalled
277
+ ? (state.codexLoginCompleted ? statusLabel('installed') : statusLabel('missing'))
278
+ : statusLabel('deferred')}`);
279
+ console.log(` - Claude Codex MCP: ${state.codexBinaryInstalled
280
+ ? (state.claudeCodexMcpInstalled ? statusLabel('installed') : statusLabel('missing'))
281
+ : statusLabel('deferred')}`);
282
+ console.log();
283
+ }
284
+ function recordSkipForCurrentState(state) {
285
+ const patch = { lastPromptedAt: nowIso() };
286
+ if (!state.codexBinaryInstalled) {
287
+ patch.codexInstallSkippedAt = nowIso();
288
+ }
289
+ if (state.codexBinaryInstalled && !state.codexLoginCompleted) {
290
+ patch.codexLoginSkippedAt = nowIso();
291
+ }
292
+ if (state.codexBinaryInstalled && !state.claudeCodexMcpInstalled) {
293
+ patch.claudeCodexMcpSkippedAt = nowIso();
294
+ }
295
+ (0, config_1.updateToolingOnboardingState)(patch);
296
+ }
297
+ async function maybeInstallCodex() {
298
+ if (isCommandAvailable('codex'))
299
+ return 'installed';
300
+ const choice = await promptListChoice('Codex CLI is recommended for better strategy generation. Install Codex CLI now?', [
301
+ { name: 'Yes (Recommended)', value: 'install' },
302
+ { name: 'Skip for now', value: 'skip' },
303
+ ]);
304
+ if (choice === 'skip') {
305
+ (0, config_1.updateToolingOnboardingState)({
306
+ codexInstallSkippedAt: nowIso(),
307
+ });
308
+ return 'skipped';
309
+ }
310
+ let lastAttempt = null;
311
+ while (true) {
312
+ console.log();
313
+ (0, ui_1.info)('Installing Codex CLI...');
314
+ lastAttempt = runCommandCapture(npmExecutable(), [...CODEX_INSTALL_COMMAND]);
315
+ if (isCommandAvailable('codex')) {
316
+ (0, ui_1.success)('Codex CLI installed.');
317
+ (0, config_1.updateToolingOnboardingState)({
318
+ codexInstallSkippedAt: undefined,
319
+ });
320
+ return 'installed';
321
+ }
322
+ (0, ui_1.warn)('Codex CLI install failed.');
323
+ const failureChoice = await promptListChoice('How would you like to proceed?', [
324
+ { name: 'Retry', value: 'retry' },
325
+ { name: 'Skip for now', value: 'skip' },
326
+ { name: 'Show manual install command', value: 'manual' },
327
+ ]);
328
+ if (failureChoice === 'retry')
329
+ continue;
330
+ if (failureChoice === 'manual') {
331
+ console.log();
332
+ console.log(` ${ui_1.colors.primary('$')} ${chalk_1.default.white(`${npmExecutable()} ${CODEX_INSTALL_COMMAND.join(' ')}`)}`);
333
+ if (lastAttempt?.combined) {
334
+ console.log();
335
+ (0, ui_1.info)('Last install output:');
336
+ console.log(lastAttempt.combined);
337
+ }
338
+ console.log();
339
+ continue;
340
+ }
341
+ (0, config_1.updateToolingOnboardingState)({
342
+ codexInstallSkippedAt: nowIso(),
343
+ });
344
+ return 'skipped';
345
+ }
346
+ }
347
+ async function maybeRunCodexLogin() {
348
+ if (!isCommandAvailable('codex'))
349
+ return 'deferred';
350
+ const store = (0, config_1.getToolingOnboardingState)();
351
+ if (detectCodexLoginStatus().loggedIn) {
352
+ if (!store.codexLoginCompletedAt) {
353
+ (0, config_1.updateToolingOnboardingState)({
354
+ codexLoginCompletedAt: nowIso(),
355
+ codexLoginSkippedAt: undefined,
356
+ });
357
+ }
358
+ return 'installed';
359
+ }
360
+ if (!isInteractiveTerminal()) {
361
+ (0, ui_1.info)('Codex login is pending. Run `codex --login` in an interactive terminal to complete setup.');
362
+ return 'deferred';
363
+ }
364
+ while (true) {
365
+ console.log();
366
+ (0, ui_1.info)('Starting Codex login...');
367
+ const attempt = runInteractiveCommand('codex', ['--login']);
368
+ if (attempt.ok) {
369
+ (0, ui_1.success)('Codex login complete.');
370
+ (0, config_1.updateToolingOnboardingState)({
371
+ codexLoginCompletedAt: nowIso(),
372
+ codexLoginSkippedAt: undefined,
373
+ });
374
+ return 'installed';
375
+ }
376
+ (0, ui_1.warn)('Codex login did not complete.');
377
+ const choice = await promptListChoice('How would you like to proceed?', [
378
+ { name: 'Retry', value: 'retry' },
379
+ { name: 'Skip for now', value: 'skip' },
380
+ ]);
381
+ if (choice === 'retry')
382
+ continue;
383
+ (0, config_1.updateToolingOnboardingState)({
384
+ codexLoginSkippedAt: nowIso(),
385
+ });
386
+ return 'skipped';
387
+ }
388
+ }
389
+ function verifyClaudeCodexMcp() {
390
+ return detectClaudeCodexMcp().installed;
391
+ }
392
+ async function maybeSetupClaudeCodexMcp() {
393
+ if (!isCommandAvailable('codex'))
394
+ return 'deferred';
395
+ if (verifyClaudeCodexMcp())
396
+ return 'installed';
397
+ let lastAttempt = null;
398
+ while (true) {
399
+ console.log();
400
+ (0, ui_1.info)('Setting up Claude Code integration (Codex MCP)...');
401
+ lastAttempt = runCommandCapture('claude', [...CLAUDE_CODEX_MCP_ADD_COMMAND]);
402
+ if (verifyClaudeCodexMcp()) {
403
+ (0, ui_1.success)('Codex MCP server configured for Claude Code.');
404
+ (0, config_1.updateToolingOnboardingState)({
405
+ claudeCodexMcpConfiguredAt: nowIso(),
406
+ claudeCodexMcpSkippedAt: undefined,
407
+ });
408
+ return 'installed';
409
+ }
410
+ (0, ui_1.warn)('Automatic Codex MCP setup failed.');
411
+ const choice = await promptListChoice('How would you like to proceed?', [
412
+ { name: 'Retry', value: 'retry' },
413
+ { name: 'Skip for now', value: 'skip' },
414
+ { name: 'Show command and logs', value: 'show' },
415
+ ]);
416
+ if (choice === 'retry')
417
+ continue;
418
+ if (choice === 'show') {
419
+ console.log();
420
+ console.log(` ${ui_1.colors.primary('$')} ${chalk_1.default.white(`claude ${CLAUDE_CODEX_MCP_ADD_COMMAND.join(' ')}`)}`);
421
+ if (lastAttempt?.combined) {
422
+ console.log();
423
+ (0, ui_1.info)('Last command output:');
424
+ console.log(lastAttempt.combined);
425
+ }
426
+ console.log();
427
+ continue;
428
+ }
429
+ (0, config_1.updateToolingOnboardingState)({
430
+ claudeCodexMcpSkippedAt: nowIso(),
431
+ });
432
+ return 'skipped';
433
+ }
434
+ }
435
+ function printFinalSummary(result) {
436
+ console.log();
437
+ console.log(chalk_1.default.bold(' Setup summary'));
438
+ console.log();
439
+ console.log(` - Codex CLI: ${statusLabel(result.codexBinary)}`);
440
+ console.log(` - Codex login: ${statusLabel(result.codexLogin)}`);
441
+ console.log(` - Claude Codex MCP: ${statusLabel(result.claudeCodexMcp)}`);
442
+ console.log();
443
+ if (result.codexBinary !== 'installed' || result.codexLogin !== 'installed') {
444
+ (0, ui_1.info)('Codex is optional, but recommended for better strategy generation.');
445
+ }
446
+ console.log();
447
+ }
448
+ async function runToolingPreflightForStart(options) {
449
+ const detected = options?.preDetectedState || await detectToolingStateForPreflight();
450
+ const interactive = isInteractiveTerminal();
451
+ const reminderDue = (0, config_1.isToolingReminderDue)();
452
+ const incomplete = hasIncompleteTooling(detected);
453
+ const initialResult = {
454
+ ran: false,
455
+ codexBinary: detected.codexBinaryInstalled ? 'installed' : 'missing',
456
+ codexLogin: detected.codexBinaryInstalled
457
+ ? (detected.codexLoginCompleted ? 'installed' : 'missing')
458
+ : 'deferred',
459
+ claudeCodexMcp: detected.codexBinaryInstalled
460
+ ? (detected.claudeCodexMcpInstalled ? 'installed' : 'missing')
461
+ : 'deferred',
462
+ };
463
+ if (!incomplete) {
464
+ return initialResult;
465
+ }
466
+ if (!interactive) {
467
+ if (reminderDue) {
468
+ (0, ui_1.info)('Codex setup is incomplete. Install Codex (if needed), run `codex --login`, then run `claude mcp add --scope user --transport stdio codex -- codex mcp-server` in an interactive terminal.');
469
+ (0, config_1.updateToolingOnboardingState)({ lastPromptedAt: nowIso() });
470
+ }
471
+ return initialResult;
472
+ }
473
+ if (!reminderDue) {
474
+ return initialResult;
475
+ }
476
+ printPreflightSummary(detected);
477
+ (0, config_1.updateToolingOnboardingState)({ lastPromptedAt: nowIso() });
478
+ const entryChoice = await confirmContinueSetup();
479
+ if (entryChoice === 'skip') {
480
+ recordSkipForCurrentState(detected);
481
+ const skippedResult = {
482
+ ...initialResult,
483
+ ran: true,
484
+ codexBinary: initialResult.codexBinary === 'missing' ? 'skipped' : initialResult.codexBinary,
485
+ codexLogin: initialResult.codexLogin === 'missing' ? 'skipped' : initialResult.codexLogin,
486
+ claudeCodexMcp: initialResult.claudeCodexMcp === 'missing' ? 'skipped' : initialResult.claudeCodexMcp,
487
+ };
488
+ printFinalSummary(skippedResult);
489
+ return skippedResult;
490
+ }
491
+ let codexBinaryStatus = initialResult.codexBinary;
492
+ let codexLoginStatus = initialResult.codexLogin;
493
+ let mcpStatus = initialResult.claudeCodexMcp;
494
+ if (!detected.codexBinaryInstalled) {
495
+ codexBinaryStatus = await maybeInstallCodex();
496
+ }
497
+ const codexNowInstalled = isCommandAvailable('codex');
498
+ if (!codexNowInstalled) {
499
+ codexLoginStatus = 'deferred';
500
+ mcpStatus = 'deferred';
501
+ }
502
+ else {
503
+ codexLoginStatus = await maybeRunCodexLogin();
504
+ mcpStatus = await maybeSetupClaudeCodexMcp();
505
+ }
506
+ const result = {
507
+ ran: true,
508
+ codexBinary: codexNowInstalled ? 'installed' : codexBinaryStatus,
509
+ codexLogin: codexNowInstalled
510
+ ? (detectCodexLoginStatus().loggedIn ? 'installed' : codexLoginStatus)
511
+ : 'deferred',
512
+ claudeCodexMcp: codexNowInstalled
513
+ ? (verifyClaudeCodexMcp() ? 'installed' : mcpStatus)
514
+ : 'deferred',
515
+ };
516
+ printFinalSummary(result);
517
+ return result;
518
+ }
519
+ //# sourceMappingURL=tooling-preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooling-preflight.js","sourceRoot":"","sources":["../../src/lib/tooling-preflight.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Entity } from './resolver';
2
+ export interface Agent extends Entity {
3
+ id: string;
4
+ title: string;
5
+ status: string;
6
+ description?: string;
7
+ createdAt: string;
8
+ updatedAt: string;
9
+ [key: string]: unknown;
10
+ }
11
+ /**
12
+ * Fetch agents from API and resolve/pick with smart ID resolution.
13
+ * Returns null on error or user cancellation.
14
+ */
15
+ export declare function fetchAndPickAgent(idOrName: string | undefined, jsonMode?: boolean): Promise<Agent | null>;
16
+ //# sourceMappingURL=agent-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-picker.d.ts","sourceRoot":"","sources":["../../src/utils/agent-picker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,MAAM,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,WAAW,KAAM,SAAQ,MAAM;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,GAAE,OAAe,GACxB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CA0CvB"}
@@ -0,0 +1,83 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.fetchAndPickAgent = fetchAndPickAgent;
37
+ const api_1 = require("../lib/api");
38
+ const tty_1 = require("./tty");
39
+ const resolver_1 = require("./resolver");
40
+ /**
41
+ * Fetch agents from API and resolve/pick with smart ID resolution.
42
+ * Returns null on error or user cancellation.
43
+ */
44
+ async function fetchAndPickAgent(idOrName, jsonMode = false) {
45
+ // Fetch agents
46
+ const resp = await (0, api_1.get)('/api/agent?limit=50');
47
+ if (!resp.ok) {
48
+ const msg = `Failed to load agents: ${resp.data?.error || 'Unknown error'}`;
49
+ if (jsonMode) {
50
+ (0, tty_1.outputJson)({ success: false, error: msg });
51
+ }
52
+ else {
53
+ const { error } = await Promise.resolve().then(() => __importStar(require('./ui')));
54
+ error(msg);
55
+ }
56
+ return null;
57
+ }
58
+ const agents = resp.data.agents || [];
59
+ if (agents.length === 0 && !idOrName) {
60
+ const msg = 'No agents found.';
61
+ if (jsonMode) {
62
+ (0, tty_1.outputJson)({ success: false, error: msg });
63
+ }
64
+ else {
65
+ const { info } = await Promise.resolve().then(() => __importStar(require('./ui')));
66
+ info('No agents found. Create one with `suzi agents deploy <file>`.');
67
+ }
68
+ return null;
69
+ }
70
+ // Resolve with picker
71
+ const result = await (0, resolver_1.resolveWithPicker)(idOrName, agents, {
72
+ jsonMode,
73
+ entityType: 'agent',
74
+ pickerMessage: 'Select an agent:',
75
+ });
76
+ // Show cancel message if user cancelled in interactive mode
77
+ if (!result && !idOrName && !jsonMode) {
78
+ const { info } = await Promise.resolve().then(() => __importStar(require('./ui')));
79
+ info('Cancelled.');
80
+ }
81
+ return result;
82
+ }
83
+ //# sourceMappingURL=agent-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-picker.js","sourceRoot":"","sources":["../../src/utils/agent-picker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,8CA6CC;AA/DD,oCAAiC;AACjC,+BAAmC;AACnC,yCAAuD;AAYvD;;;GAGG;AACI,KAAK,UAAU,iBAAiB,CACrC,QAA4B,EAC5B,WAAoB,KAAK;IAEzB,eAAe;IACf,MAAM,IAAI,GAAG,MAAM,IAAA,SAAG,EAAC,qBAAqB,CAAC,CAAC;IAE9C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,0BAA0B,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,eAAe,EAAE,CAAC;QAC5E,IAAI,QAAQ,EAAE,CAAC;YACb,IAAA,gBAAU,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,KAAK,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;YACvC,KAAK,CAAC,GAAG,CAAC,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAY,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IAE/C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,kBAAkB,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACb,IAAA,gBAAU,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,IAAI,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;YACtC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;IACtB,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAiB,EAAC,QAAQ,EAAE,MAAM,EAAE;QACvD,QAAQ;QACR,UAAU,EAAE,OAAO;QACnB,aAAa,EAAE,kBAAkB;KAClC,CAAC,CAAC;IAEH,4DAA4D;IAC5D,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}