@lesliechan721/aw 0.1.0-beta.4 → 0.1.0-beta.41

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 (571) hide show
  1. package/dist/authoring/assets/aw-config.mjs +100 -501
  2. package/dist/authoring/assets/aw-config.mjs.map +1 -1
  3. package/dist/authoring/assets/aw-runtime-config.d.mts +13 -0
  4. package/dist/authoring/assets/aw-runtime-config.mjs +199 -0
  5. package/dist/authoring/assets/aw-runtime-config.mjs.map +1 -0
  6. package/dist/authoring/scripts/add-skill.mjs +4 -4
  7. package/dist/authoring/scripts/add-skill.mjs.map +1 -1
  8. package/dist/authoring/scripts/init-plugin.mjs +67 -97
  9. package/dist/authoring/scripts/init-plugin.mjs.map +1 -1
  10. package/dist/authoring/scripts/lib/plugin-version-check.d.mts +15 -0
  11. package/dist/authoring/scripts/lib/plugin-version-check.mjs +239 -232
  12. package/dist/authoring/scripts/lib/plugin-version-check.mjs.map +1 -1
  13. package/dist/authoring/scripts/lib/skill-scaffold.d.mts +77 -90
  14. package/dist/authoring/scripts/lib/skill-scaffold.mjs +99 -120
  15. package/dist/authoring/scripts/lib/skill-scaffold.mjs.map +1 -1
  16. package/dist/authoring/scripts/plugin-status.mjs +8 -11
  17. package/dist/authoring/scripts/plugin-status.mjs.map +1 -1
  18. package/dist/authoring/scripts/remove-plugin.mjs +367 -0
  19. package/dist/authoring/scripts/remove-plugin.mjs.map +1 -0
  20. package/dist/authoring/scripts/validate-plugin.mjs +353 -1175
  21. package/dist/authoring/scripts/validate-plugin.mjs.map +1 -1
  22. package/dist/scripts/aw-skill-eval-materializer.d.ts +26 -0
  23. package/dist/scripts/aw-skill-eval-materializer.js +306 -0
  24. package/dist/scripts/aw-skill-eval-materializer.js.map +1 -0
  25. package/dist/scripts/bundle-plugins.d.ts +1 -2
  26. package/dist/scripts/bundle-plugins.js +24 -7
  27. package/dist/scripts/bundle-plugins.js.map +1 -1
  28. package/dist/scripts/plugin-staging.d.ts +7 -24
  29. package/dist/scripts/plugin-staging.js +22 -142
  30. package/dist/scripts/plugin-staging.js.map +1 -1
  31. package/dist/scripts/test-plugin-scripts.d.ts +2 -0
  32. package/dist/scripts/test-plugin-scripts.js +30 -75
  33. package/dist/scripts/test-plugin-scripts.js.map +1 -1
  34. package/dist/src/adapters/helpers.js +2 -2
  35. package/dist/src/adapters/helpers.js.map +1 -1
  36. package/dist/src/authoring/workspace-commands.d.ts +26 -2
  37. package/dist/src/authoring/workspace-commands.js +44 -19
  38. package/dist/src/authoring/workspace-commands.js.map +1 -1
  39. package/dist/src/commands/aw-capabilities.d.ts +78 -0
  40. package/dist/src/commands/aw-capabilities.js +263 -0
  41. package/dist/src/commands/aw-capabilities.js.map +1 -0
  42. package/dist/src/commands/catalog-dev-source.d.ts +154 -0
  43. package/dist/src/commands/catalog-dev-source.js +655 -0
  44. package/dist/src/commands/catalog-dev-source.js.map +1 -0
  45. package/dist/src/commands/catalog-generation.d.ts +21 -0
  46. package/dist/src/commands/catalog-generation.js +9 -0
  47. package/dist/src/commands/catalog-generation.js.map +1 -0
  48. package/dist/src/commands/catalog-publication-inspection.d.ts +138 -0
  49. package/dist/src/commands/catalog-publication-inspection.js +757 -0
  50. package/dist/src/commands/catalog-publication-inspection.js.map +1 -0
  51. package/dist/src/commands/catalog-publication-journal.d.ts +68 -0
  52. package/dist/src/commands/catalog-publication-journal.js +292 -0
  53. package/dist/src/commands/catalog-publication-journal.js.map +1 -0
  54. package/dist/src/commands/catalog-publication-target.d.ts +18 -0
  55. package/dist/src/commands/catalog-publication-target.js +95 -0
  56. package/dist/src/commands/catalog-publication-target.js.map +1 -0
  57. package/dist/src/commands/catalog-publish.d.ts +77 -7
  58. package/dist/src/commands/catalog-publish.js +746 -316
  59. package/dist/src/commands/catalog-publish.js.map +1 -1
  60. package/dist/src/commands/catalog-source.d.ts +60 -22
  61. package/dist/src/commands/catalog-source.js +311 -91
  62. package/dist/src/commands/catalog-source.js.map +1 -1
  63. package/dist/src/commands/catalog-status.d.ts +56 -0
  64. package/dist/src/commands/catalog-status.js +217 -0
  65. package/dist/src/commands/catalog-status.js.map +1 -0
  66. package/dist/src/commands/catalog-store.d.ts +104 -0
  67. package/dist/src/commands/catalog-store.js +685 -0
  68. package/dist/src/commands/catalog-store.js.map +1 -0
  69. package/dist/src/commands/catalog-workspace-resolution.d.ts +13 -0
  70. package/dist/src/commands/catalog-workspace-resolution.js +42 -0
  71. package/dist/src/commands/catalog-workspace-resolution.js.map +1 -0
  72. package/dist/src/commands/console.js +28 -17
  73. package/dist/src/commands/console.js.map +1 -1
  74. package/dist/src/commands/dependency-operation-plan.d.ts +52 -15
  75. package/dist/src/commands/dependency-operation-plan.js +289 -7
  76. package/dist/src/commands/dependency-operation-plan.js.map +1 -1
  77. package/dist/src/commands/init.d.ts +5 -11
  78. package/dist/src/commands/init.js +30 -51
  79. package/dist/src/commands/init.js.map +1 -1
  80. package/dist/src/commands/offline-cleanup-evidence.d.ts +67 -0
  81. package/dist/src/commands/offline-cleanup-evidence.js +181 -0
  82. package/dist/src/commands/offline-cleanup-evidence.js.map +1 -0
  83. package/dist/src/commands/operation-plan.d.ts +146 -0
  84. package/dist/src/commands/operation-plan.js +71 -0
  85. package/dist/src/commands/operation-plan.js.map +1 -0
  86. package/dist/src/commands/operation-planner.d.ts +46 -0
  87. package/dist/src/commands/operation-planner.js +141 -0
  88. package/dist/src/commands/operation-planner.js.map +1 -0
  89. package/dist/src/commands/options.d.ts +9 -7
  90. package/dist/src/commands/options.js +83 -21
  91. package/dist/src/commands/options.js.map +1 -1
  92. package/dist/src/commands/plugin-capabilities.d.ts +22 -0
  93. package/dist/src/commands/plugin-capabilities.js +163 -0
  94. package/dist/src/commands/plugin-capabilities.js.map +1 -0
  95. package/dist/src/commands/rebuild-command.d.ts +78 -30
  96. package/dist/src/commands/rebuild-command.js +4877 -713
  97. package/dist/src/commands/rebuild-command.js.map +1 -1
  98. package/dist/src/commands/rebuild-integration.d.ts +132 -21
  99. package/dist/src/commands/rebuild-integration.js +2853 -1327
  100. package/dist/src/commands/rebuild-integration.js.map +1 -1
  101. package/dist/src/commands/rebuild-operations.d.ts +58 -30
  102. package/dist/src/commands/rebuild-operations.js +260 -319
  103. package/dist/src/commands/rebuild-operations.js.map +1 -1
  104. package/dist/src/commands/reconcile-operation-plan.d.ts +28 -0
  105. package/dist/src/commands/reconcile-operation-plan.js +47 -0
  106. package/dist/src/commands/reconcile-operation-plan.js.map +1 -0
  107. package/dist/src/commands/review-inspection.d.ts +228 -0
  108. package/dist/src/commands/review-inspection.js +1341 -0
  109. package/dist/src/commands/review-inspection.js.map +1 -0
  110. package/dist/src/commands/review-preparation.d.ts +49 -0
  111. package/dist/src/commands/review-preparation.js +427 -0
  112. package/dist/src/commands/review-preparation.js.map +1 -0
  113. package/dist/src/commands/runtime.d.ts +1 -5
  114. package/dist/src/commands/runtime.js +24 -50
  115. package/dist/src/commands/runtime.js.map +1 -1
  116. package/dist/src/commands/skill-eval.d.ts +39 -0
  117. package/dist/src/commands/skill-eval.js +400 -0
  118. package/dist/src/commands/skill-eval.js.map +1 -0
  119. package/dist/src/commands/status-v6.d.ts +279 -0
  120. package/dist/src/commands/status-v6.js +2787 -0
  121. package/dist/src/commands/status-v6.js.map +1 -0
  122. package/dist/src/commands/sync-command.d.ts +40 -0
  123. package/dist/src/commands/sync-command.js +250 -0
  124. package/dist/src/commands/sync-command.js.map +1 -0
  125. package/dist/src/commands/wizard.d.ts +8 -5
  126. package/dist/src/commands/wizard.js +6 -4
  127. package/dist/src/commands/wizard.js.map +1 -1
  128. package/dist/src/commands/write-commands.d.ts +9 -3
  129. package/dist/src/commands/write-commands.js +127 -31
  130. package/dist/src/commands/write-commands.js.map +1 -1
  131. package/dist/src/constants.d.ts +7 -1
  132. package/dist/src/constants.js +7 -1
  133. package/dist/src/constants.js.map +1 -1
  134. package/dist/src/eval/manifest-v1.d.ts +71 -0
  135. package/dist/src/eval/manifest-v1.js +370 -0
  136. package/dist/src/eval/manifest-v1.js.map +1 -0
  137. package/dist/src/generators/local-plugin.d.ts +5 -1
  138. package/dist/src/generators/local-plugin.js +228 -104
  139. package/dist/src/generators/local-plugin.js.map +1 -1
  140. package/dist/src/index.d.ts +10 -4
  141. package/dist/src/index.js +1835 -469
  142. package/dist/src/index.js.map +1 -1
  143. package/dist/src/output/command-receipt.d.ts +43 -46
  144. package/dist/src/output/command-receipt.js +256 -80
  145. package/dist/src/output/command-receipt.js.map +1 -1
  146. package/dist/src/output/model.d.ts +3 -44
  147. package/dist/src/output/model.js +1 -144
  148. package/dist/src/output/model.js.map +1 -1
  149. package/dist/src/output/rebuild-progress.js +1 -13
  150. package/dist/src/output/rebuild-progress.js.map +1 -1
  151. package/dist/src/portable/commands.d.ts +46 -7
  152. package/dist/src/portable/commands.js +349 -37
  153. package/dist/src/portable/commands.js.map +1 -1
  154. package/dist/src/portable/materializer.d.ts +17 -4
  155. package/dist/src/portable/materializer.js +179 -41
  156. package/dist/src/portable/materializer.js.map +1 -1
  157. package/dist/src/portable/skills-cli.d.ts +15 -7
  158. package/dist/src/portable/skills-cli.js +66 -19
  159. package/dist/src/portable/skills-cli.js.map +1 -1
  160. package/dist/src/review/eval-source-input.d.ts +43 -0
  161. package/dist/src/review/eval-source-input.js +207 -0
  162. package/dist/src/review/eval-source-input.js.map +1 -0
  163. package/dist/src/review/review-profile.d.ts +17 -0
  164. package/dist/src/review/review-profile.js +234 -0
  165. package/dist/src/review/review-profile.js.map +1 -0
  166. package/dist/src/review/review-selection.d.ts +30 -0
  167. package/dist/src/review/review-selection.js +527 -0
  168. package/dist/src/review/review-selection.js.map +1 -0
  169. package/dist/src/review/review-types.d.ts +68 -0
  170. package/dist/src/review/review-types.js +16 -0
  171. package/dist/src/review/review-types.js.map +1 -0
  172. package/dist/src/review/skill-materialization.d.ts +13 -0
  173. package/dist/src/review/skill-materialization.js +75 -0
  174. package/dist/src/review/skill-materialization.js.map +1 -0
  175. package/dist/src/review/source-binding.d.ts +183 -0
  176. package/dist/src/review/source-binding.js +708 -0
  177. package/dist/src/review/source-binding.js.map +1 -0
  178. package/dist/src/tui/catalog-freshness.d.ts +1 -0
  179. package/dist/src/tui/catalog-freshness.js +2 -0
  180. package/dist/src/tui/catalog-freshness.js.map +1 -0
  181. package/dist/src/tui/catalog-generation.d.ts +21 -0
  182. package/dist/src/tui/catalog-generation.js +156 -0
  183. package/dist/src/tui/catalog-generation.js.map +1 -0
  184. package/dist/src/tui/catalog-sources/projection.d.ts +4 -0
  185. package/dist/src/tui/catalog-sources/projection.js +17 -0
  186. package/dist/src/tui/catalog-sources/projection.js.map +1 -0
  187. package/dist/src/tui/catalog-sources/review.d.ts +3 -0
  188. package/dist/src/tui/catalog-sources/review.js +13 -0
  189. package/dist/src/tui/catalog-sources/review.js.map +1 -0
  190. package/dist/src/tui/catalog-sources/screens.d.ts +12 -0
  191. package/dist/src/tui/catalog-sources/screens.js +40 -0
  192. package/dist/src/tui/catalog-sources/screens.js.map +1 -0
  193. package/dist/src/tui/catalog-sources/session.d.ts +32 -0
  194. package/dist/src/tui/catalog-sources/session.js +300 -0
  195. package/dist/src/tui/catalog-sources/session.js.map +1 -0
  196. package/dist/src/tui/catalog-sources/types.d.ts +54 -0
  197. package/dist/src/tui/catalog-sources/types.js +2 -0
  198. package/dist/src/tui/catalog-sources/types.js.map +1 -0
  199. package/dist/src/tui/catalog-store-task.d.ts +16 -0
  200. package/dist/src/tui/catalog-store-task.js +19 -0
  201. package/dist/src/tui/catalog-store-task.js.map +1 -0
  202. package/dist/src/tui/clipboard.d.ts +13 -0
  203. package/dist/src/tui/clipboard.js +95 -0
  204. package/dist/src/tui/clipboard.js.map +1 -0
  205. package/dist/src/tui/components.d.ts +177 -0
  206. package/dist/src/tui/components.js +297 -7
  207. package/dist/src/tui/components.js.map +1 -1
  208. package/dist/src/tui/config-array-draft.d.ts +29 -0
  209. package/dist/src/tui/config-array-draft.js +48 -0
  210. package/dist/src/tui/config-array-draft.js.map +1 -0
  211. package/dist/src/tui/config-leaf-editor.d.ts +16 -0
  212. package/dist/src/tui/config-leaf-editor.js +206 -0
  213. package/dist/src/tui/config-leaf-editor.js.map +1 -0
  214. package/dist/src/tui/config-value-presentation.d.ts +20 -0
  215. package/dist/src/tui/config-value-presentation.js +104 -0
  216. package/dist/src/tui/config-value-presentation.js.map +1 -0
  217. package/dist/src/tui/console-app-v4.d.ts +14 -4
  218. package/dist/src/tui/console-app-v4.js +9659 -1558
  219. package/dist/src/tui/console-app-v4.js.map +1 -1
  220. package/dist/src/tui/content-item-card.d.ts +13 -0
  221. package/dist/src/tui/content-item-card.js +51 -0
  222. package/dist/src/tui/content-item-card.js.map +1 -0
  223. package/dist/src/tui/controller-runtime.d.ts +13 -1
  224. package/dist/src/tui/controller-runtime.js +3323 -349
  225. package/dist/src/tui/controller-runtime.js.map +1 -1
  226. package/dist/src/tui/controller.d.ts +643 -40
  227. package/dist/src/tui/controller.js +3756 -705
  228. package/dist/src/tui/controller.js.map +1 -1
  229. package/dist/src/tui/dependency-graph-view.d.ts +39 -0
  230. package/dist/src/tui/dependency-graph-view.js +121 -0
  231. package/dist/src/tui/dependency-graph-view.js.map +1 -0
  232. package/dist/src/tui/dependency-graph.d.ts +81 -0
  233. package/dist/src/tui/dependency-graph.js +452 -0
  234. package/dist/src/tui/dependency-graph.js.map +1 -0
  235. package/dist/src/tui/diagnostic-projection.d.ts +23 -0
  236. package/dist/src/tui/diagnostic-projection.js +567 -0
  237. package/dist/src/tui/diagnostic-projection.js.map +1 -0
  238. package/dist/src/tui/diagnostics.d.ts +31 -0
  239. package/dist/src/tui/diagnostics.js +83 -0
  240. package/dist/src/tui/diagnostics.js.map +1 -0
  241. package/dist/src/tui/entity-cards.d.ts +55 -0
  242. package/dist/src/tui/entity-cards.js +220 -0
  243. package/dist/src/tui/entity-cards.js.map +1 -0
  244. package/dist/src/tui/glossary.d.ts +23 -0
  245. package/dist/src/tui/glossary.js +42 -0
  246. package/dist/src/tui/glossary.js.map +1 -0
  247. package/dist/src/tui/index.d.ts +11 -4
  248. package/dist/src/tui/index.js +8 -2
  249. package/dist/src/tui/index.js.map +1 -1
  250. package/dist/src/tui/input-display.d.ts +9 -0
  251. package/dist/src/tui/input-display.js +58 -0
  252. package/dist/src/tui/input-display.js.map +1 -0
  253. package/dist/src/tui/keys.d.ts +44 -0
  254. package/dist/src/tui/keys.js +43 -15
  255. package/dist/src/tui/keys.js.map +1 -1
  256. package/dist/src/tui/lifecycle-action-view.d.ts +6 -0
  257. package/dist/src/tui/lifecycle-action-view.js +36 -0
  258. package/dist/src/tui/lifecycle-action-view.js.map +1 -0
  259. package/dist/src/tui/model.d.ts +248 -27
  260. package/dist/src/tui/model.js +1662 -314
  261. package/dist/src/tui/model.js.map +1 -1
  262. package/dist/src/tui/operation-diagnostic-screens.d.ts +8 -0
  263. package/dist/src/tui/operation-diagnostic-screens.js +71 -0
  264. package/dist/src/tui/operation-diagnostic-screens.js.map +1 -0
  265. package/dist/src/tui/operation-history.d.ts +81 -0
  266. package/dist/src/tui/operation-history.js +136 -0
  267. package/dist/src/tui/operation-history.js.map +1 -0
  268. package/dist/src/tui/operation-review-planner.d.ts +21 -0
  269. package/dist/src/tui/operation-review-planner.js +1295 -0
  270. package/dist/src/tui/operation-review-planner.js.map +1 -0
  271. package/dist/src/tui/plugin-content.d.ts +31 -0
  272. package/dist/src/tui/plugin-content.js +680 -0
  273. package/dist/src/tui/plugin-content.js.map +1 -0
  274. package/dist/src/tui/plugin-detail.d.ts +52 -0
  275. package/dist/src/tui/plugin-detail.js +165 -0
  276. package/dist/src/tui/plugin-detail.js.map +1 -0
  277. package/dist/src/tui/plugin-write-task.d.ts +69 -0
  278. package/dist/src/tui/plugin-write-task.js +286 -0
  279. package/dist/src/tui/plugin-write-task.js.map +1 -0
  280. package/dist/src/tui/project-inventory.d.ts +68 -0
  281. package/dist/src/tui/project-inventory.js +203 -0
  282. package/dist/src/tui/project-inventory.js.map +1 -0
  283. package/dist/src/tui/prompt.js +4 -15
  284. package/dist/src/tui/prompt.js.map +1 -1
  285. package/dist/src/tui/query-header.d.ts +30 -0
  286. package/dist/src/tui/query-header.js +40 -0
  287. package/dist/src/tui/query-header.js.map +1 -0
  288. package/dist/src/tui/reader.d.ts +37 -0
  289. package/dist/src/tui/reader.js +47 -0
  290. package/dist/src/tui/reader.js.map +1 -0
  291. package/dist/src/tui/router.d.ts +207 -14
  292. package/dist/src/tui/router.js +352 -29
  293. package/dist/src/tui/router.js.map +1 -1
  294. package/dist/src/tui/screen-registry.d.ts +701 -0
  295. package/dist/src/tui/screen-registry.js +230 -0
  296. package/dist/src/tui/screen-registry.js.map +1 -0
  297. package/dist/src/tui/session-console-app.d.ts +6 -0
  298. package/dist/src/tui/session-console-app.js +13 -0
  299. package/dist/src/tui/session-console-app.js.map +1 -0
  300. package/dist/src/tui/session-host.d.ts +45 -0
  301. package/dist/src/tui/session-host.js +209 -0
  302. package/dist/src/tui/session-host.js.map +1 -0
  303. package/dist/src/tui/source-detail-card.d.ts +29 -0
  304. package/dist/src/tui/source-detail-card.js +45 -0
  305. package/dist/src/tui/source-detail-card.js.map +1 -0
  306. package/dist/src/tui/source-ref-presets.d.ts +3 -0
  307. package/dist/src/tui/source-ref-presets.js +11 -0
  308. package/dist/src/tui/source-ref-presets.js.map +1 -0
  309. package/dist/src/tui/theme.d.ts +30 -10
  310. package/dist/src/tui/theme.js +30 -10
  311. package/dist/src/tui/theme.js.map +1 -1
  312. package/dist/src/tui/viewport.d.ts +21 -0
  313. package/dist/src/tui/viewport.js +52 -0
  314. package/dist/src/tui/viewport.js.map +1 -0
  315. package/dist/src/tui/views.js +31 -3
  316. package/dist/src/tui/views.js.map +1 -1
  317. package/dist/src/tui/wizard.js +37 -13
  318. package/dist/src/tui/wizard.js.map +1 -1
  319. package/dist/src/types.d.ts +244 -20
  320. package/dist/src/types.js +1 -0
  321. package/dist/src/types.js.map +1 -1
  322. package/dist/src/utils/agent-version.d.ts +7 -1
  323. package/dist/src/utils/agent-version.js +41 -8
  324. package/dist/src/utils/agent-version.js.map +1 -1
  325. package/dist/src/utils/artifact-plan.d.ts +5 -4
  326. package/dist/src/utils/artifact-plan.js +18 -7
  327. package/dist/src/utils/artifact-plan.js.map +1 -1
  328. package/dist/src/utils/artifact-renderer.d.ts +17 -7
  329. package/dist/src/utils/artifact-renderer.js +214 -216
  330. package/dist/src/utils/artifact-renderer.js.map +1 -1
  331. package/dist/src/utils/artifact-request.d.ts +21 -0
  332. package/dist/src/utils/artifact-request.js +78 -0
  333. package/dist/src/utils/artifact-request.js.map +1 -0
  334. package/dist/src/utils/aw-home-mutation-lock.d.ts +1 -0
  335. package/dist/src/utils/aw-home-mutation-lock.js +32 -4
  336. package/dist/src/utils/aw-home-mutation-lock.js.map +1 -1
  337. package/dist/src/utils/bundle-integrity.d.ts +0 -1
  338. package/dist/src/utils/bundle-integrity.js +0 -25
  339. package/dist/src/utils/bundle-integrity.js.map +1 -1
  340. package/dist/src/utils/bundle-layout.js +22 -29
  341. package/dist/src/utils/bundle-layout.js.map +1 -1
  342. package/dist/src/utils/catalog-capability-projection.d.ts +8 -0
  343. package/dist/src/utils/catalog-capability-projection.js +14 -0
  344. package/dist/src/utils/catalog-capability-projection.js.map +1 -0
  345. package/dist/src/utils/catalog-digests.d.ts +10 -0
  346. package/dist/src/utils/catalog-digests.js +50 -2
  347. package/dist/src/utils/catalog-digests.js.map +1 -1
  348. package/dist/src/utils/catalog-generation-control-snapshot.d.ts +11 -0
  349. package/dist/src/utils/catalog-generation-control-snapshot.js +45 -0
  350. package/dist/src/utils/catalog-generation-control-snapshot.js.map +1 -0
  351. package/dist/src/utils/catalog-generation-error.d.ts +16 -0
  352. package/dist/src/utils/catalog-generation-error.js +30 -0
  353. package/dist/src/utils/catalog-generation-error.js.map +1 -0
  354. package/dist/src/utils/catalog-generation-resolver.d.ts +44 -0
  355. package/dist/src/utils/catalog-generation-resolver.js +273 -0
  356. package/dist/src/utils/catalog-generation-resolver.js.map +1 -0
  357. package/dist/src/utils/catalog-generation-service.d.ts +172 -0
  358. package/dist/src/utils/catalog-generation-service.js +1271 -0
  359. package/dist/src/utils/catalog-generation-service.js.map +1 -0
  360. package/dist/src/utils/catalog-generation-state.d.ts +22 -0
  361. package/dist/src/utils/catalog-generation-state.js +192 -0
  362. package/dist/src/utils/catalog-generation-state.js.map +1 -0
  363. package/dist/src/utils/catalog-generation-store.d.ts +58 -0
  364. package/dist/src/utils/catalog-generation-store.js +452 -0
  365. package/dist/src/utils/catalog-generation-store.js.map +1 -0
  366. package/dist/src/utils/catalog-manifest-v7.d.ts +5 -0
  367. package/dist/src/utils/{catalog-manifest-v4.js → catalog-manifest-v7.js} +35 -43
  368. package/dist/src/utils/catalog-manifest-v7.js.map +1 -0
  369. package/dist/src/utils/catalog-operation-context.d.ts +20 -0
  370. package/dist/src/utils/catalog-operation-context.js +142 -0
  371. package/dist/src/utils/catalog-operation-context.js.map +1 -0
  372. package/dist/src/utils/catalog-public-error.d.ts +7 -3
  373. package/dist/src/utils/catalog-public-error.js +28 -8
  374. package/dist/src/utils/catalog-public-error.js.map +1 -1
  375. package/dist/src/utils/catalog-runtime-projection.d.ts +4 -7
  376. package/dist/src/utils/catalog-runtime-projection.js +7 -102
  377. package/dist/src/utils/catalog-runtime-projection.js.map +1 -1
  378. package/dist/src/utils/catalog-snapshot.d.ts +5 -3
  379. package/dist/src/utils/catalog-snapshot.js +11 -3
  380. package/dist/src/utils/catalog-snapshot.js.map +1 -1
  381. package/dist/src/utils/catalog-source-identity.d.ts +1 -0
  382. package/dist/src/utils/catalog-source-identity.js +21 -2
  383. package/dist/src/utils/catalog-source-identity.js.map +1 -1
  384. package/dist/src/utils/catalog-source-impact.d.ts +21 -0
  385. package/dist/src/utils/catalog-source-impact.js +344 -0
  386. package/dist/src/utils/catalog-source-impact.js.map +1 -0
  387. package/dist/src/utils/catalog-source-references.d.ts +3 -2
  388. package/dist/src/utils/catalog-source-references.js +195 -347
  389. package/dist/src/utils/catalog-source-references.js.map +1 -1
  390. package/dist/src/utils/catalog-sources.d.ts +15 -1
  391. package/dist/src/utils/catalog-sources.js +206 -27
  392. package/dist/src/utils/catalog-sources.js.map +1 -1
  393. package/dist/src/utils/codex-config.d.ts +2 -0
  394. package/dist/src/utils/codex-config.js +26 -5
  395. package/dist/src/utils/codex-config.js.map +1 -1
  396. package/dist/src/utils/codex-manager.d.ts +79 -0
  397. package/dist/src/utils/codex-manager.js +745 -0
  398. package/dist/src/utils/codex-manager.js.map +1 -0
  399. package/dist/src/utils/codex-marketplace-path.d.ts +5 -0
  400. package/dist/src/utils/codex-marketplace-path.js +45 -0
  401. package/dist/src/utils/codex-marketplace-path.js.map +1 -0
  402. package/dist/src/utils/codex-native-observation.d.ts +49 -0
  403. package/dist/src/utils/codex-native-observation.js +154 -0
  404. package/dist/src/utils/codex-native-observation.js.map +1 -0
  405. package/dist/src/utils/codex-native-render-receipt.d.ts +40 -0
  406. package/dist/src/utils/codex-native-render-receipt.js +205 -0
  407. package/dist/src/utils/codex-native-render-receipt.js.map +1 -0
  408. package/dist/src/utils/codex-reconciler.d.ts +126 -0
  409. package/dist/src/utils/codex-reconciler.js +298 -0
  410. package/dist/src/utils/codex-reconciler.js.map +1 -0
  411. package/dist/src/utils/codex-shared-native.d.ts +43 -0
  412. package/dist/src/utils/codex-shared-native.js +81 -0
  413. package/dist/src/utils/codex-shared-native.js.map +1 -0
  414. package/dist/src/utils/codex-skill-staging.d.ts +2 -0
  415. package/dist/src/utils/codex-skill-staging.js.map +1 -1
  416. package/dist/src/utils/codex-surface-analysis.d.ts +46 -0
  417. package/dist/src/utils/codex-surface-analysis.js +247 -0
  418. package/dist/src/utils/codex-surface-analysis.js.map +1 -0
  419. package/dist/src/utils/dynamic-skill-tree.d.ts +4 -0
  420. package/dist/src/utils/dynamic-skill-tree.js +36 -6
  421. package/dist/src/utils/dynamic-skill-tree.js.map +1 -1
  422. package/dist/src/utils/git-catalog-provider.d.ts +16 -0
  423. package/dist/src/utils/git-catalog-provider.js +169 -144
  424. package/dist/src/utils/git-catalog-provider.js.map +1 -1
  425. package/dist/src/utils/local-marketplace.d.ts +17 -1
  426. package/dist/src/utils/local-marketplace.js +301 -84
  427. package/dist/src/utils/local-marketplace.js.map +1 -1
  428. package/dist/src/utils/manifest.d.ts +1 -4
  429. package/dist/src/utils/manifest.js +1 -4
  430. package/dist/src/utils/manifest.js.map +1 -1
  431. package/dist/src/utils/multi-source-catalog.d.ts +3 -9
  432. package/dist/src/utils/multi-source-catalog.js +54 -110
  433. package/dist/src/utils/multi-source-catalog.js.map +1 -1
  434. package/dist/src/utils/native-cli.d.ts +55 -7
  435. package/dist/src/utils/native-cli.js +386 -57
  436. package/dist/src/utils/native-cli.js.map +1 -1
  437. package/dist/src/utils/orphan-marketplace-cleanup.js +0 -4
  438. package/dist/src/utils/orphan-marketplace-cleanup.js.map +1 -1
  439. package/dist/src/utils/ownership.d.ts +84 -20
  440. package/dist/src/utils/ownership.js +179 -222
  441. package/dist/src/utils/ownership.js.map +1 -1
  442. package/dist/src/utils/path-catalog-provider.d.ts +1 -1
  443. package/dist/src/utils/path-catalog-provider.js +54 -65
  444. package/dist/src/utils/path-catalog-provider.js.map +1 -1
  445. package/dist/src/utils/paths.d.ts +0 -1
  446. package/dist/src/utils/paths.js +0 -1
  447. package/dist/src/utils/paths.js.map +1 -1
  448. package/dist/src/utils/plugin-config-impact.d.ts +33 -0
  449. package/dist/src/utils/plugin-config-impact.js +298 -0
  450. package/dist/src/utils/plugin-config-impact.js.map +1 -0
  451. package/dist/src/utils/plugin-config-write.d.ts +52 -27
  452. package/dist/src/utils/plugin-config-write.js +1000 -296
  453. package/dist/src/utils/plugin-config-write.js.map +1 -1
  454. package/dist/src/utils/plugin-config.d.ts +153 -93
  455. package/dist/src/utils/plugin-config.js +1163 -1017
  456. package/dist/src/utils/plugin-config.js.map +1 -1
  457. package/dist/src/utils/plugin-intent-state.d.ts +49 -0
  458. package/dist/src/utils/plugin-intent-state.js +320 -0
  459. package/dist/src/utils/plugin-intent-state.js.map +1 -0
  460. package/dist/src/utils/plugin-scripts.d.ts +65 -125
  461. package/dist/src/utils/plugin-scripts.js +482 -524
  462. package/dist/src/utils/plugin-scripts.js.map +1 -1
  463. package/dist/src/utils/process-tree.d.ts +2 -2
  464. package/dist/src/utils/process-tree.js +1 -1
  465. package/dist/src/utils/process-tree.js.map +1 -1
  466. package/dist/src/utils/project-boundary.d.ts +11 -13
  467. package/dist/src/utils/project-boundary.js +28 -34
  468. package/dist/src/utils/project-boundary.js.map +1 -1
  469. package/dist/src/utils/runtime-config.d.ts +20 -0
  470. package/dist/src/utils/runtime-config.js +75 -0
  471. package/dist/src/utils/runtime-config.js.map +1 -0
  472. package/dist/src/utils/safe-fs.d.ts +21 -0
  473. package/dist/src/utils/safe-fs.js +111 -0
  474. package/dist/src/utils/safe-fs.js.map +1 -0
  475. package/dist/src/utils/safe-operation-diagnostic.d.ts +15 -0
  476. package/dist/src/utils/safe-operation-diagnostic.js +33 -0
  477. package/dist/src/utils/safe-operation-diagnostic.js.map +1 -0
  478. package/dist/src/utils/sensitive-content.d.ts +4 -0
  479. package/dist/src/utils/sensitive-content.js +36 -0
  480. package/dist/src/utils/sensitive-content.js.map +1 -0
  481. package/dist/src/utils/skill-validation.d.ts +1 -1
  482. package/dist/src/utils/skill-validation.js +1 -1
  483. package/dist/src/utils/skill-validation.js.map +1 -1
  484. package/dist/src/utils/state-paths.d.ts +1 -0
  485. package/dist/src/utils/state-paths.js +12 -2
  486. package/dist/src/utils/state-paths.js.map +1 -1
  487. package/dist/src/utils/target-eligibility.d.ts +8 -2
  488. package/dist/src/utils/target-eligibility.js +17 -8
  489. package/dist/src/utils/target-eligibility.js.map +1 -1
  490. package/dist/src/utils/windows-claude-shim.d.ts +9 -0
  491. package/dist/src/utils/windows-claude-shim.js +141 -0
  492. package/dist/src/utils/windows-claude-shim.js.map +1 -0
  493. package/dist/vitest.config.js +91 -10
  494. package/dist/vitest.config.js.map +1 -1
  495. package/package.json +22 -19
  496. package/dist/authoring/scripts/check-plugin-versions.mjs +0 -5
  497. package/dist/authoring/scripts/check-plugin-versions.mjs.map +0 -1
  498. package/dist/scripts/aw-skill-eval-engine.d.ts +0 -13
  499. package/dist/scripts/aw-skill-eval-engine.js +0 -31
  500. package/dist/scripts/aw-skill-eval-engine.js.map +0 -1
  501. package/dist/scripts/codex-eval-app-server.d.ts +0 -89
  502. package/dist/scripts/codex-eval-app-server.js +0 -1228
  503. package/dist/scripts/codex-eval-app-server.js.map +0 -1
  504. package/dist/scripts/codex-eval-isolation.d.ts +0 -61
  505. package/dist/scripts/codex-eval-isolation.js +0 -318
  506. package/dist/scripts/codex-eval-isolation.js.map +0 -1
  507. package/dist/scripts/codex-eval-process-management.d.ts +0 -8
  508. package/dist/scripts/codex-eval-process-management.js +0 -69
  509. package/dist/scripts/codex-eval-process-management.js.map +0 -1
  510. package/dist/scripts/codex-eval-process-tree.d.ts +0 -38
  511. package/dist/scripts/codex-eval-process-tree.js +0 -803
  512. package/dist/scripts/codex-eval-process-tree.js.map +0 -1
  513. package/dist/scripts/codex-eval-runtime-config.d.ts +0 -62
  514. package/dist/scripts/codex-eval-runtime-config.js +0 -843
  515. package/dist/scripts/codex-eval-runtime-config.js.map +0 -1
  516. package/dist/scripts/codex-trigger-eval.d.ts +0 -84
  517. package/dist/scripts/codex-trigger-eval.js +0 -968
  518. package/dist/scripts/codex-trigger-eval.js.map +0 -1
  519. package/dist/scripts/eval-plugin-skills-audited.d.ts +0 -6
  520. package/dist/scripts/eval-plugin-skills-audited.js +0 -261
  521. package/dist/scripts/eval-plugin-skills-audited.js.map +0 -1
  522. package/dist/scripts/eval-plugin-skills.d.ts +0 -45
  523. package/dist/scripts/eval-plugin-skills.js +0 -1586
  524. package/dist/scripts/eval-plugin-skills.js.map +0 -1
  525. package/dist/scripts/eval-run-layout.d.ts +0 -17
  526. package/dist/scripts/eval-run-layout.js +0 -26
  527. package/dist/scripts/eval-run-layout.js.map +0 -1
  528. package/dist/scripts/plugin-eval-contract.d.ts +0 -185
  529. package/dist/scripts/plugin-eval-contract.js +0 -695
  530. package/dist/scripts/plugin-eval-contract.js.map +0 -1
  531. package/dist/scripts/plugin-eval-materializer.d.ts +0 -13
  532. package/dist/scripts/plugin-eval-materializer.js +0 -421
  533. package/dist/scripts/plugin-eval-materializer.js.map +0 -1
  534. package/dist/scripts/skill-reporting.d.ts +0 -212
  535. package/dist/scripts/skill-reporting.js +0 -922
  536. package/dist/scripts/skill-reporting.js.map +0 -1
  537. package/dist/src/commands/status-v4.d.ts +0 -102
  538. package/dist/src/commands/status-v4.js +0 -844
  539. package/dist/src/commands/status-v4.js.map +0 -1
  540. package/dist/src/commands/status.d.ts +0 -93
  541. package/dist/src/commands/status.js +0 -442
  542. package/dist/src/commands/status.js.map +0 -1
  543. package/dist/src/utils/active-marketplace-runtime-lock.d.ts +0 -12
  544. package/dist/src/utils/active-marketplace-runtime-lock.js +0 -133
  545. package/dist/src/utils/active-marketplace-runtime-lock.js.map +0 -1
  546. package/dist/src/utils/catalog-manifest-v3.d.ts +0 -2
  547. package/dist/src/utils/catalog-manifest-v3.js +0 -3
  548. package/dist/src/utils/catalog-manifest-v3.js.map +0 -1
  549. package/dist/src/utils/catalog-manifest-v4.d.ts +0 -5
  550. package/dist/src/utils/catalog-manifest-v4.js.map +0 -1
  551. package/dist/src/utils/catalog-source-cache.d.ts +0 -61
  552. package/dist/src/utils/catalog-source-cache.js +0 -276
  553. package/dist/src/utils/catalog-source-cache.js.map +0 -1
  554. package/dist/src/utils/codex-project-surface.d.ts +0 -3
  555. package/dist/src/utils/codex-project-surface.js +0 -49
  556. package/dist/src/utils/codex-project-surface.js.map +0 -1
  557. package/dist/src/utils/lifecycle-active-store.d.ts +0 -175
  558. package/dist/src/utils/lifecycle-active-store.js +0 -1276
  559. package/dist/src/utils/lifecycle-active-store.js.map +0 -1
  560. package/dist/src/utils/plugin-authoring-capabilities.d.ts +0 -23
  561. package/dist/src/utils/plugin-authoring-capabilities.js +0 -37
  562. package/dist/src/utils/plugin-authoring-capabilities.js.map +0 -1
  563. package/dist/src/utils/plugin-authoring-capabilities.json +0 -92
  564. package/dist/src/utils/plugin-release.d.ts +0 -2
  565. package/dist/src/utils/plugin-release.js +0 -2
  566. package/dist/src/utils/plugin-release.js.map +0 -1
  567. package/dist/src/utils/skill-frontmatter-capabilities.d.ts +0 -201
  568. package/dist/src/utils/skill-frontmatter-capabilities.js +0 -5
  569. package/dist/src/utils/skill-frontmatter-capabilities.js.map +0 -1
  570. package/dist/src/utils/skill-frontmatter-capabilities.json +0 -200
  571. /package/dist/authoring/scripts/{check-plugin-versions.d.mts → remove-plugin.d.mts} +0 -0
@@ -0,0 +1,452 @@
1
+ import crypto from 'node:crypto';
2
+ import path from 'node:path';
3
+ import fs from 'fs-extra';
4
+ import { CATALOG_STORE_DIRECTORY, CATALOG_STORE_METADATA_FILE } from '../constants.js';
5
+ import { withAwHomeMutationLock } from './aw-home-mutation-lock.js';
6
+ import { CatalogGenerationError } from './catalog-generation-error.js';
7
+ import { readCatalogGenerationState } from './catalog-generation-state.js';
8
+ import { validateCatalogSnapshotTransport } from './catalog-snapshot.js';
9
+ import { normalizeAwCapabilities, parseStrictSemVer } from './manifest.js';
10
+ import { canonicalizePathThroughExistingAncestorSync, ensureRegularDirectoryPath, resolveAwHome, } from './state-paths.js';
11
+ const DIGEST_PATTERN = /^sha256:([0-9a-f]{64})$/u;
12
+ function metadataError(message, cause) {
13
+ return new CatalogGenerationError({
14
+ code: 'catalogGenerationMetadataInvalid',
15
+ message: `${message} Remove the damaged store entry and run aw catalog source sync.`,
16
+ cause,
17
+ });
18
+ }
19
+ function digestHex(value, name) {
20
+ const match = DIGEST_PATTERN.exec(value);
21
+ if (!match)
22
+ throw metadataError(`Invalid ${name}: expected a SHA-256 digest.`);
23
+ return match[1];
24
+ }
25
+ function logicalIdentitySegment(value) {
26
+ if (typeof value !== 'string' || value.trim() === '' || value !== value.trim()) {
27
+ throw metadataError('Invalid Catalog logical identity.');
28
+ }
29
+ return crypto.createHash('sha256').update(value, 'utf8').digest('hex');
30
+ }
31
+ function resolveStrictStoreDescendant(storeRootDir, ...segments) {
32
+ const candidate = path.resolve(storeRootDir, ...segments);
33
+ const relative = path.relative(storeRootDir, candidate);
34
+ if (relative === ''
35
+ || path.isAbsolute(relative)
36
+ || relative === '..'
37
+ || relative.startsWith(`..${path.sep}`))
38
+ throw metadataError('Invalid Catalog store path.');
39
+ return candidate;
40
+ }
41
+ export function createCatalogStoreKey(logicalIdentity, snapshotDigest) {
42
+ return `${logicalIdentitySegment(logicalIdentity)}/${digestHex(snapshotDigest, 'snapshot digest')}`;
43
+ }
44
+ export function resolveCatalogStoreLocation(options) {
45
+ const awHomeDir = canonicalizePathThroughExistingAncestorSync(resolveAwHome(options.env ?? process.env));
46
+ const storeRootDir = path.join(awHomeDir, CATALOG_STORE_DIRECTORY);
47
+ const logicalIdentity = logicalIdentitySegment(options.logicalIdentity);
48
+ const digest = digestHex(options.snapshotDigest, 'snapshot digest');
49
+ const storeKey = `${logicalIdentity}/${digest}`;
50
+ const logicalIdentityDirectory = resolveStrictStoreDescendant(storeRootDir, logicalIdentity);
51
+ const entryDir = resolveStrictStoreDescendant(storeRootDir, logicalIdentity, digest);
52
+ return {
53
+ awHomeDir,
54
+ storeRootDir,
55
+ logicalIdentityDirectory,
56
+ entryDir,
57
+ metadataPath: path.join(entryDir, CATALOG_STORE_METADATA_FILE),
58
+ snapshotRoot: path.join(entryDir, 'snapshot'),
59
+ storeKey,
60
+ };
61
+ }
62
+ function strictRecord(value, keys) {
63
+ if (!value || typeof value !== 'object' || Array.isArray(value))
64
+ return false;
65
+ const actual = Object.keys(value).sort();
66
+ const expected = [...keys].sort();
67
+ return actual.length === expected.length
68
+ && actual.every((key, index) => key === expected[index]);
69
+ }
70
+ function parseMetadata(value) {
71
+ if (!strictRecord(value, [
72
+ 'schemaVersion', 'logicalIdentity', 'catalogVersion', 'channel', 'manifestDigest',
73
+ 'snapshotDigest', 'requiredAwCapabilities',
74
+ ]))
75
+ throw metadataError('Invalid Catalog store metadata.');
76
+ if (value.schemaVersion !== 1
77
+ || typeof value.logicalIdentity !== 'string'
78
+ || value.logicalIdentity.trim() === ''
79
+ || value.logicalIdentity !== value.logicalIdentity.trim()
80
+ || typeof value.catalogVersion !== 'string'
81
+ || (value.channel !== 'latest' && value.channel !== 'beta')
82
+ || typeof value.manifestDigest !== 'string'
83
+ || !DIGEST_PATTERN.test(value.manifestDigest)
84
+ || typeof value.snapshotDigest !== 'string'
85
+ || !DIGEST_PATTERN.test(value.snapshotDigest)
86
+ || !Array.isArray(value.requiredAwCapabilities)
87
+ || value.requiredAwCapabilities.some((entry) => typeof entry !== 'string'))
88
+ throw metadataError('Invalid Catalog store metadata.');
89
+ try {
90
+ parseStrictSemVer(value.catalogVersion, 'Catalog store catalogVersion');
91
+ if (JSON.stringify(normalizeAwCapabilities(value.requiredAwCapabilities))
92
+ !== JSON.stringify(value.requiredAwCapabilities)) {
93
+ throw new Error('Capabilities are not normalized.');
94
+ }
95
+ }
96
+ catch (error) {
97
+ throw metadataError('Invalid Catalog store metadata.', error);
98
+ }
99
+ return value;
100
+ }
101
+ async function readMetadataAtLocation(location) {
102
+ try {
103
+ const stat = await fs.lstat(location.entryDir).catch((error) => {
104
+ if (error.code === 'ENOENT')
105
+ return null;
106
+ throw error;
107
+ });
108
+ if (!stat?.isDirectory() || stat.isSymbolicLink()) {
109
+ throw metadataError('Catalog store entry is missing or unsafe.');
110
+ }
111
+ const metadataStat = await fs.lstat(location.metadataPath).catch((error) => error.code === 'ENOENT' ? null : Promise.reject(error));
112
+ if (!metadataStat?.isFile() || metadataStat.isSymbolicLink()) {
113
+ throw metadataError('Catalog store metadata is missing or unsafe.');
114
+ }
115
+ const metadata = parseMetadata(await fs.readJson(location.metadataPath));
116
+ if (createCatalogStoreKey(metadata.logicalIdentity, metadata.snapshotDigest) !== location.storeKey) {
117
+ throw metadataError('Catalog store metadata does not match its immutable identity.');
118
+ }
119
+ return metadata;
120
+ }
121
+ catch (error) {
122
+ if (error instanceof CatalogGenerationError)
123
+ throw error;
124
+ throw metadataError('Catalog store metadata is unreadable.', error);
125
+ }
126
+ }
127
+ export async function readCatalogStoreMetadata(options) {
128
+ return readMetadataAtLocation(resolveCatalogStoreLocation(options));
129
+ }
130
+ export async function readCatalogSnapshotLogicalIdentity(snapshotRoot) {
131
+ try {
132
+ const markerPath = path.join(snapshotRoot, '.aw-generated.json');
133
+ const stat = await fs.lstat(markerPath).catch((error) => {
134
+ if (error.code === 'ENOENT')
135
+ return null;
136
+ throw error;
137
+ });
138
+ if (!stat?.isFile() || stat.isSymbolicLink())
139
+ throw metadataError('Catalog marker is missing or unsafe.');
140
+ const marker = await fs.readJson(markerPath);
141
+ if (!strictRecord(marker, ['schemaVersion', 'kind', 'workspaceIdentity', 'sourceIdentity'])
142
+ || marker.schemaVersion !== 1
143
+ || marker.kind !== 'catalog'
144
+ || typeof marker.workspaceIdentity !== 'string'
145
+ || marker.workspaceIdentity.trim() === '') {
146
+ throw metadataError('Catalog marker is invalid.');
147
+ }
148
+ return marker.workspaceIdentity;
149
+ }
150
+ catch (error) {
151
+ if (error instanceof CatalogGenerationError)
152
+ throw error;
153
+ throw metadataError('Catalog marker is unreadable.', error);
154
+ }
155
+ }
156
+ async function validateEntry(options) {
157
+ try {
158
+ const metadata = await readMetadataAtLocation(options.location);
159
+ const validation = await validateCatalogSnapshotTransport(options.location.snapshotRoot)
160
+ .catch((error) => { throw metadataError('Catalog store snapshot is damaged.', error); });
161
+ if (validation.manifestDigest !== metadata.manifestDigest
162
+ || validation.snapshotDigest !== metadata.snapshotDigest
163
+ || validation.manifest.catalogVersion !== metadata.catalogVersion
164
+ || validation.manifest.channel !== metadata.channel
165
+ || JSON.stringify(normalizeAwCapabilities(validation.manifest.requires.aw.capabilities ?? []))
166
+ !== JSON.stringify(metadata.requiredAwCapabilities)
167
+ || await readCatalogSnapshotLogicalIdentity(options.location.snapshotRoot) !== metadata.logicalIdentity)
168
+ throw metadataError('Catalog store content does not match its immutable identity.');
169
+ return {
170
+ entryDir: options.location.entryDir,
171
+ snapshotRoot: options.location.snapshotRoot,
172
+ metadata,
173
+ manifest: validation.manifest,
174
+ reused: true,
175
+ };
176
+ }
177
+ catch (error) {
178
+ if (error instanceof CatalogGenerationError)
179
+ throw error;
180
+ throw metadataError('Catalog store entry is unreadable.', error);
181
+ }
182
+ }
183
+ export async function publishCatalogStoreEntry(options) {
184
+ options.signal?.throwIfAborted();
185
+ const logicalIdentity = await readCatalogSnapshotLogicalIdentity(options.resolution.rootDir);
186
+ const location = resolveCatalogStoreLocation({
187
+ logicalIdentity,
188
+ snapshotDigest: options.resolution.snapshotDigest,
189
+ env: options.env,
190
+ });
191
+ await ensureRegularDirectoryPath(location.storeRootDir, 'Catalog store');
192
+ await ensureRegularDirectoryPath(location.logicalIdentityDirectory, 'Catalog logical identity store');
193
+ if (await fs.pathExists(location.entryDir)) {
194
+ try {
195
+ return await validateEntry({ location });
196
+ }
197
+ catch {
198
+ return publishInactiveCatalogStoreEntryReplacement({
199
+ ...options,
200
+ logicalIdentity,
201
+ location,
202
+ });
203
+ }
204
+ }
205
+ const stagingDir = resolveStrictStoreDescendant(location.storeRootDir, path.basename(location.logicalIdentityDirectory), `.staging-${crypto.randomUUID()}.tmp`);
206
+ try {
207
+ await fs.mkdir(stagingDir);
208
+ const snapshotRoot = path.join(stagingDir, 'snapshot');
209
+ await fs.copy(options.resolution.rootDir, snapshotRoot, {
210
+ dereference: false,
211
+ preserveTimestamps: true,
212
+ filter: () => {
213
+ options.signal?.throwIfAborted();
214
+ return true;
215
+ },
216
+ });
217
+ const validation = await validateCatalogSnapshotTransport(snapshotRoot);
218
+ if (validation.manifestDigest !== options.resolution.manifestDigest
219
+ || validation.snapshotDigest !== options.resolution.snapshotDigest
220
+ || await readCatalogSnapshotLogicalIdentity(snapshotRoot) !== logicalIdentity)
221
+ throw new CatalogGenerationError({
222
+ code: 'catalogGenerationPublishFailed',
223
+ sourceId: options.resolution.sourceId,
224
+ message: `Catalog source "${options.resolution.sourceId}" changed before store publication. Run source sync again.`,
225
+ });
226
+ const metadata = {
227
+ schemaVersion: 1,
228
+ logicalIdentity,
229
+ catalogVersion: validation.manifest.catalogVersion,
230
+ channel: validation.manifest.channel,
231
+ manifestDigest: validation.manifestDigest,
232
+ snapshotDigest: validation.snapshotDigest,
233
+ requiredAwCapabilities: normalizeAwCapabilities(validation.manifest.requires.aw.capabilities ?? []),
234
+ };
235
+ await fs.writeFile(path.join(stagingDir, CATALOG_STORE_METADATA_FILE), `${JSON.stringify(metadata, null, 2)}\n`, { flag: 'wx', mode: 0o600 });
236
+ options.signal?.throwIfAborted();
237
+ try {
238
+ await fs.rename(stagingDir, location.entryDir);
239
+ }
240
+ catch (error) {
241
+ const code = error.code;
242
+ if (code !== 'EEXIST' && code !== 'ENOTEMPTY')
243
+ throw error;
244
+ try {
245
+ return await validateEntry({ location });
246
+ }
247
+ catch {
248
+ return publishInactiveCatalogStoreEntryReplacement({
249
+ ...options,
250
+ logicalIdentity,
251
+ location,
252
+ });
253
+ }
254
+ }
255
+ return { entryDir: location.entryDir, snapshotRoot: location.snapshotRoot, metadata, manifest: validation.manifest, reused: false };
256
+ }
257
+ catch (error) {
258
+ if (error instanceof CatalogGenerationError)
259
+ throw error;
260
+ throw new CatalogGenerationError({
261
+ code: 'catalogGenerationPublishFailed',
262
+ sourceId: options.resolution.sourceId,
263
+ message: `Cannot publish Catalog store entry for source "${options.resolution.sourceId}". The previous Active entry is unchanged.`,
264
+ cause: error,
265
+ });
266
+ }
267
+ finally {
268
+ await fs.remove(stagingDir).catch(() => undefined);
269
+ }
270
+ }
271
+ async function publishInactiveCatalogStoreEntryReplacement(options) {
272
+ const prepared = await prepareCatalogStoreEntryRepair({
273
+ resolution: options.resolution,
274
+ logicalIdentity: options.logicalIdentity,
275
+ snapshotDigest: options.resolution.snapshotDigest,
276
+ env: options.env,
277
+ signal: options.signal,
278
+ });
279
+ try {
280
+ await options.afterInactiveRepairPrepared?.();
281
+ return await withAwHomeMutationLock({
282
+ env: options.env,
283
+ signal: options.signal,
284
+ action: async () => {
285
+ let damagedEntryError;
286
+ try {
287
+ return await validateEntry({ location: options.location });
288
+ }
289
+ catch (error) {
290
+ damagedEntryError = error;
291
+ }
292
+ const state = await readCatalogGenerationState(options.env);
293
+ const activeReferencesTarget = Object.values(state.sources).some((source) => source.active !== undefined
294
+ && createCatalogStoreKey(source.active.logicalIdentity, source.active.snapshotDigest) === options.location.storeKey);
295
+ if (activeReferencesTarget)
296
+ throw damagedEntryError;
297
+ return prepared.commit();
298
+ },
299
+ });
300
+ }
301
+ finally {
302
+ await prepared.cleanup();
303
+ }
304
+ }
305
+ export async function readCatalogStoreEntry(options) {
306
+ return validateEntry({ location: resolveCatalogStoreLocation(options) });
307
+ }
308
+ export async function prepareCatalogStoreEntryRepair(options) {
309
+ const location = resolveCatalogStoreLocation(options);
310
+ const stagingDir = resolveStrictStoreDescendant(location.logicalIdentityDirectory, `.replacement-${crypto.randomUUID()}.tmp`);
311
+ const quarantineDir = resolveStrictStoreDescendant(location.logicalIdentityDirectory, `.quarantine-${crypto.randomUUID()}.tmp`);
312
+ let quarantined = false;
313
+ let committed = false;
314
+ try {
315
+ await ensureRegularDirectoryPath(location.storeRootDir, 'Catalog store');
316
+ await ensureRegularDirectoryPath(location.logicalIdentityDirectory, 'Catalog logical identity store');
317
+ await fs.mkdir(stagingDir);
318
+ const snapshotRoot = path.join(stagingDir, 'snapshot');
319
+ await fs.copy(options.resolution.rootDir, snapshotRoot, {
320
+ dereference: false,
321
+ preserveTimestamps: true,
322
+ filter: () => {
323
+ options.signal?.throwIfAborted();
324
+ return true;
325
+ },
326
+ });
327
+ const validation = await validateCatalogSnapshotTransport(snapshotRoot);
328
+ if (validation.manifestDigest !== options.resolution.manifestDigest
329
+ || validation.snapshotDigest !== options.snapshotDigest
330
+ || await readCatalogSnapshotLogicalIdentity(snapshotRoot) !== options.logicalIdentity)
331
+ throw new CatalogGenerationError({
332
+ code: 'catalogGenerationPublishFailed',
333
+ sourceId: options.resolution.sourceId,
334
+ message: `Catalog source "${options.resolution.sourceId}" changed before store repair. Run source sync again.`,
335
+ });
336
+ const metadata = {
337
+ schemaVersion: 1,
338
+ logicalIdentity: options.logicalIdentity,
339
+ catalogVersion: validation.manifest.catalogVersion,
340
+ channel: validation.manifest.channel,
341
+ manifestDigest: validation.manifestDigest,
342
+ snapshotDigest: validation.snapshotDigest,
343
+ requiredAwCapabilities: normalizeAwCapabilities(validation.manifest.requires.aw.capabilities ?? []),
344
+ };
345
+ await fs.writeFile(path.join(stagingDir, CATALOG_STORE_METADATA_FILE), `${JSON.stringify(metadata, null, 2)}\n`, { flag: 'wx', mode: 0o600 });
346
+ await validateEntry({ location: {
347
+ ...location,
348
+ entryDir: stagingDir,
349
+ metadataPath: path.join(stagingDir, CATALOG_STORE_METADATA_FILE),
350
+ snapshotRoot,
351
+ } });
352
+ options.signal?.throwIfAborted();
353
+ const cleanup = async () => {
354
+ await fs.remove(stagingDir).catch(() => undefined);
355
+ if (quarantined && !await fs.pathExists(location.entryDir)) {
356
+ await fs.rename(quarantineDir, location.entryDir).catch(() => undefined);
357
+ }
358
+ };
359
+ return {
360
+ async commit() {
361
+ if (committed)
362
+ throw new CatalogGenerationError({
363
+ code: 'catalogGenerationPublishFailed',
364
+ sourceId: options.resolution.sourceId,
365
+ message: `Catalog store repair for source "${options.resolution.sourceId}" was already committed.`,
366
+ });
367
+ let installedReplacement = false;
368
+ try {
369
+ const targetExists = await fs.lstat(location.entryDir)
370
+ .then(() => true)
371
+ .catch((error) => {
372
+ if (error.code === 'ENOENT')
373
+ return false;
374
+ throw error;
375
+ });
376
+ if (targetExists) {
377
+ await fs.rename(location.entryDir, quarantineDir);
378
+ quarantined = true;
379
+ }
380
+ try {
381
+ await fs.rename(stagingDir, location.entryDir);
382
+ installedReplacement = true;
383
+ }
384
+ catch (error) {
385
+ if (quarantined && !await fs.pathExists(location.entryDir)) {
386
+ await fs.rename(quarantineDir, location.entryDir);
387
+ quarantined = false;
388
+ }
389
+ throw error;
390
+ }
391
+ const entry = await validateEntry({ location });
392
+ committed = true;
393
+ if (quarantined)
394
+ await fs.remove(quarantineDir).catch(() => {
395
+ try {
396
+ process.emitWarning('Catalog store repair succeeded, but quarantine cleanup failed.', {
397
+ code: 'AW_CATALOG_STORE_QUARANTINE_CLEANUP_FAILED',
398
+ });
399
+ }
400
+ catch {
401
+ // Cleanup diagnostics cannot replace the repair result.
402
+ }
403
+ });
404
+ quarantined = false;
405
+ return { ...entry, reused: false };
406
+ }
407
+ catch (error) {
408
+ if (quarantined) {
409
+ if (installedReplacement) {
410
+ await fs.remove(location.entryDir).catch(() => undefined);
411
+ }
412
+ if (!await fs.pathExists(location.entryDir)) {
413
+ await fs.rename(quarantineDir, location.entryDir).then(() => {
414
+ quarantined = false;
415
+ }).catch(() => undefined);
416
+ }
417
+ }
418
+ if (error instanceof CatalogGenerationError)
419
+ throw error;
420
+ throw new CatalogGenerationError({
421
+ code: 'catalogGenerationPublishFailed',
422
+ sourceId: options.resolution.sourceId,
423
+ message: `Cannot repair the Catalog store entry for source "${options.resolution.sourceId}".`,
424
+ cause: error,
425
+ });
426
+ }
427
+ },
428
+ cleanup,
429
+ };
430
+ }
431
+ catch (error) {
432
+ await fs.remove(stagingDir).catch(() => undefined);
433
+ if (error instanceof CatalogGenerationError)
434
+ throw error;
435
+ throw new CatalogGenerationError({
436
+ code: 'catalogGenerationPublishFailed',
437
+ sourceId: options.resolution.sourceId,
438
+ message: `Cannot prepare the Catalog store repair for source "${options.resolution.sourceId}".`,
439
+ cause: error,
440
+ });
441
+ }
442
+ }
443
+ export async function replaceDamagedCatalogStoreEntry(options) {
444
+ const prepared = await prepareCatalogStoreEntryRepair(options);
445
+ try {
446
+ return await prepared.commit();
447
+ }
448
+ finally {
449
+ await prepared.cleanup();
450
+ }
451
+ }
452
+ //# sourceMappingURL=catalog-generation-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-generation-store.js","sourceRoot":"","sources":["../../../src/utils/catalog-generation-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { CatalogManifestV7, CatalogManifestV7Entry, PluginMeta } from '../types.js';
2
+ export declare const CATALOG_SCHEMA_7_CAPABILITY = "aw.catalog-snapshot.v7";
3
+ export declare function validateCatalogManifestV7(rawManifest: unknown): CatalogManifestV7;
4
+ export declare function createCatalogManifestV7(manifest: Omit<CatalogManifestV7, 'schemaVersion'>): CatalogManifestV7;
5
+ export declare function createCatalogManifestV7Entry(plugin: PluginMeta, pluginRoot: string): Promise<CatalogManifestV7Entry>;
@@ -1,8 +1,10 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'node:path';
1
3
  import { calculateCatalogEntryArtifactDigest, calculateCatalogEntryContentDigest, calculateCatalogEntryManifestDigest, } from './catalog-digests.js';
2
- import { createMarketplaceManifestEntry, normalizeCatalogManifestBase, normalizeCatalogManifestEntries, normalizeCatalogMarketplaceIdentity, compareStrictSemVer, } from './manifest.js';
4
+ import { createMarketplaceManifestEntry, normalizeCatalogManifestBase, normalizeCatalogManifestEntries, normalizeCatalogMarketplaceIdentity, normalizeAwCapabilities, } from './manifest.js';
3
5
  const DIGEST_PATTERN = /^sha256:[0-9a-f]{64}$/;
4
6
  const SOURCE_HEAD_PATTERN = /^(?:[0-9a-f]{40}|[0-9a-f]{64})$/;
5
- export const CATALOG_SCHEMA_4_CLI_FLOOR = '0.0.0';
7
+ export const CATALOG_SCHEMA_7_CAPABILITY = 'aw.catalog-snapshot.v7';
6
8
  function assertObject(value, fieldName) {
7
9
  if (typeof value !== 'object' || value === null || Array.isArray(value)) {
8
10
  throw new Error(`Invalid ${fieldName}: expected an object.`);
@@ -22,85 +24,75 @@ function digest(value, fieldName) {
22
24
  return value;
23
25
  }
24
26
  function normalizeRelease(raw) {
25
- const release = assertObject(raw, 'catalog manifest v4.release');
27
+ const release = assertObject(raw, 'catalog manifest v7.release');
26
28
  if (release.state === 'development') {
27
- assertAllowedKeys(release, 'catalog manifest v4.release', ['state']);
29
+ assertAllowedKeys(release, 'catalog manifest v7.release', ['state']);
28
30
  return { state: 'development' };
29
31
  }
30
32
  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.');
33
+ throw new Error('Invalid catalog manifest v7.release.state.');
38
34
  }
35
+ assertAllowedKeys(release, 'catalog manifest v7.release', ['state', 'sourceHead']);
39
36
  if (typeof release.sourceHead !== 'string' || !SOURCE_HEAD_PATTERN.test(release.sourceHead)) {
40
- throw new Error('Invalid catalog manifest v4.release.sourceHead.');
37
+ throw new Error('Invalid catalog manifest v7.release.sourceHead.');
41
38
  }
42
39
  return {
43
40
  state: 'published',
44
- targetVersion: release.targetVersion,
45
- planId: digest(release.planId, 'catalog manifest v4.release.planId'),
46
41
  sourceHead: release.sourceHead,
47
- contentDigest: digest(release.contentDigest, 'catalog manifest v4.release.contentDigest'),
48
42
  };
49
43
  }
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',
44
+ export function validateCatalogManifestV7(rawManifest) {
45
+ const input = assertObject(rawManifest, 'catalog manifest v7');
46
+ assertAllowedKeys(input, 'catalog manifest v7', [
47
+ 'schemaVersion', 'catalogVersion', 'channel', 'requires', 'marketplace', 'release', 'entries',
54
48
  ]);
55
- if (input.schemaVersion !== 4) {
56
- throw new Error('Invalid catalog manifest v4.schemaVersion: expected 4.');
49
+ if (input.schemaVersion !== 7) {
50
+ throw new Error('Invalid catalog manifest v7.schemaVersion: expected 7.');
57
51
  }
58
52
  if (!Array.isArray(input.entries)) {
59
- throw new Error('Invalid catalog manifest v4.entries: expected an array.');
53
+ throw new Error('Invalid catalog manifest v7.entries: expected an array.');
60
54
  }
61
55
  const contentDigests = [];
62
56
  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`));
57
+ const entry = assertObject(rawEntry, `catalog manifest v7.entries[${index}]`);
58
+ contentDigests.push(digest(entry.contentDigest, `catalog manifest v7.entries[${index}].contentDigest`));
65
59
  const entryInput = { ...entry };
66
60
  delete entryInput.contentDigest;
67
61
  return entryInput;
68
62
  });
69
- const base = normalizeCatalogManifestBase(input, 'catalog manifest v4');
63
+ const base = normalizeCatalogManifestBase(input, 'catalog manifest v7');
70
64
  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.`);
65
+ if (!(base.requires.aw.capabilities ?? []).includes(CATALOG_SCHEMA_7_CAPABILITY)) {
66
+ throw new Error(`Invalid catalog manifest v7.requires.aw.capabilities: expected ${CATALOG_SCHEMA_7_CAPABILITY}.`);
73
67
  }
74
- const entries = normalizeCatalogManifestEntries(entryInputs, base, 'catalog manifest v4');
68
+ const entries = normalizeCatalogManifestEntries(entryInputs, base, 'catalog manifest v7');
75
69
  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
70
  return {
81
- schemaVersion: 4,
71
+ schemaVersion: 7,
82
72
  catalogVersion: base.catalogVersion,
83
73
  channel: base.channel,
84
- compatibility: base.compatibility,
74
+ requires: base.requires,
85
75
  marketplace,
86
76
  release,
87
77
  entries: entries.map((entry, index) => ({ ...entry, contentDigest: contentDigests[index] })),
88
78
  };
89
79
  }
90
- export function createCatalogManifestV4(manifest) {
91
- return validateCatalogManifestV4({ schemaVersion: 4, ...manifest });
80
+ export function createCatalogManifestV7(manifest) {
81
+ return validateCatalogManifestV7({ schemaVersion: 7, ...manifest });
92
82
  }
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
- }
83
+ export async function createCatalogManifestV7Entry(plugin, pluginRoot) {
97
84
  return {
98
85
  ...createMarketplaceManifestEntry(plugin),
99
86
  version: plugin.manifest.version,
100
- compatibility: plugin.manifest.compatibility,
87
+ dependencies: [...(plugin.manifest.dependencies ?? [])].sort(),
88
+ requires: {
89
+ aw: {
90
+ capabilities: normalizeAwCapabilities(plugin.manifest.requires?.aw.capabilities ?? []),
91
+ },
92
+ },
101
93
  artifactDigest: await calculateCatalogEntryArtifactDigest(pluginRoot),
102
- manifestDigest: calculateCatalogEntryManifestDigest(plugin.manifest),
94
+ manifestDigest: calculateCatalogEntryManifestDigest(await fs.readJson(path.join(pluginRoot, '.agents-plugin', 'plugin.json'))),
103
95
  contentDigest: await calculateCatalogEntryContentDigest(pluginRoot),
104
96
  };
105
97
  }
106
- //# sourceMappingURL=catalog-manifest-v4.js.map
98
+ //# sourceMappingURL=catalog-manifest-v7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-manifest-v7.js","sourceRoot":"","sources":["../../../src/utils/catalog-manifest-v7.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { CatalogGenerationSet, CatalogSourceId } from '../types.js';
2
+ import type { CatalogStoreEntry } from './catalog-generation-store.js';
3
+ import type { CatalogSourcesConfigSnapshot } from './catalog-sources.js';
4
+ import type { MultiSourceCatalogResolution } from './multi-source-catalog.js';
5
+ export interface CatalogOperationContext {
6
+ generationSet: CatalogGenerationSet;
7
+ generationSetDigest: string;
8
+ catalog: MultiSourceCatalogResolution;
9
+ }
10
+ export interface ResolveCatalogOperationContextOptions {
11
+ sourceIds?: CatalogSourceId[];
12
+ configSnapshot?: CatalogSourcesConfigSnapshot;
13
+ env?: NodeJS.ProcessEnv;
14
+ signal?: AbortSignal;
15
+ validatedStoreEntries?: Map<string, CatalogStoreEntry>;
16
+ validatingStoreEntries?: Map<string, Promise<CatalogStoreEntry>>;
17
+ }
18
+ export declare function selectCatalogOperationContext(context: CatalogOperationContext, sourceIds: CatalogSourceId[]): CatalogOperationContext;
19
+ export declare function resolveCatalogOperationContext(options?: ResolveCatalogOperationContextOptions): Promise<CatalogOperationContext>;
20
+ export declare function resolvePartialCatalogOperationContext(options?: ResolveCatalogOperationContextOptions): Promise<CatalogOperationContext>;