@lesliechan721/aw 0.1.0-beta.6 → 0.1.0-beta.60

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 (621) 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-root.mjs +4 -4
  11. package/dist/authoring/scripts/lib/plugin-root.mjs.map +1 -1
  12. package/dist/authoring/scripts/lib/plugin-version-check.d.mts +1 -0
  13. package/dist/authoring/scripts/lib/plugin-version-check.mjs +229 -8
  14. package/dist/authoring/scripts/lib/plugin-version-check.mjs.map +1 -1
  15. package/dist/authoring/scripts/lib/skill-scaffold.d.mts +77 -92
  16. package/dist/authoring/scripts/lib/skill-scaffold.mjs +99 -124
  17. package/dist/authoring/scripts/lib/skill-scaffold.mjs.map +1 -1
  18. package/dist/authoring/scripts/plugin-status.mjs +8 -11
  19. package/dist/authoring/scripts/plugin-status.mjs.map +1 -1
  20. package/dist/authoring/scripts/remove-plugin.mjs +3 -2
  21. package/dist/authoring/scripts/remove-plugin.mjs.map +1 -1
  22. package/dist/authoring/scripts/validate-plugin.mjs +552 -1142
  23. package/dist/authoring/scripts/validate-plugin.mjs.map +1 -1
  24. package/dist/native-runtime/reader-runtime.mjs +34 -0
  25. package/dist/native-runtime/reader.d.mts +6 -0
  26. package/dist/native-runtime/reader.mjs +11 -0
  27. package/dist/scripts/aw-skill-eval-materializer.d.ts +26 -0
  28. package/dist/scripts/aw-skill-eval-materializer.js +306 -0
  29. package/dist/scripts/aw-skill-eval-materializer.js.map +1 -0
  30. package/dist/scripts/bundle-plugins.d.ts +1 -0
  31. package/dist/scripts/bundle-plugins.js +19 -8
  32. package/dist/scripts/bundle-plugins.js.map +1 -1
  33. package/dist/scripts/plugin-staging.d.ts +7 -9
  34. package/dist/scripts/plugin-staging.js +18 -29
  35. package/dist/scripts/plugin-staging.js.map +1 -1
  36. package/dist/scripts/plugin-test-reporter.d.mts +2 -0
  37. package/dist/scripts/plugin-test-reporter.mjs +21 -0
  38. package/dist/scripts/plugin-test-reporter.mjs.map +1 -0
  39. package/dist/scripts/test-plugin-scripts.d.ts +5 -0
  40. package/dist/scripts/test-plugin-scripts.js +208 -89
  41. package/dist/scripts/test-plugin-scripts.js.map +1 -1
  42. package/dist/scripts/test-workers.d.mts +24 -0
  43. package/dist/scripts/test-workers.mjs +59 -0
  44. package/dist/scripts/test-workers.mjs.map +1 -0
  45. package/dist/src/adapters/helpers.d.ts +7 -0
  46. package/dist/src/adapters/helpers.js +2 -2
  47. package/dist/src/adapters/helpers.js.map +1 -1
  48. package/dist/src/authoring/workspace-commands.d.ts +19 -1
  49. package/dist/src/authoring/workspace-commands.js +24 -5
  50. package/dist/src/authoring/workspace-commands.js.map +1 -1
  51. package/dist/src/commands/aw-capabilities.d.ts +78 -0
  52. package/dist/src/commands/aw-capabilities.js +266 -0
  53. package/dist/src/commands/aw-capabilities.js.map +1 -0
  54. package/dist/src/commands/catalog-dev-source.d.ts +154 -0
  55. package/dist/src/commands/catalog-dev-source.js +655 -0
  56. package/dist/src/commands/catalog-dev-source.js.map +1 -0
  57. package/dist/src/commands/catalog-generation.d.ts +21 -0
  58. package/dist/src/commands/catalog-generation.js +9 -0
  59. package/dist/src/commands/catalog-generation.js.map +1 -0
  60. package/dist/src/commands/catalog-publication-inspection.d.ts +71 -30
  61. package/dist/src/commands/catalog-publication-inspection.js +475 -63
  62. package/dist/src/commands/catalog-publication-inspection.js.map +1 -1
  63. package/dist/src/commands/catalog-publication-journal.d.ts +68 -0
  64. package/dist/src/commands/catalog-publication-journal.js +292 -0
  65. package/dist/src/commands/catalog-publication-journal.js.map +1 -0
  66. package/dist/src/commands/catalog-publication-target.d.ts +18 -0
  67. package/dist/src/commands/catalog-publication-target.js +95 -0
  68. package/dist/src/commands/catalog-publication-target.js.map +1 -0
  69. package/dist/src/commands/catalog-publish.d.ts +73 -15
  70. package/dist/src/commands/catalog-publish.js +701 -212
  71. package/dist/src/commands/catalog-publish.js.map +1 -1
  72. package/dist/src/commands/catalog-source.d.ts +60 -22
  73. package/dist/src/commands/catalog-source.js +311 -91
  74. package/dist/src/commands/catalog-source.js.map +1 -1
  75. package/dist/src/commands/catalog-status.d.ts +18 -22
  76. package/dist/src/commands/catalog-status.js +81 -115
  77. package/dist/src/commands/catalog-status.js.map +1 -1
  78. package/dist/src/commands/catalog-store.d.ts +104 -0
  79. package/dist/src/commands/catalog-store.js +685 -0
  80. package/dist/src/commands/catalog-store.js.map +1 -0
  81. package/dist/src/commands/catalog-workspace-resolution.d.ts +13 -0
  82. package/dist/src/commands/catalog-workspace-resolution.js +42 -0
  83. package/dist/src/commands/catalog-workspace-resolution.js.map +1 -0
  84. package/dist/src/commands/console.js +28 -17
  85. package/dist/src/commands/console.js.map +1 -1
  86. package/dist/src/commands/dependency-operation-plan.d.ts +52 -15
  87. package/dist/src/commands/dependency-operation-plan.js +289 -7
  88. package/dist/src/commands/dependency-operation-plan.js.map +1 -1
  89. package/dist/src/commands/init.d.ts +5 -11
  90. package/dist/src/commands/init.js +30 -51
  91. package/dist/src/commands/init.js.map +1 -1
  92. package/dist/src/commands/managed-commands.d.ts +28 -0
  93. package/dist/src/commands/managed-commands.js +315 -0
  94. package/dist/src/commands/managed-commands.js.map +1 -0
  95. package/dist/src/commands/offline-cleanup-evidence.d.ts +67 -0
  96. package/dist/src/commands/offline-cleanup-evidence.js +181 -0
  97. package/dist/src/commands/offline-cleanup-evidence.js.map +1 -0
  98. package/dist/src/commands/operation-plan.d.ts +182 -0
  99. package/dist/src/commands/operation-plan.js +71 -0
  100. package/dist/src/commands/operation-plan.js.map +1 -0
  101. package/dist/src/commands/operation-planner.d.ts +47 -0
  102. package/dist/src/commands/operation-planner.js +142 -0
  103. package/dist/src/commands/operation-planner.js.map +1 -0
  104. package/dist/src/commands/options.d.ts +9 -7
  105. package/dist/src/commands/options.js +83 -21
  106. package/dist/src/commands/options.js.map +1 -1
  107. package/dist/src/commands/plugin-capabilities.js +65 -4
  108. package/dist/src/commands/plugin-capabilities.js.map +1 -1
  109. package/dist/src/commands/rebuild-command.d.ts +78 -31
  110. package/dist/src/commands/rebuild-command.js +5229 -942
  111. package/dist/src/commands/rebuild-command.js.map +1 -1
  112. package/dist/src/commands/rebuild-integration.d.ts +143 -21
  113. package/dist/src/commands/rebuild-integration.js +3384 -1342
  114. package/dist/src/commands/rebuild-integration.js.map +1 -1
  115. package/dist/src/commands/rebuild-operations.d.ts +60 -30
  116. package/dist/src/commands/rebuild-operations.js +267 -320
  117. package/dist/src/commands/rebuild-operations.js.map +1 -1
  118. package/dist/src/commands/reconcile-operation-plan.d.ts +28 -0
  119. package/dist/src/commands/reconcile-operation-plan.js +47 -0
  120. package/dist/src/commands/reconcile-operation-plan.js.map +1 -0
  121. package/dist/src/commands/review-inspection.d.ts +60 -0
  122. package/dist/src/commands/review-inspection.js +422 -0
  123. package/dist/src/commands/review-inspection.js.map +1 -0
  124. package/dist/src/commands/review-preparation.d.ts +49 -0
  125. package/dist/src/commands/review-preparation.js +427 -0
  126. package/dist/src/commands/review-preparation.js.map +1 -0
  127. package/dist/src/commands/runtime.d.ts +1 -5
  128. package/dist/src/commands/runtime.js +27 -53
  129. package/dist/src/commands/runtime.js.map +1 -1
  130. package/dist/src/commands/skill-eval.d.ts +39 -0
  131. package/dist/src/commands/skill-eval.js +400 -0
  132. package/dist/src/commands/skill-eval.js.map +1 -0
  133. package/dist/src/commands/status-v6.d.ts +279 -0
  134. package/dist/src/commands/status-v6.js +2785 -0
  135. package/dist/src/commands/status-v6.js.map +1 -0
  136. package/dist/src/commands/sync-command.d.ts +40 -0
  137. package/dist/src/commands/sync-command.js +254 -0
  138. package/dist/src/commands/sync-command.js.map +1 -0
  139. package/dist/src/commands/wizard.d.ts +8 -5
  140. package/dist/src/commands/wizard.js +6 -4
  141. package/dist/src/commands/wizard.js.map +1 -1
  142. package/dist/src/commands/write-commands.d.ts +9 -3
  143. package/dist/src/commands/write-commands.js +136 -31
  144. package/dist/src/commands/write-commands.js.map +1 -1
  145. package/dist/src/constants.d.ts +7 -2
  146. package/dist/src/constants.js +7 -2
  147. package/dist/src/constants.js.map +1 -1
  148. package/dist/src/eval/manifest-v1.d.ts +68 -0
  149. package/dist/src/eval/manifest-v1.js +353 -0
  150. package/dist/src/eval/manifest-v1.js.map +1 -0
  151. package/dist/src/generators/local-plugin.d.ts +5 -1
  152. package/dist/src/generators/local-plugin.js +261 -109
  153. package/dist/src/generators/local-plugin.js.map +1 -1
  154. package/dist/src/generators/permissions.d.ts +5 -2
  155. package/dist/src/generators/permissions.js +28 -15
  156. package/dist/src/generators/permissions.js.map +1 -1
  157. package/dist/src/index.d.ts +10 -4
  158. package/dist/src/index.js +1774 -609
  159. package/dist/src/index.js.map +1 -1
  160. package/dist/src/output/command-receipt.d.ts +47 -46
  161. package/dist/src/output/command-receipt.js +277 -79
  162. package/dist/src/output/command-receipt.js.map +1 -1
  163. package/dist/src/output/model.d.ts +3 -44
  164. package/dist/src/output/model.js +1 -144
  165. package/dist/src/output/model.js.map +1 -1
  166. package/dist/src/output/rebuild-progress.js +15 -13
  167. package/dist/src/output/rebuild-progress.js.map +1 -1
  168. package/dist/src/portable/commands.d.ts +46 -7
  169. package/dist/src/portable/commands.js +349 -37
  170. package/dist/src/portable/commands.js.map +1 -1
  171. package/dist/src/portable/materializer.d.ts +17 -4
  172. package/dist/src/portable/materializer.js +186 -41
  173. package/dist/src/portable/materializer.js.map +1 -1
  174. package/dist/src/portable/skills-cli.d.ts +15 -7
  175. package/dist/src/portable/skills-cli.js +74 -20
  176. package/dist/src/portable/skills-cli.js.map +1 -1
  177. package/dist/src/review/eval-source-input.d.ts +43 -0
  178. package/dist/src/review/eval-source-input.js +207 -0
  179. package/dist/src/review/eval-source-input.js.map +1 -0
  180. package/dist/src/review/review-profile.d.ts +17 -0
  181. package/dist/src/review/review-profile.js +234 -0
  182. package/dist/src/review/review-profile.js.map +1 -0
  183. package/dist/src/review/review-selection.d.ts +30 -0
  184. package/dist/src/review/review-selection.js +527 -0
  185. package/dist/src/review/review-selection.js.map +1 -0
  186. package/dist/src/review/review-types.d.ts +68 -0
  187. package/dist/src/review/review-types.js +16 -0
  188. package/dist/src/review/review-types.js.map +1 -0
  189. package/dist/src/review/skill-materialization.d.ts +26 -0
  190. package/dist/src/review/skill-materialization.js +217 -0
  191. package/dist/src/review/skill-materialization.js.map +1 -0
  192. package/dist/src/review/source-binding.d.ts +183 -0
  193. package/dist/src/review/source-binding.js +708 -0
  194. package/dist/src/review/source-binding.js.map +1 -0
  195. package/dist/src/tui/catalog-freshness.d.ts +1 -0
  196. package/dist/src/tui/catalog-freshness.js +2 -0
  197. package/dist/src/tui/catalog-freshness.js.map +1 -0
  198. package/dist/src/tui/catalog-generation.d.ts +21 -0
  199. package/dist/src/tui/catalog-generation.js +156 -0
  200. package/dist/src/tui/catalog-generation.js.map +1 -0
  201. package/dist/src/tui/catalog-sources/projection.d.ts +4 -0
  202. package/dist/src/tui/catalog-sources/projection.js +17 -0
  203. package/dist/src/tui/catalog-sources/projection.js.map +1 -0
  204. package/dist/src/tui/catalog-sources/review.d.ts +3 -0
  205. package/dist/src/tui/catalog-sources/review.js +13 -0
  206. package/dist/src/tui/catalog-sources/review.js.map +1 -0
  207. package/dist/src/tui/catalog-sources/screens.d.ts +12 -0
  208. package/dist/src/tui/catalog-sources/screens.js +40 -0
  209. package/dist/src/tui/catalog-sources/screens.js.map +1 -0
  210. package/dist/src/tui/catalog-sources/session.d.ts +32 -0
  211. package/dist/src/tui/catalog-sources/session.js +300 -0
  212. package/dist/src/tui/catalog-sources/session.js.map +1 -0
  213. package/dist/src/tui/catalog-sources/types.d.ts +54 -0
  214. package/dist/src/tui/catalog-sources/types.js +2 -0
  215. package/dist/src/tui/catalog-sources/types.js.map +1 -0
  216. package/dist/src/tui/catalog-store-task.d.ts +16 -0
  217. package/dist/src/tui/catalog-store-task.js +19 -0
  218. package/dist/src/tui/catalog-store-task.js.map +1 -0
  219. package/dist/src/tui/clipboard.d.ts +13 -0
  220. package/dist/src/tui/clipboard.js +95 -0
  221. package/dist/src/tui/clipboard.js.map +1 -0
  222. package/dist/src/tui/components.d.ts +110 -3
  223. package/dist/src/tui/components.js +183 -36
  224. package/dist/src/tui/components.js.map +1 -1
  225. package/dist/src/tui/config-array-draft.d.ts +29 -0
  226. package/dist/src/tui/config-array-draft.js +48 -0
  227. package/dist/src/tui/config-array-draft.js.map +1 -0
  228. package/dist/src/tui/config-leaf-editor.d.ts +19 -0
  229. package/dist/src/tui/config-leaf-editor.js +212 -0
  230. package/dist/src/tui/config-leaf-editor.js.map +1 -0
  231. package/dist/src/tui/config-references.d.ts +34 -0
  232. package/dist/src/tui/config-references.js +70 -0
  233. package/dist/src/tui/config-references.js.map +1 -0
  234. package/dist/src/tui/config-value-presentation.d.ts +20 -0
  235. package/dist/src/tui/config-value-presentation.js +104 -0
  236. package/dist/src/tui/config-value-presentation.js.map +1 -0
  237. package/dist/src/tui/console-app-v4.d.ts +14 -4
  238. package/dist/src/tui/console-app-v4.js +9205 -1951
  239. package/dist/src/tui/console-app-v4.js.map +1 -1
  240. package/dist/src/tui/content-item-card.d.ts +13 -0
  241. package/dist/src/tui/content-item-card.js +51 -0
  242. package/dist/src/tui/content-item-card.js.map +1 -0
  243. package/dist/src/tui/controller-runtime.d.ts +10 -2
  244. package/dist/src/tui/controller-runtime.js +3289 -388
  245. package/dist/src/tui/controller-runtime.js.map +1 -1
  246. package/dist/src/tui/controller.d.ts +622 -45
  247. package/dist/src/tui/controller.js +3589 -768
  248. package/dist/src/tui/controller.js.map +1 -1
  249. package/dist/src/tui/dependency-graph-view.d.ts +39 -0
  250. package/dist/src/tui/dependency-graph-view.js +121 -0
  251. package/dist/src/tui/dependency-graph-view.js.map +1 -0
  252. package/dist/src/tui/dependency-graph.d.ts +81 -0
  253. package/dist/src/tui/dependency-graph.js +452 -0
  254. package/dist/src/tui/dependency-graph.js.map +1 -0
  255. package/dist/src/tui/diagnostic-projection.d.ts +23 -0
  256. package/dist/src/tui/diagnostic-projection.js +595 -0
  257. package/dist/src/tui/diagnostic-projection.js.map +1 -0
  258. package/dist/src/tui/diagnostics.d.ts +3 -3
  259. package/dist/src/tui/diagnostics.js +14 -2
  260. package/dist/src/tui/diagnostics.js.map +1 -1
  261. package/dist/src/tui/entity-cards.d.ts +55 -0
  262. package/dist/src/tui/entity-cards.js +220 -0
  263. package/dist/src/tui/entity-cards.js.map +1 -0
  264. package/dist/src/tui/glossary.d.ts +23 -0
  265. package/dist/src/tui/glossary.js +42 -0
  266. package/dist/src/tui/glossary.js.map +1 -0
  267. package/dist/src/tui/index.d.ts +6 -1
  268. package/dist/src/tui/index.js +5 -1
  269. package/dist/src/tui/index.js.map +1 -1
  270. package/dist/src/tui/input-display.d.ts +9 -0
  271. package/dist/src/tui/input-display.js +58 -0
  272. package/dist/src/tui/input-display.js.map +1 -0
  273. package/dist/src/tui/keys.d.ts +44 -0
  274. package/dist/src/tui/keys.js +43 -15
  275. package/dist/src/tui/keys.js.map +1 -1
  276. package/dist/src/tui/lifecycle-action-view.d.ts +6 -0
  277. package/dist/src/tui/lifecycle-action-view.js +36 -0
  278. package/dist/src/tui/lifecycle-action-view.js.map +1 -0
  279. package/dist/src/tui/model.d.ts +224 -31
  280. package/dist/src/tui/model.js +1510 -397
  281. package/dist/src/tui/model.js.map +1 -1
  282. package/dist/src/tui/operation-diagnostic-screens.d.ts +8 -0
  283. package/dist/src/tui/operation-diagnostic-screens.js +71 -0
  284. package/dist/src/tui/operation-diagnostic-screens.js.map +1 -0
  285. package/dist/src/tui/operation-history.d.ts +81 -0
  286. package/dist/src/tui/operation-history.js +136 -0
  287. package/dist/src/tui/operation-history.js.map +1 -0
  288. package/dist/src/tui/operation-review-planner.d.ts +21 -0
  289. package/dist/src/tui/operation-review-planner.js +1392 -0
  290. package/dist/src/tui/operation-review-planner.js.map +1 -0
  291. package/dist/src/tui/plugin-content.d.ts +31 -0
  292. package/dist/src/tui/plugin-content.js +680 -0
  293. package/dist/src/tui/plugin-content.js.map +1 -0
  294. package/dist/src/tui/plugin-detail.d.ts +52 -0
  295. package/dist/src/tui/plugin-detail.js +165 -0
  296. package/dist/src/tui/plugin-detail.js.map +1 -0
  297. package/dist/src/tui/plugin-write-task.d.ts +69 -0
  298. package/dist/src/tui/plugin-write-task.js +286 -0
  299. package/dist/src/tui/plugin-write-task.js.map +1 -0
  300. package/dist/src/tui/project-inventory.d.ts +68 -0
  301. package/dist/src/tui/project-inventory.js +203 -0
  302. package/dist/src/tui/project-inventory.js.map +1 -0
  303. package/dist/src/tui/prompt.js +4 -15
  304. package/dist/src/tui/prompt.js.map +1 -1
  305. package/dist/src/tui/query-header.d.ts +30 -0
  306. package/dist/src/tui/query-header.js +40 -0
  307. package/dist/src/tui/query-header.js.map +1 -0
  308. package/dist/src/tui/reader.d.ts +37 -0
  309. package/dist/src/tui/reader.js +47 -0
  310. package/dist/src/tui/reader.js.map +1 -0
  311. package/dist/src/tui/router.d.ts +197 -10
  312. package/dist/src/tui/router.js +338 -50
  313. package/dist/src/tui/router.js.map +1 -1
  314. package/dist/src/tui/screen-registry.d.ts +701 -0
  315. package/dist/src/tui/screen-registry.js +230 -0
  316. package/dist/src/tui/screen-registry.js.map +1 -0
  317. package/dist/src/tui/session-console-app.d.ts +6 -0
  318. package/dist/src/tui/session-console-app.js +13 -0
  319. package/dist/src/tui/session-console-app.js.map +1 -0
  320. package/dist/src/tui/session-host.d.ts +45 -0
  321. package/dist/src/tui/session-host.js +209 -0
  322. package/dist/src/tui/session-host.js.map +1 -0
  323. package/dist/src/tui/source-detail-card.d.ts +29 -0
  324. package/dist/src/tui/source-detail-card.js +45 -0
  325. package/dist/src/tui/source-detail-card.js.map +1 -0
  326. package/dist/src/tui/source-ref-presets.d.ts +3 -0
  327. package/dist/src/tui/source-ref-presets.js +11 -0
  328. package/dist/src/tui/source-ref-presets.js.map +1 -0
  329. package/dist/src/tui/theme.d.ts +12 -0
  330. package/dist/src/tui/theme.js +12 -0
  331. package/dist/src/tui/theme.js.map +1 -1
  332. package/dist/src/tui/viewport.d.ts +1 -0
  333. package/dist/src/tui/viewport.js +23 -0
  334. package/dist/src/tui/viewport.js.map +1 -1
  335. package/dist/src/tui/views.js +31 -3
  336. package/dist/src/tui/views.js.map +1 -1
  337. package/dist/src/tui/wizard.js +37 -13
  338. package/dist/src/tui/wizard.js.map +1 -1
  339. package/dist/src/types.d.ts +264 -21
  340. package/dist/src/types.js +1 -0
  341. package/dist/src/types.js.map +1 -1
  342. package/dist/src/utils/agent-version.d.ts +7 -1
  343. package/dist/src/utils/agent-version.js +36 -7
  344. package/dist/src/utils/agent-version.js.map +1 -1
  345. package/dist/src/utils/artifact-plan.d.ts +8 -6
  346. package/dist/src/utils/artifact-plan.js +67 -13
  347. package/dist/src/utils/artifact-plan.js.map +1 -1
  348. package/dist/src/utils/artifact-renderer.d.ts +24 -10
  349. package/dist/src/utils/artifact-renderer.js +230 -220
  350. package/dist/src/utils/artifact-renderer.js.map +1 -1
  351. package/dist/src/utils/artifact-request.d.ts +32 -0
  352. package/dist/src/utils/artifact-request.js +90 -0
  353. package/dist/src/utils/artifact-request.js.map +1 -0
  354. package/dist/src/utils/artifact-sources.d.ts +4 -0
  355. package/dist/src/utils/artifact-sources.js +17 -0
  356. package/dist/src/utils/artifact-sources.js.map +1 -1
  357. package/dist/src/utils/aw-home-mutation-lock.d.ts +1 -0
  358. package/dist/src/utils/aw-home-mutation-lock.js +32 -4
  359. package/dist/src/utils/aw-home-mutation-lock.js.map +1 -1
  360. package/dist/src/utils/bundle-integrity.d.ts +0 -1
  361. package/dist/src/utils/bundle-integrity.js +0 -25
  362. package/dist/src/utils/bundle-integrity.js.map +1 -1
  363. package/dist/src/utils/bundle-layout.js +29 -29
  364. package/dist/src/utils/bundle-layout.js.map +1 -1
  365. package/dist/src/utils/catalog-capability-projection.d.ts +8 -0
  366. package/dist/src/utils/catalog-capability-projection.js +14 -0
  367. package/dist/src/utils/catalog-capability-projection.js.map +1 -0
  368. package/dist/src/utils/catalog-digests.d.ts +10 -0
  369. package/dist/src/utils/catalog-digests.js +57 -20
  370. package/dist/src/utils/catalog-digests.js.map +1 -1
  371. package/dist/src/utils/catalog-generation-control-snapshot.d.ts +11 -0
  372. package/dist/src/utils/catalog-generation-control-snapshot.js +45 -0
  373. package/dist/src/utils/catalog-generation-control-snapshot.js.map +1 -0
  374. package/dist/src/utils/catalog-generation-error.d.ts +16 -0
  375. package/dist/src/utils/catalog-generation-error.js +30 -0
  376. package/dist/src/utils/catalog-generation-error.js.map +1 -0
  377. package/dist/src/utils/catalog-generation-resolver.d.ts +44 -0
  378. package/dist/src/utils/catalog-generation-resolver.js +273 -0
  379. package/dist/src/utils/catalog-generation-resolver.js.map +1 -0
  380. package/dist/src/utils/catalog-generation-service.d.ts +172 -0
  381. package/dist/src/utils/catalog-generation-service.js +1271 -0
  382. package/dist/src/utils/catalog-generation-service.js.map +1 -0
  383. package/dist/src/utils/catalog-generation-state.d.ts +22 -0
  384. package/dist/src/utils/catalog-generation-state.js +192 -0
  385. package/dist/src/utils/catalog-generation-state.js.map +1 -0
  386. package/dist/src/utils/catalog-generation-store.d.ts +58 -0
  387. package/dist/src/utils/catalog-generation-store.js +452 -0
  388. package/dist/src/utils/catalog-generation-store.js.map +1 -0
  389. package/dist/src/utils/catalog-manifest-v7.d.ts +5 -0
  390. package/dist/src/utils/{catalog-manifest-v4.js → catalog-manifest-v7.js} +35 -43
  391. package/dist/src/utils/catalog-manifest-v7.js.map +1 -0
  392. package/dist/src/utils/catalog-operation-context.d.ts +20 -0
  393. package/dist/src/utils/catalog-operation-context.js +142 -0
  394. package/dist/src/utils/catalog-operation-context.js.map +1 -0
  395. package/dist/src/utils/catalog-public-error.d.ts +7 -3
  396. package/dist/src/utils/catalog-public-error.js +28 -8
  397. package/dist/src/utils/catalog-public-error.js.map +1 -1
  398. package/dist/src/utils/catalog-runtime-projection.d.ts +3 -0
  399. package/dist/src/utils/catalog-runtime-projection.js +5 -40
  400. package/dist/src/utils/catalog-runtime-projection.js.map +1 -1
  401. package/dist/src/utils/catalog-snapshot.d.ts +5 -3
  402. package/dist/src/utils/catalog-snapshot.js +11 -3
  403. package/dist/src/utils/catalog-snapshot.js.map +1 -1
  404. package/dist/src/utils/catalog-source-identity.d.ts +1 -0
  405. package/dist/src/utils/catalog-source-identity.js +21 -2
  406. package/dist/src/utils/catalog-source-identity.js.map +1 -1
  407. package/dist/src/utils/catalog-source-impact.d.ts +21 -0
  408. package/dist/src/utils/catalog-source-impact.js +344 -0
  409. package/dist/src/utils/catalog-source-impact.js.map +1 -0
  410. package/dist/src/utils/catalog-source-references.d.ts +3 -2
  411. package/dist/src/utils/catalog-source-references.js +195 -347
  412. package/dist/src/utils/catalog-source-references.js.map +1 -1
  413. package/dist/src/utils/catalog-sources.d.ts +15 -1
  414. package/dist/src/utils/catalog-sources.js +206 -27
  415. package/dist/src/utils/catalog-sources.js.map +1 -1
  416. package/dist/src/utils/claude-skills-root.d.ts +8 -0
  417. package/dist/src/utils/claude-skills-root.js +76 -0
  418. package/dist/src/utils/claude-skills-root.js.map +1 -0
  419. package/dist/src/utils/codex-config.d.ts +2 -0
  420. package/dist/src/utils/codex-config.js +26 -5
  421. package/dist/src/utils/codex-config.js.map +1 -1
  422. package/dist/src/utils/codex-manager.d.ts +79 -0
  423. package/dist/src/utils/codex-manager.js +735 -0
  424. package/dist/src/utils/codex-manager.js.map +1 -0
  425. package/dist/src/utils/codex-marketplace-path.d.ts +5 -0
  426. package/dist/src/utils/codex-marketplace-path.js +45 -0
  427. package/dist/src/utils/codex-marketplace-path.js.map +1 -0
  428. package/dist/src/utils/codex-native-observation.d.ts +49 -0
  429. package/dist/src/utils/codex-native-observation.js +154 -0
  430. package/dist/src/utils/codex-native-observation.js.map +1 -0
  431. package/dist/src/utils/codex-native-render-receipt.d.ts +40 -0
  432. package/dist/src/utils/codex-native-render-receipt.js +205 -0
  433. package/dist/src/utils/codex-native-render-receipt.js.map +1 -0
  434. package/dist/src/utils/codex-reconciler.d.ts +126 -0
  435. package/dist/src/utils/codex-reconciler.js +298 -0
  436. package/dist/src/utils/codex-reconciler.js.map +1 -0
  437. package/dist/src/utils/codex-shared-native.d.ts +43 -0
  438. package/dist/src/utils/codex-shared-native.js +81 -0
  439. package/dist/src/utils/codex-shared-native.js.map +1 -0
  440. package/dist/src/utils/codex-skill-staging.d.ts +2 -0
  441. package/dist/src/utils/codex-skill-staging.js.map +1 -1
  442. package/dist/src/utils/codex-skills-root.d.ts +4 -0
  443. package/dist/src/utils/codex-skills-root.js +25 -0
  444. package/dist/src/utils/codex-skills-root.js.map +1 -0
  445. package/dist/src/utils/codex-surface-analysis.d.ts +46 -0
  446. package/dist/src/utils/codex-surface-analysis.js +247 -0
  447. package/dist/src/utils/codex-surface-analysis.js.map +1 -0
  448. package/dist/src/utils/dynamic-skill-tree.d.ts +5 -0
  449. package/dist/src/utils/dynamic-skill-tree.js +56 -7
  450. package/dist/src/utils/dynamic-skill-tree.js.map +1 -1
  451. package/dist/src/utils/git-catalog-provider.d.ts +16 -0
  452. package/dist/src/utils/git-catalog-provider.js +177 -145
  453. package/dist/src/utils/git-catalog-provider.js.map +1 -1
  454. package/dist/src/utils/local-marketplace.d.ts +27 -1
  455. package/dist/src/utils/local-marketplace.js +434 -84
  456. package/dist/src/utils/local-marketplace.js.map +1 -1
  457. package/dist/src/utils/managed-command-closure.d.ts +3 -0
  458. package/dist/src/utils/managed-command-closure.js +35 -0
  459. package/dist/src/utils/managed-command-closure.js.map +1 -0
  460. package/dist/src/utils/managed-command-evidence.d.ts +7 -0
  461. package/dist/src/utils/managed-command-evidence.js +86 -0
  462. package/dist/src/utils/managed-command-evidence.js.map +1 -0
  463. package/dist/src/utils/managed-command-materialization.d.ts +115 -0
  464. package/dist/src/utils/managed-command-materialization.js +359 -0
  465. package/dist/src/utils/managed-command-materialization.js.map +1 -0
  466. package/dist/src/utils/managed-command-runtime.d.ts +33 -0
  467. package/dist/src/utils/managed-command-runtime.js +121 -0
  468. package/dist/src/utils/managed-command-runtime.js.map +1 -0
  469. package/dist/src/utils/managed-command-store.d.ts +128 -0
  470. package/dist/src/utils/managed-command-store.js +589 -0
  471. package/dist/src/utils/managed-command-store.js.map +1 -0
  472. package/dist/src/utils/manifest.d.ts +1 -3
  473. package/dist/src/utils/manifest.js +1 -3
  474. package/dist/src/utils/manifest.js.map +1 -1
  475. package/dist/src/utils/multi-source-catalog.d.ts +3 -9
  476. package/dist/src/utils/multi-source-catalog.js +54 -110
  477. package/dist/src/utils/multi-source-catalog.js.map +1 -1
  478. package/dist/src/utils/native-cli.d.ts +61 -7
  479. package/dist/src/utils/native-cli.js +426 -58
  480. package/dist/src/utils/native-cli.js.map +1 -1
  481. package/dist/src/utils/native-tool-context.d.ts +14 -0
  482. package/dist/src/utils/native-tool-context.js +38 -0
  483. package/dist/src/utils/native-tool-context.js.map +1 -0
  484. package/dist/src/utils/native-tool-review.d.ts +21 -0
  485. package/dist/src/utils/native-tool-review.js +102 -0
  486. package/dist/src/utils/native-tool-review.js.map +1 -0
  487. package/dist/src/utils/orphan-marketplace-cleanup.js +0 -4
  488. package/dist/src/utils/orphan-marketplace-cleanup.js.map +1 -1
  489. package/dist/src/utils/ownership.d.ts +88 -20
  490. package/dist/src/utils/ownership.js +185 -223
  491. package/dist/src/utils/ownership.js.map +1 -1
  492. package/dist/src/utils/path-catalog-provider.d.ts +1 -1
  493. package/dist/src/utils/path-catalog-provider.js +54 -65
  494. package/dist/src/utils/path-catalog-provider.js.map +1 -1
  495. package/dist/src/utils/paths.d.ts +0 -1
  496. package/dist/src/utils/paths.js +0 -1
  497. package/dist/src/utils/paths.js.map +1 -1
  498. package/dist/src/utils/plugin-config-impact.d.ts +40 -0
  499. package/dist/src/utils/plugin-config-impact.js +373 -0
  500. package/dist/src/utils/plugin-config-impact.js.map +1 -0
  501. package/dist/src/utils/plugin-config-write.d.ts +52 -27
  502. package/dist/src/utils/plugin-config-write.js +1112 -298
  503. package/dist/src/utils/plugin-config-write.js.map +1 -1
  504. package/dist/src/utils/plugin-config.d.ts +153 -93
  505. package/dist/src/utils/plugin-config.js +1116 -968
  506. package/dist/src/utils/plugin-config.js.map +1 -1
  507. package/dist/src/utils/plugin-intent-state.d.ts +49 -0
  508. package/dist/src/utils/plugin-intent-state.js +320 -0
  509. package/dist/src/utils/plugin-intent-state.js.map +1 -0
  510. package/dist/src/utils/plugin-scripts.d.ts +66 -125
  511. package/dist/src/utils/plugin-scripts.js +518 -526
  512. package/dist/src/utils/plugin-scripts.js.map +1 -1
  513. package/dist/src/utils/process-lock.js +14 -5
  514. package/dist/src/utils/process-lock.js.map +1 -1
  515. package/dist/src/utils/process-tree.d.ts +2 -2
  516. package/dist/src/utils/process-tree.js +1 -1
  517. package/dist/src/utils/process-tree.js.map +1 -1
  518. package/dist/src/utils/project-boundary.d.ts +11 -13
  519. package/dist/src/utils/project-boundary.js +28 -34
  520. package/dist/src/utils/project-boundary.js.map +1 -1
  521. package/dist/src/utils/rendered-contract.js +18 -1
  522. package/dist/src/utils/rendered-contract.js.map +1 -1
  523. package/dist/src/utils/runtime-config.d.ts +20 -0
  524. package/dist/src/utils/runtime-config.js +75 -0
  525. package/dist/src/utils/runtime-config.js.map +1 -0
  526. package/dist/src/utils/runtime-skill-closure.js +47 -6
  527. package/dist/src/utils/runtime-skill-closure.js.map +1 -1
  528. package/dist/src/utils/safe-fs.d.ts +21 -0
  529. package/dist/src/utils/safe-fs.js +111 -0
  530. package/dist/src/utils/safe-fs.js.map +1 -0
  531. package/dist/src/utils/safe-operation-diagnostic.d.ts +15 -0
  532. package/dist/src/utils/safe-operation-diagnostic.js +33 -0
  533. package/dist/src/utils/safe-operation-diagnostic.js.map +1 -0
  534. package/dist/src/utils/sensitive-content.d.ts +4 -0
  535. package/dist/src/utils/sensitive-content.js +36 -0
  536. package/dist/src/utils/sensitive-content.js.map +1 -0
  537. package/dist/src/utils/state-paths.js +7 -2
  538. package/dist/src/utils/state-paths.js.map +1 -1
  539. package/dist/src/utils/target-eligibility.d.ts +8 -2
  540. package/dist/src/utils/target-eligibility.js +17 -8
  541. package/dist/src/utils/target-eligibility.js.map +1 -1
  542. package/dist/src/utils/windows-claude-shim.d.ts +7 -0
  543. package/dist/src/utils/windows-claude-shim.js +10 -0
  544. package/dist/src/utils/windows-claude-shim.js.map +1 -0
  545. package/dist/src/utils/windows-npm-shim.d.ts +14 -0
  546. package/dist/src/utils/windows-npm-shim.js +140 -0
  547. package/dist/src/utils/windows-npm-shim.js.map +1 -0
  548. package/dist/vitest.config.js +100 -9
  549. package/dist/vitest.config.js.map +1 -1
  550. package/package.json +31 -21
  551. package/dist/authoring/scripts/check-plugin-versions.d.mts +0 -2
  552. package/dist/authoring/scripts/check-plugin-versions.mjs +0 -5
  553. package/dist/authoring/scripts/check-plugin-versions.mjs.map +0 -1
  554. package/dist/scripts/aw-skill-eval-engine.d.ts +0 -13
  555. package/dist/scripts/aw-skill-eval-engine.js +0 -31
  556. package/dist/scripts/aw-skill-eval-engine.js.map +0 -1
  557. package/dist/scripts/codex-eval-app-server.d.ts +0 -89
  558. package/dist/scripts/codex-eval-app-server.js +0 -1228
  559. package/dist/scripts/codex-eval-app-server.js.map +0 -1
  560. package/dist/scripts/codex-eval-isolation.d.ts +0 -61
  561. package/dist/scripts/codex-eval-isolation.js +0 -318
  562. package/dist/scripts/codex-eval-isolation.js.map +0 -1
  563. package/dist/scripts/codex-eval-process-management.d.ts +0 -8
  564. package/dist/scripts/codex-eval-process-management.js +0 -69
  565. package/dist/scripts/codex-eval-process-management.js.map +0 -1
  566. package/dist/scripts/codex-eval-process-tree.d.ts +0 -38
  567. package/dist/scripts/codex-eval-process-tree.js +0 -803
  568. package/dist/scripts/codex-eval-process-tree.js.map +0 -1
  569. package/dist/scripts/codex-eval-runtime-config.d.ts +0 -62
  570. package/dist/scripts/codex-eval-runtime-config.js +0 -843
  571. package/dist/scripts/codex-eval-runtime-config.js.map +0 -1
  572. package/dist/scripts/codex-trigger-eval.d.ts +0 -84
  573. package/dist/scripts/codex-trigger-eval.js +0 -968
  574. package/dist/scripts/codex-trigger-eval.js.map +0 -1
  575. package/dist/scripts/eval-plugin-skills-audited.d.ts +0 -6
  576. package/dist/scripts/eval-plugin-skills-audited.js +0 -261
  577. package/dist/scripts/eval-plugin-skills-audited.js.map +0 -1
  578. package/dist/scripts/eval-plugin-skills.d.ts +0 -45
  579. package/dist/scripts/eval-plugin-skills.js +0 -1586
  580. package/dist/scripts/eval-plugin-skills.js.map +0 -1
  581. package/dist/scripts/eval-run-layout.d.ts +0 -17
  582. package/dist/scripts/eval-run-layout.js +0 -26
  583. package/dist/scripts/eval-run-layout.js.map +0 -1
  584. package/dist/scripts/plugin-eval-contract.d.ts +0 -185
  585. package/dist/scripts/plugin-eval-contract.js +0 -695
  586. package/dist/scripts/plugin-eval-contract.js.map +0 -1
  587. package/dist/scripts/plugin-eval-materializer.d.ts +0 -13
  588. package/dist/scripts/plugin-eval-materializer.js +0 -421
  589. package/dist/scripts/plugin-eval-materializer.js.map +0 -1
  590. package/dist/scripts/skill-reporting.d.ts +0 -212
  591. package/dist/scripts/skill-reporting.js +0 -922
  592. package/dist/scripts/skill-reporting.js.map +0 -1
  593. package/dist/src/commands/review-publication.d.ts +0 -99
  594. package/dist/src/commands/review-publication.js +0 -904
  595. package/dist/src/commands/review-publication.js.map +0 -1
  596. package/dist/src/commands/status-v4.d.ts +0 -123
  597. package/dist/src/commands/status-v4.js +0 -905
  598. package/dist/src/commands/status-v4.js.map +0 -1
  599. package/dist/src/commands/status.d.ts +0 -93
  600. package/dist/src/commands/status.js +0 -442
  601. package/dist/src/commands/status.js.map +0 -1
  602. package/dist/src/utils/active-marketplace-runtime-lock.d.ts +0 -12
  603. package/dist/src/utils/active-marketplace-runtime-lock.js +0 -133
  604. package/dist/src/utils/active-marketplace-runtime-lock.js.map +0 -1
  605. package/dist/src/utils/catalog-manifest-v3.d.ts +0 -2
  606. package/dist/src/utils/catalog-manifest-v3.js +0 -3
  607. package/dist/src/utils/catalog-manifest-v3.js.map +0 -1
  608. package/dist/src/utils/catalog-manifest-v4.d.ts +0 -5
  609. package/dist/src/utils/catalog-manifest-v4.js.map +0 -1
  610. package/dist/src/utils/catalog-source-cache.d.ts +0 -62
  611. package/dist/src/utils/catalog-source-cache.js +0 -296
  612. package/dist/src/utils/catalog-source-cache.js.map +0 -1
  613. package/dist/src/utils/codex-project-surface.d.ts +0 -3
  614. package/dist/src/utils/codex-project-surface.js +0 -49
  615. package/dist/src/utils/codex-project-surface.js.map +0 -1
  616. package/dist/src/utils/lifecycle-active-store.d.ts +0 -175
  617. package/dist/src/utils/lifecycle-active-store.js +0 -1276
  618. package/dist/src/utils/lifecycle-active-store.js.map +0 -1
  619. package/dist/src/utils/plugin-release.d.ts +0 -2
  620. package/dist/src/utils/plugin-release.js +0 -2
  621. package/dist/src/utils/plugin-release.js.map +0 -1
@@ -0,0 +1,320 @@
1
+ import crypto from 'node:crypto';
2
+ import path from 'node:path';
3
+ import fs from 'fs-extra';
4
+ import { parsePluginId } from './multi-source-catalog.js';
5
+ import { atomicReplaceConfigFile, resolveAwProjectRoot, } from './plugin-config.js';
6
+ import { assertCanonicalProjectManagedRoots, assertProjectSharedConfigPathVisible, } from './project-boundary.js';
7
+ import { resolveAwHome } from './state-paths.js';
8
+ import { assertTestReadablePath, assertTestWritablePath, } from './test-path-fence.js';
9
+ export const PLUGIN_INTENT_SCHEMA_VERSION = 2;
10
+ export const PLUGIN_INTENT_KIND = 'aw-plugin-intents';
11
+ function compareText(left, right) {
12
+ return left < right ? -1 : left > right ? 1 : 0;
13
+ }
14
+ function isRecord(value) {
15
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
16
+ }
17
+ function assertExactKeys(value, expected, fieldName) {
18
+ const allowed = new Set(expected);
19
+ const unknown = Object.keys(value).filter((key) => !allowed.has(key));
20
+ const missing = expected.filter((key) => !(key in value));
21
+ if (unknown.length > 0 || missing.length > 0) {
22
+ throw new Error(`Invalid ${fieldName}: expected exactly ${expected.join(', ')}.`
23
+ + `${unknown.length > 0 ? ` Unknown: ${unknown.sort(compareText).join(', ')}.` : ''}`
24
+ + `${missing.length > 0 ? ` Missing: ${missing.join(', ')}.` : ''}`);
25
+ }
26
+ }
27
+ function parseCanonicalPluginId(value, fieldName) {
28
+ if (typeof value !== 'string') {
29
+ throw new Error(`Invalid ${fieldName}: expected a source-qualified plugin ID.`);
30
+ }
31
+ const parsed = parsePluginId(value);
32
+ if (!parsed.sourceId) {
33
+ throw new Error(`Invalid ${fieldName}: expected a source-qualified plugin ID.`);
34
+ }
35
+ return `${parsed.sourceId}/${parsed.pluginName}`;
36
+ }
37
+ function parsePlatform(value, fieldName) {
38
+ if (value !== 'codex' && value !== 'claude') {
39
+ throw new Error(`Invalid ${fieldName}: expected codex or claude.`);
40
+ }
41
+ return value;
42
+ }
43
+ function parseScope(value, fieldName) {
44
+ if (value !== 'project' && value !== 'user') {
45
+ throw new Error(`Invalid ${fieldName}: expected project or user.`);
46
+ }
47
+ return value;
48
+ }
49
+ function canonicalPlatforms(platforms) {
50
+ return [...new Set(platforms)].sort(compareText);
51
+ }
52
+ export function createEmptyPluginIntentState() {
53
+ return {
54
+ schemaVersion: PLUGIN_INTENT_SCHEMA_VERSION,
55
+ kind: PLUGIN_INTENT_KIND,
56
+ roots: [],
57
+ dependencyScopeOverrides: [],
58
+ };
59
+ }
60
+ export function canonicalizePluginIntentState(state) {
61
+ const roots = state.roots.map((root) => ({
62
+ pluginId: parseCanonicalPluginId(root.pluginId, 'roots[].pluginId'),
63
+ platforms: canonicalPlatforms(root.platforms.map((platform) => parsePlatform(platform, 'roots[].platforms[]'))),
64
+ }));
65
+ if (roots.some((root) => root.platforms.length === 0)) {
66
+ throw new Error('Invalid roots[].platforms: expected at least one platform.');
67
+ }
68
+ if (new Set(roots.map((root) => root.pluginId)).size !== roots.length) {
69
+ throw new Error('Invalid roots: duplicate pluginId.');
70
+ }
71
+ const dependencyScopeOverrides = state.dependencyScopeOverrides.map((override) => ({
72
+ pluginId: parseCanonicalPluginId(override.pluginId, 'dependencyScopeOverrides[].pluginId'),
73
+ platform: parsePlatform(override.platform, 'dependencyScopeOverrides[].platform'),
74
+ scope: parseScope(override.scope, 'dependencyScopeOverrides[].scope'),
75
+ }));
76
+ const overrideKeys = dependencyScopeOverrides.map((override) => `${override.pluginId}\0${override.platform}`);
77
+ if (new Set(overrideKeys).size !== overrideKeys.length) {
78
+ throw new Error('Invalid dependencyScopeOverrides: duplicate pluginId/platform target.');
79
+ }
80
+ return {
81
+ schemaVersion: PLUGIN_INTENT_SCHEMA_VERSION,
82
+ kind: PLUGIN_INTENT_KIND,
83
+ roots: roots.sort((left, right) => compareText(left.pluginId, right.pluginId)),
84
+ dependencyScopeOverrides: dependencyScopeOverrides.sort((left, right) => compareText(`${left.pluginId}\0${left.platform}`, `${right.pluginId}\0${right.platform}`)),
85
+ };
86
+ }
87
+ export function parsePluginIntentState(value) {
88
+ if (!isRecord(value))
89
+ throw new Error('Invalid plugin intent state: expected an object.');
90
+ assertExactKeys(value, ['schemaVersion', 'kind', 'roots', 'dependencyScopeOverrides'], 'plugin intent state');
91
+ if (value.schemaVersion !== PLUGIN_INTENT_SCHEMA_VERSION) {
92
+ throw new Error('Invalid plugin intent state schemaVersion: expected 2.');
93
+ }
94
+ if (value.kind !== PLUGIN_INTENT_KIND) {
95
+ throw new Error(`Invalid plugin intent state kind: expected ${PLUGIN_INTENT_KIND}.`);
96
+ }
97
+ if (!Array.isArray(value.roots))
98
+ throw new Error('Invalid roots: expected an array.');
99
+ if (!Array.isArray(value.dependencyScopeOverrides)) {
100
+ throw new Error('Invalid dependencyScopeOverrides: expected an array.');
101
+ }
102
+ const roots = value.roots.map((entry, index) => {
103
+ if (!isRecord(entry))
104
+ throw new Error(`Invalid roots[${index}]: expected an object.`);
105
+ assertExactKeys(entry, ['pluginId', 'platforms'], `roots[${index}]`);
106
+ if (!Array.isArray(entry.platforms)) {
107
+ throw new Error(`Invalid roots[${index}].platforms: expected an array.`);
108
+ }
109
+ return {
110
+ pluginId: parseCanonicalPluginId(entry.pluginId, `roots[${index}].pluginId`),
111
+ platforms: entry.platforms.map((platform, platformIndex) => parsePlatform(platform, `roots[${index}].platforms[${platformIndex}]`)),
112
+ };
113
+ });
114
+ const dependencyScopeOverrides = value.dependencyScopeOverrides.map((entry, index) => {
115
+ if (!isRecord(entry)) {
116
+ throw new Error(`Invalid dependencyScopeOverrides[${index}]: expected an object.`);
117
+ }
118
+ assertExactKeys(entry, ['pluginId', 'platform', 'scope'], `dependencyScopeOverrides[${index}]`);
119
+ return {
120
+ pluginId: parseCanonicalPluginId(entry.pluginId, `dependencyScopeOverrides[${index}].pluginId`),
121
+ platform: parsePlatform(entry.platform, `dependencyScopeOverrides[${index}].platform`),
122
+ scope: parseScope(entry.scope, `dependencyScopeOverrides[${index}].scope`),
123
+ };
124
+ });
125
+ return canonicalizePluginIntentState({
126
+ schemaVersion: PLUGIN_INTENT_SCHEMA_VERSION,
127
+ kind: PLUGIN_INTENT_KIND,
128
+ roots,
129
+ dependencyScopeOverrides,
130
+ });
131
+ }
132
+ export function serializePluginIntentState(state) {
133
+ return `${JSON.stringify(canonicalizePluginIntentState(state), null, 2)}\n`;
134
+ }
135
+ export function calculatePluginIntentDigest(state) {
136
+ const canonical = canonicalizePluginIntentState(state);
137
+ const digest = crypto.createHash('sha256').update(JSON.stringify(canonical)).digest('hex');
138
+ return `sha256:${digest}`;
139
+ }
140
+ export function upsertPluginIntentRoot(state, root) {
141
+ const pluginId = parseCanonicalPluginId(root.pluginId, 'root.pluginId');
142
+ return canonicalizePluginIntentState({
143
+ ...state,
144
+ roots: [
145
+ ...state.roots.filter((entry) => entry.pluginId !== pluginId),
146
+ { pluginId, platforms: [...root.platforms] },
147
+ ],
148
+ });
149
+ }
150
+ export function mergePluginIntentRootPlatforms(state, root) {
151
+ const pluginId = parseCanonicalPluginId(root.pluginId, 'root.pluginId');
152
+ const current = state.roots.find((entry) => entry.pluginId === pluginId);
153
+ return upsertPluginIntentRoot(state, {
154
+ pluginId,
155
+ platforms: [...(current?.platforms ?? []), ...root.platforms],
156
+ });
157
+ }
158
+ export function addPluginIntentRoot(state, root) {
159
+ const pluginId = parseCanonicalPluginId(root.pluginId, 'root.pluginId');
160
+ if (state.roots.some((entry) => entry.pluginId === pluginId)) {
161
+ throw new Error(`Plugin intent root already exists: ${pluginId}`);
162
+ }
163
+ return upsertPluginIntentRoot(state, { ...root, pluginId });
164
+ }
165
+ export function removePluginIntentRoot(state, pluginId) {
166
+ const canonicalPluginId = parseCanonicalPluginId(pluginId, 'pluginId');
167
+ return canonicalizePluginIntentState({
168
+ ...state,
169
+ roots: state.roots.filter((entry) => entry.pluginId !== canonicalPluginId),
170
+ });
171
+ }
172
+ export function removePluginIntentRootPlatforms(state, root) {
173
+ const pluginId = parseCanonicalPluginId(root.pluginId, 'root.pluginId');
174
+ const removed = new Set(root.platforms.map((platform) => parsePlatform(platform, 'root.platforms[]')));
175
+ const current = state.roots.find((entry) => entry.pluginId === pluginId);
176
+ if (!current)
177
+ return state;
178
+ const platforms = current.platforms.filter((platform) => !removed.has(platform));
179
+ return platforms.length === 0
180
+ ? removePluginIntentRoot(state, pluginId)
181
+ : upsertPluginIntentRoot(state, { pluginId, platforms });
182
+ }
183
+ export function resolvePluginIntentStatePath(location, access) {
184
+ const filePath = location.scope === 'user'
185
+ ? path.join(resolveAwHome(location.env), 'plugin-intents.json')
186
+ : path.join(resolveAwProjectRoot(location.cwd), '.agent-workflows', 'plugin-intents.json');
187
+ if (access === 'read') {
188
+ return assertTestReadablePath(filePath, `${location.scope} plugin intent state`, '用测试隔离环境登记可读 project 或 AW_HOME 根。');
189
+ }
190
+ if (access === 'write') {
191
+ return assertTestWritablePath(filePath, `${location.scope} plugin intent state`, '用 createIsolatedTestEnv() 或 withSafeTestCwd() 登记可写根。');
192
+ }
193
+ return filePath;
194
+ }
195
+ function assertPathInsideRoot(allowedRoot, filePath) {
196
+ const relative = path.relative(path.resolve(allowedRoot), path.resolve(filePath));
197
+ if (relative === ''
198
+ || relative === '..'
199
+ || relative.startsWith(`..${path.sep}`)
200
+ || path.isAbsolute(relative)) {
201
+ throw new Error('Plugin intent path escapes its allowed root.');
202
+ }
203
+ }
204
+ async function assertReadableIntentPath(allowedRoot, filePath) {
205
+ assertPathInsideRoot(allowedRoot, filePath);
206
+ const root = path.resolve(allowedRoot);
207
+ const rootStats = await fs.lstat(root).catch((error) => {
208
+ if (error.code === 'ENOENT')
209
+ return null;
210
+ throw error;
211
+ });
212
+ if (!rootStats)
213
+ return false;
214
+ if (rootStats.isSymbolicLink() || !rootStats.isDirectory()) {
215
+ throw new Error(`Plugin intent root must be a regular directory: ${root}`);
216
+ }
217
+ let current = root;
218
+ for (const segment of path.relative(root, path.resolve(filePath)).split(path.sep).filter(Boolean)) {
219
+ current = path.join(current, segment);
220
+ const stats = await fs.lstat(current).catch((error) => {
221
+ if (error.code === 'ENOENT')
222
+ return null;
223
+ throw error;
224
+ });
225
+ if (!stats)
226
+ return false;
227
+ if (stats.isSymbolicLink()) {
228
+ throw new Error(`Plugin intent path cannot contain a symbolic link: ${current}`);
229
+ }
230
+ if (current === path.resolve(filePath) && !stats.isFile()) {
231
+ throw new Error(`Plugin intent target must be a regular file: ${filePath}`);
232
+ }
233
+ if (current !== path.resolve(filePath) && !stats.isDirectory()) {
234
+ throw new Error(`Plugin intent path parent must be a directory: ${current}`);
235
+ }
236
+ }
237
+ return true;
238
+ }
239
+ async function resolveIntentLocation(location) {
240
+ if (location.scope === 'user') {
241
+ const allowedRoot = resolveAwHome(location.env);
242
+ return {
243
+ allowedRoot,
244
+ filePath: resolvePluginIntentStatePath(location),
245
+ };
246
+ }
247
+ const allowedRoot = await assertCanonicalProjectManagedRoots({
248
+ cwd: location.cwd,
249
+ rootNames: [],
250
+ managedPaths: ['.agent-workflows'],
251
+ });
252
+ return {
253
+ allowedRoot,
254
+ filePath: path.join(allowedRoot, '.agent-workflows', 'plugin-intents.json'),
255
+ };
256
+ }
257
+ async function readPluginIntentStateObservationUnsafe(location) {
258
+ resolvePluginIntentStatePath(location, 'read');
259
+ const { allowedRoot, filePath } = await resolveIntentLocation(location);
260
+ if (!await assertReadableIntentPath(allowedRoot, filePath)) {
261
+ return { state: 'absent' };
262
+ }
263
+ let value;
264
+ try {
265
+ value = JSON.parse(await fs.readFile(filePath, 'utf8'));
266
+ }
267
+ catch (error) {
268
+ if (error instanceof SyntaxError) {
269
+ throw new Error('Invalid plugin intent state JSON.');
270
+ }
271
+ throw error;
272
+ }
273
+ return { state: 'ready', value: parsePluginIntentState(value) };
274
+ }
275
+ function invalidIntentPathError(error) {
276
+ if (!(error instanceof Error))
277
+ return false;
278
+ return /(?:symbolic link|regular (?:directory|file)|escapes its allowed root|符号链接|realpath 越界|必须位于 repo 内)/iu
279
+ .test(error.message);
280
+ }
281
+ export async function observePluginIntentState(location) {
282
+ try {
283
+ return await readPluginIntentStateObservationUnsafe(location);
284
+ }
285
+ catch (error) {
286
+ if (error instanceof Error && error.name === 'AbortError')
287
+ throw error;
288
+ const invalid = invalidIntentPathError(error)
289
+ || error instanceof SyntaxError
290
+ || error instanceof Error && /^Invalid (?:plugin intent|roots|dependencyScopeOverrides)/u.test(error.message);
291
+ return invalid ? {
292
+ state: 'invalid',
293
+ code: 'pluginIntentStateInvalid',
294
+ message: '插件声明格式无效或路径不安全。',
295
+ } : {
296
+ state: 'unavailable',
297
+ code: 'pluginIntentStateUnavailable',
298
+ message: '无法读取插件声明。',
299
+ };
300
+ }
301
+ }
302
+ export async function readPluginIntentState(location) {
303
+ const observation = await readPluginIntentStateObservationUnsafe(location);
304
+ return observation.state === 'ready' ? observation.value : createEmptyPluginIntentState();
305
+ }
306
+ export async function writePluginIntentState(location, state) {
307
+ const requestedPath = resolvePluginIntentStatePath(location, 'write');
308
+ if (location.scope === 'project') {
309
+ await assertProjectSharedConfigPathVisible({ cwd: location.cwd, targetPath: requestedPath });
310
+ }
311
+ const { allowedRoot, filePath } = await resolveIntentLocation(location);
312
+ const canonical = canonicalizePluginIntentState(state);
313
+ await atomicReplaceConfigFile({
314
+ filePath,
315
+ allowedRoot,
316
+ content: serializePluginIntentState(canonical),
317
+ });
318
+ return canonical;
319
+ }
320
+ //# sourceMappingURL=plugin-intent-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-intent-state.js","sourceRoot":"","sources":["../../../src/utils/plugin-intent-state.ts"],"names":[],"mappings":"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"}
@@ -1,118 +1,60 @@
1
+ import { spawn } from 'node:child_process';
1
2
  import type { CommandExecutionContext } from '../commands/runtime.js';
2
- import type { GeneratedArtifact, PlatformName, DistributionName, PluginLifecycleEvent, PluginLifecycleRuntimeOs, PluginLifecycleScriptEntry, NormalizedPluginManifest, PluginMeta, Scope } from '../types.js';
3
- export { calculateFileDigest, calculatePluginBundleFingerprint, } from './bundle-integrity.js';
4
- export type LifecycleScriptTargetSource = 'currentCatalog' | 'none';
5
- export interface LifecycleScriptTarget {
6
- noOp: boolean;
7
- source: LifecycleScriptTargetSource;
8
- entry?: PluginLifecycleScriptEntry;
9
- entryPath?: string;
10
- bundleRoot?: string;
11
- sourceManifest?: NormalizedPluginManifest;
12
- manifestPath?: string;
13
- manifestDigest?: string;
14
- warnings: string[];
15
- }
16
- export interface ResolveLifecycleScriptTargetOptions {
17
- event: PluginLifecycleEvent;
18
- pluginName: string;
19
- platform: PlatformName;
20
- currentPlugin?: PluginMeta;
21
- cwd: string;
22
- env?: NodeJS.ProcessEnv;
23
- runtimeOs?: PluginLifecycleRuntimeOs;
24
- }
25
- export interface LifecycleScriptContext {
26
- event: PluginLifecycleEvent | 'test';
27
- plugin: {
28
- name: string;
29
- version: string;
30
- rootDir: string;
31
- sourceId?: string;
32
- sourceIdentity?: string;
33
- pluginId?: string;
34
- };
35
- platform: PlatformName;
36
- scope: Scope;
37
- cwd: string;
38
- paths: {
39
- awHome: string;
40
- codexHome: string;
41
- claudeHome: string;
42
- manifestPath: string;
43
- configStores?: {
44
- user: string;
45
- project: string;
46
- projectLocal: string;
47
- };
48
- };
49
- config: {
50
- schema?: NonNullable<NormalizedPluginManifest['config']>['schema'];
51
- values: Record<string, string | number | boolean>;
52
- sources: Record<string, string>;
53
- issues: unknown[];
54
- };
55
- script: {
56
- runner: PluginLifecycleScriptEntry['runner'];
57
- path: string;
58
- args: string[];
59
- source: LifecycleScriptTargetSource;
60
- manifestDigest: string;
61
- };
62
- artifacts: GeneratedArtifact[];
63
- }
64
- export interface WrittenLifecycleScriptContext {
65
- context: LifecycleScriptContext;
66
- contextPath: string;
67
- tempDir: string;
68
- sensitiveValues: string[];
69
- cleanup: () => Promise<void>;
70
- }
71
- export interface LifecycleScriptInvocation {
3
+ import type { DistributionName, NormalizedPluginManifest, PlatformName, PluginConfigValue, PluginMeta, Scope } from '../types.js';
4
+ import { observeProcessTree, terminateProcessTree, type WindowsJobInvocation } from './process-tree.js';
5
+ export { calculateFileDigest } from './bundle-integrity.js';
6
+ export declare const PLUGIN_SCRIPT_TIMEOUT_DEFAULT_MS = 300000;
7
+ export declare const PLUGIN_SCRIPT_TIMEOUT_MIN_MS = 1000;
8
+ export declare const PLUGIN_SCRIPT_TIMEOUT_MAX_MS = 1800000;
9
+ export interface PluginScriptInvocation {
72
10
  command: string;
73
11
  args: string[];
74
12
  cwd: string;
75
13
  env: NodeJS.ProcessEnv;
14
+ stdin?: string;
76
15
  }
77
- export interface LifecycleProcessResult {
16
+ export interface PluginProcessResult {
78
17
  exitCode: number | null;
79
18
  signal: NodeJS.Signals | null;
80
19
  stdout: string;
81
20
  stderr: string;
82
21
  timedOut: boolean;
22
+ stdoutTruncated?: boolean;
83
23
  }
84
- export interface LifecycleProcessRunner {
85
- run(invocation: LifecycleScriptInvocation, options: {
24
+ export interface PluginProcessRunner {
25
+ run(invocation: PluginScriptInvocation, options: {
86
26
  timeoutMs: number;
87
27
  signal?: AbortSignal;
88
- }): Promise<LifecycleProcessResult>;
28
+ maxStdoutBytes?: number;
29
+ }): Promise<PluginProcessResult>;
30
+ }
31
+ interface DefaultPluginProcessRunOptions {
32
+ timeoutMs: number;
33
+ signal?: AbortSignal;
34
+ sensitiveValues?: readonly string[];
35
+ maxStdoutBytes?: number;
89
36
  }
90
- export interface RunLifecycleScriptResult {
91
- executed: boolean;
92
- target: LifecycleScriptTarget;
93
- exitCode?: number | null;
94
- signal?: NodeJS.Signals | null;
95
- stdout?: string;
96
- stderr?: string;
97
- timedOut?: boolean;
37
+ /** @internal Test-only dependency seam. It is not exported from the package entrypoint. */
38
+ interface DefaultPluginProcessRunnerDependencies {
39
+ platform?: NodeJS.Platform;
40
+ spawn?: typeof spawn;
41
+ observeProcessTree?: typeof observeProcessTree;
42
+ terminateProcessTree?: typeof terminateProcessTree;
43
+ createWindowsJobInvocation?: (executable: string, args: readonly string[]) => WindowsJobInvocation;
98
44
  }
99
45
  export declare function resolveBundledPluginFilePath(options: {
100
46
  bundleRoot: string;
101
47
  pluginRelativePath: string;
102
48
  fieldName: string;
103
49
  }): Promise<string>;
104
- export declare function resolveLifecycleScriptTarget(options: ResolveLifecycleScriptTargetOptions): Promise<LifecycleScriptTarget>;
105
- export declare function quoteCmdArgument(value: string): string;
106
- export declare function buildLifecycleScriptInvocation(options: {
107
- entry: PluginLifecycleScriptEntry;
50
+ export declare function buildNodeScriptInvocation(options: {
108
51
  entryPath: string;
109
52
  cwd: string;
110
53
  env: NodeJS.ProcessEnv;
111
- }): LifecycleScriptInvocation;
112
- export declare function resolveLifecycleScriptTimeoutMs(options: {
113
- cliTimeoutMs?: number;
114
- manifest?: NormalizedPluginManifest;
115
- }): number;
54
+ args?: string[];
55
+ stdin?: string;
56
+ }): PluginScriptInvocation;
57
+ export declare function preparePluginScriptDirectories(tempDir: string): Promise<void>;
116
58
  export declare function buildPluginScriptSpawnEnv(options: {
117
59
  commandEnv: NodeJS.ProcessEnv;
118
60
  contextPath: string;
@@ -126,47 +68,46 @@ export declare function buildPluginScriptSpawnEnv(options: {
126
68
  distribution?: DistributionName;
127
69
  scope: Scope;
128
70
  bundleRoot: string;
129
- runtimeOs?: PluginLifecycleRuntimeOs;
130
71
  }): NodeJS.ProcessEnv;
131
- export declare function buildLifecycleSpawnEnv(options: {
132
- commandEnv: NodeJS.ProcessEnv;
133
- contextPath: string;
134
- tempDir: string;
72
+ export declare function resolvePluginScriptTimeoutMs(options: {
73
+ cliTimeoutMs?: number;
74
+ manifestTimeoutMs?: number;
75
+ }): number;
76
+ export declare function collectSensitivePluginConfigValues(manifest: NormalizedPluginManifest, values: Record<string, PluginConfigValue>): string[];
77
+ export declare function assertNoSensitiveConfigValues(value: unknown, sensitiveValues: readonly string[], message: string): void;
78
+ export declare function assertNoSensitiveConfigInFiles(files: Readonly<Record<string, Buffer>>, sensitiveValues: readonly string[], message: string): void;
79
+ export declare function redactPluginScriptOutput(value: string, sensitiveValues: readonly string[]): string;
80
+ export declare function truncatePluginScriptOutput(value: string): string;
81
+ export declare function summarizePluginScriptOutput(value: string, sensitiveValues: readonly string[]): string;
82
+ export declare function createDefaultPluginProcessRunner(dependencies?: DefaultPluginProcessRunnerDependencies): {
83
+ run(invocation: PluginScriptInvocation, options: DefaultPluginProcessRunOptions): Promise<PluginProcessResult>;
84
+ };
85
+ export declare const defaultPluginProcessRunner: {
86
+ run(invocation: PluginScriptInvocation, options: DefaultPluginProcessRunOptions): Promise<PluginProcessResult>;
87
+ };
88
+ export interface PreApplyContextV1 {
89
+ schemaVersion: 1;
135
90
  plugin: {
91
+ pluginId: string;
136
92
  name: string;
137
93
  version: string;
94
+ rootDir: string;
138
95
  };
139
- event: PluginLifecycleEvent | 'test';
140
- platform: PlatformName;
141
- scope: Scope;
142
- bundleRoot: string;
143
- runtimeOs?: PluginLifecycleRuntimeOs;
144
- }): NodeJS.ProcessEnv;
145
- export declare function collectSensitivePluginConfigValues(manifest: NormalizedPluginManifest, values: Record<string, string | number | boolean>): string[];
146
- export declare function redactPluginScriptOutput(value: string, sensitiveValues: readonly string[]): string;
147
- export declare function summarizePluginScriptOutput(value: string, sensitiveValues: readonly string[]): string;
148
- export declare function writeLifecycleScriptContext(options: {
149
- sourceId?: string;
150
- sourceIdentity?: string;
151
- target: LifecycleScriptTarget;
152
- event: PluginLifecycleEvent | 'test';
153
- platform: PlatformName;
154
- scope: Scope;
155
- cwd: string;
156
- commandEnv: NodeJS.ProcessEnv;
157
- artifacts?: GeneratedArtifact[];
158
- }): Promise<WrittenLifecycleScriptContext>;
159
- export declare const defaultPluginProcessRunner: LifecycleProcessRunner;
160
- export declare function runLifecycleScript(options: {
161
- event: PluginLifecycleEvent;
162
- pluginName: string;
96
+ target: {
97
+ platform: PlatformName;
98
+ scope: Scope;
99
+ projectRoot?: string;
100
+ };
101
+ config: {
102
+ values: Record<string, PluginConfigValue>;
103
+ };
104
+ }
105
+ export declare function runPreApplyScript(options: {
106
+ plugin: PluginMeta;
163
107
  platform: PlatformName;
164
108
  scope: Scope;
165
109
  cwd: string;
166
110
  context: CommandExecutionContext;
167
- currentPlugin?: PluginMeta;
168
- artifacts?: GeneratedArtifact[];
169
111
  scriptTimeoutMs?: number;
170
- runner?: LifecycleProcessRunner;
171
- runtimeOs?: PluginLifecycleRuntimeOs;
172
- }): Promise<RunLifecycleScriptResult>;
112
+ runner?: PluginProcessRunner;
113
+ }): Promise<void>;