@zhixuan92/multi-model-agent 3.9.0 → 3.9.1

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.
package/README.md CHANGED
@@ -82,7 +82,7 @@ Two ways — pick one:
82
82
 
83
83
  ```bash
84
84
  mmagent serve # 127.0.0.1:7337 by default
85
- curl -s http://localhost:7337/health # → {"ok":true,"version":"3.9.0",...}
85
+ curl -s http://localhost:7337/health # → {"ok":true,"version":"3.9.1",...}
86
86
  ```
87
87
 
88
88
  For an always-on background install (survives reboots): [launchd / systemd templates](./scripts/README.md).
@@ -285,7 +285,7 @@ Full design rationale: [DIRECTION.md](https://github.com/zhixuan312/multi-model-
285
285
 
286
286
  ## What's new
287
287
 
288
- Latest: **3.9.0** — watchdog hardening + per-stage idle telemetry. The reviewer entry points (`runSpecReview` / `runQualityReview` / `runDiffReview`) now thread `taskDeadlineMs` + `abortSignal` + `onProgress`, closing the leak that allowed reviewer hangs to run past the documented cap. Total wall-clock cap bumped 30 → 60 min, stall watchdog 10 → 20 min, both via named constants. New `StageIdleTracker` records `maxIdleMs`/`totalIdleMs`/`activityEvents` per stage and surfaces them on `task_completed` + the heartbeat (`stage_idle_ms`). Full history: [CHANGELOG](https://github.com/zhixuan312/multi-model-agent/blob/master/CHANGELOG.md).
288
+ Latest: **3.9.1** — Codex skill installs now use Codex's native `~/.codex/skills/<skillName>/SKILL.md` layout, so all MMA skills load independently in new Codex sessions. The installer also removes the legacy MMA-managed `AGENTS.md` block while preserving user-authored `AGENTS.md` content. Full history: [CHANGELOG](https://github.com/zhixuan312/multi-model-agent/blob/master/CHANGELOG.md).
289
289
 
290
290
  ## Full documentation
291
291
 
@@ -1,7 +1,7 @@
1
1
  export interface CodexCliInstallOpts {
2
- /** Human-readable name of the skill (used in warning messages). */
2
+ /** Human-readable name of the skill (used in file path). */
3
3
  skillName: string;
4
- /** Raw skill content (may contain @include directives). */
4
+ /** Raw skill content, possibly containing @include directives. */
5
5
  content: string;
6
6
  /**
7
7
  * Home directory — replaces `os.homedir()` in all file operations.
@@ -12,28 +12,16 @@ export interface CodexCliInstallOpts {
12
12
  skillsRoot: string;
13
13
  }
14
14
  /**
15
- * Write (or overwrite) the managed block in the Codex CLI's AGENTS.md.
15
+ * Write (or overwrite) the SKILL.md file for a Codex CLI skill.
16
16
  *
17
- * The algorithm:
18
- * 1. Inline @include directives.
19
- * 2. Read existing file if present.
20
- * 3. Determine new content: create / append / replace.
21
- * 4. Write to disk.
22
- *
23
- * @throws If the AGENTS.md file exists but cannot be read.
24
- * @throws If the AGENTS.md path is a directory.
17
+ * Target path: `<homeDir>/.codex/skills/<skillName>/SKILL.md`
25
18
  */
26
19
  export declare function installCodexCli(opts: CodexCliInstallOpts): void;
27
20
  /**
28
- * Remove the managed block (including markers) from AGENTS.md.
29
- *
30
- * Behaviour:
31
- * - File does not exist → no-op.
32
- * - File has no managed block markers → no-op (file unchanged).
33
- * - File has managed block → remove it; write remaining content back.
34
- * - Remaining content is empty or whitespace-only → delete the file.
21
+ * Uninstall a Codex CLI skill by removing its directory.
35
22
  *
36
- * @throws On filesystem errors other than ENOENT when reading/writing.
23
+ * This is a no-op when the directory does not exist or when `skillName` would
24
+ * escape the Codex skills directory.
37
25
  */
38
- export declare function uninstallCodexCli(homeDir: string): void;
26
+ export declare function uninstallCodexCli(skillName: string, homeDir: string): void;
39
27
  //# sourceMappingURL=codex-cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-cli.d.ts","sourceRoot":"","sources":["../../src/install/codex-cli.ts"],"names":[],"mappings":"AAgDA,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;CACpB;AAmLD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAiE/D;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CA2CvD"}
1
+ {"version":3,"file":"codex-cli.d.ts","sourceRoot":"","sources":["../../src/install/codex-cli.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;CACpB;AAuCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAW/D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAK1E"}
@@ -1,318 +1,84 @@
1
1
  /**
2
2
  * Codex CLI skill writer for install-skill.
3
3
  *
4
- * Task 9.7 scope: write/install and remove/uninstall of skills to
5
- * the Codex CLI's managed block in `<homeDir>/.codex/AGENTS.md`.
4
+ * Writes each skill's SKILL.md to `<homeDir>/.codex/skills/<skillName>/SKILL.md`.
5
+ * Codex discovers skills from that directory on the next session start. Existing
6
+ * `AGENTS.md` instructions are user-owned and are not modified by this writer.
6
7
  *
7
- * Managed block delimiters:
8
- * <!-- multi-model-agent:BEGIN -->
9
- * ... skill content ...
10
- * <!-- multi-model-agent:END -->
11
- *
12
- * Install behaviour:
13
- * - If AGENTS.md does NOT exist: create it with just the managed block.
14
- * - If AGENTS.md exists but has NO managed block markers: append the block
15
- * at the end with a blank-line separator.
16
- * - If AGENTS.md exists WITH managed block markers: replace the content
17
- * between (and including) the markers with the new managed block.
18
- * - User content OUTSIDE the markers is preserved verbatim.
19
- *
20
- * Uninstall behaviour:
21
- * - Remove the managed block (including markers) from AGENTS.md.
22
- * - If the file becomes empty or only whitespace after removal, delete the
23
- * file.
24
- * - If the file does not contain the markers, do nothing (no error).
25
- * - If the file does not exist, do nothing (no error).
26
- *
27
- * @include resolution:
28
- * Lines beginning with `@include _shared/<file>.md` are replaced with the
29
- * file content read from `<skillsRoot>/_shared/<file>.md`. If the file
30
- * cannot be read, a warning is written to stderr and the line is omitted
31
- * from the output (the directive is NOT preserved — matching the Claude Code
32
- * writer behaviour).
33
- *
34
- * Security: @include paths must begin with `_shared/` and are resolved
35
- * strictly within `<skillsRoot>/_shared/` to prevent path traversal.
8
+ * Before writing, any `@include _shared/<file>.md` directives are inlined using
9
+ * the shared include utility. Missing shared files are warned about and omitted,
10
+ * matching the other client writers.
36
11
  *
37
12
  * @module
38
13
  */
39
14
  import fs from 'node:fs';
40
15
  import path from 'node:path';
41
- // ─── Constants ────────────────────────────────────────────────────────────────
42
- const MANAGED_BEGIN = '<!-- multi-model-agent:BEGIN -->';
43
- const MANAGED_END = '<!-- multi-model-agent:END -->';
44
- // ─── Managed block helpers ────────────────────────────────────────────────────
45
- /**
46
- * Build the complete managed block string including delimiters.
47
- *
48
- * Block format:
49
- * <!-- multi-model-agent:BEGIN -->
50
- * <content>
51
- * <!-- multi-model-agent:END -->
52
- *
53
- * Key newline rules:
54
- * - BEGIN is always followed by `\n` so content starts on its own line.
55
- * - The content line(s) end with a newline. If content doesn't already end
56
- * with `\n`, we add one before END.
57
- * - END is the final line of the block; no trailing newline is added after
58
- * END (the block ends with the `>` character of the END tag).
59
- *
60
- * This means the block always ends with `MANAGED_END` as the last characters
61
- * of the file (no trailing newline after it).
62
- */
63
- function buildManagedBlock(inlinedContent) {
64
- const contentEndsWithNewline = inlinedContent.endsWith('\n');
65
- // Block format: BEGIN + "\n" + content (ending with \n) + END
66
- // No trailing newline after END — callers join suffix directly.
67
- return `${MANAGED_BEGIN}\n${inlinedContent}${contentEndsWithNewline ? '' : '\n'}${MANAGED_END}`;
68
- }
69
- // ─── @include inlining (private) ─────────────────────────────────────────────
70
- /**
71
- * Inline `@include _shared/<path>` directives in `content`.
72
- *
73
- * Each line matching `@include _shared/<path>` is replaced with the full
74
- * content of the corresponding file under `<skillsRoot>/_shared/<path>`.
75
- *
76
- * Security constraints:
77
- * - Only paths beginning with `_shared/` are accepted.
78
- * - The resolved path must stay within `<skillsRoot>/_shared/`. Path
79
- * traversal attempts (e.g. `_shared/../secrets.txt`) are rejected with a
80
- * warning and the directive line is dropped.
81
- *
82
- * Missing shared files:
83
- * - A warning containing "missing shared file" is written to stderr.
84
- * - The directive line is dropped (not preserved) — matching the Claude
85
- * Code writer behaviour as required by the brief.
86
- *
87
- * @param skillName Used in warning messages to identify the skill.
88
- * @param content Raw skill content (may contain @include directives).
89
- * @param skillsRoot Root directory containing `_shared/`.
90
- * @returns The content with directives inlined.
91
- */
92
- function inlineIncludes(skillName, content, skillsRoot) {
93
- const lines = content.split('\n');
94
- const result = [];
95
- for (const line of lines) {
96
- const match = line.match(/^@include\s+(.+)$/);
97
- if (!match) {
98
- result.push(line);
99
- continue;
100
- }
101
- // Trim trailing whitespace from the path token.
102
- const relativePath = match[1].trimEnd();
103
- // Security: only accept paths beginning with `_shared/`
104
- if (!relativePath.startsWith('_shared/')) {
105
- process.stderr.write(`Warning: Codex CLI skill writer [${skillName}]: @include path must ` +
106
- `start with "_shared/": ${relativePath}\n`);
107
- continue;
108
- }
109
- // Security: reject path traversal attempts
110
- const resolvedPath = path.resolve(skillsRoot, relativePath);
111
- const sharedDir = path.resolve(skillsRoot, '_shared');
112
- if (!resolvedPath.startsWith(sharedDir + path.sep) &&
113
- resolvedPath !== sharedDir) {
114
- process.stderr.write(`Warning: Codex CLI skill writer [${skillName}]: @include path ` +
115
- `rejected (path traversal): ${relativePath}\n`);
116
- continue;
117
- }
118
- const sharedFilePath = path.join(skillsRoot, relativePath);
119
- try {
120
- const sharedContent = fs.readFileSync(sharedFilePath, 'utf-8');
121
- result.push(sharedContent);
122
- }
123
- catch (err) {
124
- const nodeErr = err;
125
- if (nodeErr.code === 'ENOENT') {
126
- process.stderr.write(`Warning: Codex CLI skill writer [${skillName}]: missing shared ` +
127
- `file: ${sharedFilePath} (referenced by @include ${relativePath})\n`);
128
- // Directive is dropped — do not push anything.
129
- }
130
- else {
131
- // Permission errors, EISDIR, etc. — re-throw so the caller notices.
132
- throw err;
133
- }
134
- }
135
- }
136
- return result.join('\n');
137
- }
138
- // ─── Marker helpers ────────────────────────────────────────────────────────────
139
- /**
140
- * Returns true only when both managed block markers are present in
141
- * `content` and BEGIN appears before END. An orphan marker or corrupt
142
- * ordering does NOT constitute a valid block.
143
- */
144
- function hasManagedBlock(content) {
145
- const beginIdx = content.indexOf(MANAGED_BEGIN);
146
- const endIdx = content.indexOf(MANAGED_END);
147
- return beginIdx !== -1 && endIdx !== -1 && beginIdx < endIdx;
16
+ import { inlineIncludes } from './include-utils.js';
17
+ const LEGACY_MANAGED_BEGIN = '<!-- multi-model-agent:BEGIN -->';
18
+ const LEGACY_MANAGED_END = '<!-- multi-model-agent:END -->';
19
+ function codexSkillsBase(homeDir) {
20
+ return path.resolve(homeDir, '.codex', 'skills');
148
21
  }
149
- // ─── Core write logic ─────────────────────────────────────────────────────────
150
- /**
151
- * Find the span of the existing managed block (including both markers) in
152
- * `content`. Returns `{ prefix, suffix }` where `prefix` is everything
153
- * before BEGIN and `suffix` is everything after the block's final character.
154
- *
155
- * The block always ends with `MANAGED_END` (no trailing newline after END).
156
- * After END, there may be a structural newline (the newline that terminates
157
- * the END line). This structural newline is NOT part of the user suffix — it
158
- * belongs to the block boundary and must not appear as an extra blank line
159
- * when prefix and suffix are joined.
160
- *
161
- * Edge cases:
162
- * - If END is the last character of the file (no trailing newline), suffix
163
- * is empty.
164
- * - If BEGIN and END are in corrupt order (END before BEGIN), returns null
165
- * so no user content is inadvertently destroyed.
166
- */
167
- function splitAroundBlock(content) {
168
- const beginIdx = content.indexOf(MANAGED_BEGIN);
169
- const endIdx = content.indexOf(MANAGED_END);
170
- // No valid block without both markers
171
- if (beginIdx === -1 || endIdx === -1) {
172
- return null;
173
- }
174
- // Corrupt order: END before BEGIN — treat as no valid block to protect
175
- // user content from inadvertent removal.
176
- if (beginIdx > endIdx) {
22
+ function resolveSkillDir(homeDir, skillName) {
23
+ const base = codexSkillsBase(homeDir);
24
+ const resolved = path.resolve(base, path.normalize(skillName));
25
+ if (!resolved.startsWith(base + path.sep))
177
26
  return null;
178
- }
179
- // suffix starts immediately after MANAGED_END (includes any trailing newlines).
180
- // Callers decide how to handle the leading newlines in suffix:
181
- // - Install (replace): suffix begins with the separator between END and
182
- // following user content; joining block + suffix reconstructs the file.
183
- // - Uninstall: strip all leading newlines from suffix before joining.
184
- const suffixStart = endIdx + MANAGED_END.length;
185
- return {
186
- prefix: content.slice(0, beginIdx),
187
- suffix: content.slice(suffixStart),
188
- };
27
+ return resolved;
189
28
  }
190
- /**
191
- * Write (or overwrite) the managed block in the Codex CLI's AGENTS.md.
192
- *
193
- * The algorithm:
194
- * 1. Inline @include directives.
195
- * 2. Read existing file if present.
196
- * 3. Determine new content: create / append / replace.
197
- * 4. Write to disk.
198
- *
199
- * @throws If the AGENTS.md file exists but cannot be read.
200
- * @throws If the AGENTS.md path is a directory.
201
- */
202
- export function installCodexCli(opts) {
203
- const agentsPath = path.join(opts.homeDir, '.codex', 'AGENTS.md');
204
- // 1. Inline @include directives
205
- const inlinedContent = inlineIncludes(opts.skillName, opts.content, opts.skillsRoot);
206
- const block = buildManagedBlock(inlinedContent);
207
- // 2. Read existing file
208
- let existingContent;
209
- let fileExists = false;
210
- try {
211
- const stat = fs.statSync(agentsPath);
212
- if (stat.isDirectory()) {
213
- throw new Error(`AGENTS.md path is a directory: ${agentsPath}`);
214
- }
215
- existingContent = fs.readFileSync(agentsPath, 'utf-8');
216
- fileExists = true;
217
- }
218
- catch (err) {
219
- if (err.code === 'ENOENT') {
220
- existingContent = '';
221
- fileExists = false;
222
- }
223
- else {
224
- throw err;
225
- }
226
- }
227
- // 3. Determine new content
228
- let newContent;
229
- if (!fileExists) {
230
- // Case A: file does not exist → create with just the managed block
231
- newContent = block;
232
- }
233
- else if (!hasManagedBlock(existingContent)) {
234
- // Case B: file exists but no managed block → append with blank-line separator
235
- //
236
- // The block begins with BEGIN + "\n". To create exactly one blank line
237
- // between existing content and the BEGIN marker:
238
- // - If existingContent ends with "\n": add one "\n" → existing ends with
239
- // "\n", block starts with "\n" → two newlines = one blank line. ✓
240
- // - If existingContent does NOT end with "\n": add "\n\n" → existing ends
241
- // with "\n", block starts with "\n" → two newlines = one blank line. ✓
242
- newContent = existingContent.endsWith('\n')
243
- ? `${existingContent}\n${block}`
244
- : `${existingContent}\n\n${block}`;
245
- }
246
- else {
247
- // Case C: file exists with managed block → replace it
248
- const split = splitAroundBlock(existingContent);
249
- if (split === null) {
250
- // Both markers present but split returned null — corrupt marker order.
251
- // Do not overwrite; append with separator instead.
252
- newContent = existingContent.endsWith('\n')
253
- ? `${existingContent}\n${block}`
254
- : `${existingContent}\n\n${block}`;
255
- }
256
- else {
257
- const { prefix, suffix } = split;
258
- newContent = `${prefix}${block}${suffix}`;
259
- }
260
- }
261
- // 4. Write to disk
262
- fs.mkdirSync(path.join(opts.homeDir, '.codex'), { recursive: true });
263
- fs.writeFileSync(agentsPath, newContent, 'utf-8');
264
- }
265
- // ─── Uninstall ────────────────────────────────────────────────────────────────
266
- /**
267
- * Remove the managed block (including markers) from AGENTS.md.
268
- *
269
- * Behaviour:
270
- * - File does not exist → no-op.
271
- * - File has no managed block markers → no-op (file unchanged).
272
- * - File has managed block → remove it; write remaining content back.
273
- * - Remaining content is empty or whitespace-only → delete the file.
274
- *
275
- * @throws On filesystem errors other than ENOENT when reading/writing.
276
- */
277
- export function uninstallCodexCli(homeDir) {
29
+ function removeLegacyManagedAgentsBlock(homeDir) {
278
30
  const agentsPath = path.join(homeDir, '.codex', 'AGENTS.md');
279
31
  let content;
280
32
  try {
281
33
  content = fs.readFileSync(agentsPath, 'utf-8');
282
34
  }
283
35
  catch (err) {
284
- if (err.code === 'ENOENT') {
285
- // File does not exist — no-op.
36
+ if (err.code === 'ENOENT')
286
37
  return;
287
- }
288
- // Re-throw on read errors, preserving the original error context.
289
38
  throw err;
290
39
  }
291
- if (!hasManagedBlock(content)) {
292
- // No managed block to remove — file unchanged.
40
+ const beginIdx = content.indexOf(LEGACY_MANAGED_BEGIN);
41
+ const endIdx = content.indexOf(LEGACY_MANAGED_END);
42
+ if (beginIdx === -1 || endIdx === -1 || beginIdx > endIdx)
293
43
  return;
294
- }
295
- const split = splitAroundBlock(content);
296
- if (split === null) {
297
- // Both markers present but split returned null — corrupt marker order.
298
- // No safe block to remove — leave file unchanged.
299
- return;
300
- }
301
- const { prefix, suffix } = split;
302
- // Strip all leading newlines from suffix. The suffix begins with any
303
- // newlines that followed MANAGED_END (including blank-line separators).
304
- // Removing them avoids leaving orphan blank lines after the managed block
305
- // is gone. The prefix already ends before BEGIN (including any trailing
306
- // newlines the user placed before the block), so this does not disturb
307
- // user-authored spacing in the prefix.
308
- const trimmedSuffix = suffix.replace(/^\n+/, '');
309
- const newContent = `${prefix}${trimmedSuffix}`;
310
- if (newContent.trim() === '') {
311
- // File is empty after removal — delete it.
44
+ const suffixStart = endIdx + LEGACY_MANAGED_END.length;
45
+ const prefix = content.slice(0, beginIdx);
46
+ const suffix = content.slice(suffixStart).replace(/^\n+/, '');
47
+ const nextContent = `${prefix}${suffix}`;
48
+ if (nextContent.trim() === '') {
312
49
  fs.unlinkSync(agentsPath);
313
50
  }
314
51
  else {
315
- fs.writeFileSync(agentsPath, newContent, 'utf-8');
52
+ fs.writeFileSync(agentsPath, nextContent, 'utf-8');
53
+ }
54
+ }
55
+ /**
56
+ * Write (or overwrite) the SKILL.md file for a Codex CLI skill.
57
+ *
58
+ * Target path: `<homeDir>/.codex/skills/<skillName>/SKILL.md`
59
+ */
60
+ export function installCodexCli(opts) {
61
+ const { skillName, content, homeDir, skillsRoot } = opts;
62
+ const skillDir = resolveSkillDir(homeDir, skillName);
63
+ if (skillDir === null) {
64
+ throw new Error(`Invalid Codex CLI skill name: ${skillName}`);
316
65
  }
66
+ removeLegacyManagedAgentsBlock(homeDir);
67
+ const inlinedContent = inlineIncludes('Codex CLI skill writer', content, skillsRoot);
68
+ fs.mkdirSync(skillDir, { recursive: true });
69
+ fs.writeFileSync(path.join(skillDir, 'SKILL.md'), inlinedContent, 'utf-8');
70
+ }
71
+ /**
72
+ * Uninstall a Codex CLI skill by removing its directory.
73
+ *
74
+ * This is a no-op when the directory does not exist or when `skillName` would
75
+ * escape the Codex skills directory.
76
+ */
77
+ export function uninstallCodexCli(skillName, homeDir) {
78
+ removeLegacyManagedAgentsBlock(homeDir);
79
+ const skillDir = resolveSkillDir(homeDir, skillName);
80
+ if (skillDir === null)
81
+ return;
82
+ fs.rmSync(skillDir, { recursive: true, force: true });
317
83
  }
318
84
  //# sourceMappingURL=codex-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-cli.js","sourceRoot":"","sources":["../../src/install/codex-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-cli.js","sourceRoot":"","sources":["../../src/install/codex-cli.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ export function removeSkillFromClient(skillName, target, homeDir, cwd = process.
45
45
  uninstallGeminiCli(homeDir);
46
46
  break;
47
47
  case 'codex':
48
- uninstallCodexCli(homeDir);
48
+ uninstallCodexCli(skillName, homeDir);
49
49
  break;
50
50
  case 'cursor':
51
51
  uninstallCursor(cwd);
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-resolve.js","sourceRoot":"","sources":["../../src/install/manifest-resolve.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7D,mEAAmE;AACnE,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,GAAG,gBAAyB,CAAC;IAC1C,YAAY,MAAc,EAAE,KAAwB;QAClD,KAAK,CAAC,mBAAmB,MAAM,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;CACF;AAED,gEAAgE;AAChE,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,OAAe,EACf,MAAc,EACd,OAAe,EACf,UAAkB,EAClB,UAAkB,OAAO,EACzB,MAAc,OAAO,CAAC,GAAG,EAAE,EAC3B,QAAiB,KAAK;IAEtB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,aAAa;YAChB,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/D,oBAAoB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,MAAM;QACR,KAAK,QAAQ;YACX,gBAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YACrF,oBAAoB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,MAAM;QACR,KAAK,OAAO;YACV,eAAe,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YAC7D,oBAAoB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,MAAM;QACR,KAAK,QAAQ;YACX,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5D,oBAAoB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,MAAM;QACR,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,MAAM,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,kCAAkC,WAAqB,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,MAAc,EACd,OAAe,EACf,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,aAAa;YAChB,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM;QACR,KAAK,QAAQ;YACX,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM;QACR,KAAK,OAAO;YACV,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC3B,MAAM;QACR,KAAK,QAAQ;YACX,eAAe,CAAC,GAAG,CAAC,CAAC;YACrB,MAAM;QACR,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,MAAM,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,kCAAkC,WAAqB,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"manifest-resolve.js","sourceRoot":"","sources":["../../src/install/manifest-resolve.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export declare const ALL_CLIENTS: readonly Client[];
8
8
  * Checks for evidence of each known client:
9
9
  * - claude-code: ~/.claude/ directory present (installs skills under ~/.claude/skills/)
10
10
  * - gemini: ~/.gemini/extensions/ directory present
11
- * - codex: ~/.codex/AGENTS.md file present
11
+ * - codex: ~/.codex/ directory present (installs skills under ~/.codex/skills/)
12
12
  * - cursor: ~/.cursor/rules/ directory present
13
13
  *
14
14
  * The claude-code check deliberately accepts ~/.claude/ as sufficient signal
@@ -19,7 +19,7 @@ export const ALL_CLIENTS = ['claude-code', 'gemini', 'codex', 'cursor'];
19
19
  * Checks for evidence of each known client:
20
20
  * - claude-code: ~/.claude/ directory present (installs skills under ~/.claude/skills/)
21
21
  * - gemini: ~/.gemini/extensions/ directory present
22
- * - codex: ~/.codex/AGENTS.md file present
22
+ * - codex: ~/.codex/ directory present (installs skills under ~/.codex/skills/)
23
23
  * - cursor: ~/.cursor/rules/ directory present
24
24
  *
25
25
  * The claude-code check deliberately accepts ~/.claude/ as sufficient signal
@@ -31,7 +31,7 @@ export function detectClients(homeDir) {
31
31
  detected.push('claude-code');
32
32
  if (fs.existsSync(path.join(homeDir, '.gemini', 'extensions')))
33
33
  detected.push('gemini');
34
- if (fs.existsSync(path.join(homeDir, '.codex', 'AGENTS.md')))
34
+ if (fs.existsSync(path.join(homeDir, '.codex')))
35
35
  detected.push('codex');
36
36
  if (fs.existsSync(path.join(homeDir, '.cursor', 'rules')))
37
37
  detected.push('cursor');
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/install/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/install/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,8EAA8E;AAC9E,MAAM,CAAC,MAAM,WAAW,GAAsB,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAE3F;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/E,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxF,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAE9C,gFAAgF;AAEhF,mDAAmD;AACnD,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAG1E,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;CACtC,CAAC,CAAC;AAKH,oFAAoF;AACpF,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,iEAAiE,OAAO,mDAAmD,CAAC,CAAC;QACnI,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,+EAA+E;AAC/E,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,YAAoB,EAAE,KAAa;QAC7C,KAAK,CAAC,6BAA6B,YAAY,MAAM,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;CACF;AAED,gFAAgF;AAChF,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IACtD,YAAY,YAAoB,EAAE,MAAkB;QAClD,KAAK,CACH,wCAAwC,YAAY,MAAM,MAAM,CAAC,OAAO,EAAE,CAC3E,CAAC;IACJ,CAAC;CACF;AAED,gFAAgF;AAEhF,mDAAmD;AACnD,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;AAC5D,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;AACxD,CAAC;AAWD,SAAS,eAAe,CAAC,CAAS;IAChC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACxC,IAAI,CAAC;QAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB;IACpC,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,aAAa,EAAE,CAAC;IAE9C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kEAAkE,MAAM,KAAK,CAAC,CAAC;QACpG,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;QAC9B,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,aAAa,GACjB,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,SAAS,IAAI,MAAM;QAClE,CAAC,CAAE,MAA+B,CAAC,OAAO;QAC1C,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,yBAAyB;IACzB,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,6BAA6B,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,+BAA+B;IAC/B,uEAAuE;IACvE,IACE,aAAa,KAAK,CAAC;QACnB,CAAC,aAAa,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,SAAS,IAAI,MAAM,CAAC,EACrG,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAE,MAAgC,CAAC,OAAO,CAAC;YACxE,CAAC,CAAG,MAAiC,CAAC,OAAqB;YAC3D,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,QAAQ,GAAoB;YAChC,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,SAAS;iBACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;iBACvE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,YAAY,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBAC3F,WAAW,EAAE,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAClE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAW,CAAC,QAAQ,CAAC,CAAgB,CAAC,CAAC;oBAC/H,CAAC,CAAC,EAAE;aACP,CAAC,CAAC;SACN,CAAC;QACF,qDAAqD;QACrD,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC3E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,6CAA6C;IAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uEAAuE,MAAM,KAAK,CAAC,CAAC;IACzG,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,QAAyB,EAAE,OAAgB;IAChE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;QAChF,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACrC,CAAC;AAED,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,SAAiB,EAAE,OAAgB;IAC1D,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CACzB,SAAiB,EACjB,YAAoB,EACpB,UAAoB,EACpB,OAAgB;IAEhB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAEvC,4EAA4E;IAC5E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,iBAAiB,GAAa,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1D,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAEpE,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;QACrC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,gEAAgE;QAChE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,YAAY;YACZ,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;YACvB,OAAO,EAAE,CAAC,GAAG,iBAAiB,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;AACpE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,SAAiB,EACjB,UAAoB,EAAE,EACtB,OAAgB;IAEhB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACpE,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAE1B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAE,CAAC;IAErC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,eAAe;QACf,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAChC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,iDAAiD;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,OAAgB;IAC7D,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACjD,CAAC"}
@@ -8,7 +8,7 @@ when_to_use: >-
8
8
  User asks for a doc/spec/config audit OR a methodology skill
9
9
  (superpowers:dispatching-parallel-agents, /security-review) points at one AND
10
10
  mmagent is running. Audit on PROSE/SPEC docs — use mma-review for source code.
11
- version: 3.9.0
11
+ version: 3.9.1
12
12
  ---
13
13
 
14
14
  # mma-audit
@@ -12,7 +12,7 @@ when_to_use: >-
12
12
  `proposedInterpretation` is a hard gate — the batch is paused, not
13
13
  informational. The batch will not complete until the caller responds. Treating
14
14
  it as advisory is the clarification-as-info anti-pattern (AP5).
15
- version: 3.9.0
15
+ version: 3.9.1
16
16
  ---
17
17
 
18
18
  # mma-clarifications
@@ -12,7 +12,7 @@ when_to_use: >-
12
12
  Register once here, then pass the ID via `contextBlockIds` on mma-delegate /
13
13
  mma-execute-plan / mma-audit / mma-review / mma-verify / mma-debug /
14
14
  mma-investigate. Cheaper and faster than inlining the same content N times.
15
- version: 3.9.0
15
+ version: 3.9.1
16
16
  ---
17
17
 
18
18
  # mma-context-blocks
@@ -10,7 +10,7 @@ when_to_use: >-
10
10
  read files, reproduce, trace — OR a methodology skill
11
11
  (superpowers:systematic-debugging) points at the investigation step. Delegate
12
12
  the read/reproduce/trace; the main agent stays on the hypothesis and the fix.
13
- version: 3.9.0
13
+ version: 3.9.1
14
14
  ---
15
15
 
16
16
  # mma-debug
@@ -11,7 +11,7 @@ when_to_use: >-
11
11
  and keep main context free. If a plan file exists → use mma-execute-plan. If
12
12
  the task is audit / review / verify / debug / investigate → use the matching
13
13
  specialized skill.
14
- version: 3.9.0
14
+ version: 3.9.1
15
15
  ---
16
16
 
17
17
  # mma-delegate
@@ -10,7 +10,7 @@ when_to_use: >-
10
10
  superpowers:subagent-driven-development / superpowers:executing-plans —
11
11
  workers are cheaper and don't pollute main context. Task descriptors must
12
12
  match plan headings verbatim.
13
- version: 3.9.0
13
+ version: 3.9.1
14
14
  ---
15
15
 
16
16
  # mma-execute-plan
@@ -12,7 +12,7 @@ when_to_use: >-
12
12
  git-history queries. OR you are about to read 3+ files / run any grep in main
13
13
  context — that's the inline-labor-leakage anti-pattern (AP2); delegate to this
14
14
  skill instead.
15
- version: 3.9.0
15
+ version: 3.9.1
16
16
  ---
17
17
 
18
18
  # mma-investigate
@@ -10,7 +10,7 @@ when_to_use: >-
10
10
  you want to re-try the failed indices only. Prefer this over re-dispatching
11
11
  the whole batch or inline-retrying — it's idempotent and preserves the
12
12
  original batch's diagnostics.
13
- version: 3.9.0
13
+ version: 3.9.1
14
14
  ---
15
15
 
16
16
  # mma-retry
@@ -10,7 +10,7 @@ when_to_use: >-
10
10
  AND mmagent is running. Delegate so each file reviews on its own worker; the
11
11
  main agent only decides what to merge. Review on SOURCE CODE — use mma-audit
12
12
  for prose specs / configs.
13
- version: 3.9.0
13
+ version: 3.9.1
14
14
  ---
15
15
 
16
16
  # mma-review
@@ -10,7 +10,7 @@ when_to_use: >-
10
10
  against implemented work BEFORE claiming success. Delegate so each checklist
11
11
  item gets independent evidence-gathering on a worker. Use this BEFORE saying
12
12
  "done" — never after.
13
- version: 3.9.0
13
+ version: 3.9.1
14
14
  ---
15
15
 
16
16
  # mma-verify
@@ -11,7 +11,7 @@ when_to_use: >-
11
11
  tasks — AND mmagent is running. Read this once, pick the matching mma-* skill,
12
12
  and delegate there. Applies equally whether the user invoked a superpowers
13
13
  methodology skill or asked directly.
14
- version: 3.9.0
14
+ version: 3.9.1
15
15
  ---
16
16
 
17
17
  # multi-model-agent (router)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhixuan92/multi-model-agent",
3
- "version": "3.9.0",
3
+ "version": "3.9.1",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Standalone HTTP server for multi-model-agent. Routes tool-invocation work to Claude, Codex, or OpenAI-compatible sub-agents with async-polling REST dispatch and installable skills for Claude Code, Gemini CLI, Codex CLI, and Cursor.",
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "@asteasolutions/zod-to-openapi": "^8.5.0",
55
- "@zhixuan92/multi-model-agent-core": "^3.9.0",
55
+ "@zhixuan92/multi-model-agent-core": "^3.9.1",
56
56
  "gray-matter": "^4.0.3",
57
57
  "minimist": "^1.2.8",
58
58
  "proper-lockfile": "^4.1.2",