@agentxm/client-core 0.10.1 → 0.11.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 (239) hide show
  1. package/dist/src/unstable/agents/coding-agent.d.ts +1 -0
  2. package/dist/src/unstable/agents/coding-agent.d.ts.map +1 -1
  3. package/dist/src/unstable/agents/coding-agent.js.map +1 -1
  4. package/dist/src/unstable/agents/registry.d.ts.map +1 -1
  5. package/dist/src/unstable/agents/registry.js +2 -0
  6. package/dist/src/unstable/agents/registry.js.map +1 -1
  7. package/dist/src/unstable/agents/repository.d.ts.map +1 -1
  8. package/dist/src/unstable/agents/repository.js +6 -1
  9. package/dist/src/unstable/agents/repository.js.map +1 -1
  10. package/dist/src/unstable/agents/types.d.ts +7 -1
  11. package/dist/src/unstable/agents/types.d.ts.map +1 -1
  12. package/dist/src/unstable/agents/types.js +5 -0
  13. package/dist/src/unstable/agents/types.js.map +1 -1
  14. package/dist/src/unstable/agents/universal/descriptor.d.ts +14 -0
  15. package/dist/src/unstable/agents/universal/descriptor.d.ts.map +1 -0
  16. package/dist/src/unstable/agents/universal/descriptor.js +21 -0
  17. package/dist/src/unstable/agents/universal/descriptor.js.map +1 -0
  18. package/dist/src/unstable/agents/universal/index.d.ts +8 -0
  19. package/dist/src/unstable/agents/universal/index.d.ts.map +1 -0
  20. package/dist/src/unstable/agents/universal/index.js +8 -0
  21. package/dist/src/unstable/agents/universal/index.js.map +1 -0
  22. package/dist/src/unstable/app-error/app-error.d.ts +2 -0
  23. package/dist/src/unstable/app-error/app-error.d.ts.map +1 -1
  24. package/dist/src/unstable/app-error/app-error.js +15 -0
  25. package/dist/src/unstable/app-error/app-error.js.map +1 -1
  26. package/dist/src/unstable/app-error/index.d.ts +1 -1
  27. package/dist/src/unstable/app-error/index.d.ts.map +1 -1
  28. package/dist/src/unstable/app-error/index.js +1 -1
  29. package/dist/src/unstable/app-error/index.js.map +1 -1
  30. package/dist/src/unstable/cli-runtime/telemetry.d.ts +1 -1
  31. package/dist/src/unstable/cli-runtime/telemetry.d.ts.map +1 -1
  32. package/dist/src/unstable/cli-runtime/telemetry.js +3 -0
  33. package/dist/src/unstable/cli-runtime/telemetry.js.map +1 -1
  34. package/dist/src/unstable/commands/operations/publish.d.ts.map +1 -1
  35. package/dist/src/unstable/commands/operations/publish.js +7 -0
  36. package/dist/src/unstable/commands/operations/publish.js.map +1 -1
  37. package/dist/src/unstable/commands/operations/shared-command-helpers.d.ts +3 -3
  38. package/dist/src/unstable/extensions/common.d.ts +12 -1
  39. package/dist/src/unstable/extensions/common.d.ts.map +1 -1
  40. package/dist/src/unstable/extensions/common.js +15 -1
  41. package/dist/src/unstable/extensions/common.js.map +1 -1
  42. package/dist/src/unstable/extensions/index.d.ts +1 -1
  43. package/dist/src/unstable/extensions/index.d.ts.map +1 -1
  44. package/dist/src/unstable/extensions/index.js +1 -1
  45. package/dist/src/unstable/extensions/index.js.map +1 -1
  46. package/dist/src/unstable/lint/catalog/command/manifest-keys-recognized.d.ts +4 -0
  47. package/dist/src/unstable/lint/catalog/command/manifest-keys-recognized.d.ts.map +1 -0
  48. package/dist/src/unstable/lint/catalog/command/manifest-keys-recognized.js +14 -0
  49. package/dist/src/unstable/lint/catalog/command/manifest-keys-recognized.js.map +1 -0
  50. package/dist/src/unstable/lint/catalog/command/manifest-present.d.ts +4 -0
  51. package/dist/src/unstable/lint/catalog/command/manifest-present.d.ts.map +1 -0
  52. package/dist/src/unstable/lint/catalog/command/manifest-present.js +24 -0
  53. package/dist/src/unstable/lint/catalog/command/manifest-present.js.map +1 -0
  54. package/dist/src/unstable/lint/catalog/command/manifest-schema-valid.d.ts +4 -0
  55. package/dist/src/unstable/lint/catalog/command/manifest-schema-valid.d.ts.map +1 -0
  56. package/dist/src/unstable/lint/catalog/command/manifest-schema-valid.js +12 -0
  57. package/dist/src/unstable/lint/catalog/command/manifest-schema-valid.js.map +1 -0
  58. package/dist/src/unstable/lint/catalog/command.d.ts +4 -0
  59. package/dist/src/unstable/lint/catalog/command.d.ts.map +1 -0
  60. package/dist/src/unstable/lint/catalog/command.js +11 -0
  61. package/dist/src/unstable/lint/catalog/command.js.map +1 -0
  62. package/dist/src/unstable/lint/catalog/index.d.ts +3 -0
  63. package/dist/src/unstable/lint/catalog/index.d.ts.map +1 -1
  64. package/dist/src/unstable/lint/catalog/index.js +9 -0
  65. package/dist/src/unstable/lint/catalog/index.js.map +1 -1
  66. package/dist/src/unstable/lint/catalog/mcp-server/manifest-keys-recognized.d.ts +4 -0
  67. package/dist/src/unstable/lint/catalog/mcp-server/manifest-keys-recognized.d.ts.map +1 -0
  68. package/dist/src/unstable/lint/catalog/mcp-server/manifest-keys-recognized.js +14 -0
  69. package/dist/src/unstable/lint/catalog/mcp-server/manifest-keys-recognized.js.map +1 -0
  70. package/dist/src/unstable/lint/catalog/mcp-server/manifest-present.d.ts +4 -0
  71. package/dist/src/unstable/lint/catalog/mcp-server/manifest-present.d.ts.map +1 -0
  72. package/dist/src/unstable/lint/catalog/mcp-server/manifest-present.js +24 -0
  73. package/dist/src/unstable/lint/catalog/mcp-server/manifest-present.js.map +1 -0
  74. package/dist/src/unstable/lint/catalog/mcp-server/manifest-schema-valid.d.ts +4 -0
  75. package/dist/src/unstable/lint/catalog/mcp-server/manifest-schema-valid.d.ts.map +1 -0
  76. package/dist/src/unstable/lint/catalog/mcp-server/manifest-schema-valid.js +12 -0
  77. package/dist/src/unstable/lint/catalog/mcp-server/manifest-schema-valid.js.map +1 -0
  78. package/dist/src/unstable/lint/catalog/mcp-server.d.ts +4 -0
  79. package/dist/src/unstable/lint/catalog/mcp-server.d.ts.map +1 -0
  80. package/dist/src/unstable/lint/catalog/mcp-server.js +11 -0
  81. package/dist/src/unstable/lint/catalog/mcp-server.js.map +1 -0
  82. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.d.ts +3 -6
  83. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.d.ts.map +1 -1
  84. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.js +5 -8
  85. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.js.map +1 -1
  86. package/dist/src/unstable/lint/catalog/pack.d.ts +1 -1
  87. package/dist/src/unstable/lint/catalog/pack.js +1 -1
  88. package/dist/src/unstable/lint/catalog/shared/manifest-json.d.ts +18 -0
  89. package/dist/src/unstable/lint/catalog/shared/manifest-json.d.ts.map +1 -0
  90. package/dist/src/unstable/lint/catalog/shared/manifest-json.js +43 -0
  91. package/dist/src/unstable/lint/catalog/shared/manifest-json.js.map +1 -0
  92. package/dist/src/unstable/lint/catalog/shared/schema-rule.d.ts.map +1 -1
  93. package/dist/src/unstable/lint/catalog/shared/schema-rule.js +13 -0
  94. package/dist/src/unstable/lint/catalog/shared/schema-rule.js.map +1 -1
  95. package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.d.ts +2 -2
  96. package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.js +4 -4
  97. package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.js.map +1 -1
  98. package/dist/src/unstable/lint/catalog/skill.d.ts +1 -1
  99. package/dist/src/unstable/lint/catalog/skill.js +1 -1
  100. package/dist/src/unstable/lint/catalog/subagent/manifest-keys-recognized.d.ts +4 -0
  101. package/dist/src/unstable/lint/catalog/subagent/manifest-keys-recognized.d.ts.map +1 -0
  102. package/dist/src/unstable/lint/catalog/subagent/manifest-keys-recognized.js +14 -0
  103. package/dist/src/unstable/lint/catalog/subagent/manifest-keys-recognized.js.map +1 -0
  104. package/dist/src/unstable/lint/catalog/subagent/manifest-present.d.ts +4 -0
  105. package/dist/src/unstable/lint/catalog/subagent/manifest-present.d.ts.map +1 -0
  106. package/dist/src/unstable/lint/catalog/subagent/manifest-present.js +24 -0
  107. package/dist/src/unstable/lint/catalog/subagent/manifest-present.js.map +1 -0
  108. package/dist/src/unstable/lint/catalog/subagent/manifest-schema-valid.d.ts +4 -0
  109. package/dist/src/unstable/lint/catalog/subagent/manifest-schema-valid.d.ts.map +1 -0
  110. package/dist/src/unstable/lint/catalog/subagent/manifest-schema-valid.js +12 -0
  111. package/dist/src/unstable/lint/catalog/subagent/manifest-schema-valid.js.map +1 -0
  112. package/dist/src/unstable/lint/catalog/subagent.d.ts +4 -0
  113. package/dist/src/unstable/lint/catalog/subagent.d.ts.map +1 -0
  114. package/dist/src/unstable/lint/catalog/subagent.js +11 -0
  115. package/dist/src/unstable/lint/catalog/subagent.js.map +1 -0
  116. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.d.ts.map +1 -1
  117. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.js +3 -2
  118. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.js.map +1 -1
  119. package/dist/src/unstable/lint/catalog/workspace/skills-universal-artifact-present.d.ts +1 -1
  120. package/dist/src/unstable/lint/catalog/workspace/skills-universal-artifact-present.d.ts.map +1 -1
  121. package/dist/src/unstable/lint/catalog/workspace/skills-universal-artifact-present.js +8 -21
  122. package/dist/src/unstable/lint/catalog/workspace/skills-universal-artifact-present.js.map +1 -1
  123. package/dist/src/unstable/lint/catalog/workspace-fixtures/interpret-ops.d.ts.map +1 -1
  124. package/dist/src/unstable/lint/catalog/workspace-fixtures/interpret-ops.js +11 -22
  125. package/dist/src/unstable/lint/catalog/workspace-fixtures/interpret-ops.js.map +1 -1
  126. package/dist/src/unstable/lint/catalog/workspace-read-model/lint-workspace.d.ts +4 -1
  127. package/dist/src/unstable/lint/catalog/workspace-read-model/lint-workspace.d.ts.map +1 -1
  128. package/dist/src/unstable/lint/catalog/workspace-read-model/lint-workspace.js +154 -8
  129. package/dist/src/unstable/lint/catalog/workspace-read-model/lint-workspace.js.map +1 -1
  130. package/dist/src/unstable/lint/catalog/workspace-read-model/manifest-json.d.ts +14 -0
  131. package/dist/src/unstable/lint/catalog/workspace-read-model/manifest-json.d.ts.map +1 -0
  132. package/dist/src/unstable/lint/catalog/workspace-read-model/manifest-json.js +27 -0
  133. package/dist/src/unstable/lint/catalog/workspace-read-model/manifest-json.js.map +1 -0
  134. package/dist/src/unstable/lint/cli.d.ts +9 -3
  135. package/dist/src/unstable/lint/cli.d.ts.map +1 -1
  136. package/dist/src/unstable/lint/cli.js +19 -10
  137. package/dist/src/unstable/lint/cli.js.map +1 -1
  138. package/dist/src/unstable/lint/context.d.ts +36 -0
  139. package/dist/src/unstable/lint/context.d.ts.map +1 -1
  140. package/dist/src/unstable/lint/publish.d.ts +5 -2
  141. package/dist/src/unstable/lint/publish.d.ts.map +1 -1
  142. package/dist/src/unstable/lint/publish.js +24 -0
  143. package/dist/src/unstable/lint/publish.js.map +1 -1
  144. package/dist/src/unstable/lockfile/index.d.ts +2 -1
  145. package/dist/src/unstable/lockfile/index.d.ts.map +1 -1
  146. package/dist/src/unstable/lockfile/index.js +2 -1
  147. package/dist/src/unstable/lockfile/index.js.map +1 -1
  148. package/dist/src/unstable/lockfile/migration.d.ts +3 -0
  149. package/dist/src/unstable/lockfile/migration.d.ts.map +1 -0
  150. package/dist/src/unstable/lockfile/migration.js +32 -0
  151. package/dist/src/unstable/lockfile/migration.js.map +1 -0
  152. package/dist/src/unstable/lockfile/schema.d.ts +2 -86
  153. package/dist/src/unstable/lockfile/schema.d.ts.map +1 -1
  154. package/dist/src/unstable/lockfile/schema.js +5 -10
  155. package/dist/src/unstable/lockfile/schema.js.map +1 -1
  156. package/dist/src/unstable/mcp-servers/operations/publish.d.ts.map +1 -1
  157. package/dist/src/unstable/mcp-servers/operations/publish.js +7 -0
  158. package/dist/src/unstable/mcp-servers/operations/publish.js.map +1 -1
  159. package/dist/src/unstable/packs/operations/publish.d.ts.map +1 -1
  160. package/dist/src/unstable/packs/operations/publish.js +7 -0
  161. package/dist/src/unstable/packs/operations/publish.js.map +1 -1
  162. package/dist/src/unstable/publish/lint-gate.d.ts +37 -0
  163. package/dist/src/unstable/publish/lint-gate.d.ts.map +1 -0
  164. package/dist/src/unstable/publish/lint-gate.js +102 -0
  165. package/dist/src/unstable/publish/lint-gate.js.map +1 -0
  166. package/dist/src/unstable/settings/schema.d.ts +1 -1
  167. package/dist/src/unstable/settings/schema.js +2 -2
  168. package/dist/src/unstable/settings/schema.js.map +1 -1
  169. package/dist/src/unstable/skills/manager.d.ts.map +1 -1
  170. package/dist/src/unstable/skills/manager.js +6 -3
  171. package/dist/src/unstable/skills/manager.js.map +1 -1
  172. package/dist/src/unstable/skills/operations/disable.d.ts.map +1 -1
  173. package/dist/src/unstable/skills/operations/disable.js +31 -21
  174. package/dist/src/unstable/skills/operations/disable.js.map +1 -1
  175. package/dist/src/unstable/skills/operations/enable.d.ts.map +1 -1
  176. package/dist/src/unstable/skills/operations/enable.js +18 -23
  177. package/dist/src/unstable/skills/operations/enable.js.map +1 -1
  178. package/dist/src/unstable/skills/operations/install.d.ts +1 -1
  179. package/dist/src/unstable/skills/operations/install.d.ts.map +1 -1
  180. package/dist/src/unstable/skills/operations/install.js +9 -50
  181. package/dist/src/unstable/skills/operations/install.js.map +1 -1
  182. package/dist/src/unstable/skills/operations/publish.d.ts.map +1 -1
  183. package/dist/src/unstable/skills/operations/publish.js +7 -0
  184. package/dist/src/unstable/skills/operations/publish.js.map +1 -1
  185. package/dist/src/unstable/skills/operations/source-hash.d.ts +5 -0
  186. package/dist/src/unstable/skills/operations/source-hash.d.ts.map +1 -0
  187. package/dist/src/unstable/skills/operations/source-hash.js +15 -0
  188. package/dist/src/unstable/skills/operations/source-hash.js.map +1 -0
  189. package/dist/src/unstable/skills/operations/uninstall.d.ts.map +1 -1
  190. package/dist/src/unstable/skills/operations/uninstall.js +27 -11
  191. package/dist/src/unstable/skills/operations/uninstall.js.map +1 -1
  192. package/dist/src/unstable/source-resolution/resolve-source-pattern.d.ts +2 -1
  193. package/dist/src/unstable/source-resolution/resolve-source-pattern.d.ts.map +1 -1
  194. package/dist/src/unstable/source-resolution/resolve-source-pattern.js +10 -5
  195. package/dist/src/unstable/source-resolution/resolve-source-pattern.js.map +1 -1
  196. package/dist/src/unstable/subagents/operations/publish.d.ts.map +1 -1
  197. package/dist/src/unstable/subagents/operations/publish.js +7 -0
  198. package/dist/src/unstable/subagents/operations/publish.js.map +1 -1
  199. package/dist/src/unstable/telemetry/__generated__/telemetry-client.d.ts +3 -0
  200. package/dist/src/unstable/telemetry/__generated__/telemetry-client.d.ts.map +1 -1
  201. package/dist/src/unstable/telemetry/__generated__/telemetry-client.js +4 -0
  202. package/dist/src/unstable/telemetry/__generated__/telemetry-client.js.map +1 -1
  203. package/dist/src/unstable/telemetry/client.d.ts +2 -0
  204. package/dist/src/unstable/telemetry/client.d.ts.map +1 -1
  205. package/dist/src/unstable/telemetry/client.js +1 -0
  206. package/dist/src/unstable/telemetry/client.js.map +1 -1
  207. package/dist/src/unstable/telemetry/index.d.ts +1 -1
  208. package/dist/src/unstable/telemetry/index.d.ts.map +1 -1
  209. package/dist/src/unstable/telemetry/index.js.map +1 -1
  210. package/dist/src/unstable/workspace/initialization.d.ts +5 -4
  211. package/dist/src/unstable/workspace/initialization.d.ts.map +1 -1
  212. package/dist/src/unstable/workspace/initialization.js +10 -8
  213. package/dist/src/unstable/workspace/initialization.js.map +1 -1
  214. package/dist/src/unstable/workspace/read-model/__fixtures__/builder.d.ts.map +1 -1
  215. package/dist/src/unstable/workspace/read-model/__fixtures__/builder.js +14 -3
  216. package/dist/src/unstable/workspace/read-model/__fixtures__/builder.js.map +1 -1
  217. package/dist/src/unstable/workspace/read-model/agents/index.d.ts +2 -2
  218. package/dist/src/unstable/workspace/read-model/agents/index.d.ts.map +1 -1
  219. package/dist/src/unstable/workspace/read-model/agents/index.js +8 -4
  220. package/dist/src/unstable/workspace/read-model/agents/index.js.map +1 -1
  221. package/dist/src/unstable/workspace/read-model/discovery/subagents.d.ts +1 -1
  222. package/dist/src/unstable/workspace/read-model/state.d.ts.map +1 -1
  223. package/dist/src/unstable/workspace/read-model/state.js +2 -1
  224. package/dist/src/unstable/workspace/read-model/state.js.map +1 -1
  225. package/dist/src/unstable/workspace/reconciliation.js +2 -2
  226. package/dist/src/unstable/workspace/reconciliation.js.map +1 -1
  227. package/dist/src/unstable/workspace/service.d.ts +12 -68
  228. package/dist/src/unstable/workspace/service.d.ts.map +1 -1
  229. package/dist/src/unstable/workspace/service.js +4 -4
  230. package/dist/src/unstable/workspace/service.js.map +1 -1
  231. package/dist/src/unstable/workspace/skill-snapshot.js +1 -1
  232. package/dist/src/unstable/workspace/skill-snapshot.js.map +1 -1
  233. package/package.json +2 -2
  234. package/site-content/__generated__/schemas/axm-lock.schema.json +1 -99
  235. package/site-content/__generated__/schemas/settings.schema.json +3 -3
  236. package/dist/src/unstable/skills/operations/universal-artifact.d.ts +0 -43
  237. package/dist/src/unstable/skills/operations/universal-artifact.d.ts.map +0 -1
  238. package/dist/src/unstable/skills/operations/universal-artifact.js +0 -77
  239. package/dist/src/unstable/skills/operations/universal-artifact.js.map +0 -1
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Shared loose-manifest JSON helpers.
3
+ *
4
+ * Workspace lint parses installed manifests before per-extension rules run.
5
+ * The parsed value must stay raw JSON, not a schema-decoded manifest, so
6
+ * `*-keys-recognized` rules can still see excess top-level fields.
7
+ *
8
+ * @experimental This API is unstable and may change without notice.
9
+ */
10
+ export const makeManifestJsonParseFailure = (file) => ({
11
+ _tag: "ManifestJsonParseFailure",
12
+ file,
13
+ });
14
+ export const isManifestJsonParseFailure = (value) => {
15
+ if (value === null || typeof value !== "object") {
16
+ return false;
17
+ }
18
+ return "_tag" in value && value._tag === "ManifestJsonParseFailure";
19
+ };
20
+ export const manifestJsonParseFailureToFinding = (ruleId, severity, file, input) => ({
21
+ kind: "advisory",
22
+ ruleId,
23
+ severity,
24
+ message: `${describeManifest(file)} contains invalid JSON. Edit \`${input.file}\` and fix the JSON syntax.`,
25
+ location: { file },
26
+ });
27
+ const describeManifest = (file) => {
28
+ switch (file) {
29
+ case "command.json":
30
+ return "Command manifest";
31
+ case "mcp-server.json":
32
+ return "MCP server manifest";
33
+ case "pack.json":
34
+ return "Pack manifest";
35
+ case "skill.json":
36
+ return "Skill manifest";
37
+ case "subagent.json":
38
+ return "Subagent manifest";
39
+ default:
40
+ return "Manifest";
41
+ }
42
+ };
43
+ //# sourceMappingURL=manifest-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-json.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/shared/manifest-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,IAAY,EAA4B,EAAE,CAAC,CAAC;IACvF,IAAI,EAAE,0BAA0B;IAChC,IAAI;CACL,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAc,EAAqC,EAAE;IAC9F,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,0BAA0B,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,MAAc,EACd,QAAkB,EAClB,IAAY,EACZ,KAA+B,EACd,EAAE,CAAC,CAAC;IACrB,IAAI,EAAE,UAAU;IAChB,MAAM;IACN,QAAQ;IACR,OAAO,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,kCAAkC,KAAK,CAAC,IAAI,6BAA6B;IAC3G,QAAQ,EAAE,EAAE,IAAI,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAU,EAAE;IAChD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,kBAAkB,CAAC;QAC5B,KAAK,iBAAiB;YACpB,OAAO,qBAAqB,CAAC;QAC/B,KAAK,WAAW;YACd,OAAO,eAAe,CAAC;QACzB,KAAK,YAAY;YACf,OAAO,gBAAgB,CAAC;QAC1B,KAAK,eAAe;YAClB,OAAO,mBAAmB,CAAC;QAC7B;YACE,OAAO,UAAU,CAAC;IACtB,CAAC;AACH,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-rule.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/shared/schema-rule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAM/D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAAE,CAAC,EACvC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,MAAM,MAAM,EACZ,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,OAAO,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAY9C,CAAC;AAMF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ;IACtC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACpD,KAAG,WAAW,CAAC,MAAM,CAAwC,CAAC;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,GACvC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,MAAM,MAAM,EACZ,aAAa,WAAW,CAAC,MAAM,CAAC,EAChC,OAAO,OAAO,KACb,aAAa,CAAC,eAAe,CAoB/B,CAAC"}
1
+ {"version":3,"file":"schema-rule.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/shared/schema-rule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAO/D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAAE,CAAC,EACvC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,MAAM,MAAM,EACZ,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,OAAO,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAe9C,CAAC;AAMF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ;IACtC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACpD,KAAG,WAAW,CAAC,MAAM,CAAwC,CAAC;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,GACvC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,MAAM,MAAM,EACZ,aAAa,WAAW,CAAC,MAAM,CAAC,EAChC,OAAO,OAAO,KACb,aAAa,CAAC,eAAe,CAuB/B,CAAC"}
@@ -18,6 +18,7 @@ import * as Effect from "effect/Effect";
18
18
  import * as Result from "effect/Result";
19
19
  import * as Schema from "effect/Schema";
20
20
  import { issuesToFindings } from "../../issues-to-findings.js";
21
+ import { isManifestJsonParseFailure, manifestJsonParseFailureToFinding } from "./manifest-json.js";
21
22
  // -----------------------------------------------------------------------------
22
23
  // schemaDecodeFindings
23
24
  // -----------------------------------------------------------------------------
@@ -42,6 +43,9 @@ export const schemaDecodeFindings = (ruleId, severity, file, schema, input) => {
42
43
  if (input === undefined) {
43
44
  return Effect.succeed([]);
44
45
  }
46
+ if (isManifestJsonParseFailure(input)) {
47
+ return Effect.succeed([manifestJsonParseFailureToFinding(ruleId, severity, file, input)]);
48
+ }
45
49
  const result = Schema.decodeUnknownResult(schema)(input, {
46
50
  onExcessProperty: "ignore",
47
51
  errors: "all",
@@ -73,6 +77,9 @@ export const structFieldKeys = (struct) => new Set(Object.keys(struct.fields));
73
77
  * @experimental This API is unstable and may change without notice.
74
78
  */
75
79
  export const enumerateUnknownTopLevelKeys = (ruleId, severity, file, allowedKeys, input) => {
80
+ if (isManifestJsonParseFailure(input)) {
81
+ return [];
82
+ }
76
83
  if (!isPlainRecord(input)) {
77
84
  return [];
78
85
  }
@@ -95,10 +102,16 @@ export const enumerateUnknownTopLevelKeys = (ruleId, severity, file, allowedKeys
95
102
  const isPlainRecord = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
96
103
  const describeSchemaDocument = (file) => {
97
104
  switch (file) {
105
+ case "command.json":
106
+ return "Command manifest";
107
+ case "mcp-server.json":
108
+ return "MCP server manifest";
98
109
  case "skill.json":
99
110
  return "Skill manifest";
100
111
  case "pack.json":
101
112
  return "Pack manifest";
113
+ case "subagent.json":
114
+ return "Subagent manifest";
102
115
  default:
103
116
  return "Document";
104
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema-rule.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/shared/schema-rule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAAc,EACd,QAAkB,EAClB,IAAY,EACZ,MAA0B,EAC1B,KAAc,EACiC,EAAE;IACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE;QACvD,gBAAgB,EAAE,QAAQ;QAC1B,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAClF,CAAC,CAAC;AAEF,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAE/B,EAAuB,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,MAAc,EACd,QAAkB,EAClB,IAAY,EACZ,WAAgC,EAChC,KAAc,EACkB,EAAE;IAClC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,MAAM;YACN,QAAQ;YACR,OAAO,EACL,GAAG,sBAAsB,CAAC,IAAI,CAAC,sCAAsC,GAAG,KAAK;gBAC7E,UAAU,IAAI,0DAA0D;YAC1E,QAAQ,EAAE,EAAE,IAAI,EAAE;SACnB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAc,EAA8C,EAAE,CACnF,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAU,EAAE;IACtD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,YAAY;YACf,OAAO,gBAAgB,CAAC;QAC1B,KAAK,WAAW;YACd,OAAO,eAAe,CAAC;QACzB;YACE,OAAO,UAAU,CAAC;IACtB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"schema-rule.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/shared/schema-rule.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@
3
3
  * declared by `SkillManifestSchema`.
4
4
  *
5
5
  * The paired `-schema-valid` rule ignores excess properties by construction
6
- * (`onExcessProperty: "ignore"`); this rule surfaces them at warning severity
7
- * so newer-schema manifests can roll out ahead of registry deploys.
6
+ * (`onExcessProperty: "ignore"`); this rule rejects them so publish never
7
+ * silently drops unrecognized manifest data.
8
8
  *
9
9
  * Allowed-keys set is derived from `SkillManifestSchema.fields` — no
10
10
  * copy-paste of field names. A schema gain (or rename) automatically updates
@@ -3,8 +3,8 @@
3
3
  * declared by `SkillManifestSchema`.
4
4
  *
5
5
  * The paired `-schema-valid` rule ignores excess properties by construction
6
- * (`onExcessProperty: "ignore"`); this rule surfaces them at warning severity
7
- * so newer-schema manifests can roll out ahead of registry deploys.
6
+ * (`onExcessProperty: "ignore"`); this rule rejects them so publish never
7
+ * silently drops unrecognized manifest data.
8
8
  *
9
9
  * Allowed-keys set is derived from `SkillManifestSchema.fields` — no
10
10
  * copy-paste of field names. A schema gain (or rename) automatically updates
@@ -30,12 +30,12 @@ export const manifestKeysRecognizedRule = {
30
30
  id: RULE_ID,
31
31
  description: "skill.json uses only supported top-level fields.",
32
32
  kind: "advisory",
33
- severity: "warning",
33
+ severity: "error",
34
34
  check: (context) => {
35
35
  if (!context.subject.isNative) {
36
36
  return Effect.succeed([]);
37
37
  }
38
- return Effect.succeed(enumerateUnknownTopLevelKeys(RULE_ID, "warning", SKILL_JSON, allowedKeys, context.subject.skillJson));
38
+ return Effect.succeed(enumerateUnknownTopLevelKeys(RULE_ID, "error", SKILL_JSON, allowedKeys, context.subject.skillJson));
39
39
  },
40
40
  };
41
41
  //# sourceMappingURL=manifest-keys-recognized.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-keys-recognized.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill/manifest-keys-recognized.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEzF,MAAM,OAAO,GAAG,gCAAgC,CAAC;AACjD,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,WAAW,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,0BAA0B,GAAmC;IACxE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,kDAAkD;IAC/D,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;QACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CACnB,4BAA4B,CAC1B,OAAO,EACP,SAAS,EACT,UAAU,EACV,WAAW,EACX,OAAO,CAAC,OAAO,CAAC,SAAS,CAC1B,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"manifest-keys-recognized.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill/manifest-keys-recognized.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEzF,MAAM,OAAO,GAAG,gCAAgC,CAAC;AACjD,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,WAAW,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,0BAA0B,GAAmC;IACxE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,kDAAkD;IAC/D,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;QACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CACnB,4BAA4B,CAC1B,OAAO,EACP,OAAO,EACP,UAAU,EACV,WAAW,EACX,OAAO,CAAC,OAAO,CAAC,SAAS,CAC1B,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -10,7 +10,7 @@
10
10
  * | `skill/manifest-present` | error | — |
11
11
  * | `skill/frontmatter-parseable` | error | — |
12
12
  * | `skill/manifest-schema-valid` | error | — |
13
- * | `skill/manifest-keys-recognized` | warning | — |
13
+ * | `skill/manifest-keys-recognized` | error | — |
14
14
  *
15
15
  * All five ship `kind: "advisory"`. Native-vs-non-native applicability is
16
16
  * expressed via `check` early-return (no separate `applies` predicate); see
@@ -10,7 +10,7 @@
10
10
  * | `skill/manifest-present` | error | — |
11
11
  * | `skill/frontmatter-parseable` | error | — |
12
12
  * | `skill/manifest-schema-valid` | error | — |
13
- * | `skill/manifest-keys-recognized` | warning | — |
13
+ * | `skill/manifest-keys-recognized` | error | — |
14
14
  *
15
15
  * All five ship `kind: "advisory"`. Native-vs-non-native applicability is
16
16
  * expressed via `check` early-return (no separate `applies` predicate); see
@@ -0,0 +1,4 @@
1
+ import type { SubagentRuleContext } from "../../context.js";
2
+ import type { AdvisoryRule } from "../../rule.js";
3
+ export declare const manifestKeysRecognizedRule: AdvisoryRule<SubagentRuleContext>;
4
+ //# sourceMappingURL=manifest-keys-recognized.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-keys-recognized.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/subagent/manifest-keys-recognized.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AASlD,eAAO,MAAM,0BAA0B,EAAE,YAAY,CAAC,mBAAmB,CAexE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import * as Effect from "effect/Effect";
2
+ import { SubagentManifestSchema } from "../../../subagents/manifest-schema.js";
3
+ import { enumerateUnknownTopLevelKeys, structFieldKeys } from "../shared/schema-rule.js";
4
+ const RULE_ID = "subagent/manifest-keys-recognized";
5
+ const SUBAGENT_JSON = "subagent.json";
6
+ const allowedKeys = structFieldKeys(SubagentManifestSchema);
7
+ export const manifestKeysRecognizedRule = {
8
+ id: RULE_ID,
9
+ description: "subagent.json uses only supported top-level fields.",
10
+ kind: "advisory",
11
+ severity: "error",
12
+ check: (context) => Effect.succeed(enumerateUnknownTopLevelKeys(RULE_ID, "error", SUBAGENT_JSON, allowedKeys, context.subject.subagentJson)),
13
+ };
14
+ //# sourceMappingURL=manifest-keys-recognized.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-keys-recognized.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/subagent/manifest-keys-recognized.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEzF,MAAM,OAAO,GAAG,mCAAmC,CAAC;AACpD,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,MAAM,WAAW,GAAG,eAAe,CAAC,sBAAsB,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,0BAA0B,GAAsC;IAC3E,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,qDAAqD;IAClE,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,MAAM,CAAC,OAAO,CACZ,4BAA4B,CAC1B,OAAO,EACP,OAAO,EACP,aAAa,EACb,WAAW,EACX,OAAO,CAAC,OAAO,CAAC,YAAY,CAC7B,CACF;CACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { SubagentRuleContext } from "../../context.js";
2
+ import type { AdvisoryRule } from "../../rule.js";
3
+ export declare const manifestPresentRule: AdvisoryRule<SubagentRuleContext>;
4
+ //# sourceMappingURL=manifest-present.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-present.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/subagent/manifest-present.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAKnE,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,mBAAmB,CAqBjE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import * as Effect from "effect/Effect";
2
+ const RULE_ID = "subagent/manifest-present";
3
+ const SUBAGENT_JSON = "subagent.json";
4
+ export const manifestPresentRule = {
5
+ id: RULE_ID,
6
+ description: "Subagents include a root subagent.json manifest.",
7
+ kind: "advisory",
8
+ severity: "error",
9
+ check: (context) => Effect.map(context.files.exists(SUBAGENT_JSON), (present) => {
10
+ if (present) {
11
+ return [];
12
+ }
13
+ return [
14
+ {
15
+ kind: "advisory",
16
+ ruleId: RULE_ID,
17
+ severity: "error",
18
+ message: "subagent.json is missing. Create subagent.json with the required manifest fields (`owner`, `type`, `name`, `version`).",
19
+ location: { file: SUBAGENT_JSON },
20
+ },
21
+ ];
22
+ }),
23
+ };
24
+ //# sourceMappingURL=manifest-present.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-present.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/subagent/manifest-present.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,MAAM,OAAO,GAAG,2BAA2B,CAAC;AAC5C,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,MAAM,CAAC,MAAM,mBAAmB,GAAsC;IACpE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,kDAAkD;IAC/D,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAkC,EAAE;QAC1F,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL;gBACE,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,OAAO;gBACjB,OAAO,EACL,wHAAwH;gBAC1H,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;aAClC;SACF,CAAC;IACJ,CAAC,CAAC;CACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { SubagentRuleContext } from "../../context.js";
2
+ import type { AdvisoryRule } from "../../rule.js";
3
+ export declare const manifestSchemaValidRule: AdvisoryRule<SubagentRuleContext>;
4
+ //# sourceMappingURL=manifest-schema-valid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-schema-valid.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/subagent/manifest-schema-valid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAOlD,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,mBAAmB,CAarE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { SubagentManifestSchema } from "../../../subagents/manifest-schema.js";
2
+ import { schemaDecodeFindings } from "../shared/schema-rule.js";
3
+ const RULE_ID = "subagent/manifest-schema-valid";
4
+ const SUBAGENT_JSON = "subagent.json";
5
+ export const manifestSchemaValidRule = {
6
+ id: RULE_ID,
7
+ description: "subagent.json defines a valid subagent manifest.",
8
+ kind: "advisory",
9
+ severity: "error",
10
+ check: (context) => schemaDecodeFindings(RULE_ID, "error", SUBAGENT_JSON, SubagentManifestSchema, context.subject.subagentJson),
11
+ };
12
+ //# sourceMappingURL=manifest-schema-valid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-schema-valid.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/subagent/manifest-schema-valid.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,OAAO,GAAG,gCAAgC,CAAC;AACjD,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,MAAM,CAAC,MAAM,uBAAuB,GAAsC;IACxE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,kDAAkD;IAC/D,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,oBAAoB,CAClB,OAAO,EACP,OAAO,EACP,aAAa,EACb,sBAAsB,EACtB,OAAO,CAAC,OAAO,CAAC,YAAY,CAC7B;CACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { SubagentRuleContext } from "../context.js";
2
+ import type { LintRule } from "../rule.js";
3
+ export declare const subagentRules: ReadonlyArray<LintRule<SubagentRuleContext>>;
4
+ //# sourceMappingURL=subagent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../../../../src/unstable/lint/catalog/subagent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAK3C,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAItE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { registerLintRuleIds } from "../config.js";
2
+ import { manifestKeysRecognizedRule } from "./subagent/manifest-keys-recognized.js";
3
+ import { manifestPresentRule } from "./subagent/manifest-present.js";
4
+ import { manifestSchemaValidRule } from "./subagent/manifest-schema-valid.js";
5
+ export const subagentRules = [
6
+ manifestPresentRule,
7
+ manifestSchemaValidRule,
8
+ manifestKeysRecognizedRule,
9
+ ];
10
+ registerLintRuleIds(subagentRules.map((r) => r.id));
11
+ //# sourceMappingURL=subagent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../../../../src/unstable/lint/catalog/subagent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,MAAM,CAAC,MAAM,aAAa,GAAiD;IACzE,mBAAmB;IACnB,uBAAuB;IACvB,0BAA0B;CAC3B,CAAC;AAEF,mBAAmB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"skills-artifacts-correct.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/skills-artifacts-correct.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAGV,cAAc,EAEf,MAAM,eAAe,CAAC;AA4GvB,eAAO,MAAM,0BAA0B,EAAE,cAAc,CAAC,oBAAoB,CAyG3E,CAAC"}
1
+ {"version":3,"file":"skills-artifacts-correct.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/skills-artifacts-correct.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAGV,cAAc,EAEf,MAAM,eAAe,CAAC;AA6GvB,eAAO,MAAM,0BAA0B,EAAE,cAAc,CAAC,oBAAoB,CA6G3E,CAAC"}
@@ -29,6 +29,7 @@ import { isSameFinding } from "./helpers/finding.js";
29
29
  import { disableSkillOp, enableSkillOp } from "./helpers/install-ops.js";
30
30
  import { EMPTY_LINT_FINDINGS, EMPTY_OPERATIONS } from "./helpers/empty.js";
31
31
  import { isUniversalSkillsRelativeDir, resolveUniversalDirPresence, } from "../../../extensions/universal-skills-dir.js";
32
+ import { isConfigurableAgentId } from "../../../agents/types.js";
32
33
  const RULE_ID = "workspace/skills-artifacts-correct";
33
34
  const SETTINGS_REL = ".axm/settings.json";
34
35
  const enableFinding = (name, reason) => ({
@@ -117,7 +118,7 @@ export const skillsArtifactsCorrectRule = {
117
118
  return EMPTY_LINT_FINDINGS;
118
119
  }
119
120
  const knownAgents = yield* scoped.agents.known;
120
- const declaredAgents = knownAgents.filter((agent) => declaredAgentIds.has(agent.id));
121
+ const declaredAgents = knownAgents.filter((agent) => isConfigurableAgentId(agent.id) && declaredAgentIds.has(agent.id));
121
122
  const universalAgentIds = new Set(declaredAgents
122
123
  .filter((agent) => isUniversalSkillsRelativeDir(agent.skills.dir))
123
124
  .map((agent) => agent.id));
@@ -154,7 +155,7 @@ export const skillsArtifactsCorrectRule = {
154
155
  return EMPTY_OPERATIONS;
155
156
  }
156
157
  const knownAgents = yield* scoped.agents.known;
157
- const declaredAgents = knownAgents.filter((agent) => declaredAgentIds.has(agent.id));
158
+ const declaredAgents = knownAgents.filter((agent) => isConfigurableAgentId(agent.id) && declaredAgentIds.has(agent.id));
158
159
  const universalAgentIds = new Set(declaredAgents
159
160
  .filter((agent) => isUniversalSkillsRelativeDir(agent.skills.dir))
160
161
  .map((agent) => agent.id));
@@ -1 +1 @@
1
- {"version":3,"file":"skills-artifacts-correct.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/skills-artifacts-correct.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills-artifacts-correct.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/skills-artifacts-correct.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AASxC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,OAAO,GAAG,oCAAoC,CAAC;AACrD,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAE1C,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,MAAc,EAAsB,EAAE,CAAC,CAAC;IAC3E,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,OAAO;IACjB,OAAO,EACL,UAAU,IAAI,6FAA6F,MAAM,IAAI;QACrH,mEAAmE;IACrE,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,MAAc,EAAsB,EAAE,CAAC,CAAC;IAC5E,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,OAAO;IACjB,OAAO,EACL,UAAU,IAAI,iGAAiG,MAAM,IAAI;QACzH,sDAAsD;IACxD,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,OAAe,EAAsB,EAAE,CAAC,CAAC;IAClF,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,OAAO;IACjB,OAAO,EACL,UAAU,IAAI,kEAAkE,OAAO,IAAI;QAC3F,kFAAkF;IACpF,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;CACjC,CAAC,CAAC;AAOH,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,MAAc,EAAmB,EAAE,CAAC,CAAC;IAChF,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,OAAO;IACjB,OAAO,EACL,wBAAwB,IAAI,gEAAgE,MAAM,IAAI;QACtG,iGAAiG;IACnG,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,CAChC,gBAME,EACgC,EAAE;IACpC,MAAM,UAAU,GAA6B,EAAE,CAAC;IAEhD,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,gBAAgB,EAAE,CAAC;QACzF,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,UAAU,CAAC,IAAI,CAAC;oBACd,OAAO,EAAE,qBAAqB,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC/D,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,IAAI,CAAC;oBACd,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtD,SAAS,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;iBACnC,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,mBAAmB,CAC1B,IAAI,EACJ,uBAAuB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpG;gBACD,SAAS,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;aACnC,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvD,SAAS,EAAE,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAyC;IAC9E,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,4EAA4E;IACzF,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;QACjC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;YACrC,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC5E,IAAI,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CACvC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAC7E,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,cAAc;aACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,4BAA4B,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACjE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAC5B,CAAC;QACF,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QACjD,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,kBAAkB,CAAC,IAAI,KAAK,aAAa,CAAC;YAC/D,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5C,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CACxE,CACF,CAAC;YACF,MAAM,SAAS,GAAG,2BAA2B,CAC3C,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACrF,iBAAiB,CAClB,CAAC;YACF,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI;gBAClB,OAAO,EAAE,GAAG,CAAC,UAAU,KAAK,SAAS;gBACrC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBACtE,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBACvE,QAAQ;aACT,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;QAC/D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAe,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC;IACJ,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;QACjC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;YACrC,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC5E,IAAI,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CACvC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAC7E,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,cAAc;aACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,4BAA4B,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACjE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAC5B,CAAC;QACF,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QACjD,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,kBAAkB,CAAC,IAAI,KAAK,aAAa,CAAC;YAC/D,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5C,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CACxE,CACF,CAAC;YACF,MAAM,SAAS,GAAG,2BAA2B,CAC3C,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACrF,iBAAiB,CAClB,CAAC;YACF,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI;gBAClB,OAAO,EAAE,GAAG,CAAC,UAAU,KAAK,SAAS;gBACrC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBACtE,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBACvE,QAAQ;aACT,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAChE,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa;YACxC,SAAS,CAAC,SAAS,KAAK,SAAS;YACjC,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAC5C,CAAC;QACF,OAAO,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC,CAAC;CACL,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * `workspace/skills-universal-artifact-present` — each enabled managed skill
3
- * has the workspace-level `.agents/skills/<name>` artifact.
3
+ * targets the synthetic universal agent.
4
4
  *
5
5
  * @experimental This API is unstable and may change without notice.
6
6
  * @packageDocumentation
@@ -1 +1 @@
1
- {"version":3,"file":"skills-universal-artifact-present.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/skills-universal-artifact-present.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAsB,cAAc,EAAe,MAAM,eAAe,CAAC;AA4DrF,eAAO,MAAM,kCAAkC,EAAE,cAAc,CAAC,oBAAoB,CA+BnF,CAAC"}
1
+ {"version":3,"file":"skills-universal-artifact-present.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/skills-universal-artifact-present.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAsB,cAAc,EAAe,MAAM,eAAe,CAAC;AAiDrF,eAAO,MAAM,kCAAkC,EAAE,cAAc,CAAC,oBAAoB,CAmBnF,CAAC"}
@@ -1,13 +1,12 @@
1
1
  /**
2
2
  * `workspace/skills-universal-artifact-present` — each enabled managed skill
3
- * has the workspace-level `.agents/skills/<name>` artifact.
3
+ * targets the synthetic universal agent.
4
4
  *
5
5
  * @experimental This API is unstable and may change without notice.
6
6
  * @packageDocumentation
7
7
  */
8
8
  import * as Effect from "effect/Effect";
9
9
  import * as Option from "effect/Option";
10
- import { isUniversalSkillsRelativeDir } from "../../../extensions/universal-skills-dir.js";
11
10
  import { isSameFinding } from "./helpers/finding.js";
12
11
  import { enableSkillOp } from "./helpers/install-ops.js";
13
12
  import { EMPTY_OPERATIONS } from "./helpers/empty.js";
@@ -17,21 +16,17 @@ const missingFinding = (name) => ({
17
16
  kind: "autofixable",
18
17
  ruleId: RULE_ID,
19
18
  severity: "error",
20
- message: `Skill '${name}' is enabled, but it is missing from the universal .agents/skills directory. ` +
21
- "Run `axm lint --fix` to materialize the universal skill artifact.",
19
+ message: `Skill '${name}' is enabled, but its lockfile entry does not target the universal agent. ` +
20
+ "Run `axm lint --fix` to reconcile universal skill materialization.",
22
21
  location: { file: LOCKFILE_REL },
23
22
  });
24
- const collectUniversalArtifactViolations = (rows, universalAgentIds) => {
23
+ const collectUniversalArtifactViolations = (rows) => {
25
24
  const violations = [];
26
25
  for (const row of rows) {
27
26
  if (row.activation !== "enabled" || Option.isNone(row.resolved)) {
28
27
  continue;
29
28
  }
30
- const present = row.actual.some((actual) => actual.hasSkillMd &&
31
- actual.origin._tag === "agent-skill-dir" &&
32
- actual.origin.agentId !== undefined &&
33
- universalAgentIds.has(actual.origin.agentId));
34
- if (present) {
29
+ if (row.resolved.value.lockEntry.agents.includes("universal")) {
35
30
  continue;
36
31
  }
37
32
  violations.push({
@@ -43,25 +38,17 @@ const collectUniversalArtifactViolations = (rows, universalAgentIds) => {
43
38
  };
44
39
  export const skillsUniversalArtifactPresentRule = {
45
40
  id: RULE_ID,
46
- description: "Enabled managed skills have a workspace-level universal artifact.",
41
+ description: "Enabled managed skills target the universal materialization agent.",
47
42
  kind: "autofixing",
48
43
  severity: "error",
49
44
  check: (context) => Effect.gen(function* () {
50
- const knownAgents = yield* context.workspace.agents.known;
51
- const universalAgentIds = new Set(knownAgents
52
- .filter((agent) => isUniversalSkillsRelativeDir(agent.skills.dir))
53
- .map((agent) => agent.id));
54
45
  const installed = yield* context.workspace.skills.installed;
55
- const violations = collectUniversalArtifactViolations(installed, universalAgentIds);
46
+ const violations = collectUniversalArtifactViolations(installed);
56
47
  return violations.map((violation) => violation.finding);
57
48
  }),
58
49
  fix: (context, finding) => Effect.gen(function* () {
59
- const knownAgents = yield* context.workspace.agents.known;
60
- const universalAgentIds = new Set(knownAgents
61
- .filter((agent) => isUniversalSkillsRelativeDir(agent.skills.dir))
62
- .map((agent) => agent.id));
63
50
  const installed = yield* context.workspace.skills.installed;
64
- const violation = collectUniversalArtifactViolations(installed, universalAgentIds).find((candidate) => isSameFinding(candidate.finding, finding));
51
+ const violation = collectUniversalArtifactViolations(installed).find((candidate) => isSameFinding(candidate.finding, finding));
65
52
  return violation === undefined ? EMPTY_OPERATIONS : [violation.operation];
66
53
  }),
67
54
  };
@@ -1 +1 @@
1
- {"version":3,"file":"skills-universal-artifact-present.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/skills-universal-artifact-present.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills-universal-artifact-present.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/skills-universal-artifact-present.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,OAAO,GAAG,6CAA6C,CAAC;AAC9D,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAE1C,MAAM,cAAc,GAAG,CAAC,IAAY,EAAsB,EAAE,CAAC,CAAC;IAC5D,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,OAAO;IACjB,OAAO,EACL,UAAU,IAAI,4EAA4E;QAC1F,oEAAoE;IACtE,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;CACjC,CAAC,CAAC;AAOH,MAAM,kCAAkC,GAAG,CACzC,IAME,EACyC,EAAE;IAC7C,MAAM,UAAU,GAAsC,EAAE,CAAC;IACzD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9D,SAAS;QACX,CAAC;QACD,UAAU,CAAC,IAAI,CAAC;YACd,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YACrC,SAAS,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAyC;IACtF,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,oEAAoE;IACjF,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QAC5D,MAAM,UAAU,GAAG,kCAAkC,CAAC,SAAS,CAAC,CAAC;QACjE,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAe,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC;IACJ,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QAC5D,MAAM,SAAS,GAAG,kCAAkC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACjF,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAC1C,CAAC;QACF,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC,CAAC;CACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"interpret-ops.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace-fixtures/interpret-ops.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,qCAAqC,CAAC;AAG7C,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,eAAO,MAAM,mBAAmB,QAAO,cAOrC,CAAC;AAiJH,eAAO,MAAM,iBAAiB,GAAI,OAAO,cAAc,EAAE,QAAQ,kBAAkB,KAAG,IAoDrF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,cAAc,EAAE,QAAQ,oBAAoB,KAAG,IAsBzF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,cAAc,EAAE,QAAQ,iBAAiB,KAAG,IA4BnF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,OAAO,cAAc,EAAE,QAAQ,kBAAkB,KAAG,IAwBrF,CAAC;AAwBF,eAAO,MAAM,gBAAgB,GAAI,OAAO,cAAc,EAAE,QAAQ,iBAAiB,KAAG,IAyBnF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,cAAc,EAAE,QAAQ,mBAAmB,KAAG,IAUvF,CAAC;AAkCF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,cAAc,EACrB,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,IA4CF,CAAC"}
1
+ {"version":3,"file":"interpret-ops.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace-fixtures/interpret-ops.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,qCAAqC,CAAC;AAG7C,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,eAAO,MAAM,mBAAmB,QAAO,cAOrC,CAAC;AA0IH,eAAO,MAAM,iBAAiB,GAAI,OAAO,cAAc,EAAE,QAAQ,kBAAkB,KAAG,IA4CrF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,cAAc,EAAE,QAAQ,oBAAoB,KAAG,IAsBzF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,cAAc,EAAE,QAAQ,iBAAiB,KAAG,IA2BnF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,OAAO,cAAc,EAAE,QAAQ,kBAAkB,KAAG,IAsBrF,CAAC;AAwBF,eAAO,MAAM,gBAAgB,GAAI,OAAO,cAAc,EAAE,QAAQ,iBAAiB,KAAG,IAyBnF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,cAAc,EAAE,QAAQ,mBAAmB,KAAG,IAUvF,CAAC;AAkCF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,cAAc,EACrB,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,IA4CF,CAAC"}
@@ -70,7 +70,7 @@ const declaredAgents = (settings) => {
70
70
  return Object.values(AGENTS).filter((a) => ids.has(a.id));
71
71
  };
72
72
  const artifactPath = (agent, skillName) => `${agent.skills.dir}/${skillName}`;
73
- const universalArtifactPath = (skillName) => `.agents/skills/${skillName}`;
73
+ const universalSkillPath = (skillName) => `.agents/skills/${skillName}`;
74
74
  const registrySkillProbe = (owner, name) => `.axm/extensions/${owner}/skills/${name}/src/SKILL.md`;
75
75
  const externalSkillProbe = (name) => `.axm/extensions/external/skills/${name}/SKILL.md`;
76
76
  const registryPackProbe = (owner, name) => `.axm/extensions/${owner}/packs/${name}/pack.json`;
@@ -110,14 +110,10 @@ export const applyInstallSkill = (state, intent) => {
110
110
  resolvedVersion: parsed.versionRange ?? "0.0.0",
111
111
  integrity: "sha512-stub",
112
112
  sourceName: "default",
113
- agents: agents.map((a) => a.id),
113
+ agents: ["universal", ...agents.map((a) => a.id)],
114
114
  installedAt: FIXED_NOW_ISO,
115
115
  updatedAt: FIXED_NOW_ISO,
116
116
  sourceHash: "stub-source-hash",
117
- universalArtifact: {
118
- path: universalArtifactPath(intent.name),
119
- integrity: "stub-source-hash",
120
- },
121
117
  };
122
118
  state.existingPaths.add(registrySkillProbe(parsed.owner, parsed.name));
123
119
  }
@@ -125,20 +121,16 @@ export const applyInstallSkill = (state, intent) => {
125
121
  newSkills[intent.name] = {
126
122
  type: "local",
127
123
  path: intent.source,
128
- agents: agents.map((a) => a.id),
124
+ agents: ["universal", ...agents.map((a) => a.id)],
129
125
  installedAt: FIXED_NOW_ISO,
130
126
  updatedAt: FIXED_NOW_ISO,
131
127
  sourceHash: "stub-source-hash",
132
- universalArtifact: {
133
- path: universalArtifactPath(intent.name),
134
- integrity: "stub-source-hash",
135
- },
136
128
  };
137
129
  state.existingPaths.add(externalSkillProbe(intent.name));
138
130
  }
139
131
  state.lockfile = { ...lockfile, skills: newSkills };
140
132
  if (enabled) {
141
- state.existingPaths.add(universalArtifactPath(intent.name));
133
+ state.existingPaths.add(universalSkillPath(intent.name));
142
134
  pushListing(state, ".agents/skills", intent.name);
143
135
  for (const agent of agents) {
144
136
  const path = artifactPath(agent, intent.name);
@@ -165,7 +157,7 @@ export const applyUninstallSkill = (state, intent) => {
165
157
  state.existingPaths.delete(path);
166
158
  removeFromListing(state, agent.skills.dir, intent.name);
167
159
  }
168
- state.existingPaths.delete(universalArtifactPath(intent.name));
160
+ state.existingPaths.delete(universalSkillPath(intent.name));
169
161
  removeFromListing(state, ".agents/skills", intent.name);
170
162
  };
171
163
  export const applyEnableSkill = (state, intent) => {
@@ -178,15 +170,14 @@ export const applyEnableSkill = (state, intent) => {
178
170
  ...lockfile.skills,
179
171
  [intent.name]: {
180
172
  ...entry,
181
- universalArtifact: {
182
- path: universalArtifactPath(intent.name),
183
- integrity: entry.sourceHash ?? "stub-source-hash",
184
- },
173
+ agents: entry.agents.includes("universal")
174
+ ? entry.agents
175
+ : ["universal", ...entry.agents],
185
176
  },
186
177
  },
187
178
  };
188
179
  }
189
- state.existingPaths.add(universalArtifactPath(intent.name));
180
+ state.existingPaths.add(universalSkillPath(intent.name));
190
181
  pushListing(state, ".agents/skills", intent.name);
191
182
  const agents = declaredAgents(asSettings(state.settings));
192
183
  for (const agent of agents) {
@@ -200,17 +191,15 @@ export const applyDisableSkill = (state, intent) => {
200
191
  const lockfile = asLockfile(state.lockfile);
201
192
  const entry = lockfile.skills[intent.name];
202
193
  if (entry !== undefined) {
203
- const { universalArtifact: _universalArtifact, ...entryWithoutUniversal } = entry;
204
- void _universalArtifact;
205
194
  state.lockfile = {
206
195
  ...lockfile,
207
196
  skills: {
208
197
  ...lockfile.skills,
209
- [intent.name]: entryWithoutUniversal,
198
+ [intent.name]: { ...entry, agents: [] },
210
199
  },
211
200
  };
212
201
  }
213
- state.existingPaths.delete(universalArtifactPath(intent.name));
202
+ state.existingPaths.delete(universalSkillPath(intent.name));
214
203
  removeFromListing(state, ".agents/skills", intent.name);
215
204
  const agents = declaredAgents(asSettings(state.settings));
216
205
  for (const agent of agents) {