@lesliechan721/aw 0.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/dist/authoring/assets/aw-config.d.mts +2 -0
  2. package/dist/authoring/assets/aw-config.mjs +556 -0
  3. package/dist/authoring/assets/aw-config.mjs.map +1 -0
  4. package/dist/authoring/scripts/add-skill.d.mts +2 -0
  5. package/dist/authoring/scripts/add-skill.mjs +355 -0
  6. package/dist/authoring/scripts/add-skill.mjs.map +1 -0
  7. package/dist/authoring/scripts/check-plugin-versions.d.mts +2 -0
  8. package/dist/authoring/scripts/check-plugin-versions.mjs +5 -0
  9. package/dist/authoring/scripts/check-plugin-versions.mjs.map +1 -0
  10. package/dist/authoring/scripts/init-plugin.d.mts +2 -0
  11. package/dist/authoring/scripts/init-plugin.mjs +512 -0
  12. package/dist/authoring/scripts/init-plugin.mjs.map +1 -0
  13. package/dist/authoring/scripts/lib/javascript-import-scanner.d.mts +4 -0
  14. package/dist/authoring/scripts/lib/javascript-import-scanner.mjs +261 -0
  15. package/dist/authoring/scripts/lib/javascript-import-scanner.mjs.map +1 -0
  16. package/dist/authoring/scripts/lib/plugin-root.d.mts +26 -0
  17. package/dist/authoring/scripts/lib/plugin-root.mjs +125 -0
  18. package/dist/authoring/scripts/lib/plugin-root.mjs.map +1 -0
  19. package/dist/authoring/scripts/lib/plugin-version-check.d.mts +55 -0
  20. package/dist/authoring/scripts/lib/plugin-version-check.mjs +777 -0
  21. package/dist/authoring/scripts/lib/plugin-version-check.mjs.map +1 -0
  22. package/dist/authoring/scripts/lib/semver.d.mts +9 -0
  23. package/dist/authoring/scripts/lib/semver.mjs +63 -0
  24. package/dist/authoring/scripts/lib/semver.mjs.map +1 -0
  25. package/dist/authoring/scripts/lib/skill-scaffold.d.mts +124 -0
  26. package/dist/authoring/scripts/lib/skill-scaffold.mjs +374 -0
  27. package/dist/authoring/scripts/lib/skill-scaffold.mjs.map +1 -0
  28. package/dist/authoring/scripts/plugin-status.d.mts +2 -0
  29. package/dist/authoring/scripts/plugin-status.mjs +96 -0
  30. package/dist/authoring/scripts/plugin-status.mjs.map +1 -0
  31. package/dist/authoring/scripts/validate-plugin.d.mts +2 -0
  32. package/dist/authoring/scripts/validate-plugin.mjs +4442 -0
  33. package/dist/authoring/scripts/validate-plugin.mjs.map +1 -0
  34. package/dist/authoring/scripts/validate-skill.d.mts +2 -0
  35. package/dist/authoring/scripts/validate-skill.mjs +126 -0
  36. package/dist/authoring/scripts/validate-skill.mjs.map +1 -0
  37. package/dist/index.d.ts +2 -0
  38. package/dist/index.js +8 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/scripts/aw-skill-eval-engine.d.ts +13 -0
  41. package/dist/scripts/aw-skill-eval-engine.js +31 -0
  42. package/dist/scripts/aw-skill-eval-engine.js.map +1 -0
  43. package/dist/scripts/bundle-plugins.d.ts +18 -0
  44. package/dist/scripts/bundle-plugins.js +123 -0
  45. package/dist/scripts/bundle-plugins.js.map +1 -0
  46. package/dist/scripts/codex-eval-app-server.d.ts +89 -0
  47. package/dist/scripts/codex-eval-app-server.js +1228 -0
  48. package/dist/scripts/codex-eval-app-server.js.map +1 -0
  49. package/dist/scripts/codex-eval-isolation.d.ts +61 -0
  50. package/dist/scripts/codex-eval-isolation.js +318 -0
  51. package/dist/scripts/codex-eval-isolation.js.map +1 -0
  52. package/dist/scripts/codex-eval-process-management.d.ts +8 -0
  53. package/dist/scripts/codex-eval-process-management.js +69 -0
  54. package/dist/scripts/codex-eval-process-management.js.map +1 -0
  55. package/dist/scripts/codex-eval-process-tree.d.ts +38 -0
  56. package/dist/scripts/codex-eval-process-tree.js +803 -0
  57. package/dist/scripts/codex-eval-process-tree.js.map +1 -0
  58. package/dist/scripts/codex-eval-runtime-config.d.ts +62 -0
  59. package/dist/scripts/codex-eval-runtime-config.js +843 -0
  60. package/dist/scripts/codex-eval-runtime-config.js.map +1 -0
  61. package/dist/scripts/codex-trigger-eval.d.ts +84 -0
  62. package/dist/scripts/codex-trigger-eval.js +968 -0
  63. package/dist/scripts/codex-trigger-eval.js.map +1 -0
  64. package/dist/scripts/eval-plugin-skills-audited.d.ts +6 -0
  65. package/dist/scripts/eval-plugin-skills-audited.js +261 -0
  66. package/dist/scripts/eval-plugin-skills-audited.js.map +1 -0
  67. package/dist/scripts/eval-plugin-skills.d.ts +45 -0
  68. package/dist/scripts/eval-plugin-skills.js +1586 -0
  69. package/dist/scripts/eval-plugin-skills.js.map +1 -0
  70. package/dist/scripts/eval-run-layout.d.ts +17 -0
  71. package/dist/scripts/eval-run-layout.js +26 -0
  72. package/dist/scripts/eval-run-layout.js.map +1 -0
  73. package/dist/scripts/plugin-eval-contract.d.ts +185 -0
  74. package/dist/scripts/plugin-eval-contract.js +695 -0
  75. package/dist/scripts/plugin-eval-contract.js.map +1 -0
  76. package/dist/scripts/plugin-eval-materializer.d.ts +13 -0
  77. package/dist/scripts/plugin-eval-materializer.js +421 -0
  78. package/dist/scripts/plugin-eval-materializer.js.map +1 -0
  79. package/dist/scripts/plugin-staging.d.ts +43 -0
  80. package/dist/scripts/plugin-staging.js +196 -0
  81. package/dist/scripts/plugin-staging.js.map +1 -0
  82. package/dist/scripts/skill-reporting.d.ts +212 -0
  83. package/dist/scripts/skill-reporting.js +922 -0
  84. package/dist/scripts/skill-reporting.js.map +1 -0
  85. package/dist/scripts/test-plugin-scripts.d.ts +7 -0
  86. package/dist/scripts/test-plugin-scripts.js +674 -0
  87. package/dist/scripts/test-plugin-scripts.js.map +1 -0
  88. package/dist/src/adapters/helpers.d.ts +44 -0
  89. package/dist/src/adapters/helpers.js +95 -0
  90. package/dist/src/adapters/helpers.js.map +1 -0
  91. package/dist/src/authoring/workspace-commands.d.ts +46 -0
  92. package/dist/src/authoring/workspace-commands.js +133 -0
  93. package/dist/src/authoring/workspace-commands.js.map +1 -0
  94. package/dist/src/commands/catalog-publish.d.ts +33 -0
  95. package/dist/src/commands/catalog-publish.js +374 -0
  96. package/dist/src/commands/catalog-publish.js.map +1 -0
  97. package/dist/src/commands/catalog-source.d.ts +111 -0
  98. package/dist/src/commands/catalog-source.js +266 -0
  99. package/dist/src/commands/catalog-source.js.map +1 -0
  100. package/dist/src/commands/console.d.ts +3 -0
  101. package/dist/src/commands/console.js +44 -0
  102. package/dist/src/commands/console.js.map +1 -0
  103. package/dist/src/commands/dependency-operation-plan.d.ts +28 -0
  104. package/dist/src/commands/dependency-operation-plan.js +15 -0
  105. package/dist/src/commands/dependency-operation-plan.js.map +1 -0
  106. package/dist/src/commands/init.d.ts +31 -0
  107. package/dist/src/commands/init.js +63 -0
  108. package/dist/src/commands/init.js.map +1 -0
  109. package/dist/src/commands/options.d.ts +68 -0
  110. package/dist/src/commands/options.js +146 -0
  111. package/dist/src/commands/options.js.map +1 -0
  112. package/dist/src/commands/rebuild-command.d.ts +77 -0
  113. package/dist/src/commands/rebuild-command.js +1681 -0
  114. package/dist/src/commands/rebuild-command.js.map +1 -0
  115. package/dist/src/commands/rebuild-integration.d.ts +94 -0
  116. package/dist/src/commands/rebuild-integration.js +3289 -0
  117. package/dist/src/commands/rebuild-integration.js.map +1 -0
  118. package/dist/src/commands/rebuild-operations.d.ts +110 -0
  119. package/dist/src/commands/rebuild-operations.js +791 -0
  120. package/dist/src/commands/rebuild-operations.js.map +1 -0
  121. package/dist/src/commands/review-publication.d.ts +99 -0
  122. package/dist/src/commands/review-publication.js +904 -0
  123. package/dist/src/commands/review-publication.js.map +1 -0
  124. package/dist/src/commands/runtime.d.ts +176 -0
  125. package/dist/src/commands/runtime.js +746 -0
  126. package/dist/src/commands/runtime.js.map +1 -0
  127. package/dist/src/commands/status-v4.d.ts +102 -0
  128. package/dist/src/commands/status-v4.js +844 -0
  129. package/dist/src/commands/status-v4.js.map +1 -0
  130. package/dist/src/commands/status.d.ts +93 -0
  131. package/dist/src/commands/status.js +442 -0
  132. package/dist/src/commands/status.js.map +1 -0
  133. package/dist/src/commands/wizard.d.ts +57 -0
  134. package/dist/src/commands/wizard.js +58 -0
  135. package/dist/src/commands/wizard.js.map +1 -0
  136. package/dist/src/commands/write-commands.d.ts +7 -0
  137. package/dist/src/commands/write-commands.js +167 -0
  138. package/dist/src/commands/write-commands.js.map +1 -0
  139. package/dist/src/constants.d.ts +25 -0
  140. package/dist/src/constants.js +26 -0
  141. package/dist/src/constants.js.map +1 -0
  142. package/dist/src/generators/agents.d.ts +3 -0
  143. package/dist/src/generators/agents.js +46 -0
  144. package/dist/src/generators/agents.js.map +1 -0
  145. package/dist/src/generators/hooks.d.ts +15 -0
  146. package/dist/src/generators/hooks.js +76 -0
  147. package/dist/src/generators/hooks.js.map +1 -0
  148. package/dist/src/generators/instructions.d.ts +13 -0
  149. package/dist/src/generators/instructions.js +66 -0
  150. package/dist/src/generators/instructions.js.map +1 -0
  151. package/dist/src/generators/local-plugin.d.ts +53 -0
  152. package/dist/src/generators/local-plugin.js +1268 -0
  153. package/dist/src/generators/local-plugin.js.map +1 -0
  154. package/dist/src/generators/permissions.d.ts +10 -0
  155. package/dist/src/generators/permissions.js +37 -0
  156. package/dist/src/generators/permissions.js.map +1 -0
  157. package/dist/src/generators/shared.d.ts +2 -0
  158. package/dist/src/generators/shared.js +15 -0
  159. package/dist/src/generators/shared.js.map +1 -0
  160. package/dist/src/index.d.ts +35 -0
  161. package/dist/src/index.js +2344 -0
  162. package/dist/src/index.js.map +1 -0
  163. package/dist/src/output/command-receipt.d.ts +90 -0
  164. package/dist/src/output/command-receipt.js +129 -0
  165. package/dist/src/output/command-receipt.js.map +1 -0
  166. package/dist/src/output/debug-log.d.ts +4 -0
  167. package/dist/src/output/debug-log.js +97 -0
  168. package/dist/src/output/debug-log.js.map +1 -0
  169. package/dist/src/output/equivalent-command.d.ts +9 -0
  170. package/dist/src/output/equivalent-command.js +39 -0
  171. package/dist/src/output/equivalent-command.js.map +1 -0
  172. package/dist/src/output/model.d.ts +117 -0
  173. package/dist/src/output/model.js +145 -0
  174. package/dist/src/output/model.js.map +1 -0
  175. package/dist/src/output/rebuild-progress.d.ts +21 -0
  176. package/dist/src/output/rebuild-progress.js +138 -0
  177. package/dist/src/output/rebuild-progress.js.map +1 -0
  178. package/dist/src/output/redact.d.ts +3 -0
  179. package/dist/src/output/redact.js +39 -0
  180. package/dist/src/output/redact.js.map +1 -0
  181. package/dist/src/output/reporter.d.ts +9 -0
  182. package/dist/src/output/reporter.js +133 -0
  183. package/dist/src/output/reporter.js.map +1 -0
  184. package/dist/src/portable/commands.d.ts +120 -0
  185. package/dist/src/portable/commands.js +506 -0
  186. package/dist/src/portable/commands.js.map +1 -0
  187. package/dist/src/portable/materializer.d.ts +50 -0
  188. package/dist/src/portable/materializer.js +408 -0
  189. package/dist/src/portable/materializer.js.map +1 -0
  190. package/dist/src/portable/skills-cli.d.ts +43 -0
  191. package/dist/src/portable/skills-cli.js +148 -0
  192. package/dist/src/portable/skills-cli.js.map +1 -0
  193. package/dist/src/tui/components.d.ts +32 -0
  194. package/dist/src/tui/components.js +42 -0
  195. package/dist/src/tui/components.js.map +1 -0
  196. package/dist/src/tui/console-app-v4.d.ts +20 -0
  197. package/dist/src/tui/console-app-v4.js +2613 -0
  198. package/dist/src/tui/console-app-v4.js.map +1 -0
  199. package/dist/src/tui/controller-runtime.d.ts +11 -0
  200. package/dist/src/tui/controller-runtime.js +902 -0
  201. package/dist/src/tui/controller-runtime.js.map +1 -0
  202. package/dist/src/tui/controller.d.ts +367 -0
  203. package/dist/src/tui/controller.js +1724 -0
  204. package/dist/src/tui/controller.js.map +1 -0
  205. package/dist/src/tui/index.d.ts +13 -0
  206. package/dist/src/tui/index.js +14 -0
  207. package/dist/src/tui/index.js.map +1 -0
  208. package/dist/src/tui/keys.d.ts +12 -0
  209. package/dist/src/tui/keys.js +22 -0
  210. package/dist/src/tui/keys.js.map +1 -0
  211. package/dist/src/tui/layout.d.ts +12 -0
  212. package/dist/src/tui/layout.js +19 -0
  213. package/dist/src/tui/layout.js.map +1 -0
  214. package/dist/src/tui/model.d.ts +279 -0
  215. package/dist/src/tui/model.js +652 -0
  216. package/dist/src/tui/model.js.map +1 -0
  217. package/dist/src/tui/prompt.d.ts +8 -0
  218. package/dist/src/tui/prompt.js +242 -0
  219. package/dist/src/tui/prompt.js.map +1 -0
  220. package/dist/src/tui/router.d.ts +153 -0
  221. package/dist/src/tui/router.js +102 -0
  222. package/dist/src/tui/router.js.map +1 -0
  223. package/dist/src/tui/runner.d.ts +11 -0
  224. package/dist/src/tui/runner.js +71 -0
  225. package/dist/src/tui/runner.js.map +1 -0
  226. package/dist/src/tui/theme.d.ts +18 -0
  227. package/dist/src/tui/theme.js +20 -0
  228. package/dist/src/tui/theme.js.map +1 -0
  229. package/dist/src/tui/views.d.ts +57 -0
  230. package/dist/src/tui/views.js +173 -0
  231. package/dist/src/tui/views.js.map +1 -0
  232. package/dist/src/tui/wizard.d.ts +11 -0
  233. package/dist/src/tui/wizard.js +321 -0
  234. package/dist/src/tui/wizard.js.map +1 -0
  235. package/dist/src/types.d.ts +313 -0
  236. package/dist/src/types.js +33 -0
  237. package/dist/src/types.js.map +1 -0
  238. package/dist/src/utils/active-marketplace-runtime-lock.d.ts +12 -0
  239. package/dist/src/utils/active-marketplace-runtime-lock.js +133 -0
  240. package/dist/src/utils/active-marketplace-runtime-lock.js.map +1 -0
  241. package/dist/src/utils/agent-version.d.ts +13 -0
  242. package/dist/src/utils/agent-version.js +172 -0
  243. package/dist/src/utils/agent-version.js.map +1 -0
  244. package/dist/src/utils/artifact-plan.d.ts +26 -0
  245. package/dist/src/utils/artifact-plan.js +444 -0
  246. package/dist/src/utils/artifact-plan.js.map +1 -0
  247. package/dist/src/utils/artifact-renderer.d.ts +124 -0
  248. package/dist/src/utils/artifact-renderer.js +442 -0
  249. package/dist/src/utils/artifact-renderer.js.map +1 -0
  250. package/dist/src/utils/artifact-sources.d.ts +8 -0
  251. package/dist/src/utils/artifact-sources.js +10 -0
  252. package/dist/src/utils/artifact-sources.js.map +1 -0
  253. package/dist/src/utils/aw-home-mutation-lock.d.ts +10 -0
  254. package/dist/src/utils/aw-home-mutation-lock.js +55 -0
  255. package/dist/src/utils/aw-home-mutation-lock.js.map +1 -0
  256. package/dist/src/utils/bundle-integrity.d.ts +3 -0
  257. package/dist/src/utils/bundle-integrity.js +88 -0
  258. package/dist/src/utils/bundle-integrity.js.map +1 -0
  259. package/dist/src/utils/bundle-layout.d.ts +4 -0
  260. package/dist/src/utils/bundle-layout.js +546 -0
  261. package/dist/src/utils/bundle-layout.js.map +1 -0
  262. package/dist/src/utils/catalog-digests.d.ts +8 -0
  263. package/dist/src/utils/catalog-digests.js +108 -0
  264. package/dist/src/utils/catalog-digests.js.map +1 -0
  265. package/dist/src/utils/catalog-manifest-v3.d.ts +2 -0
  266. package/dist/src/utils/catalog-manifest-v3.js +3 -0
  267. package/dist/src/utils/catalog-manifest-v3.js.map +1 -0
  268. package/dist/src/utils/catalog-manifest-v4.d.ts +5 -0
  269. package/dist/src/utils/catalog-manifest-v4.js +106 -0
  270. package/dist/src/utils/catalog-manifest-v4.js.map +1 -0
  271. package/dist/src/utils/catalog-public-error.d.ts +15 -0
  272. package/dist/src/utils/catalog-public-error.js +84 -0
  273. package/dist/src/utils/catalog-public-error.js.map +1 -0
  274. package/dist/src/utils/catalog-runtime-projection.d.ts +36 -0
  275. package/dist/src/utils/catalog-runtime-projection.js +172 -0
  276. package/dist/src/utils/catalog-runtime-projection.js.map +1 -0
  277. package/dist/src/utils/catalog-snapshot.d.ts +8 -0
  278. package/dist/src/utils/catalog-snapshot.js +12 -0
  279. package/dist/src/utils/catalog-snapshot.js.map +1 -0
  280. package/dist/src/utils/catalog-source-cache.d.ts +61 -0
  281. package/dist/src/utils/catalog-source-cache.js +276 -0
  282. package/dist/src/utils/catalog-source-cache.js.map +1 -0
  283. package/dist/src/utils/catalog-source-identity.d.ts +4 -0
  284. package/dist/src/utils/catalog-source-identity.js +118 -0
  285. package/dist/src/utils/catalog-source-identity.js.map +1 -0
  286. package/dist/src/utils/catalog-source-presentation.d.ts +1 -0
  287. package/dist/src/utils/catalog-source-presentation.js +32 -0
  288. package/dist/src/utils/catalog-source-presentation.js.map +1 -0
  289. package/dist/src/utils/catalog-source-references.d.ts +65 -0
  290. package/dist/src/utils/catalog-source-references.js +1418 -0
  291. package/dist/src/utils/catalog-source-references.js.map +1 -0
  292. package/dist/src/utils/catalog-sources.d.ts +39 -0
  293. package/dist/src/utils/catalog-sources.js +293 -0
  294. package/dist/src/utils/catalog-sources.js.map +1 -0
  295. package/dist/src/utils/codex-config.d.ts +124 -0
  296. package/dist/src/utils/codex-config.js +1011 -0
  297. package/dist/src/utils/codex-config.js.map +1 -0
  298. package/dist/src/utils/codex-project-surface.d.ts +3 -0
  299. package/dist/src/utils/codex-project-surface.js +49 -0
  300. package/dist/src/utils/codex-project-surface.js.map +1 -0
  301. package/dist/src/utils/codex-roles.d.ts +71 -0
  302. package/dist/src/utils/codex-roles.js +257 -0
  303. package/dist/src/utils/codex-roles.js.map +1 -0
  304. package/dist/src/utils/codex-skill-staging.d.ts +9 -0
  305. package/dist/src/utils/codex-skill-staging.js +8 -0
  306. package/dist/src/utils/codex-skill-staging.js.map +1 -0
  307. package/dist/src/utils/config-value.d.ts +3 -0
  308. package/dist/src/utils/config-value.js +23 -0
  309. package/dist/src/utils/config-value.js.map +1 -0
  310. package/dist/src/utils/dynamic-skill-tree.d.ts +32 -0
  311. package/dist/src/utils/dynamic-skill-tree.js +436 -0
  312. package/dist/src/utils/dynamic-skill-tree.js.map +1 -0
  313. package/dist/src/utils/file-rules.d.ts +1 -0
  314. package/dist/src/utils/file-rules.js +2 -0
  315. package/dist/src/utils/file-rules.js.map +1 -0
  316. package/dist/src/utils/git-catalog-provider.d.ts +7 -0
  317. package/dist/src/utils/git-catalog-provider.js +510 -0
  318. package/dist/src/utils/git-catalog-provider.js.map +1 -0
  319. package/dist/src/utils/hooks-contract.d.ts +1 -0
  320. package/dist/src/utils/hooks-contract.js +2 -0
  321. package/dist/src/utils/hooks-contract.js.map +1 -0
  322. package/dist/src/utils/json.d.ts +4 -0
  323. package/dist/src/utils/json.js +29 -0
  324. package/dist/src/utils/json.js.map +1 -0
  325. package/dist/src/utils/lifecycle-active-store.d.ts +175 -0
  326. package/dist/src/utils/lifecycle-active-store.js +1276 -0
  327. package/dist/src/utils/lifecycle-active-store.js.map +1 -0
  328. package/dist/src/utils/local-marketplace.d.ts +41 -0
  329. package/dist/src/utils/local-marketplace.js +317 -0
  330. package/dist/src/utils/local-marketplace.js.map +1 -0
  331. package/dist/src/utils/manifest.d.ts +14 -0
  332. package/dist/src/utils/manifest.js +36 -0
  333. package/dist/src/utils/manifest.js.map +1 -0
  334. package/dist/src/utils/marketplace.d.ts +3 -0
  335. package/dist/src/utils/marketplace.js +76 -0
  336. package/dist/src/utils/marketplace.js.map +1 -0
  337. package/dist/src/utils/multi-source-catalog.d.ts +72 -0
  338. package/dist/src/utils/multi-source-catalog.js +402 -0
  339. package/dist/src/utils/multi-source-catalog.js.map +1 -0
  340. package/dist/src/utils/native-cli.d.ts +75 -0
  341. package/dist/src/utils/native-cli.js +435 -0
  342. package/dist/src/utils/native-cli.js.map +1 -0
  343. package/dist/src/utils/orphan-marketplace-cleanup.d.ts +18 -0
  344. package/dist/src/utils/orphan-marketplace-cleanup.js +202 -0
  345. package/dist/src/utils/orphan-marketplace-cleanup.js.map +1 -0
  346. package/dist/src/utils/ownership.d.ts +130 -0
  347. package/dist/src/utils/ownership.js +766 -0
  348. package/dist/src/utils/ownership.js.map +1 -0
  349. package/dist/src/utils/path-catalog-provider.d.ts +7 -0
  350. package/dist/src/utils/path-catalog-provider.js +87 -0
  351. package/dist/src/utils/path-catalog-provider.js.map +1 -0
  352. package/dist/src/utils/paths.d.ts +41 -0
  353. package/dist/src/utils/paths.js +138 -0
  354. package/dist/src/utils/paths.js.map +1 -0
  355. package/dist/src/utils/platform-entries.d.ts +1 -0
  356. package/dist/src/utils/platform-entries.js +2 -0
  357. package/dist/src/utils/platform-entries.js.map +1 -0
  358. package/dist/src/utils/platform-support.d.ts +1 -0
  359. package/dist/src/utils/platform-support.js +2 -0
  360. package/dist/src/utils/platform-support.js.map +1 -0
  361. package/dist/src/utils/plugin-authoring-capabilities.d.ts +23 -0
  362. package/dist/src/utils/plugin-authoring-capabilities.js +37 -0
  363. package/dist/src/utils/plugin-authoring-capabilities.js.map +1 -0
  364. package/dist/src/utils/plugin-authoring-capabilities.json +92 -0
  365. package/dist/src/utils/plugin-config-write.d.ts +107 -0
  366. package/dist/src/utils/plugin-config-write.js +565 -0
  367. package/dist/src/utils/plugin-config-write.js.map +1 -0
  368. package/dist/src/utils/plugin-config.d.ts +396 -0
  369. package/dist/src/utils/plugin-config.js +1898 -0
  370. package/dist/src/utils/plugin-config.js.map +1 -0
  371. package/dist/src/utils/plugin-dependencies.d.ts +12 -0
  372. package/dist/src/utils/plugin-dependencies.js +162 -0
  373. package/dist/src/utils/plugin-dependencies.js.map +1 -0
  374. package/dist/src/utils/plugin-release.d.ts +2 -0
  375. package/dist/src/utils/plugin-release.js +2 -0
  376. package/dist/src/utils/plugin-release.js.map +1 -0
  377. package/dist/src/utils/plugin-script-contract.d.ts +1 -0
  378. package/dist/src/utils/plugin-script-contract.js +2 -0
  379. package/dist/src/utils/plugin-script-contract.js.map +1 -0
  380. package/dist/src/utils/plugin-scripts.d.ts +172 -0
  381. package/dist/src/utils/plugin-scripts.js +585 -0
  382. package/dist/src/utils/plugin-scripts.js.map +1 -0
  383. package/dist/src/utils/process-lock.d.ts +47 -0
  384. package/dist/src/utils/process-lock.js +532 -0
  385. package/dist/src/utils/process-lock.js.map +1 -0
  386. package/dist/src/utils/process-tree.d.ts +2 -0
  387. package/dist/src/utils/process-tree.js +2 -0
  388. package/dist/src/utils/process-tree.js.map +1 -0
  389. package/dist/src/utils/project-boundary.d.ts +21 -0
  390. package/dist/src/utils/project-boundary.js +95 -0
  391. package/dist/src/utils/project-boundary.js.map +1 -0
  392. package/dist/src/utils/rendered-contract.d.ts +8 -0
  393. package/dist/src/utils/rendered-contract.js +134 -0
  394. package/dist/src/utils/rendered-contract.js.map +1 -0
  395. package/dist/src/utils/runtime-skill-closure.d.ts +13 -0
  396. package/dist/src/utils/runtime-skill-closure.js +863 -0
  397. package/dist/src/utils/runtime-skill-closure.js.map +1 -0
  398. package/dist/src/utils/skill-authoring.d.ts +1 -0
  399. package/dist/src/utils/skill-authoring.js +2 -0
  400. package/dist/src/utils/skill-authoring.js.map +1 -0
  401. package/dist/src/utils/skill-frontmatter-capabilities.d.ts +201 -0
  402. package/dist/src/utils/skill-frontmatter-capabilities.js +5 -0
  403. package/dist/src/utils/skill-frontmatter-capabilities.js.map +1 -0
  404. package/dist/src/utils/skill-frontmatter-capabilities.json +200 -0
  405. package/dist/src/utils/skill-validation.d.ts +37 -0
  406. package/dist/src/utils/skill-validation.js +326 -0
  407. package/dist/src/utils/skill-validation.js.map +1 -0
  408. package/dist/src/utils/slash-commands.d.ts +1 -0
  409. package/dist/src/utils/slash-commands.js +2 -0
  410. package/dist/src/utils/slash-commands.js.map +1 -0
  411. package/dist/src/utils/state-paths.d.ts +13 -0
  412. package/dist/src/utils/state-paths.js +129 -0
  413. package/dist/src/utils/state-paths.js.map +1 -0
  414. package/dist/src/utils/target-eligibility.d.ts +7 -0
  415. package/dist/src/utils/target-eligibility.js +26 -0
  416. package/dist/src/utils/target-eligibility.js.map +1 -0
  417. package/dist/src/utils/target-order.d.ts +7 -0
  418. package/dist/src/utils/target-order.js +10 -0
  419. package/dist/src/utils/target-order.js.map +1 -0
  420. package/dist/src/utils/template-engine.d.ts +1 -0
  421. package/dist/src/utils/template-engine.js +2 -0
  422. package/dist/src/utils/template-engine.js.map +1 -0
  423. package/dist/src/utils/test-path-fence.d.ts +12 -0
  424. package/dist/src/utils/test-path-fence.js +31 -0
  425. package/dist/src/utils/test-path-fence.js.map +1 -0
  426. package/dist/vitest.config.d.ts +2 -0
  427. package/dist/vitest.config.js +16 -0
  428. package/dist/vitest.config.js.map +1 -0
  429. package/package.json +61 -0
@@ -0,0 +1,326 @@
1
+ import path from 'node:path';
2
+ import fs from 'fs-extra';
3
+ import YAML from 'yaml';
4
+ import { validateSkillFrontmatterCapabilities, } from './skill-frontmatter-capabilities.js';
5
+ const SKILL_NAME_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
6
+ const MAX_SKILL_NAME_LENGTH = 64;
7
+ const MAX_SKILL_DESCRIPTION_LENGTH = 1024;
8
+ const MAX_SKILL_COMPATIBILITY_LENGTH = 500;
9
+ const MAX_SKILL_SHORT_DESCRIPTION_LENGTH = 1024;
10
+ const MAX_SKILL_LINES = 500;
11
+ const MAX_OPENAI_INTERFACE_NAME_LENGTH = 64;
12
+ const MIN_OPENAI_SHORT_DESCRIPTION_LENGTH = 25;
13
+ const MAX_OPENAI_SHORT_DESCRIPTION_LENGTH = 64;
14
+ const MAX_OPENAI_DEFAULT_PROMPT_LENGTH = 1024;
15
+ const MAX_OPENAI_DEPENDENCY_LENGTH = 1024;
16
+ const CODEX_PRODUCTS = new Set(['atlas', 'chatgpt', 'codex']);
17
+ const CODEX_TRANSPORTS = new Set(['stdio', 'streamable_http']);
18
+ function isRecord(value) {
19
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
20
+ }
21
+ function nonEmptyString(value) {
22
+ return typeof value === 'string' && value.trim().length > 0;
23
+ }
24
+ function diagnostic(code, diagnosticPath, message) {
25
+ return { code, path: diagnosticPath, message };
26
+ }
27
+ function yamlErrorMessage(error) {
28
+ return error instanceof Error ? error.message : String(error);
29
+ }
30
+ function parseYamlDocument(content, sourcePath) {
31
+ const lineCounter = new YAML.LineCounter();
32
+ const document = YAML.parseDocument(content, {
33
+ lineCounter,
34
+ prettyErrors: false,
35
+ });
36
+ if (document.errors.length > 0) {
37
+ const first = document.errors[0];
38
+ const position = first.linePos?.[0];
39
+ const location = position ? `${sourcePath}:${position.line}:${position.col}` : sourcePath;
40
+ return {
41
+ value: null,
42
+ errors: [diagnostic('invalid-yaml', sourcePath, `${location}: ${first.message}`)],
43
+ };
44
+ }
45
+ return { value: document.toJSON(), errors: [] };
46
+ }
47
+ export function parseSkillFrontmatter(content, sourcePath = 'SKILL.md') {
48
+ const normalized = content.replace(/\r\n/g, '\n');
49
+ if (!normalized.startsWith('---\n')) {
50
+ return {
51
+ frontmatter: null,
52
+ errors: [diagnostic('missing-frontmatter', sourcePath, 'SKILL.md must start with YAML frontmatter.')],
53
+ };
54
+ }
55
+ const closingIndex = normalized.indexOf('\n---\n', 4);
56
+ const closingAtEnd = closingIndex === -1 && normalized.endsWith('\n---');
57
+ if (closingIndex === -1 && !closingAtEnd) {
58
+ return {
59
+ frontmatter: null,
60
+ errors: [diagnostic('unclosed-frontmatter', sourcePath, 'SKILL.md YAML frontmatter is not closed.')],
61
+ };
62
+ }
63
+ const yamlEnd = closingAtEnd ? normalized.length - '\n---'.length : closingIndex;
64
+ const parsed = parseYamlDocument(normalized.slice(4, yamlEnd), sourcePath);
65
+ if (parsed.errors.length > 0)
66
+ return { frontmatter: null, errors: parsed.errors };
67
+ if (!isRecord(parsed.value)) {
68
+ return {
69
+ frontmatter: null,
70
+ errors: [diagnostic('frontmatter-root', sourcePath, 'SKILL.md frontmatter root must be an object.')],
71
+ };
72
+ }
73
+ return { frontmatter: parsed.value, errors: [] };
74
+ }
75
+ function validateBoundedString(value, fieldPath, options) {
76
+ if (value === undefined && !options.required)
77
+ return [];
78
+ if (!nonEmptyString(value)) {
79
+ return [diagnostic('invalid-string', fieldPath, `${fieldPath} must be a non-empty string.`)];
80
+ }
81
+ const length = Array.from(value.trim()).length;
82
+ if (options.minLength !== undefined && length < options.minLength) {
83
+ return [diagnostic('string-too-short', fieldPath, `${fieldPath} must be at least ${options.minLength} characters.`)];
84
+ }
85
+ if (options.maxLength !== undefined && length > options.maxLength) {
86
+ return [diagnostic('string-too-long', fieldPath, `${fieldPath} must be at most ${options.maxLength} characters.`)];
87
+ }
88
+ return [];
89
+ }
90
+ export function validateSkillFrontmatter(frontmatter, options) {
91
+ const sourcePath = options.sourcePath ?? 'SKILL.md';
92
+ const errors = validateSkillFrontmatterCapabilities(frontmatter, options.profile)
93
+ .map((entry) => diagnostic(entry.code, `${sourcePath}#${entry.field}`, entry.message));
94
+ if (nonEmptyString(frontmatter.name)) {
95
+ errors.push(...validateBoundedString(frontmatter.name, `${sourcePath}#name`, {
96
+ maxLength: MAX_SKILL_NAME_LENGTH,
97
+ }));
98
+ if (!SKILL_NAME_PATTERN.test(frontmatter.name)) {
99
+ errors.push(diagnostic('invalid-skill-name', `${sourcePath}#name`, 'frontmatter.name must use ASCII lowercase hyphen-case.'));
100
+ }
101
+ else if (frontmatter.name !== options.expectedName) {
102
+ errors.push(diagnostic('name-directory-mismatch', `${sourcePath}#name`, `frontmatter.name ${JSON.stringify(frontmatter.name)} must match directory ${JSON.stringify(options.expectedName)}.`));
103
+ }
104
+ }
105
+ if (nonEmptyString(frontmatter.description)) {
106
+ errors.push(...validateBoundedString(frontmatter.description, `${sourcePath}#description`, {
107
+ maxLength: MAX_SKILL_DESCRIPTION_LENGTH,
108
+ }));
109
+ }
110
+ if (nonEmptyString(frontmatter.license)) {
111
+ errors.push(...validateBoundedString(frontmatter.license, `${sourcePath}#license`, {}));
112
+ }
113
+ if (nonEmptyString(frontmatter.compatibility)) {
114
+ errors.push(...validateBoundedString(frontmatter.compatibility, `${sourcePath}#compatibility`, {
115
+ maxLength: MAX_SKILL_COMPATIBILITY_LENGTH,
116
+ }));
117
+ }
118
+ if (isRecord(frontmatter.metadata)) {
119
+ if (options.profile !== 'claude-current') {
120
+ for (const [key, value] of Object.entries(frontmatter.metadata)) {
121
+ if (key !== 'short-description' && typeof value !== 'string') {
122
+ errors.push(diagnostic('known-field-invalid-type-value', `${sourcePath}#metadata.${key}`, `metadata field ${JSON.stringify(key)} must be a string in profile ${JSON.stringify(options.profile)}.`));
123
+ }
124
+ }
125
+ }
126
+ const shortDescription = frontmatter.metadata['short-description'];
127
+ if (shortDescription !== undefined) {
128
+ if (!nonEmptyString(shortDescription)) {
129
+ errors.push(diagnostic('known-field-invalid-type-value', `${sourcePath}#metadata.short-description`, 'metadata.short-description must be a non-empty string.'));
130
+ }
131
+ else {
132
+ errors.push(...validateBoundedString(shortDescription, `${sourcePath}#metadata.short-description`, { maxLength: MAX_SKILL_SHORT_DESCRIPTION_LENGTH }));
133
+ }
134
+ }
135
+ }
136
+ return errors;
137
+ }
138
+ function unknownKeys(value, allowed, fieldPath) {
139
+ const allowedSet = new Set(allowed);
140
+ return Object.keys(value)
141
+ .filter((key) => !allowedSet.has(key))
142
+ .map((key) => diagnostic('unknown-field', `${fieldPath}.${key}`, `${fieldPath} has unknown field ${JSON.stringify(key)}.`));
143
+ }
144
+ function validateCodexIcon(value, fieldPath) {
145
+ if (value === undefined)
146
+ return [];
147
+ if (!nonEmptyString(value)) {
148
+ return [diagnostic('invalid-string', fieldPath, `${fieldPath} must be a non-empty string.`)];
149
+ }
150
+ const normalized = path.posix.normalize(value.replace(/^\.\//, ''));
151
+ if (value.includes('\\') || path.posix.isAbsolute(value) || normalized === 'assets' || !normalized.startsWith('assets/')) {
152
+ return [diagnostic('invalid-asset-path', fieldPath, `${fieldPath} must be a relative path under assets/.`)];
153
+ }
154
+ return [];
155
+ }
156
+ export function validateCodexMetadata(content, expectedSkillName, sourcePath = 'agents/openai.yaml') {
157
+ const parsed = parseYamlDocument(content, sourcePath);
158
+ if (parsed.errors.length > 0)
159
+ return { errors: parsed.errors, assetPaths: [] };
160
+ if (!isRecord(parsed.value)) {
161
+ return {
162
+ errors: [diagnostic('metadata-root', sourcePath, 'agents/openai.yaml root must be an object.')],
163
+ assetPaths: [],
164
+ };
165
+ }
166
+ const root = parsed.value;
167
+ const errors = unknownKeys(root, ['interface', 'dependencies', 'policy'], sourcePath);
168
+ const assetPaths = [];
169
+ if (root.interface !== undefined) {
170
+ if (!isRecord(root.interface)) {
171
+ errors.push(diagnostic('invalid-object', `${sourcePath}.interface`, 'agents/openai.yaml interface must be an object.'));
172
+ }
173
+ else {
174
+ const fieldPath = `${sourcePath}.interface`;
175
+ errors.push(...unknownKeys(root.interface, [
176
+ 'display_name',
177
+ 'short_description',
178
+ 'icon_small',
179
+ 'icon_large',
180
+ 'brand_color',
181
+ 'default_prompt',
182
+ ], fieldPath));
183
+ errors.push(...validateBoundedString(root.interface.display_name, `${fieldPath}.display_name`, {
184
+ maxLength: MAX_OPENAI_INTERFACE_NAME_LENGTH,
185
+ }));
186
+ errors.push(...validateBoundedString(root.interface.short_description, `${fieldPath}.short_description`, {
187
+ minLength: MIN_OPENAI_SHORT_DESCRIPTION_LENGTH,
188
+ maxLength: MAX_OPENAI_SHORT_DESCRIPTION_LENGTH,
189
+ }));
190
+ errors.push(...validateBoundedString(root.interface.default_prompt, `${fieldPath}.default_prompt`, {
191
+ maxLength: MAX_OPENAI_DEFAULT_PROMPT_LENGTH,
192
+ }));
193
+ if (nonEmptyString(root.interface.default_prompt)
194
+ && !root.interface.default_prompt.includes(`$${expectedSkillName}`)) {
195
+ errors.push(diagnostic('default-prompt-skill-reference', `${fieldPath}.default_prompt`, `default_prompt must reference $${expectedSkillName}.`));
196
+ }
197
+ for (const key of ['icon_small', 'icon_large']) {
198
+ errors.push(...validateCodexIcon(root.interface[key], `${fieldPath}.${key}`));
199
+ if (nonEmptyString(root.interface[key])) {
200
+ const normalized = path.posix.normalize(root.interface[key].replace(/^\.\//, ''));
201
+ if (normalized.startsWith('assets/'))
202
+ assetPaths.push(normalized);
203
+ }
204
+ }
205
+ if (root.interface.brand_color !== undefined
206
+ && (!nonEmptyString(root.interface.brand_color) || !/^#[0-9a-f]{6}$/iu.test(root.interface.brand_color))) {
207
+ errors.push(diagnostic('invalid-brand-color', `${fieldPath}.brand_color`, 'brand_color must use #RRGGBB.'));
208
+ }
209
+ }
210
+ }
211
+ if (root.dependencies !== undefined) {
212
+ if (!isRecord(root.dependencies)) {
213
+ errors.push(diagnostic('invalid-object', `${sourcePath}.dependencies`, 'agents/openai.yaml dependencies must be an object.'));
214
+ }
215
+ else {
216
+ errors.push(...unknownKeys(root.dependencies, ['tools'], `${sourcePath}.dependencies`));
217
+ if (root.dependencies.tools !== undefined && !Array.isArray(root.dependencies.tools)) {
218
+ errors.push(diagnostic('invalid-array', `${sourcePath}.dependencies.tools`, 'dependencies.tools must be an array.'));
219
+ }
220
+ else if (Array.isArray(root.dependencies.tools)) {
221
+ for (const [index, tool] of root.dependencies.tools.entries()) {
222
+ const fieldPath = `${sourcePath}.dependencies.tools[${index}]`;
223
+ if (!isRecord(tool)) {
224
+ errors.push(diagnostic('invalid-object', fieldPath, `${fieldPath} must be an object.`));
225
+ continue;
226
+ }
227
+ errors.push(...unknownKeys(tool, ['type', 'value', 'description', 'transport', 'url', 'command'], fieldPath));
228
+ errors.push(...validateBoundedString(tool.type, `${fieldPath}.type`, { required: true, maxLength: 64 }));
229
+ errors.push(...validateBoundedString(tool.value, `${fieldPath}.value`, { required: true, maxLength: MAX_OPENAI_DEPENDENCY_LENGTH }));
230
+ for (const key of ['description', 'url', 'command']) {
231
+ errors.push(...validateBoundedString(tool[key], `${fieldPath}.${key}`, {
232
+ maxLength: MAX_OPENAI_DEPENDENCY_LENGTH,
233
+ }));
234
+ }
235
+ errors.push(...validateBoundedString(tool.transport, `${fieldPath}.transport`, { maxLength: 64 }));
236
+ if (nonEmptyString(tool.transport) && !CODEX_TRANSPORTS.has(tool.transport)) {
237
+ errors.push(diagnostic('invalid-transport', `${fieldPath}.transport`, 'transport must be "streamable_http" or "stdio".'));
238
+ }
239
+ }
240
+ }
241
+ }
242
+ }
243
+ if (!isRecord(root.policy)) {
244
+ errors.push(diagnostic('missing-policy', `${sourcePath}.policy`, 'agents/openai.yaml policy must be an object.'));
245
+ }
246
+ else {
247
+ const fieldPath = `${sourcePath}.policy`;
248
+ errors.push(...unknownKeys(root.policy, ['allow_implicit_invocation', 'products'], fieldPath));
249
+ if (typeof root.policy.allow_implicit_invocation !== 'boolean') {
250
+ errors.push(diagnostic('invalid-invocation-policy', `${fieldPath}.allow_implicit_invocation`, 'policy.allow_implicit_invocation must be a boolean.'));
251
+ }
252
+ if (root.policy.products !== undefined) {
253
+ if (!Array.isArray(root.policy.products)) {
254
+ errors.push(diagnostic('invalid-array', `${fieldPath}.products`, 'policy.products must be an array.'));
255
+ }
256
+ else {
257
+ for (const [index, product] of root.policy.products.entries()) {
258
+ if (!nonEmptyString(product) || !CODEX_PRODUCTS.has(product.toLowerCase())) {
259
+ errors.push(diagnostic('invalid-product', `${fieldPath}.products[${index}]`, 'policy.products entries must be codex, chatgpt, atlas, or uppercase aliases.'));
260
+ }
261
+ }
262
+ }
263
+ }
264
+ }
265
+ return { errors, assetPaths };
266
+ }
267
+ export async function validateSkillDirectory(options) {
268
+ const skillDirectory = path.resolve(options.skillDirectory);
269
+ const errors = [];
270
+ const warnings = [];
271
+ const rootStats = await fs.lstat(skillDirectory).catch(() => null);
272
+ if (!rootStats || rootStats.isSymbolicLink() || !rootStats.isDirectory()) {
273
+ errors.push(diagnostic('invalid-skill-directory', skillDirectory, 'Skill directory must be a real directory.'));
274
+ }
275
+ else {
276
+ const skillPath = path.join(skillDirectory, 'SKILL.md');
277
+ const skillContent = await fs.readFile(skillPath, 'utf8').catch((error) => {
278
+ errors.push(diagnostic('missing-skill-file', 'SKILL.md', `Cannot read SKILL.md: ${yamlErrorMessage(error)}`));
279
+ return null;
280
+ });
281
+ if (skillContent !== null) {
282
+ const lineCount = skillContent.replace(/\r\n/g, '\n').split('\n').length;
283
+ if (lineCount >= MAX_SKILL_LINES) {
284
+ warnings.push(diagnostic('skill-file-length', 'SKILL.md', `SKILL.md has ${lineCount} lines; Agent Skills recommends fewer than ${MAX_SKILL_LINES}.`));
285
+ }
286
+ const parsed = parseSkillFrontmatter(skillContent);
287
+ errors.push(...parsed.errors);
288
+ if (parsed.frontmatter) {
289
+ errors.push(...validateSkillFrontmatter(parsed.frontmatter, {
290
+ profile: options.frontmatterProfile,
291
+ expectedName: path.basename(skillDirectory),
292
+ }));
293
+ }
294
+ }
295
+ if (options.codexMetadata !== 'ignore') {
296
+ const openAiPath = path.join(skillDirectory, 'agents', 'openai.yaml');
297
+ const openAiContent = await fs.readFile(openAiPath, 'utf8').catch(() => null);
298
+ if (openAiContent === null) {
299
+ if (options.codexMetadata === 'required') {
300
+ errors.push(diagnostic('missing-codex-metadata', 'agents/openai.yaml', 'Codex metadata is required but agents/openai.yaml is missing.'));
301
+ }
302
+ }
303
+ else {
304
+ const validation = validateCodexMetadata(openAiContent, path.basename(skillDirectory));
305
+ errors.push(...validation.errors);
306
+ for (const assetPath of validation.assetPaths) {
307
+ const assetStats = await fs.lstat(path.join(skillDirectory, ...assetPath.split('/'))).catch(() => null);
308
+ if (!assetStats?.isFile() || assetStats.isSymbolicLink()) {
309
+ errors.push(diagnostic('missing-codex-asset', `agents/openai.yaml#${assetPath}`, `Codex metadata references missing regular file ${JSON.stringify(assetPath)}.`));
310
+ }
311
+ }
312
+ }
313
+ }
314
+ }
315
+ return {
316
+ schemaVersion: 1,
317
+ command: 'skill:validate',
318
+ ok: errors.length === 0,
319
+ skillDirectory,
320
+ frontmatterProfile: options.frontmatterProfile,
321
+ codexMetadata: options.codexMetadata,
322
+ warnings,
323
+ errors,
324
+ };
325
+ }
326
+ //# sourceMappingURL=skill-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-validation.js","sourceRoot":"","sources":["../../../src/utils/skill-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from '@lesliechan721/aw-plugin-core/manifest';
@@ -0,0 +1,2 @@
1
+ export * from '@lesliechan721/aw-plugin-core/manifest';
2
+ //# sourceMappingURL=slash-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../../src/utils/slash-commands.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare function getClaudeHome(env?: NodeJS.ProcessEnv): string;
2
+ export declare function getCodexHome(env?: NodeJS.ProcessEnv): string;
3
+ export declare function resolveAwHome(env?: NodeJS.ProcessEnv): string;
4
+ export declare function canonicalizePathThroughExistingAncestorSync(inputPath: string): string;
5
+ export declare function canonicalizePathThroughExistingAncestor(inputPath: string): Promise<string>;
6
+ export declare function ensureRegularDirectoryPath(inputPath: string, label: string): Promise<void>;
7
+ export declare function resolveAwHomeCanonical(env?: NodeJS.ProcessEnv): Promise<string>;
8
+ export declare function resolveRepoRootSync(cwd: string): string;
9
+ export declare function resolveRepoRoot(cwd: string): Promise<string>;
10
+ export declare function createProjectLocationKey(projectKey: string): string;
11
+ export declare function resolveCanonicalRepoProjectKey(cwd: string): Promise<string>;
12
+ export declare function resolveClaudeProjectKey(cwd: string): Promise<string>;
13
+ export declare function resolveCodexProjectKey(cwd: string): Promise<string>;
@@ -0,0 +1,129 @@
1
+ import crypto from 'node:crypto';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import fs from 'fs-extra';
5
+ import { assertTestWritablePath } from './test-path-fence.js';
6
+ function assertWritableHomePathForTests(targetPath, source, recommendedFix) {
7
+ return assertTestWritablePath(targetPath, source, recommendedFix);
8
+ }
9
+ export function getClaudeHome(env = process.env) {
10
+ const home = env.AW_CLAUDE_HOME || path.join(os.homedir(), '.claude');
11
+ return assertWritableHomePathForTests(home, env.AW_CLAUDE_HOME ? 'AW_CLAUDE_HOME' : 'AW_CLAUDE_HOME fallback (os.homedir())', '用 createIsolatedTestEnv() 生成默认 AW_CLAUDE_HOME,或通过 registerWritableStateRoot() 登记显式覆盖的 Claude home。');
12
+ }
13
+ export function getCodexHome(env = process.env) {
14
+ const home = env.AW_CODEX_HOME || path.join(os.homedir(), '.codex');
15
+ return assertWritableHomePathForTests(home, env.AW_CODEX_HOME ? 'AW_CODEX_HOME' : 'AW_CODEX_HOME fallback (os.homedir())', '用 createIsolatedTestEnv() 生成默认 AW_CODEX_HOME,或通过 registerWritableStateRoot() 登记显式覆盖的 Codex home。');
16
+ }
17
+ export function resolveAwHome(env = process.env) {
18
+ const home = env.AW_HOME || path.join(os.homedir(), '.aw');
19
+ return assertWritableHomePathForTests(home, env.AW_HOME ? 'AW_HOME' : 'AW_HOME fallback (os.homedir())', '用 createIsolatedTestEnv() 生成默认 AW_HOME,或通过 registerWritableStateRoot() 登记显式覆盖的 AW home。');
20
+ }
21
+ export function canonicalizePathThroughExistingAncestorSync(inputPath) {
22
+ const resolved = path.resolve(inputPath);
23
+ let current = resolved;
24
+ const missingSegments = [];
25
+ while (true) {
26
+ try {
27
+ return path.join(fs.realpathSync(current), ...missingSegments);
28
+ }
29
+ catch (error) {
30
+ const code = error.code;
31
+ const parent = path.dirname(current);
32
+ if ((code !== 'ENOENT' && code !== 'ENOTDIR') || parent === current)
33
+ throw error;
34
+ missingSegments.unshift(path.basename(current));
35
+ current = parent;
36
+ }
37
+ }
38
+ }
39
+ export async function canonicalizePathThroughExistingAncestor(inputPath) {
40
+ const resolved = path.resolve(inputPath);
41
+ let current = resolved;
42
+ const missingSegments = [];
43
+ while (true) {
44
+ try {
45
+ return path.join(await fs.realpath(current), ...missingSegments);
46
+ }
47
+ catch (error) {
48
+ const code = error.code;
49
+ const parent = path.dirname(current);
50
+ if ((code !== 'ENOENT' && code !== 'ENOTDIR') || parent === current)
51
+ throw error;
52
+ missingSegments.unshift(path.basename(current));
53
+ current = parent;
54
+ }
55
+ }
56
+ }
57
+ export async function ensureRegularDirectoryPath(inputPath, label) {
58
+ const resolved = path.resolve(inputPath);
59
+ const root = path.parse(resolved).root;
60
+ let current = root;
61
+ for (const segment of path.relative(root, resolved).split(path.sep).filter(Boolean)) {
62
+ current = path.join(current, segment);
63
+ let stat = await fs.lstat(current).catch((error) => {
64
+ if (error.code === 'ENOENT')
65
+ return null;
66
+ throw error;
67
+ });
68
+ if (!stat) {
69
+ try {
70
+ await fs.mkdir(current);
71
+ }
72
+ catch (error) {
73
+ if (error.code !== 'EEXIST')
74
+ throw error;
75
+ }
76
+ stat = await fs.lstat(current);
77
+ }
78
+ if (!stat.isDirectory() || stat.isSymbolicLink()) {
79
+ throw new Error(`${label} must be a regular directory path: ${current}`);
80
+ }
81
+ }
82
+ }
83
+ export async function resolveAwHomeCanonical(env = process.env) {
84
+ return canonicalizePathThroughExistingAncestor(resolveAwHome(env));
85
+ }
86
+ export function resolveRepoRootSync(cwd) {
87
+ let currentDir = path.resolve(cwd);
88
+ while (true) {
89
+ if (fs.pathExistsSync(path.join(currentDir, '.git'))
90
+ || fs.pathExistsSync(path.join(currentDir, 'pnpm-workspace.yaml'))) {
91
+ return currentDir;
92
+ }
93
+ const parentDir = path.dirname(currentDir);
94
+ if (parentDir === currentDir) {
95
+ return path.resolve(cwd);
96
+ }
97
+ currentDir = parentDir;
98
+ }
99
+ }
100
+ export async function resolveRepoRoot(cwd) {
101
+ return resolveRepoRootSync(cwd);
102
+ }
103
+ export function createProjectLocationKey(projectKey) {
104
+ const readable = path.basename(projectKey)
105
+ .replace(/[^A-Za-z0-9._-]+/g, '-')
106
+ .replace(/^-+|-+$/g, '')
107
+ .slice(0, 32);
108
+ const digest = crypto.createHash('sha256').update(projectKey).digest('hex').slice(0, 24);
109
+ return `project-${readable || 'root'}-${digest}`;
110
+ }
111
+ export async function resolveCanonicalRepoProjectKey(cwd) {
112
+ const repoRoot = await resolveRepoRoot(cwd);
113
+ try {
114
+ return await fs.realpath(repoRoot);
115
+ }
116
+ catch (error) {
117
+ const code = error.code;
118
+ if (code !== 'ENOENT' && code !== 'ENOTDIR')
119
+ throw error;
120
+ return path.resolve(repoRoot);
121
+ }
122
+ }
123
+ export async function resolveClaudeProjectKey(cwd) {
124
+ return canonicalizePathThroughExistingAncestor(cwd);
125
+ }
126
+ export async function resolveCodexProjectKey(cwd) {
127
+ return canonicalizePathThroughExistingAncestor(await resolveRepoRoot(cwd));
128
+ }
129
+ //# sourceMappingURL=state-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-paths.js","sourceRoot":"","sources":["../../../src/utils/state-paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { StatusV4Target } from '../commands/status-v4.js';
2
+ import type { CommandWizardCommand, CommandWizardPluginCandidate, CommandWizardSelection } from '../commands/wizard.js';
3
+ export declare function targetCanBeUninstalled(state: StatusV4Target['state']): boolean;
4
+ export declare function writeCandidateEligibility(command: CommandWizardCommand, candidate: CommandWizardPluginCandidate, selection: CommandWizardSelection): {
5
+ selectable: boolean;
6
+ reason?: string;
7
+ };
@@ -0,0 +1,26 @@
1
+ export function targetCanBeUninstalled(state) {
2
+ return state === 'present' || state === 'partial';
3
+ }
4
+ export function writeCandidateEligibility(command, candidate, selection) {
5
+ const targets = candidate.targets.filter((target) => target.target.scope === (selection.scope ?? 'user')
6
+ && (selection.platform === 'both' || target.target.platform === selection.platform));
7
+ if (targets.length === 0) {
8
+ return { selectable: false, reason: 'current bundle 不支持所选平台和范围' };
9
+ }
10
+ const selectable = targets.every((target) => ({
11
+ install: target.state === 'absent',
12
+ reinstall: target.state === 'present' || target.state === 'partial',
13
+ upgrade: target.state === 'present',
14
+ uninstall: targetCanBeUninstalled(target.state),
15
+ cleanup: target.state !== 'absent',
16
+ 'config:list': false,
17
+ 'config:get': false,
18
+ 'config:set': false,
19
+ 'config:unset': false,
20
+ 'config:reset': false,
21
+ })[command]);
22
+ return selectable
23
+ ? { selectable: true }
24
+ : { selectable: false, reason: `live status 不允许 ${command}` };
25
+ }
26
+ //# sourceMappingURL=target-eligibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-eligibility.js","sourceRoot":"","sources":["../../../src/utils/target-eligibility.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,sBAAsB,CAAC,KAA8B;IACnE,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,OAA6B,EAC7B,SAAuC,EACvC,SAAiC;IAEjC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAClD,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,MAAM,CAAC;WAChD,CAAC,SAAS,CAAC,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;IACpE,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5C,OAAO,EAAE,MAAM,CAAC,KAAK,KAAK,QAAQ;QAClC,SAAS,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QACnE,OAAO,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS;QACnC,SAAS,EAAE,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,OAAO,EAAE,MAAM,CAAC,KAAK,KAAK,QAAQ;QAClC,aAAa,EAAE,KAAK;QACpB,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACb,OAAO,UAAU;QACf,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;QACtB,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,OAAO,EAAE,EAAE,CAAC;AAClE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { PlatformName, Scope } from '../types.js';
2
+ export interface PlatformScopeTarget {
3
+ platform: PlatformName;
4
+ scope: Scope;
5
+ }
6
+ export declare function comparePlatformScopeTarget(left: PlatformScopeTarget, right: PlatformScopeTarget): number;
7
+ export declare function canonicalPlatformScopeTargets<T extends PlatformScopeTarget>(targets: readonly T[]): T[];
@@ -0,0 +1,10 @@
1
+ const PLATFORM_ORDER = ['claude', 'codex'];
2
+ const SCOPE_ORDER = ['project', 'user'];
3
+ export function comparePlatformScopeTarget(left, right) {
4
+ return PLATFORM_ORDER.indexOf(left.platform) - PLATFORM_ORDER.indexOf(right.platform)
5
+ || SCOPE_ORDER.indexOf(left.scope) - SCOPE_ORDER.indexOf(right.scope);
6
+ }
7
+ export function canonicalPlatformScopeTargets(targets) {
8
+ return [...targets].sort(comparePlatformScopeTarget);
9
+ }
10
+ //# sourceMappingURL=target-order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-order.js","sourceRoot":"","sources":["../../../src/utils/target-order.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAA4B,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpE,MAAM,WAAW,GAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAO1D,MAAM,UAAU,0BAA0B,CACxC,IAAyB,EACzB,KAA0B;IAE1B,OAAO,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;WAChF,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAgC,OAAqB;IAChG,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1 @@
1
+ export { renderTemplate } from '@lesliechan721/aw-plugin-core/manifest';
@@ -0,0 +1,2 @@
1
+ export { renderTemplate } from '@lesliechan721/aw-plugin-core/manifest';
2
+ //# sourceMappingURL=template-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../../src/utils/template-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export type TestPathFenceAccess = 'read' | 'write';
2
+ export interface TestPathFenceCheck {
3
+ path: string;
4
+ source: string;
5
+ access: TestPathFenceAccess;
6
+ recommendedFix?: string;
7
+ }
8
+ export type TestPathFenceHook = (check: TestPathFenceCheck) => void;
9
+ export declare function setTestPathFenceHookForTests(hook: TestPathFenceHook | null): void;
10
+ export declare function assertTestPathAccess(check: TestPathFenceCheck): string;
11
+ export declare function assertTestReadablePath(path: string, source: string, recommendedFix?: string): string;
12
+ export declare function assertTestWritablePath(path: string, source: string, recommendedFix?: string): string;