@agentxm/client-core 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) 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/dist/src/unstable/workspace/apply-plan.d.ts.map +0 -1
  303. package/dist/src/unstable/workspace/apply-plan.js.map +0 -1
  304. package/dist/src/unstable/workspace/doctor/check-def.d.ts +0 -29
  305. package/dist/src/unstable/workspace/doctor/check-def.d.ts.map +0 -1
  306. package/dist/src/unstable/workspace/doctor/check-def.js +0 -17
  307. package/dist/src/unstable/workspace/doctor/check-def.js.map +0 -1
  308. package/dist/src/unstable/workspace/doctor/checks/agents-configured.d.ts +0 -5
  309. package/dist/src/unstable/workspace/doctor/checks/agents-configured.d.ts.map +0 -1
  310. package/dist/src/unstable/workspace/doctor/checks/agents-configured.js +0 -170
  311. package/dist/src/unstable/workspace/doctor/checks/agents-configured.js.map +0 -1
  312. package/dist/src/unstable/workspace/doctor/checks/extensions-active.d.ts +0 -4
  313. package/dist/src/unstable/workspace/doctor/checks/extensions-active.d.ts.map +0 -1
  314. package/dist/src/unstable/workspace/doctor/checks/extensions-active.js +0 -238
  315. package/dist/src/unstable/workspace/doctor/checks/extensions-active.js.map +0 -1
  316. package/dist/src/unstable/workspace/doctor/checks/extensions-current.d.ts +0 -18
  317. package/dist/src/unstable/workspace/doctor/checks/extensions-current.d.ts.map +0 -1
  318. package/dist/src/unstable/workspace/doctor/checks/extensions-current.js +0 -92
  319. package/dist/src/unstable/workspace/doctor/checks/extensions-current.js.map +0 -1
  320. package/dist/src/unstable/workspace/doctor/checks/extensions-installed.d.ts +0 -5
  321. package/dist/src/unstable/workspace/doctor/checks/extensions-installed.d.ts.map +0 -1
  322. package/dist/src/unstable/workspace/doctor/checks/extensions-installed.js +0 -472
  323. package/dist/src/unstable/workspace/doctor/checks/extensions-installed.js.map +0 -1
  324. package/dist/src/unstable/workspace/doctor/checks/workspace-ready.d.ts +0 -5
  325. package/dist/src/unstable/workspace/doctor/checks/workspace-ready.d.ts.map +0 -1
  326. package/dist/src/unstable/workspace/doctor/checks/workspace-ready.js +0 -201
  327. package/dist/src/unstable/workspace/doctor/checks/workspace-ready.js.map +0 -1
  328. package/dist/src/unstable/workspace/doctor/diagnose.d.ts +0 -49
  329. package/dist/src/unstable/workspace/doctor/diagnose.d.ts.map +0 -1
  330. package/dist/src/unstable/workspace/doctor/diagnose.js +0 -78
  331. package/dist/src/unstable/workspace/doctor/diagnose.js.map +0 -1
  332. package/dist/src/unstable/workspace/doctor/index.d.ts +0 -8
  333. package/dist/src/unstable/workspace/doctor/index.d.ts.map +0 -1
  334. package/dist/src/unstable/workspace/doctor/index.js +0 -6
  335. package/dist/src/unstable/workspace/doctor/index.js.map +0 -1
  336. package/dist/src/unstable/workspace/doctor/rollup.d.ts +0 -4
  337. package/dist/src/unstable/workspace/doctor/rollup.d.ts.map +0 -1
  338. package/dist/src/unstable/workspace/doctor/rollup.js +0 -28
  339. package/dist/src/unstable/workspace/doctor/rollup.js.map +0 -1
  340. package/dist/src/unstable/workspace/doctor/runner.d.ts +0 -6
  341. package/dist/src/unstable/workspace/doctor/runner.d.ts.map +0 -1
  342. package/dist/src/unstable/workspace/doctor/runner.js +0 -179
  343. package/dist/src/unstable/workspace/doctor/runner.js.map +0 -1
  344. package/dist/src/unstable/workspace/doctor/types.d.ts +0 -127
  345. package/dist/src/unstable/workspace/doctor/types.d.ts.map +0 -1
  346. package/dist/src/unstable/workspace/doctor/types.js +0 -60
  347. package/dist/src/unstable/workspace/doctor/types.js.map +0 -1
  348. package/dist/src/unstable/workspace/plan.d.ts.map +0 -1
  349. package/dist/src/unstable/workspace/plan.js.map +0 -1
  350. package/dist/src/unstable/workspace/resolve-plan.d.ts.map +0 -1
  351. package/dist/src/unstable/workspace/resolve-plan.js.map +0 -1
  352. package/dist/src/unstable/workspace/sync.d.ts +0 -17
  353. package/dist/src/unstable/workspace/sync.d.ts.map +0 -1
  354. package/dist/src/unstable/workspace/sync.js +0 -142
  355. package/dist/src/unstable/workspace/sync.js.map +0 -1
@@ -0,0 +1,123 @@
1
+ /**
2
+ * `WorkspaceIndex` and `buildWorkspaceRuleContext`.
3
+ *
4
+ * The `WorkspaceIndex` satisfies both Phase 3a's `SkillIndexView` and Phase
5
+ * 3b's `PackIndexView` — it exposes `installedSkills: InstalledSkillInfo[]`
6
+ * and `installedPacks: InstalledPackInfo[]` with per-provenance
7
+ * `displayRoot`s:
8
+ *
9
+ * Registry-installed native skill: `.axm/extensions/<@owner>/skills/<name>/src/`
10
+ * External skill: `.axm/extensions/external/skills/<name>/`
11
+ * Registry pack: `.axm/extensions/<@owner>/packs/<name>/`
12
+ * (NO `src/` — matches the on-disk layout
13
+ * per Phase 3b finding.)
14
+ *
15
+ * The `buildWorkspaceRuleContext` helper constructs a `WorkspaceRuleContext`
16
+ * from a resolved `WorkspaceLintAccessor` and a requested scope. User-scope
17
+ * root resolution for v1 is `$AXM_USER_HOME/.axm/` when set, otherwise
18
+ * `$HOME/.axm/`; a follow-up owns the broader XDG story.
19
+ *
20
+ * @experimental This API is unstable and may change without notice.
21
+ * @packageDocumentation
22
+ */
23
+ import * as Effect from "effect/Effect";
24
+ import { buildSkillRuleContexts, } from "../skill-accessor/contexts.js";
25
+ import { buildPackRuleContexts, } from "../pack-accessor/contexts.js";
26
+ import { makePlatformSkillFileAccessor } from "../skill-accessor/platform.js";
27
+ import { makePlatformPackFileAccessor } from "../pack-accessor/platform.js";
28
+ import { makePlatformWorkspaceLintAccessor } from "./platform.js";
29
+ /**
30
+ * Construct a `WorkspaceRuleContext` scoped to project or user.
31
+ *
32
+ * @experimental This API is unstable and may change without notice.
33
+ */
34
+ export const buildWorkspaceRuleContext = (args) => {
35
+ const indexView = toWorkspaceIndexView(args.index);
36
+ const accessor = makePlatformWorkspaceLintAccessor({
37
+ platform: args.platform,
38
+ workspaceRoot: args.workspaceRoot,
39
+ index: indexView,
40
+ scope: args.scope,
41
+ });
42
+ return {
43
+ subject: { root: args.workspaceRoot, scope: args.scope },
44
+ workspace: accessor,
45
+ displayRoot: args.displayRoot ?? "",
46
+ };
47
+ };
48
+ // -----------------------------------------------------------------------------
49
+ // Index → accessor plumbing
50
+ // -----------------------------------------------------------------------------
51
+ const toWorkspaceIndexView = (index) => ({
52
+ installedSkills: Effect.sync(() => buildSkillRuleContexts(index)),
53
+ installedPacks: Effect.sync(() => buildPackRuleContexts(index)),
54
+ });
55
+ // -----------------------------------------------------------------------------
56
+ // Provenance → displayRoot helpers
57
+ // -----------------------------------------------------------------------------
58
+ /**
59
+ * Compute the `displayRoot` for a registry-installed native skill.
60
+ *
61
+ * @experimental This API is unstable and may change without notice.
62
+ */
63
+ export const registryNativeSkillDisplayRoot = (owner, name) => `.axm/extensions/${owner}/skills/${name}/src`;
64
+ /**
65
+ * Compute the `displayRoot` for an external (non-native) skill.
66
+ *
67
+ * @experimental This API is unstable and may change without notice.
68
+ */
69
+ export const externalSkillDisplayRoot = (name) => `.axm/extensions/external/skills/${name}`;
70
+ /**
71
+ * Compute the `displayRoot` for a registry-installed pack.
72
+ *
73
+ * **No `src/` segment** — matches the on-disk layout at
74
+ * `axm/packages/core/src/unstable/packs/paths.ts#computeExtensionPackPaths`
75
+ * (Phase 3b finding).
76
+ *
77
+ * @experimental This API is unstable and may change without notice.
78
+ */
79
+ export const registryPackDisplayRoot = (owner, name) => `.axm/extensions/${owner}/packs/${name}`;
80
+ /**
81
+ * Build an `InstalledSkillInfo` rooted at `.axm/extensions/<owner>/skills/<name>/src/`.
82
+ *
83
+ * @experimental This API is unstable and may change without notice.
84
+ */
85
+ export const buildNativeInstalledSkillInfo = (args) => {
86
+ const absoluteRoot = args.platform.path.resolve(args.workspaceRoot, `.axm/extensions/${args.owner}/skills/${args.name}/src`);
87
+ return {
88
+ isNative: true,
89
+ skillJson: args.skillJson,
90
+ displayRoot: registryNativeSkillDisplayRoot(args.owner, args.name),
91
+ files: makePlatformSkillFileAccessor(args.platform, absoluteRoot),
92
+ };
93
+ };
94
+ /**
95
+ * Build an `InstalledSkillInfo` rooted at `.axm/extensions/external/skills/<name>/`.
96
+ *
97
+ * @experimental This API is unstable and may change without notice.
98
+ */
99
+ export const buildExternalInstalledSkillInfo = (args) => {
100
+ const absoluteRoot = args.platform.path.resolve(args.workspaceRoot, `.axm/extensions/external/skills/${args.name}`);
101
+ return {
102
+ isNative: false,
103
+ skillJson: undefined,
104
+ displayRoot: externalSkillDisplayRoot(args.name),
105
+ files: makePlatformSkillFileAccessor(args.platform, absoluteRoot),
106
+ };
107
+ };
108
+ /**
109
+ * Build an `InstalledPackInfo` rooted at `.axm/extensions/<owner>/packs/<name>/`.
110
+ *
111
+ * **No `src/` segment** — matches the on-disk pack layout.
112
+ *
113
+ * @experimental This API is unstable and may change without notice.
114
+ */
115
+ export const buildInstalledPackInfo = (args) => {
116
+ const absoluteRoot = args.platform.path.resolve(args.workspaceRoot, `.axm/extensions/${args.owner}/packs/${args.name}`);
117
+ return {
118
+ packJson: args.packJson,
119
+ displayRoot: registryPackDisplayRoot(args.owner, args.name),
120
+ files: makePlatformPackFileAccessor(args.platform, absoluteRoot),
121
+ };
122
+ };
123
+ //# sourceMappingURL=contexts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace-accessor/contexts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EACL,sBAAsB,GAGvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,qBAAqB,GAGtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;AAuClE;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,IAAmC,EACb,EAAE;IACxB,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,iCAAiC,CAAC;QACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;QACxD,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;KACpC,CAAC;AACJ,CAAC,CAAC;AAEF,gFAAgF;AAChF,4BAA4B;AAC5B,gFAAgF;AAEhF,MAAM,oBAAoB,GAAG,CAAC,KAAqB,EAAsB,EAAE,CAAC,CAAC;IAC3E,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACjE,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;CAChE,CAAC,CAAC;AAEH,gFAAgF;AAChF,mCAAmC;AACnC,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,KAAa,EAAE,IAAY,EAAU,EAAE,CACpF,mBAAmB,KAAK,WAAW,IAAI,MAAM,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAY,EAAU,EAAE,CAC/D,mCAAmC,IAAI,EAAE,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAE,IAAY,EAAU,EAAE,CAC7E,mBAAmB,KAAK,UAAU,IAAI,EAAE,CAAC;AAsB3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,IAAuC,EACnB,EAAE;IACtB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAC7C,IAAI,CAAC,aAAa,EAClB,mBAAmB,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,IAAI,MAAM,CACxD,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;QAClE,KAAK,EAAE,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;KAClE,CAAC;AACJ,CAAC,CAAC;AAcF;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,IAAyC,EACrB,EAAE;IACtB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAC7C,IAAI,CAAC,aAAa,EAClB,mCAAmC,IAAI,CAAC,IAAI,EAAE,CAC/C,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,KAAK,EAAE,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;KAClE,CAAC;AACJ,CAAC,CAAC;AAgBF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAgC,EAAqB,EAAE;IAC5F,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAC7C,IAAI,CAAC,aAAa,EAClB,mBAAmB,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,IAAI,EAAE,CACnD,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;QAC3D,KAAK,EAAE,4BAA4B,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;KACjE,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Apply per-extension `Operation` intents to a `WorkspaceState` test double.
3
+ *
4
+ * The lint determinism harness (task 3c.19) needs: given a `WorkspaceState`
5
+ * plus a set of autofix Operations, produce the post-apply state and re-run
6
+ * the rule's `check`. This module is the pure reducer that maps an
7
+ * Operation intent onto state mutations that approximate what the canonical
8
+ * `OperationHandler` would do:
9
+ *
10
+ * - `install-skill` — add a skills lock entry, ensure the canonical
11
+ * `src/SKILL.md` probe exists, ensure per-declared-agent artifact paths
12
+ * exist (if the skill is enabled).
13
+ * - `uninstall-skill` — remove the lock entry, remove the install-dir
14
+ * probes, remove per-agent artifacts.
15
+ * - `enable-skill` / `disable-skill` — toggle per-agent artifact presence.
16
+ * - `install-pack` / `uninstall-pack` — add/remove the pack lock entry.
17
+ * - Other families (`-command`, `-mcp-server`, `-subagent`) are stubs for
18
+ * the harness; today no v1 rule emits those.
19
+ *
20
+ * The reducer writes **raw JSON-compatible shapes** into
21
+ * `state.lockfile` — the accessor returns `LockfileDocument = unknown`, so
22
+ * rules decode via `LockfileSchema` locally and the harness only needs to
23
+ * satisfy the schema post-apply.
24
+ *
25
+ * @experimental This API is unstable and may change without notice.
26
+ * @packageDocumentation
27
+ */
28
+ import type { Operation } from "../../../plan/plan.js";
29
+ import type { DisableSkillIntent, EnableSkillIntent, InstallPackIntent, InstallSkillIntent, UninstallPackIntent, UninstallSkillIntent } from "../workspace/helpers/install-ops.js";
30
+ import type { WorkspaceState } from "./test-state.js";
31
+ export declare const applyInstallSkill: (state: WorkspaceState, intent: InstallSkillIntent) => void;
32
+ export declare const applyUninstallSkill: (state: WorkspaceState, intent: UninstallSkillIntent) => void;
33
+ export declare const applyEnableSkill: (state: WorkspaceState, intent: EnableSkillIntent) => void;
34
+ export declare const applyDisableSkill: (state: WorkspaceState, intent: DisableSkillIntent) => void;
35
+ export declare const applyInstallPack: (state: WorkspaceState, intent: InstallPackIntent) => void;
36
+ export declare const applyUninstallPack: (state: WorkspaceState, intent: UninstallPackIntent) => void;
37
+ export declare const applyOperationIntent: (state: WorkspaceState, op: Operation<string, unknown>) => void;
38
+ //# sourceMappingURL=interpret-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpret-ops.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace-accessor/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;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAyItD,eAAO,MAAM,iBAAiB,GAAI,OAAO,cAAc,EAAE,QAAQ,kBAAkB,KAAG,IA0CrF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,cAAc,EAAE,QAAQ,oBAAoB,KAAG,IAoBzF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,cAAc,EAAE,QAAQ,iBAAiB,KAAG,IAQnF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,OAAO,cAAc,EAAE,QAAQ,kBAAkB,KAAG,IAQrF,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"}
@@ -0,0 +1,311 @@
1
+ /* eslint-disable @typescript-eslint/consistent-type-assertions */
2
+ /**
3
+ * Apply per-extension `Operation` intents to a `WorkspaceState` test double.
4
+ *
5
+ * The lint determinism harness (task 3c.19) needs: given a `WorkspaceState`
6
+ * plus a set of autofix Operations, produce the post-apply state and re-run
7
+ * the rule's `check`. This module is the pure reducer that maps an
8
+ * Operation intent onto state mutations that approximate what the canonical
9
+ * `OperationHandler` would do:
10
+ *
11
+ * - `install-skill` — add a skills lock entry, ensure the canonical
12
+ * `src/SKILL.md` probe exists, ensure per-declared-agent artifact paths
13
+ * exist (if the skill is enabled).
14
+ * - `uninstall-skill` — remove the lock entry, remove the install-dir
15
+ * probes, remove per-agent artifacts.
16
+ * - `enable-skill` / `disable-skill` — toggle per-agent artifact presence.
17
+ * - `install-pack` / `uninstall-pack` — add/remove the pack lock entry.
18
+ * - Other families (`-command`, `-mcp-server`, `-subagent`) are stubs for
19
+ * the harness; today no v1 rule emits those.
20
+ *
21
+ * The reducer writes **raw JSON-compatible shapes** into
22
+ * `state.lockfile` — the accessor returns `LockfileDocument = unknown`, so
23
+ * rules decode via `LockfileSchema` locally and the harness only needs to
24
+ * satisfy the schema post-apply.
25
+ *
26
+ * @experimental This API is unstable and may change without notice.
27
+ * @packageDocumentation
28
+ */
29
+ import { getAllAgents } from "../../../agents/registry.js";
30
+ import { parseRegistrySource } from "../workspace/helpers/registry-source.js";
31
+ // -----------------------------------------------------------------------------
32
+ // Fixed-at-test-time now() — keeps lockfile `installedAt`/`updatedAt` stable.
33
+ // -----------------------------------------------------------------------------
34
+ const FIXED_NOW_ISO = "2026-04-21T00:00:00.000Z";
35
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
36
+ const asLockfile = (doc) => {
37
+ if (!isRecord(doc) || !("lockfileVersion" in doc)) {
38
+ return { lockfileVersion: 1, skills: {} };
39
+ }
40
+ const version = doc["lockfileVersion"];
41
+ const skills = doc["skills"];
42
+ const commands = doc["commands"];
43
+ const subagents = doc["subagents"];
44
+ const mcpServers = doc["mcpServers"];
45
+ const packs = doc["packs"];
46
+ const result = {
47
+ lockfileVersion: typeof version === "number" ? version : 1,
48
+ skills: isRecord(skills) ? { ...skills } : {},
49
+ ...(isRecord(commands) ? { commands: { ...commands } } : {}),
50
+ ...(isRecord(subagents) ? { subagents: { ...subagents } } : {}),
51
+ ...(isRecord(mcpServers) ? { mcpServers: { ...mcpServers } } : {}),
52
+ ...(isRecord(packs) ? { packs: { ...packs } } : {}),
53
+ };
54
+ return result;
55
+ };
56
+ const asSettings = (doc) => isRecord(doc) ? doc : undefined;
57
+ const declaredAgents = (settings) => {
58
+ if (settings === undefined || settings.agents === undefined) {
59
+ return [];
60
+ }
61
+ const ids = new Set(settings.agents);
62
+ return getAllAgents().filter((a) => ids.has(a.id));
63
+ };
64
+ const artifactPath = (agent, skillName) => `${agent.skills.dir}/${skillName}`;
65
+ const registrySkillProbe = (owner, name) => `.axm/extensions/${owner}/skills/${name}/src/SKILL.md`;
66
+ const externalSkillProbe = (name) => `.axm/extensions/external/skills/${name}/SKILL.md`;
67
+ const registryPackProbe = (owner, name) => `.axm/extensions/${owner}/packs/${name}/extension-pack.json`;
68
+ const readEnabled = (settings, skillName) => {
69
+ const skills = settings?.skills;
70
+ if (skills === undefined) {
71
+ return true;
72
+ }
73
+ const entry = skills[skillName];
74
+ if (entry === undefined) {
75
+ return true;
76
+ }
77
+ if (typeof entry === "string") {
78
+ return true;
79
+ }
80
+ if (typeof entry === "object" && entry !== null && "enabled" in entry) {
81
+ const value = entry.enabled;
82
+ return value === undefined ? true : value === true;
83
+ }
84
+ return true;
85
+ };
86
+ // -----------------------------------------------------------------------------
87
+ // Intent → state reducers
88
+ // -----------------------------------------------------------------------------
89
+ export const applyInstallSkill = (state, intent) => {
90
+ const parsed = parseRegistrySource(intent.source);
91
+ const settings = asSettings(state.settings);
92
+ const agents = declaredAgents(settings);
93
+ const enabled = readEnabled(settings, intent.name);
94
+ const lockfile = asLockfile(state.lockfile);
95
+ const newSkills = { ...lockfile.skills };
96
+ if (parsed !== undefined) {
97
+ newSkills[intent.name] = {
98
+ type: "registry",
99
+ owner: parsed.owner,
100
+ name: parsed.name,
101
+ resolvedVersion: parsed.versionConstraint ?? "0.0.0",
102
+ integrity: "sha512-stub",
103
+ sourceName: "default",
104
+ agents: agents.map((a) => a.id),
105
+ installedAt: FIXED_NOW_ISO,
106
+ updatedAt: FIXED_NOW_ISO,
107
+ sourceHash: "stub-source-hash",
108
+ };
109
+ state.existingPaths.add(registrySkillProbe(parsed.owner, parsed.name));
110
+ }
111
+ else {
112
+ newSkills[intent.name] = {
113
+ type: "local",
114
+ path: intent.source,
115
+ agents: agents.map((a) => a.id),
116
+ installedAt: FIXED_NOW_ISO,
117
+ updatedAt: FIXED_NOW_ISO,
118
+ sourceHash: "stub-source-hash",
119
+ };
120
+ state.existingPaths.add(externalSkillProbe(intent.name));
121
+ }
122
+ state.lockfile = { ...lockfile, skills: newSkills };
123
+ if (enabled) {
124
+ for (const agent of agents) {
125
+ const path = artifactPath(agent, intent.name);
126
+ state.existingPaths.add(path);
127
+ pushListing(state, agent.skills.dir, intent.name);
128
+ }
129
+ }
130
+ };
131
+ export const applyUninstallSkill = (state, intent) => {
132
+ const lockfile = asLockfile(state.lockfile);
133
+ const entry = lockfile.skills[intent.name];
134
+ const agents = declaredAgents(asSettings(state.settings));
135
+ const newSkills = { ...lockfile.skills };
136
+ delete newSkills[intent.name];
137
+ state.lockfile = { ...lockfile, skills: newSkills };
138
+ if (entry !== undefined && entry.type === "registry") {
139
+ state.existingPaths.delete(registrySkillProbe(entry.owner, intent.name));
140
+ }
141
+ else {
142
+ state.existingPaths.delete(externalSkillProbe(intent.name));
143
+ }
144
+ for (const agent of agents) {
145
+ const path = artifactPath(agent, intent.name);
146
+ state.existingPaths.delete(path);
147
+ removeFromListing(state, agent.skills.dir, intent.name);
148
+ }
149
+ };
150
+ export const applyEnableSkill = (state, intent) => {
151
+ const agents = declaredAgents(asSettings(state.settings));
152
+ for (const agent of agents) {
153
+ const path = artifactPath(agent, intent.name);
154
+ state.existingPaths.add(path);
155
+ pushListing(state, agent.skills.dir, intent.name);
156
+ }
157
+ setEnabled(state, intent.name, true);
158
+ };
159
+ export const applyDisableSkill = (state, intent) => {
160
+ const agents = declaredAgents(asSettings(state.settings));
161
+ for (const agent of agents) {
162
+ const path = artifactPath(agent, intent.name);
163
+ state.existingPaths.delete(path);
164
+ removeFromListing(state, agent.skills.dir, intent.name);
165
+ }
166
+ setEnabled(state, intent.name, false);
167
+ };
168
+ const setEnabled = (state, name, enabled) => {
169
+ const settings = asSettings(state.settings);
170
+ if (settings?.skills === undefined) {
171
+ return;
172
+ }
173
+ const entry = settings.skills[name];
174
+ if (entry === undefined) {
175
+ return;
176
+ }
177
+ const newEntry = typeof entry === "string"
178
+ ? enabled
179
+ ? entry
180
+ : { source: entry, enabled: false }
181
+ : {
182
+ ...entry,
183
+ enabled,
184
+ };
185
+ const nextSkills = { ...settings.skills, [name]: newEntry };
186
+ state.settings = { ...settings, skills: nextSkills };
187
+ };
188
+ export const applyInstallPack = (state, intent) => {
189
+ const parsed = parseRegistrySource(intent.source);
190
+ if (parsed === undefined) {
191
+ return;
192
+ }
193
+ const lockfile = asLockfile(state.lockfile);
194
+ const nextPacks = {
195
+ ...(lockfile.packs ?? {}),
196
+ [intent.name]: {
197
+ type: "registry",
198
+ owner: parsed.owner,
199
+ name: parsed.name,
200
+ resolvedVersion: parsed.versionConstraint ?? "0.0.0",
201
+ integrity: "sha512-stub",
202
+ sourceName: "default",
203
+ installedAt: FIXED_NOW_ISO,
204
+ updatedAt: FIXED_NOW_ISO,
205
+ resolvedSkills: {},
206
+ resolvedCommands: {},
207
+ resolvedMcpServers: {},
208
+ resolvedSubagents: {},
209
+ },
210
+ };
211
+ state.lockfile = { ...lockfile, packs: nextPacks };
212
+ state.existingPaths.add(registryPackProbe(parsed.owner, parsed.name));
213
+ };
214
+ export const applyUninstallPack = (state, intent) => {
215
+ const lockfile = asLockfile(state.lockfile);
216
+ const packs = lockfile.packs ?? {};
217
+ const entry = packs[intent.name];
218
+ const nextPacks = { ...packs };
219
+ delete nextPacks[intent.name];
220
+ state.lockfile = { ...lockfile, packs: nextPacks };
221
+ if (entry !== undefined && entry.type === "registry") {
222
+ state.existingPaths.delete(registryPackProbe(entry.owner, intent.name));
223
+ }
224
+ };
225
+ // -----------------------------------------------------------------------------
226
+ // Bulk dispatcher
227
+ // -----------------------------------------------------------------------------
228
+ // Narrow-by-predicate helpers — keep the `op.args` cast colocated with
229
+ // runtime validation so the rest of the reducer can trust the narrowed
230
+ // shape without further assertions.
231
+ const isInstallSkillIntent = (args) => typeof args === "object" &&
232
+ args !== null &&
233
+ typeof args.name === "string" &&
234
+ typeof args.source === "string" &&
235
+ typeof args.force === "boolean";
236
+ const isUninstallSkillIntent = (args) => typeof args === "object" &&
237
+ args !== null &&
238
+ typeof args.name === "string";
239
+ const isEnableSkillIntent = (args) => isUninstallSkillIntent(args);
240
+ const isDisableSkillIntent = (args) => isUninstallSkillIntent(args);
241
+ const isInstallPackIntent = (args) => isInstallSkillIntent(args);
242
+ const isUninstallPackIntent = (args) => isUninstallSkillIntent(args);
243
+ export const applyOperationIntent = (state, op) => {
244
+ switch (op.name) {
245
+ case "install-skill":
246
+ if (isInstallSkillIntent(op.args)) {
247
+ applyInstallSkill(state, op.args);
248
+ }
249
+ return;
250
+ case "uninstall-skill":
251
+ if (isUninstallSkillIntent(op.args)) {
252
+ applyUninstallSkill(state, op.args);
253
+ }
254
+ return;
255
+ case "enable-skill":
256
+ if (isEnableSkillIntent(op.args)) {
257
+ applyEnableSkill(state, op.args);
258
+ }
259
+ return;
260
+ case "disable-skill":
261
+ if (isDisableSkillIntent(op.args)) {
262
+ applyDisableSkill(state, op.args);
263
+ }
264
+ return;
265
+ case "install-pack":
266
+ if (isInstallPackIntent(op.args)) {
267
+ applyInstallPack(state, op.args);
268
+ }
269
+ return;
270
+ case "uninstall-pack":
271
+ if (isUninstallPackIntent(op.args)) {
272
+ applyUninstallPack(state, op.args);
273
+ }
274
+ return;
275
+ case "install-command":
276
+ case "uninstall-command":
277
+ case "enable-command":
278
+ case "disable-command":
279
+ case "install-mcp-server":
280
+ case "uninstall-mcp-server":
281
+ case "enable-subagent":
282
+ case "disable-subagent":
283
+ return;
284
+ default:
285
+ throw new Error(`applyOperationIntent: unknown operation '${op.name}'`);
286
+ }
287
+ };
288
+ // -----------------------------------------------------------------------------
289
+ // Listing helpers
290
+ // -----------------------------------------------------------------------------
291
+ const pushListing = (state, dir, child) => {
292
+ const existing = state.listings.get(dir);
293
+ if (existing === undefined) {
294
+ state.listings.set(dir, [child]);
295
+ return;
296
+ }
297
+ if (!existing.includes(child)) {
298
+ existing.push(child);
299
+ }
300
+ };
301
+ const removeFromListing = (state, dir, child) => {
302
+ const existing = state.listings.get(dir);
303
+ if (existing === undefined) {
304
+ return;
305
+ }
306
+ const idx = existing.indexOf(child);
307
+ if (idx !== -1) {
308
+ existing.splice(idx, 1);
309
+ }
310
+ };
311
+ //# sourceMappingURL=interpret-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpret-ops.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace-accessor/interpret-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Platform-backed `WorkspaceLintAccessor`.
3
+ *
4
+ * Reads `.axm/settings.json`, `.axm/axm-lock.yaml`, and workspace-relative
5
+ * filesystem probes from a caller-supplied workspace root. Surfaces ONLY the
6
+ * nine documented methods (task 3c.2):
7
+ *
8
+ * `settings`, `lockfile`, `installedSkills`, `installedPacks`,
9
+ * `knownAgents`, `detectAgents`, `exists`, `isWritable`, `list`.
10
+ *
11
+ * No Layer wiring at rule-evaluation time — the factory captures
12
+ * `FileSystem.FileSystem` + `Path.Path` plus the provided `WorkspaceIndex`.
13
+ *
14
+ * Agent-detection derives probes from the existing `AgentDescriptor`
15
+ * catalog (`packages/core/src/unstable/agents/types.ts`); the rule does not
16
+ * re-invent probe derivation.
17
+ *
18
+ * @experimental This API is unstable and may change without notice.
19
+ * @packageDocumentation
20
+ */
21
+ import * as Effect from "effect/Effect";
22
+ import type * as FileSystem from "effect/FileSystem";
23
+ import type * as Path from "effect/Path";
24
+ import type { PackRuleContext, SkillRuleContext, WorkspaceLintAccessor } from "../../context.js";
25
+ /**
26
+ * Minimal shape the workspace accessor requires to compute `installedSkills`
27
+ * and `installedPacks`. Phase 3c's `WorkspaceIndex` (see `./contexts.ts`)
28
+ * satisfies this by construction.
29
+ */
30
+ export interface WorkspaceIndexView {
31
+ readonly installedSkills: Effect.Effect<ReadonlyArray<SkillRuleContext>>;
32
+ readonly installedPacks: Effect.Effect<ReadonlyArray<PackRuleContext>>;
33
+ }
34
+ /**
35
+ * Platform services required by `makePlatformWorkspaceLintAccessor`.
36
+ */
37
+ export interface WorkspaceAccessorPlatform {
38
+ readonly fs: FileSystem.FileSystem;
39
+ readonly path: Path.Path;
40
+ }
41
+ /** Factory arguments. */
42
+ export interface PlatformWorkspaceLintAccessorArgs {
43
+ readonly platform: WorkspaceAccessorPlatform;
44
+ /** Absolute path to the workspace root (directory containing `.axm/`). */
45
+ readonly workspaceRoot: string;
46
+ /**
47
+ * Workspace index exposing `installedSkills` and `installedPacks` rule
48
+ * contexts. Usually produced by `buildWorkspaceIndex` in `./contexts.ts`.
49
+ */
50
+ readonly index: WorkspaceIndexView;
51
+ /** Scope of the accessor for `detectAgents` routing. */
52
+ readonly scope: "project" | "user";
53
+ }
54
+ /**
55
+ * Build a platform-backed `WorkspaceLintAccessor` rooted at `workspaceRoot`.
56
+ *
57
+ * @experimental This API is unstable and may change without notice.
58
+ */
59
+ export declare const makePlatformWorkspaceLintAccessor: (args: PlatformWorkspaceLintAccessorArgs) => WorkspaceLintAccessor;
60
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/workspace-accessor/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAKV,eAAe,EAGf,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAQ1B;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;CACxE;AAMD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;CAC1B;AAED,yBAAyB;AACzB,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;CACpC;AASD;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,GAC5C,MAAM,iCAAiC,KACtC,qBA8LF,CAAC"}