agents-inc 0.168.0 → 0.170.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 (200) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +18 -15
  3. package/dist/{chunk-JIBCVXXL.js → chunk-3G7X2WKI.js} +4 -4
  4. package/dist/{chunk-JOEA52NR.js → chunk-44TE3RKH.js} +46 -2
  5. package/dist/chunk-44TE3RKH.js.map +1 -0
  6. package/dist/{chunk-NU2K5G54.js → chunk-52HDHJ7I.js} +11 -19
  7. package/dist/chunk-52HDHJ7I.js.map +1 -0
  8. package/dist/{chunk-EH2PGPLP.js → chunk-6HNXYYVF.js} +39 -22
  9. package/dist/chunk-6HNXYYVF.js.map +1 -0
  10. package/dist/{chunk-4UKMQUAU.js → chunk-6ZRH5RHC.js} +10 -11
  11. package/dist/chunk-6ZRH5RHC.js.map +1 -0
  12. package/dist/{chunk-5JUQKGCP.js → chunk-7RDMTR64.js} +14 -34
  13. package/dist/chunk-7RDMTR64.js.map +1 -0
  14. package/dist/{chunk-3LZNY46H.js → chunk-BMRUNMPV.js} +4 -4
  15. package/dist/{chunk-VVRI35SK.js → chunk-CLPUWOSA.js} +4 -4
  16. package/dist/{chunk-VVRI35SK.js.map → chunk-CLPUWOSA.js.map} +1 -1
  17. package/dist/{chunk-TW35AEB4.js → chunk-F2BHT5C4.js} +9 -7
  18. package/dist/chunk-F2BHT5C4.js.map +1 -0
  19. package/dist/{chunk-27AVGFXH.js → chunk-F5EBEATU.js} +2 -2
  20. package/dist/{chunk-GE7NUPMI.js → chunk-HED2DAXZ.js} +3 -3
  21. package/dist/{chunk-7PYXS2QU.js → chunk-KOLDW6SF.js} +3 -3
  22. package/dist/{chunk-7PYXS2QU.js.map → chunk-KOLDW6SF.js.map} +1 -1
  23. package/dist/{chunk-C2UISKIM.js → chunk-MQ6CGZNJ.js} +109 -422
  24. package/dist/chunk-MQ6CGZNJ.js.map +1 -0
  25. package/dist/{chunk-P6I72PR3.js → chunk-NCWDK6L7.js} +115 -196
  26. package/dist/chunk-NCWDK6L7.js.map +1 -0
  27. package/dist/{chunk-VRXX4D6K.js → chunk-NEZ4OAOL.js} +1 -1
  28. package/dist/chunk-NEZ4OAOL.js.map +1 -0
  29. package/dist/chunk-NIHUOWE4.js +106 -0
  30. package/dist/chunk-NIHUOWE4.js.map +1 -0
  31. package/dist/{chunk-OI2H6M5I.js → chunk-NQW25DCF.js} +2 -2
  32. package/dist/chunk-NQW25DCF.js.map +1 -0
  33. package/dist/{chunk-ZUGH4MQG.js → chunk-OYJQUA3D.js} +3 -3
  34. package/dist/{chunk-ZUGH4MQG.js.map → chunk-OYJQUA3D.js.map} +1 -1
  35. package/dist/{chunk-AG3ZVM3B.js → chunk-PJWGTNOX.js} +186 -210
  36. package/dist/chunk-PJWGTNOX.js.map +1 -0
  37. package/dist/{chunk-HR7TK2XW.js → chunk-RIPSGNLU.js} +3 -3
  38. package/dist/chunk-RIPSGNLU.js.map +1 -0
  39. package/dist/{chunk-4DRFEYCE.js → chunk-SZYQISA2.js} +7 -7
  40. package/dist/chunk-SZYQISA2.js.map +1 -0
  41. package/dist/{chunk-W6GO2CYX.js → chunk-USVBYQSQ.js} +2 -2
  42. package/dist/{chunk-H4ZKGGTE.js → chunk-V3KTSP3Q.js} +50 -42
  43. package/dist/chunk-V3KTSP3Q.js.map +1 -0
  44. package/dist/{chunk-KTLKR4YY.js → chunk-WTWMGH2C.js} +2 -2
  45. package/dist/commands/build/marketplace.js +23 -22
  46. package/dist/commands/build/marketplace.js.map +1 -1
  47. package/dist/commands/build/plugins.js +8 -9
  48. package/dist/commands/build/plugins.js.map +1 -1
  49. package/dist/commands/compile.js +19 -20
  50. package/dist/commands/compile.js.map +1 -1
  51. package/dist/commands/doctor.js +17 -18
  52. package/dist/commands/doctor.js.map +1 -1
  53. package/dist/commands/edit.js +118 -297
  54. package/dist/commands/edit.js.map +1 -1
  55. package/dist/commands/eject.js +21 -33
  56. package/dist/commands/eject.js.map +1 -1
  57. package/dist/commands/init.js +17 -45
  58. package/dist/commands/list.js +19 -17
  59. package/dist/commands/list.js.map +1 -1
  60. package/dist/commands/new/marketplace.js +11 -11
  61. package/dist/commands/new/marketplace.js.map +1 -1
  62. package/dist/commands/search.js +12 -13
  63. package/dist/commands/search.js.map +1 -1
  64. package/dist/commands/share.js +11 -12
  65. package/dist/commands/share.js.map +1 -1
  66. package/dist/commands/uninstall.js +18 -20
  67. package/dist/commands/uninstall.js.map +1 -1
  68. package/dist/commands/update.js +8 -9
  69. package/dist/commands/update.js.map +1 -1
  70. package/dist/components/common/removal-plan-confirm.js +2 -2
  71. package/dist/components/common/scroll-affordance.js +9 -0
  72. package/dist/components/common/select-list.js +2 -3
  73. package/dist/components/common/skill-agent-summary.js +11 -0
  74. package/dist/components/common/spinner.js +1 -1
  75. package/dist/{chunk-QWFG7Y3R.js → components/common/summary-panel.js} +57 -31
  76. package/dist/components/common/summary-panel.js.map +1 -0
  77. package/dist/config-exports.js +1 -1
  78. package/dist/hooks/init.js +18 -46
  79. package/dist/hooks/init.js.map +1 -1
  80. package/dist/load-agent-defs-YMDWBFDP.js +14 -0
  81. package/dist/recompile-project-agents-SZ76WNTW.js +18 -0
  82. package/dist/{source-loader-FRJTCSDL.js → source-loader-C5SQXZXI.js} +5 -5
  83. package/dist/src/agents/meta/codex-keeper/playbook.md +2 -3
  84. package/package.json +2 -3
  85. package/src/agents/meta/codex-keeper/playbook.md +2 -3
  86. package/src/schemas/project-config.schema.json +1 -1
  87. package/assets/demo.tape +0 -266
  88. package/dist/chunk-23DNVNFP.js +0 -292
  89. package/dist/chunk-23DNVNFP.js.map +0 -1
  90. package/dist/chunk-3DIDV6H3.js +0 -268
  91. package/dist/chunk-3DIDV6H3.js.map +0 -1
  92. package/dist/chunk-4DRFEYCE.js.map +0 -1
  93. package/dist/chunk-4HWOYYY7.js +0 -92
  94. package/dist/chunk-4HWOYYY7.js.map +0 -1
  95. package/dist/chunk-4UKMQUAU.js.map +0 -1
  96. package/dist/chunk-5JUQKGCP.js.map +0 -1
  97. package/dist/chunk-6WGXTB2L.js +0 -28
  98. package/dist/chunk-6WGXTB2L.js.map +0 -1
  99. package/dist/chunk-AG3ZVM3B.js.map +0 -1
  100. package/dist/chunk-C2UISKIM.js.map +0 -1
  101. package/dist/chunk-CMJBKQUH.js +0 -23
  102. package/dist/chunk-CMJBKQUH.js.map +0 -1
  103. package/dist/chunk-DJEO3F2H.js +0 -230
  104. package/dist/chunk-DJEO3F2H.js.map +0 -1
  105. package/dist/chunk-EH2PGPLP.js.map +0 -1
  106. package/dist/chunk-GRL73YPF.js +0 -197
  107. package/dist/chunk-GRL73YPF.js.map +0 -1
  108. package/dist/chunk-H4ZKGGTE.js.map +0 -1
  109. package/dist/chunk-HI6YB7XP.js +0 -59
  110. package/dist/chunk-HI6YB7XP.js.map +0 -1
  111. package/dist/chunk-HL3GYRMR.js +0 -17
  112. package/dist/chunk-HL3GYRMR.js.map +0 -1
  113. package/dist/chunk-HR7TK2XW.js.map +0 -1
  114. package/dist/chunk-JOEA52NR.js.map +0 -1
  115. package/dist/chunk-JPMV4E4E.js +0 -118
  116. package/dist/chunk-JPMV4E4E.js.map +0 -1
  117. package/dist/chunk-JVUN6AOO.js +0 -237
  118. package/dist/chunk-JVUN6AOO.js.map +0 -1
  119. package/dist/chunk-KQ3PDARZ.js +0 -25
  120. package/dist/chunk-KQ3PDARZ.js.map +0 -1
  121. package/dist/chunk-L3W2JWBA.js +0 -168
  122. package/dist/chunk-L3W2JWBA.js.map +0 -1
  123. package/dist/chunk-LFUJCRCT.js +0 -27
  124. package/dist/chunk-LFUJCRCT.js.map +0 -1
  125. package/dist/chunk-NU2K5G54.js.map +0 -1
  126. package/dist/chunk-OI2H6M5I.js.map +0 -1
  127. package/dist/chunk-P6I72PR3.js.map +0 -1
  128. package/dist/chunk-PCFUXQJA.js +0 -317
  129. package/dist/chunk-PCFUXQJA.js.map +0 -1
  130. package/dist/chunk-PLX2FLEQ.js +0 -48
  131. package/dist/chunk-PLX2FLEQ.js.map +0 -1
  132. package/dist/chunk-QWFG7Y3R.js.map +0 -1
  133. package/dist/chunk-SLBL3WIP.js +0 -121
  134. package/dist/chunk-SLBL3WIP.js.map +0 -1
  135. package/dist/chunk-TSIU7DME.js +0 -43
  136. package/dist/chunk-TSIU7DME.js.map +0 -1
  137. package/dist/chunk-TW35AEB4.js.map +0 -1
  138. package/dist/chunk-VRXX4D6K.js.map +0 -1
  139. package/dist/chunk-W5KEYSOL.js +0 -51
  140. package/dist/chunk-W5KEYSOL.js.map +0 -1
  141. package/dist/chunk-WNLF5EDZ.js +0 -1170
  142. package/dist/chunk-WNLF5EDZ.js.map +0 -1
  143. package/dist/chunk-WTJ3AY33.js +0 -31
  144. package/dist/chunk-WTJ3AY33.js.map +0 -1
  145. package/dist/chunk-X6ZZEYO3.js +0 -53
  146. package/dist/chunk-X6ZZEYO3.js.map +0 -1
  147. package/dist/chunk-XQHZPINL.js +0 -89
  148. package/dist/chunk-XQHZPINL.js.map +0 -1
  149. package/dist/chunk-YN3SWF53.js +0 -35
  150. package/dist/chunk-YN3SWF53.js.map +0 -1
  151. package/dist/components/wizard/category-grid.js +0 -13
  152. package/dist/components/wizard/checkbox-grid.js +0 -12
  153. package/dist/components/wizard/domain-selection.js +0 -18
  154. package/dist/components/wizard/run-wizard-session.js +0 -40
  155. package/dist/components/wizard/run-wizard-session.js.map +0 -1
  156. package/dist/components/wizard/scroll-affordance.js +0 -9
  157. package/dist/components/wizard/skill-agent-summary.js +0 -13
  158. package/dist/components/wizard/source-grid.js +0 -16
  159. package/dist/components/wizard/source-grid.js.map +0 -1
  160. package/dist/components/wizard/stack-selection.js +0 -17
  161. package/dist/components/wizard/stack-selection.js.map +0 -1
  162. package/dist/components/wizard/step-agents.js +0 -18
  163. package/dist/components/wizard/step-agents.js.map +0 -1
  164. package/dist/components/wizard/step-build.js +0 -18
  165. package/dist/components/wizard/step-build.js.map +0 -1
  166. package/dist/components/wizard/step-confirm.js +0 -18
  167. package/dist/components/wizard/step-confirm.js.map +0 -1
  168. package/dist/components/wizard/step-sources.js +0 -19
  169. package/dist/components/wizard/step-sources.js.map +0 -1
  170. package/dist/components/wizard/step-stack.js +0 -18
  171. package/dist/components/wizard/step-stack.js.map +0 -1
  172. package/dist/components/wizard/summary-panel.js +0 -17
  173. package/dist/components/wizard/summary-panel.js.map +0 -1
  174. package/dist/components/wizard/toast.js +0 -9
  175. package/dist/components/wizard/toast.js.map +0 -1
  176. package/dist/components/wizard/wizard-layout.js +0 -22
  177. package/dist/components/wizard/wizard-layout.js.map +0 -1
  178. package/dist/components/wizard/wizard-tabs.js +0 -11
  179. package/dist/components/wizard/wizard-tabs.js.map +0 -1
  180. package/dist/components/wizard/wizard.js +0 -39
  181. package/dist/components/wizard/wizard.js.map +0 -1
  182. package/dist/load-agent-defs-5XMVB3MU.js +0 -14
  183. package/dist/load-agent-defs-5XMVB3MU.js.map +0 -1
  184. package/dist/recompile-project-agents-7PQWYQ6B.js +0 -18
  185. package/dist/recompile-project-agents-7PQWYQ6B.js.map +0 -1
  186. package/dist/source-loader-FRJTCSDL.js.map +0 -1
  187. package/dist/stores/wizard-store.js +0 -24
  188. package/dist/stores/wizard-store.js.map +0 -1
  189. /package/assets/{demo.gif → legacy-wizard.gif} +0 -0
  190. /package/dist/{chunk-JIBCVXXL.js.map → chunk-3G7X2WKI.js.map} +0 -0
  191. /package/dist/{chunk-3LZNY46H.js.map → chunk-BMRUNMPV.js.map} +0 -0
  192. /package/dist/{chunk-27AVGFXH.js.map → chunk-F5EBEATU.js.map} +0 -0
  193. /package/dist/{chunk-GE7NUPMI.js.map → chunk-HED2DAXZ.js.map} +0 -0
  194. /package/dist/{chunk-W6GO2CYX.js.map → chunk-USVBYQSQ.js.map} +0 -0
  195. /package/dist/{chunk-KTLKR4YY.js.map → chunk-WTWMGH2C.js.map} +0 -0
  196. /package/dist/components/{wizard → common}/scroll-affordance.js.map +0 -0
  197. /package/dist/components/{wizard → common}/skill-agent-summary.js.map +0 -0
  198. /package/dist/{components/wizard/category-grid.js.map → load-agent-defs-YMDWBFDP.js.map} +0 -0
  199. /package/dist/{components/wizard/checkbox-grid.js.map → recompile-project-agents-SZ76WNTW.js.map} +0 -0
  200. /package/dist/{components/wizard/domain-selection.js.map → source-loader-C5SQXZXI.js.map} +0 -0
@@ -1,5 +1,117 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ // ../compile/src/paths.ts
4
+ var CLAUDE_DIR = ".claude";
5
+ var SOURCE_ROOT_DIR = ".agents-inc";
6
+ var SOURCE_SRC_DIR = "src";
7
+ var SKILLS_DIR_PATH = `${SOURCE_SRC_DIR}/skills`;
8
+ var LOCAL_SKILLS_PATH = ".claude/skills";
9
+ var DEFAULT_PLUGIN_NAME = "agents-inc";
10
+ var DEFAULT_PUBLIC_SOURCE_NAME = DEFAULT_PLUGIN_NAME;
11
+ var GITHUB_PREFIX = "github:";
12
+ var DEFAULT_SOURCE = `${GITHUB_PREFIX}agents-inc/skills`;
13
+ var CLI_INVOKE_COMMAND = "npx agents-inc";
14
+ var EJECT_SOURCE = "eject";
15
+ var LOCAL_PSEUDO_CATEGORY = "local";
16
+ var GLOBAL_CONFIG_NAME = "global";
17
+ var DIRS = {
18
+ agents: "src/agents",
19
+ skills: SKILLS_DIR_PATH,
20
+ stacks: "src/stacks",
21
+ templates: "src/agents/_templates"
22
+ };
23
+ var METADATA_YAML_FILE = "metadata.yaml";
24
+ var PLUGIN_MANIFEST_FILE = "plugin.json";
25
+ var STANDARD_FILES = {
26
+ SKILL_MD: "SKILL.md",
27
+ METADATA_YAML: METADATA_YAML_FILE,
28
+ METADATA_JSON: "metadata.json",
29
+ CONFIG_YAML: "config.yaml",
30
+ SKILL_CATEGORIES_TS: "skill-categories.ts",
31
+ SKILL_RULES_TS: "skill-rules.ts",
32
+ AGENT_METADATA_YAML: METADATA_YAML_FILE,
33
+ PLUGIN_JSON: PLUGIN_MANIFEST_FILE,
34
+ CONFIG_TS: "config.ts",
35
+ CONFIG_TYPES_TS: "config-types.ts",
36
+ CLAUDE_MD: "CLAUDE.md",
37
+ README_MD: "README.md",
38
+ REFERENCE_MD: "reference.md",
39
+ IDENTITY_MD: "identity.md",
40
+ PLAYBOOK_MD: "playbook.md",
41
+ OUTPUT_MD: "output.md",
42
+ CRITICAL_REQUIREMENTS_MD: "critical-requirements.md",
43
+ CRITICAL_REMINDERS_MD: "critical-reminders.md",
44
+ SETTINGS_JSON: "settings.json",
45
+ SETTINGS_LOCAL_JSON: "settings.local.json",
46
+ PACKAGE_JSON: "package.json"
47
+ };
48
+ var STANDARD_DIRS = {
49
+ EXAMPLES: "examples",
50
+ SCRIPTS: "scripts",
51
+ SKILLS: "skills",
52
+ AGENTS: "agents",
53
+ /** Legacy per-project template override directory (`.claude/templates`). */
54
+ TEMPLATES: "templates"
55
+ };
56
+
57
+ // ../compile/src/scope-predicates.ts
58
+ function isActiveAt(entry, scope) {
59
+ return entry.scope === scope && !entry.excluded;
60
+ }
61
+ function isGlobalTombstone(entry) {
62
+ return entry.scope === "global" && !!entry.excluded;
63
+ }
64
+ function isProjectOwned(entry) {
65
+ return entry.scope === "project" || isGlobalTombstone(entry);
66
+ }
67
+ function activeProjectAgentNames(agents) {
68
+ return agents.filter((a) => isActiveAt(a, "project")).map((a) => a.name);
69
+ }
70
+ function activeAgentNames(agents) {
71
+ return agents.filter((a) => !a.excluded).map((a) => a.name);
72
+ }
73
+ function activeSkillScopeMap(skills) {
74
+ return new Map(
75
+ (skills ?? []).filter((s) => !s.excluded).map((s) => [s.id, s.scope])
76
+ );
77
+ }
78
+ function activeAgentScopeMap(agents) {
79
+ return new Map(
80
+ (agents ?? []).filter((a) => !a.excluded).map((a) => [a.name, a.scope])
81
+ );
82
+ }
83
+ function effectivelyExcludedSkillIds(skills) {
84
+ const activeIds = new Set(skills.filter((s) => !s.excluded).map((s) => s.id));
85
+ return new Set(
86
+ skills.filter((s) => s.excluded && !activeIds.has(s.id)).map((s) => s.id)
87
+ );
88
+ }
89
+
90
+ // src/cli/consts.ts
91
+ import os from "os";
92
+ import path from "path";
93
+ import { fileURLToPath } from "url";
94
+
95
+ // ../compile/src/catalog.ts
96
+ function isExclusiveCategory(catalog, category) {
97
+ return catalog.categories[category]?.exclusive === true;
98
+ }
99
+ function categoryDomain(catalog, category) {
100
+ return catalog.categories[category]?.domain;
101
+ }
102
+ function skillDomain(catalog, skillId) {
103
+ const skill = catalog.skills[skillId];
104
+ return skill && categoryDomain(catalog, skill.category);
105
+ }
106
+ function byCategoryDeclarationOrder(catalog) {
107
+ const declarationRank = new Map(
108
+ Object.keys(catalog.categories).map((category, rank) => [category, rank])
109
+ );
110
+ const afterEveryDeclared = declarationRank.size;
111
+ const rankOf = (category) => declarationRank.get(category) ?? afterEveryDeclared;
112
+ return (a, b) => rankOf(a) - rankOf(b);
113
+ }
114
+
3
115
  // ../matrix/src/vendor/generated/source-types.ts
4
116
  var SKILL_IDS = [
5
117
  "ai-infrastructure-huggingface-inference",
@@ -377,51 +489,6 @@ var AGENT_NAMES = [
377
489
  "web-tester"
378
490
  ];
379
491
 
380
- // ../matrix/src/read-model/domains.ts
381
- var DOMAIN_ORDER = [
382
- "web",
383
- "api",
384
- "ai",
385
- "mobile",
386
- "desktop",
387
- "cli",
388
- "infra",
389
- "meta",
390
- "shared"
391
- ];
392
- var DOMAIN_LABELS = {
393
- web: "Web",
394
- api: "API",
395
- ai: "AI",
396
- mobile: "Mobile",
397
- desktop: "Desktop",
398
- cli: "CLI",
399
- infra: "Infra",
400
- meta: "Meta",
401
- shared: "Shared"
402
- };
403
- var DOMAIN_DESCRIPTIONS = {
404
- web: "Frontend web applications",
405
- api: "Backend APIs and services",
406
- ai: "AI and LLM integrations",
407
- mobile: "Mobile applications",
408
- desktop: "Desktop applications",
409
- cli: "Command-line tools",
410
- infra: "CI/CD, deployment, and infrastructure",
411
- meta: "Design patterns, code review, and research methodology",
412
- shared: "Shared utilities and methodology"
413
- };
414
- var DOMAIN_IDS = new Set(DOMAINS);
415
- var isDomain = (domainId) => DOMAIN_IDS.has(domainId);
416
- var agentDomainOf = (agentId) => {
417
- const prefix = agentId.split("-")[0];
418
- return prefix && isDomain(prefix) ? prefix : "meta";
419
- };
420
- var DOMAIN_POSITION = new Map(
421
- DOMAIN_ORDER.map((domain, index) => [domain, index])
422
- );
423
- var compareDomains = (a, b) => (DOMAIN_POSITION.get(a) ?? DOMAIN_ORDER.length) - (DOMAIN_POSITION.get(b) ?? DOMAIN_ORDER.length);
424
-
425
492
  // ../matrix/src/read-model/collections.ts
426
493
  var groupBy = (items, keyOf) => {
427
494
  const groups = /* @__PURE__ */ new Map();
@@ -3949,7 +4016,7 @@ var BUILT_IN_MATRIX = {
3949
4016
  {
3950
4017
  skillIds: ["web-framework-react"],
3951
4018
  needsAny: false,
3952
- reason: "Composition patterns are React surface \u2014 base-ui useRender/mergeProps, forwardRef, JSX parts"
4019
+ reason: "Composition patterns are React surface \u2014 JSX parts sharing context, ref as a prop, asChild/render via cloneElement, useId"
3953
4020
  }
3954
4021
  ],
3955
4022
  alternatives: [],
@@ -3960,7 +4027,7 @@ var BUILT_IN_MATRIX = {
3960
4027
  slug: "expressive-typescript",
3961
4028
  displayName: "Expressive TypeScript",
3962
4029
  description: "Readable functional patterns and named abstractions",
3963
- usageGuidance: "Use when writing or refactoring TypeScript functions, data transformations, store actions, or any code that mixes logic levels. Apply the orchestrator pattern and extract until the code reads like prose.",
4030
+ usageGuidance: "Use when writing or refactoring TypeScript functions, data transformations, store actions, or any code that mixes logic levels; when deciding whether an expression should be extracted and named; or when modelling a fixed set of states for exhaustive handling. Apply the orchestrator pattern and extract until the code reads like prose.",
3964
4031
  category: "meta-design",
3965
4032
  author: "@vince",
3966
4033
  conflictsWith: [],
@@ -4058,7 +4125,7 @@ var BUILT_IN_MATRIX = {
4058
4125
  slug: "api-reviewing",
4059
4126
  displayName: "API Reviewing",
4060
4127
  description: "Injection, boundary validation, authorization, data exposure",
4061
- usageGuidance: "Use when reviewing diffs that touch API routes, database queries, auth middleware, or server utilities. Covers injection, input validation at boundaries, authn/authz coverage, secret and PII exposure, error leakage, and query patterns.",
4128
+ usageGuidance: "Use when reviewing a diff that adds or changes API routes or handlers, database queries, authentication or authorization middleware, or server code that reads files, starts processes or fetches URLs using request data.",
4062
4129
  category: "meta-reviewing",
4063
4130
  author: "@vince",
4064
4131
  conflictsWith: [],
@@ -4071,8 +4138,8 @@ var BUILT_IN_MATRIX = {
4071
4138
  id: "meta-reviewing-cli-reviewing",
4072
4139
  slug: "cli-reviewing",
4073
4140
  displayName: "CLI Reviewing",
4074
- description: "CLI code review patterns for Commander.js and @clack/prompts",
4075
- usageGuidance: "Use when reviewing CLI applications built with Commander.js, @clack/prompts, or similar tools. Covers exit codes, signal handling, cancellation, error messages, spinners, and testing adequacy.",
4141
+ description: "Review exit codes, signals, streams and prompts in CLIs",
4142
+ usageGuidance: "Use when reviewing a command-line tool's commands, entry point, prompts, output or tests, whichever parser or prompt library it uses. Covers exit codes, cancellation and signals, non-TTY behaviour, the stdout/stderr split, error text, config precedence, subprocess safety and test adequacy.",
4076
4143
  category: "meta-reviewing",
4077
4144
  author: "@vince",
4078
4145
  conflictsWith: [],
@@ -4086,7 +4153,7 @@ var BUILT_IN_MATRIX = {
4086
4153
  slug: "infra-reviewing",
4087
4154
  displayName: "Infra Reviewing",
4088
4155
  description: "Supply-chain pinning, secret exposure, container hygiene",
4089
- usageGuidance: "Use when reviewing diffs that touch CI/CD workflows, Dockerfiles, deployment configs, or IaC. Covers action and base-image pinning, secret handling, non-root containers, layer caching, least-privilege permissions, and deployment safety.",
4156
+ usageGuidance: "Use when reviewing diffs that touch CI/CD workflows, Dockerfiles, deployment configs, or IaC. Covers action and base-image pinning, secret handling, privileged workflow triggers and script injection, least-privilege permissions, non-root containers, layer caching, and deployment safety.",
4090
4157
  category: "meta-reviewing",
4091
4158
  author: "@vince",
4092
4159
  conflictsWith: [],
@@ -4100,7 +4167,7 @@ var BUILT_IN_MATRIX = {
4100
4167
  slug: "reviewing",
4101
4168
  displayName: "Code Review",
4102
4169
  description: "Code review guidance",
4103
- usageGuidance: "Use when reviewing code, PRs, or making approval/rejection decisions.",
4170
+ usageGuidance: "Use when reviewing a diff or PR, writing review findings, or deciding whether to approve or request changes.",
4104
4171
  category: "meta-reviewing",
4105
4172
  author: "@vince",
4106
4173
  conflictsWith: [],
@@ -4114,7 +4181,7 @@ var BUILT_IN_MATRIX = {
4114
4181
  slug: "web-reviewing",
4115
4182
  displayName: "Web Reviewing",
4116
4183
  description: "React hooks, accessibility, and render performance",
4117
- usageGuidance: "Use when reviewing diffs that touch UI components - React/JSX files, hooks, props and state, styling, or accessibility. Covers rules of hooks, effect cleanup, render performance, list keys, and ARIA/keyboard patterns.",
4184
+ usageGuidance: "Use when reviewing a diff that adds or changes React components or custom hooks \u2014 hook order and dependency arrays, effect and ref cleanup, derived state, list keys and component identity, controlled inputs, memoization claims, and keyboard and screen-reader access for the elements the diff adds.",
4118
4185
  category: "meta-reviewing",
4119
4186
  author: "@vince",
4120
4187
  conflictsWith: [],
@@ -9813,6 +9880,51 @@ var builtInMatrixSchema = z.object({
9813
9880
  var MATRIX = builtInMatrixSchema.parse(BUILT_IN_MATRIX);
9814
9881
  var MATRIX_VERSION = MATRIX.version;
9815
9882
 
9883
+ // ../matrix/src/read-model/domains.ts
9884
+ var DOMAIN_ORDER = [
9885
+ "web",
9886
+ "api",
9887
+ "ai",
9888
+ "mobile",
9889
+ "desktop",
9890
+ "cli",
9891
+ "infra",
9892
+ "meta",
9893
+ "shared"
9894
+ ];
9895
+ var DOMAIN_LABELS = {
9896
+ web: "Web",
9897
+ api: "API",
9898
+ ai: "AI",
9899
+ mobile: "Mobile",
9900
+ desktop: "Desktop",
9901
+ cli: "CLI",
9902
+ infra: "Infra",
9903
+ meta: "Meta",
9904
+ shared: "Shared"
9905
+ };
9906
+ var DOMAIN_DESCRIPTIONS = {
9907
+ web: "Frontend web applications",
9908
+ api: "Backend APIs and services",
9909
+ ai: "AI and LLM integrations",
9910
+ mobile: "Mobile applications",
9911
+ desktop: "Desktop applications",
9912
+ cli: "Command-line tools",
9913
+ infra: "CI/CD, deployment, and infrastructure",
9914
+ meta: "Design patterns, code review, and research methodology",
9915
+ shared: "Shared utilities and methodology"
9916
+ };
9917
+ var DOMAIN_IDS = new Set(DOMAINS);
9918
+ var isDomain = (domainId) => DOMAIN_IDS.has(domainId);
9919
+ var agentDomainOf = (agentId) => {
9920
+ const prefix = agentId.split("-")[0];
9921
+ return prefix && isDomain(prefix) ? prefix : "meta";
9922
+ };
9923
+ var DOMAIN_POSITION = new Map(
9924
+ DOMAIN_ORDER.map((domain, index) => [domain, index])
9925
+ );
9926
+ var compareDomains = (a, b) => (DOMAIN_POSITION.get(a) ?? DOMAIN_ORDER.length) - (DOMAIN_POSITION.get(b) ?? DOMAIN_ORDER.length);
9927
+
9816
9928
  // ../matrix/src/read-model/catalog.ts
9817
9929
  var toCatalogSkill = (skill, domainId) => ({
9818
9930
  id: skill.id,
@@ -10368,10 +10480,14 @@ var toCatalogStack = (stack) => ({
10368
10480
  var buildStacks = (matrix) => matrix.suggestedStacks.map(toCatalogStack);
10369
10481
  var STACKS = buildStacks(MATRIX);
10370
10482
  var rosteredAgents = (stack) => Object.keys(stack.skills).map((agentId) => subAgentById(agentId)).filter((agent) => agent !== void 0).map((agent) => agent.id);
10483
+ var skillsOf = (stack, agentId) => Object.values(stack.skills[agentId] ?? {}).flat();
10484
+ var toSkillLessAgentIds = (stack) => rosteredAgents(stack).filter(
10485
+ (agentId) => skillsOf(stack, agentId).length === 0
10486
+ );
10371
10487
  var toAgentsBySkill = (stack) => {
10372
10488
  const agentsBySkill = {};
10373
10489
  for (const agentId of rosteredAgents(stack)) {
10374
- for (const skillId of Object.values(stack.skills[agentId] ?? {}).flat()) {
10490
+ for (const skillId of skillsOf(stack, agentId)) {
10375
10491
  const agents = agentsBySkill[skillId] ??= [];
10376
10492
  if (!agents.includes(agentId)) agents.push(agentId);
10377
10493
  }
@@ -10400,7 +10516,8 @@ var createStackExpander = (matrix) => (stackId) => {
10400
10516
  if (!stack) return void 0;
10401
10517
  return {
10402
10518
  skillIds: stack.allSkillIds,
10403
- assignmentsBySkill: toAssignmentsBySkill(stack)
10519
+ assignmentsBySkill: toAssignmentsBySkill(stack),
10520
+ skillLessAgentIds: toSkillLessAgentIds(stack)
10404
10521
  };
10405
10522
  };
10406
10523
  var expandStack = createStackExpander(MATRIX);
@@ -10700,7 +10817,7 @@ var matrixSkillSchema = z4.object({
10700
10817
  // `catalog.json` and make every marketplace look like it states none.
10701
10818
  usageGuidance: z4.string().exactOptional(),
10702
10819
  // The SKILL.md description a compiled sub-agent's activation table shows —
10703
- // `description` is the wizard's short label. The preview renders this one so
10820
+ // `description` is the short label. The preview renders this one so
10704
10821
  // it shows what the install writes (CLI-898); absent on older catalogues.
10705
10822
  activationDescription: z4.string().exactOptional(),
10706
10823
  category: idSchema,
@@ -10767,122 +10884,6 @@ var skillIndexSchema = z5.object({
10767
10884
  });
10768
10885
  var skillIndexFreshnessSchema = z5.enum(["fresh", "stale"]);
10769
10886
 
10770
- // ../compile/src/domain-order.ts
10771
- function orderDomains(domains) {
10772
- const builtInSet = new Set(DOMAIN_ORDER);
10773
- return [
10774
- ...domains.filter((d) => !builtInSet.has(d)).sort(),
10775
- ...DOMAIN_ORDER.filter((d) => domains.includes(d))
10776
- ];
10777
- }
10778
-
10779
- // ../compile/src/paths.ts
10780
- var CLAUDE_DIR = ".claude";
10781
- var SOURCE_ROOT_DIR = ".agents-inc";
10782
- var SOURCE_SRC_DIR = "src";
10783
- var SKILLS_DIR_PATH = `${SOURCE_SRC_DIR}/skills`;
10784
- var LOCAL_SKILLS_PATH = ".claude/skills";
10785
- var DEFAULT_PLUGIN_NAME = "agents-inc";
10786
- var DEFAULT_PUBLIC_SOURCE_NAME = DEFAULT_PLUGIN_NAME;
10787
- var GITHUB_PREFIX = "github:";
10788
- var DEFAULT_SOURCE = `${GITHUB_PREFIX}agents-inc/skills`;
10789
- var CLI_INVOKE_COMMAND = "npx agents-inc";
10790
- var EJECT_SOURCE = "eject";
10791
- var LOCAL_PSEUDO_CATEGORY = "local";
10792
- var GLOBAL_CONFIG_NAME = "global";
10793
- var DIRS = {
10794
- agents: "src/agents",
10795
- skills: SKILLS_DIR_PATH,
10796
- stacks: "src/stacks",
10797
- templates: "src/agents/_templates"
10798
- };
10799
- var METADATA_YAML_FILE = "metadata.yaml";
10800
- var PLUGIN_MANIFEST_FILE = "plugin.json";
10801
- var STANDARD_FILES = {
10802
- SKILL_MD: "SKILL.md",
10803
- METADATA_YAML: METADATA_YAML_FILE,
10804
- METADATA_JSON: "metadata.json",
10805
- CONFIG_YAML: "config.yaml",
10806
- SKILL_CATEGORIES_TS: "skill-categories.ts",
10807
- SKILL_RULES_TS: "skill-rules.ts",
10808
- AGENT_METADATA_YAML: METADATA_YAML_FILE,
10809
- PLUGIN_JSON: PLUGIN_MANIFEST_FILE,
10810
- CONFIG_TS: "config.ts",
10811
- CONFIG_TYPES_TS: "config-types.ts",
10812
- CLAUDE_MD: "CLAUDE.md",
10813
- README_MD: "README.md",
10814
- REFERENCE_MD: "reference.md",
10815
- IDENTITY_MD: "identity.md",
10816
- PLAYBOOK_MD: "playbook.md",
10817
- OUTPUT_MD: "output.md",
10818
- CRITICAL_REQUIREMENTS_MD: "critical-requirements.md",
10819
- CRITICAL_REMINDERS_MD: "critical-reminders.md",
10820
- SETTINGS_JSON: "settings.json",
10821
- SETTINGS_LOCAL_JSON: "settings.local.json",
10822
- PACKAGE_JSON: "package.json"
10823
- };
10824
- var STANDARD_DIRS = {
10825
- EXAMPLES: "examples",
10826
- SCRIPTS: "scripts",
10827
- SKILLS: "skills",
10828
- AGENTS: "agents",
10829
- /** Legacy per-project template override directory (`.claude/templates`). */
10830
- TEMPLATES: "templates"
10831
- };
10832
-
10833
- // ../compile/src/scope-predicates.ts
10834
- function isActiveAt(entry, scope) {
10835
- return entry.scope === scope && !entry.excluded;
10836
- }
10837
- function isGlobalTombstone(entry) {
10838
- return entry.scope === "global" && !!entry.excluded;
10839
- }
10840
- function isProjectOwned(entry) {
10841
- return entry.scope === "project" || isGlobalTombstone(entry);
10842
- }
10843
- function activeProjectAgentNames(agents) {
10844
- return agents.filter((a) => isActiveAt(a, "project")).map((a) => a.name);
10845
- }
10846
- function activeAgentNames(agents) {
10847
- return agents.filter((a) => !a.excluded).map((a) => a.name);
10848
- }
10849
- function activeSkillScopeMap(skills) {
10850
- return new Map(
10851
- (skills ?? []).filter((s) => !s.excluded).map((s) => [s.id, s.scope])
10852
- );
10853
- }
10854
- function activeAgentScopeMap(agents) {
10855
- return new Map(
10856
- (agents ?? []).filter((a) => !a.excluded).map((a) => [a.name, a.scope])
10857
- );
10858
- }
10859
- function effectivelyExcludedSkillIds(skills) {
10860
- const activeIds = new Set(skills.filter((s) => !s.excluded).map((s) => s.id));
10861
- return new Set(
10862
- skills.filter((s) => s.excluded && !activeIds.has(s.id)).map((s) => s.id)
10863
- );
10864
- }
10865
-
10866
- // ../compile/src/catalog.ts
10867
- function isExclusiveCategory(catalog, category) {
10868
- return catalog.categories[category]?.exclusive === true;
10869
- }
10870
- function categoryDomain(catalog, category) {
10871
- return catalog.categories[category]?.domain;
10872
- }
10873
- function skillDomain(catalog, skillId) {
10874
- const skill = catalog.skills[skillId];
10875
- return skill && categoryDomain(catalog, skill.category);
10876
- }
10877
- function byCategoryDeclarationOrder(catalog) {
10878
- const declarationRank = new Map(
10879
- Object.keys(catalog.categories).map((category, rank) => [category, rank])
10880
- );
10881
- const afterEveryDeclared = declarationRank.size;
10882
- const rankOf = (category) => declarationRank.get(category) ?? afterEveryDeclared;
10883
- return (a, b) => rankOf(a) - rankOf(b);
10884
- }
10885
-
10886
10887
  // ../compile/src/catalog-seat.ts
10887
10888
  var seated = MATRIX;
10888
10889
  function seatCatalog(catalog) {
@@ -10905,6 +10906,15 @@ function diagnostics() {
10905
10906
  return seated2;
10906
10907
  }
10907
10908
 
10909
+ // ../compile/src/domain-order.ts
10910
+ function orderDomains(domains) {
10911
+ const builtInSet = new Set(DOMAIN_ORDER);
10912
+ return [
10913
+ ...domains.filter((d) => !builtInSet.has(d)).sort(),
10914
+ ...DOMAIN_ORDER.filter((d) => domains.includes(d))
10915
+ ];
10916
+ }
10917
+
10908
10918
  // ../compile/src/string.ts
10909
10919
  function bytewise(a, b) {
10910
10920
  return a < b ? -1 : a > b ? 1 : 0;
@@ -11015,9 +11025,6 @@ function sourceDirName(provider) {
11015
11025
  }
11016
11026
 
11017
11027
  // src/cli/consts.ts
11018
- import os from "os";
11019
- import path from "path";
11020
- import { fileURLToPath } from "url";
11021
11028
  var __filename2 = fileURLToPath(import.meta.url);
11022
11029
  var __dirname2 = path.dirname(__filename2);
11023
11030
  var isInDist = __dirname2.includes("/dist");
@@ -11042,8 +11049,6 @@ var EDITOR_URL = "https://agentsinc.sh/editor";
11042
11049
  function editorConfigUrl(id) {
11043
11050
  return `${EDITOR_URL}/?fromId=${encodeURIComponent(id)}`;
11044
11051
  }
11045
- var EDIT_PROJECT_SETUP_FLAG = "project-setup";
11046
- var EDIT_PROJECT_SETUP_MARKETPLACE_FLAG = "project-setup-marketplace";
11047
11052
  var SKILL_CATEGORIES_PATH = "config/skill-categories.ts";
11048
11053
  var SKILL_RULES_PATH = "config/skill-rules.ts";
11049
11054
  var STACKS_FILE_PATH = "config/stacks.ts";
@@ -11082,9 +11087,9 @@ var UI_SYMBOLS = {
11082
11087
  SCROLL_DOWN: "\u25BC",
11083
11088
  CHECK: CHECK_GLYPH,
11084
11089
  CROSS: "\u2717",
11085
- /** Removed/pending-removal diff marker (ASCII hyphen). Info panel + Sources tab share it. */
11090
+ /** Removed/pending-removal diff marker (ASCII hyphen). */
11086
11091
  REMOVED: "-",
11087
- /** Added/newly-selected diff marker (ASCII plus). Info panel + Sources tab share it. */
11092
+ /** Added/newly-selected diff marker (ASCII plus). */
11088
11093
  ADDED: "+"
11089
11094
  };
11090
11095
  var GITHUB_SOURCE = {
@@ -11105,19 +11110,12 @@ var MAX_JSON_NESTING_DEPTH = 10;
11105
11110
  var MAX_MARKETPLACE_PLUGINS = 1e4;
11106
11111
  var SCROLL_VIEWPORT = {
11107
11112
  /** Height of the "N more above" scroll indicator */
11108
- SCROLL_INDICATOR_HEIGHT: 1,
11109
- /** Estimated lines per category name row (including top margin) */
11110
- CATEGORY_NAME_LINES: 2,
11111
- /** Margin between category sections (marginTop on CategorySection) */
11112
- CATEGORY_MARGIN_LINES: 1,
11113
- /** Minimum rows to show at least 1 category before enabling scroll */
11114
- MIN_VIEWPORT_ROWS: 5
11113
+ SCROLL_INDICATOR_HEIGHT: 1
11115
11114
  };
11116
11115
  var MIN_TERMINAL_SIZE = {
11117
11116
  COLS: 80,
11118
11117
  ROWS: 20
11119
11118
  };
11120
- var LOGO_MIN_TERMINAL_ROWS = 26;
11121
11119
  var DEFAULT_BRANDING = {
11122
11120
  NAME: "Agents Inc."
11123
11121
  };
@@ -11127,11 +11125,6 @@ var SOURCE_DISPLAY_NAMES = {
11127
11125
  eject: "Eject",
11128
11126
  "agents-inc": "Agents Inc"
11129
11127
  };
11130
- var INSTALL_MODES = ["eject", "plugin"];
11131
- var INSTALL_MODE_CELL_LABELS = {
11132
- eject: "Local",
11133
- plugin: "Plugin"
11134
- };
11135
11128
  function formatSourceDisplayName(source) {
11136
11129
  return SOURCE_DISPLAY_NAMES[source] ?? source;
11137
11130
  }
@@ -11141,21 +11134,13 @@ var CLI_COLORS = {
11141
11134
  SUCCESS: "#90EE90",
11142
11135
  ERROR: "#DC343B",
11143
11136
  WARNING: "#E6A817",
11144
- INFO: "#3B82F6",
11145
11137
  NEUTRAL: "#888888",
11146
- FOCUS: "#87CEFA",
11147
- UNFOCUSED: "#FFFFFF",
11148
11138
  WHITE: "#FFFFFF",
11149
- BLACK: "#000000",
11150
11139
  DIM: "#666666",
11151
11140
  GRAY_1: "#ddd",
11152
11141
  LABEL_BG: "#383838",
11153
- TOAST_BG: "#EEEEEE",
11154
- TOAST_FG: "#000000",
11155
11142
  HOVER_BG: "#333333"
11156
11143
  };
11157
- var DEFAULT_SCRATCH_DOMAINS = ["web", "api", "mobile"];
11158
- var FALLBACK_DOMAIN = "web";
11159
11144
  var ASCII_LOGO = ` \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557
11160
11145
  \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u255A\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D
11161
11146
  \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2551
@@ -11171,13 +11156,11 @@ export {
11171
11156
  SKILL_IDS,
11172
11157
  AGENT_NAMES,
11173
11158
  MATRIX_VERSION,
11174
- DOMAIN_DESCRIPTIONS,
11175
11159
  MODEL_NAMES,
11176
11160
  CODEX_MODEL_NAMES,
11177
11161
  EFFORT_NAMES,
11178
11162
  resolveLoadState,
11179
11163
  resolveAssignment,
11180
- createSelectionSemantics,
11181
11164
  SEED_VERSION,
11182
11165
  seedModelSchema,
11183
11166
  seedExternalSkillSchema,
@@ -11231,8 +11214,6 @@ export {
11231
11214
  cacheRoot,
11232
11215
  EDITOR_URL,
11233
11216
  editorConfigUrl,
11234
- EDIT_PROJECT_SETUP_FLAG,
11235
- EDIT_PROJECT_SETUP_MARKETPLACE_FLAG,
11236
11217
  SKILL_CATEGORIES_PATH,
11237
11218
  SKILL_RULES_PATH,
11238
11219
  STACKS_FILE_PATH,
@@ -11253,16 +11234,11 @@ export {
11253
11234
  MAX_MARKETPLACE_PLUGINS,
11254
11235
  SCROLL_VIEWPORT,
11255
11236
  MIN_TERMINAL_SIZE,
11256
- LOGO_MIN_TERMINAL_ROWS,
11257
11237
  DEFAULT_BRANDING,
11258
11238
  PUBLIC_CATALOGUE_PACKAGE,
11259
- INSTALL_MODES,
11260
- INSTALL_MODE_CELL_LABELS,
11261
11239
  formatSourceDisplayName,
11262
11240
  ALL_SKILLS_EJECTED_LABEL,
11263
11241
  CLI_COLORS,
11264
- DEFAULT_SCRATCH_DOMAINS,
11265
- FALLBACK_DOMAIN,
11266
11242
  ASCII_LOGO
11267
11243
  };
11268
- //# sourceMappingURL=chunk-AG3ZVM3B.js.map
11244
+ //# sourceMappingURL=chunk-PJWGTNOX.js.map