@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 @@
1
+ {"version":3,"file":"bundle-integrity.js","sourceRoot":"","sources":["../../../src/utils/bundle-integrity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const CATALOG_MANIFEST_FILENAME = "catalog-manifest.json";
2
+ export declare function validateBundleLayout(rootDir: string, options?: {
3
+ ownerMarkerPolicy?: 'reject' | 'ignore';
4
+ }): Promise<void>;
@@ -0,0 +1,546 @@
1
+ import path from 'node:path';
2
+ import fs from 'fs-extra';
3
+ import { assertActualNativePluginCapability, assertStrictSemVer, validatePluginManifest, } from './manifest.js';
4
+ import { readJsonFile } from './json.js';
5
+ import { readMarketplaceManifestAtPath } from './marketplace.js';
6
+ import { resolveSupportedPlatforms } from './platform-support.js';
7
+ import { validateRenderedClaudeHooksContent, validateRenderedCodexHooksContent, } from './rendered-contract.js';
8
+ import { scanNodeImportContract } from './plugin-script-contract.js';
9
+ import { getArtifactSourceBundleRelativePath } from './artifact-sources.js';
10
+ import { validatePortableSkillDirectoriesRoot, validateSkillDirectory, } from './dynamic-skill-tree.js';
11
+ import { validateRuntimeSkillClosure } from './runtime-skill-closure.js';
12
+ const NODE_RUNTIME_EXTENSIONS = new Set(['.js', '.mjs', '.cjs']);
13
+ export const CATALOG_MANIFEST_FILENAME = 'catalog-manifest.json';
14
+ function isPathInsideOrEqual(parent, child) {
15
+ const relative = path.relative(parent, child);
16
+ return relative === '' || (relative !== '..' &&
17
+ !relative.startsWith(`..${path.sep}`) &&
18
+ !path.isAbsolute(relative));
19
+ }
20
+ function assertRelativeBundlePath(pluginRoot, relativePath, fieldName, expectedPrefix) {
21
+ if (!relativePath.startsWith(expectedPrefix)) {
22
+ throw new Error(`Invalid ${fieldName}: expected path to start with "${expectedPrefix}".`);
23
+ }
24
+ const resolved = path.resolve(pluginRoot, relativePath);
25
+ const relativeToRoot = path.relative(pluginRoot, resolved);
26
+ if (relativeToRoot.startsWith('..') || path.isAbsolute(relativeToRoot)) {
27
+ throw new Error(`Invalid ${fieldName}: path escapes plugin root.`);
28
+ }
29
+ const expectedRoot = path.resolve(pluginRoot, expectedPrefix);
30
+ if (!isPathInsideOrEqual(expectedRoot, resolved)) {
31
+ throw new Error(`Invalid ${fieldName}: path must stay inside "${expectedPrefix}".`);
32
+ }
33
+ return resolved;
34
+ }
35
+ async function assertRealBundlePath(pluginRoot, resolvedPath, fieldName, expectedPrefix) {
36
+ const realPluginRoot = await fs.realpath(pluginRoot);
37
+ let realResolvedPath;
38
+ try {
39
+ realResolvedPath = await fs.realpath(resolvedPath);
40
+ }
41
+ catch (error) {
42
+ const message = error instanceof Error ? error.message : String(error);
43
+ throw new Error(`Invalid ${fieldName}: unable to resolve symlinks (${message}).`);
44
+ }
45
+ if (!isPathInsideOrEqual(realPluginRoot, realResolvedPath)) {
46
+ throw new Error(`Invalid ${fieldName}: resolved target escapes plugin root.`);
47
+ }
48
+ const expectedRoot = path.resolve(realPluginRoot, stripDotSlash(expectedPrefix));
49
+ if (!isPathInsideOrEqual(expectedRoot, realResolvedPath)) {
50
+ throw new Error(`Invalid ${fieldName}: resolved target must stay inside "${expectedPrefix}".`);
51
+ }
52
+ return realResolvedPath;
53
+ }
54
+ async function assertBundlePathExists(pluginRoot, relativePath, fieldName, expectedPrefix) {
55
+ await resolveExistingBundlePath(pluginRoot, relativePath, fieldName, expectedPrefix);
56
+ }
57
+ async function resolveExistingBundlePath(pluginRoot, relativePath, fieldName, expectedPrefix) {
58
+ const resolved = assertRelativeBundlePath(pluginRoot, relativePath, fieldName, expectedPrefix);
59
+ if (!(await fs.pathExists(resolved))) {
60
+ throw new Error(`Invalid ${fieldName}: "${relativePath}" does not exist in bundle.`);
61
+ }
62
+ return assertRealBundlePath(pluginRoot, resolved, fieldName, expectedPrefix);
63
+ }
64
+ function stripDotSlash(value) {
65
+ return value.startsWith('./') ? value.slice(2) : value;
66
+ }
67
+ async function assertJsonObjectFile(filePath, fieldName) {
68
+ let content;
69
+ try {
70
+ content = await fs.readJson(filePath);
71
+ }
72
+ catch (error) {
73
+ const message = error instanceof Error ? error.message : String(error);
74
+ throw new Error(`Invalid ${fieldName}: expected valid JSON (${message}).`);
75
+ }
76
+ if (!content || typeof content !== 'object' || Array.isArray(content)) {
77
+ throw new Error(`Invalid ${fieldName}: expected a JSON object.`);
78
+ }
79
+ return content;
80
+ }
81
+ async function assertMcpArtifact(pluginRoot, relativePath, fieldName, expectedPrefix) {
82
+ const resolved = assertRelativeBundlePath(pluginRoot, relativePath, fieldName, expectedPrefix);
83
+ if (!(await fs.pathExists(resolved))) {
84
+ throw new Error(`Invalid ${fieldName}: "${relativePath}" does not exist in bundle.`);
85
+ }
86
+ const realResolved = await assertRealBundlePath(pluginRoot, resolved, fieldName, expectedPrefix);
87
+ const content = await assertJsonObjectFile(realResolved, fieldName);
88
+ if (!content.mcpServers || typeof content.mcpServers !== 'object' || Array.isArray(content.mcpServers)) {
89
+ throw new Error(`Invalid ${fieldName}: expected top-level "mcpServers" object.`);
90
+ }
91
+ }
92
+ async function assertAppsArtifact(pluginRoot, relativePath, fieldName, expectedPrefix) {
93
+ const resolved = assertRelativeBundlePath(pluginRoot, relativePath, fieldName, expectedPrefix);
94
+ if (!(await fs.pathExists(resolved))) {
95
+ throw new Error(`Invalid ${fieldName}: "${relativePath}" does not exist in bundle.`);
96
+ }
97
+ const realResolved = await assertRealBundlePath(pluginRoot, resolved, fieldName, expectedPrefix);
98
+ const content = await assertJsonObjectFile(realResolved, fieldName);
99
+ if (!content.apps || typeof content.apps !== 'object' || Array.isArray(content.apps)) {
100
+ throw new Error(`Invalid ${fieldName}: expected top-level "apps" object.`);
101
+ }
102
+ for (const [name, app] of Object.entries(content.apps)) {
103
+ if (!app || typeof app !== 'object' || Array.isArray(app)) {
104
+ throw new Error(`Invalid ${fieldName}.apps.${name}: expected an object.`);
105
+ }
106
+ const id = app.id;
107
+ if (typeof id !== 'string' || id.trim() === '') {
108
+ throw new Error(`Invalid ${fieldName}.apps.${name}.id: expected a non-empty string.`);
109
+ }
110
+ }
111
+ }
112
+ async function assertClaudeHooksArtifact(pluginRoot, relativePath) {
113
+ const resolved = assertRelativeBundlePath(pluginRoot, relativePath, 'claude.hooks', './claude/');
114
+ if (!(await fs.pathExists(resolved))) {
115
+ throw new Error(`Invalid claude.hooks: "${relativePath}" does not exist in bundle.`);
116
+ }
117
+ const realResolved = await assertRealBundlePath(pluginRoot, resolved, 'claude.hooks', './claude/');
118
+ const content = await assertJsonObjectFile(realResolved, 'claude.hooks');
119
+ validateRenderedClaudeHooksContent(content, 'claude.hooks');
120
+ }
121
+ async function validateClaudeManifest(pluginRoot, manifest, ownerMarkerPolicy) {
122
+ const input = manifest;
123
+ for (const key of Object.keys(input)) {
124
+ if (![
125
+ 'name',
126
+ 'version',
127
+ 'description',
128
+ 'compatibility',
129
+ 'skills',
130
+ 'mcpServers',
131
+ 'interface',
132
+ 'agents',
133
+ 'hooks',
134
+ 'commands',
135
+ 'outputStyles',
136
+ 'lspServers',
137
+ 'userConfig',
138
+ 'channels',
139
+ ].includes(key)) {
140
+ throw new Error(`Invalid claude manifest: unknown field "${key}".`);
141
+ }
142
+ }
143
+ assertStrictSemVer(manifest.version, 'claude manifest.version');
144
+ assertStrictSemVer(manifest.compatibility.aw.minVersion, 'claude manifest.compatibility.aw.minVersion');
145
+ if (manifest.skills) {
146
+ await validateClaudeSkillsTree(pluginRoot, manifest.skills, ownerMarkerPolicy);
147
+ }
148
+ if (manifest.commands) {
149
+ await assertBundlePathExists(pluginRoot, manifest.commands, 'claude.commands', './claude/');
150
+ }
151
+ if (manifest.hooks) {
152
+ if (typeof manifest.hooks !== 'string') {
153
+ throw new Error('Invalid claude.hooks: expected a bundle-local path string.');
154
+ }
155
+ await assertClaudeHooksArtifact(pluginRoot, manifest.hooks);
156
+ }
157
+ if (manifest.mcpServers) {
158
+ await assertMcpArtifact(pluginRoot, manifest.mcpServers, 'claude.mcpServers', './claude/');
159
+ }
160
+ if (manifest.outputStyles) {
161
+ await assertBundlePathExists(pluginRoot, manifest.outputStyles, 'claude.outputStyles', './claude/');
162
+ }
163
+ if (manifest.agents) {
164
+ for (const [index, agentPath] of manifest.agents.entries()) {
165
+ await assertBundlePathExists(pluginRoot, agentPath, `claude.agents[${index}]`, './claude/');
166
+ }
167
+ }
168
+ if (manifest.lspServers) {
169
+ if (typeof manifest.lspServers === 'string') {
170
+ await assertBundlePathExists(pluginRoot, manifest.lspServers, 'claude.lspServers', './claude/');
171
+ }
172
+ else if (Array.isArray(manifest.lspServers)) {
173
+ for (const [index, entry] of manifest.lspServers.entries()) {
174
+ if (typeof entry === 'string') {
175
+ await assertBundlePathExists(pluginRoot, entry, `claude.lspServers[${index}]`, './claude/');
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ async function validateCodexManifest(pluginRoot, manifest, ownerMarkerPolicy) {
182
+ const input = manifest;
183
+ for (const key of Object.keys(input)) {
184
+ if (![
185
+ 'name',
186
+ 'version',
187
+ 'description',
188
+ 'compatibility',
189
+ 'skills',
190
+ 'mcpServers',
191
+ 'apps',
192
+ 'interface',
193
+ 'hooks',
194
+ ].includes(key)) {
195
+ throw new Error(`Invalid codex manifest: unknown field "${key}".`);
196
+ }
197
+ }
198
+ assertStrictSemVer(manifest.version, 'codex manifest.version');
199
+ assertStrictSemVer(manifest.compatibility.aw.minVersion, 'codex manifest.compatibility.aw.minVersion');
200
+ if (manifest.skills) {
201
+ await validateCodexSkillsTree(pluginRoot, manifest.skills, ownerMarkerPolicy);
202
+ }
203
+ if (manifest.mcpServers) {
204
+ await assertMcpArtifact(pluginRoot, manifest.mcpServers, 'codex.mcpServers', './codex/');
205
+ }
206
+ if (manifest.apps) {
207
+ await assertAppsArtifact(pluginRoot, manifest.apps, 'codex.apps', './codex/');
208
+ }
209
+ if (manifest.hooks) {
210
+ if (typeof manifest.hooks === 'string') {
211
+ throw new Error('Invalid codex.hooks: expected an inline hooks object.');
212
+ }
213
+ validateRenderedCodexHooksContent(manifest.hooks, 'codex.hooks');
214
+ }
215
+ }
216
+ async function listSkillDirectories(rootDir) {
217
+ const entries = await fs.readdir(rootDir, { withFileTypes: true });
218
+ const symbolicLink = entries.find((entry) => entry.isSymbolicLink());
219
+ if (symbolicLink) {
220
+ throw new Error(`Invalid skills root: symbolic links are not supported: "${symbolicLink.name}".`);
221
+ }
222
+ return entries
223
+ .filter((entry) => entry.isDirectory())
224
+ .map((entry) => entry.name)
225
+ .sort();
226
+ }
227
+ async function resolveSkillsCollectionRoot(pluginRoot, relativePath, fieldName, expectedPrefix) {
228
+ const lexicalRoot = assertRelativeBundlePath(pluginRoot, relativePath, fieldName, expectedPrefix);
229
+ let stats;
230
+ try {
231
+ stats = await fs.lstat(lexicalRoot);
232
+ }
233
+ catch (error) {
234
+ if (error.code === 'ENOENT') {
235
+ throw new Error(`Invalid ${fieldName}: "${relativePath}" does not exist in bundle.`);
236
+ }
237
+ throw error;
238
+ }
239
+ if (stats.isSymbolicLink() || !stats.isDirectory()) {
240
+ throw new Error(`Invalid ${fieldName}: skills root must be a regular directory.`);
241
+ }
242
+ return assertRealBundlePath(pluginRoot, lexicalRoot, fieldName, expectedPrefix);
243
+ }
244
+ async function assertSkillEntryExists(skillRoot, skillName, relativePath, fieldName) {
245
+ if (!(await fs.pathExists(path.join(skillRoot, relativePath)))) {
246
+ throw new Error(`Invalid ${fieldName}: skill "${skillName}" is missing ${relativePath}.`);
247
+ }
248
+ }
249
+ async function validateClaudeSkillsTree(pluginRoot, relativePath, ownerMarkerPolicy) {
250
+ const skillsRoot = await resolveSkillsCollectionRoot(pluginRoot, relativePath, 'claude.skills', './claude/');
251
+ for (const skillName of await listSkillDirectories(skillsRoot)) {
252
+ const skillRoot = path.join(skillsRoot, skillName);
253
+ await assertSkillEntryExists(skillRoot, skillName, 'SKILL.md', 'claude.skills');
254
+ await validateRuntimeSkillClosure(skillRoot);
255
+ await validateSkillDirectory(skillRoot, 'claude.skill', { ownerMarkerPolicy });
256
+ }
257
+ }
258
+ async function validateCodexSkillsTree(pluginRoot, relativePath, ownerMarkerPolicy) {
259
+ const skillsRoot = await resolveSkillsCollectionRoot(pluginRoot, relativePath, 'codex.skills', './codex/');
260
+ for (const skillName of await listSkillDirectories(skillsRoot)) {
261
+ const skillRoot = path.join(skillsRoot, skillName);
262
+ await assertSkillEntryExists(skillRoot, skillName, 'SKILL.md', 'codex.skills');
263
+ await assertSkillEntryExists(skillRoot, skillName, path.join('agents', 'openai.yaml'), 'codex.skills');
264
+ await validateRuntimeSkillClosure(skillRoot);
265
+ await validateSkillDirectory(skillRoot, 'codex.skill', { ownerMarkerPolicy });
266
+ }
267
+ }
268
+ function isNodeRuntimeEntry(entry) {
269
+ return entry.runner === 'node' || (entry.runner === 'auto' &&
270
+ NODE_RUNTIME_EXTENSIONS.has(path.posix.extname(entry.path).toLowerCase()));
271
+ }
272
+ async function listFilesRecursively(rootDir) {
273
+ const entries = await fs.readdir(rootDir, { withFileTypes: true }).catch(() => []);
274
+ const files = [];
275
+ for (const entry of entries) {
276
+ const entryPath = path.join(rootDir, entry.name);
277
+ if (entry.isDirectory()) {
278
+ const nestedFiles = await listFilesRecursively(entryPath);
279
+ files.push(...nestedFiles.map((nestedFile) => path.join(entry.name, nestedFile).split(path.sep).join('/')));
280
+ continue;
281
+ }
282
+ files.push(entry.name);
283
+ }
284
+ return files.sort();
285
+ }
286
+ async function readJsonObject(filePath, fieldName) {
287
+ const content = await assertJsonObjectFile(filePath, fieldName);
288
+ return content;
289
+ }
290
+ function readDependencyNames(packageJson, fieldName) {
291
+ const dependencies = packageJson[fieldName];
292
+ if (!dependencies || typeof dependencies !== 'object' || Array.isArray(dependencies)) {
293
+ return [];
294
+ }
295
+ return Object.keys(dependencies).sort();
296
+ }
297
+ async function readPackageRootDependencySets(pluginRoot, manifest) {
298
+ const packageRoot = manifest.scripts?.node?.packageRoot;
299
+ if (!packageRoot) {
300
+ return { dependencies: [], devDependencies: [] };
301
+ }
302
+ const packageJson = await readJsonObject(path.join(pluginRoot, stripDotSlash(packageRoot), 'package.json'), 'scripts.node.packageRoot.package.json');
303
+ return {
304
+ dependencies: readDependencyNames(packageJson, 'dependencies'),
305
+ devDependencies: readDependencyNames(packageJson, 'devDependencies'),
306
+ };
307
+ }
308
+ async function validateRuntimeBareImportResolvesInBundle(pluginRoot, manifest, bareSpecifiers) {
309
+ const packageRoot = manifest.scripts?.node?.packageRoot;
310
+ if (!packageRoot || bareSpecifiers.length === 0) {
311
+ return;
312
+ }
313
+ const absolutePackageRoot = path.join(pluginRoot, stripDotSlash(packageRoot));
314
+ const realPluginRoot = await fs.realpath(pluginRoot);
315
+ for (const specifier of bareSpecifiers) {
316
+ const packageDir = path.join(absolutePackageRoot, 'node_modules', ...specifier.split('/'));
317
+ const realPackageDir = await fs.realpath(packageDir).catch(() => undefined);
318
+ if (!realPackageDir) {
319
+ throw new Error(`Invalid scripts.node runtime import "${specifier}": package is missing from bundle node_modules.`);
320
+ }
321
+ const relativeToPluginRoot = path.relative(realPluginRoot, realPackageDir);
322
+ if (relativeToPluginRoot.startsWith('..') || path.isAbsolute(relativeToPluginRoot)) {
323
+ throw new Error(`Invalid scripts.node runtime import "${specifier}": package resolves outside the bundle.`);
324
+ }
325
+ }
326
+ }
327
+ async function validateAwRuntimeLayout(pluginRoot, manifest) {
328
+ if (manifest.scripts?.tests) {
329
+ throw new Error('Invalid bundle source manifest: scripts.tests must not be included in runtime bundle.');
330
+ }
331
+ if (manifest.scripts?.node?.build) {
332
+ throw new Error('Invalid bundle source manifest: scripts.node.build must not be included in runtime bundle.');
333
+ }
334
+ const portableSkillsRoot = manifest.distributions?.agentSkills?.skills;
335
+ if (portableSkillsRoot) {
336
+ const resolvedRoot = await resolveExistingBundlePath(pluginRoot, portableSkillsRoot, 'distributions.agentSkills.skills', './');
337
+ const stats = await fs.lstat(path.join(pluginRoot, stripDotSlash(portableSkillsRoot)));
338
+ if (stats.isSymbolicLink() || !stats.isDirectory()) {
339
+ throw new Error('Invalid distributions.agentSkills.skills: skills root must be a regular directory.');
340
+ }
341
+ const entries = await fs.readdir(resolvedRoot, { withFileTypes: true });
342
+ const invalidEntry = entries.find((entry) => entry.isSymbolicLink() || !entry.isDirectory());
343
+ if (invalidEntry) {
344
+ throw new Error(`Invalid distributions.agentSkills.skills: direct child ${JSON.stringify(invalidEntry.name)} must be a regular directory.`);
345
+ }
346
+ const trees = await validatePortableSkillDirectoriesRoot(resolvedRoot);
347
+ await Promise.all(trees.map((tree) => validateRuntimeSkillClosure(path.join(resolvedRoot, tree.skillKey))));
348
+ }
349
+ const runtimeFiles = new Set();
350
+ const nodeEntries = new Set();
351
+ const lifecycle = manifest.scripts?.lifecycle;
352
+ if (lifecycle) {
353
+ for (const [event, selector] of Object.entries(lifecycle)) {
354
+ if (!selector) {
355
+ continue;
356
+ }
357
+ for (const [osSelector, entry] of Object.entries(selector)) {
358
+ if (!entry) {
359
+ continue;
360
+ }
361
+ const fieldName = `scripts.lifecycle.${event}.${osSelector}.path`;
362
+ await assertBundlePathExists(pluginRoot, entry.path, fieldName, './');
363
+ const filePath = stripDotSlash(entry.path);
364
+ runtimeFiles.add(filePath);
365
+ if (isNodeRuntimeEntry(entry)) {
366
+ nodeEntries.add(filePath);
367
+ }
368
+ }
369
+ }
370
+ }
371
+ const configHelper = manifest.scripts?.helpers?.config;
372
+ if (configHelper) {
373
+ await assertBundlePathExists(pluginRoot, configHelper, 'scripts.helpers.config', './');
374
+ const filePath = stripDotSlash(configHelper);
375
+ runtimeFiles.add(filePath);
376
+ nodeEntries.add(filePath);
377
+ }
378
+ const artifactRenderer = manifest.scripts?.artifacts?.render;
379
+ if (artifactRenderer) {
380
+ await assertBundlePathExists(pluginRoot, artifactRenderer.path, 'scripts.artifacts.render.path', './');
381
+ const filePath = stripDotSlash(artifactRenderer.path);
382
+ runtimeFiles.add(filePath);
383
+ nodeEntries.add(filePath);
384
+ }
385
+ for (const [targetIndex, target] of (manifest.artifacts?.targets ?? []).entries()) {
386
+ for (const [sourceIndex] of (target.sourceDirs ?? []).entries()) {
387
+ const relativePath = getArtifactSourceBundleRelativePath({
388
+ platform: target.platform,
389
+ distribution: target.distribution,
390
+ artifactId: target.id,
391
+ index: sourceIndex,
392
+ });
393
+ const stats = await fs.lstat(path.join(pluginRoot, relativePath)).catch(() => null);
394
+ if (!stats?.isDirectory() || stats.isSymbolicLink()) {
395
+ throw new Error(`Invalid artifacts.targets[${targetIndex}].sourceDirs[${sourceIndex}]: ` +
396
+ `missing bundled artifact source directory "${relativePath}".`);
397
+ }
398
+ }
399
+ }
400
+ const packageRoot = manifest.scripts?.node?.packageRoot;
401
+ let packageRootDependencySets = {
402
+ dependencies: [],
403
+ devDependencies: [],
404
+ };
405
+ if (packageRoot) {
406
+ await assertBundlePathExists(pluginRoot, `${packageRoot}/package.json`, 'scripts.node.packageRoot.package.json', './');
407
+ await assertBundlePathExists(pluginRoot, `${packageRoot}/pnpm-lock.yaml`, 'scripts.node.packageRoot.pnpm-lock.yaml', './');
408
+ packageRootDependencySets = await readPackageRootDependencySets(pluginRoot, manifest);
409
+ if (packageRootDependencySets.dependencies.length > 0) {
410
+ const nodeModulesPath = path.join(pluginRoot, stripDotSlash(packageRoot), 'node_modules');
411
+ const nodeModulesStats = await fs.stat(nodeModulesPath).catch(() => null);
412
+ if (!nodeModulesStats?.isDirectory()) {
413
+ throw new Error('Invalid scripts.node.packageRoot: missing production node_modules in bundle.');
414
+ }
415
+ }
416
+ }
417
+ if (nodeEntries.size === 0) {
418
+ return;
419
+ }
420
+ const allFiles = await listFilesRecursively(pluginRoot);
421
+ const scanFiles = {};
422
+ await Promise.all(allFiles
423
+ .filter((filePath) => (NODE_RUNTIME_EXTENSIONS.has(path.posix.extname(filePath).toLowerCase())
424
+ || path.posix.basename(filePath) === 'package.json'))
425
+ .map(async (filePath) => {
426
+ scanFiles[filePath] = await fs.readFile(path.join(pluginRoot, filePath), 'utf8');
427
+ }));
428
+ const { dependencies, devDependencies } = packageRootDependencySets;
429
+ const scan = scanNodeImportContract({
430
+ files: scanFiles,
431
+ filePaths: allFiles,
432
+ entryFiles: [...nodeEntries],
433
+ dependencies,
434
+ devDependencies,
435
+ });
436
+ if (scan.errors.length > 0) {
437
+ throw new Error(`Invalid scripts.node runtime imports:\n${scan.errors.join('\n')}`);
438
+ }
439
+ for (const filePath of scan.files) {
440
+ runtimeFiles.add(filePath);
441
+ if (!(await fs.pathExists(path.join(pluginRoot, filePath)))) {
442
+ throw new Error(`Invalid scripts.node runtime file: "${filePath}" does not exist in bundle.`);
443
+ }
444
+ }
445
+ await validateRuntimeBareImportResolvesInBundle(pluginRoot, manifest, scan.bareSpecifiers);
446
+ }
447
+ function formatPlatformLabel(platform) {
448
+ return platform === 'claude' ? 'Claude' : 'Codex';
449
+ }
450
+ function formatPluginNameList(pluginNames) {
451
+ const sorted = [...new Set(pluginNames)].sort();
452
+ return sorted.length > 0 ? sorted.join(', ') : '(none)';
453
+ }
454
+ async function readMarketplaceManifestFromBundle(rootDir, platform) {
455
+ const manifestPath = path.join(rootDir, platform === 'claude'
456
+ ? '.claude-plugin/marketplace.json'
457
+ : '.agents/plugins/marketplace.json');
458
+ return readMarketplaceManifestAtPath(manifestPath, `${formatPlatformLabel(platform)} marketplace manifest`);
459
+ }
460
+ async function listBundledPluginNames(rootDir) {
461
+ const pluginsRoot = path.join(rootDir, 'plugins');
462
+ const entries = await fs.readdir(pluginsRoot, { withFileTypes: true });
463
+ return entries
464
+ .filter((entry) => entry.isDirectory())
465
+ .map((entry) => entry.name)
466
+ .sort();
467
+ }
468
+ function validateMarketplaceEntriesForPlatform(marketplace, platform, expectedPluginNames) {
469
+ const platformLabel = formatPlatformLabel(platform);
470
+ const marketplacePluginNames = new Set();
471
+ for (const pluginEntry of marketplace.plugins) {
472
+ if (pluginEntry.source !== `./plugins/${pluginEntry.name}`) {
473
+ throw new Error(`Invalid marketplace source for "${pluginEntry.name}": expected "./plugins/${pluginEntry.name}".`);
474
+ }
475
+ if (marketplacePluginNames.has(pluginEntry.name)) {
476
+ throw new Error(`Invalid ${platformLabel} marketplace entries: duplicate plugin "${pluginEntry.name}".`);
477
+ }
478
+ if (Object.hasOwn(pluginEntry, 'dependencies')) {
479
+ throw new Error(`Invalid marketplace entry for "${pluginEntry.name}": unknown field "dependencies".`);
480
+ }
481
+ marketplacePluginNames.add(pluginEntry.name);
482
+ }
483
+ if (marketplacePluginNames.size !== expectedPluginNames.size) {
484
+ throw new Error(`Invalid ${platformLabel} marketplace entries: expected supported plugins [${formatPluginNameList(expectedPluginNames)}], received [${formatPluginNameList(marketplacePluginNames)}].`);
485
+ }
486
+ for (const pluginName of expectedPluginNames) {
487
+ if (!marketplacePluginNames.has(pluginName)) {
488
+ throw new Error(`Invalid ${platformLabel} marketplace entries: expected supported plugins [${formatPluginNameList(expectedPluginNames)}], received [${formatPluginNameList(marketplacePluginNames)}].`);
489
+ }
490
+ }
491
+ }
492
+ export async function validateBundleLayout(rootDir, options) {
493
+ const ownerMarkerPolicy = options?.ownerMarkerPolicy ?? 'reject';
494
+ const [claudeMarketplace, codexMarketplace, bundledPluginNames] = await Promise.all([
495
+ readMarketplaceManifestFromBundle(rootDir, 'claude'),
496
+ readMarketplaceManifestFromBundle(rootDir, 'codex'),
497
+ listBundledPluginNames(rootDir),
498
+ ]);
499
+ const supportedPluginNamesByPlatform = {
500
+ claude: new Set(),
501
+ codex: new Set(),
502
+ };
503
+ const pluginMetas = [];
504
+ for (const pluginName of bundledPluginNames) {
505
+ const pluginRoot = path.join(rootDir, 'plugins', pluginName);
506
+ const sourceManifestPath = path.join(pluginRoot, '.agents-plugin', 'plugin.json');
507
+ if (!(await fs.pathExists(sourceManifestPath))) {
508
+ throw new Error(`Invalid bundle layout: plugin "${pluginName}" is missing .agents-plugin/plugin.json.`);
509
+ }
510
+ const sourceManifest = validatePluginManifest(pluginRoot, await readJsonFile(sourceManifestPath));
511
+ pluginMetas.push({
512
+ rootDir: pluginRoot,
513
+ manifestPath: sourceManifestPath,
514
+ manifest: sourceManifest,
515
+ });
516
+ await validateAwRuntimeLayout(pluginRoot, sourceManifest);
517
+ const supportedPlatforms = resolveSupportedPlatforms(sourceManifest);
518
+ for (const platform of ['claude', 'codex']) {
519
+ const platformLabel = formatPlatformLabel(platform);
520
+ const manifestDir = path.join(pluginRoot, `.${platform}-plugin`);
521
+ const manifestPath = path.join(manifestDir, 'plugin.json');
522
+ const runtimeDir = path.join(pluginRoot, platform);
523
+ if (supportedPlatforms.has(platform)) {
524
+ supportedPluginNamesByPlatform[platform].add(pluginName);
525
+ if (!(await fs.pathExists(manifestPath))) {
526
+ throw new Error(`Invalid bundle layout: missing supported ${platformLabel} manifest for plugin "${pluginName}".`);
527
+ }
528
+ const platformManifest = await readJsonFile(manifestPath);
529
+ if (platform === 'claude') {
530
+ await validateClaudeManifest(pluginRoot, platformManifest, ownerMarkerPolicy);
531
+ }
532
+ else {
533
+ await validateCodexManifest(pluginRoot, platformManifest, ownerMarkerPolicy);
534
+ }
535
+ continue;
536
+ }
537
+ if ((await fs.pathExists(manifestDir)) || (await fs.pathExists(runtimeDir))) {
538
+ throw new Error(`Invalid bundle layout: unexpected ${platformLabel} bundle files for unsupported platform in plugin "${pluginName}".`);
539
+ }
540
+ }
541
+ await assertActualNativePluginCapability(pluginRoot, sourceManifest, 'bundle');
542
+ }
543
+ validateMarketplaceEntriesForPlatform(claudeMarketplace, 'claude', supportedPluginNamesByPlatform.claude);
544
+ validateMarketplaceEntriesForPlatform(codexMarketplace, 'codex', supportedPluginNamesByPlatform.codex);
545
+ }
546
+ //# sourceMappingURL=bundle-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-layout.js","sourceRoot":"","sources":["../../../src/utils/bundle-layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { CatalogManifestEntry, PluginManifestSource } from '../types.js';
2
+ export declare function calculateCatalogEntryManifestDigest(manifest: PluginManifestSource | CatalogManifestEntry): string;
3
+ export declare function calculateCatalogEntryArtifactDigest(pluginRoot: string): Promise<string>;
4
+ export declare function calculateCatalogEntryContentDigest(pluginRoot: string): Promise<string>;
5
+ export declare function calculateCatalogEntryDigestsFromRoot(pluginRoot: string): Promise<{
6
+ manifestDigest: string;
7
+ artifactDigest: string;
8
+ }>;