@lesliechan721/aw 0.1.0-beta.3

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 (429) hide show
  1. package/dist/authoring/assets/aw-config.d.mts +2 -0
  2. package/dist/authoring/assets/aw-config.mjs +556 -0
  3. package/dist/authoring/assets/aw-config.mjs.map +1 -0
  4. package/dist/authoring/scripts/add-skill.d.mts +2 -0
  5. package/dist/authoring/scripts/add-skill.mjs +355 -0
  6. package/dist/authoring/scripts/add-skill.mjs.map +1 -0
  7. package/dist/authoring/scripts/check-plugin-versions.d.mts +2 -0
  8. package/dist/authoring/scripts/check-plugin-versions.mjs +5 -0
  9. package/dist/authoring/scripts/check-plugin-versions.mjs.map +1 -0
  10. package/dist/authoring/scripts/init-plugin.d.mts +2 -0
  11. package/dist/authoring/scripts/init-plugin.mjs +512 -0
  12. package/dist/authoring/scripts/init-plugin.mjs.map +1 -0
  13. package/dist/authoring/scripts/lib/javascript-import-scanner.d.mts +4 -0
  14. package/dist/authoring/scripts/lib/javascript-import-scanner.mjs +261 -0
  15. package/dist/authoring/scripts/lib/javascript-import-scanner.mjs.map +1 -0
  16. package/dist/authoring/scripts/lib/plugin-root.d.mts +26 -0
  17. package/dist/authoring/scripts/lib/plugin-root.mjs +125 -0
  18. package/dist/authoring/scripts/lib/plugin-root.mjs.map +1 -0
  19. package/dist/authoring/scripts/lib/plugin-version-check.d.mts +55 -0
  20. package/dist/authoring/scripts/lib/plugin-version-check.mjs +777 -0
  21. package/dist/authoring/scripts/lib/plugin-version-check.mjs.map +1 -0
  22. package/dist/authoring/scripts/lib/semver.d.mts +9 -0
  23. package/dist/authoring/scripts/lib/semver.mjs +63 -0
  24. package/dist/authoring/scripts/lib/semver.mjs.map +1 -0
  25. package/dist/authoring/scripts/lib/skill-scaffold.d.mts +124 -0
  26. package/dist/authoring/scripts/lib/skill-scaffold.mjs +374 -0
  27. package/dist/authoring/scripts/lib/skill-scaffold.mjs.map +1 -0
  28. package/dist/authoring/scripts/plugin-status.d.mts +2 -0
  29. package/dist/authoring/scripts/plugin-status.mjs +96 -0
  30. package/dist/authoring/scripts/plugin-status.mjs.map +1 -0
  31. package/dist/authoring/scripts/validate-plugin.d.mts +2 -0
  32. package/dist/authoring/scripts/validate-plugin.mjs +4442 -0
  33. package/dist/authoring/scripts/validate-plugin.mjs.map +1 -0
  34. package/dist/authoring/scripts/validate-skill.d.mts +2 -0
  35. package/dist/authoring/scripts/validate-skill.mjs +126 -0
  36. package/dist/authoring/scripts/validate-skill.mjs.map +1 -0
  37. package/dist/index.d.ts +2 -0
  38. package/dist/index.js +8 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/scripts/aw-skill-eval-engine.d.ts +13 -0
  41. package/dist/scripts/aw-skill-eval-engine.js +31 -0
  42. package/dist/scripts/aw-skill-eval-engine.js.map +1 -0
  43. package/dist/scripts/bundle-plugins.d.ts +18 -0
  44. package/dist/scripts/bundle-plugins.js +123 -0
  45. package/dist/scripts/bundle-plugins.js.map +1 -0
  46. package/dist/scripts/codex-eval-app-server.d.ts +89 -0
  47. package/dist/scripts/codex-eval-app-server.js +1228 -0
  48. package/dist/scripts/codex-eval-app-server.js.map +1 -0
  49. package/dist/scripts/codex-eval-isolation.d.ts +61 -0
  50. package/dist/scripts/codex-eval-isolation.js +318 -0
  51. package/dist/scripts/codex-eval-isolation.js.map +1 -0
  52. package/dist/scripts/codex-eval-process-management.d.ts +8 -0
  53. package/dist/scripts/codex-eval-process-management.js +69 -0
  54. package/dist/scripts/codex-eval-process-management.js.map +1 -0
  55. package/dist/scripts/codex-eval-process-tree.d.ts +38 -0
  56. package/dist/scripts/codex-eval-process-tree.js +803 -0
  57. package/dist/scripts/codex-eval-process-tree.js.map +1 -0
  58. package/dist/scripts/codex-eval-runtime-config.d.ts +62 -0
  59. package/dist/scripts/codex-eval-runtime-config.js +843 -0
  60. package/dist/scripts/codex-eval-runtime-config.js.map +1 -0
  61. package/dist/scripts/codex-trigger-eval.d.ts +84 -0
  62. package/dist/scripts/codex-trigger-eval.js +968 -0
  63. package/dist/scripts/codex-trigger-eval.js.map +1 -0
  64. package/dist/scripts/eval-plugin-skills-audited.d.ts +6 -0
  65. package/dist/scripts/eval-plugin-skills-audited.js +261 -0
  66. package/dist/scripts/eval-plugin-skills-audited.js.map +1 -0
  67. package/dist/scripts/eval-plugin-skills.d.ts +45 -0
  68. package/dist/scripts/eval-plugin-skills.js +1586 -0
  69. package/dist/scripts/eval-plugin-skills.js.map +1 -0
  70. package/dist/scripts/eval-run-layout.d.ts +17 -0
  71. package/dist/scripts/eval-run-layout.js +26 -0
  72. package/dist/scripts/eval-run-layout.js.map +1 -0
  73. package/dist/scripts/plugin-eval-contract.d.ts +185 -0
  74. package/dist/scripts/plugin-eval-contract.js +695 -0
  75. package/dist/scripts/plugin-eval-contract.js.map +1 -0
  76. package/dist/scripts/plugin-eval-materializer.d.ts +13 -0
  77. package/dist/scripts/plugin-eval-materializer.js +421 -0
  78. package/dist/scripts/plugin-eval-materializer.js.map +1 -0
  79. package/dist/scripts/plugin-staging.d.ts +43 -0
  80. package/dist/scripts/plugin-staging.js +196 -0
  81. package/dist/scripts/plugin-staging.js.map +1 -0
  82. package/dist/scripts/skill-reporting.d.ts +212 -0
  83. package/dist/scripts/skill-reporting.js +922 -0
  84. package/dist/scripts/skill-reporting.js.map +1 -0
  85. package/dist/scripts/test-plugin-scripts.d.ts +7 -0
  86. package/dist/scripts/test-plugin-scripts.js +674 -0
  87. package/dist/scripts/test-plugin-scripts.js.map +1 -0
  88. package/dist/src/adapters/helpers.d.ts +44 -0
  89. package/dist/src/adapters/helpers.js +95 -0
  90. package/dist/src/adapters/helpers.js.map +1 -0
  91. package/dist/src/authoring/workspace-commands.d.ts +46 -0
  92. package/dist/src/authoring/workspace-commands.js +133 -0
  93. package/dist/src/authoring/workspace-commands.js.map +1 -0
  94. package/dist/src/commands/catalog-publish.d.ts +33 -0
  95. package/dist/src/commands/catalog-publish.js +374 -0
  96. package/dist/src/commands/catalog-publish.js.map +1 -0
  97. package/dist/src/commands/catalog-source.d.ts +111 -0
  98. package/dist/src/commands/catalog-source.js +266 -0
  99. package/dist/src/commands/catalog-source.js.map +1 -0
  100. package/dist/src/commands/console.d.ts +3 -0
  101. package/dist/src/commands/console.js +44 -0
  102. package/dist/src/commands/console.js.map +1 -0
  103. package/dist/src/commands/dependency-operation-plan.d.ts +28 -0
  104. package/dist/src/commands/dependency-operation-plan.js +15 -0
  105. package/dist/src/commands/dependency-operation-plan.js.map +1 -0
  106. package/dist/src/commands/init.d.ts +31 -0
  107. package/dist/src/commands/init.js +63 -0
  108. package/dist/src/commands/init.js.map +1 -0
  109. package/dist/src/commands/options.d.ts +68 -0
  110. package/dist/src/commands/options.js +146 -0
  111. package/dist/src/commands/options.js.map +1 -0
  112. package/dist/src/commands/rebuild-command.d.ts +77 -0
  113. package/dist/src/commands/rebuild-command.js +1681 -0
  114. package/dist/src/commands/rebuild-command.js.map +1 -0
  115. package/dist/src/commands/rebuild-integration.d.ts +94 -0
  116. package/dist/src/commands/rebuild-integration.js +3289 -0
  117. package/dist/src/commands/rebuild-integration.js.map +1 -0
  118. package/dist/src/commands/rebuild-operations.d.ts +110 -0
  119. package/dist/src/commands/rebuild-operations.js +791 -0
  120. package/dist/src/commands/rebuild-operations.js.map +1 -0
  121. package/dist/src/commands/review-publication.d.ts +99 -0
  122. package/dist/src/commands/review-publication.js +904 -0
  123. package/dist/src/commands/review-publication.js.map +1 -0
  124. package/dist/src/commands/runtime.d.ts +176 -0
  125. package/dist/src/commands/runtime.js +746 -0
  126. package/dist/src/commands/runtime.js.map +1 -0
  127. package/dist/src/commands/status-v4.d.ts +102 -0
  128. package/dist/src/commands/status-v4.js +844 -0
  129. package/dist/src/commands/status-v4.js.map +1 -0
  130. package/dist/src/commands/status.d.ts +93 -0
  131. package/dist/src/commands/status.js +442 -0
  132. package/dist/src/commands/status.js.map +1 -0
  133. package/dist/src/commands/wizard.d.ts +57 -0
  134. package/dist/src/commands/wizard.js +58 -0
  135. package/dist/src/commands/wizard.js.map +1 -0
  136. package/dist/src/commands/write-commands.d.ts +7 -0
  137. package/dist/src/commands/write-commands.js +167 -0
  138. package/dist/src/commands/write-commands.js.map +1 -0
  139. package/dist/src/constants.d.ts +25 -0
  140. package/dist/src/constants.js +26 -0
  141. package/dist/src/constants.js.map +1 -0
  142. package/dist/src/generators/agents.d.ts +3 -0
  143. package/dist/src/generators/agents.js +46 -0
  144. package/dist/src/generators/agents.js.map +1 -0
  145. package/dist/src/generators/hooks.d.ts +15 -0
  146. package/dist/src/generators/hooks.js +76 -0
  147. package/dist/src/generators/hooks.js.map +1 -0
  148. package/dist/src/generators/instructions.d.ts +13 -0
  149. package/dist/src/generators/instructions.js +66 -0
  150. package/dist/src/generators/instructions.js.map +1 -0
  151. package/dist/src/generators/local-plugin.d.ts +53 -0
  152. package/dist/src/generators/local-plugin.js +1268 -0
  153. package/dist/src/generators/local-plugin.js.map +1 -0
  154. package/dist/src/generators/permissions.d.ts +10 -0
  155. package/dist/src/generators/permissions.js +37 -0
  156. package/dist/src/generators/permissions.js.map +1 -0
  157. package/dist/src/generators/shared.d.ts +2 -0
  158. package/dist/src/generators/shared.js +15 -0
  159. package/dist/src/generators/shared.js.map +1 -0
  160. package/dist/src/index.d.ts +35 -0
  161. package/dist/src/index.js +2344 -0
  162. package/dist/src/index.js.map +1 -0
  163. package/dist/src/output/command-receipt.d.ts +90 -0
  164. package/dist/src/output/command-receipt.js +129 -0
  165. package/dist/src/output/command-receipt.js.map +1 -0
  166. package/dist/src/output/debug-log.d.ts +4 -0
  167. package/dist/src/output/debug-log.js +97 -0
  168. package/dist/src/output/debug-log.js.map +1 -0
  169. package/dist/src/output/equivalent-command.d.ts +9 -0
  170. package/dist/src/output/equivalent-command.js +39 -0
  171. package/dist/src/output/equivalent-command.js.map +1 -0
  172. package/dist/src/output/model.d.ts +117 -0
  173. package/dist/src/output/model.js +145 -0
  174. package/dist/src/output/model.js.map +1 -0
  175. package/dist/src/output/rebuild-progress.d.ts +21 -0
  176. package/dist/src/output/rebuild-progress.js +138 -0
  177. package/dist/src/output/rebuild-progress.js.map +1 -0
  178. package/dist/src/output/redact.d.ts +3 -0
  179. package/dist/src/output/redact.js +39 -0
  180. package/dist/src/output/redact.js.map +1 -0
  181. package/dist/src/output/reporter.d.ts +9 -0
  182. package/dist/src/output/reporter.js +133 -0
  183. package/dist/src/output/reporter.js.map +1 -0
  184. package/dist/src/portable/commands.d.ts +120 -0
  185. package/dist/src/portable/commands.js +506 -0
  186. package/dist/src/portable/commands.js.map +1 -0
  187. package/dist/src/portable/materializer.d.ts +50 -0
  188. package/dist/src/portable/materializer.js +408 -0
  189. package/dist/src/portable/materializer.js.map +1 -0
  190. package/dist/src/portable/skills-cli.d.ts +43 -0
  191. package/dist/src/portable/skills-cli.js +148 -0
  192. package/dist/src/portable/skills-cli.js.map +1 -0
  193. package/dist/src/tui/components.d.ts +32 -0
  194. package/dist/src/tui/components.js +42 -0
  195. package/dist/src/tui/components.js.map +1 -0
  196. package/dist/src/tui/console-app-v4.d.ts +20 -0
  197. package/dist/src/tui/console-app-v4.js +2613 -0
  198. package/dist/src/tui/console-app-v4.js.map +1 -0
  199. package/dist/src/tui/controller-runtime.d.ts +11 -0
  200. package/dist/src/tui/controller-runtime.js +902 -0
  201. package/dist/src/tui/controller-runtime.js.map +1 -0
  202. package/dist/src/tui/controller.d.ts +367 -0
  203. package/dist/src/tui/controller.js +1724 -0
  204. package/dist/src/tui/controller.js.map +1 -0
  205. package/dist/src/tui/index.d.ts +13 -0
  206. package/dist/src/tui/index.js +14 -0
  207. package/dist/src/tui/index.js.map +1 -0
  208. package/dist/src/tui/keys.d.ts +12 -0
  209. package/dist/src/tui/keys.js +22 -0
  210. package/dist/src/tui/keys.js.map +1 -0
  211. package/dist/src/tui/layout.d.ts +12 -0
  212. package/dist/src/tui/layout.js +19 -0
  213. package/dist/src/tui/layout.js.map +1 -0
  214. package/dist/src/tui/model.d.ts +279 -0
  215. package/dist/src/tui/model.js +652 -0
  216. package/dist/src/tui/model.js.map +1 -0
  217. package/dist/src/tui/prompt.d.ts +8 -0
  218. package/dist/src/tui/prompt.js +242 -0
  219. package/dist/src/tui/prompt.js.map +1 -0
  220. package/dist/src/tui/router.d.ts +153 -0
  221. package/dist/src/tui/router.js +102 -0
  222. package/dist/src/tui/router.js.map +1 -0
  223. package/dist/src/tui/runner.d.ts +11 -0
  224. package/dist/src/tui/runner.js +71 -0
  225. package/dist/src/tui/runner.js.map +1 -0
  226. package/dist/src/tui/theme.d.ts +18 -0
  227. package/dist/src/tui/theme.js +20 -0
  228. package/dist/src/tui/theme.js.map +1 -0
  229. package/dist/src/tui/views.d.ts +57 -0
  230. package/dist/src/tui/views.js +173 -0
  231. package/dist/src/tui/views.js.map +1 -0
  232. package/dist/src/tui/wizard.d.ts +11 -0
  233. package/dist/src/tui/wizard.js +321 -0
  234. package/dist/src/tui/wizard.js.map +1 -0
  235. package/dist/src/types.d.ts +313 -0
  236. package/dist/src/types.js +33 -0
  237. package/dist/src/types.js.map +1 -0
  238. package/dist/src/utils/active-marketplace-runtime-lock.d.ts +12 -0
  239. package/dist/src/utils/active-marketplace-runtime-lock.js +133 -0
  240. package/dist/src/utils/active-marketplace-runtime-lock.js.map +1 -0
  241. package/dist/src/utils/agent-version.d.ts +13 -0
  242. package/dist/src/utils/agent-version.js +172 -0
  243. package/dist/src/utils/agent-version.js.map +1 -0
  244. package/dist/src/utils/artifact-plan.d.ts +26 -0
  245. package/dist/src/utils/artifact-plan.js +444 -0
  246. package/dist/src/utils/artifact-plan.js.map +1 -0
  247. package/dist/src/utils/artifact-renderer.d.ts +124 -0
  248. package/dist/src/utils/artifact-renderer.js +442 -0
  249. package/dist/src/utils/artifact-renderer.js.map +1 -0
  250. package/dist/src/utils/artifact-sources.d.ts +8 -0
  251. package/dist/src/utils/artifact-sources.js +10 -0
  252. package/dist/src/utils/artifact-sources.js.map +1 -0
  253. package/dist/src/utils/aw-home-mutation-lock.d.ts +10 -0
  254. package/dist/src/utils/aw-home-mutation-lock.js +55 -0
  255. package/dist/src/utils/aw-home-mutation-lock.js.map +1 -0
  256. package/dist/src/utils/bundle-integrity.d.ts +3 -0
  257. package/dist/src/utils/bundle-integrity.js +88 -0
  258. package/dist/src/utils/bundle-integrity.js.map +1 -0
  259. package/dist/src/utils/bundle-layout.d.ts +4 -0
  260. package/dist/src/utils/bundle-layout.js +546 -0
  261. package/dist/src/utils/bundle-layout.js.map +1 -0
  262. package/dist/src/utils/catalog-digests.d.ts +8 -0
  263. package/dist/src/utils/catalog-digests.js +108 -0
  264. package/dist/src/utils/catalog-digests.js.map +1 -0
  265. package/dist/src/utils/catalog-manifest-v3.d.ts +2 -0
  266. package/dist/src/utils/catalog-manifest-v3.js +3 -0
  267. package/dist/src/utils/catalog-manifest-v3.js.map +1 -0
  268. package/dist/src/utils/catalog-manifest-v4.d.ts +5 -0
  269. package/dist/src/utils/catalog-manifest-v4.js +106 -0
  270. package/dist/src/utils/catalog-manifest-v4.js.map +1 -0
  271. package/dist/src/utils/catalog-public-error.d.ts +15 -0
  272. package/dist/src/utils/catalog-public-error.js +84 -0
  273. package/dist/src/utils/catalog-public-error.js.map +1 -0
  274. package/dist/src/utils/catalog-runtime-projection.d.ts +36 -0
  275. package/dist/src/utils/catalog-runtime-projection.js +172 -0
  276. package/dist/src/utils/catalog-runtime-projection.js.map +1 -0
  277. package/dist/src/utils/catalog-snapshot.d.ts +8 -0
  278. package/dist/src/utils/catalog-snapshot.js +12 -0
  279. package/dist/src/utils/catalog-snapshot.js.map +1 -0
  280. package/dist/src/utils/catalog-source-cache.d.ts +61 -0
  281. package/dist/src/utils/catalog-source-cache.js +276 -0
  282. package/dist/src/utils/catalog-source-cache.js.map +1 -0
  283. package/dist/src/utils/catalog-source-identity.d.ts +4 -0
  284. package/dist/src/utils/catalog-source-identity.js +118 -0
  285. package/dist/src/utils/catalog-source-identity.js.map +1 -0
  286. package/dist/src/utils/catalog-source-presentation.d.ts +1 -0
  287. package/dist/src/utils/catalog-source-presentation.js +32 -0
  288. package/dist/src/utils/catalog-source-presentation.js.map +1 -0
  289. package/dist/src/utils/catalog-source-references.d.ts +65 -0
  290. package/dist/src/utils/catalog-source-references.js +1418 -0
  291. package/dist/src/utils/catalog-source-references.js.map +1 -0
  292. package/dist/src/utils/catalog-sources.d.ts +39 -0
  293. package/dist/src/utils/catalog-sources.js +293 -0
  294. package/dist/src/utils/catalog-sources.js.map +1 -0
  295. package/dist/src/utils/codex-config.d.ts +124 -0
  296. package/dist/src/utils/codex-config.js +1011 -0
  297. package/dist/src/utils/codex-config.js.map +1 -0
  298. package/dist/src/utils/codex-project-surface.d.ts +3 -0
  299. package/dist/src/utils/codex-project-surface.js +49 -0
  300. package/dist/src/utils/codex-project-surface.js.map +1 -0
  301. package/dist/src/utils/codex-roles.d.ts +71 -0
  302. package/dist/src/utils/codex-roles.js +257 -0
  303. package/dist/src/utils/codex-roles.js.map +1 -0
  304. package/dist/src/utils/codex-skill-staging.d.ts +9 -0
  305. package/dist/src/utils/codex-skill-staging.js +8 -0
  306. package/dist/src/utils/codex-skill-staging.js.map +1 -0
  307. package/dist/src/utils/config-value.d.ts +3 -0
  308. package/dist/src/utils/config-value.js +23 -0
  309. package/dist/src/utils/config-value.js.map +1 -0
  310. package/dist/src/utils/dynamic-skill-tree.d.ts +32 -0
  311. package/dist/src/utils/dynamic-skill-tree.js +436 -0
  312. package/dist/src/utils/dynamic-skill-tree.js.map +1 -0
  313. package/dist/src/utils/file-rules.d.ts +1 -0
  314. package/dist/src/utils/file-rules.js +2 -0
  315. package/dist/src/utils/file-rules.js.map +1 -0
  316. package/dist/src/utils/git-catalog-provider.d.ts +7 -0
  317. package/dist/src/utils/git-catalog-provider.js +510 -0
  318. package/dist/src/utils/git-catalog-provider.js.map +1 -0
  319. package/dist/src/utils/hooks-contract.d.ts +1 -0
  320. package/dist/src/utils/hooks-contract.js +2 -0
  321. package/dist/src/utils/hooks-contract.js.map +1 -0
  322. package/dist/src/utils/json.d.ts +4 -0
  323. package/dist/src/utils/json.js +29 -0
  324. package/dist/src/utils/json.js.map +1 -0
  325. package/dist/src/utils/lifecycle-active-store.d.ts +175 -0
  326. package/dist/src/utils/lifecycle-active-store.js +1276 -0
  327. package/dist/src/utils/lifecycle-active-store.js.map +1 -0
  328. package/dist/src/utils/local-marketplace.d.ts +41 -0
  329. package/dist/src/utils/local-marketplace.js +317 -0
  330. package/dist/src/utils/local-marketplace.js.map +1 -0
  331. package/dist/src/utils/manifest.d.ts +14 -0
  332. package/dist/src/utils/manifest.js +36 -0
  333. package/dist/src/utils/manifest.js.map +1 -0
  334. package/dist/src/utils/marketplace.d.ts +3 -0
  335. package/dist/src/utils/marketplace.js +76 -0
  336. package/dist/src/utils/marketplace.js.map +1 -0
  337. package/dist/src/utils/multi-source-catalog.d.ts +72 -0
  338. package/dist/src/utils/multi-source-catalog.js +402 -0
  339. package/dist/src/utils/multi-source-catalog.js.map +1 -0
  340. package/dist/src/utils/native-cli.d.ts +75 -0
  341. package/dist/src/utils/native-cli.js +435 -0
  342. package/dist/src/utils/native-cli.js.map +1 -0
  343. package/dist/src/utils/orphan-marketplace-cleanup.d.ts +18 -0
  344. package/dist/src/utils/orphan-marketplace-cleanup.js +202 -0
  345. package/dist/src/utils/orphan-marketplace-cleanup.js.map +1 -0
  346. package/dist/src/utils/ownership.d.ts +130 -0
  347. package/dist/src/utils/ownership.js +766 -0
  348. package/dist/src/utils/ownership.js.map +1 -0
  349. package/dist/src/utils/path-catalog-provider.d.ts +7 -0
  350. package/dist/src/utils/path-catalog-provider.js +87 -0
  351. package/dist/src/utils/path-catalog-provider.js.map +1 -0
  352. package/dist/src/utils/paths.d.ts +41 -0
  353. package/dist/src/utils/paths.js +138 -0
  354. package/dist/src/utils/paths.js.map +1 -0
  355. package/dist/src/utils/platform-entries.d.ts +1 -0
  356. package/dist/src/utils/platform-entries.js +2 -0
  357. package/dist/src/utils/platform-entries.js.map +1 -0
  358. package/dist/src/utils/platform-support.d.ts +1 -0
  359. package/dist/src/utils/platform-support.js +2 -0
  360. package/dist/src/utils/platform-support.js.map +1 -0
  361. package/dist/src/utils/plugin-authoring-capabilities.d.ts +23 -0
  362. package/dist/src/utils/plugin-authoring-capabilities.js +37 -0
  363. package/dist/src/utils/plugin-authoring-capabilities.js.map +1 -0
  364. package/dist/src/utils/plugin-authoring-capabilities.json +92 -0
  365. package/dist/src/utils/plugin-config-write.d.ts +107 -0
  366. package/dist/src/utils/plugin-config-write.js +565 -0
  367. package/dist/src/utils/plugin-config-write.js.map +1 -0
  368. package/dist/src/utils/plugin-config.d.ts +396 -0
  369. package/dist/src/utils/plugin-config.js +1898 -0
  370. package/dist/src/utils/plugin-config.js.map +1 -0
  371. package/dist/src/utils/plugin-dependencies.d.ts +12 -0
  372. package/dist/src/utils/plugin-dependencies.js +162 -0
  373. package/dist/src/utils/plugin-dependencies.js.map +1 -0
  374. package/dist/src/utils/plugin-release.d.ts +2 -0
  375. package/dist/src/utils/plugin-release.js +2 -0
  376. package/dist/src/utils/plugin-release.js.map +1 -0
  377. package/dist/src/utils/plugin-script-contract.d.ts +1 -0
  378. package/dist/src/utils/plugin-script-contract.js +2 -0
  379. package/dist/src/utils/plugin-script-contract.js.map +1 -0
  380. package/dist/src/utils/plugin-scripts.d.ts +172 -0
  381. package/dist/src/utils/plugin-scripts.js +585 -0
  382. package/dist/src/utils/plugin-scripts.js.map +1 -0
  383. package/dist/src/utils/process-lock.d.ts +47 -0
  384. package/dist/src/utils/process-lock.js +532 -0
  385. package/dist/src/utils/process-lock.js.map +1 -0
  386. package/dist/src/utils/process-tree.d.ts +2 -0
  387. package/dist/src/utils/process-tree.js +2 -0
  388. package/dist/src/utils/process-tree.js.map +1 -0
  389. package/dist/src/utils/project-boundary.d.ts +21 -0
  390. package/dist/src/utils/project-boundary.js +95 -0
  391. package/dist/src/utils/project-boundary.js.map +1 -0
  392. package/dist/src/utils/rendered-contract.d.ts +8 -0
  393. package/dist/src/utils/rendered-contract.js +134 -0
  394. package/dist/src/utils/rendered-contract.js.map +1 -0
  395. package/dist/src/utils/runtime-skill-closure.d.ts +13 -0
  396. package/dist/src/utils/runtime-skill-closure.js +863 -0
  397. package/dist/src/utils/runtime-skill-closure.js.map +1 -0
  398. package/dist/src/utils/skill-authoring.d.ts +1 -0
  399. package/dist/src/utils/skill-authoring.js +2 -0
  400. package/dist/src/utils/skill-authoring.js.map +1 -0
  401. package/dist/src/utils/skill-frontmatter-capabilities.d.ts +201 -0
  402. package/dist/src/utils/skill-frontmatter-capabilities.js +5 -0
  403. package/dist/src/utils/skill-frontmatter-capabilities.js.map +1 -0
  404. package/dist/src/utils/skill-frontmatter-capabilities.json +200 -0
  405. package/dist/src/utils/skill-validation.d.ts +37 -0
  406. package/dist/src/utils/skill-validation.js +326 -0
  407. package/dist/src/utils/skill-validation.js.map +1 -0
  408. package/dist/src/utils/slash-commands.d.ts +1 -0
  409. package/dist/src/utils/slash-commands.js +2 -0
  410. package/dist/src/utils/slash-commands.js.map +1 -0
  411. package/dist/src/utils/state-paths.d.ts +13 -0
  412. package/dist/src/utils/state-paths.js +129 -0
  413. package/dist/src/utils/state-paths.js.map +1 -0
  414. package/dist/src/utils/target-eligibility.d.ts +7 -0
  415. package/dist/src/utils/target-eligibility.js +26 -0
  416. package/dist/src/utils/target-eligibility.js.map +1 -0
  417. package/dist/src/utils/target-order.d.ts +7 -0
  418. package/dist/src/utils/target-order.js +10 -0
  419. package/dist/src/utils/target-order.js.map +1 -0
  420. package/dist/src/utils/template-engine.d.ts +1 -0
  421. package/dist/src/utils/template-engine.js +2 -0
  422. package/dist/src/utils/template-engine.js.map +1 -0
  423. package/dist/src/utils/test-path-fence.d.ts +12 -0
  424. package/dist/src/utils/test-path-fence.js +31 -0
  425. package/dist/src/utils/test-path-fence.js.map +1 -0
  426. package/dist/vitest.config.d.ts +2 -0
  427. package/dist/vitest.config.js +16 -0
  428. package/dist/vitest.config.js.map +1 -0
  429. package/package.json +61 -0
@@ -0,0 +1,108 @@
1
+ import crypto from 'node:crypto';
2
+ import path from 'node:path';
3
+ import fs from 'fs-extra';
4
+ import { normalizeManifestDigestInput, readPluginManifest, } from './manifest.js';
5
+ import { calculateFileDigest } from './bundle-integrity.js';
6
+ function stableStringify(value) {
7
+ if (Array.isArray(value)) {
8
+ return `[${value.map((entry) => stableStringify(entry)).join(',')}]`;
9
+ }
10
+ if (value && typeof value === 'object') {
11
+ const record = value;
12
+ return `{${Object.keys(record)
13
+ .sort()
14
+ .map((key) => `${JSON.stringify(key)}:${stableStringify(record[key])}`)
15
+ .join(',')}}`;
16
+ }
17
+ return JSON.stringify(value);
18
+ }
19
+ function createSha256Digest(value) {
20
+ return `sha256:${crypto.createHash('sha256').update(value).digest('hex')}`;
21
+ }
22
+ async function listFilesRecursively(rootDir) {
23
+ const entries = await fs.readdir(rootDir, { withFileTypes: true });
24
+ const files = [];
25
+ for (const entry of entries) {
26
+ const entryPath = path.join(rootDir, entry.name);
27
+ if (entry.isDirectory()) {
28
+ const nestedFiles = await listFilesRecursively(entryPath);
29
+ files.push(...nestedFiles.map((nestedFile) => path.join(entry.name, nestedFile).split(path.sep).join('/')));
30
+ continue;
31
+ }
32
+ files.push(entry.name);
33
+ }
34
+ return files.sort();
35
+ }
36
+ async function resolveCatalogDigestNode(filePath) {
37
+ const stat = await fs.lstat(filePath);
38
+ if (stat.isSymbolicLink()) {
39
+ return { kind: 'symlink', mode: '120000' };
40
+ }
41
+ if (!stat.isFile()) {
42
+ throw new Error(`Catalog digest path must be a regular file or symlink: ${filePath}.`);
43
+ }
44
+ return {
45
+ kind: 'file',
46
+ mode: (stat.mode & 0o100) === 0 ? '100644' : '100755',
47
+ };
48
+ }
49
+ async function calculateArtifactPathDigest(filePath, node) {
50
+ if (node.kind === 'symlink') {
51
+ return createSha256Digest(await fs.readlink(filePath));
52
+ }
53
+ return calculateFileDigest(filePath);
54
+ }
55
+ const VERSIONED_PLUGIN_MANIFEST_PATHS = new Set([
56
+ '.agents-plugin/plugin.json',
57
+ '.claude-plugin/plugin.json',
58
+ '.codex-plugin/plugin.json',
59
+ ]);
60
+ async function calculateContentPathDigest(pluginRoot, relativePath, node) {
61
+ if (!VERSIONED_PLUGIN_MANIFEST_PATHS.has(relativePath)) {
62
+ return calculateArtifactPathDigest(path.join(pluginRoot, relativePath), node);
63
+ }
64
+ const filePath = path.join(pluginRoot, relativePath);
65
+ if (node.kind === 'symlink') {
66
+ return createSha256Digest(await fs.readlink(filePath));
67
+ }
68
+ const manifest = await fs.readJson(filePath);
69
+ return createSha256Digest(stableStringify({ ...manifest, version: '<plugin-version>' }));
70
+ }
71
+ export function calculateCatalogEntryManifestDigest(manifest) {
72
+ return createSha256Digest(normalizeManifestDigestInput(manifest));
73
+ }
74
+ export async function calculateCatalogEntryArtifactDigest(pluginRoot) {
75
+ const files = await listFilesRecursively(pluginRoot);
76
+ const fileEntries = await Promise.all(files.map(async (relativePath) => {
77
+ const filePath = path.join(pluginRoot, relativePath);
78
+ const node = await resolveCatalogDigestNode(filePath);
79
+ return {
80
+ path: relativePath,
81
+ kind: node.kind,
82
+ mode: node.mode,
83
+ digest: await calculateArtifactPathDigest(filePath, node),
84
+ };
85
+ }));
86
+ return createSha256Digest(stableStringify(fileEntries));
87
+ }
88
+ export async function calculateCatalogEntryContentDigest(pluginRoot) {
89
+ const files = await listFilesRecursively(pluginRoot);
90
+ const fileEntries = await Promise.all(files.map(async (relativePath) => {
91
+ const node = await resolveCatalogDigestNode(path.join(pluginRoot, relativePath));
92
+ return {
93
+ path: relativePath,
94
+ kind: node.kind,
95
+ mode: node.mode,
96
+ digest: await calculateContentPathDigest(pluginRoot, relativePath, node),
97
+ };
98
+ }));
99
+ return createSha256Digest(stableStringify(fileEntries));
100
+ }
101
+ export async function calculateCatalogEntryDigestsFromRoot(pluginRoot) {
102
+ const plugin = await readPluginManifest(pluginRoot, { mode: 'bundle' });
103
+ return {
104
+ manifestDigest: calculateCatalogEntryManifestDigest(plugin.manifest),
105
+ artifactDigest: await calculateCatalogEntryArtifactDigest(pluginRoot),
106
+ };
107
+ }
108
+ //# sourceMappingURL=catalog-digests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-digests.js","sourceRoot":"","sources":["../../../src/utils/catalog-digests.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAG1B,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACvE,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;aACtE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,UAAU,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,OAAe;IACjD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAC1D,KAAK,CAAC,IAAI,CACR,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAChG,CAAC;YACF,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AASD,KAAK,UAAU,wBAAwB,CAAC,QAAgB;IAItD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0DAA0D,QAAQ,GAAG,CAAC,CAAC;IACzF,CAAC;IACD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;KACtD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,QAAgB,EAChB,IAA0D;IAE1D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,kBAAkB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,+BAA+B,GAAG,IAAI,GAAG,CAAC;IAC9C,4BAA4B;IAC5B,4BAA4B;IAC5B,2BAA2B;CAC5B,CAAC,CAAC;AAEH,KAAK,UAAU,0BAA0B,CACvC,UAAkB,EAClB,YAAoB,EACpB,IAA0D;IAE1D,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACvD,OAAO,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,kBAAkB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAA4B,CAAC;IACxE,OAAO,kBAAkB,CAAC,eAAe,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,QAAqD;IAErD,OAAO,kBAAkB,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,UAAkB;IAElB,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAoC,EAAE;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,MAAM,2BAA2B,CAAC,QAAQ,EAAE,IAAI,CAAC;SAC1D,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,kBAAkB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,UAAkB;IAElB,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAoC,EAAE;QACjE,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;QACjF,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,MAAM,0BAA0B,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC;SACzE,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,kBAAkB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,UAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAExE,OAAO;QACL,cAAc,EAAE,mCAAmC,CAAC,MAAM,CAAC,QAAQ,CAAC;QACpE,cAAc,EAAE,MAAM,mCAAmC,CAAC,UAAU,CAAC;KACtE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createCatalogManifestV4, createCatalogManifestV4Entry, validateCatalogManifestV4, } from './catalog-manifest-v4.js';
2
+ export { createCatalogManifestV4 as createCatalogManifestV3, createCatalogManifestV4Entry as createCatalogManifestV3Entry, validateCatalogManifestV4 as validateCatalogManifestV3, } from './catalog-manifest-v4.js';
@@ -0,0 +1,3 @@
1
+ export { createCatalogManifestV4, createCatalogManifestV4Entry, validateCatalogManifestV4, } from './catalog-manifest-v4.js';
2
+ export { createCatalogManifestV4 as createCatalogManifestV3, createCatalogManifestV4Entry as createCatalogManifestV3Entry, validateCatalogManifestV4 as validateCatalogManifestV3, } from './catalog-manifest-v4.js';
3
+ //# sourceMappingURL=catalog-manifest-v3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-manifest-v3.js","sourceRoot":"","sources":["../../../src/utils/catalog-manifest-v3.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uBAAuB,IAAI,uBAAuB,EAClD,4BAA4B,IAAI,4BAA4B,EAC5D,yBAAyB,IAAI,yBAAyB,GACvD,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { CatalogManifestV4, CatalogManifestV4Entry, PluginMeta } from '../types.js';
2
+ export declare const CATALOG_SCHEMA_4_CLI_FLOOR = "0.0.0";
3
+ export declare function validateCatalogManifestV4(rawManifest: unknown): CatalogManifestV4;
4
+ export declare function createCatalogManifestV4(manifest: Omit<CatalogManifestV4, 'schemaVersion'>): CatalogManifestV4;
5
+ export declare function createCatalogManifestV4Entry(plugin: PluginMeta, pluginRoot: string): Promise<CatalogManifestV4Entry>;
@@ -0,0 +1,106 @@
1
+ import { calculateCatalogEntryArtifactDigest, calculateCatalogEntryContentDigest, calculateCatalogEntryManifestDigest, } from './catalog-digests.js';
2
+ import { createMarketplaceManifestEntry, normalizeCatalogManifestBase, normalizeCatalogManifestEntries, normalizeCatalogMarketplaceIdentity, compareStrictSemVer, } from './manifest.js';
3
+ const DIGEST_PATTERN = /^sha256:[0-9a-f]{64}$/;
4
+ const SOURCE_HEAD_PATTERN = /^(?:[0-9a-f]{40}|[0-9a-f]{64})$/;
5
+ export const CATALOG_SCHEMA_4_CLI_FLOOR = '0.0.0';
6
+ function assertObject(value, fieldName) {
7
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
8
+ throw new Error(`Invalid ${fieldName}: expected an object.`);
9
+ }
10
+ return value;
11
+ }
12
+ function assertAllowedKeys(value, fieldName, allowed) {
13
+ for (const key of Object.keys(value)) {
14
+ if (!allowed.includes(key))
15
+ throw new Error(`Invalid ${fieldName}: unknown field "${key}".`);
16
+ }
17
+ }
18
+ function digest(value, fieldName) {
19
+ if (typeof value !== 'string' || !DIGEST_PATTERN.test(value)) {
20
+ throw new Error(`Invalid ${fieldName}: expected a canonical sha256 digest.`);
21
+ }
22
+ return value;
23
+ }
24
+ function normalizeRelease(raw) {
25
+ const release = assertObject(raw, 'catalog manifest v4.release');
26
+ if (release.state === 'development') {
27
+ assertAllowedKeys(release, 'catalog manifest v4.release', ['state']);
28
+ return { state: 'development' };
29
+ }
30
+ if (release.state !== 'published') {
31
+ throw new Error('Invalid catalog manifest v4.release.state.');
32
+ }
33
+ assertAllowedKeys(release, 'catalog manifest v4.release', [
34
+ 'state', 'targetVersion', 'planId', 'sourceHead', 'contentDigest',
35
+ ]);
36
+ if (typeof release.targetVersion !== 'string' || !/^\d+\.\d+\.\d+$/u.test(release.targetVersion)) {
37
+ throw new Error('Invalid catalog manifest v4.release.targetVersion: expected a stable version.');
38
+ }
39
+ if (typeof release.sourceHead !== 'string' || !SOURCE_HEAD_PATTERN.test(release.sourceHead)) {
40
+ throw new Error('Invalid catalog manifest v4.release.sourceHead.');
41
+ }
42
+ return {
43
+ state: 'published',
44
+ targetVersion: release.targetVersion,
45
+ planId: digest(release.planId, 'catalog manifest v4.release.planId'),
46
+ sourceHead: release.sourceHead,
47
+ contentDigest: digest(release.contentDigest, 'catalog manifest v4.release.contentDigest'),
48
+ };
49
+ }
50
+ export function validateCatalogManifestV4(rawManifest) {
51
+ const input = assertObject(rawManifest, 'catalog manifest v4');
52
+ assertAllowedKeys(input, 'catalog manifest v4', [
53
+ 'schemaVersion', 'catalogVersion', 'channel', 'compatibility', 'marketplace', 'release', 'entries',
54
+ ]);
55
+ if (input.schemaVersion !== 4) {
56
+ throw new Error('Invalid catalog manifest v4.schemaVersion: expected 4.');
57
+ }
58
+ if (!Array.isArray(input.entries)) {
59
+ throw new Error('Invalid catalog manifest v4.entries: expected an array.');
60
+ }
61
+ const contentDigests = [];
62
+ const entryInputs = input.entries.map((rawEntry, index) => {
63
+ const entry = assertObject(rawEntry, `catalog manifest v4.entries[${index}]`);
64
+ contentDigests.push(digest(entry.contentDigest, `catalog manifest v4.entries[${index}].contentDigest`));
65
+ const entryInput = { ...entry };
66
+ delete entryInput.contentDigest;
67
+ return entryInput;
68
+ });
69
+ const base = normalizeCatalogManifestBase(input, 'catalog manifest v4');
70
+ const marketplace = normalizeCatalogMarketplaceIdentity(input.marketplace);
71
+ if (compareStrictSemVer(base.compatibility.aw.minVersion, CATALOG_SCHEMA_4_CLI_FLOOR) < 0) {
72
+ throw new Error(`Invalid catalog manifest v4.compatibility.aw.minVersion: schema 4 requires ${CATALOG_SCHEMA_4_CLI_FLOOR} or newer.`);
73
+ }
74
+ const entries = normalizeCatalogManifestEntries(entryInputs, base, 'catalog manifest v4');
75
+ const release = normalizeRelease(input.release);
76
+ if (release.state === 'published'
77
+ && release.targetVersion !== base.catalogVersion.replace(/-beta\.[1-9]\d*$/u, '')) {
78
+ throw new Error('Invalid catalog manifest v4.release.targetVersion: must equal the stable catalogVersion core.');
79
+ }
80
+ return {
81
+ schemaVersion: 4,
82
+ catalogVersion: base.catalogVersion,
83
+ channel: base.channel,
84
+ compatibility: base.compatibility,
85
+ marketplace,
86
+ release,
87
+ entries: entries.map((entry, index) => ({ ...entry, contentDigest: contentDigests[index] })),
88
+ };
89
+ }
90
+ export function createCatalogManifestV4(manifest) {
91
+ return validateCatalogManifestV4({ schemaVersion: 4, ...manifest });
92
+ }
93
+ export async function createCatalogManifestV4Entry(plugin, pluginRoot) {
94
+ if (!plugin.manifest.compatibility) {
95
+ throw new Error(`Plugin "${plugin.manifest.name}" is missing compatibility metadata.`);
96
+ }
97
+ return {
98
+ ...createMarketplaceManifestEntry(plugin),
99
+ version: plugin.manifest.version,
100
+ compatibility: plugin.manifest.compatibility,
101
+ artifactDigest: await calculateCatalogEntryArtifactDigest(pluginRoot),
102
+ manifestDigest: calculateCatalogEntryManifestDigest(plugin.manifest),
103
+ contentDigest: await calculateCatalogEntryContentDigest(pluginRoot),
104
+ };
105
+ }
106
+ //# sourceMappingURL=catalog-manifest-v4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-manifest-v4.js","sourceRoot":"","sources":["../../../src/utils/catalog-manifest-v4.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export type CatalogProviderCompatibilityErrorCode = 'awVersionTooLow' | 'explicitCatalogIncompatible';
2
+ export declare class CatalogProviderCompatibilityError extends Error {
3
+ readonly sourceId: string;
4
+ readonly code: CatalogProviderCompatibilityErrorCode;
5
+ constructor(options: {
6
+ sourceId: string;
7
+ minAwVersion: string;
8
+ selection: 'cliChannel' | 'explicit';
9
+ });
10
+ }
11
+ export declare function sanitizeCatalogSourceErrorMessage(message: string, env?: NodeJS.ProcessEnv, sensitiveRoots?: readonly string[]): string;
12
+ export declare function catalogSourceErrorCode(error: unknown): string;
13
+ export declare function sanitizeCatalogSourceError(error: unknown, env?: NodeJS.ProcessEnv, sensitiveRoots?: readonly string[]): Error & {
14
+ code: string;
15
+ };
@@ -0,0 +1,84 @@
1
+ import os from 'node:os';
2
+ import path from 'node:path';
3
+ import { resolveAwHome } from './state-paths.js';
4
+ const DEFAULT_ERROR_CODE = 'catalogSourceResolutionFailed';
5
+ export class CatalogProviderCompatibilityError extends Error {
6
+ sourceId;
7
+ code;
8
+ constructor(options) {
9
+ super(`Catalog source "${options.sourceId}" requires aw >= ${options.minAwVersion}.`);
10
+ this.name = 'CatalogProviderCompatibilityError';
11
+ this.sourceId = options.sourceId;
12
+ this.code = options.selection === 'cliChannel'
13
+ ? 'awVersionTooLow'
14
+ : 'explicitCatalogIncompatible';
15
+ }
16
+ }
17
+ function escapeRegExp(value) {
18
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
19
+ }
20
+ function replaceRoot(message, root, replacement) {
21
+ const normalized = path.resolve(root);
22
+ const variants = new Set([
23
+ normalized,
24
+ normalized.replaceAll('\\', '/'),
25
+ ...(normalized.startsWith('/var/') ? [`/private${normalized}`] : []),
26
+ ...(normalized.startsWith('/private/var/') ? [normalized.slice('/private'.length)] : []),
27
+ ]);
28
+ let output = message;
29
+ for (const variant of variants) {
30
+ output = output.replace(new RegExp(escapeRegExp(variant), 'g'), replacement);
31
+ }
32
+ return output;
33
+ }
34
+ export function sanitizeCatalogSourceErrorMessage(message, env = process.env, sensitiveRoots = []) {
35
+ const awHome = path.resolve(resolveAwHome(env));
36
+ let output = message;
37
+ for (const root of sensitiveRoots) {
38
+ if (root.trim() !== '')
39
+ output = replaceRoot(output, root, '[catalog-source]');
40
+ }
41
+ for (const [root, replacement] of [
42
+ [path.join(awHome, 'catalog-cache'), '[catalog-state]'],
43
+ [path.join(path.dirname(awHome), '.aw-local-marketplace-staging'), '[catalog-staging]'],
44
+ [awHome, '[aw-state]'],
45
+ ]) {
46
+ output = replaceRoot(output, root, replacement);
47
+ }
48
+ for (const tempRoot of new Set([
49
+ env.TMPDIR,
50
+ env.TEMP,
51
+ env.TMP,
52
+ os.tmpdir(),
53
+ '/private/tmp',
54
+ '/tmp',
55
+ ].filter((value) => Boolean(value)))) {
56
+ output = replaceRoot(output, tempRoot, '[temporary]');
57
+ }
58
+ return output
59
+ .replace(/\.(?:materialize|path)-[^/\\\s"']+\.tmp/gu, '[catalog-materialization]')
60
+ .replace(/catalog-cache/gu, '[catalog-state]');
61
+ }
62
+ export function catalogSourceErrorCode(error) {
63
+ const code = error.code;
64
+ return typeof code === 'string' && code.length > 0 ? code : DEFAULT_ERROR_CODE;
65
+ }
66
+ export function sanitizeCatalogSourceError(error, env = process.env, sensitiveRoots = []) {
67
+ const original = error instanceof Error ? error : new Error(String(error));
68
+ const sanitized = new Error(sanitizeCatalogSourceErrorMessage(original.message, env, sensitiveRoots), {
69
+ ...(original.cause === undefined
70
+ ? {}
71
+ : { cause: sanitizeCatalogSourceError(original.cause, env, sensitiveRoots) }),
72
+ });
73
+ sanitized.name = original.name;
74
+ sanitized.code = catalogSourceErrorCode(original);
75
+ const sourceId = original.sourceId;
76
+ if (typeof sourceId === 'string') {
77
+ sanitized.sourceId = sourceId;
78
+ }
79
+ if ('inventory' in original) {
80
+ sanitized.inventory = original.inventory;
81
+ }
82
+ return sanitized;
83
+ }
84
+ //# sourceMappingURL=catalog-public-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-public-error.js","sourceRoot":"","sources":["../../../src/utils/catalog-public-error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type CanonicalRuntimeSourceIdentity } from '@lesliechan721/aw-plugin-core/manifest';
2
+ import type { BuildConfigImportReference, PlatformName, PluginMeta } from '../types.js';
3
+ export { resolveCanonicalRuntimeSourceIdentity, } from '@lesliechan721/aw-plugin-core/manifest';
4
+ export type { CanonicalRuntimeSourceIdentity } from '@lesliechan721/aw-plugin-core/manifest';
5
+ export type CatalogRuntimeImportPurpose = 'build' | 'skill-runtime-file' | 'artifact-runtime';
6
+ export interface CatalogRuntimeExportResolution {
7
+ provider: string;
8
+ providerVersion: string;
9
+ name: string;
10
+ source: string;
11
+ sourcePath: string;
12
+ sourceDigest: string;
13
+ canonicalSource: CanonicalRuntimeSourceIdentity;
14
+ supportedPlatforms: ReadonlySet<PlatformName>;
15
+ virtual: boolean;
16
+ }
17
+ export interface CatalogRuntimeImportResolver {
18
+ resolve(options: {
19
+ consumer: PluginMeta;
20
+ reference: BuildConfigImportReference;
21
+ purpose: CatalogRuntimeImportPurpose;
22
+ platform?: PlatformName;
23
+ }): Promise<CatalogRuntimeExportResolution>;
24
+ }
25
+ export interface CatalogRuntimeImportResolverOptions {
26
+ /** CLI package root containing src/utils/skill-frontmatter-capabilities.json. */
27
+ cliVirtualExportRoot?: string;
28
+ /** Explicit provider identity; otherwise read from the selected CLI root package.json. */
29
+ cliProviderVersion?: string;
30
+ }
31
+ export declare function resolveRuntimeExportSource(options: {
32
+ plugin: PluginMeta;
33
+ name: string;
34
+ source: string;
35
+ }): Promise<CatalogRuntimeExportResolution>;
36
+ export declare function createCatalogRuntimeImportResolver(plugins: readonly PluginMeta[], options?: CatalogRuntimeImportResolverOptions): CatalogRuntimeImportResolver;
@@ -0,0 +1,172 @@
1
+ import path from 'node:path';
2
+ import fs from 'fs-extra';
3
+ import { resolveCanonicalRuntimeSourceIdentity as resolveCoreRuntimeSourceIdentity, validateRuntimeExportSource, } from '@lesliechan721/aw-plugin-core/manifest';
4
+ import { calculateFileDigest } from './bundle-integrity.js';
5
+ import { CLI_RESERVED_IMPORTS } from './manifest.js';
6
+ import { resolveCliPackageRoot } from './paths.js';
7
+ import { resolveSupportedPlatforms } from './platform-support.js';
8
+ export { resolveCanonicalRuntimeSourceIdentity, } from '@lesliechan721/aw-plugin-core/manifest';
9
+ export async function resolveRuntimeExportSource(options) {
10
+ const canonicalSource = await validateRuntimeExportSource({
11
+ pluginRoot: options.plugin.rootDir,
12
+ name: options.name,
13
+ source: options.source,
14
+ });
15
+ return {
16
+ provider: options.plugin.manifest.name,
17
+ providerVersion: options.plugin.manifest.version,
18
+ name: options.name,
19
+ source: options.source,
20
+ sourcePath: canonicalSource.sourceRealPath,
21
+ sourceDigest: await calculateFileDigest(canonicalSource.sourceRealPath),
22
+ canonicalSource,
23
+ supportedPlatforms: resolveSupportedPlatforms(options.plugin.manifest),
24
+ virtual: false,
25
+ };
26
+ }
27
+ async function resolveCliVirtualExport(reference, purpose, options) {
28
+ if (purpose !== 'build') {
29
+ throw new Error('Invalid catalog runtime import: virtual provider "@aw/cli" is only available to buildImports.');
30
+ }
31
+ const virtualExports = {
32
+ 'skill-frontmatter-capabilities': 'skill-frontmatter-capabilities.json',
33
+ 'plugin-authoring-capabilities': 'plugin-authoring-capabilities.json',
34
+ };
35
+ const sourceFile = virtualExports[reference.export];
36
+ if (!sourceFile
37
+ || !CLI_RESERVED_IMPORTS['@aw/cli'].includes(reference.export)) {
38
+ throw new Error(`Invalid catalog runtime import: unknown @aw/cli export "${reference.export}".`);
39
+ }
40
+ const packageRoot = options.cliVirtualExportRoot ?? resolveCliPackageRoot();
41
+ const sourceCandidates = options.cliVirtualExportRoot
42
+ ? [path.join(packageRoot, 'src', 'utils', sourceFile)]
43
+ : [
44
+ path.join(packageRoot, 'src', 'utils', sourceFile),
45
+ path.join(packageRoot, 'dist', 'src', 'utils', sourceFile),
46
+ ];
47
+ const sourceCandidate = sourceCandidates.find((candidate) => fs.existsSync(candidate));
48
+ if (!sourceCandidate) {
49
+ const registryName = reference.export === 'skill-frontmatter-capabilities'
50
+ ? 'skill frontmatter'
51
+ : reference.export;
52
+ throw new Error(`Invalid @aw/cli runtime export: canonical ${registryName} registry is missing from ${packageRoot}.`);
53
+ }
54
+ const canonicalSource = await resolveCoreRuntimeSourceIdentity(packageRoot, `./${path.relative(packageRoot, sourceCandidate).split(path.sep).join('/')}`, `@aw/cli runtime export "${reference.export}"`);
55
+ const packageJson = options.cliProviderVersion === undefined
56
+ ? await fs.readJson(path.join(packageRoot, 'package.json'))
57
+ : undefined;
58
+ const providerVersion = options.cliProviderVersion ?? packageJson?.version;
59
+ if (typeof providerVersion !== 'string' || providerVersion.trim() === '') {
60
+ throw new Error('Invalid @aw/cli runtime export: package version is missing.');
61
+ }
62
+ return {
63
+ provider: '@aw/cli',
64
+ providerVersion,
65
+ name: reference.export,
66
+ source: `./src/utils/${sourceFile}`,
67
+ sourcePath: canonicalSource.sourceRealPath,
68
+ sourceDigest: await calculateFileDigest(canonicalSource.sourceRealPath),
69
+ canonicalSource,
70
+ supportedPlatforms: new Set(['claude', 'codex']),
71
+ virtual: true,
72
+ };
73
+ }
74
+ async function resolveEvalVirtualExport(reference, purpose) {
75
+ if (purpose !== 'build' && purpose !== 'skill-runtime-file') {
76
+ throw new Error('Invalid catalog runtime import: virtual provider "@aw/agent-skill-eval" is only available to buildImports and skillRuntimeFiles.');
77
+ }
78
+ if (reference.export !== 'case-corpus-digest') {
79
+ throw new Error(`Invalid catalog runtime import: unknown @aw/agent-skill-eval export "${reference.export}".`);
80
+ }
81
+ const cliPackageRoot = resolveCliPackageRoot();
82
+ const packageRootCandidates = [
83
+ path.resolve(cliPackageRoot, '..', 'agent-skill-eval'),
84
+ path.join(cliPackageRoot, 'node_modules', '@lesliechan721', 'agent-skill-eval'),
85
+ ];
86
+ const packageRoot = packageRootCandidates.find((candidate) => fs.existsSync(path.join(candidate, 'package.json')));
87
+ if (!packageRoot) {
88
+ throw new Error('Invalid @aw/agent-skill-eval runtime export: package root is unavailable.');
89
+ }
90
+ const packageJson = await fs.readJson(path.join(packageRoot, 'package.json'));
91
+ if (typeof packageJson.version !== 'string' || packageJson.version.trim() === '') {
92
+ throw new Error('Invalid @aw/agent-skill-eval runtime export: package version is missing.');
93
+ }
94
+ const canonicalSource = await resolveCoreRuntimeSourceIdentity(packageRoot, './dist/corpus-digest.js', '@aw/agent-skill-eval runtime export "case-corpus-digest"');
95
+ return {
96
+ provider: '@aw/agent-skill-eval',
97
+ providerVersion: packageJson.version,
98
+ name: reference.export,
99
+ source: './dist/corpus-digest.js',
100
+ sourcePath: canonicalSource.sourceRealPath,
101
+ sourceDigest: await calculateFileDigest(canonicalSource.sourceRealPath),
102
+ canonicalSource,
103
+ supportedPlatforms: new Set(['claude', 'codex']),
104
+ virtual: true,
105
+ };
106
+ }
107
+ export function createCatalogRuntimeImportResolver(plugins, options = {}) {
108
+ if (options.cliVirtualExportRoot && !path.isAbsolute(options.cliVirtualExportRoot)) {
109
+ throw new Error('Invalid cliVirtualExportRoot: expected an absolute CLI package root.');
110
+ }
111
+ const resolverOptions = {
112
+ ...options,
113
+ cliVirtualExportRoot: options.cliVirtualExportRoot
114
+ ? path.normalize(options.cliVirtualExportRoot)
115
+ : undefined,
116
+ };
117
+ const pluginsByName = new Map();
118
+ for (const plugin of plugins) {
119
+ const matches = pluginsByName.get(plugin.manifest.name) ?? [];
120
+ matches.push(plugin);
121
+ pluginsByName.set(plugin.manifest.name, matches);
122
+ }
123
+ return {
124
+ async resolve({ consumer, reference, purpose, platform }) {
125
+ if (reference.plugin.startsWith('@aw/')) {
126
+ if (reference.plugin === '@aw/agent-skill-eval') {
127
+ return resolveEvalVirtualExport(reference, purpose);
128
+ }
129
+ if (!Object.hasOwn(CLI_RESERVED_IMPORTS, reference.plugin)) {
130
+ throw new Error(`Invalid catalog runtime import: unknown reserved provider "${reference.plugin}".`);
131
+ }
132
+ return resolveCliVirtualExport(reference, purpose, resolverOptions);
133
+ }
134
+ if (reference.plugin === consumer.manifest.name) {
135
+ throw new Error(`Invalid catalog runtime import: plugin "${consumer.manifest.name}" cannot import itself.`);
136
+ }
137
+ const providers = pluginsByName.get(reference.plugin) ?? [];
138
+ if (providers.length === 0) {
139
+ throw new Error(`Invalid catalog runtime import: provider plugin "${reference.plugin}" is unavailable.`);
140
+ }
141
+ if (providers.length !== 1) {
142
+ throw new Error(`Invalid catalog runtime import: provider plugin "${reference.plugin}" is ambiguous.`);
143
+ }
144
+ const provider = providers[0];
145
+ const exports = (provider.manifest.buildConfig?.runtimeExports ?? [])
146
+ .filter((entry) => entry.name === reference.export);
147
+ if (exports.length === 0) {
148
+ throw new Error(`Invalid catalog runtime import: provider "${reference.plugin}" does not export "${reference.export}".`);
149
+ }
150
+ if (exports.length !== 1) {
151
+ throw new Error(`Invalid catalog runtime import: provider "${reference.plugin}" export "${reference.export}" is ambiguous.`);
152
+ }
153
+ const resolution = await resolveRuntimeExportSource({
154
+ plugin: provider,
155
+ name: exports[0].name,
156
+ source: exports[0].source,
157
+ });
158
+ if (platform && !resolution.supportedPlatforms.has(platform)) {
159
+ throw new Error(`Invalid catalog runtime import: provider "${reference.plugin}" is unavailable for platform "${platform}".`);
160
+ }
161
+ if (purpose === 'build') {
162
+ const unsupportedPlatform = [...resolveSupportedPlatforms(consumer.manifest)]
163
+ .find((consumerPlatform) => !resolution.supportedPlatforms.has(consumerPlatform));
164
+ if (unsupportedPlatform) {
165
+ throw new Error(`Invalid catalog runtime import: provider "${reference.plugin}" is unavailable for consumer platform "${unsupportedPlatform}".`);
166
+ }
167
+ }
168
+ return resolution;
169
+ },
170
+ };
171
+ }
172
+ //# sourceMappingURL=catalog-runtime-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-runtime-projection.js","sourceRoot":"","sources":["../../../src/utils/catalog-runtime-projection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { CatalogManifestV4 } from '../types.js';
2
+ export interface CatalogSnapshotValidation {
3
+ rootDir: string;
4
+ manifest: CatalogManifestV4;
5
+ manifestDigest: string;
6
+ snapshotDigest: string;
7
+ }
8
+ export declare function validateCatalogSnapshot(rootDir: string): Promise<CatalogSnapshotValidation>;
@@ -0,0 +1,12 @@
1
+ import path from 'node:path';
2
+ import { validateCatalogSnapshot as validateCoreCatalogSnapshot, } from '@lesliechan721/aw-plugin-core';
3
+ import { CURRENT_CATALOG_MANIFEST_FILE } from '../constants.js';
4
+ import { calculateFileDigest } from './bundle-integrity.js';
5
+ export async function validateCatalogSnapshot(rootDir) {
6
+ const validation = await validateCoreCatalogSnapshot(rootDir);
7
+ return {
8
+ ...validation,
9
+ manifestDigest: await calculateFileDigest(path.join(validation.rootDir, CURRENT_CATALOG_MANIFEST_FILE)),
10
+ };
11
+ }
12
+ //# sourceMappingURL=catalog-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-snapshot.js","sourceRoot":"","sources":["../../../src/utils/catalog-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,uBAAuB,IAAI,2BAA2B,GACvD,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAS5D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAAe;IAC3D,MAAM,UAAU,GAAG,MAAM,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC9D,OAAO;QACL,GAAG,UAAU;QACb,cAAc,EAAE,MAAM,mBAAmB,CACvC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAC7D;KACF,CAAC;AACJ,CAAC"}