@agentxm/client-core 0.1.6 → 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 (500) hide show
  1. package/dist/src/unstable/agents/coding-agent.d.ts +1 -1
  2. package/dist/src/unstable/agents/coding-agent.d.ts.map +1 -1
  3. package/dist/src/unstable/agents/coding-agent.js +1 -1
  4. package/dist/src/unstable/agents/coding-agent.js.map +1 -1
  5. package/dist/src/unstable/auth/auth-client.d.ts +1 -1
  6. package/dist/src/unstable/auth/auth-client.d.ts.map +1 -1
  7. package/dist/src/unstable/auth/auth-client.js +1 -1
  8. package/dist/src/unstable/auth/auth-client.js.map +1 -1
  9. package/dist/src/unstable/auth/credential-store.d.ts +1 -1
  10. package/dist/src/unstable/auth/credential-store.d.ts.map +1 -1
  11. package/dist/src/unstable/auth/credential-store.js +1 -1
  12. package/dist/src/unstable/auth/credential-store.js.map +1 -1
  13. package/dist/src/unstable/auth/device-login.d.ts +1 -1
  14. package/dist/src/unstable/auth/device-login.d.ts.map +1 -1
  15. package/dist/src/unstable/auth/device-login.js +1 -1
  16. package/dist/src/unstable/auth/device-login.js.map +1 -1
  17. package/dist/src/unstable/auth/guard-interaction.d.ts +1 -1
  18. package/dist/src/unstable/auth/guard-interaction.d.ts.map +1 -1
  19. package/dist/src/unstable/auth/guard-interaction.js +1 -1
  20. package/dist/src/unstable/auth/guard-interaction.js.map +1 -1
  21. package/dist/src/unstable/auth/login-interaction.d.ts +1 -1
  22. package/dist/src/unstable/auth/login-interaction.d.ts.map +1 -1
  23. package/dist/src/unstable/auth/login-interaction.js +1 -1
  24. package/dist/src/unstable/auth/login-interaction.js.map +1 -1
  25. package/dist/src/unstable/auth/registry-url.d.ts +1 -1
  26. package/dist/src/unstable/auth/registry-url.d.ts.map +1 -1
  27. package/dist/src/unstable/auth/registry-url.js +1 -1
  28. package/dist/src/unstable/auth/registry-url.js.map +1 -1
  29. package/dist/src/unstable/auth/schema.d.ts +3 -3
  30. package/dist/src/unstable/cli-flags/verbosity.d.ts +1 -1
  31. package/dist/src/unstable/cli-flags/verbosity.d.ts.map +1 -1
  32. package/dist/src/unstable/cli-flags/verbosity.js +1 -1
  33. package/dist/src/unstable/cli-flags/verbosity.js.map +1 -1
  34. package/dist/src/unstable/cli-renderer/cli-renderer.d.ts +1 -1
  35. package/dist/src/unstable/cli-renderer/cli-renderer.d.ts.map +1 -1
  36. package/dist/src/unstable/cli-renderer/cli-renderer.js +1 -1
  37. package/dist/src/unstable/cli-renderer/cli-renderer.js.map +1 -1
  38. package/dist/src/unstable/cli-runtime/command-argv.d.ts +1 -1
  39. package/dist/src/unstable/cli-runtime/command-argv.d.ts.map +1 -1
  40. package/dist/src/unstable/cli-runtime/command-argv.js +1 -1
  41. package/dist/src/unstable/cli-runtime/command-argv.js.map +1 -1
  42. package/dist/src/unstable/cli-runtime/graceful-shutdown.js +1 -1
  43. package/dist/src/unstable/cli-runtime/graceful-shutdown.js.map +1 -1
  44. package/dist/src/unstable/cli-runtime/telemetry.d.ts +1 -1
  45. package/dist/src/unstable/cli-runtime/telemetry.d.ts.map +1 -1
  46. package/dist/src/unstable/cli-runtime/telemetry.js +1 -1
  47. package/dist/src/unstable/cli-runtime/telemetry.js.map +1 -1
  48. package/dist/src/unstable/commands/manager.d.ts +1 -1
  49. package/dist/src/unstable/commands/manager.d.ts.map +1 -1
  50. package/dist/src/unstable/commands/manager.js +1 -1
  51. package/dist/src/unstable/commands/manager.js.map +1 -1
  52. package/dist/src/unstable/commands/operations/disable.d.ts +2 -2
  53. package/dist/src/unstable/commands/operations/disable.d.ts.map +1 -1
  54. package/dist/src/unstable/commands/operations/enable.d.ts +2 -2
  55. package/dist/src/unstable/commands/operations/enable.d.ts.map +1 -1
  56. package/dist/src/unstable/commands/operations/install.d.ts +1 -1
  57. package/dist/src/unstable/commands/operations/install.d.ts.map +1 -1
  58. package/dist/src/unstable/commands/operations/new-command.d.ts +2 -2
  59. package/dist/src/unstable/commands/operations/new-command.d.ts.map +1 -1
  60. package/dist/src/unstable/commands/operations/publish.d.ts +1 -1
  61. package/dist/src/unstable/commands/operations/publish.d.ts.map +1 -1
  62. package/dist/src/unstable/commands/operations/uninstall.d.ts +1 -1
  63. package/dist/src/unstable/commands/operations/uninstall.d.ts.map +1 -1
  64. package/dist/src/unstable/date-time.d.ts +2 -2
  65. package/dist/src/unstable/date-time.d.ts.map +1 -1
  66. package/dist/src/unstable/extensions/operations.d.ts +1 -1
  67. package/dist/src/unstable/extensions/operations.d.ts.map +1 -1
  68. package/dist/src/unstable/install-meta/install-meta.d.ts +1 -1
  69. package/dist/src/unstable/install-meta/install-meta.d.ts.map +1 -1
  70. package/dist/src/unstable/install-meta/install-meta.js +1 -1
  71. package/dist/src/unstable/install-meta/install-meta.js.map +1 -1
  72. package/dist/src/unstable/install-method/install-method.d.ts +1 -1
  73. package/dist/src/unstable/install-method/install-method.d.ts.map +1 -1
  74. package/dist/src/unstable/install-method/install-method.js +1 -1
  75. package/dist/src/unstable/install-method/install-method.js.map +1 -1
  76. package/dist/src/unstable/lint/catalog/index.d.ts +39 -0
  77. package/dist/src/unstable/lint/catalog/index.d.ts.map +1 -0
  78. package/dist/src/unstable/lint/catalog/index.js +49 -0
  79. package/dist/src/unstable/lint/catalog/index.js.map +1 -0
  80. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.d.ts +31 -0
  81. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.d.ts.map +1 -0
  82. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.js +41 -0
  83. package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.js.map +1 -0
  84. package/dist/src/unstable/lint/catalog/pack/manifest-present.d.ts +18 -0
  85. package/dist/src/unstable/lint/catalog/pack/manifest-present.d.ts.map +1 -0
  86. package/dist/src/unstable/lint/catalog/pack/manifest-present.js +41 -0
  87. package/dist/src/unstable/lint/catalog/pack/manifest-present.js.map +1 -0
  88. package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.d.ts +26 -0
  89. package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.d.ts.map +1 -0
  90. package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.js +34 -0
  91. package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.js.map +1 -0
  92. package/dist/src/unstable/lint/catalog/pack-accessor/contexts.d.ts +61 -0
  93. package/dist/src/unstable/lint/catalog/pack-accessor/contexts.d.ts.map +1 -0
  94. package/dist/src/unstable/lint/catalog/pack-accessor/contexts.js +46 -0
  95. package/dist/src/unstable/lint/catalog/pack-accessor/contexts.js.map +1 -0
  96. package/dist/src/unstable/lint/catalog/pack-accessor/platform.d.ts +53 -0
  97. package/dist/src/unstable/lint/catalog/pack-accessor/platform.d.ts.map +1 -0
  98. package/dist/src/unstable/lint/catalog/pack-accessor/platform.js +90 -0
  99. package/dist/src/unstable/lint/catalog/pack-accessor/platform.js.map +1 -0
  100. package/dist/src/unstable/lint/catalog/pack-accessor/vft.d.ts +60 -0
  101. package/dist/src/unstable/lint/catalog/pack-accessor/vft.d.ts.map +1 -0
  102. package/dist/src/unstable/lint/catalog/pack-accessor/vft.js +85 -0
  103. package/dist/src/unstable/lint/catalog/pack-accessor/vft.js.map +1 -0
  104. package/dist/src/unstable/lint/catalog/pack.d.ts +37 -0
  105. package/dist/src/unstable/lint/catalog/pack.d.ts.map +1 -0
  106. package/dist/src/unstable/lint/catalog/pack.js +47 -0
  107. package/dist/src/unstable/lint/catalog/pack.js.map +1 -0
  108. package/dist/src/unstable/lint/catalog/shared/schema-rule.d.ts +59 -0
  109. package/dist/src/unstable/lint/catalog/shared/schema-rule.d.ts.map +1 -0
  110. package/dist/src/unstable/lint/catalog/shared/schema-rule.js +99 -0
  111. package/dist/src/unstable/lint/catalog/shared/schema-rule.js.map +1 -0
  112. package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.d.ts +31 -0
  113. package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.d.ts.map +1 -0
  114. package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.js +151 -0
  115. package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.js.map +1 -0
  116. package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.d.ts +26 -0
  117. package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.d.ts.map +1 -0
  118. package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.js +41 -0
  119. package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.js.map +1 -0
  120. package/dist/src/unstable/lint/catalog/skill/manifest-present.d.ts +18 -0
  121. package/dist/src/unstable/lint/catalog/skill/manifest-present.d.ts.map +1 -0
  122. package/dist/src/unstable/lint/catalog/skill/manifest-present.js +46 -0
  123. package/dist/src/unstable/lint/catalog/skill/manifest-present.js.map +1 -0
  124. package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.d.ts +22 -0
  125. package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.d.ts.map +1 -0
  126. package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.js +37 -0
  127. package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.js.map +1 -0
  128. package/dist/src/unstable/lint/catalog/skill/skill-md-present.d.ts +17 -0
  129. package/dist/src/unstable/lint/catalog/skill/skill-md-present.d.ts.map +1 -0
  130. package/dist/src/unstable/lint/catalog/skill/skill-md-present.js +38 -0
  131. package/dist/src/unstable/lint/catalog/skill/skill-md-present.js.map +1 -0
  132. package/dist/src/unstable/lint/catalog/skill-accessor/contexts.d.ts +65 -0
  133. package/dist/src/unstable/lint/catalog/skill-accessor/contexts.d.ts.map +1 -0
  134. package/dist/src/unstable/lint/catalog/skill-accessor/contexts.js +50 -0
  135. package/dist/src/unstable/lint/catalog/skill-accessor/contexts.js.map +1 -0
  136. package/dist/src/unstable/lint/catalog/skill-accessor/platform.d.ts +52 -0
  137. package/dist/src/unstable/lint/catalog/skill-accessor/platform.d.ts.map +1 -0
  138. package/dist/src/unstable/lint/catalog/skill-accessor/platform.js +89 -0
  139. package/dist/src/unstable/lint/catalog/skill-accessor/platform.js.map +1 -0
  140. package/dist/src/unstable/lint/catalog/skill-accessor/vft.d.ts +58 -0
  141. package/dist/src/unstable/lint/catalog/skill-accessor/vft.d.ts.map +1 -0
  142. package/dist/src/unstable/lint/catalog/skill-accessor/vft.js +83 -0
  143. package/dist/src/unstable/lint/catalog/skill-accessor/vft.js.map +1 -0
  144. package/dist/src/unstable/lint/catalog/skill.d.ts +38 -0
  145. package/dist/src/unstable/lint/catalog/skill.d.ts.map +1 -0
  146. package/dist/src/unstable/lint/catalog/skill.js +52 -0
  147. package/dist/src/unstable/lint/catalog/skill.js.map +1 -0
  148. package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.d.ts +23 -0
  149. package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.d.ts.map +1 -0
  150. package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.js +75 -0
  151. package/dist/src/unstable/lint/catalog/workspace/agents-detected-declared.js.map +1 -0
  152. package/dist/src/unstable/lint/catalog/workspace/agents-recognized.d.ts +23 -0
  153. package/dist/src/unstable/lint/catalog/workspace/agents-recognized.d.ts.map +1 -0
  154. package/dist/src/unstable/lint/catalog/workspace/agents-recognized.js +76 -0
  155. package/dist/src/unstable/lint/catalog/workspace/agents-recognized.js.map +1 -0
  156. package/dist/src/unstable/lint/catalog/workspace/helpers/empty.d.ts +18 -0
  157. package/dist/src/unstable/lint/catalog/workspace/helpers/empty.d.ts.map +1 -0
  158. package/dist/src/unstable/lint/catalog/workspace/helpers/empty.js +16 -0
  159. package/dist/src/unstable/lint/catalog/workspace/helpers/empty.js.map +1 -0
  160. package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.d.ts +133 -0
  161. package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.d.ts.map +1 -0
  162. package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.js +149 -0
  163. package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.js.map +1 -0
  164. package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.d.ts +25 -0
  165. package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.d.ts.map +1 -0
  166. package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.js +30 -0
  167. package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.js.map +1 -0
  168. package/dist/src/unstable/lint/catalog/workspace/initialized.d.ts +22 -0
  169. package/dist/src/unstable/lint/catalog/workspace/initialized.d.ts.map +1 -0
  170. package/dist/src/unstable/lint/catalog/workspace/initialized.js +55 -0
  171. package/dist/src/unstable/lint/catalog/workspace/initialized.js.map +1 -0
  172. package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.d.ts +33 -0
  173. package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.d.ts.map +1 -0
  174. package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.js +125 -0
  175. package/dist/src/unstable/lint/catalog/workspace/lockfile-valid.js.map +1 -0
  176. package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.d.ts +19 -0
  177. package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.d.ts.map +1 -0
  178. package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.js +145 -0
  179. package/dist/src/unstable/lint/catalog/workspace/packs-declarations-valid.js.map +1 -0
  180. package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.d.ts +17 -0
  181. package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.d.ts.map +1 -0
  182. package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.js +107 -0
  183. package/dist/src/unstable/lint/catalog/workspace/packs-dependencies-resolved.js.map +1 -0
  184. package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.d.ts +22 -0
  185. package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.d.ts.map +1 -0
  186. package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.js +163 -0
  187. package/dist/src/unstable/lint/catalog/workspace/packs-members-retained.js.map +1 -0
  188. package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.d.ts +28 -0
  189. package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.d.ts.map +1 -0
  190. package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.js +67 -0
  191. package/dist/src/unstable/lint/catalog/workspace/settings-schema-valid.js.map +1 -0
  192. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.d.ts +30 -0
  193. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.d.ts.map +1 -0
  194. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.js +232 -0
  195. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-clean.js.map +1 -0
  196. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.d.ts +26 -0
  197. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.d.ts.map +1 -0
  198. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.js +129 -0
  199. package/dist/src/unstable/lint/catalog/workspace/skills-artifacts-correct.js.map +1 -0
  200. package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.d.ts +26 -0
  201. package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.d.ts.map +1 -0
  202. package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.js +151 -0
  203. package/dist/src/unstable/lint/catalog/workspace/skills-declarations-valid.js.map +1 -0
  204. package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.d.ts +29 -0
  205. package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.d.ts.map +1 -0
  206. package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.js +149 -0
  207. package/dist/src/unstable/lint/catalog/workspace/skills-integrity-valid.js.map +1 -0
  208. package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.d.ts +29 -0
  209. package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.d.ts.map +1 -0
  210. package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.js +242 -0
  211. package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.js.map +1 -0
  212. package/dist/src/unstable/lint/catalog/workspace-accessor/contexts.d.ts +141 -0
  213. package/dist/src/unstable/lint/catalog/workspace-accessor/contexts.d.ts.map +1 -0
  214. package/dist/src/unstable/lint/catalog/workspace-accessor/contexts.js +123 -0
  215. package/dist/src/unstable/lint/catalog/workspace-accessor/contexts.js.map +1 -0
  216. package/dist/src/unstable/lint/catalog/workspace-accessor/interpret-ops.d.ts +38 -0
  217. package/dist/src/unstable/lint/catalog/workspace-accessor/interpret-ops.d.ts.map +1 -0
  218. package/dist/src/unstable/lint/catalog/workspace-accessor/interpret-ops.js +311 -0
  219. package/dist/src/unstable/lint/catalog/workspace-accessor/interpret-ops.js.map +1 -0
  220. package/dist/src/unstable/lint/catalog/workspace-accessor/platform.d.ts +60 -0
  221. package/dist/src/unstable/lint/catalog/workspace-accessor/platform.d.ts.map +1 -0
  222. package/dist/src/unstable/lint/catalog/workspace-accessor/platform.js +201 -0
  223. package/dist/src/unstable/lint/catalog/workspace-accessor/platform.js.map +1 -0
  224. package/dist/src/unstable/lint/catalog/workspace-accessor/test-state.d.ts +65 -0
  225. package/dist/src/unstable/lint/catalog/workspace-accessor/test-state.d.ts.map +1 -0
  226. package/dist/src/unstable/lint/catalog/workspace-accessor/test-state.js +95 -0
  227. package/dist/src/unstable/lint/catalog/workspace-accessor/test-state.js.map +1 -0
  228. package/dist/src/unstable/lint/catalog/workspace.d.ts +47 -0
  229. package/dist/src/unstable/lint/catalog/workspace.d.ts.map +1 -0
  230. package/dist/src/unstable/lint/catalog/workspace.js +80 -0
  231. package/dist/src/unstable/lint/catalog/workspace.js.map +1 -0
  232. package/dist/src/unstable/lint/cli.d.ts +297 -0
  233. package/dist/src/unstable/lint/cli.d.ts.map +1 -0
  234. package/dist/src/unstable/lint/cli.js +388 -0
  235. package/dist/src/unstable/lint/cli.js.map +1 -0
  236. package/dist/src/unstable/lint/compose-path.d.ts +27 -0
  237. package/dist/src/unstable/lint/compose-path.d.ts.map +1 -0
  238. package/dist/src/unstable/lint/compose-path.js +61 -0
  239. package/dist/src/unstable/lint/compose-path.js.map +1 -0
  240. package/dist/src/unstable/lint/config.d.ts +103 -0
  241. package/dist/src/unstable/lint/config.d.ts.map +1 -0
  242. package/dist/src/unstable/lint/config.js +137 -0
  243. package/dist/src/unstable/lint/config.js.map +1 -0
  244. package/dist/src/unstable/lint/context.d.ts +265 -0
  245. package/dist/src/unstable/lint/context.d.ts.map +1 -0
  246. package/dist/src/unstable/lint/context.js +21 -0
  247. package/dist/src/unstable/lint/context.js.map +1 -0
  248. package/dist/src/unstable/lint/evaluate.d.ts +68 -0
  249. package/dist/src/unstable/lint/evaluate.d.ts.map +1 -0
  250. package/dist/src/unstable/lint/evaluate.js +147 -0
  251. package/dist/src/unstable/lint/evaluate.js.map +1 -0
  252. package/dist/src/unstable/lint/index.d.ts +28 -0
  253. package/dist/src/unstable/lint/index.d.ts.map +1 -0
  254. package/dist/src/unstable/lint/index.js +35 -0
  255. package/dist/src/unstable/lint/index.js.map +1 -0
  256. package/dist/src/unstable/lint/issues-to-findings.d.ts +35 -0
  257. package/dist/src/unstable/lint/issues-to-findings.d.ts.map +1 -0
  258. package/dist/src/unstable/lint/issues-to-findings.js +97 -0
  259. package/dist/src/unstable/lint/issues-to-findings.js.map +1 -0
  260. package/dist/src/unstable/lint/rule.d.ts +139 -0
  261. package/dist/src/unstable/lint/rule.d.ts.map +1 -0
  262. package/dist/src/unstable/lint/rule.js +25 -0
  263. package/dist/src/unstable/lint/rule.js.map +1 -0
  264. package/dist/src/unstable/lockfile/schema.d.ts +404 -404
  265. package/dist/src/unstable/mcp-servers/manager.d.ts +1 -1
  266. package/dist/src/unstable/mcp-servers/manager.d.ts.map +1 -1
  267. package/dist/src/unstable/mcp-servers/manager.js +1 -1
  268. package/dist/src/unstable/mcp-servers/manager.js.map +1 -1
  269. package/dist/src/unstable/mcp-servers/operations/install.d.ts +1 -1
  270. package/dist/src/unstable/mcp-servers/operations/install.d.ts.map +1 -1
  271. package/dist/src/unstable/mcp-servers/operations/publish.d.ts +1 -1
  272. package/dist/src/unstable/mcp-servers/operations/publish.d.ts.map +1 -1
  273. package/dist/src/unstable/mcp-servers/operations/uninstall.d.ts +1 -1
  274. package/dist/src/unstable/mcp-servers/operations/uninstall.d.ts.map +1 -1
  275. package/dist/src/unstable/packs/manager.d.ts +1 -1
  276. package/dist/src/unstable/packs/manager.d.ts.map +1 -1
  277. package/dist/src/unstable/packs/manager.js +1 -1
  278. package/dist/src/unstable/packs/manager.js.map +1 -1
  279. package/dist/src/unstable/packs/operations/add-to-pack.d.ts +2 -2
  280. package/dist/src/unstable/packs/operations/add-to-pack.d.ts.map +1 -1
  281. package/dist/src/unstable/packs/operations/install.d.ts +2 -2
  282. package/dist/src/unstable/packs/operations/install.d.ts.map +1 -1
  283. package/dist/src/unstable/packs/operations/install.js +41 -0
  284. package/dist/src/unstable/packs/operations/install.js.map +1 -1
  285. package/dist/src/unstable/packs/operations/new-pack.d.ts +2 -2
  286. package/dist/src/unstable/packs/operations/new-pack.d.ts.map +1 -1
  287. package/dist/src/unstable/packs/operations/publish.d.ts +2 -2
  288. package/dist/src/unstable/packs/operations/publish.d.ts.map +1 -1
  289. package/dist/src/unstable/packs/operations/publish.js +1 -0
  290. package/dist/src/unstable/packs/operations/publish.js.map +1 -1
  291. package/dist/src/unstable/packs/operations/remove-from-pack.d.ts +2 -2
  292. package/dist/src/unstable/packs/operations/remove-from-pack.d.ts.map +1 -1
  293. package/dist/src/unstable/packs/operations/uninstall.d.ts +2 -2
  294. package/dist/src/unstable/packs/operations/uninstall.d.ts.map +1 -1
  295. package/dist/src/unstable/packs/operations/unpack.d.ts +2 -2
  296. package/dist/src/unstable/packs/operations/unpack.d.ts.map +1 -1
  297. package/dist/src/unstable/{workspace → plan}/apply-plan.d.ts +9 -0
  298. package/dist/src/unstable/plan/apply-plan.d.ts.map +1 -0
  299. package/dist/src/unstable/{workspace → plan}/apply-plan.js +10 -1
  300. package/dist/src/unstable/plan/apply-plan.js.map +1 -0
  301. package/dist/src/unstable/plan/index.d.ts +24 -0
  302. package/dist/src/unstable/plan/index.d.ts.map +1 -0
  303. package/dist/src/unstable/plan/index.js +28 -0
  304. package/dist/src/unstable/plan/index.js.map +1 -0
  305. package/dist/src/unstable/{workspace → plan}/plan.d.ts +6 -0
  306. package/dist/src/unstable/plan/plan.d.ts.map +1 -0
  307. package/dist/src/unstable/{workspace → plan}/plan.js +6 -0
  308. package/dist/src/unstable/plan/plan.js.map +1 -0
  309. package/dist/src/unstable/{workspace → plan}/resolve-plan.d.ts +30 -2
  310. package/dist/src/unstable/plan/resolve-plan.d.ts.map +1 -0
  311. package/dist/src/unstable/{workspace → plan}/resolve-plan.js +37 -6
  312. package/dist/src/unstable/plan/resolve-plan.js.map +1 -0
  313. package/dist/src/unstable/publish/manifest-policy.d.ts +8 -8
  314. package/dist/src/unstable/registry/__generated__/registry-client.d.ts +675 -518
  315. package/dist/src/unstable/registry/__generated__/registry-client.d.ts.map +1 -1
  316. package/dist/src/unstable/registry/__generated__/registry-client.js +546 -396
  317. package/dist/src/unstable/registry/__generated__/registry-client.js.map +1 -1
  318. package/dist/src/unstable/registry/remote-client.d.ts.map +1 -1
  319. package/dist/src/unstable/registry/remote-client.js +123 -18
  320. package/dist/src/unstable/registry/remote-client.js.map +1 -1
  321. package/dist/src/unstable/registry/schema.d.ts +2 -2
  322. package/dist/src/unstable/settings/index.d.ts +2 -0
  323. package/dist/src/unstable/settings/index.d.ts.map +1 -1
  324. package/dist/src/unstable/settings/index.js +1 -0
  325. package/dist/src/unstable/settings/index.js.map +1 -1
  326. package/dist/src/unstable/settings/schema.d.ts +3 -0
  327. package/dist/src/unstable/settings/schema.d.ts.map +1 -1
  328. package/dist/src/unstable/settings/schema.js +3 -0
  329. package/dist/src/unstable/settings/schema.js.map +1 -1
  330. package/dist/src/unstable/settings/settings.d.ts +10 -0
  331. package/dist/src/unstable/settings/settings.d.ts.map +1 -1
  332. package/dist/src/unstable/skills/manager.d.ts +1 -1
  333. package/dist/src/unstable/skills/manager.d.ts.map +1 -1
  334. package/dist/src/unstable/skills/manager.js +2 -2
  335. package/dist/src/unstable/skills/manager.js.map +1 -1
  336. package/dist/src/unstable/skills/materialization.js +1 -1
  337. package/dist/src/unstable/skills/materialization.js.map +1 -1
  338. package/dist/src/unstable/skills/operations/copy.d.ts +2 -2
  339. package/dist/src/unstable/skills/operations/copy.d.ts.map +1 -1
  340. package/dist/src/unstable/skills/operations/disable.d.ts +2 -2
  341. package/dist/src/unstable/skills/operations/disable.d.ts.map +1 -1
  342. package/dist/src/unstable/skills/operations/enable.d.ts +2 -2
  343. package/dist/src/unstable/skills/operations/enable.d.ts.map +1 -1
  344. package/dist/src/unstable/skills/operations/install.d.ts +2 -2
  345. package/dist/src/unstable/skills/operations/install.d.ts.map +1 -1
  346. package/dist/src/unstable/skills/operations/install.js +1 -1
  347. package/dist/src/unstable/skills/operations/install.js.map +1 -1
  348. package/dist/src/unstable/skills/operations/new-skill.d.ts +2 -2
  349. package/dist/src/unstable/skills/operations/new-skill.d.ts.map +1 -1
  350. package/dist/src/unstable/skills/operations/publish.d.ts +2 -2
  351. package/dist/src/unstable/skills/operations/publish.d.ts.map +1 -1
  352. package/dist/src/unstable/skills/operations/rename.d.ts +2 -2
  353. package/dist/src/unstable/skills/operations/rename.d.ts.map +1 -1
  354. package/dist/src/unstable/skills/operations/uninstall.d.ts +2 -2
  355. package/dist/src/unstable/skills/operations/uninstall.d.ts.map +1 -1
  356. package/dist/src/unstable/skills/operations/uninstall.js +1 -1
  357. package/dist/src/unstable/skills/operations/uninstall.js.map +1 -1
  358. package/dist/src/unstable/source-resolution/service.d.ts +1 -1
  359. package/dist/src/unstable/source-resolution/service.d.ts.map +1 -1
  360. package/dist/src/unstable/source-resolution/service.js +1 -1
  361. package/dist/src/unstable/source-resolution/service.js.map +1 -1
  362. package/dist/src/unstable/sources/types.d.ts +29 -29
  363. package/dist/src/unstable/sources/types.d.ts.map +1 -1
  364. package/dist/src/unstable/subagents/manager.d.ts +1 -1
  365. package/dist/src/unstable/subagents/manager.d.ts.map +1 -1
  366. package/dist/src/unstable/subagents/manager.js +4 -4
  367. package/dist/src/unstable/subagents/manager.js.map +1 -1
  368. package/dist/src/unstable/subagents/manifest-schema.js +2 -2
  369. package/dist/src/unstable/subagents/manifest-schema.js.map +1 -1
  370. package/dist/src/unstable/subagents/operations/disable.d.ts +2 -2
  371. package/dist/src/unstable/subagents/operations/disable.d.ts.map +1 -1
  372. package/dist/src/unstable/subagents/operations/enable.d.ts +2 -2
  373. package/dist/src/unstable/subagents/operations/enable.d.ts.map +1 -1
  374. package/dist/src/unstable/subagents/operations/publish.d.ts +2 -2
  375. package/dist/src/unstable/subagents/operations/publish.d.ts.map +1 -1
  376. package/dist/src/unstable/telemetry/__generated__/telemetry-client.d.ts +20 -12
  377. package/dist/src/unstable/telemetry/__generated__/telemetry-client.d.ts.map +1 -1
  378. package/dist/src/unstable/telemetry/__generated__/telemetry-client.js +11 -3
  379. package/dist/src/unstable/telemetry/__generated__/telemetry-client.js.map +1 -1
  380. package/dist/src/unstable/telemetry/client.d.ts +1 -1
  381. package/dist/src/unstable/telemetry/client.d.ts.map +1 -1
  382. package/dist/src/unstable/telemetry/client.js +1 -1
  383. package/dist/src/unstable/telemetry/client.js.map +1 -1
  384. package/dist/src/unstable/update-check/update-check.d.ts +1 -1
  385. package/dist/src/unstable/update-check/update-check.d.ts.map +1 -1
  386. package/dist/src/unstable/update-check/update-check.js +1 -1
  387. package/dist/src/unstable/update-check/update-check.js.map +1 -1
  388. package/dist/src/unstable/utils/fs-helpers.d.ts +7 -6
  389. package/dist/src/unstable/utils/fs-helpers.d.ts.map +1 -1
  390. package/dist/src/unstable/utils/fs-helpers.js +9 -9
  391. package/dist/src/unstable/utils/fs-helpers.js.map +1 -1
  392. package/dist/src/unstable/workflows/install-command/workflow.d.ts +1 -1
  393. package/dist/src/unstable/workflows/install-command/workflow.d.ts.map +1 -1
  394. package/dist/src/unstable/workflows/install-command/workflow.js +1 -1
  395. package/dist/src/unstable/workflows/install-command/workflow.js.map +1 -1
  396. package/dist/src/unstable/workflows/uninstall-command/workflow.d.ts +1 -1
  397. package/dist/src/unstable/workflows/uninstall-command/workflow.d.ts.map +1 -1
  398. package/dist/src/unstable/workflows/uninstall-command/workflow.js +1 -1
  399. package/dist/src/unstable/workflows/uninstall-command/workflow.js.map +1 -1
  400. package/dist/src/unstable/workspace/augment-plan.d.ts +1 -1
  401. package/dist/src/unstable/workspace/augment-plan.d.ts.map +1 -1
  402. package/dist/src/unstable/workspace/display-plan.d.ts +1 -1
  403. package/dist/src/unstable/workspace/display-plan.d.ts.map +1 -1
  404. package/dist/src/unstable/workspace/display-plan.js +1 -1
  405. package/dist/src/unstable/workspace/display-plan.js.map +1 -1
  406. package/dist/src/unstable/workspace/index.d.ts +1 -5
  407. package/dist/src/unstable/workspace/index.d.ts.map +1 -1
  408. package/dist/src/unstable/workspace/index.js +5 -7
  409. package/dist/src/unstable/workspace/index.js.map +1 -1
  410. package/dist/src/unstable/workspace/initialization-interaction.d.ts +1 -1
  411. package/dist/src/unstable/workspace/initialization-interaction.d.ts.map +1 -1
  412. package/dist/src/unstable/workspace/initialization-interaction.js +1 -1
  413. package/dist/src/unstable/workspace/initialization-interaction.js.map +1 -1
  414. package/dist/src/unstable/workspace/initialization.d.ts +15 -0
  415. package/dist/src/unstable/workspace/initialization.d.ts.map +1 -1
  416. package/dist/src/unstable/workspace/initialization.js +2 -2
  417. package/dist/src/unstable/workspace/initialization.js.map +1 -1
  418. package/dist/src/unstable/workspace/paths.d.ts +4 -21
  419. package/dist/src/unstable/workspace/paths.d.ts.map +1 -1
  420. package/dist/src/unstable/workspace/paths.js +19 -8
  421. package/dist/src/unstable/workspace/paths.js.map +1 -1
  422. package/dist/src/unstable/workspace/reconciliation.d.ts +1 -1
  423. package/dist/src/unstable/workspace/reconciliation.d.ts.map +1 -1
  424. package/dist/src/unstable/workspace/resolve-plan-interaction.d.ts +1 -1
  425. package/dist/src/unstable/workspace/resolve-plan-interaction.d.ts.map +1 -1
  426. package/dist/src/unstable/workspace/resolve-plan-interaction.js +1 -1
  427. package/dist/src/unstable/workspace/resolve-plan-interaction.js.map +1 -1
  428. package/dist/src/unstable/workspace/scan-plan-readiness.d.ts +1 -1
  429. package/dist/src/unstable/workspace/scan-plan-readiness.d.ts.map +1 -1
  430. package/dist/src/unstable/workspace/service-interface.d.ts +3 -1
  431. package/dist/src/unstable/workspace/service-interface.d.ts.map +1 -1
  432. package/dist/src/unstable/workspace/service-interface.js +1 -1
  433. package/dist/src/unstable/workspace/service-interface.js.map +1 -1
  434. package/dist/src/unstable/workspace/service.js +1 -1
  435. package/dist/src/unstable/workspace/service.js.map +1 -1
  436. package/dist/src/unstable/workspace/settings-validation/types.d.ts +11 -1
  437. package/dist/src/unstable/workspace/settings-validation/types.d.ts.map +1 -1
  438. package/dist/src/unstable/workspace/version-currency/check-currency.d.ts +41 -0
  439. package/dist/src/unstable/workspace/version-currency/check-currency.d.ts.map +1 -0
  440. package/dist/src/unstable/workspace/version-currency/check-currency.js +50 -0
  441. package/dist/src/unstable/workspace/version-currency/check-currency.js.map +1 -0
  442. package/dist/src/unstable/workspace/version-currency/collectors.d.ts +55 -0
  443. package/dist/src/unstable/workspace/version-currency/collectors.d.ts.map +1 -0
  444. package/dist/src/unstable/workspace/version-currency/collectors.js +127 -0
  445. package/dist/src/unstable/workspace/version-currency/collectors.js.map +1 -0
  446. package/dist/src/unstable/workspace/version-currency/index.d.ts +11 -0
  447. package/dist/src/unstable/workspace/version-currency/index.d.ts.map +1 -0
  448. package/dist/src/unstable/workspace/version-currency/index.js +11 -0
  449. package/dist/src/unstable/workspace/version-currency/index.js.map +1 -0
  450. package/dist/src/unstable/workspace/version-currency/test-stubs.d.ts +5 -0
  451. package/dist/src/unstable/workspace/version-currency/test-stubs.d.ts.map +1 -0
  452. package/dist/src/unstable/workspace/version-currency/test-stubs.js +31 -0
  453. package/dist/src/unstable/workspace/version-currency/test-stubs.js.map +1 -0
  454. package/package.json +14 -6
  455. package/dist/src/unstable/workspace/apply-plan.d.ts.map +0 -1
  456. package/dist/src/unstable/workspace/apply-plan.js.map +0 -1
  457. package/dist/src/unstable/workspace/doctor/check-def.d.ts +0 -29
  458. package/dist/src/unstable/workspace/doctor/check-def.d.ts.map +0 -1
  459. package/dist/src/unstable/workspace/doctor/check-def.js +0 -17
  460. package/dist/src/unstable/workspace/doctor/check-def.js.map +0 -1
  461. package/dist/src/unstable/workspace/doctor/checks/agents-configured.d.ts +0 -5
  462. package/dist/src/unstable/workspace/doctor/checks/agents-configured.d.ts.map +0 -1
  463. package/dist/src/unstable/workspace/doctor/checks/agents-configured.js +0 -170
  464. package/dist/src/unstable/workspace/doctor/checks/agents-configured.js.map +0 -1
  465. package/dist/src/unstable/workspace/doctor/checks/extensions-installed.d.ts +0 -5
  466. package/dist/src/unstable/workspace/doctor/checks/extensions-installed.d.ts.map +0 -1
  467. package/dist/src/unstable/workspace/doctor/checks/extensions-installed.js +0 -472
  468. package/dist/src/unstable/workspace/doctor/checks/extensions-installed.js.map +0 -1
  469. package/dist/src/unstable/workspace/doctor/checks/workspace-ready.d.ts +0 -5
  470. package/dist/src/unstable/workspace/doctor/checks/workspace-ready.d.ts.map +0 -1
  471. package/dist/src/unstable/workspace/doctor/checks/workspace-ready.js +0 -201
  472. package/dist/src/unstable/workspace/doctor/checks/workspace-ready.js.map +0 -1
  473. package/dist/src/unstable/workspace/doctor/diagnose.d.ts +0 -49
  474. package/dist/src/unstable/workspace/doctor/diagnose.d.ts.map +0 -1
  475. package/dist/src/unstable/workspace/doctor/diagnose.js +0 -65
  476. package/dist/src/unstable/workspace/doctor/diagnose.js.map +0 -1
  477. package/dist/src/unstable/workspace/doctor/index.d.ts +0 -8
  478. package/dist/src/unstable/workspace/doctor/index.d.ts.map +0 -1
  479. package/dist/src/unstable/workspace/doctor/index.js +0 -6
  480. package/dist/src/unstable/workspace/doctor/index.js.map +0 -1
  481. package/dist/src/unstable/workspace/doctor/rollup.d.ts +0 -4
  482. package/dist/src/unstable/workspace/doctor/rollup.d.ts.map +0 -1
  483. package/dist/src/unstable/workspace/doctor/rollup.js +0 -28
  484. package/dist/src/unstable/workspace/doctor/rollup.js.map +0 -1
  485. package/dist/src/unstable/workspace/doctor/runner.d.ts +0 -6
  486. package/dist/src/unstable/workspace/doctor/runner.d.ts.map +0 -1
  487. package/dist/src/unstable/workspace/doctor/runner.js +0 -179
  488. package/dist/src/unstable/workspace/doctor/runner.js.map +0 -1
  489. package/dist/src/unstable/workspace/doctor/types.d.ts +0 -125
  490. package/dist/src/unstable/workspace/doctor/types.d.ts.map +0 -1
  491. package/dist/src/unstable/workspace/doctor/types.js +0 -58
  492. package/dist/src/unstable/workspace/doctor/types.js.map +0 -1
  493. package/dist/src/unstable/workspace/plan.d.ts.map +0 -1
  494. package/dist/src/unstable/workspace/plan.js.map +0 -1
  495. package/dist/src/unstable/workspace/resolve-plan.d.ts.map +0 -1
  496. package/dist/src/unstable/workspace/resolve-plan.js.map +0 -1
  497. package/dist/src/unstable/workspace/sync.d.ts +0 -17
  498. package/dist/src/unstable/workspace/sync.d.ts.map +0 -1
  499. package/dist/src/unstable/workspace/sync.js +0 -142
  500. package/dist/src/unstable/workspace/sync.js.map +0 -1
@@ -0,0 +1,37 @@
1
+ /**
2
+ * `skill/manifest-schema-valid` — `skill.json` conforms to
3
+ * `SkillManifestSchema`.
4
+ *
5
+ * Delegates to Effect Schema per `docs/design/lint-engine.md §4`
6
+ * ("Schema-valid rules delegate to Effect Schema"). Issues map 1:1 to
7
+ * findings via `issuesToFindings`.
8
+ *
9
+ * Early-return arms (no findings):
10
+ *
11
+ * - `subject.isNative === false` — non-native skills have no manifest to
12
+ * check (complement of `skill/manifest-present`).
13
+ * - `subject.skillJson === undefined` — manifest is absent (covered by
14
+ * `skill/manifest-present`).
15
+ *
16
+ * @experimental This API is unstable and may change without notice.
17
+ * @packageDocumentation
18
+ */
19
+ import { SkillManifestSchema } from "../../../skills/manifest-schema.js";
20
+ import { schemaDecodeFindings } from "../shared/schema-rule.js";
21
+ const RULE_ID = "skill/manifest-schema-valid";
22
+ const SKILL_JSON = "skill.json";
23
+ export const manifestSchemaValidRule = {
24
+ id: RULE_ID,
25
+ description: "skill.json conforms to SkillManifestSchema.",
26
+ kind: "advisory",
27
+ severity: "error",
28
+ check: (context) => {
29
+ if (!context.subject.isNative) {
30
+ // Non-native skills have no skill.json to schema-validate. The
31
+ // presence rule (manifest-present) does not fire for non-native either.
32
+ return schemaDecodeFindings(RULE_ID, "error", SKILL_JSON, SkillManifestSchema, undefined);
33
+ }
34
+ return schemaDecodeFindings(RULE_ID, "error", SKILL_JSON, SkillManifestSchema, context.subject.skillJson);
35
+ },
36
+ };
37
+ //# sourceMappingURL=manifest-schema-valid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-schema-valid.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill/manifest-schema-valid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,OAAO,GAAG,6BAA6B,CAAC;AAC9C,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,CAAC,MAAM,uBAAuB,GAAmC;IACrE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,6CAA6C;IAC1D,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;QACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9B,+DAA+D;YAC/D,wEAAwE;YACxE,OAAO,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,oBAAoB,CACzB,OAAO,EACP,OAAO,EACP,UAAU,EACV,mBAAmB,EACnB,OAAO,CAAC,OAAO,CAAC,SAAS,CAC1B,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `skill/skill-md-present` — every skill must have a `SKILL.md` at its root.
3
+ *
4
+ * Applies to every skill context (native and non-native). Upstream-required
5
+ * by the agentskills specification; also the precondition for the
6
+ * `skill/frontmatter-parseable` cascade.
7
+ *
8
+ * Advisory-only (no autofix). Scaffolding `SKILL.md` is a user-authored action
9
+ * per `docs/design/lint-engine.md §6`.
10
+ *
11
+ * @experimental This API is unstable and may change without notice.
12
+ * @packageDocumentation
13
+ */
14
+ import type { SkillRuleContext } from "../../context.js";
15
+ import type { AdvisoryRule } from "../../rule.js";
16
+ export declare const skillMdPresentRule: AdvisoryRule<SkillRuleContext>;
17
+ //# sourceMappingURL=skill-md-present.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-md-present.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill/skill-md-present.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAKnE,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,gBAAgB,CAqB7D,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `skill/skill-md-present` — every skill must have a `SKILL.md` at its root.
3
+ *
4
+ * Applies to every skill context (native and non-native). Upstream-required
5
+ * by the agentskills specification; also the precondition for the
6
+ * `skill/frontmatter-parseable` cascade.
7
+ *
8
+ * Advisory-only (no autofix). Scaffolding `SKILL.md` is a user-authored action
9
+ * per `docs/design/lint-engine.md §6`.
10
+ *
11
+ * @experimental This API is unstable and may change without notice.
12
+ * @packageDocumentation
13
+ */
14
+ import * as Effect from "effect/Effect";
15
+ const RULE_ID = "skill/skill-md-present";
16
+ const SKILL_MD = "SKILL.md";
17
+ export const skillMdPresentRule = {
18
+ id: RULE_ID,
19
+ description: "Skill has a SKILL.md at its root.",
20
+ kind: "advisory",
21
+ severity: "error",
22
+ check: (context) => Effect.map(context.files.exists(SKILL_MD), (present) => {
23
+ if (present) {
24
+ return [];
25
+ }
26
+ return [
27
+ {
28
+ kind: "advisory",
29
+ ruleId: RULE_ID,
30
+ severity: "error",
31
+ message: "SKILL.md is missing; every skill must expose a SKILL.md at its root.",
32
+ suggestions: [`Create ${SKILL_MD} with required frontmatter (name, description).`],
33
+ location: { file: SKILL_MD },
34
+ },
35
+ ];
36
+ }),
37
+ };
38
+ //# sourceMappingURL=skill-md-present.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-md-present.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill/skill-md-present.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,MAAM,OAAO,GAAG,wBAAwB,CAAC;AACzC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAE5B,MAAM,CAAC,MAAM,kBAAkB,GAAmC;IAChE,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,mCAAmC;IAChD,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAkC,EAAE;QACrF,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL;gBACE,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,sEAAsE;gBAC/E,WAAW,EAAE,CAAC,UAAU,QAAQ,iDAAiD,CAAC;gBAClF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC7B;SACF,CAAC;IACJ,CAAC,CAAC;CACL,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * `buildSkillRuleContexts` — build `SkillRuleContext[]` from a
3
+ * `WorkspaceIndex`-shaped input.
4
+ *
5
+ * Phase 3c owns `WorkspaceIndex`; Phase 3a pins the minimal shape
6
+ * `buildSkillRuleContexts` consumes so Phase 3c can satisfy it without
7
+ * renegotiation. The minimal shape is **exactly** the set of fields the
8
+ * function reads per installed skill:
9
+ *
10
+ * - `isNative` — whether the skill is expected to expose `skill.json`
11
+ * (registry-installed natives: `true`; managed external: `false`).
12
+ * - `skillJson` — pre-decoded `skill.json` when present (caller decodes
13
+ * once per skill, so rules don't re-read + re-parse).
14
+ * - `displayRoot` — posix-relative root used by the renderer; the caller
15
+ * picks per provenance (see the table below).
16
+ * - `files` — the pre-bound `SkillFileAccessor`. The caller chooses VFT or
17
+ * platform-backed.
18
+ *
19
+ * Provenance → `displayRoot` table:
20
+ *
21
+ * | Surface | `displayRoot` |
22
+ * | ----------------------------------------- | --------------------------------------------- |
23
+ * | Publish (Phase 4) | `""` |
24
+ * | Registry-installed native skill | `.axm/extensions/<@owner>/skills/<name>/src` |
25
+ * | External skill | `.axm/extensions/external/skills/<name>` |
26
+ *
27
+ * @experimental This API is unstable and may change without notice.
28
+ * @packageDocumentation
29
+ */
30
+ import type { SkillFileAccessor, SkillRuleContext } from "../../context.js";
31
+ /**
32
+ * Minimal structural shape `buildSkillRuleContexts` needs per installed
33
+ * skill. Phase 3c's `WorkspaceIndex` satisfies this by construction — its
34
+ * `installedSkills` field is `ReadonlyArray<InstalledSkillInfo>`.
35
+ *
36
+ * @experimental This API is unstable and may change without notice.
37
+ */
38
+ export interface InstalledSkillInfo {
39
+ readonly isNative: boolean;
40
+ readonly skillJson: unknown;
41
+ readonly displayRoot: string;
42
+ readonly files: SkillFileAccessor;
43
+ }
44
+ /**
45
+ * Minimal structural shape of the WorkspaceIndex subset `buildSkillRuleContexts`
46
+ * consumes. Keeping the function input narrow keeps Phase 3a and Phase 3c
47
+ * decoupled: the index implementation (Phase 3c) can add more methods
48
+ * without affecting this call site.
49
+ *
50
+ * @experimental This API is unstable and may change without notice.
51
+ */
52
+ export interface SkillIndexView {
53
+ readonly installedSkills: ReadonlyArray<InstalledSkillInfo>;
54
+ }
55
+ /**
56
+ * Project an index's `installedSkills` into `SkillRuleContext`s with their
57
+ * `displayRoot` and `subject` fields pre-populated.
58
+ *
59
+ * Publish callers bypass this helper and construct a single context directly
60
+ * — they have exactly one skill in play and no workspace.
61
+ *
62
+ * @experimental This API is unstable and may change without notice.
63
+ */
64
+ export declare const buildSkillRuleContexts: (index: SkillIndexView) => ReadonlyArray<SkillRuleContext>;
65
+ //# sourceMappingURL=contexts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill-accessor/contexts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAM5E;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;CAC7D;AAMD;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,cAAc,KAAG,aAAa,CAAC,gBAAgB,CAU1F,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * `buildSkillRuleContexts` — build `SkillRuleContext[]` from a
3
+ * `WorkspaceIndex`-shaped input.
4
+ *
5
+ * Phase 3c owns `WorkspaceIndex`; Phase 3a pins the minimal shape
6
+ * `buildSkillRuleContexts` consumes so Phase 3c can satisfy it without
7
+ * renegotiation. The minimal shape is **exactly** the set of fields the
8
+ * function reads per installed skill:
9
+ *
10
+ * - `isNative` — whether the skill is expected to expose `skill.json`
11
+ * (registry-installed natives: `true`; managed external: `false`).
12
+ * - `skillJson` — pre-decoded `skill.json` when present (caller decodes
13
+ * once per skill, so rules don't re-read + re-parse).
14
+ * - `displayRoot` — posix-relative root used by the renderer; the caller
15
+ * picks per provenance (see the table below).
16
+ * - `files` — the pre-bound `SkillFileAccessor`. The caller chooses VFT or
17
+ * platform-backed.
18
+ *
19
+ * Provenance → `displayRoot` table:
20
+ *
21
+ * | Surface | `displayRoot` |
22
+ * | ----------------------------------------- | --------------------------------------------- |
23
+ * | Publish (Phase 4) | `""` |
24
+ * | Registry-installed native skill | `.axm/extensions/<@owner>/skills/<name>/src` |
25
+ * | External skill | `.axm/extensions/external/skills/<name>` |
26
+ *
27
+ * @experimental This API is unstable and may change without notice.
28
+ * @packageDocumentation
29
+ */
30
+ // -----------------------------------------------------------------------------
31
+ // buildSkillRuleContexts
32
+ // -----------------------------------------------------------------------------
33
+ /**
34
+ * Project an index's `installedSkills` into `SkillRuleContext`s with their
35
+ * `displayRoot` and `subject` fields pre-populated.
36
+ *
37
+ * Publish callers bypass this helper and construct a single context directly
38
+ * — they have exactly one skill in play and no workspace.
39
+ *
40
+ * @experimental This API is unstable and may change without notice.
41
+ */
42
+ export const buildSkillRuleContexts = (index) => index.installedSkills.map((info) => ({
43
+ subject: {
44
+ isNative: info.isNative,
45
+ skillJson: info.skillJson,
46
+ },
47
+ files: info.files,
48
+ displayRoot: info.displayRoot,
49
+ }));
50
+ //# sourceMappingURL=contexts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill-accessor/contexts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAkCH,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAqB,EAAmC,EAAE,CAC/F,KAAK,CAAC,eAAe,CAAC,GAAG,CACvB,CAAC,IAAI,EAAoB,EAAE,CAAC,CAAC;IAC3B,OAAO,EAAE;QACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B;IACD,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,WAAW,EAAE,IAAI,CAAC,WAAW;CAC9B,CAAC,CACH,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Platform-backed `SkillFileAccessor` for `axm lint`.
3
+ *
4
+ * Maps accessor-relative posix paths to on-disk absolute paths rooted at
5
+ * the caller-supplied skill-root directory. Layout conventions per
6
+ * `docs/design/lint-engine.md §3` "Skill accessor root":
7
+ *
8
+ * - **Native (registry-installed):**
9
+ * `<workspaceRoot>/.axm/extensions/<@owner>/skills/<sanitized-name>/src/`
10
+ * - **Non-native (managed external):**
11
+ * `<workspaceRoot>/.axm/extensions/external/skills/<sanitized-name>/`
12
+ *
13
+ * The accessor is provenance-agnostic — rules see one uniform contract and
14
+ * never branch on native-vs-non-native. The caller (`buildSkillRuleContexts`
15
+ * or the CLI entry point) picks the root.
16
+ *
17
+ * Bounds enforcement:
18
+ *
19
+ * - No `..` segments in accessor-relative paths.
20
+ * - No absolute paths (posix or Windows drive letters).
21
+ * - Resolved absolute paths are verified to stay under the accessor root.
22
+ *
23
+ * The accessor is built via a factory that captures a pre-resolved
24
+ * `FileSystem.FileSystem` + `Path.Path` services and an absolute root, so
25
+ * `SkillFileAccessor` stays Layer-free at rule-evaluation time (per
26
+ * `lint-engine` spec "Rule contexts expose narrow caller-bound accessors").
27
+ *
28
+ * @experimental This API is unstable and may change without notice.
29
+ * @packageDocumentation
30
+ */
31
+ import type * as FileSystem from "effect/FileSystem";
32
+ import type * as Path from "effect/Path";
33
+ import type { SkillFileAccessor } from "../../context.js";
34
+ /**
35
+ * Platform services needed by the platform-backed skill accessor.
36
+ */
37
+ export interface SkillAccessorPlatform {
38
+ readonly fs: FileSystem.FileSystem;
39
+ readonly path: Path.Path;
40
+ }
41
+ /**
42
+ * Build a platform-backed `SkillFileAccessor` rooted at `absoluteRoot`.
43
+ *
44
+ * `absoluteRoot` SHOULD be the absolute path to the skill root directory
45
+ * (either `.../src/` for native, or `.../external/skills/<name>/` for
46
+ * non-native). The caller typically sources it from `computeSkillPaths` in
47
+ * `../../../skills/paths.ts`.
48
+ *
49
+ * @experimental This API is unstable and may change without notice.
50
+ */
51
+ export declare const makePlatformSkillFileAccessor: (platform: SkillAccessorPlatform, absoluteRoot: string) => SkillFileAccessor;
52
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill-accessor/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAmB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM3E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;CAC1B;AAMD;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,GACxC,UAAU,qBAAqB,EAC/B,cAAc,MAAM,KACnB,iBA2DF,CAAC"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Platform-backed `SkillFileAccessor` for `axm lint`.
3
+ *
4
+ * Maps accessor-relative posix paths to on-disk absolute paths rooted at
5
+ * the caller-supplied skill-root directory. Layout conventions per
6
+ * `docs/design/lint-engine.md §3` "Skill accessor root":
7
+ *
8
+ * - **Native (registry-installed):**
9
+ * `<workspaceRoot>/.axm/extensions/<@owner>/skills/<sanitized-name>/src/`
10
+ * - **Non-native (managed external):**
11
+ * `<workspaceRoot>/.axm/extensions/external/skills/<sanitized-name>/`
12
+ *
13
+ * The accessor is provenance-agnostic — rules see one uniform contract and
14
+ * never branch on native-vs-non-native. The caller (`buildSkillRuleContexts`
15
+ * or the CLI entry point) picks the root.
16
+ *
17
+ * Bounds enforcement:
18
+ *
19
+ * - No `..` segments in accessor-relative paths.
20
+ * - No absolute paths (posix or Windows drive letters).
21
+ * - Resolved absolute paths are verified to stay under the accessor root.
22
+ *
23
+ * The accessor is built via a factory that captures a pre-resolved
24
+ * `FileSystem.FileSystem` + `Path.Path` services and an absolute root, so
25
+ * `SkillFileAccessor` stays Layer-free at rule-evaluation time (per
26
+ * `lint-engine` spec "Rule contexts expose narrow caller-bound accessors").
27
+ *
28
+ * @experimental This API is unstable and may change without notice.
29
+ * @packageDocumentation
30
+ */
31
+ import * as Effect from "effect/Effect";
32
+ /**
33
+ * Build a platform-backed `SkillFileAccessor` rooted at `absoluteRoot`.
34
+ *
35
+ * `absoluteRoot` SHOULD be the absolute path to the skill root directory
36
+ * (either `.../src/` for native, or `.../external/skills/<name>/` for
37
+ * non-native). The caller typically sources it from `computeSkillPaths` in
38
+ * `../../../skills/paths.ts`.
39
+ *
40
+ * @experimental This API is unstable and may change without notice.
41
+ */
42
+ export const makePlatformSkillFileAccessor = (platform, absoluteRoot) => {
43
+ const { fs, path } = platform;
44
+ const normalizedRoot = path.resolve(absoluteRoot);
45
+ const resolveWithinRoot = (input) => {
46
+ if (input === "" || input === "." || input === "./") {
47
+ return { kind: "ok", absolute: normalizedRoot };
48
+ }
49
+ if (/^[a-z]:[\\/]/i.test(input) || input.startsWith("/") || input.startsWith("\\")) {
50
+ return { kind: "escape" };
51
+ }
52
+ const normalized = input.replace(/\\/g, "/").replace(/^\.\//, "");
53
+ for (const segment of normalized.split("/")) {
54
+ if (segment === "..") {
55
+ return { kind: "escape" };
56
+ }
57
+ }
58
+ const absolute = path.resolve(normalizedRoot, normalized);
59
+ if (absolute !== normalizedRoot && !absolute.startsWith(`${normalizedRoot}${path.sep}`)) {
60
+ return { kind: "escape" };
61
+ }
62
+ return { kind: "ok", absolute };
63
+ };
64
+ const makeAccessError = (p, reason, message) => ({
65
+ _tag: "FileAccessError",
66
+ path: p,
67
+ reason,
68
+ message,
69
+ });
70
+ return {
71
+ exists: (p) => {
72
+ const resolved = resolveWithinRoot(p);
73
+ if (resolved.kind !== "ok") {
74
+ return Effect.succeed(false);
75
+ }
76
+ return fs.exists(resolved.absolute).pipe(Effect.catch(() => Effect.succeed(false)));
77
+ },
78
+ readBytes: (p) => {
79
+ const resolved = resolveWithinRoot(p);
80
+ if (resolved.kind === "escape") {
81
+ return Effect.fail(makeAccessError(p, "path-escape", `path escapes the accessor root: ${p}`));
82
+ }
83
+ return fs
84
+ .readFile(resolved.absolute)
85
+ .pipe(Effect.mapError((cause) => makeAccessError(p, "read-error", `read failed at ${p}: ${String(cause)}`)));
86
+ },
87
+ };
88
+ };
89
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill-accessor/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAqBxC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,QAA+B,EAC/B,YAAoB,EACD,EAAE;IACrB,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAElD,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAiB,EAAE;QACzD,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QAClD,CAAC;QACD,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAC1D,IAAI,QAAQ,KAAK,cAAc,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;YACxF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CACtB,CAAS,EACT,MAAiC,EACjC,OAAe,EACE,EAAE,CAAC,CAAC;QACrB,IAAI,EAAE,iBAA0B;QAChC,IAAI,EAAE,CAAC;QACP,MAAM;QACN,OAAO;KACR,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC3B,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;QACD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACf,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,MAAM,CAAC,IAAI,CAChB,eAAe,CAAC,CAAC,EAAE,aAAa,EAAE,mCAAmC,CAAC,EAAE,CAAC,CAC1E,CAAC;YACJ,CAAC;YACD,OAAO,EAAE;iBACN,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;iBAC3B,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,kBAAkB,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAC1E,CACF,CAAC;QACN,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * VFT-backed `SkillFileAccessor` for publish callers.
3
+ *
4
+ * A Virtual File Tree (VFT) is an in-memory representation of an extracted
5
+ * archive — the registry publish pipeline extracts an upload into a VFT, then
6
+ * passes that tree into Phase 4 decode/lint. The VFT's schema and bounds
7
+ * (max size, file count, path depth) are owned by the registry extract phase
8
+ * (Phase 4 concern); this accessor treats the tree as a read-only
9
+ * `path -> Uint8Array` map and enforces its own rooted-read + no-`..`-escape
10
+ * invariants at the rule boundary.
11
+ *
12
+ * Bounds enforcement here:
13
+ *
14
+ * - Paths are normalized to posix, `./` prefixes are stripped.
15
+ * - Empty path resolves to the accessor root itself (useful for
16
+ * `location.file = ""` findings but not currently exercised by the v1
17
+ * catalog).
18
+ * - Any path containing a `..` segment raises `FileAccessError {
19
+ * reason: "path-escape" }` from `readBytes` and resolves to `false` from
20
+ * `exists`.
21
+ * - Absolute paths (starting with `/` or a Windows drive letter) are
22
+ * treated as escape attempts.
23
+ *
24
+ * @experimental This API is unstable and may change without notice.
25
+ * @packageDocumentation
26
+ */
27
+ import type { SkillFileAccessor } from "../../context.js";
28
+ /**
29
+ * Minimal shape of a Virtual File Tree consumed by the accessor.
30
+ *
31
+ * The registry VFT (Phase 4, this-repo) MUST satisfy this interface. The
32
+ * registry may (and will) expose additional methods — file count, archive
33
+ * bounds, iteration — but those are the extract phase's concern.
34
+ *
35
+ * @experimental This API is unstable and may change without notice.
36
+ */
37
+ export interface VFTNode {
38
+ /**
39
+ * Whether the given posix path points to a file within the tree.
40
+ */
41
+ readonly hasFile: (posixPath: string) => boolean;
42
+ /**
43
+ * Return the bytes for the given posix path, or `undefined` when the path
44
+ * does not resolve to a file (missing, directory, or outside the tree).
45
+ */
46
+ readonly getFile: (posixPath: string) => Uint8Array | undefined;
47
+ }
48
+ /**
49
+ * Build a VFT-backed `SkillFileAccessor` rooted at the tree's root.
50
+ *
51
+ * Callers that root the skill at a sub-path of the archive should pre-strip
52
+ * that sub-path before constructing the tree — the accessor enforces no
53
+ * `..` escape above the root it was given.
54
+ *
55
+ * @experimental This API is unstable and may change without notice.
56
+ */
57
+ export declare const makeVftSkillFileAccessor: (tree: VFTNode) => SkillFileAccessor;
58
+ //# sourceMappingURL=vft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vft.d.ts","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill-accessor/vft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAmB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM3E;;;;;;;;GAQG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,CAAC;CACjE;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GAAI,MAAM,OAAO,KAAG,iBAqBxD,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * VFT-backed `SkillFileAccessor` for publish callers.
3
+ *
4
+ * A Virtual File Tree (VFT) is an in-memory representation of an extracted
5
+ * archive — the registry publish pipeline extracts an upload into a VFT, then
6
+ * passes that tree into Phase 4 decode/lint. The VFT's schema and bounds
7
+ * (max size, file count, path depth) are owned by the registry extract phase
8
+ * (Phase 4 concern); this accessor treats the tree as a read-only
9
+ * `path -> Uint8Array` map and enforces its own rooted-read + no-`..`-escape
10
+ * invariants at the rule boundary.
11
+ *
12
+ * Bounds enforcement here:
13
+ *
14
+ * - Paths are normalized to posix, `./` prefixes are stripped.
15
+ * - Empty path resolves to the accessor root itself (useful for
16
+ * `location.file = ""` findings but not currently exercised by the v1
17
+ * catalog).
18
+ * - Any path containing a `..` segment raises `FileAccessError {
19
+ * reason: "path-escape" }` from `readBytes` and resolves to `false` from
20
+ * `exists`.
21
+ * - Absolute paths (starting with `/` or a Windows drive letter) are
22
+ * treated as escape attempts.
23
+ *
24
+ * @experimental This API is unstable and may change without notice.
25
+ * @packageDocumentation
26
+ */
27
+ import * as Effect from "effect/Effect";
28
+ /**
29
+ * Build a VFT-backed `SkillFileAccessor` rooted at the tree's root.
30
+ *
31
+ * Callers that root the skill at a sub-path of the archive should pre-strip
32
+ * that sub-path before constructing the tree — the accessor enforces no
33
+ * `..` escape above the root it was given.
34
+ *
35
+ * @experimental This API is unstable and may change without notice.
36
+ */
37
+ export const makeVftSkillFileAccessor = (tree) => {
38
+ return {
39
+ exists: (path) => {
40
+ const normalized = normalizeAndCheck(path);
41
+ if (normalized.kind !== "ok") {
42
+ return Effect.succeed(false);
43
+ }
44
+ return Effect.succeed(tree.hasFile(normalized.path));
45
+ },
46
+ readBytes: (path) => {
47
+ const normalized = normalizeAndCheck(path);
48
+ if (normalized.kind === "escape") {
49
+ return failFileAccess(path, "path-escape", `path escapes the accessor root: ${path}`);
50
+ }
51
+ const bytes = tree.getFile(normalized.path);
52
+ if (bytes === undefined) {
53
+ return failFileAccess(path, "read-error", `file not found at ${path}`);
54
+ }
55
+ return Effect.succeed(bytes);
56
+ },
57
+ };
58
+ };
59
+ const normalizeAndCheck = (path) => {
60
+ if (path === "" || path === "." || path === "./") {
61
+ return { kind: "ok", path: "" };
62
+ }
63
+ // Windows drive letters (`C:/`) and absolute posix paths both count as
64
+ // escape attempts at a skill-rooted accessor.
65
+ if (/^[a-z]:[\\/]/i.test(path) || path.startsWith("/") || path.startsWith("\\")) {
66
+ return { kind: "escape" };
67
+ }
68
+ const normalized = path.replace(/\\/g, "/").replace(/^\.\//, "");
69
+ const segments = normalized.split("/");
70
+ for (const segment of segments) {
71
+ if (segment === "..") {
72
+ return { kind: "escape" };
73
+ }
74
+ }
75
+ return { kind: "ok", path: normalized };
76
+ };
77
+ const failFileAccess = (path, reason, message) => Effect.fail({
78
+ _tag: "FileAccessError",
79
+ path,
80
+ reason,
81
+ message,
82
+ });
83
+ //# sourceMappingURL=vft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vft.js","sourceRoot":"","sources":["../../../../../../src/unstable/lint/catalog/skill-accessor/vft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AA4BxC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAa,EAAqB,EAAE;IAC3E,OAAO;QACL,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAClB,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,OAAO,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,mCAAmC,IAAI,EAAE,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,qBAAqB,IAAI,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAQF,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAmB,EAAE;IAC1D,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAClC,CAAC;IACD,uEAAuE;IACvE,8CAA8C;IAC9C,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,IAAY,EACZ,MAAiC,EACjC,OAAe,EAC6B,EAAE,CAC9C,MAAM,CAAC,IAAI,CAAC;IACV,IAAI,EAAE,iBAA0B;IAChC,IAAI;IACJ,MAAM;IACN,OAAO;CACR,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `skill/*` rule catalog — the v1 five-rule set.
3
+ *
4
+ * Per `docs/design/lint-engine.md §10.skill`, registry publish and `axm lint`
5
+ * run exactly these rules against each skill context:
6
+ *
7
+ * | ID | Severity | Autofix |
8
+ * | -------------------------------- | -------- | ------- |
9
+ * | `skill/skill-md-present` | error | — |
10
+ * | `skill/manifest-present` | error | — |
11
+ * | `skill/frontmatter-parseable` | error | — |
12
+ * | `skill/manifest-schema-valid` | error | — |
13
+ * | `skill/manifest-keys-recognized` | warning | — |
14
+ *
15
+ * All five ship `kind: "advisory"`. Native-vs-non-native applicability is
16
+ * expressed via `check` early-return (no separate `applies` predicate); see
17
+ * each rule's module for the guard.
18
+ *
19
+ * Rule ids are **registered with the lint config allowlist at module-load
20
+ * time**, so importing this catalog extends the set of accepted
21
+ * `.axm/settings.json` `lint.rules` keys. Consumers that never import the
22
+ * catalog (the registry Worker bundle for `pack`-only routes, e.g.) don't pay
23
+ * the registration cost.
24
+ *
25
+ * @experimental This API is unstable and may change without notice.
26
+ * @packageDocumentation
27
+ */
28
+ import type { LintRule } from "../rule.js";
29
+ import type { SkillRuleContext } from "../context.js";
30
+ /**
31
+ * Ordered v1 `skill/*` rule catalog. Declaration order is the evaluation
32
+ * order within a single `evaluateContexts` call (deterministic ordering is
33
+ * test-observable; see `evaluate.ts`).
34
+ *
35
+ * @experimental This API is unstable and may change without notice.
36
+ */
37
+ export declare const skillRules: ReadonlyArray<LintRule<SkillRuleContext>>;
38
+ //# sourceMappingURL=skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../../../../src/unstable/lint/catalog/skill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAOtD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAMhE,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * `skill/*` rule catalog — the v1 five-rule set.
3
+ *
4
+ * Per `docs/design/lint-engine.md §10.skill`, registry publish and `axm lint`
5
+ * run exactly these rules against each skill context:
6
+ *
7
+ * | ID | Severity | Autofix |
8
+ * | -------------------------------- | -------- | ------- |
9
+ * | `skill/skill-md-present` | error | — |
10
+ * | `skill/manifest-present` | error | — |
11
+ * | `skill/frontmatter-parseable` | error | — |
12
+ * | `skill/manifest-schema-valid` | error | — |
13
+ * | `skill/manifest-keys-recognized` | warning | — |
14
+ *
15
+ * All five ship `kind: "advisory"`. Native-vs-non-native applicability is
16
+ * expressed via `check` early-return (no separate `applies` predicate); see
17
+ * each rule's module for the guard.
18
+ *
19
+ * Rule ids are **registered with the lint config allowlist at module-load
20
+ * time**, so importing this catalog extends the set of accepted
21
+ * `.axm/settings.json` `lint.rules` keys. Consumers that never import the
22
+ * catalog (the registry Worker bundle for `pack`-only routes, e.g.) don't pay
23
+ * the registration cost.
24
+ *
25
+ * @experimental This API is unstable and may change without notice.
26
+ * @packageDocumentation
27
+ */
28
+ import { registerLintRuleIds } from "../config.js";
29
+ import { skillMdPresentRule } from "./skill/skill-md-present.js";
30
+ import { manifestPresentRule } from "./skill/manifest-present.js";
31
+ import { frontmatterParseableRule } from "./skill/frontmatter-parseable.js";
32
+ import { manifestSchemaValidRule } from "./skill/manifest-schema-valid.js";
33
+ import { manifestKeysRecognizedRule } from "./skill/manifest-keys-recognized.js";
34
+ /**
35
+ * Ordered v1 `skill/*` rule catalog. Declaration order is the evaluation
36
+ * order within a single `evaluateContexts` call (deterministic ordering is
37
+ * test-observable; see `evaluate.ts`).
38
+ *
39
+ * @experimental This API is unstable and may change without notice.
40
+ */
41
+ export const skillRules = [
42
+ skillMdPresentRule,
43
+ manifestPresentRule,
44
+ frontmatterParseableRule,
45
+ manifestSchemaValidRule,
46
+ manifestKeysRecognizedRule,
47
+ ];
48
+ // Register ids into the `LintConfig.rules` allowlist. Module-load side effect:
49
+ // a consumer that imports this catalog (or the `catalog/index` barrel) enables
50
+ // `.axm/settings.json` `lint.rules` to reference any of the above rule ids.
51
+ registerLintRuleIds(skillRules.map((r) => r.id));
52
+ //# sourceMappingURL=skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../../../src/unstable/lint/catalog/skill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAA8C;IACnE,kBAAkB;IAClB,mBAAmB;IACnB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;CAC3B,CAAC;AAEF,+EAA+E;AAC/E,+EAA+E;AAC/E,4EAA4E;AAC5E,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}