@agentxm/client-core 0.2.0 → 0.3.2

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 (362) hide show
  1. package/dist/src/unstable/commands/operations/disable.d.ts +2 -2
  2. package/dist/src/unstable/commands/operations/disable.d.ts.map +1 -1
  3. package/dist/src/unstable/commands/operations/enable.d.ts +2 -2
  4. package/dist/src/unstable/commands/operations/enable.d.ts.map +1 -1
  5. package/dist/src/unstable/commands/operations/install.d.ts +1 -1
  6. package/dist/src/unstable/commands/operations/install.d.ts.map +1 -1
  7. package/dist/src/unstable/commands/operations/new-command.d.ts +2 -2
  8. package/dist/src/unstable/commands/operations/new-command.d.ts.map +1 -1
  9. package/dist/src/unstable/commands/operations/publish.d.ts +1 -1
  10. package/dist/src/unstable/commands/operations/publish.d.ts.map +1 -1
  11. package/dist/src/unstable/commands/operations/uninstall.d.ts +1 -1
  12. package/dist/src/unstable/commands/operations/uninstall.d.ts.map +1 -1
  13. package/dist/src/unstable/extensions/operations.d.ts +1 -1
  14. package/dist/src/unstable/extensions/operations.d.ts.map +1 -1
  15. package/dist/src/unstable/lint/catalog/index.d.ts +39 -0
  16. package/dist/src/unstable/lint/catalog/index.d.ts.map +1 -0
  17. package/dist/src/unstable/lint/catalog/index.js +49 -0
  18. package/dist/src/unstable/lint/catalog/index.js.map +1 -0
  19. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.d.ts +31 -0
  20. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.d.ts.map +1 -0
  21. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.js +41 -0
  22. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.js.map +1 -0
  23. package/dist/src/unstable/lint/catalog/pack/manifest-present.d.ts +18 -0
  24. package/dist/src/unstable/lint/catalog/pack/manifest-present.d.ts.map +1 -0
  25. package/dist/src/unstable/lint/catalog/pack/manifest-present.js +41 -0
  26. package/dist/src/unstable/lint/catalog/pack/manifest-present.js.map +1 -0
  27. package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.d.ts +26 -0
  28. package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.d.ts.map +1 -0
  29. package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.js +34 -0
  30. package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.js.map +1 -0
  31. package/dist/src/unstable/lint/catalog/pack-accessor/contexts.d.ts +61 -0
  32. package/dist/src/unstable/lint/catalog/pack-accessor/contexts.d.ts.map +1 -0
  33. package/dist/src/unstable/lint/catalog/pack-accessor/contexts.js +46 -0
  34. package/dist/src/unstable/lint/catalog/pack-accessor/contexts.js.map +1 -0
  35. package/dist/src/unstable/lint/catalog/pack-accessor/platform.d.ts +53 -0
  36. package/dist/src/unstable/lint/catalog/pack-accessor/platform.d.ts.map +1 -0
  37. package/dist/src/unstable/lint/catalog/pack-accessor/platform.js +90 -0
  38. package/dist/src/unstable/lint/catalog/pack-accessor/platform.js.map +1 -0
  39. package/dist/src/unstable/lint/catalog/pack-accessor/vft.d.ts +60 -0
  40. package/dist/src/unstable/lint/catalog/pack-accessor/vft.d.ts.map +1 -0
  41. package/dist/src/unstable/lint/catalog/pack-accessor/vft.js +85 -0
  42. package/dist/src/unstable/lint/catalog/pack-accessor/vft.js.map +1 -0
  43. package/dist/src/unstable/lint/catalog/pack.d.ts +37 -0
  44. package/dist/src/unstable/lint/catalog/pack.d.ts.map +1 -0
  45. package/dist/src/unstable/lint/catalog/pack.js +47 -0
  46. package/dist/src/unstable/lint/catalog/pack.js.map +1 -0
  47. package/dist/src/unstable/lint/catalog/shared/schema-rule.d.ts +59 -0
  48. package/dist/src/unstable/lint/catalog/shared/schema-rule.d.ts.map +1 -0
  49. package/dist/src/unstable/lint/catalog/shared/schema-rule.js +99 -0
  50. package/dist/src/unstable/lint/catalog/shared/schema-rule.js.map +1 -0
  51. package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.d.ts +31 -0
  52. package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.d.ts.map +1 -0
  53. package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.js +151 -0
  54. package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.js.map +1 -0
  55. package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.d.ts +26 -0
  56. package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.d.ts.map +1 -0
  57. package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.js +41 -0
  58. package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.js.map +1 -0
  59. package/dist/src/unstable/lint/catalog/skill/manifest-present.d.ts +18 -0
  60. package/dist/src/unstable/lint/catalog/skill/manifest-present.d.ts.map +1 -0
  61. package/dist/src/unstable/lint/catalog/skill/manifest-present.js +46 -0
  62. package/dist/src/unstable/lint/catalog/skill/manifest-present.js.map +1 -0
  63. package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.d.ts +22 -0
  64. package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.d.ts.map +1 -0
  65. package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.js +37 -0
  66. package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.js.map +1 -0
  67. package/dist/src/unstable/lint/catalog/skill/skill-md-present.d.ts +17 -0
  68. package/dist/src/unstable/lint/catalog/skill/skill-md-present.d.ts.map +1 -0
  69. package/dist/src/unstable/lint/catalog/skill/skill-md-present.js +38 -0
  70. package/dist/src/unstable/lint/catalog/skill/skill-md-present.js.map +1 -0
  71. package/dist/src/unstable/lint/catalog/skill-accessor/contexts.d.ts +65 -0
  72. package/dist/src/unstable/lint/catalog/skill-accessor/contexts.d.ts.map +1 -0
  73. package/dist/src/unstable/lint/catalog/skill-accessor/contexts.js +50 -0
  74. package/dist/src/unstable/lint/catalog/skill-accessor/contexts.js.map +1 -0
  75. package/dist/src/unstable/lint/catalog/skill-accessor/platform.d.ts +52 -0
  76. package/dist/src/unstable/lint/catalog/skill-accessor/platform.d.ts.map +1 -0
  77. package/dist/src/unstable/lint/catalog/skill-accessor/platform.js +89 -0
  78. package/dist/src/unstable/lint/catalog/skill-accessor/platform.js.map +1 -0
  79. package/dist/src/unstable/lint/catalog/skill-accessor/vft.d.ts +58 -0
  80. package/dist/src/unstable/lint/catalog/skill-accessor/vft.d.ts.map +1 -0
  81. package/dist/src/unstable/lint/catalog/skill-accessor/vft.js +83 -0
  82. package/dist/src/unstable/lint/catalog/skill-accessor/vft.js.map +1 -0
  83. package/dist/src/unstable/lint/catalog/skill.d.ts +38 -0
  84. package/dist/src/unstable/lint/catalog/skill.d.ts.map +1 -0
  85. package/dist/src/unstable/lint/catalog/skill.js +52 -0
  86. package/dist/src/unstable/lint/catalog/skill.js.map +1 -0
  87. package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.d.ts +23 -0
  88. package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.d.ts.map +1 -0
  89. package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.js +75 -0
  90. package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.js.map +1 -0
  91. package/dist/src/unstable/lint/catalog/workspace/agents-recognized.d.ts +23 -0
  92. package/dist/src/unstable/lint/catalog/workspace/agents-recognized.d.ts.map +1 -0
  93. package/dist/src/unstable/lint/catalog/workspace/agents-recognized.js +76 -0
  94. package/dist/src/unstable/lint/catalog/workspace/agents-recognized.js.map +1 -0
  95. package/dist/src/unstable/lint/catalog/workspace/helpers/empty.d.ts +18 -0
  96. package/dist/src/unstable/lint/catalog/workspace/helpers/empty.d.ts.map +1 -0
  97. package/dist/src/unstable/lint/catalog/workspace/helpers/empty.js +16 -0
  98. package/dist/src/unstable/lint/catalog/workspace/helpers/empty.js.map +1 -0
  99. package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.d.ts +133 -0
  100. package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.d.ts.map +1 -0
  101. package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.js +149 -0
  102. package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.js.map +1 -0
  103. package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.d.ts +25 -0
  104. package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.d.ts.map +1 -0
  105. package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.js +30 -0
  106. package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.js.map +1 -0
  107. package/dist/src/unstable/lint/catalog/workspace/initialized.d.ts +22 -0
  108. package/dist/src/unstable/lint/catalog/workspace/initialized.d.ts.map +1 -0
  109. package/dist/src/unstable/lint/catalog/workspace/initialized.js +55 -0
  110. package/dist/src/unstable/lint/catalog/workspace/initialized.js.map +1 -0
  111. package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.d.ts +33 -0
  112. package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.d.ts.map +1 -0
  113. package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.js +125 -0
  114. package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.js.map +1 -0
  115. package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.d.ts +19 -0
  116. package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.d.ts.map +1 -0
  117. package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.js +145 -0
  118. package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.js.map +1 -0
  119. package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.d.ts +17 -0
  120. package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.d.ts.map +1 -0
  121. package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.js +107 -0
  122. package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.js.map +1 -0
  123. package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.d.ts +22 -0
  124. package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.d.ts.map +1 -0
  125. package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.js +163 -0
  126. package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.js.map +1 -0
  127. package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.d.ts +28 -0
  128. package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.d.ts.map +1 -0
  129. package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.js +67 -0
  130. package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.js.map +1 -0
  131. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.d.ts +30 -0
  132. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.d.ts.map +1 -0
  133. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.js +232 -0
  134. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.js.map +1 -0
  135. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.d.ts +26 -0
  136. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.d.ts.map +1 -0
  137. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.js +129 -0
  138. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.js.map +1 -0
  139. package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.d.ts +26 -0
  140. package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.d.ts.map +1 -0
  141. package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.js +151 -0
  142. package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.js.map +1 -0
  143. package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.d.ts +29 -0
  144. package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.d.ts.map +1 -0
  145. package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.js +149 -0
  146. package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.js.map +1 -0
  147. package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.d.ts +29 -0
  148. package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.d.ts.map +1 -0
  149. package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.js +242 -0
  150. package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.js.map +1 -0
  151. package/dist/src/unstable/lint/catalog/workspace-accessor/contexts.d.ts +141 -0
  152. package/dist/src/unstable/lint/catalog/workspace-accessor/contexts.d.ts.map +1 -0
  153. package/dist/src/unstable/lint/catalog/workspace-accessor/contexts.js +123 -0
  154. package/dist/src/unstable/lint/catalog/workspace-accessor/contexts.js.map +1 -0
  155. package/dist/src/unstable/lint/catalog/workspace-accessor/interpret-ops.d.ts +38 -0
  156. package/dist/src/unstable/lint/catalog/workspace-accessor/interpret-ops.d.ts.map +1 -0
  157. package/dist/src/unstable/lint/catalog/workspace-accessor/interpret-ops.js +311 -0
  158. package/dist/src/unstable/lint/catalog/workspace-accessor/interpret-ops.js.map +1 -0
  159. package/dist/src/unstable/lint/catalog/workspace-accessor/platform.d.ts +60 -0
  160. package/dist/src/unstable/lint/catalog/workspace-accessor/platform.d.ts.map +1 -0
  161. package/dist/src/unstable/lint/catalog/workspace-accessor/platform.js +201 -0
  162. package/dist/src/unstable/lint/catalog/workspace-accessor/platform.js.map +1 -0
  163. package/dist/src/unstable/lint/catalog/workspace-accessor/test-state.d.ts +65 -0
  164. package/dist/src/unstable/lint/catalog/workspace-accessor/test-state.d.ts.map +1 -0
  165. package/dist/src/unstable/lint/catalog/workspace-accessor/test-state.js +95 -0
  166. package/dist/src/unstable/lint/catalog/workspace-accessor/test-state.js.map +1 -0
  167. package/dist/src/unstable/lint/catalog/workspace.d.ts +47 -0
  168. package/dist/src/unstable/lint/catalog/workspace.d.ts.map +1 -0
  169. package/dist/src/unstable/lint/catalog/workspace.js +80 -0
  170. package/dist/src/unstable/lint/catalog/workspace.js.map +1 -0
  171. package/dist/src/unstable/lint/cli.d.ts +297 -0
  172. package/dist/src/unstable/lint/cli.d.ts.map +1 -0
  173. package/dist/src/unstable/lint/cli.js +388 -0
  174. package/dist/src/unstable/lint/cli.js.map +1 -0
  175. package/dist/src/unstable/lint/compose-path.d.ts +27 -0
  176. package/dist/src/unstable/lint/compose-path.d.ts.map +1 -0
  177. package/dist/src/unstable/lint/compose-path.js +61 -0
  178. package/dist/src/unstable/lint/compose-path.js.map +1 -0
  179. package/dist/src/unstable/lint/config.d.ts +103 -0
  180. package/dist/src/unstable/lint/config.d.ts.map +1 -0
  181. package/dist/src/unstable/lint/config.js +137 -0
  182. package/dist/src/unstable/lint/config.js.map +1 -0
  183. package/dist/src/unstable/lint/context.d.ts +265 -0
  184. package/dist/src/unstable/lint/context.d.ts.map +1 -0
  185. package/dist/src/unstable/lint/context.js +21 -0
  186. package/dist/src/unstable/lint/context.js.map +1 -0
  187. package/dist/src/unstable/lint/evaluate.d.ts +68 -0
  188. package/dist/src/unstable/lint/evaluate.d.ts.map +1 -0
  189. package/dist/src/unstable/lint/evaluate.js +147 -0
  190. package/dist/src/unstable/lint/evaluate.js.map +1 -0
  191. package/dist/src/unstable/lint/index.d.ts +28 -0
  192. package/dist/src/unstable/lint/index.d.ts.map +1 -0
  193. package/dist/src/unstable/lint/index.js +35 -0
  194. package/dist/src/unstable/lint/index.js.map +1 -0
  195. package/dist/src/unstable/lint/issues-to-findings.d.ts +35 -0
  196. package/dist/src/unstable/lint/issues-to-findings.d.ts.map +1 -0
  197. package/dist/src/unstable/lint/issues-to-findings.js +97 -0
  198. package/dist/src/unstable/lint/issues-to-findings.js.map +1 -0
  199. package/dist/src/unstable/lint/rule.d.ts +139 -0
  200. package/dist/src/unstable/lint/rule.d.ts.map +1 -0
  201. package/dist/src/unstable/lint/rule.js +25 -0
  202. package/dist/src/unstable/lint/rule.js.map +1 -0
  203. package/dist/src/unstable/mcp-servers/operations/install.d.ts +1 -1
  204. package/dist/src/unstable/mcp-servers/operations/install.d.ts.map +1 -1
  205. package/dist/src/unstable/mcp-servers/operations/publish.d.ts +1 -1
  206. package/dist/src/unstable/mcp-servers/operations/publish.d.ts.map +1 -1
  207. package/dist/src/unstable/mcp-servers/operations/uninstall.d.ts +1 -1
  208. package/dist/src/unstable/mcp-servers/operations/uninstall.d.ts.map +1 -1
  209. package/dist/src/unstable/packs/operations/add-to-pack.d.ts +2 -2
  210. package/dist/src/unstable/packs/operations/add-to-pack.d.ts.map +1 -1
  211. package/dist/src/unstable/packs/operations/install.d.ts +2 -2
  212. package/dist/src/unstable/packs/operations/install.d.ts.map +1 -1
  213. package/dist/src/unstable/packs/operations/new-pack.d.ts +2 -2
  214. package/dist/src/unstable/packs/operations/new-pack.d.ts.map +1 -1
  215. package/dist/src/unstable/packs/operations/publish.d.ts +2 -2
  216. package/dist/src/unstable/packs/operations/publish.d.ts.map +1 -1
  217. package/dist/src/unstable/packs/operations/remove-from-pack.d.ts +2 -2
  218. package/dist/src/unstable/packs/operations/remove-from-pack.d.ts.map +1 -1
  219. package/dist/src/unstable/packs/operations/uninstall.d.ts +2 -2
  220. package/dist/src/unstable/packs/operations/uninstall.d.ts.map +1 -1
  221. package/dist/src/unstable/packs/operations/unpack.d.ts +2 -2
  222. package/dist/src/unstable/packs/operations/unpack.d.ts.map +1 -1
  223. package/dist/src/unstable/{workspace → plan}/apply-plan.d.ts +9 -0
  224. package/dist/src/unstable/plan/apply-plan.d.ts.map +1 -0
  225. package/dist/src/unstable/{workspace → plan}/apply-plan.js +10 -1
  226. package/dist/src/unstable/plan/apply-plan.js.map +1 -0
  227. package/dist/src/unstable/plan/index.d.ts +24 -0
  228. package/dist/src/unstable/plan/index.d.ts.map +1 -0
  229. package/dist/src/unstable/plan/index.js +28 -0
  230. package/dist/src/unstable/plan/index.js.map +1 -0
  231. package/dist/src/unstable/{workspace → plan}/plan.d.ts +6 -0
  232. package/dist/src/unstable/plan/plan.d.ts.map +1 -0
  233. package/dist/src/unstable/{workspace → plan}/plan.js +6 -0
  234. package/dist/src/unstable/plan/plan.js.map +1 -0
  235. package/dist/src/unstable/{workspace → plan}/resolve-plan.d.ts +30 -2
  236. package/dist/src/unstable/plan/resolve-plan.d.ts.map +1 -0
  237. package/dist/src/unstable/{workspace → plan}/resolve-plan.js +37 -6
  238. package/dist/src/unstable/plan/resolve-plan.js.map +1 -0
  239. package/dist/src/unstable/publish/manifest-policy.d.ts +8 -8
  240. package/dist/src/unstable/settings/index.d.ts +2 -0
  241. package/dist/src/unstable/settings/index.d.ts.map +1 -1
  242. package/dist/src/unstable/settings/index.js +1 -0
  243. package/dist/src/unstable/settings/index.js.map +1 -1
  244. package/dist/src/unstable/settings/schema.d.ts +3 -0
  245. package/dist/src/unstable/settings/schema.d.ts.map +1 -1
  246. package/dist/src/unstable/settings/schema.js +3 -0
  247. package/dist/src/unstable/settings/schema.js.map +1 -1
  248. package/dist/src/unstable/settings/settings.d.ts +10 -0
  249. package/dist/src/unstable/settings/settings.d.ts.map +1 -1
  250. package/dist/src/unstable/skills/operations/copy.d.ts +2 -2
  251. package/dist/src/unstable/skills/operations/copy.d.ts.map +1 -1
  252. package/dist/src/unstable/skills/operations/disable.d.ts +2 -2
  253. package/dist/src/unstable/skills/operations/disable.d.ts.map +1 -1
  254. package/dist/src/unstable/skills/operations/enable.d.ts +2 -2
  255. package/dist/src/unstable/skills/operations/enable.d.ts.map +1 -1
  256. package/dist/src/unstable/skills/operations/install.d.ts +2 -2
  257. package/dist/src/unstable/skills/operations/install.d.ts.map +1 -1
  258. package/dist/src/unstable/skills/operations/new-skill.d.ts +2 -2
  259. package/dist/src/unstable/skills/operations/new-skill.d.ts.map +1 -1
  260. package/dist/src/unstable/skills/operations/publish.d.ts +2 -2
  261. package/dist/src/unstable/skills/operations/publish.d.ts.map +1 -1
  262. package/dist/src/unstable/skills/operations/rename.d.ts +2 -2
  263. package/dist/src/unstable/skills/operations/rename.d.ts.map +1 -1
  264. package/dist/src/unstable/skills/operations/uninstall.d.ts +2 -2
  265. package/dist/src/unstable/skills/operations/uninstall.d.ts.map +1 -1
  266. package/dist/src/unstable/subagents/operations/disable.d.ts +2 -2
  267. package/dist/src/unstable/subagents/operations/disable.d.ts.map +1 -1
  268. package/dist/src/unstable/subagents/operations/enable.d.ts +2 -2
  269. package/dist/src/unstable/subagents/operations/enable.d.ts.map +1 -1
  270. package/dist/src/unstable/subagents/operations/publish.d.ts +2 -2
  271. package/dist/src/unstable/subagents/operations/publish.d.ts.map +1 -1
  272. package/dist/src/unstable/workflows/install-command/workflow.d.ts +1 -1
  273. package/dist/src/unstable/workflows/install-command/workflow.d.ts.map +1 -1
  274. package/dist/src/unstable/workflows/install-command/workflow.js +1 -1
  275. package/dist/src/unstable/workflows/install-command/workflow.js.map +1 -1
  276. package/dist/src/unstable/workflows/uninstall-command/workflow.d.ts +1 -1
  277. package/dist/src/unstable/workflows/uninstall-command/workflow.d.ts.map +1 -1
  278. package/dist/src/unstable/workflows/uninstall-command/workflow.js +1 -1
  279. package/dist/src/unstable/workflows/uninstall-command/workflow.js.map +1 -1
  280. package/dist/src/unstable/workspace/augment-plan.d.ts +1 -1
  281. package/dist/src/unstable/workspace/augment-plan.d.ts.map +1 -1
  282. package/dist/src/unstable/workspace/display-plan.d.ts +1 -1
  283. package/dist/src/unstable/workspace/display-plan.d.ts.map +1 -1
  284. package/dist/src/unstable/workspace/display-plan.js.map +1 -1
  285. package/dist/src/unstable/workspace/index.d.ts +0 -5
  286. package/dist/src/unstable/workspace/index.d.ts.map +1 -1
  287. package/dist/src/unstable/workspace/index.js +3 -7
  288. package/dist/src/unstable/workspace/index.js.map +1 -1
  289. package/dist/src/unstable/workspace/initialization.d.ts +15 -0
  290. package/dist/src/unstable/workspace/initialization.d.ts.map +1 -1
  291. package/dist/src/unstable/workspace/paths.d.ts +0 -18
  292. package/dist/src/unstable/workspace/paths.d.ts.map +1 -1
  293. package/dist/src/unstable/workspace/paths.js +12 -2
  294. package/dist/src/unstable/workspace/paths.js.map +1 -1
  295. package/dist/src/unstable/workspace/reconciliation.d.ts +1 -1
  296. package/dist/src/unstable/workspace/reconciliation.d.ts.map +1 -1
  297. package/dist/src/unstable/workspace/scan-plan-readiness.d.ts +1 -1
  298. package/dist/src/unstable/workspace/scan-plan-readiness.d.ts.map +1 -1
  299. package/dist/src/unstable/workspace/settings-validation/types.d.ts +11 -1
  300. package/dist/src/unstable/workspace/settings-validation/types.d.ts.map +1 -1
  301. package/package.json +10 -2
  302. package/site-content/__generated__/schemas/axm-lock.schema.json +727 -1124
  303. package/site-content/__generated__/schemas/axm-package-meta.schema.json +3 -16
  304. package/site-content/__generated__/schemas/command.schema.json +29 -130
  305. package/site-content/__generated__/schemas/extension-pack.schema.json +36 -154
  306. package/site-content/__generated__/schemas/mcp-server.schema.json +21 -134
  307. package/site-content/__generated__/schemas/settings.schema.json +111 -291
  308. package/site-content/__generated__/schemas/skill.schema.json +23 -143
  309. package/dist/src/unstable/workspace/apply-plan.d.ts.map +0 -1
  310. package/dist/src/unstable/workspace/apply-plan.js.map +0 -1
  311. package/dist/src/unstable/workspace/doctor/check-def.d.ts +0 -29
  312. package/dist/src/unstable/workspace/doctor/check-def.d.ts.map +0 -1
  313. package/dist/src/unstable/workspace/doctor/check-def.js +0 -17
  314. package/dist/src/unstable/workspace/doctor/check-def.js.map +0 -1
  315. package/dist/src/unstable/workspace/doctor/checks/agents-configured.d.ts +0 -5
  316. package/dist/src/unstable/workspace/doctor/checks/agents-configured.d.ts.map +0 -1
  317. package/dist/src/unstable/workspace/doctor/checks/agents-configured.js +0 -170
  318. package/dist/src/unstable/workspace/doctor/checks/agents-configured.js.map +0 -1
  319. package/dist/src/unstable/workspace/doctor/checks/extensions-active.d.ts +0 -4
  320. package/dist/src/unstable/workspace/doctor/checks/extensions-active.d.ts.map +0 -1
  321. package/dist/src/unstable/workspace/doctor/checks/extensions-active.js +0 -238
  322. package/dist/src/unstable/workspace/doctor/checks/extensions-active.js.map +0 -1
  323. package/dist/src/unstable/workspace/doctor/checks/extensions-current.d.ts +0 -18
  324. package/dist/src/unstable/workspace/doctor/checks/extensions-current.d.ts.map +0 -1
  325. package/dist/src/unstable/workspace/doctor/checks/extensions-current.js +0 -92
  326. package/dist/src/unstable/workspace/doctor/checks/extensions-current.js.map +0 -1
  327. package/dist/src/unstable/workspace/doctor/checks/extensions-installed.d.ts +0 -5
  328. package/dist/src/unstable/workspace/doctor/checks/extensions-installed.d.ts.map +0 -1
  329. package/dist/src/unstable/workspace/doctor/checks/extensions-installed.js +0 -472
  330. package/dist/src/unstable/workspace/doctor/checks/extensions-installed.js.map +0 -1
  331. package/dist/src/unstable/workspace/doctor/checks/workspace-ready.d.ts +0 -5
  332. package/dist/src/unstable/workspace/doctor/checks/workspace-ready.d.ts.map +0 -1
  333. package/dist/src/unstable/workspace/doctor/checks/workspace-ready.js +0 -201
  334. package/dist/src/unstable/workspace/doctor/checks/workspace-ready.js.map +0 -1
  335. package/dist/src/unstable/workspace/doctor/diagnose.d.ts +0 -49
  336. package/dist/src/unstable/workspace/doctor/diagnose.d.ts.map +0 -1
  337. package/dist/src/unstable/workspace/doctor/diagnose.js +0 -78
  338. package/dist/src/unstable/workspace/doctor/diagnose.js.map +0 -1
  339. package/dist/src/unstable/workspace/doctor/index.d.ts +0 -8
  340. package/dist/src/unstable/workspace/doctor/index.d.ts.map +0 -1
  341. package/dist/src/unstable/workspace/doctor/index.js +0 -6
  342. package/dist/src/unstable/workspace/doctor/index.js.map +0 -1
  343. package/dist/src/unstable/workspace/doctor/rollup.d.ts +0 -4
  344. package/dist/src/unstable/workspace/doctor/rollup.d.ts.map +0 -1
  345. package/dist/src/unstable/workspace/doctor/rollup.js +0 -28
  346. package/dist/src/unstable/workspace/doctor/rollup.js.map +0 -1
  347. package/dist/src/unstable/workspace/doctor/runner.d.ts +0 -6
  348. package/dist/src/unstable/workspace/doctor/runner.d.ts.map +0 -1
  349. package/dist/src/unstable/workspace/doctor/runner.js +0 -179
  350. package/dist/src/unstable/workspace/doctor/runner.js.map +0 -1
  351. package/dist/src/unstable/workspace/doctor/types.d.ts +0 -127
  352. package/dist/src/unstable/workspace/doctor/types.d.ts.map +0 -1
  353. package/dist/src/unstable/workspace/doctor/types.js +0 -60
  354. package/dist/src/unstable/workspace/doctor/types.js.map +0 -1
  355. package/dist/src/unstable/workspace/plan.d.ts.map +0 -1
  356. package/dist/src/unstable/workspace/plan.js.map +0 -1
  357. package/dist/src/unstable/workspace/resolve-plan.d.ts.map +0 -1
  358. package/dist/src/unstable/workspace/resolve-plan.js.map +0 -1
  359. package/dist/src/unstable/workspace/sync.d.ts +0 -17
  360. package/dist/src/unstable/workspace/sync.d.ts.map +0 -1
  361. package/dist/src/unstable/workspace/sync.js +0 -142
  362. package/dist/src/unstable/workspace/sync.js.map +0 -1
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Helpers for emitting the 14 per-extension Operation values used by the
3
+ * workspace autofix rules.
4
+ *
5
+ * Autofix `fix` methods MUST compose from the 14-Operation vocabulary per
6
+ * `docs/design/lint-engine.md §6`. Wiring to the canonical `OperationHandler`
7
+ * registry (which expects fully-resolved `SkillExtensionRef` / `PackRef`
8
+ * values) happens at the CLI layer (Phase 5); at the lint layer we emit the
9
+ * Operation **intent** — minimal args capturing what reinstall / uninstall /
10
+ * enable / disable means for a named extension. The determinism harness
11
+ * interprets these intents against an in-memory state model.
12
+ *
13
+ * Shape consistency matters: the args shape below is the contract the
14
+ * harness interprets. Phase 5's CLI adapter lowers these intents into the
15
+ * fully-resolved Operation values the handlers expect.
16
+ *
17
+ * @experimental This API is unstable and may change without notice.
18
+ * @packageDocumentation
19
+ */
20
+ import type { Operation } from "../../../../plan/plan.js";
21
+ import type { Settings } from "../../../../settings/schema.js";
22
+ /**
23
+ * Install-skill intent emitted by an autofixing workspace rule.
24
+ *
25
+ * - `name` — lockfile key (and sanitized filesystem name).
26
+ * - `source` — source string from settings (e.g. `@acme/skills/axm`).
27
+ * - `force` — when `true`, the handler reinstalls unconditionally (used by
28
+ * integrity + artifact-clean dangling arms).
29
+ *
30
+ * @experimental This API is unstable and may change without notice.
31
+ */
32
+ export interface InstallSkillIntent {
33
+ readonly name: string;
34
+ readonly source: string;
35
+ readonly force: boolean;
36
+ }
37
+ /** @experimental */
38
+ export interface UninstallSkillIntent {
39
+ readonly name: string;
40
+ }
41
+ /** @experimental */
42
+ export interface EnableSkillIntent {
43
+ readonly name: string;
44
+ }
45
+ /** @experimental */
46
+ export interface DisableSkillIntent {
47
+ readonly name: string;
48
+ }
49
+ /** @experimental */
50
+ export interface InstallPackIntent {
51
+ readonly name: string;
52
+ readonly source: string;
53
+ readonly force: boolean;
54
+ }
55
+ /** @experimental */
56
+ export interface UninstallPackIntent {
57
+ readonly name: string;
58
+ }
59
+ /** @experimental */
60
+ export interface InstallCommandIntent {
61
+ readonly name: string;
62
+ readonly source: string;
63
+ readonly force: boolean;
64
+ }
65
+ /** @experimental */
66
+ export interface UninstallCommandIntent {
67
+ readonly name: string;
68
+ }
69
+ /** @experimental */
70
+ export interface EnableCommandIntent {
71
+ readonly name: string;
72
+ }
73
+ /** @experimental */
74
+ export interface DisableCommandIntent {
75
+ readonly name: string;
76
+ }
77
+ /** @experimental */
78
+ export interface InstallMcpServerIntent {
79
+ readonly name: string;
80
+ readonly source: string;
81
+ readonly force: boolean;
82
+ }
83
+ /** @experimental */
84
+ export interface UninstallMcpServerIntent {
85
+ readonly name: string;
86
+ }
87
+ /** @experimental */
88
+ export interface EnableSubagentIntent {
89
+ readonly name: string;
90
+ }
91
+ /** @experimental */
92
+ export interface DisableSubagentIntent {
93
+ readonly name: string;
94
+ }
95
+ export declare const installSkillOp: (intent: InstallSkillIntent) => Operation<"install-skill", InstallSkillIntent>;
96
+ export declare const uninstallSkillOp: (intent: UninstallSkillIntent) => Operation<"uninstall-skill", UninstallSkillIntent>;
97
+ export declare const enableSkillOp: (intent: EnableSkillIntent) => Operation<"enable-skill", EnableSkillIntent>;
98
+ export declare const disableSkillOp: (intent: DisableSkillIntent) => Operation<"disable-skill", DisableSkillIntent>;
99
+ export declare const installPackOp: (intent: InstallPackIntent) => Operation<"install-pack", InstallPackIntent>;
100
+ export declare const uninstallPackOp: (intent: UninstallPackIntent) => Operation<"uninstall-pack", UninstallPackIntent>;
101
+ export declare const installCommandOp: (intent: InstallCommandIntent) => Operation<"install-command", InstallCommandIntent>;
102
+ export declare const uninstallCommandOp: (intent: UninstallCommandIntent) => Operation<"uninstall-command", UninstallCommandIntent>;
103
+ export declare const enableCommandOp: (intent: EnableCommandIntent) => Operation<"enable-command", EnableCommandIntent>;
104
+ export declare const disableCommandOp: (intent: DisableCommandIntent) => Operation<"disable-command", DisableCommandIntent>;
105
+ export declare const installMcpServerOp: (intent: InstallMcpServerIntent) => Operation<"install-mcp-server", InstallMcpServerIntent>;
106
+ export declare const uninstallMcpServerOp: (intent: UninstallMcpServerIntent) => Operation<"uninstall-mcp-server", UninstallMcpServerIntent>;
107
+ export declare const enableSubagentOp: (intent: EnableSubagentIntent) => Operation<"enable-subagent", EnableSubagentIntent>;
108
+ export declare const disableSubagentOp: (intent: DisableSubagentIntent) => Operation<"disable-subagent", DisableSubagentIntent>;
109
+ /**
110
+ * The 14 per-extension Operation names lint autofix is allowed to emit.
111
+ *
112
+ * The guard test (`workspace-guard.test.ts`, task 3c.29) asserts no
113
+ * autofixing workspace rule emits an Operation outside this set and that
114
+ * no rule body references `syncWorkspace()` or a similar top-level
115
+ * reconcile entry.
116
+ *
117
+ * @experimental This API is unstable and may change without notice.
118
+ */
119
+ export declare const PER_EXTENSION_OPERATION_NAMES: readonly ["install-skill", "uninstall-skill", "enable-skill", "disable-skill", "install-pack", "uninstall-pack", "install-command", "uninstall-command", "enable-command", "disable-command", "install-mcp-server", "uninstall-mcp-server", "enable-subagent", "disable-subagent"];
120
+ /** @experimental */
121
+ export type PerExtensionOperationName = (typeof PER_EXTENSION_OPERATION_NAMES)[number];
122
+ /** @experimental */
123
+ export declare const isPerExtensionOperationName: (name: string) => name is PerExtensionOperationName;
124
+ /**
125
+ * Emit one `install-{type}` Operation per declared entry in `settings`,
126
+ * across all five installable types. Used by
127
+ * `workspace/lockfile-valid` missing-arm autofix — each declaration produces
128
+ * a reinstall intent, and the handler side-effects recreate the lockfile.
129
+ *
130
+ * @experimental This API is unstable and may change without notice.
131
+ */
132
+ export declare const collectMissingLockfileInstallOps: (settings: Settings) => ReadonlyArray<Operation<string, unknown>>;
133
+ //# sourceMappingURL=install-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-ops.d.ts","sourceRoot":"","sources":["../../../../../../../src/unstable/lint/catalog/workspace/helpers/install-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Helpers for emitting the 14 per-extension Operation values used by the
3
+ * workspace autofix rules.
4
+ *
5
+ * Autofix `fix` methods MUST compose from the 14-Operation vocabulary per
6
+ * `docs/design/lint-engine.md §6`. Wiring to the canonical `OperationHandler`
7
+ * registry (which expects fully-resolved `SkillExtensionRef` / `PackRef`
8
+ * values) happens at the CLI layer (Phase 5); at the lint layer we emit the
9
+ * Operation **intent** — minimal args capturing what reinstall / uninstall /
10
+ * enable / disable means for a named extension. The determinism harness
11
+ * interprets these intents against an in-memory state model.
12
+ *
13
+ * Shape consistency matters: the args shape below is the contract the
14
+ * harness interprets. Phase 5's CLI adapter lowers these intents into the
15
+ * fully-resolved Operation values the handlers expect.
16
+ *
17
+ * @experimental This API is unstable and may change without notice.
18
+ * @packageDocumentation
19
+ */
20
+ // -----------------------------------------------------------------------------
21
+ // Emit helpers
22
+ // -----------------------------------------------------------------------------
23
+ export const installSkillOp = (intent) => ({
24
+ name: "install-skill",
25
+ args: intent,
26
+ });
27
+ export const uninstallSkillOp = (intent) => ({
28
+ name: "uninstall-skill",
29
+ args: intent,
30
+ });
31
+ export const enableSkillOp = (intent) => ({
32
+ name: "enable-skill",
33
+ args: intent,
34
+ });
35
+ export const disableSkillOp = (intent) => ({
36
+ name: "disable-skill",
37
+ args: intent,
38
+ });
39
+ export const installPackOp = (intent) => ({
40
+ name: "install-pack",
41
+ args: intent,
42
+ });
43
+ export const uninstallPackOp = (intent) => ({
44
+ name: "uninstall-pack",
45
+ args: intent,
46
+ });
47
+ export const installCommandOp = (intent) => ({
48
+ name: "install-command",
49
+ args: intent,
50
+ });
51
+ export const uninstallCommandOp = (intent) => ({
52
+ name: "uninstall-command",
53
+ args: intent,
54
+ });
55
+ export const enableCommandOp = (intent) => ({
56
+ name: "enable-command",
57
+ args: intent,
58
+ });
59
+ export const disableCommandOp = (intent) => ({
60
+ name: "disable-command",
61
+ args: intent,
62
+ });
63
+ export const installMcpServerOp = (intent) => ({
64
+ name: "install-mcp-server",
65
+ args: intent,
66
+ });
67
+ export const uninstallMcpServerOp = (intent) => ({
68
+ name: "uninstall-mcp-server",
69
+ args: intent,
70
+ });
71
+ export const enableSubagentOp = (intent) => ({
72
+ name: "enable-subagent",
73
+ args: intent,
74
+ });
75
+ export const disableSubagentOp = (intent) => ({
76
+ name: "disable-subagent",
77
+ args: intent,
78
+ });
79
+ // -----------------------------------------------------------------------------
80
+ // Vocabulary guard — the canonical 14-operation vocabulary.
81
+ // -----------------------------------------------------------------------------
82
+ /**
83
+ * The 14 per-extension Operation names lint autofix is allowed to emit.
84
+ *
85
+ * The guard test (`workspace-guard.test.ts`, task 3c.29) asserts no
86
+ * autofixing workspace rule emits an Operation outside this set and that
87
+ * no rule body references `syncWorkspace()` or a similar top-level
88
+ * reconcile entry.
89
+ *
90
+ * @experimental This API is unstable and may change without notice.
91
+ */
92
+ export const PER_EXTENSION_OPERATION_NAMES = [
93
+ "install-skill",
94
+ "uninstall-skill",
95
+ "enable-skill",
96
+ "disable-skill",
97
+ "install-pack",
98
+ "uninstall-pack",
99
+ "install-command",
100
+ "uninstall-command",
101
+ "enable-command",
102
+ "disable-command",
103
+ "install-mcp-server",
104
+ "uninstall-mcp-server",
105
+ "enable-subagent",
106
+ "disable-subagent",
107
+ ];
108
+ const PER_EXTENSION_OPERATION_SET = new Set(PER_EXTENSION_OPERATION_NAMES);
109
+ /** @experimental */
110
+ export const isPerExtensionOperationName = (name) => PER_EXTENSION_OPERATION_SET.has(name);
111
+ // -----------------------------------------------------------------------------
112
+ // Bulk emitters
113
+ // -----------------------------------------------------------------------------
114
+ /**
115
+ * Emit one `install-{type}` Operation per declared entry in `settings`,
116
+ * across all five installable types. Used by
117
+ * `workspace/lockfile-valid` missing-arm autofix — each declaration produces
118
+ * a reinstall intent, and the handler side-effects recreate the lockfile.
119
+ *
120
+ * @experimental This API is unstable and may change without notice.
121
+ */
122
+ export const collectMissingLockfileInstallOps = (settings) => {
123
+ const ops = [];
124
+ for (const [name, entry] of Object.entries(settings.skills ?? {})) {
125
+ ops.push(installSkillOp({ name, source: entry.source, force: false }));
126
+ }
127
+ for (const [name, entry] of Object.entries(settings.packs ?? {})) {
128
+ ops.push(installPackOp({ name, source: entry.source, force: false }));
129
+ }
130
+ for (const [name, entry] of Object.entries(settings.commands ?? {})) {
131
+ ops.push(installCommandOp({ name, source: entry.source, force: false }));
132
+ }
133
+ for (const [name, entry] of Object.entries(settings.subagents ?? {})) {
134
+ // Subagents install-handler ships in a later install family; v1 emits a
135
+ // no-op install-command for consistency… Actually, per the 14-op
136
+ // vocabulary subagents have only enable/disable Operations at v1 (their
137
+ // install family defers); emitting only enable here would be wrong.
138
+ // Skip subagents in the missing-arm autofix for now — the lockfile
139
+ // recreation is approximate, and subagent install is tracked as a v1.5+
140
+ // item.
141
+ void name;
142
+ void entry;
143
+ }
144
+ for (const [name, entry] of Object.entries(settings.mcpServers ?? {})) {
145
+ ops.push(installMcpServerOp({ name, source: entry.source, force: false }));
146
+ }
147
+ return ops;
148
+ };
149
+ //# sourceMappingURL=install-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-ops.js","sourceRoot":"","sources":["../../../../../../../src/unstable/lint/catalog/workspace/helpers/install-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAgGH,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,MAA0B,EACsB,EAAE,CAAC,CAAC;IACpD,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAA4B,EACwB,EAAE,CAAC,CAAC;IACxD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAyB,EACqB,EAAE,CAAC,CAAC;IAClD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,MAA0B,EACsB,EAAE,CAAC,CAAC;IACpD,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAyB,EACqB,EAAE,CAAC,CAAC;IAClD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,MAA2B,EACuB,EAAE,CAAC,CAAC;IACtD,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAA4B,EACwB,EAAE,CAAC,CAAC;IACxD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAA8B,EAC0B,EAAE,CAAC,CAAC;IAC5D,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,MAA2B,EACuB,EAAE,CAAC,CAAC;IACtD,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAA4B,EACwB,EAAE,CAAC,CAAC;IACxD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAA8B,EAC2B,EAAE,CAAC,CAAC;IAC7D,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAAgC,EAC6B,EAAE,CAAC,CAAC;IACjE,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAA4B,EACwB,EAAE,CAAC,CAAC;IACxD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAA6B,EACyB,EAAE,CAAC,CAAC;IAC1D,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,gFAAgF;AAChF,4DAA4D;AAC5D,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;IACpB,sBAAsB;IACtB,iBAAiB;IACjB,kBAAkB;CACV,CAAC;AAKX,MAAM,2BAA2B,GAAwB,IAAI,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAEhG,oBAAoB;AACpB,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAY,EAAqC,EAAE,CAC7F,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAExC,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,QAAkB,EACyB,EAAE;IAC7C,MAAM,GAAG,GAAsC,EAAE,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;QACrE,wEAAwE;QACxE,iEAAiE;QACjE,wEAAwE;QACxE,oEAAoE;QACpE,mEAAmE;QACnE,wEAAwE;QACxE,QAAQ;QACR,KAAK,IAAI,CAAC;QACV,KAAK,KAAK,CAAC;IACb,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Registry-source parsing helper for workspace rules.
3
+ *
4
+ * Thin re-export over `parseRegistrySourceRef` so workspace rule bodies don't
5
+ * depend directly on the extensions module's internal layout. When the
6
+ * canonical parser changes, this shim stays.
7
+ *
8
+ * @experimental This API is unstable and may change without notice.
9
+ * @packageDocumentation
10
+ */
11
+ /** @experimental */
12
+ export interface RegistrySourceParts {
13
+ readonly owner: string;
14
+ readonly type: string;
15
+ readonly name: string;
16
+ readonly versionConstraint: string | undefined;
17
+ }
18
+ /**
19
+ * Parse a source string into its registry parts, or `undefined` when the
20
+ * source doesn't look like a registry ref.
21
+ *
22
+ * @experimental This API is unstable and may change without notice.
23
+ */
24
+ export declare const parseRegistrySource: (source: string) => RegistrySourceParts | undefined;
25
+ //# sourceMappingURL=registry-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-source.d.ts","sourceRoot":"","sources":["../../../../../../../src/unstable/lint/catalog/workspace/helpers/registry-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,oBAAoB;AACpB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,mBAAmB,GAAG,SAW1E,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Registry-source parsing helper for workspace rules.
3
+ *
4
+ * Thin re-export over `parseRegistrySourceRef` so workspace rule bodies don't
5
+ * depend directly on the extensions module's internal layout. When the
6
+ * canonical parser changes, this shim stays.
7
+ *
8
+ * @experimental This API is unstable and may change without notice.
9
+ * @packageDocumentation
10
+ */
11
+ import { parseRegistrySourceRef } from "../../../../extensions/registry-source.js";
12
+ /**
13
+ * Parse a source string into its registry parts, or `undefined` when the
14
+ * source doesn't look like a registry ref.
15
+ *
16
+ * @experimental This API is unstable and may change without notice.
17
+ */
18
+ export const parseRegistrySource = (source) => {
19
+ const parsed = parseRegistrySourceRef(source);
20
+ if (parsed === undefined) {
21
+ return undefined;
22
+ }
23
+ return {
24
+ owner: parsed.owner,
25
+ type: parsed.type,
26
+ name: parsed.name,
27
+ versionConstraint: parsed.versionConstraint,
28
+ };
29
+ };
30
+ //# sourceMappingURL=registry-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-source.js","sourceRoot":"","sources":["../../../../../../../src/unstable/lint/catalog/workspace/helpers/registry-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAUnF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAmC,EAAE;IACrF,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;KAC5C,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * `workspace/initialized` — `.axm/` and `.axm/settings.json` both exist.
3
+ *
4
+ * Per `docs/design/lint-engine.md §10.workspace` "Foundation" row:
5
+ *
6
+ * Workspace bootstrap invariant. Absorbs doctor `workspace-ready.*` checks.
7
+ *
8
+ * Applies to every workspace context (both scopes). Owns the presence arm;
9
+ * `workspace/settings-schema-valid` owns the contents arm and early-returns
10
+ * when `settings.json` is missing, so a fresh workspace surfaces exactly one
11
+ * finding from this rule.
12
+ *
13
+ * Advisory-only — scaffolding a workspace is a multi-step `axm init` command;
14
+ * keeping it a suggestion scopes autofix to Operation-expressible mutations.
15
+ *
16
+ * @experimental This API is unstable and may change without notice.
17
+ * @packageDocumentation
18
+ */
19
+ import type { WorkspaceRuleContext } from "../../context.js";
20
+ import type { AdvisoryRule } from "../../rule.js";
21
+ export declare const initializedRule: AdvisoryRule<WorkspaceRuleContext>;
22
+ //# sourceMappingURL=initialized.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialized.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/initialized.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAMnE,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,oBAAoB,CAmC9D,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * `workspace/initialized` — `.axm/` and `.axm/settings.json` both exist.
3
+ *
4
+ * Per `docs/design/lint-engine.md §10.workspace` "Foundation" row:
5
+ *
6
+ * Workspace bootstrap invariant. Absorbs doctor `workspace-ready.*` checks.
7
+ *
8
+ * Applies to every workspace context (both scopes). Owns the presence arm;
9
+ * `workspace/settings-schema-valid` owns the contents arm and early-returns
10
+ * when `settings.json` is missing, so a fresh workspace surfaces exactly one
11
+ * finding from this rule.
12
+ *
13
+ * Advisory-only — scaffolding a workspace is a multi-step `axm init` command;
14
+ * keeping it a suggestion scopes autofix to Operation-expressible mutations.
15
+ *
16
+ * @experimental This API is unstable and may change without notice.
17
+ * @packageDocumentation
18
+ */
19
+ import * as Effect from "effect/Effect";
20
+ const RULE_ID = "workspace/initialized";
21
+ const AXM_DIR = ".axm";
22
+ const SETTINGS_REL = ".axm/settings.json";
23
+ export const initializedRule = {
24
+ id: RULE_ID,
25
+ description: "Workspace is initialized (.axm directory and settings.json present).",
26
+ kind: "advisory",
27
+ severity: "error",
28
+ check: (context) => Effect.gen(function* () {
29
+ const [axmExists, settingsExists] = yield* Effect.all([context.workspace.exists(AXM_DIR), context.workspace.exists(SETTINGS_REL)], { concurrency: "unbounded" });
30
+ const findings = [];
31
+ if (!axmExists) {
32
+ findings.push({
33
+ kind: "advisory",
34
+ ruleId: RULE_ID,
35
+ severity: "error",
36
+ message: "Workspace is not initialized; .axm directory is missing.",
37
+ suggestions: ["Run `axm init` to scaffold the workspace."],
38
+ location: { file: AXM_DIR },
39
+ });
40
+ return findings;
41
+ }
42
+ if (!settingsExists) {
43
+ findings.push({
44
+ kind: "advisory",
45
+ ruleId: RULE_ID,
46
+ severity: "error",
47
+ message: "Workspace is missing .axm/settings.json.",
48
+ suggestions: ["Run `axm init` to scaffold settings.json."],
49
+ location: { file: SETTINGS_REL },
50
+ });
51
+ }
52
+ return findings;
53
+ }),
54
+ };
55
+ //# sourceMappingURL=initialized.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialized.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/initialized.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,MAAM,OAAO,GAAG,uBAAuB,CAAC;AACxC,MAAM,OAAO,GAAG,MAAM,CAAC;AACvB,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAuC;IACjE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,sEAAsE;IACnF,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACnD,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAC3E,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;QACF,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,0DAA0D;gBACnE,WAAW,EAAE,CAAC,2CAA2C,CAAC;gBAC1D,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;aAC5B,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,0CAA0C;gBACnD,WAAW,EAAE,CAAC,2CAA2C,CAAC;gBAC1D,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;aACjC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;CACL,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `workspace/lockfile-valid` — `.axm/axm-lock.yaml` parses and conforms to
3
+ * `LockfileSchema`.
4
+ *
5
+ * Cascade per `docs/design/lint-engine.md §10.workspace`:
6
+ *
7
+ * 1. `.axm/axm-lock.yaml` exists when settings declares any extension
8
+ * (skills, packs, commands, subagents, mcp-servers). **Missing arm is
9
+ * autofixing** — `fix` returns `install-{type}` Operations for every
10
+ * declared extension; each handler writes its lockfile entry as a side
11
+ * effect, recreating the lockfile.
12
+ * 2. Lockfile bytes parse as YAML (the accessor surfaces parse failures via
13
+ * `LockfileReadError`; we emit one advisory finding per read failure).
14
+ * 3. `Schema.decodeUnknownResult(LockfileSchema)` succeeds; `ParseResult`
15
+ * issues map 1:1 to advisory findings via `schemaDecodeFindings`.
16
+ *
17
+ * Arms 2 and 3 are advisory (no autofix) because repairing them requires
18
+ * editing a file that axm does not own through the per-extension Operation
19
+ * vocabulary. Arm 1 is autofixing because every install handler writes a
20
+ * fresh lockfile entry as a side effect, and chained install-Operations
21
+ * recreate the file deterministically.
22
+ *
23
+ * Early-return: workspaces with no declared extensions (no skills, no
24
+ * packs, no commands, no subagents, no mcp-servers) don't require a
25
+ * lockfile — this rule emits zero findings.
26
+ *
27
+ * @experimental This API is unstable and may change without notice.
28
+ * @packageDocumentation
29
+ */
30
+ import type { WorkspaceRuleContext } from "../../context.js";
31
+ import type { AutofixingRule } from "../../rule.js";
32
+ export declare const lockfileValidRule: AutofixingRule<WorkspaceRuleContext>;
33
+ //# sourceMappingURL=lockfile-valid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfile-valid.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/lockfile-valid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAMH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAGV,cAAc,EAEf,MAAM,eAAe,CAAC;AAwCvB,eAAO,MAAM,iBAAiB,EAAE,cAAc,CAAC,oBAAoB,CAuElE,CAAC"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * `workspace/lockfile-valid` — `.axm/axm-lock.yaml` parses and conforms to
3
+ * `LockfileSchema`.
4
+ *
5
+ * Cascade per `docs/design/lint-engine.md §10.workspace`:
6
+ *
7
+ * 1. `.axm/axm-lock.yaml` exists when settings declares any extension
8
+ * (skills, packs, commands, subagents, mcp-servers). **Missing arm is
9
+ * autofixing** — `fix` returns `install-{type}` Operations for every
10
+ * declared extension; each handler writes its lockfile entry as a side
11
+ * effect, recreating the lockfile.
12
+ * 2. Lockfile bytes parse as YAML (the accessor surfaces parse failures via
13
+ * `LockfileReadError`; we emit one advisory finding per read failure).
14
+ * 3. `Schema.decodeUnknownResult(LockfileSchema)` succeeds; `ParseResult`
15
+ * issues map 1:1 to advisory findings via `schemaDecodeFindings`.
16
+ *
17
+ * Arms 2 and 3 are advisory (no autofix) because repairing them requires
18
+ * editing a file that axm does not own through the per-extension Operation
19
+ * vocabulary. Arm 1 is autofixing because every install handler writes a
20
+ * fresh lockfile entry as a side effect, and chained install-Operations
21
+ * recreate the file deterministically.
22
+ *
23
+ * Early-return: workspaces with no declared extensions (no skills, no
24
+ * packs, no commands, no subagents, no mcp-servers) don't require a
25
+ * lockfile — this rule emits zero findings.
26
+ *
27
+ * @experimental This API is unstable and may change without notice.
28
+ * @packageDocumentation
29
+ */
30
+ import * as Effect from "effect/Effect";
31
+ import * as Option from "effect/Option";
32
+ import * as Result from "effect/Result";
33
+ import * as Schema from "effect/Schema";
34
+ import { LockfileSchema } from "../../../lockfile/schema.js";
35
+ import { SettingsSchema } from "../../../settings/schema.js";
36
+ import { schemaDecodeFindings } from "../shared/schema-rule.js";
37
+ import { collectMissingLockfileInstallOps } from "./helpers/install-ops.js";
38
+ import { EMPTY_LINT_FINDINGS, EMPTY_OPERATIONS } from "./helpers/empty.js";
39
+ const RULE_ID = "workspace/lockfile-valid";
40
+ const LOCKFILE_REL = ".axm/axm-lock.yaml";
41
+ const MISSING_LOCKFILE_MISSING_SUGGESTION = "Reinstall every declared extension to rewrite the lockfile.";
42
+ const hasAnyDeclaration = (settings) => {
43
+ const skills = Object.keys(settings.skills ?? {}).length;
44
+ const packs = Object.keys(settings.packs ?? {}).length;
45
+ const commands = Object.keys(settings.commands ?? {}).length;
46
+ const subagents = Object.keys(settings.subagents ?? {}).length;
47
+ const mcpServers = Object.keys(settings.mcpServers ?? {}).length;
48
+ return skills + packs + commands + subagents + mcpServers > 0;
49
+ };
50
+ const decodeSettings = (input) => {
51
+ const result = Schema.decodeUnknownResult(SettingsSchema)(input, {
52
+ onExcessProperty: "ignore",
53
+ errors: "all",
54
+ });
55
+ return Result.isSuccess(result) ? Option.some(result.success) : Option.none();
56
+ };
57
+ const makeMissingFinding = () => ({
58
+ kind: "autofixable",
59
+ ruleId: RULE_ID,
60
+ severity: "error",
61
+ message: "Lockfile is missing while settings declare installed extensions; reinstall to regenerate it.",
62
+ suggestions: [MISSING_LOCKFILE_MISSING_SUGGESTION],
63
+ location: { file: LOCKFILE_REL },
64
+ });
65
+ export const lockfileValidRule = {
66
+ id: RULE_ID,
67
+ description: "axm-lock.yaml is present and conforms to LockfileSchema.",
68
+ kind: "autofixing",
69
+ severity: "error",
70
+ check: (context) => Effect.gen(function* () {
71
+ // Cascade arm 1: lockfile presence when declarations exist.
72
+ const settingsResult = yield* Effect.result(context.workspace.settings);
73
+ if (Result.isFailure(settingsResult)) {
74
+ return EMPTY_LINT_FINDINGS;
75
+ }
76
+ const settings = decodeSettings(settingsResult.success);
77
+ if (Option.isNone(settings)) {
78
+ // workspace/settings-schema-valid owns the decode arm; nothing to
79
+ // do here until settings decode.
80
+ return EMPTY_LINT_FINDINGS;
81
+ }
82
+ const declared = hasAnyDeclaration(settings.value);
83
+ const lockfileResult = yield* Effect.result(context.workspace.lockfile);
84
+ if (Result.isFailure(lockfileResult)) {
85
+ // Read failure surfaces as advisory finding naming the IO problem.
86
+ const advisory = {
87
+ kind: "advisory",
88
+ ruleId: RULE_ID,
89
+ severity: "error",
90
+ message: `Could not read axm-lock.yaml: ${lockfileResult.failure.message}`,
91
+ suggestions: ["Fix YAML syntax at the referenced location."],
92
+ location: { file: LOCKFILE_REL },
93
+ };
94
+ const readFailure = [advisory];
95
+ return readFailure;
96
+ }
97
+ const option = lockfileResult.success;
98
+ if (Option.isNone(option)) {
99
+ if (!declared) {
100
+ return EMPTY_LINT_FINDINGS;
101
+ }
102
+ return [makeMissingFinding()];
103
+ }
104
+ // Cascade arm 3: schema decode of the parsed YAML.
105
+ const decodedFindings = yield* schemaDecodeFindings(RULE_ID, "error", LOCKFILE_REL, LockfileSchema, option.value);
106
+ return decodedFindings;
107
+ }),
108
+ fix: (context, finding) => Effect.gen(function* () {
109
+ // Autofix only applies to the missing arm; the advisory arms above
110
+ // never produce `AutofixableFinding`s.
111
+ if (finding.suggestions[0] !== MISSING_LOCKFILE_MISSING_SUGGESTION) {
112
+ return EMPTY_OPERATIONS;
113
+ }
114
+ const settingsResult = yield* Effect.result(context.workspace.settings);
115
+ if (Result.isFailure(settingsResult)) {
116
+ return EMPTY_OPERATIONS;
117
+ }
118
+ const settings = decodeSettings(settingsResult.success);
119
+ if (Option.isNone(settings)) {
120
+ return EMPTY_OPERATIONS;
121
+ }
122
+ return collectMissingLockfileInstallOps(settings.value);
123
+ }),
124
+ };
125
+ //# sourceMappingURL=lockfile-valid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfile-valid.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/lockfile-valid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * `workspace/packs-declarations-valid` — declared packs name a resolvable,
3
+ * owner-qualified, unique source.
4
+ *
5
+ * Mirrors `workspace/skills-declarations-valid` against the packs map:
6
+ *
7
+ * 1. Source resolvability — pack source is not a bare name.
8
+ * 2. Owner qualification — registry-shaped pack sources carry `@owner/`.
9
+ * 3. Duplicate FQNs — two settings entries normalize to the same FQN.
10
+ *
11
+ * One finding per affected entity. Advisory.
12
+ *
13
+ * @experimental This API is unstable and may change without notice.
14
+ * @packageDocumentation
15
+ */
16
+ import type { WorkspaceRuleContext } from "../../context.js";
17
+ import type { AdvisoryRule } from "../../rule.js";
18
+ export declare const packsDeclarationsValidRule: AdvisoryRule<WorkspaceRuleContext>;
19
+ //# sourceMappingURL=packs-declarations-valid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packs-declarations-valid.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace/packs-declarations-valid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AA+FnE,eAAO,MAAM,0BAA0B,EAAE,YAAY,CAAC,oBAAoB,CAuDzE,CAAC"}