@mmnto/cli 1.95.0 → 1.96.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/commands/compile-cloud-model.test.d.ts +2 -0
  2. package/dist/commands/compile-cloud-model.test.d.ts.map +1 -0
  3. package/dist/commands/compile-cloud-model.test.js +91 -0
  4. package/dist/commands/compile-cloud-model.test.js.map +1 -0
  5. package/dist/commands/compile.d.ts.map +1 -1
  6. package/dist/commands/compile.js +10 -1
  7. package/dist/commands/compile.js.map +1 -1
  8. package/dist/commands/docs.test.js +1 -0
  9. package/dist/commands/docs.test.js.map +1 -1
  10. package/dist/commands/init-detect.d.ts +39 -1
  11. package/dist/commands/init-detect.d.ts.map +1 -1
  12. package/dist/commands/init-detect.js +102 -77
  13. package/dist/commands/init-detect.js.map +1 -1
  14. package/dist/commands/init-detect.test.d.ts +2 -0
  15. package/dist/commands/init-detect.test.d.ts.map +1 -0
  16. package/dist/commands/init-detect.test.js +183 -0
  17. package/dist/commands/init-detect.test.js.map +1 -0
  18. package/dist/commands/mail.d.ts.map +1 -1
  19. package/dist/commands/mail.js +29 -3
  20. package/dist/commands/mail.js.map +1 -1
  21. package/dist/commands/mail.test.js +53 -0
  22. package/dist/commands/mail.test.js.map +1 -1
  23. package/dist/commands/shield-learn.test.js +1 -0
  24. package/dist/commands/shield-learn.test.js.map +1 -1
  25. package/dist/git.d.ts +7 -0
  26. package/dist/git.d.ts.map +1 -1
  27. package/dist/git.js +31 -3
  28. package/dist/git.js.map +1 -1
  29. package/dist/git.test.js +49 -0
  30. package/dist/git.test.js.map +1 -1
  31. package/dist/orchestrators/anthropic-orchestrator.d.ts.map +1 -1
  32. package/dist/orchestrators/anthropic-orchestrator.js +21 -3
  33. package/dist/orchestrators/anthropic-orchestrator.js.map +1 -1
  34. package/dist/orchestrators/anthropic-orchestrator.test.js +43 -0
  35. package/dist/orchestrators/anthropic-orchestrator.test.js.map +1 -1
  36. package/dist/orchestrators/openai-orchestrator.d.ts.map +1 -1
  37. package/dist/orchestrators/openai-orchestrator.js +17 -3
  38. package/dist/orchestrators/openai-orchestrator.js.map +1 -1
  39. package/dist/orchestrators/openai-orchestrator.test.js +37 -0
  40. package/dist/orchestrators/openai-orchestrator.test.js.map +1 -1
  41. package/dist/utils/pilot.test.js +1 -0
  42. package/dist/utils/pilot.test.js.map +1 -1
  43. package/dist/utils.test.js +1 -0
  44. package/dist/utils.test.js.map +1 -1
  45. package/package.json +2 -2
@@ -156,9 +156,89 @@ export function detectEmbeddingTier(cwd) {
156
156
  return 'openai';
157
157
  return 'none';
158
158
  }
159
+ // ─── Orchestrator emission (Tenet-16 corollary) ──────────
160
+ /**
161
+ * Every LLM-backed role tag (lowercased `runOrchestrator` tag) a generated
162
+ * config names explicitly. Emitted configs assign a model per role instead of
163
+ * committing an ambient `orchestrator.defaultModel` — config names roles, not
164
+ * one ambient vendor default (Tenet-16 corollary, mmnto-ai/totem-strategy#800
165
+ * item 1). A role absent from this list fails loud at invocation ("No model
166
+ * specified") instead of silently riding a vendor default.
167
+ */
168
+ export const INIT_ORCHESTRATOR_ROLES = [
169
+ 'compile',
170
+ 'docs',
171
+ 'spec',
172
+ 'shield',
173
+ 'triage',
174
+ 'extract',
175
+ 'reviewlearn',
176
+ ];
177
+ /**
178
+ * Model IDs stamped into generated consumer configs, one per detection branch
179
+ * (docs/reference/supported-models.md § Updating Defaults, location 3).
180
+ * `claudeCli` is the claude CLI's own tier alias, which tracks that CLI's
181
+ * current Sonnet instead of pinning a dated ID.
182
+ */
183
+ export const INIT_ORCHESTRATOR_MODELS = {
184
+ geminiCli: 'gemini-3.5-flash',
185
+ claudeCli: 'sonnet',
186
+ gemini: 'gemini-3.5-flash',
187
+ anthropic: 'claude-sonnet-5',
188
+ openai: 'gpt-5.6-terra',
189
+ ollama: 'gemma4',
190
+ };
191
+ /** Map every emitted role to the same model ID (uniform per-provider default). */
192
+ export function buildRoleOverrides(model) {
193
+ return Object.fromEntries(INIT_ORCHESTRATOR_ROLES.map((role) => [role, model]));
194
+ }
195
+ /** Escape a value for embedding in a single-quoted TS string literal, so a
196
+ * future model ID or shell command containing `'` or `\` cannot emit a
197
+ * syntactically broken consumer config (mmnto-ai/totem#2360 review round). */
198
+ function escapeTsString(value) {
199
+ return value.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
200
+ }
201
+ /**
202
+ * Render the TS-template orchestrator block from the same object that gets
203
+ * serialized into YAML/TOML configs, so the two surfaces cannot drift.
204
+ * Handles every JSON-shaped value type; `null`/`undefined` render as an
205
+ * absent key (optional-key semantics, matching the YAML/TOML serializers).
206
+ */
207
+ export function renderOrchestratorBlock(config) {
208
+ const lines = [' orchestrator: {'];
209
+ for (const [key, value] of Object.entries(config)) {
210
+ if (typeof value === 'string') {
211
+ lines.push(` ${key}: '${escapeTsString(value)}',`);
212
+ }
213
+ else if (typeof value === 'boolean' || typeof value === 'number') {
214
+ lines.push(` ${key}: ${String(value)},`);
215
+ }
216
+ else if (Array.isArray(value)) {
217
+ lines.push(` ${key}: ${JSON.stringify(value)},`);
218
+ }
219
+ else if (value && typeof value === 'object') {
220
+ lines.push(` ${key}: {`);
221
+ for (const [role, model] of Object.entries(value)) {
222
+ lines.push(` ${role}: '${escapeTsString(model)}',`);
223
+ }
224
+ lines.push(' },');
225
+ }
226
+ }
227
+ lines.push(' },');
228
+ return lines.join('\n');
229
+ }
230
+ function orchestratorResult(config) {
231
+ return { config, block: renderOrchestratorBlock(config) };
232
+ }
159
233
  /**
160
234
  * Auto-detect the best orchestrator from the environment.
161
- * Priority: gemini CLI → claude CLI → API keys (GEMINI → ANTHROPIC → OPENAI) → null.
235
+ * Priority: gemini CLI → claude CLI → API keys (GEMINI → ANTHROPIC → OPENAI) → ollama → null.
236
+ *
237
+ * Detection resolves the consumer's local environment at genesis; the emitted
238
+ * block names a model per role rather than committing an ambient
239
+ * `defaultModel`. Note `totem lesson compile --cloud` deliberately resolves
240
+ * from `--model` / `defaultModel` only (mmnto-ai/totem#2357), so it stays
241
+ * fail-loud under this shape.
162
242
  */
163
243
  export function detectOrchestrator(cwd) {
164
244
  // Read .env file once (loadEnv may not have run yet)
@@ -173,100 +253,45 @@ export function detectOrchestrator(cwd) {
173
253
  }
174
254
  // 1. Gemini CLI on PATH → shell provider
175
255
  if (cliExists('gemini')) {
176
- const config = {
256
+ return orchestratorResult({
177
257
  provider: 'shell',
178
258
  command: 'gemini --model {model} -o json -e none < {file}',
179
- defaultModel: 'gemini-3-flash-preview',
180
- overrides: {
181
- spec: 'gemini-3.1-pro-preview',
182
- shield: 'gemini-3.1-pro-preview',
183
- triage: 'gemini-3.1-pro-preview',
184
- },
185
- };
186
- return {
187
- config,
188
- block: ` orchestrator: {
189
- provider: 'shell',
190
- command: 'gemini --model {model} -o json -e none < {file}',
191
- defaultModel: 'gemini-3-flash-preview',
192
- overrides: {
193
- 'spec': 'gemini-3.1-pro-preview',
194
- 'shield': 'gemini-3.1-pro-preview',
195
- 'triage': 'gemini-3.1-pro-preview',
196
- },
197
- },`,
198
- };
259
+ overrides: buildRoleOverrides(INIT_ORCHESTRATOR_MODELS.geminiCli),
260
+ });
199
261
  }
200
262
  // 2. Claude CLI on PATH → shell provider (anthropic)
201
263
  if (cliExists('claude')) {
202
- const config = {
264
+ return orchestratorResult({
203
265
  provider: 'shell',
204
266
  command: 'claude -p {file} --model {model} --output-format json',
205
- defaultModel: 'sonnet',
206
- };
207
- return {
208
- config,
209
- block: ` orchestrator: {
210
- provider: 'shell',
211
- command: 'claude -p {file} --model {model} --output-format json',
212
- defaultModel: 'sonnet',
213
- },`,
214
- };
267
+ overrides: buildRoleOverrides(INIT_ORCHESTRATOR_MODELS.claudeCli),
268
+ });
215
269
  }
216
270
  // 3. API keys → native SDK providers
217
271
  if (hasKey(envContent, 'GEMINI_API_KEY', 'GOOGLE_API_KEY')) {
218
- const config = {
272
+ return orchestratorResult({
219
273
  provider: 'gemini',
220
- defaultModel: 'gemini-3-flash-preview',
221
- overrides: {
222
- spec: 'gemini-3.1-pro-preview',
223
- shield: 'gemini-3.1-pro-preview',
224
- triage: 'gemini-3.1-pro-preview',
225
- },
226
- };
227
- return {
228
- config,
229
- block: ` orchestrator: {
230
- provider: 'gemini',
231
- defaultModel: 'gemini-3-flash-preview',
232
- overrides: {
233
- 'spec': 'gemini-3.1-pro-preview',
234
- 'shield': 'gemini-3.1-pro-preview',
235
- 'triage': 'gemini-3.1-pro-preview',
236
- },
237
- },`,
238
- };
274
+ overrides: buildRoleOverrides(INIT_ORCHESTRATOR_MODELS.gemini),
275
+ });
239
276
  }
240
277
  if (hasKey(envContent, 'ANTHROPIC_API_KEY')) {
241
- const config = { provider: 'anthropic', defaultModel: 'claude-sonnet-4-6' };
242
- return {
243
- config,
244
- block: ` orchestrator: {
245
- provider: 'anthropic',
246
- defaultModel: 'claude-sonnet-4-6',
247
- },`,
248
- };
278
+ return orchestratorResult({
279
+ provider: 'anthropic',
280
+ overrides: buildRoleOverrides(INIT_ORCHESTRATOR_MODELS.anthropic),
281
+ });
249
282
  }
250
283
  if (hasKey(envContent, 'OPENAI_API_KEY')) {
251
- const config = { provider: 'openai', defaultModel: 'gpt-5.4-mini' };
252
- return {
253
- config,
254
- block: ` orchestrator: {
255
- provider: 'openai',
256
- defaultModel: 'gpt-5.4-mini',
257
- },`,
258
- };
284
+ return orchestratorResult({
285
+ provider: 'openai',
286
+ overrides: buildRoleOverrides(INIT_ORCHESTRATOR_MODELS.openai),
287
+ });
259
288
  }
260
289
  // 4. Ollama running locally → use gemma4 (free, fast, air-gappable)
261
290
  if (cliExists('ollama')) {
262
- const config = { provider: 'ollama', defaultModel: 'gemma4' };
263
- return {
264
- config,
265
- block: ` orchestrator: {
266
- provider: 'ollama',
267
- defaultModel: 'gemma4',
268
- },`,
269
- };
291
+ return orchestratorResult({
292
+ provider: 'ollama',
293
+ overrides: buildRoleOverrides(INIT_ORCHESTRATOR_MODELS.ollama),
294
+ });
270
295
  }
271
296
  // 5. Nothing found → omit orchestrator (Lite/Standard tier)
272
297
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"init-detect.js","sourceRoot":"","sources":["../../src/commands/init-detect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,4DAA4D;AAE5D,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,KAAK;QACV,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE;QAC7D,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;AACrD,CAAC;AAgDD,4DAA4D;AAE5D,kDAAkD;AAClD,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,MAAM,CAAC,UAAkB,EAAE,GAAG,QAAkB;IAC9D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,WAAW,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAClF,OAAO,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACrC,CAAC;AAED,2DAA2D;AAE3D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAiB;IACpC;QACE,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,WAAW;QACvB,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;KAC/D;IACD;QACE,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,WAAW;QACvB,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;KAChD;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,cAAc;QAC1B,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;KAC/D;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,qBAAqB;QAC9B,UAAU,EAAE,sBAAsB;QAClC,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;KAChD;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,iCAAiC;QAC7C,WAAW,EAAE,IAAI;KAClB;CACF,CAAC;AAEF,4DAA4D;AAE5D,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/D,gEAAgE;IAChE,IAAI,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,aAAa,GAAG,EAAE;iBACf,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;iBACvC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,aAAa;QAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAChF,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,QAAQ,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5C,+DAA+D;IAC/D,IAAI,qBAAqB,GAAiB,MAAM,CAAC,CAAC,4BAA4B;IAC9E,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACtC,qBAAqB,GAAG,IAAI,CAAC;IAC/B,CAAC;SAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxE,qBAAqB,GAAG,MAAM,CAAC;IACjC,CAAC;IAED,OAAO;QACL,aAAa;QACb,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC;QAC7B,WAAW,EAAE,MAAM,CAAC,kBAAkB,CAAC;QACvC,qBAAqB;QACrB,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAElC,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAE,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAE,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAE,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,MAAM,CAAC,iCAAiC,CAAC,EAAE,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAE,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,qDAAqD;IACrD,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;IACjD,CAAC;IAED,oEAAoE;IACpE,IAAI,MAAM,CAAC,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE5E,0CAA0C;IAC1C,IAAI,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,qDAAqD;IACrD,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;IACjD,CAAC;IAED,yCAAyC;IACzC,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,iDAAiD;YAC1D,YAAY,EAAE,wBAAwB;YACtC,SAAS,EAAE;gBACT,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,wBAAwB;gBAChC,MAAM,EAAE,wBAAwB;aACjC;SACF,CAAC;QACF,OAAO;YACL,MAAM;YACN,KAAK,EAAE;;;;;;;;;KASR;SACA,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,uDAAuD;YAChE,YAAY,EAAE,QAAQ;SACvB,CAAC;QACF,OAAO;YACL,MAAM;YACN,KAAK,EAAE;;;;KAIR;SACA,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,IAAI,MAAM,CAAC,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,wBAAwB;YACtC,SAAS,EAAE;gBACT,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,wBAAwB;gBAChC,MAAM,EAAE,wBAAwB;aACjC;SACF,CAAC;QACF,OAAO;YACL,MAAM;YACN,KAAK,EAAE;;;;;;;;KAQR;SACA,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;QAC5E,OAAO;YACL,MAAM;YACN,KAAK,EAAE;;;KAGR;SACA,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;QACpE,OAAO;YACL,MAAM;YACN,KAAK,EAAE;;;KAGR;SACA,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;QAC9D,OAAO;YACL,MAAM;YACN,KAAK,EAAE;;;KAGR;SACA,CAAC;IACJ,CAAC;IAED,4DAA4D;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4DAA4D;AAE5D,MAAM,UAAU,YAAY,CAAC,QAAyB;IACpD,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,0EAA0E;IAC1E,OAAO,CAAC,IAAI,CACV,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAC7E,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAC5E,CAAC;IAEF,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CACV,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EACjE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CACnE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,mCAAmC;YACnC,OAAO,CAAC,IAAI,CACV,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EACtE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CACxE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,aAAa;SACxB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,yEAAyE;QACzE,2EAA2E;QAC3E,qDAAqD;QACrD,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,sFAAsF;IACtF,uFAAuF;IACvF,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAuB;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9B,OAAO,gBAAgB,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,QAAQ,MAAM,CAAC;IACpF,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"init-detect.js","sourceRoot":"","sources":["../../src/commands/init-detect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=init-detect.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-detect.test.d.ts","sourceRoot":"","sources":["../../src/commands/init-detect.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,183 @@
1
+ import * as fs from 'node:fs';
2
+ import * as os from 'node:os';
3
+ import * as path from 'node:path';
4
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
5
+ // Mock the CLI-probe seam (cliExists → safeExec) so branch selection is
6
+ // host-independent: no real `where`/`which` spawns, no PATH sensitivity.
7
+ vi.mock('@mmnto/totem', async (importOriginal) => {
8
+ const actual = await importOriginal();
9
+ return {
10
+ ...actual,
11
+ safeExec: vi.fn(() => {
12
+ throw new Error('not on PATH');
13
+ }),
14
+ };
15
+ });
16
+ import { safeExec } from '@mmnto/totem';
17
+ import { buildRoleOverrides, detectOrchestrator, INIT_ORCHESTRATOR_MODELS, INIT_ORCHESTRATOR_ROLES, renderOrchestratorBlock, } from './init-detect.js';
18
+ const API_KEY_VARS = ['GEMINI_API_KEY', 'GOOGLE_API_KEY', 'ANTHROPIC_API_KEY', 'OPENAI_API_KEY'];
19
+ // Independent contract fixtures (mmnto-ai/totem#2360 review round): pinned as
20
+ // literals so an accidental edit to the production constants fails here
21
+ // instead of flowing through derived expectations and staying green.
22
+ const EXPECTED_ROLES = [
23
+ 'compile',
24
+ 'docs',
25
+ 'spec',
26
+ 'shield',
27
+ 'triage',
28
+ 'extract',
29
+ 'reviewlearn',
30
+ ];
31
+ const EXPECTED_MODELS = {
32
+ geminiCli: 'gemini-3.5-flash',
33
+ claudeCli: 'sonnet',
34
+ gemini: 'gemini-3.5-flash',
35
+ anthropic: 'claude-sonnet-5',
36
+ openai: 'gpt-5.6-terra',
37
+ ollama: 'gemma4',
38
+ };
39
+ /** Make cliExists() succeed only for the given binary names. */
40
+ function stubCliOnPath(...names) {
41
+ vi.mocked(safeExec).mockImplementation(((_cmd, args) => {
42
+ if (args && names.includes(args[0]))
43
+ return '';
44
+ throw new Error('not on PATH');
45
+ }));
46
+ }
47
+ describe('detectOrchestrator emission shape (Tenet-16 corollary)', () => {
48
+ let tmpDir;
49
+ beforeEach(() => {
50
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'totem-initdetect-'));
51
+ // Neutralize host API keys so only per-test .env content drives detection.
52
+ for (const v of API_KEY_VARS)
53
+ vi.stubEnv(v, '');
54
+ });
55
+ afterEach(() => {
56
+ vi.unstubAllEnvs();
57
+ vi.mocked(safeExec).mockImplementation(() => {
58
+ throw new Error('not on PATH');
59
+ });
60
+ fs.rmSync(tmpDir, { recursive: true, force: true });
61
+ });
62
+ function writeEnv(content) {
63
+ fs.writeFileSync(path.join(tmpDir, '.env'), content);
64
+ }
65
+ it('returns null when no CLI or API key is present', () => {
66
+ expect(detectOrchestrator(tmpDir)).toBeNull();
67
+ });
68
+ it('production constants match the pinned contract fixtures', () => {
69
+ expect([...INIT_ORCHESTRATOR_ROLES]).toEqual([...EXPECTED_ROLES]);
70
+ expect(INIT_ORCHESTRATOR_MODELS).toEqual(EXPECTED_MODELS);
71
+ });
72
+ it.each([
73
+ ['GEMINI_API_KEY', 'gemini', EXPECTED_MODELS.gemini],
74
+ ['GOOGLE_API_KEY', 'gemini', EXPECTED_MODELS.gemini],
75
+ ['ANTHROPIC_API_KEY', 'anthropic', EXPECTED_MODELS.anthropic],
76
+ ['OPENAI_API_KEY', 'openai', EXPECTED_MODELS.openai],
77
+ ])('%s → provider %s with every role on %s', (envKey, provider, model) => {
78
+ writeEnv(`${envKey}=test-key\n`);
79
+ const result = detectOrchestrator(tmpDir);
80
+ expect(result).not.toBeNull();
81
+ expect(result.config['provider']).toBe(provider);
82
+ expect(result.config['overrides']).toEqual(Object.fromEntries(EXPECTED_ROLES.map((role) => [role, model])));
83
+ });
84
+ it('gemini CLI on PATH wins over API keys and emits the shell provider', () => {
85
+ stubCliOnPath('gemini');
86
+ writeEnv('ANTHROPIC_API_KEY=test-key\n');
87
+ const result = detectOrchestrator(tmpDir);
88
+ expect(result.config['provider']).toBe('shell');
89
+ expect(result.config['command']).toContain('gemini --model {model}');
90
+ expect(result.config['overrides']).toEqual(Object.fromEntries(EXPECTED_ROLES.map((role) => [role, EXPECTED_MODELS.geminiCli])));
91
+ });
92
+ it('claude CLI branch emits the tier alias, not a dated pin', () => {
93
+ stubCliOnPath('claude');
94
+ const result = detectOrchestrator(tmpDir);
95
+ expect(result.config['provider']).toBe('shell');
96
+ expect(result.config['command']).toContain('claude -p {file}');
97
+ expect(result.config['overrides']).toEqual(Object.fromEntries(EXPECTED_ROLES.map((role) => [role, 'sonnet'])));
98
+ });
99
+ it('ollama branch emits gemma4 per-role', () => {
100
+ stubCliOnPath('ollama');
101
+ const result = detectOrchestrator(tmpDir);
102
+ expect(result.config['provider']).toBe('ollama');
103
+ expect(result.config['overrides']).toEqual(Object.fromEntries(EXPECTED_ROLES.map((role) => [role, 'gemma4'])));
104
+ });
105
+ it('no branch emits an ambient defaultModel, in the config object or the rendered block', () => {
106
+ const branches = [
107
+ () => stubCliOnPath('gemini'),
108
+ () => stubCliOnPath('claude'),
109
+ () => stubCliOnPath('ollama'),
110
+ () => writeEnv('GEMINI_API_KEY=test-key\n'),
111
+ () => writeEnv('ANTHROPIC_API_KEY=test-key\n'),
112
+ () => writeEnv('OPENAI_API_KEY=test-key\n'),
113
+ ];
114
+ for (const arm of branches) {
115
+ vi.mocked(safeExec).mockImplementation(() => {
116
+ throw new Error('not on PATH');
117
+ });
118
+ fs.rmSync(path.join(tmpDir, '.env'), { force: true });
119
+ arm();
120
+ const result = detectOrchestrator(tmpDir);
121
+ expect(result).not.toBeNull();
122
+ expect(Object.keys(result.config)).not.toContain('defaultModel');
123
+ expect(result.block).not.toContain('defaultModel');
124
+ expect(Object.keys(result.config['overrides']).sort()).toEqual([...EXPECTED_ROLES].sort());
125
+ }
126
+ });
127
+ });
128
+ describe('buildRoleOverrides', () => {
129
+ it('maps every emitted role to the given model', () => {
130
+ const overrides = buildRoleOverrides('some-model');
131
+ expect(Object.keys(overrides)).toEqual([...EXPECTED_ROLES]);
132
+ expect(new Set(Object.values(overrides))).toEqual(new Set(['some-model']));
133
+ });
134
+ });
135
+ describe('renderOrchestratorBlock', () => {
136
+ it('renders the TS block from the same object serialized to YAML/TOML (no drift)', () => {
137
+ const config = {
138
+ provider: 'gemini',
139
+ overrides: buildRoleOverrides(INIT_ORCHESTRATOR_MODELS.gemini),
140
+ };
141
+ const block = renderOrchestratorBlock(config);
142
+ expect(block.startsWith(' orchestrator: {')).toBe(true);
143
+ expect(block.endsWith(' },')).toBe(true);
144
+ expect(block).toContain(" provider: 'gemini',");
145
+ for (const role of INIT_ORCHESTRATOR_ROLES) {
146
+ expect(block).toContain(` ${role}: '${INIT_ORCHESTRATOR_MODELS.gemini}',`);
147
+ }
148
+ });
149
+ it('escapes single quotes and backslashes in string values (no silent syntax break)', () => {
150
+ const block = renderOrchestratorBlock({
151
+ provider: 'shell',
152
+ command: "echo 'it''s' \\ done",
153
+ overrides: { compile: "model'with\\quirks" },
154
+ });
155
+ expect(block).toContain(" command: 'echo \\'it\\'\\'s\\' \\\\ done',");
156
+ expect(block).toContain(" compile: 'model\\'with\\\\quirks',");
157
+ });
158
+ it('renders booleans, numbers, and arrays instead of silently omitting them', () => {
159
+ const block = renderOrchestratorBlock({
160
+ provider: 'gemini',
161
+ enableContextCaching: true,
162
+ maxRetries: 3,
163
+ lanes: ['anthropic:claude-sonnet-5', 'gemini:gemini-3.5-flash'],
164
+ });
165
+ expect(block).toContain(' enableContextCaching: true,');
166
+ expect(block).toContain(' maxRetries: 3,');
167
+ expect(block).toContain(' lanes: ["anthropic:claude-sonnet-5","gemini:gemini-3.5-flash"],');
168
+ });
169
+ it('renders shell-provider blocks with the command line before overrides', () => {
170
+ const config = {
171
+ provider: 'shell',
172
+ command: 'gemini --model {model} -o json -e none < {file}',
173
+ overrides: buildRoleOverrides('m'),
174
+ };
175
+ const block = renderOrchestratorBlock(config);
176
+ const commandIdx = block.indexOf('command:');
177
+ const overridesIdx = block.indexOf('overrides:');
178
+ expect(commandIdx).toBeGreaterThan(-1);
179
+ expect(overridesIdx).toBeGreaterThan(commandIdx);
180
+ expect(block).toContain(" command: 'gemini --model {model} -o json -e none < {file}',");
181
+ });
182
+ });
183
+ //# sourceMappingURL=init-detect.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-detect.test.js","sourceRoot":"","sources":["../../src/commands/init-detect.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/commands/mail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/commands/mail.ts"],"names":[],"mappings":"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"}
@@ -221,6 +221,21 @@ function drainProcessedDir(dir, into, warnings) {
221
221
  warnings.push(`processed/ scan failed (${dir}): ${String(err)}`);
222
222
  }
223
223
  }
224
+ /**
225
+ * No-follow directory probe for the outbox level: `fs.existsSync` follows
226
+ * symlinks, so a symlinked `outbox/` would pull outside-tree content into the
227
+ * mail scan (mmnto-ai/totem#2355, sibling class to the #2354 ingest guard).
228
+ */
229
+ function isRealDirectory(p) {
230
+ // totem-context: intentional cleanup — a raced/ENOENT lstat degrades to "not a directory" and skips this slot, matching the scan's skip-don't-abort posture (same idiom as the #2356 ingest guard).
231
+ try {
232
+ return fs.lstatSync(p).isDirectory();
233
+ // totem-context: intentional cleanup — see directive above the try; dual placement so the rule fires on either the catch-keyword line or the catch-body line.
234
+ }
235
+ catch {
236
+ return false;
237
+ }
238
+ }
224
239
  /**
225
240
  * Enumerate outbox directories under `<workspace>/<repo>/.totem/orchestration/<agent>/outbox`.
226
241
  * Single-level by default; recursive mode walks `<workspace>/**` (capped at MAX_SCAN
@@ -246,11 +261,22 @@ function enumerateOutboxes(workspace, recursive, warnings) {
246
261
  return slots;
247
262
  }
248
263
  const visit = (repoLabel, orchDir) => {
249
- if (!fs.existsSync(orchDir))
264
+ // No-follow both remaining path hops (greptile round on this PR):
265
+ // `existsSync` follows symlinks, so a symlinked `.totem/` or
266
+ // `orchestration/` inside a real repo would swing the whole agent scan
267
+ // into the link target. `path.dirname(orchDir)` is the `.totem` hop.
268
+ if (!isRealDirectory(path.dirname(orchDir)) || !isRealDirectory(orchDir))
250
269
  return;
251
270
  let agents;
252
271
  try {
253
- agents = fs.readdirSync(orchDir).sort();
272
+ // Dirent-filter the agent level like the workspace/repo levels above:
273
+ // a symlinked `<agent>/` dir must not be followed into the mail scan
274
+ // (mmnto-ai/totem#2355; orchestration-resolver.ts is no-follow by design).
275
+ agents = fs
276
+ .readdirSync(orchDir, { withFileTypes: true })
277
+ .filter((d) => d.isDirectory())
278
+ .map((d) => d.name)
279
+ .sort();
254
280
  // totem-context: intentional cleanup — per-repo readdir failure skips this slot, emits a structured warning, and lets sibling repos continue; one inaccessible orchestration tree must not block the rest of the scan.
255
281
  }
256
282
  catch (err) {
@@ -259,7 +285,7 @@ function enumerateOutboxes(workspace, recursive, warnings) {
259
285
  }
260
286
  for (const agent of agents) {
261
287
  const outbox = path.join(orchDir, agent, 'outbox');
262
- if (fs.existsSync(outbox)) {
288
+ if (isRealDirectory(outbox)) {
263
289
  slots.push({ repo: repoLabel, agent, outbox });
264
290
  }
265
291
  }