@event4u/agent-config 8.6.0 → 8.7.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 (53) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +29 -0
  3. package/dist/agent-src/skills/skill-writing/SKILL.md +4 -0
  4. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  5. package/dist/discovery/deprecation-report.md +1 -1
  6. package/dist/discovery/discovery-manifest.json +3 -3
  7. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  8. package/dist/discovery/discovery-manifest.summary.md +1 -1
  9. package/dist/discovery/orphan-report.md +1 -1
  10. package/dist/discovery/packs.json +2 -2
  11. package/dist/discovery/trust-report.md +1 -1
  12. package/dist/discovery/workspaces.json +2 -2
  13. package/dist/install/emit_host_rules_cli.js +185 -0
  14. package/dist/install/emit_host_rules_cli.js.map +1 -0
  15. package/dist/install/install.mjs +6 -0
  16. package/dist/install/plan.js +4 -1
  17. package/dist/install/plan.js.map +1 -1
  18. package/dist/install/rule_scope.js +109 -0
  19. package/dist/install/rule_scope.js.map +1 -0
  20. package/dist/install/rule_scope_cli.js +77 -0
  21. package/dist/install/rule_scope_cli.js.map +1 -0
  22. package/dist/install/wizard-plan.js +14 -1
  23. package/dist/install/wizard-plan.js.map +1 -1
  24. package/dist/mcp/registry-manifest.json +1 -1
  25. package/dist/scripts/_lib/agent_settings.js +963 -0
  26. package/dist/scripts/_lib/agent_settings.js.map +1 -0
  27. package/dist/scripts/_lib/agent_src.js +607 -0
  28. package/dist/scripts/_lib/agent_src.js.map +1 -0
  29. package/dist/scripts/_lib/claude_settings_hooks.js +209 -0
  30. package/dist/scripts/_lib/claude_settings_hooks.js.map +1 -0
  31. package/dist/scripts/_lib/model_tier.js +64 -0
  32. package/dist/scripts/_lib/model_tier.js.map +1 -0
  33. package/dist/scripts/_lib/script_output.js +140 -0
  34. package/dist/scripts/_lib/script_output.js.map +1 -0
  35. package/dist/scripts/_lib/user_global_paths.js +297 -0
  36. package/dist/scripts/_lib/user_global_paths.js.map +1 -0
  37. package/dist/scripts/condense.js +2181 -0
  38. package/dist/scripts/condense.js.map +1 -0
  39. package/dist/server/routes/install.js +18 -2
  40. package/dist/server/routes/install.js.map +1 -1
  41. package/dist/server/schemas/settings.js +2 -0
  42. package/dist/server/schemas/settings.js.map +1 -1
  43. package/package.json +1 -1
  44. package/src/config/agent-settings.template.yml +4 -2
  45. package/src/install/emit_host_rules_cli.ts +190 -0
  46. package/src/install/plan.ts +11 -1
  47. package/src/install/rule_scope.ts +120 -0
  48. package/src/install/rule_scope_cli.ts +79 -0
  49. package/src/install/wizard-plan.ts +22 -1
  50. package/src/scripts/check_trigger_eval_presence.ts +171 -0
  51. package/src/scripts/install.sh +118 -4
  52. package/src/scripts/trigger_eval_grandfather.json +226 -0
  53. package/src/server/schemas/settings.ts +6 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent_settings.js","sourceRoot":"","sources":["../../../src/scripts/_lib/agent_settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,607 @@
1
+ /**
2
+ * Locate artefact source roots across the monorepo physical layout.
3
+ *
4
+ * Ported from the retired Python `src/scripts/_lib/agent_src.py` (ADR-200, Phase 2
5
+ * Wave 2a). The public API pins the historical contract exactly — same
6
+ * exported snake_case names, same root ordering, same logical-relpath
7
+ * computation, same first-win precedence when a logical path resolves
8
+ * across multiple roots, and the same error behaviour
9
+ * (`logical_relpath` throws when a path is under no known root; the
10
+ * collision guard in `_root_specs` throws on duplicate non-empty
11
+ * prefixes). Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
12
+ *
13
+ * Phase 4 of the monorepo migration (ADR-017) physically moves source
14
+ * artefacts out of the flat `.agent-src.uncondensed/` directory into
15
+ * `packages/core/.agent-src.uncondensed/` and
16
+ * `packages/pack-*\/.agent-src.uncondensed/` trees. This helper hides
17
+ * that decision from every scanner so they keep working pre-move and
18
+ * post-move with the same call shape.
19
+ *
20
+ * Contract:
21
+ *
22
+ * - `artefact_roots()` returns every directory that contains source
23
+ * `.md` artefacts. Pre-move that is `.agent-src.uncondensed/` at
24
+ * the repo root. Post-move it is every `packages/*\/.agent-src.uncondensed/`.
25
+ * Both can coexist during the migration window.
26
+ * - `iter_artefacts()` yields every source `.md` path under those roots.
27
+ * - `logical_relpath(p)` returns the artefact's stable identity path
28
+ * (e.g. `skills/laravel/SKILL.md`), independent of which physical
29
+ * root contains it. This is what manifests, hash maps, and projections
30
+ * use as the artefact key.
31
+ * - `strip_source_prefix(p)` returns the same as `logical_relpath`
32
+ * but accepts repo-relative POSIX strings (used by the condenseor's
33
+ * output-path computation and the LEGACY_SRC_PREFIX logic).
34
+ *
35
+ * Path handling note: the retired Python implementation uses `pathlib.Path` objects.
36
+ * This twin uses absolute POSIX path strings as the `Path` equivalent
37
+ * (the host filesystem on the supported platforms is POSIX). All public
38
+ * functions that the retired Python implementation typed as `Path` accept/return
39
+ * strings here; semantics — `.relative_to`, `.as_posix`, `.resolve`,
40
+ * `.rglob`, `.is_dir`, `.is_file`, `.exists` — are reproduced via the
41
+ * helpers below.
42
+ */
43
+ import * as fs from 'node:fs';
44
+ import * as path from 'node:path';
45
+ import { fileURLToPath } from 'node:url';
46
+ // --- Path-root configuration (mutable to mirror Python module attributes) ----
47
+ //
48
+ // the retired Python implementation derives ROOT from `Path(__file__).resolve().parents[3]`
49
+ // and every other root from it as module-level constants. Tests in
50
+ // `tests/test_agent_src_domains.py` reassign `agent_src.SRC_DOMAINS` directly
51
+ // and clear `agent_src._slug_prefix_cache` to point the resolver at a tmp
52
+ // tree. To preserve that test-injection surface AND the constant-derivation
53
+ // fidelity, the roots live in a mutable config object whose getters the rest
54
+ // of the module reads through; tests mutate the same object.
55
+ const _HERE = path.dirname(fileURLToPath(import.meta.url));
56
+ // _HERE === <repo>/src/scripts/_lib ; parents[3] of the .py file (src/scripts/
57
+ // _lib/agent_src.py) is the repo root — three dirs up from _lib.
58
+ const _DEFAULT_ROOT = path.resolve(_HERE, '..', '..', '..');
59
+ function _deriveRoots(root) {
60
+ const packages = path.join(root, 'packages');
61
+ const src = path.join(root, 'src');
62
+ return {
63
+ ROOT: root,
64
+ LEGACY_SRC: path.join(root, '.agent-src.uncondensed'),
65
+ PACKAGES: packages,
66
+ PACKAGE_CORE: path.join(packages, 'core'),
67
+ SRC: src,
68
+ SRC_SKILLS: path.join(src, 'skills'),
69
+ SRC_RULES: path.join(src, 'rules'),
70
+ SRC_AGENT: path.join(src, 'agent-src'),
71
+ SRC_DOMAINS: path.join(src, 'domains'),
72
+ };
73
+ }
74
+ const _roots = _deriveRoots(_DEFAULT_ROOT);
75
+ /**
76
+ * Test seam mirroring the Python tests' direct attribute reassignment
77
+ * (`agent_src.SRC_DOMAINS = tmp_path`). Reassigns the named roots and
78
+ * clears the slug-prefix cache (mirrors `_with_tmp_domains`). Pass a
79
+ * partial config; unspecified roots keep their current values. Not part
80
+ * of the Python surface — a TS-only injection point.
81
+ */
82
+ export function _setRootsForTest(overrides) {
83
+ Object.assign(_roots, overrides);
84
+ _slug_prefix_cache.clear();
85
+ }
86
+ /** Snapshot the current root config (for save/restore in tests). */
87
+ export function _getRootsForTest() {
88
+ return { ..._roots };
89
+ }
90
+ // Read-only accessors mirroring the Python module-level constants. Functions,
91
+ // not `const`, because the underlying `_roots` is mutable per the test seam.
92
+ export const ROOT = () => _roots.ROOT;
93
+ export const LEGACY_SRC = () => _roots.LEGACY_SRC;
94
+ export const PACKAGES = () => _roots.PACKAGES;
95
+ export const PACKAGE_CORE = () => _roots.PACKAGE_CORE;
96
+ export const SRC = () => _roots.SRC;
97
+ export const SRC_SKILLS = () => _roots.SRC_SKILLS;
98
+ export const SRC_RULES = () => _roots.SRC_RULES;
99
+ export const SRC_AGENT = () => _roots.SRC_AGENT;
100
+ export const SRC_DOMAINS = () => _roots.SRC_DOMAINS;
101
+ const _SRC_DOMAINS_PREFIX = 'src/domains/';
102
+ // --- Filesystem helpers reproducing pathlib semantics ------------------------
103
+ function _isDir(p) {
104
+ try {
105
+ return fs.statSync(p).isDirectory();
106
+ }
107
+ catch {
108
+ return false;
109
+ }
110
+ }
111
+ function _isFile(p) {
112
+ try {
113
+ return fs.statSync(p).isFile();
114
+ }
115
+ catch {
116
+ return false;
117
+ }
118
+ }
119
+ function _exists(p) {
120
+ try {
121
+ fs.statSync(p);
122
+ return true;
123
+ }
124
+ catch {
125
+ return false;
126
+ }
127
+ }
128
+ /** Sorted immediate child directory entries (mirrors `sorted(p.iterdir())`). */
129
+ function _iterdirSorted(p) {
130
+ let names;
131
+ try {
132
+ names = fs.readdirSync(p);
133
+ }
134
+ catch {
135
+ return [];
136
+ }
137
+ // Python sorts Path objects by their full string form; for a flat listing
138
+ // that is equivalent to sorting the child basenames, which all share the
139
+ // same parent prefix. Sort basenames for the same order, return abs paths.
140
+ names.sort();
141
+ return names.map((name) => path.join(p, name));
142
+ }
143
+ /**
144
+ * Mirror `root.rglob(pattern)` returning a SORTED list of absolute path
145
+ * strings. Python's `rglob` yields every descendant (files and dirs) whose
146
+ * name matches the glob; the callers here always sort the result, so this
147
+ * helper sorts by the same POSIX-string key Python uses.
148
+ *
149
+ * `pattern` is either `"*"` (everything) or `"*<suffix>"` / `"*.md"` style
150
+ * suffix glob; only those shapes are used by this module.
151
+ */
152
+ function _rglobSorted(root, pattern) {
153
+ const out = [];
154
+ const suffix = pattern === '*' ? null : pattern.slice(1); // drop leading '*'
155
+ const walk = (dir) => {
156
+ let entries;
157
+ try {
158
+ entries = fs.readdirSync(dir, { withFileTypes: true });
159
+ }
160
+ catch {
161
+ return;
162
+ }
163
+ for (const ent of entries) {
164
+ const full = path.join(dir, ent.name);
165
+ const matches = suffix === null ? true : ent.name.endsWith(suffix);
166
+ if (matches) {
167
+ out.push(full);
168
+ }
169
+ // Recurse into directories. `isDirectory()` on a Dirent does not
170
+ // follow symlinks; pathlib.rglob follows directory symlinks. Use a
171
+ // stat-based dir check to match Python's traversal, but guard
172
+ // against unreadable entries.
173
+ if (ent.isDirectory() || (ent.isSymbolicLink() && _isDir(full))) {
174
+ walk(full);
175
+ }
176
+ }
177
+ };
178
+ walk(root);
179
+ // Sort by POSIX string (paths already use the platform separator; on POSIX
180
+ // hosts that equals the as_posix form Python sorts by).
181
+ out.sort();
182
+ return out;
183
+ }
184
+ /** POSIX relative path of `child` under `root` (mirrors `relative_to().as_posix()`). */
185
+ function _relativeToPosix(child, root) {
186
+ const rel = path.relative(root, child);
187
+ return rel.split(path.sep).join('/');
188
+ }
189
+ /**
190
+ * `true` when `child` is at or below `root` (mirrors `Path.relative_to` not
191
+ * raising). `path.relative` returns a `..`-leading or absolute path when
192
+ * `child` is outside `root`.
193
+ */
194
+ function _isUnder(child, root) {
195
+ const rel = path.relative(root, child);
196
+ return rel !== '' && !rel.startsWith('..') && !path.isAbsolute(rel);
197
+ }
198
+ // --- src/domains command mapping ---------------------------------------------
199
+ /**
200
+ * Map a physical `src/domains` command file to its logical path.
201
+ *
202
+ * `src/domains/<pack>/<subpath...>/command.md` → `commands/<subpath...>.md`.
203
+ * Returns `null` for anything that is not a `command.md` leaf with at least
204
+ * one verb segment after the pack.
205
+ *
206
+ * Mirrors `_domains_command_logical`. `p` is an absolute path string.
207
+ */
208
+ export function _domains_command_logical(p) {
209
+ const dom = _roots.SRC_DOMAINS;
210
+ if (p !== dom && !_isUnder(p, dom)) {
211
+ return null;
212
+ }
213
+ const rel = _relativeToPosix(p, dom);
214
+ const parts = rel.split('/');
215
+ if (parts.length < 3 || parts[parts.length - 1] !== 'command.md') {
216
+ return null;
217
+ }
218
+ const subpath = parts.slice(1, -1).join('/'); // drop <pack> and command.md
219
+ return `commands/${subpath}.md`;
220
+ }
221
+ /**
222
+ * Yield `[physical_path, logical_relpath]` for every domains command, in
223
+ * deterministic order. Naturally inert until `src/domains/*\/**\/command.md`
224
+ * files exist. Mirrors `_iter_domains_commands`.
225
+ */
226
+ export function* _iter_domains_commands() {
227
+ const dom = _roots.SRC_DOMAINS;
228
+ if (!_isDir(dom)) {
229
+ return;
230
+ }
231
+ for (const p of _rglobSorted(dom, 'command.md')) {
232
+ if (!_isFile(p)) {
233
+ continue;
234
+ }
235
+ const logical = _domains_command_logical(p);
236
+ if (logical !== null) {
237
+ yield [p, logical];
238
+ }
239
+ }
240
+ }
241
+ // --- Canonical command-slug derivation (ADR-044 amendment) -------------------
242
+ const _SLUG_PREFIX_RE = /^slug_prefix:\s*"?([a-z][a-z0-9-]*)"?\s*$/m;
243
+ const _slug_prefix_cache = new Map();
244
+ /**
245
+ * Return the `slug_prefix` declared in `src/domains/<pack>/pack.yaml`.
246
+ *
247
+ * Empty string when the pack has no prefix (the default) or no manifest.
248
+ * Cached per pack id. Minimal line scan — no YAML dependency. Mirrors
249
+ * `pack_slug_prefix`.
250
+ */
251
+ export function pack_slug_prefix(pack_id) {
252
+ const cached = _slug_prefix_cache.get(pack_id);
253
+ if (cached !== undefined) {
254
+ return cached;
255
+ }
256
+ let prefix = '';
257
+ const manifest = path.join(_roots.SRC_DOMAINS, pack_id, 'pack.yaml');
258
+ if (_isFile(manifest)) {
259
+ const m = _SLUG_PREFIX_RE.exec(fs.readFileSync(manifest, 'utf-8'));
260
+ if (m) {
261
+ prefix = m[1];
262
+ }
263
+ }
264
+ _slug_prefix_cache.set(pack_id, prefix);
265
+ return prefix;
266
+ }
267
+ /**
268
+ * Canonical flat slug for a `src/domains` command file.
269
+ *
270
+ * `src/domains/<pack>/<subpath>/command.md` → `<subpath hyphenated>`,
271
+ * pack-prefixed when the pack declares `slug_prefix`. Returns `null` for
272
+ * anything that is not a domains `command.md` leaf. Mirrors `command_slug`.
273
+ */
274
+ export function command_slug(physical_path) {
275
+ const logical = _domains_command_logical(physical_path); // commands/<subpath>.md
276
+ if (logical === null) {
277
+ return null;
278
+ }
279
+ // base = "-".join(Path(logical[len("commands/"):]).with_suffix("").parts)
280
+ const afterCommands = logical.slice('commands/'.length); // <subpath>.md
281
+ const withoutSuffix = afterCommands.replace(/\.md$/, '');
282
+ const base = withoutSuffix.split('/').join('-');
283
+ if (!base) {
284
+ return null;
285
+ }
286
+ const dom = _roots.SRC_DOMAINS;
287
+ let pack_id;
288
+ if (physical_path !== dom && !_isUnder(physical_path, dom)) {
289
+ return base; // mirrors Python's ValueError → return base
290
+ }
291
+ pack_id = _relativeToPosix(physical_path, dom).split('/')[0];
292
+ const prefix = pack_slug_prefix(pack_id);
293
+ if (prefix && base !== prefix && !base.startsWith(`${prefix}-`)) {
294
+ return `${prefix}-${base}`;
295
+ }
296
+ return base;
297
+ }
298
+ // --- Root specs --------------------------------------------------------------
299
+ const _LEGACY_PREFIX = '.agent-src.uncondensed/';
300
+ const _PACKAGE_SUFFIX = '/.agent-src.uncondensed/';
301
+ const _SRC_SKILLS_PREFIX = 'src/skills/';
302
+ const _SRC_RULES_PREFIX = 'src/rules/';
303
+ /**
304
+ * Every active `[physical_root, logical_prefix]` artefact source.
305
+ *
306
+ * The logical path of a file under `physical_root` is
307
+ * `logical_prefix + relativeTo(physical_root)`. For the legacy and
308
+ * `packages/*\/` `.agent-src.uncondensed/` roots the prefix is empty. For the
309
+ * 6.0.0-D flat library roots (`src/skills`, `src/rules`) the prefix is the
310
+ * category because the directory IS the category.
311
+ *
312
+ * Order is stable: legacy first, then `packages/` entries sorted
313
+ * alphabetically, then `src/agent-src`, then the flat library roots.
314
+ * First-win on the walk. Throws on a non-empty logical-prefix collision
315
+ * (council guard). Mirrors `_root_specs`.
316
+ */
317
+ function _root_specs() {
318
+ const specs = [];
319
+ if (_exists(_roots.LEGACY_SRC)) {
320
+ specs.push([_roots.LEGACY_SRC, '']);
321
+ }
322
+ if (_exists(_roots.PACKAGES)) {
323
+ for (const pkg of _iterdirSorted(_roots.PACKAGES)) {
324
+ const sub = path.join(pkg, '.agent-src.uncondensed');
325
+ if (_isDir(sub)) {
326
+ specs.push([sub, '']);
327
+ }
328
+ }
329
+ }
330
+ if (_isDir(_roots.SRC_AGENT)) {
331
+ specs.push([_roots.SRC_AGENT, '']);
332
+ }
333
+ if (_isDir(_roots.SRC_SKILLS)) {
334
+ specs.push([_roots.SRC_SKILLS, 'skills/']);
335
+ }
336
+ if (_isDir(_roots.SRC_RULES)) {
337
+ specs.push([_roots.SRC_RULES, 'rules/']);
338
+ }
339
+ // Collision guard (council-required): two source roots emitting the same
340
+ // non-empty logical prefix would let condense silently overwrite one
341
+ // category's output with another's. Fail loud. Empty-prefix roots are
342
+ // exempt — they namespace via per-category subdirs.
343
+ const seen = new Map();
344
+ for (const [physical, prefix] of specs) {
345
+ if (!prefix) {
346
+ continue;
347
+ }
348
+ const claimedBy = seen.get(prefix);
349
+ if (claimedBy !== undefined) {
350
+ throw new Error(`source-root logical-prefix collision: ${JSON.stringify(prefix)} claimed by ` +
351
+ `both ${claimedBy} and ${physical}`);
352
+ }
353
+ seen.set(prefix, physical);
354
+ }
355
+ return specs;
356
+ }
357
+ /**
358
+ * Every existing **container** directory under which the per-category
359
+ * subdirectories (`skills/` / `rules/` / `commands/` / …) live.
360
+ *
361
+ * The "category-append" view used by scanners that do `root / "skills"` etc.
362
+ * Returns at most one `.agent-src.uncondensed/` root (legacy), one per
363
+ * `packages/*\/` subdirectory, and — once the 6.0.0-D flat library exists —
364
+ * the `src/` container. Order: legacy, `packages/` sorted, then `src`.
365
+ * Mirrors `artefact_roots`.
366
+ */
367
+ export function artefact_roots() {
368
+ const roots = [];
369
+ if (_exists(_roots.LEGACY_SRC)) {
370
+ roots.push(_roots.LEGACY_SRC);
371
+ }
372
+ if (_exists(_roots.PACKAGES)) {
373
+ for (const pkg of _iterdirSorted(_roots.PACKAGES)) {
374
+ const sub = path.join(pkg, '.agent-src.uncondensed');
375
+ if (_isDir(sub)) {
376
+ roots.push(sub);
377
+ }
378
+ }
379
+ }
380
+ if (_isDir(_roots.SRC_AGENT)) {
381
+ roots.push(_roots.SRC_AGENT);
382
+ }
383
+ if (_isDir(_roots.SRC_SKILLS) || _isDir(_roots.SRC_RULES)) {
384
+ roots.push(_roots.SRC);
385
+ }
386
+ return roots;
387
+ }
388
+ /**
389
+ * Yield every artefact file under every active source root.
390
+ *
391
+ * Walks `_root_specs` (the leaf view). Deterministic order; deduplicated on
392
+ * logical path so a file present in two roots during the move window is
393
+ * yielded once. Symlinks and non-files are skipped. Mirrors `iter_artefacts`.
394
+ */
395
+ export function* iter_artefacts(suffix = '.md') {
396
+ const seen = new Set();
397
+ for (const [root, prefix] of _root_specs()) {
398
+ for (const p of _rglobSorted(root, `*${suffix}`)) {
399
+ if (!_isFile(p)) {
400
+ continue;
401
+ }
402
+ const rel = prefix + _relativeToPosix(p, root);
403
+ if (seen.has(rel)) {
404
+ continue;
405
+ }
406
+ seen.add(rel);
407
+ yield p;
408
+ }
409
+ }
410
+ if (suffix === '.md') {
411
+ for (const [p, rel] of _iter_domains_commands()) {
412
+ if (seen.has(rel)) {
413
+ continue;
414
+ }
415
+ seen.add(rel);
416
+ yield p;
417
+ }
418
+ }
419
+ }
420
+ /**
421
+ * Yield `[physical_path, logical_relpath]` for every file under every root.
422
+ *
423
+ * Same deterministic order as `iter_artefacts` but covers *all* files (md and
424
+ * non-md) and pre-computes the logical relative path. First-win on duplicate
425
+ * logical paths. Mirrors `iter_all_sources`.
426
+ */
427
+ export function* iter_all_sources() {
428
+ const seen = new Set();
429
+ for (const [root, prefix] of _root_specs()) {
430
+ for (const p of _rglobSorted(root, '*')) {
431
+ if (!_isFile(p)) {
432
+ continue;
433
+ }
434
+ // the retired Python implementation guards `relative_to` with try/except
435
+ // ValueError; here `p` is always under `root` by construction, but
436
+ // we mirror the guard for fidelity.
437
+ if (p !== root && !_isUnder(p, root)) {
438
+ continue;
439
+ }
440
+ const rel = prefix + _relativeToPosix(p, root);
441
+ if (seen.has(rel)) {
442
+ continue;
443
+ }
444
+ seen.add(rel);
445
+ yield [p, rel];
446
+ }
447
+ }
448
+ for (const [p, rel] of _iter_domains_commands()) {
449
+ if (seen.has(rel)) {
450
+ continue;
451
+ }
452
+ seen.add(rel);
453
+ yield [p, rel];
454
+ }
455
+ }
456
+ /**
457
+ * Yield every command source file across all layouts.
458
+ *
459
+ * Covers the legacy / `packages/*\/.agent-src.uncondensed/commands/` trees AND
460
+ * the 6.0.0-D `src/domains/<pack>/<subpath>/command.md` homes, deduplicated on
461
+ * the logical command path (`commands/<subpath>.md`) — packages-tree wins
462
+ * (first-win order). Mirrors `iter_commands`.
463
+ */
464
+ export function* iter_commands() {
465
+ const seen = new Set();
466
+ for (const [root, prefix] of _root_specs()) {
467
+ if (prefix) {
468
+ // flat skills/rules roots carry no commands subtree
469
+ continue;
470
+ }
471
+ const base = path.join(root, 'commands');
472
+ if (!_isDir(base)) {
473
+ continue;
474
+ }
475
+ for (const p of _rglobSorted(base, '*.md')) {
476
+ if (!_isFile(p)) {
477
+ continue;
478
+ }
479
+ const rel = `commands/${_relativeToPosix(p, base)}`;
480
+ if (seen.has(rel)) {
481
+ continue;
482
+ }
483
+ seen.add(rel);
484
+ yield p;
485
+ }
486
+ }
487
+ for (const [p, rel] of _iter_domains_commands()) {
488
+ if (seen.has(rel)) {
489
+ continue;
490
+ }
491
+ seen.add(rel);
492
+ yield p;
493
+ }
494
+ }
495
+ /**
496
+ * Return the physical path that backs `logical_rel`, or `null`.
497
+ *
498
+ * Walks `_root_specs` in order and returns the first hit. A flat library root
499
+ * only matches a logical path under its prefix; the suffix after the prefix is
500
+ * the path inside that physical root. Falls back to a `src/domains` glob for
501
+ * `commands/<subpath>.md`. Mirrors `resolve_logical`.
502
+ */
503
+ export function resolve_logical(logical_rel) {
504
+ const rel = logical_rel.replaceAll('\\', '/').replace(/^\/+/, '');
505
+ for (const [root, prefix] of _root_specs()) {
506
+ let p;
507
+ if (prefix) {
508
+ if (!rel.startsWith(prefix)) {
509
+ continue;
510
+ }
511
+ p = path.join(root, rel.slice(prefix.length));
512
+ }
513
+ else {
514
+ p = path.join(root, rel);
515
+ }
516
+ if (_exists(p)) {
517
+ return p;
518
+ }
519
+ }
520
+ // 6.0.0-D domains commands: a logical `commands/<subpath>.md` is backed by
521
+ // `src/domains/<pack>/<subpath>/command.md`. Pack is not encoded in the
522
+ // logical path, so glob the domains tree for the matching leaf.
523
+ if (rel.startsWith('commands/') && rel.endsWith('.md') && _isDir(_roots.SRC_DOMAINS)) {
524
+ const subpath = rel.slice('commands/'.length, rel.length - '.md'.length);
525
+ for (const packDir of _iterdirSorted(_roots.SRC_DOMAINS)) {
526
+ const cand = path.join(packDir, subpath, 'command.md');
527
+ if (_isFile(cand)) {
528
+ return cand;
529
+ }
530
+ }
531
+ }
532
+ return null;
533
+ }
534
+ /**
535
+ * Return the artefact's logical identity path (POSIX, no prefix).
536
+ *
537
+ * Throws if `inputPath` is not under any known source root. Mirrors
538
+ * `logical_relpath`. `inputPath` is an absolute or repo-relative path string.
539
+ */
540
+ export function logical_relpath(inputPath) {
541
+ const p = path.isAbsolute(inputPath)
542
+ ? path.resolve(inputPath)
543
+ : path.resolve(_roots.ROOT, inputPath);
544
+ for (const [root, prefix] of _root_specs()) {
545
+ const resolvedRoot = path.resolve(root);
546
+ if (p === resolvedRoot || _isUnder(p, resolvedRoot)) {
547
+ return prefix + _relativeToPosix(p, resolvedRoot);
548
+ }
549
+ }
550
+ // 6.0.0-D domains command (src/domains/<pack>/<subpath>/command.md).
551
+ const domainsLogical = _domains_command_logical(p);
552
+ if (domainsLogical !== null) {
553
+ return domainsLogical;
554
+ }
555
+ throw new Error(`path is not under any artefact root: ${inputPath}`);
556
+ }
557
+ /**
558
+ * Strip the `.agent-src.uncondensed/` anchor from a repo-relative path.
559
+ *
560
+ * Accepts both the legacy flat layout and the monorepo packages layout.
561
+ * Returns `null` if the path is not under any source root. Mirrors
562
+ * `strip_source_prefix`.
563
+ */
564
+ export function strip_source_prefix(rel) {
565
+ const posix = rel.replaceAll('\\', '/');
566
+ if (posix.startsWith(_LEGACY_PREFIX)) {
567
+ return posix.slice(_LEGACY_PREFIX.length);
568
+ }
569
+ if (posix.startsWith('packages/')) {
570
+ const idx = posix.indexOf(_PACKAGE_SUFFIX);
571
+ if (idx !== -1) {
572
+ return posix.slice(idx + _PACKAGE_SUFFIX.length);
573
+ }
574
+ }
575
+ // 6.0.0-D flat library: physical category prefix → logical category.
576
+ if (posix.startsWith(_SRC_SKILLS_PREFIX)) {
577
+ return `skills/${posix.slice(_SRC_SKILLS_PREFIX.length)}`;
578
+ }
579
+ if (posix.startsWith(_SRC_RULES_PREFIX)) {
580
+ return `rules/${posix.slice(_SRC_RULES_PREFIX.length)}`;
581
+ }
582
+ // 6.0.0-D domains command: src/domains/<pack>/<subpath>/command.md
583
+ // → commands/<subpath>.md (pack stripped, command.md leaf → subpath).
584
+ if (posix.startsWith(_SRC_DOMAINS_PREFIX) && posix.endsWith('/command.md')) {
585
+ const rest = posix.slice(_SRC_DOMAINS_PREFIX.length); // <pack>/<subpath>/command.md
586
+ const parts = rest.split('/');
587
+ if (parts.length >= 3) {
588
+ return `commands/${parts.slice(1, -1).join('/')}.md`;
589
+ }
590
+ }
591
+ return null;
592
+ }
593
+ /** `true` if a repo-relative POSIX path sits under any source root. */
594
+ export function is_artefact_path(rel) {
595
+ return strip_source_prefix(rel) !== null;
596
+ }
597
+ /**
598
+ * Return the canonical `packages/core/<relative_target>` path.
599
+ *
600
+ * Pure resolver: deterministic, no filesystem I/O. Mirrors
601
+ * `resolve_package_core_path`. Returns an absolute path string.
602
+ */
603
+ export function resolve_package_core_path(relative_target) {
604
+ const rel = relative_target.replaceAll('\\', '/').replace(/^\/+/, '');
605
+ return rel ? path.join(_roots.PACKAGE_CORE, rel) : _roots.PACKAGE_CORE;
606
+ }
607
+ //# sourceMappingURL=agent_src.js.map