@solidnumber/cli 1.9.25 → 1.9.28

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiEpC,eAAO,MAAM,SAAS,SAiElB,CAAC"}
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwEpC,eAAO,MAAM,SAAS,SAoFlB,CAAC"}
@@ -55,18 +55,23 @@ const child_process_1 = require("child_process");
55
55
  const fs = __importStar(require("fs"));
56
56
  const path = __importStar(require("path"));
57
57
  const config_1 = require("../lib/config");
58
+ const agent_mode_1 = require("../lib/agent-mode");
58
59
  function whichAi(override) {
59
60
  if (override) {
60
61
  const normalized = override.toLowerCase();
61
- if (normalized === 'claude' || normalized === 'cursor')
62
+ if (normalized === 'claude' || normalized === 'cursor' || normalized === 'codex') {
62
63
  return normalized;
64
+ }
63
65
  return null;
64
66
  }
65
- // Auto-detect: prefer claude if both are installed (it's the one we optimize for).
67
+ // Auto-detect. Preference order reflects what we ship first-class support
68
+ // for: claude > cursor > codex. Change this when product priorities shift.
66
69
  if (resolveBinary('claude'))
67
70
  return 'claude';
68
71
  if (resolveBinary('cursor'))
69
72
  return 'cursor';
73
+ if (resolveBinary('codex'))
74
+ return 'codex';
70
75
  return null;
71
76
  }
72
77
  // Resolve a binary via PATH without depending on `which` being installed.
@@ -89,14 +94,13 @@ function resolveBinary(name) {
89
94
  return null;
90
95
  }
91
96
  function refreshContext(kind) {
92
- // Delegate to the existing context command so we reuse every write path
93
- // (claude: .claude/CLAUDE.md + .claude/solid-context.json; cursor: .cursorrules).
94
- // Using `process.argv[0]` + the CLI entry ensures we call our own bundled
95
- // version, not whatever `solid` resolves to on PATH (which might be a
96
- // different install during dev).
97
- const args = kind === 'claude' ? ['context', '--claude'] : ['context', '--cursor'];
97
+ // Delegate to the existing context command so we reuse every write path:
98
+ // claude .claude/CLAUDE.md + .claude/solid-context.json
99
+ // cursor .cursorrules
100
+ // codex → AGENTS.md
101
+ const flag = kind === 'claude' ? '--claude' : kind === 'cursor' ? '--cursor' : '--codex';
98
102
  const solidBin = resolveBinary('solid') || 'solid';
99
- const result = (0, child_process_1.spawnSync)(solidBin, args, { stdio: 'inherit' });
103
+ const result = (0, child_process_1.spawnSync)(solidBin, ['context', flag], { stdio: 'inherit' });
100
104
  return result.status === 0;
101
105
  }
102
106
  function launchAi(kind) {
@@ -105,16 +109,21 @@ function launchAi(kind) {
105
109
  // proper takeover — spinners, inquirer, etc. all work.
106
110
  (0, child_process_1.execFileSync)('claude', [], { stdio: 'inherit' });
107
111
  }
108
- else {
112
+ else if (kind === 'cursor') {
109
113
  // Cursor expects a path argument to open the current project.
110
114
  (0, child_process_1.execFileSync)('cursor', ['.'], { stdio: 'inherit' });
111
115
  }
116
+ else {
117
+ // Codex (OpenAI's CLI) launches in the current directory; no args needed.
118
+ (0, child_process_1.execFileSync)('codex', [], { stdio: 'inherit' });
119
+ }
112
120
  }
113
121
  exports.aiCommand = new commander_1.Command('ai')
114
- .description('Launch Claude Code / Cursor with this company\'s context pre-loaded (stupid easy)')
115
- .option('--as <tool>', 'Force a specific AI: claude | cursor (default: auto-detect)')
122
+ .description('Launch Claude Code / Cursor / Codex with this company\'s context pre-loaded (stupid easy)')
123
+ .option('--as <tool>', 'Force a specific AI: claude | cursor | codex (default: auto-detect)')
116
124
  .option('--no-context', 'Skip the context refresh — just launch the AI')
117
125
  .option('--company <id>', 'Use a specific company for this session (overrides cached)')
126
+ .option('--mode <mode>', 'Cap the AI to a role: customer | developer | agency | full (default: full)')
118
127
  .action(async (options) => {
119
128
  // 1. Auth guard
120
129
  if (!config_1.config.isLoggedIn()) {
@@ -139,30 +148,47 @@ exports.aiCommand = new commander_1.Command('ai')
139
148
  // cached company_id — surfaced in the arrival message below.
140
149
  process.env.SOLID_COMPANY_OVERRIDE = String(id);
141
150
  }
142
- // 3. Pick the AI
151
+ // 3. Resolve agent mode — this scopes what the AI can call. Default
152
+ // is `full` (no cap) to preserve today's behavior for humans. When an
153
+ // agent session is explicit, the guard in index.ts enforces the
154
+ // allowlist on every subsequent `solid ...` invocation inside the AI.
155
+ const mode = (0, agent_mode_1.parseAgentMode)(options.mode) || 'full';
156
+ // 4. Pick the AI
143
157
  const kind = whichAi(options.as);
144
158
  if (!kind) {
145
159
  console.error(chalk_1.default.red('No AI detected on PATH.'));
146
160
  console.error('');
147
161
  console.error(chalk_1.default.dim(' Install Claude Code: https://claude.com/product/claude-code'));
148
162
  console.error(chalk_1.default.dim(' Install Cursor: https://cursor.com'));
163
+ console.error(chalk_1.default.dim(' Install Codex CLI: https://github.com/openai/codex'));
149
164
  console.error(chalk_1.default.dim(' Or pick explicitly: solid ai --as claude'));
150
165
  process.exit(1);
151
166
  }
152
- // 4. Arrival: one clean line so the user (and any AI tail-ing) knows
167
+ // 5. Set the agent/human headers + mode env vars. Every `solid ...`
168
+ // invocation the AI spawns will inherit these via process.env, so the
169
+ // api-client attaches the right headers on every API call and the
170
+ // top-level mode guard refuses out-of-scope commands.
171
+ process.env.SOLID_AGENT = kind;
172
+ process.env.SOLID_AGENT_MODE = mode;
173
+ if (config_1.config.userEmail)
174
+ process.env.SOLID_HUMAN_INITIATOR = config_1.config.userEmail;
175
+ // 6. Arrival: one clean line so the user (and any AI tail-ing) knows
153
176
  // exactly what's happening before the terminal hands off.
154
- const tool = kind === 'claude' ? 'Claude Code' : 'Cursor';
177
+ const tool = kind === 'claude' ? 'Claude Code' : kind === 'cursor' ? 'Cursor' : 'Codex';
155
178
  console.log('');
156
179
  console.log(` ${chalk_1.default.bold('Launching')} ${chalk_1.default.hex('#a5b4fc')(tool)} ${chalk_1.default.dim(`with Company ${options.company || config_1.config.companyId} context`)}`);
180
+ if (mode !== 'full') {
181
+ console.log(` ${chalk_1.default.dim('Mode:')} ${chalk_1.default.yellow((0, agent_mode_1.modeDescriptor)(mode))}`);
182
+ }
157
183
  console.log('');
158
- // 5. Refresh context (unless --no-context)
184
+ // 7. Refresh context (unless --no-context)
159
185
  if (options.context !== false) {
160
186
  const ok = refreshContext(kind);
161
187
  if (!ok) {
162
188
  console.error(chalk_1.default.yellow(' ⚠ Context refresh failed — launching anyway with cached files.'));
163
189
  }
164
190
  }
165
- // 6. Hand off. This replaces our process output with the AI's.
191
+ // 8. Hand off. This replaces our process output with the AI's.
166
192
  try {
167
193
  launchAi(kind);
168
194
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;GAWG;AACH,yCAAoC;AACpC,kDAA0B;AAC1B,iDAAwD;AACxD,uCAAyB;AAEzB,2CAA6B;AAE7B,0CAAuC;AAEvC,kDAAmF;AAInF,SAAS,OAAO,CAAC,QAAiB;IAChC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YACjF,OAAO,UAAoB,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,0EAA0E;IAC1E,2EAA2E;IAC3E,IAAI,aAAa,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,aAAa,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0EAA0E;AAC1E,8EAA8E;AAC9E,oEAAoE;AACpE,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnE,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,yEAAyE;IACzE,4DAA4D;IAC5D,0BAA0B;IAC1B,uBAAuB;IACvB,MAAM,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;IACnD,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5E,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,uEAAuE;QACvE,uDAAuD;QACvD,IAAA,4BAAY,EAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,8DAA8D;QAC9D,IAAA,4BAAY,EAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,0EAA0E;QAC1E,IAAA,4BAAY,EAAC,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAEY,QAAA,SAAS,GAAG,IAAI,mBAAO,CAAC,IAAI,CAAC;KACvC,WAAW,CAAC,2FAA2F,CAAC;KACxG,MAAM,CAAC,aAAa,EAAE,qEAAqE,CAAC;KAC5F,MAAM,CAAC,cAAc,EAAE,+CAA+C,CAAC;KACvE,MAAM,CAAC,gBAAgB,EAAE,4DAA4D,CAAC;KACtF,MAAM,CAAC,eAAe,EAAE,4EAA4E,CAAC;KACrG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,gBAAgB;IAChB,IAAI,CAAC,eAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,eAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uEAAuE;IACvE,uEAAuE;IACvE,kEAAkE;IAClE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,wEAAwE;QACxE,mEAAmE;QACnE,6DAA6D;QAC7D,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,oEAAoE;IACpE,sEAAsE;IACtE,gEAAgE;IAChE,sEAAsE;IACtE,MAAM,IAAI,GAAc,IAAA,2BAAc,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IAE/D,iBAAiB;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC,CAAC;QACpF,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oEAAoE;IACpE,sEAAsE;IACtE,kEAAkE;IAClE,sDAAsD;IACtD,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACpC,IAAI,eAAM,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,eAAM,CAAC,SAAS,CAAC;IAE3E,qEAAqE;IACrE,0DAA0D;IAC1D,MAAM,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,eAAK,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,OAAO,IAAI,eAAM,CAAC,SAAS,UAAU,CAAC,EAAE,CAAC,CAAC;IACtJ,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,eAAK,CAAC,MAAM,CAAC,IAAA,2BAAc,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,2CAA2C;IAC3C,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,kEAAkE,CAAC,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,IAAI,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0EAA0E;QAC1E,MAAM,IAAI,GAAI,GAA2B,EAAE,MAAM,IAAI,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4LpC,eAAO,MAAM,cAAc,SA2KvB,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsMpC,eAAO,MAAM,cAAc,SAoLvB,CAAC"}
@@ -131,6 +131,15 @@ function printCursorNextSteps(outputPath, bytes) {
131
131
  ]));
132
132
  console.log('');
133
133
  }
134
+ function printCodexNextSteps(outputPath, bytes) {
135
+ console.log('');
136
+ console.log(ui_1.ui.successBox('AI Context Ready', [
137
+ `${chalk_1.default.dim('Saved:')} ${outputPath} (${formatBytes(bytes)})`,
138
+ `${chalk_1.default.dim('AGENTS.md is read by Codex, Claude Code, Cursor, and Gemini when present.')}`,
139
+ `${chalk_1.default.dim('Refresh:')} ${chalk_1.default.cyan('solid context --codex')}`,
140
+ ]));
141
+ console.log('');
142
+ }
134
143
  function printGenericNextSteps(outputPath, bytes) {
135
144
  console.log('');
136
145
  console.log(ui_1.ui.successBox('Context Saved', [
@@ -185,6 +194,7 @@ exports.contextCommand = new commander_1.Command('context')
185
194
  .option('--save', 'Save to ./SOLID-CONTEXT.md')
186
195
  .option('--claude', 'Save BOTH .claude/CLAUDE.md + .claude/solid-context.json')
187
196
  .option('--cursor', 'Save to ./.cursorrules')
197
+ .option('--codex', 'Save to ./AGENTS.md (the emerging cross-agent standard: Codex / Claude / Cursor / Gemini)')
188
198
  .option('--json', 'Output JSON to stdout')
189
199
  .option('--minimal', 'Compact markdown (drops the tool manifest table)')
190
200
  .option('--section <name>', 'Return only one section: company, content, operations, capabilities, history, tooling')
@@ -255,7 +265,7 @@ exports.contextCommand = new commander_1.Command('context')
255
265
  return;
256
266
  }
257
267
  // ── Full context paths ────────────────────────────────────────
258
- const isSaving = Boolean(options.save || options.claude || options.cursor || options.watch);
268
+ const isSaving = Boolean(options.save || options.claude || options.cursor || options.codex || options.watch);
259
269
  const spinner = isSaving ? (0, ora_1.default)('Building AI context package...').start() : null;
260
270
  let doc;
261
271
  let jsonDoc = null;
@@ -301,6 +311,13 @@ exports.contextCommand = new commander_1.Command('context')
301
311
  markdownPath = path.resolve('.cursorrules');
302
312
  fs.writeFileSync(markdownPath, doc);
303
313
  }
314
+ else if (options.codex) {
315
+ outputMode = 'codex';
316
+ // AGENTS.md is the emerging multi-agent convention — one file that
317
+ // Claude Code, Cursor, Codex, and Gemini all read when present.
318
+ markdownPath = path.resolve('AGENTS.md');
319
+ fs.writeFileSync(markdownPath, doc);
320
+ }
304
321
  else if (options.save || options.watch) {
305
322
  outputMode = 'file';
306
323
  markdownPath = path.resolve('SOLID-CONTEXT.md');
@@ -315,6 +332,9 @@ exports.contextCommand = new commander_1.Command('context')
315
332
  else if (outputMode === 'cursor' && markdownPath) {
316
333
  printCursorNextSteps(markdownPath, fs.statSync(markdownPath).size);
317
334
  }
335
+ else if (outputMode === 'codex' && markdownPath) {
336
+ printCodexNextSteps(markdownPath, fs.statSync(markdownPath).size);
337
+ }
318
338
  else if (outputMode === 'file' && markdownPath) {
319
339
  printGenericNextSteps(markdownPath, fs.statSync(markdownPath).size);
320
340
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwEpC,eAAO,MAAM,cAAc,SA+DvB,CAAC"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4GpC,eAAO,MAAM,cAAc,SAuEvB,CAAC"}
@@ -57,15 +57,21 @@ const fs = __importStar(require("fs"));
57
57
  const os = __importStar(require("os"));
58
58
  const path = __importStar(require("path"));
59
59
  const ui_1 = require("../lib/ui");
60
- const CLAUDE_SETTINGS_PATH = path.join(os.homedir(), '.claude', 'settings.json');
60
+ // Resolves the Claude Code settings.json path. Honors
61
+ // SOLID_CLAUDE_SETTINGS_PATH so tests can point us at a tmp file — makes
62
+ // install tests hermetic without fragile fs module mocks.
63
+ function claudeSettingsPath() {
64
+ return process.env.SOLID_CLAUDE_SETTINGS_PATH
65
+ || path.join(os.homedir(), '.claude', 'settings.json');
66
+ }
61
67
  // The command Claude Code runs before every session. `--quiet` keeps the hook
62
68
  // silent on success; failures still print so the user sees what's up.
63
- const HOOK_COMMAND = 'solid context --claude --quiet';
69
+ const HOOK_COMMAND = 'solid context --claude --raw';
64
70
  function loadSettings() {
65
- if (!fs.existsSync(CLAUDE_SETTINGS_PATH))
71
+ if (!fs.existsSync(claudeSettingsPath()))
66
72
  return {};
67
73
  try {
68
- return JSON.parse(fs.readFileSync(CLAUDE_SETTINGS_PATH, 'utf-8'));
74
+ return JSON.parse(fs.readFileSync(claudeSettingsPath(), 'utf-8'));
69
75
  }
70
76
  catch (err) {
71
77
  // Corrupt JSON — refuse to clobber. User has to fix it first.
@@ -73,37 +79,61 @@ function loadSettings() {
73
79
  }
74
80
  }
75
81
  function saveSettings(obj) {
76
- const dir = path.dirname(CLAUDE_SETTINGS_PATH);
82
+ const dir = path.dirname(claudeSettingsPath());
77
83
  if (!fs.existsSync(dir))
78
84
  fs.mkdirSync(dir, { recursive: true });
79
- fs.writeFileSync(CLAUDE_SETTINGS_PATH, JSON.stringify(obj, null, 2) + '\n', 'utf-8');
85
+ fs.writeFileSync(claudeSettingsPath(), JSON.stringify(obj, null, 2) + '\n', 'utf-8');
86
+ }
87
+ // Older installs wrote a broken command ("--quiet" is not a valid flag on
88
+ // `solid context`). When we see any of these legacy variants, treat them as
89
+ // "ours" so upsert rewrites them to the current HOOK_COMMAND.
90
+ const LEGACY_HOOK_COMMANDS = [
91
+ 'solid context --claude --quiet',
92
+ ];
93
+ function isSolidHook(command) {
94
+ return command === HOOK_COMMAND || LEGACY_HOOK_COMMANDS.includes(command);
80
95
  }
81
- // Idempotent merge: add our hook entry if (and only if) it isn't already there.
96
+ // Idempotent merge: add our hook entry if (and only if) it isn't already
97
+ // there. If a legacy (broken) variant is present, migrate it in place.
82
98
  // Returns true when the file was modified.
83
99
  function upsertSessionStartHook(settings) {
84
100
  const hooks = settings.hooks || {};
85
101
  const sessionStart = hooks.SessionStart || [];
86
- const alreadyHasOurs = sessionStart.some((group) => (group.hooks || []).some((h) => h.command === HOOK_COMMAND));
87
- if (alreadyHasOurs)
88
- return false;
89
- sessionStart.push({
90
- hooks: [{ type: 'command', command: HOOK_COMMAND }],
91
- });
102
+ let mutated = false;
103
+ // Migration pass: rewrite any legacy command to the current one.
104
+ for (const group of sessionStart) {
105
+ for (const h of group.hooks || []) {
106
+ if (LEGACY_HOOK_COMMANDS.includes(h.command)) {
107
+ h.command = HOOK_COMMAND;
108
+ mutated = true;
109
+ }
110
+ }
111
+ }
112
+ const alreadyHasCurrent = sessionStart.some((group) => (group.hooks || []).some((h) => h.command === HOOK_COMMAND));
113
+ if (!alreadyHasCurrent) {
114
+ sessionStart.push({
115
+ hooks: [{ type: 'command', command: HOOK_COMMAND }],
116
+ });
117
+ mutated = true;
118
+ }
92
119
  hooks.SessionStart = sessionStart;
93
120
  settings.hooks = hooks;
94
- return true;
121
+ return mutated;
95
122
  }
96
123
  function removeSessionStartHook(settings) {
97
124
  const hooks = settings.hooks;
98
125
  if (!hooks || !Array.isArray(hooks.SessionStart))
99
126
  return false;
100
- const before = hooks.SessionStart.length;
101
- const filtered = hooks.SessionStart
102
- .map((group) => ({ ...group, hooks: (group.hooks || []).filter((h) => h.command !== HOOK_COMMAND) }))
127
+ // Remove BOTH the current command and any legacy variants so users who
128
+ // installed an older broken hook get a clean uninstall.
129
+ const original = hooks.SessionStart;
130
+ const filtered = original
131
+ .map((group) => ({ ...group, hooks: (group.hooks || []).filter((h) => !isSolidHook(h.command)) }))
103
132
  .filter((group) => group.hooks.length > 0);
104
- if (filtered.length === before && filtered.every((g, i) => g.hooks.length === hooks.SessionStart[i].hooks.length)) {
133
+ const removedSomething = filtered.length !== original.length ||
134
+ filtered.some((g, i) => g.hooks.length !== original[i].hooks.length);
135
+ if (!removedSomething)
105
136
  return false;
106
- }
107
137
  if (filtered.length === 0) {
108
138
  delete hooks.SessionStart;
109
139
  }
@@ -132,7 +162,12 @@ exports.installCommand = new commander_1.Command('install')
132
162
  console.log(preview);
133
163
  return;
134
164
  }
165
+ // Every terminal-facing outcome below gets the branded banner so
166
+ // install feels like a first-class "welcome" moment — same tier as
167
+ // the login arrival screen, not a plain box.
168
+ const brand = ui_1.ui.banner();
135
169
  if (!changed) {
170
+ console.log(brand);
136
171
  if (options.uninstall) {
137
172
  console.log(ui_1.ui.infoBox('Nothing to do', [
138
173
  `${chalk_1.default.dim('No Solid hook found in')} ~/.claude/settings.json`,
@@ -142,19 +177,21 @@ exports.installCommand = new commander_1.Command('install')
142
177
  console.log(ui_1.ui.successBox('Already installed', [
143
178
  `${chalk_1.default.dim('Solid hook is already in')} ~/.claude/settings.json`,
144
179
  '',
145
- `${chalk_1.default.dim('Verify with:')} ${chalk_1.default.cyan('solid install --dry-run')}`,
180
+ `${chalk_1.default.dim('Verify with:')} ${chalk_1.default.cyan('solid install --preview')}`,
146
181
  ]));
147
182
  }
148
183
  return;
149
184
  }
150
185
  saveSettings(settings);
151
186
  if (options.uninstall) {
187
+ console.log(brand);
152
188
  console.log(ui_1.ui.successBox('Uninstalled', [
153
189
  `${chalk_1.default.dim('Removed Solid SessionStart hook from')} ~/.claude/settings.json`,
154
190
  `${chalk_1.default.dim('Claude Code will no longer auto-refresh .claude/CLAUDE.md.')}`,
155
191
  ]));
156
192
  return;
157
193
  }
194
+ console.log(brand);
158
195
  console.log(ui_1.ui.successBox('Installed', [
159
196
  `${chalk_1.default.bold('Wired Claude Code to auto-load Solid context.')}`,
160
197
  '',
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -107,6 +107,7 @@ const payment_1 = require("./commands/payment");
107
107
  const context_1 = require("./commands/context");
108
108
  const ai_1 = require("./commands/ai");
109
109
  const install_1 = require("./commands/install");
110
+ const persona_groups_1 = require("./lib/persona-groups");
110
111
  const analytics_1 = require("./commands/analytics");
111
112
  const seo_1 = require("./commands/seo");
112
113
  const insights_1 = require("./commands/insights");
@@ -183,7 +184,110 @@ program
183
184
  .configureHelp({
184
185
  sortSubcommands: false,
185
186
  sortOptions: false,
187
+ // Custom command list: group by persona (common / customer / developer
188
+ // / agency) instead of rendering 91 verbs as a flat alphabetical wall.
189
+ // Every command is still shown — the backend is the authority on what
190
+ // a given token can actually run. This is pure UX organization.
191
+ formatHelp: (cmd, helper) => {
192
+ const termWidth = helper.padWidth(cmd, helper);
193
+ const itemIndentWidth = 2;
194
+ const itemSeparatorWidth = 2;
195
+ // Re-use commander's own helpers for usage/description/options so
196
+ // we don't drift from its look when they upgrade the package.
197
+ const usage = helper.commandUsage(cmd);
198
+ const description = helper.commandDescription(cmd);
199
+ let output = [`Usage: ${usage}`];
200
+ if (description)
201
+ output.push('', description);
202
+ const argumentList = helper
203
+ .visibleArguments(cmd)
204
+ .map((argument) => {
205
+ const term = helper.argumentTerm(argument);
206
+ const desc = helper.argumentDescription(argument);
207
+ return formatItem(term, desc, termWidth, helper);
208
+ });
209
+ if (argumentList.length)
210
+ output.push('', 'Arguments:', ...argumentList);
211
+ const optionList = helper
212
+ .visibleOptions(cmd)
213
+ .map((option) => {
214
+ const term = helper.optionTerm(option);
215
+ const desc = helper.optionDescription(option);
216
+ return formatItem(term, desc, termWidth, helper);
217
+ });
218
+ if (optionList.length)
219
+ output.push('', 'Options:', ...optionList);
220
+ // --- Grouped command listing -----------------------------------
221
+ const commands = helper.visibleCommands(cmd);
222
+ if (commands.length) {
223
+ const groups = {
224
+ common: [],
225
+ customer: [],
226
+ developer: [],
227
+ agency: [],
228
+ };
229
+ for (const sub of commands) {
230
+ groups[(0, persona_groups_1.personaFor)(sub.name())].push(sub);
231
+ }
232
+ output.push('', 'Commands:');
233
+ for (const persona of persona_groups_1.PERSONA_ORDER) {
234
+ const list = groups[persona];
235
+ if (!list.length)
236
+ continue;
237
+ output.push(` ── ${persona_groups_1.PERSONA_TITLES[persona]} ───────────────────────────────────`);
238
+ for (const sub of list) {
239
+ const term = helper.subcommandTerm(sub);
240
+ const desc = helper.subcommandDescription(sub);
241
+ output.push(formatItem(term, desc, termWidth, helper));
242
+ }
243
+ output.push('');
244
+ }
245
+ }
246
+ return output.join('\n');
247
+ function formatItem(term, description, padWidth, h) {
248
+ const indent = ' '.repeat(itemIndentWidth);
249
+ if (description) {
250
+ const fullText = `${term.padEnd(padWidth + itemSeparatorWidth)}${description}`;
251
+ return indent + h.wrap(fullText, h.helpWidth ?? 80, padWidth + itemSeparatorWidth + itemIndentWidth);
252
+ }
253
+ return indent + term;
254
+ }
255
+ },
186
256
  });
257
+ // Agent-mode guard — when SOLID_AGENT_MODE is set (by `solid ai --mode ...`
258
+ // or the human operator explicitly), refuse commands not on that mode's
259
+ // allowlist BEFORE commander even parses them. This is the client-side
260
+ // safety net; the backend also sees the X-Solid-Agent header and can
261
+ // enforce independently.
262
+ {
263
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
264
+ const { parseAgentMode, isModeAllowed, modeDescriptor, requiresHumanConfirmation } = require('./lib/agent-mode');
265
+ const mode = parseAgentMode(process.env.SOLID_AGENT_MODE);
266
+ if (mode && mode !== 'full') {
267
+ // argv[0]=node, argv[1]=entry.js, argv[2]=top-level command
268
+ const topCmd = process.argv[2];
269
+ // Always let --help / --version / empty through — those are discovery.
270
+ const isDiscovery = !topCmd || topCmd.startsWith('-') || topCmd === 'help';
271
+ if (!isDiscovery && !isModeAllowed(mode, topCmd)) {
272
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
273
+ const ch = require('chalk');
274
+ process.stderr.write(ch.red(`Refused: \`solid ${topCmd}\` is not available in ${modeDescriptor(mode)}.\n`) +
275
+ ch.dim(` Agent mode caps this session. Unset with: unset SOLID_AGENT_MODE\n`) +
276
+ ch.dim(` Or switch: solid ai --mode customer | developer | agency | full\n`));
277
+ process.exit(2);
278
+ }
279
+ // Destructive-op gate: require --yes when an agent drives delete/refund/etc.
280
+ const argvRest = process.argv.slice(2).join(' ');
281
+ if (!isDiscovery && requiresHumanConfirmation(argvRest) && !process.argv.includes('--yes')) {
282
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
283
+ const ch = require('chalk');
284
+ process.stderr.write(ch.red(`Refused: destructive op detected (${topCmd}).\n`) +
285
+ ch.dim(` Agent-driven sessions require human approval for delete / refund / cancel / revoke.\n`) +
286
+ ch.dim(` Re-run with --yes if your human operator approves.\n`));
287
+ process.exit(2);
288
+ }
289
+ }
290
+ }
187
291
  // Honor --no-color / NO_COLOR by disabling chalk globally BEFORE any
188
292
  // command runs. chalk already honors NO_COLOR env var, but the --no-color
189
293
  // flag needs this explicit hook since we consume it before parsing.