@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,61 @@
1
+ import type { CatalogSourceId, CliVersion, SourceIdentity } from '../types.js';
2
+ import { type CatalogSnapshotValidation } from './catalog-snapshot.js';
3
+ export interface CatalogSourceCacheMetadata {
4
+ schemaVersion: 2;
5
+ entryKey: string;
6
+ sourceId: CatalogSourceId;
7
+ sourceIdentity: SourceIdentity;
8
+ requestedRef: string;
9
+ resolvedCommit: string;
10
+ manifestDigest: string;
11
+ snapshotDigest: string;
12
+ minAwVersion: CliVersion;
13
+ validatedAt: string;
14
+ }
15
+ export interface CatalogSourceCacheEntry {
16
+ entryDir: string;
17
+ snapshotRoot: string;
18
+ metadata: CatalogSourceCacheMetadata;
19
+ validation: CatalogSnapshotValidation;
20
+ }
21
+ export interface CatalogSourceCacheLocation {
22
+ awHomeDir: string;
23
+ cacheRootDir: string;
24
+ rootDir: string;
25
+ currentDir: string;
26
+ lastGoodDir: string;
27
+ }
28
+ declare function resolveCatalogSourceCacheLocation(options: {
29
+ sourceId: CatalogSourceId;
30
+ sourceIdentity: SourceIdentity;
31
+ env?: NodeJS.ProcessEnv;
32
+ }): CatalogSourceCacheLocation;
33
+ declare function ensureCatalogSourceCacheLocation(location: CatalogSourceCacheLocation): Promise<void>;
34
+ declare function readCatalogSourceCache(options: {
35
+ location: CatalogSourceCacheLocation;
36
+ sourceId: CatalogSourceId;
37
+ sourceIdentity: SourceIdentity;
38
+ requestedRef: string;
39
+ cliVersion: CliVersion;
40
+ signal?: AbortSignal;
41
+ }): Promise<CatalogSourceCacheEntry | null>;
42
+ declare function publishCatalogSourceCacheEntry(options: {
43
+ location: CatalogSourceCacheLocation;
44
+ sourceId: CatalogSourceId;
45
+ sourceIdentity: SourceIdentity;
46
+ requestedRef: string;
47
+ cliVersion: CliVersion;
48
+ resolvedCommit: string;
49
+ snapshotRoot: string;
50
+ validation: CatalogSnapshotValidation;
51
+ signal?: AbortSignal;
52
+ }): Promise<CatalogSourceCacheEntry>;
53
+ export declare function cleanupLegacyCatalogSourceCache(env?: NodeJS.ProcessEnv): Promise<string[]>;
54
+ /** @internal Minimal cache bridge for catalog providers and cache behavior tests. */
55
+ export declare const catalogSourceCacheInternal: {
56
+ ensureCatalogSourceCacheLocation: typeof ensureCatalogSourceCacheLocation;
57
+ publishCatalogSourceCacheEntry: typeof publishCatalogSourceCacheEntry;
58
+ readCatalogSourceCache: typeof readCatalogSourceCache;
59
+ resolveCatalogSourceCacheLocation: typeof resolveCatalogSourceCacheLocation;
60
+ };
61
+ export {};
@@ -0,0 +1,276 @@
1
+ import crypto from 'node:crypto';
2
+ import path from 'node:path';
3
+ import fs from 'fs-extra';
4
+ import { compareStrictSemVer } from './manifest.js';
5
+ import { canonicalizePathThroughExistingAncestorSync, resolveAwHome } from './state-paths.js';
6
+ import { validateCatalogSnapshot } from './catalog-snapshot.js';
7
+ const SOURCE_ID_PATTERN = /^[a-z][a-z0-9-]{0,31}$/;
8
+ const SOURCE_IDENTITY_PATTERN = /^sha256:[0-9a-f]{64}$/;
9
+ const COMMIT_IDENTITY_PATTERN = /^(?:[0-9a-f]{40}|[0-9a-f]{64}|path:sha256:[0-9a-f]{64})$/;
10
+ function digestJson(value) {
11
+ return crypto.createHash('sha256').update(JSON.stringify(value)).digest('hex');
12
+ }
13
+ function throwIfAborted(signal) {
14
+ signal?.throwIfAborted();
15
+ }
16
+ function assertCacheIdentity(sourceId, sourceIdentity) {
17
+ if (!SOURCE_ID_PATTERN.test(sourceId) || !SOURCE_IDENTITY_PATTERN.test(sourceIdentity)) {
18
+ throw new Error('Invalid catalog source cache identity.');
19
+ }
20
+ }
21
+ function isStrictObject(value, keys) {
22
+ if (!value || typeof value !== 'object' || Array.isArray(value))
23
+ return false;
24
+ return Object.keys(value).sort().join('\0') === [...keys].sort().join('\0');
25
+ }
26
+ function parseMetadata(value) {
27
+ if (!isStrictObject(value, [
28
+ 'schemaVersion', 'entryKey', 'sourceId', 'sourceIdentity', 'requestedRef',
29
+ 'resolvedCommit', 'manifestDigest', 'snapshotDigest', 'minAwVersion', 'validatedAt',
30
+ ]))
31
+ return null;
32
+ if (value.schemaVersion !== 2
33
+ || typeof value.entryKey !== 'string' || !/^[0-9a-f]{64}$/.test(value.entryKey)
34
+ || typeof value.sourceId !== 'string' || !SOURCE_ID_PATTERN.test(value.sourceId)
35
+ || typeof value.sourceIdentity !== 'string' || !SOURCE_IDENTITY_PATTERN.test(value.sourceIdentity)
36
+ || typeof value.requestedRef !== 'string' || value.requestedRef.length === 0
37
+ || typeof value.resolvedCommit !== 'string' || !COMMIT_IDENTITY_PATTERN.test(value.resolvedCommit)
38
+ || typeof value.manifestDigest !== 'string' || !SOURCE_IDENTITY_PATTERN.test(value.manifestDigest)
39
+ || typeof value.snapshotDigest !== 'string' || !SOURCE_IDENTITY_PATTERN.test(value.snapshotDigest)
40
+ || typeof value.minAwVersion !== 'string'
41
+ || typeof value.validatedAt !== 'string' || Number.isNaN(Date.parse(value.validatedAt)))
42
+ return null;
43
+ return value;
44
+ }
45
+ function resolveCatalogSourceCacheLocation(options) {
46
+ assertCacheIdentity(options.sourceId, options.sourceIdentity);
47
+ const awHomeDir = canonicalizePathThroughExistingAncestorSync(resolveAwHome(options.env ?? process.env));
48
+ const cacheRootDir = path.join(awHomeDir, 'catalog-cache');
49
+ const rootDir = path.join(cacheRootDir, 'sources', options.sourceId);
50
+ return {
51
+ awHomeDir,
52
+ cacheRootDir,
53
+ rootDir,
54
+ currentDir: path.join(rootDir, 'current'),
55
+ lastGoodDir: path.join(rootDir, 'last-good'),
56
+ };
57
+ }
58
+ async function ensureRegularDirectory(directory) {
59
+ const stat = await fs.lstat(directory).catch((error) => {
60
+ if (error.code === 'ENOENT')
61
+ return null;
62
+ throw error;
63
+ });
64
+ if (stat) {
65
+ if (!stat.isDirectory() || stat.isSymbolicLink()) {
66
+ throw new Error(`Catalog source cache path must be a regular directory: ${directory}`);
67
+ }
68
+ return;
69
+ }
70
+ await fs.mkdir(directory).catch(async (error) => {
71
+ if (error.code !== 'EEXIST')
72
+ throw error;
73
+ const concurrent = await fs.lstat(directory);
74
+ if (!concurrent.isDirectory() || concurrent.isSymbolicLink())
75
+ throw error;
76
+ });
77
+ }
78
+ async function ensureCatalogSourceCacheLocation(location) {
79
+ for (const directory of [
80
+ location.awHomeDir, location.cacheRootDir, path.join(location.cacheRootDir, 'sources'), location.rootDir,
81
+ ])
82
+ await ensureRegularDirectory(directory);
83
+ }
84
+ async function readSnapshotAt(options) {
85
+ try {
86
+ throwIfAborted(options.signal);
87
+ const entryStat = await fs.lstat(options.entryDir);
88
+ if (!entryStat.isDirectory() || entryStat.isSymbolicLink())
89
+ return null;
90
+ const metadataPath = path.join(options.entryDir, 'metadata.json');
91
+ const snapshotRoot = path.join(options.entryDir, 'snapshot');
92
+ const metadataStat = await fs.lstat(metadataPath);
93
+ if (!metadataStat.isFile() || metadataStat.isSymbolicLink())
94
+ return null;
95
+ const metadata = parseMetadata(await fs.readJson(metadataPath));
96
+ if (!metadata || metadata.sourceId !== options.sourceId
97
+ || metadata.sourceIdentity !== options.sourceIdentity
98
+ || metadata.requestedRef !== options.requestedRef
99
+ || compareStrictSemVer(options.cliVersion, metadata.minAwVersion) < 0)
100
+ return null;
101
+ const expectedKey = digestJson({
102
+ sourceId: metadata.sourceId,
103
+ sourceIdentity: metadata.sourceIdentity,
104
+ requestedRef: metadata.requestedRef,
105
+ resolvedCommit: metadata.resolvedCommit,
106
+ manifestDigest: metadata.manifestDigest,
107
+ snapshotDigest: metadata.snapshotDigest,
108
+ minAwVersion: metadata.minAwVersion,
109
+ });
110
+ if (metadata.entryKey !== expectedKey)
111
+ return null;
112
+ const validation = await validateCatalogSnapshot(snapshotRoot);
113
+ if (validation.manifestDigest !== metadata.manifestDigest
114
+ || validation.snapshotDigest !== metadata.snapshotDigest
115
+ || validation.manifest.compatibility.aw.minVersion !== metadata.minAwVersion)
116
+ return null;
117
+ throwIfAborted(options.signal);
118
+ return { entryDir: options.entryDir, snapshotRoot, metadata, validation };
119
+ }
120
+ catch (error) {
121
+ if (error.code === 'ENOENT')
122
+ return null;
123
+ if (options.signal?.aborted)
124
+ throw error;
125
+ return null;
126
+ }
127
+ }
128
+ async function readCatalogSourceCache(options) {
129
+ assertCacheIdentity(options.sourceId, options.sourceIdentity);
130
+ const common = {
131
+ sourceId: options.sourceId, sourceIdentity: options.sourceIdentity,
132
+ requestedRef: options.requestedRef, cliVersion: options.cliVersion, signal: options.signal,
133
+ };
134
+ return await readSnapshotAt({ ...common, entryDir: options.location.currentDir })
135
+ ?? await readSnapshotAt({ ...common, entryDir: options.location.lastGoodDir });
136
+ }
137
+ async function publishCatalogSourceCacheEntry(options) {
138
+ assertCacheIdentity(options.sourceId, options.sourceIdentity);
139
+ if (options.requestedRef.length === 0 || !COMMIT_IDENTITY_PATTERN.test(options.resolvedCommit)) {
140
+ throw new Error('Invalid catalog source cache snapshot identity.');
141
+ }
142
+ await ensureCatalogSourceCacheLocation(options.location);
143
+ const candidateDir = path.join(options.location.rootDir, `.candidate-${crypto.randomUUID()}.tmp`);
144
+ const replacedLastGood = path.join(options.location.rootDir, `.last-good-${crypto.randomUUID()}.tmp`);
145
+ const replacedCurrent = path.join(options.location.rootDir, `.current-${crypto.randomUUID()}.tmp`);
146
+ const candidateSnapshotRoot = path.join(candidateDir, 'snapshot');
147
+ let currentMoved = false;
148
+ let oldLastGoodMoved = false;
149
+ let invalidCurrentMoved = false;
150
+ let candidateInstalled = false;
151
+ let committed = false;
152
+ try {
153
+ await fs.mkdir(candidateDir);
154
+ await fs.copy(options.snapshotRoot, candidateSnapshotRoot, { dereference: false, preserveTimestamps: true });
155
+ const validation = await validateCatalogSnapshot(candidateSnapshotRoot);
156
+ throwIfAborted(options.signal);
157
+ if (validation.manifestDigest !== options.validation.manifestDigest
158
+ || validation.snapshotDigest !== options.validation.snapshotDigest
159
+ || validation.manifest.compatibility.aw.minVersion !== options.validation.manifest.compatibility.aw.minVersion)
160
+ throw new Error('Catalog snapshot changed before cache publication.');
161
+ const identity = {
162
+ sourceId: options.sourceId, sourceIdentity: options.sourceIdentity,
163
+ requestedRef: options.requestedRef, resolvedCommit: options.resolvedCommit,
164
+ manifestDigest: validation.manifestDigest, snapshotDigest: validation.snapshotDigest,
165
+ minAwVersion: validation.manifest.compatibility.aw.minVersion,
166
+ };
167
+ const metadata = {
168
+ schemaVersion: 2, entryKey: digestJson(identity), ...identity, validatedAt: new Date().toISOString(),
169
+ };
170
+ await fs.writeJson(path.join(candidateDir, 'metadata.json'), metadata, { spaces: 2 });
171
+ throwIfAborted(options.signal);
172
+ const current = await readSnapshotAt({
173
+ entryDir: options.location.currentDir,
174
+ sourceId: options.sourceId,
175
+ sourceIdentity: options.sourceIdentity,
176
+ requestedRef: options.requestedRef,
177
+ cliVersion: options.cliVersion,
178
+ signal: options.signal,
179
+ });
180
+ if (current) {
181
+ if (await fs.pathExists(options.location.lastGoodDir)) {
182
+ await fs.rename(options.location.lastGoodDir, replacedLastGood);
183
+ oldLastGoodMoved = true;
184
+ }
185
+ await fs.rename(options.location.currentDir, options.location.lastGoodDir);
186
+ currentMoved = true;
187
+ }
188
+ else if (await fs.pathExists(options.location.currentDir)) {
189
+ await fs.rename(options.location.currentDir, replacedCurrent);
190
+ invalidCurrentMoved = true;
191
+ }
192
+ await fs.rename(candidateDir, options.location.currentDir);
193
+ candidateInstalled = true;
194
+ const published = await readSnapshotAt({
195
+ entryDir: options.location.currentDir,
196
+ sourceId: options.sourceId,
197
+ sourceIdentity: options.sourceIdentity,
198
+ requestedRef: options.requestedRef,
199
+ cliVersion: options.cliVersion,
200
+ signal: options.signal,
201
+ });
202
+ if (!published)
203
+ throw new Error('Published catalog source cache snapshot did not validate.');
204
+ committed = true;
205
+ return published;
206
+ }
207
+ catch (error) {
208
+ if (candidateInstalled) {
209
+ await fs.remove(options.location.currentDir).catch(() => undefined);
210
+ }
211
+ if (!await fs.pathExists(options.location.currentDir) && currentMoved) {
212
+ await fs.rename(options.location.lastGoodDir, options.location.currentDir).catch(() => undefined);
213
+ }
214
+ if (oldLastGoodMoved && !await fs.pathExists(options.location.lastGoodDir)) {
215
+ await fs.rename(replacedLastGood, options.location.lastGoodDir).catch(() => undefined);
216
+ }
217
+ if (!await fs.pathExists(options.location.currentDir) && invalidCurrentMoved) {
218
+ await fs.rename(replacedCurrent, options.location.currentDir).catch(() => undefined);
219
+ }
220
+ throw error;
221
+ }
222
+ finally {
223
+ await fs.remove(candidateDir).catch(() => undefined);
224
+ if (committed) {
225
+ await fs.remove(replacedLastGood).catch(() => undefined);
226
+ await fs.remove(replacedCurrent).catch(() => undefined);
227
+ }
228
+ }
229
+ }
230
+ export async function cleanupLegacyCatalogSourceCache(env = process.env) {
231
+ const cacheRoot = path.join(canonicalizePathThroughExistingAncestorSync(resolveAwHome(env)), 'catalog-cache');
232
+ const warnings = [];
233
+ const cacheRootStat = await fs.lstat(cacheRoot).catch((error) => {
234
+ if (error.code === 'ENOENT')
235
+ return null;
236
+ warnings.push('旧 Catalog cache 根检查失败。');
237
+ return undefined;
238
+ });
239
+ if (cacheRootStat === undefined || cacheRootStat === null)
240
+ return warnings;
241
+ if (!cacheRootStat.isDirectory() || cacheRootStat.isSymbolicLink()) {
242
+ warnings.push('旧 Catalog cache 根不是普通目录,已跳过清理。');
243
+ return warnings;
244
+ }
245
+ for (const name of ['entries', 'selectors', 'observations', 'locks', 'quarantine', 'observation-order.json']) {
246
+ try {
247
+ await fs.remove(path.join(cacheRoot, name));
248
+ }
249
+ catch {
250
+ warnings.push(`旧 Catalog cache 布局清理失败:${name}`);
251
+ }
252
+ }
253
+ const entries = await fs.readdir(cacheRoot, { withFileTypes: true }).catch(() => {
254
+ warnings.push('旧 Catalog cache 根读取失败。');
255
+ return [];
256
+ });
257
+ for (const entry of entries) {
258
+ if (entry.name === 'sources' || !SOURCE_ID_PATTERN.test(entry.name))
259
+ continue;
260
+ try {
261
+ await fs.remove(path.join(cacheRoot, entry.name));
262
+ }
263
+ catch {
264
+ warnings.push(`旧 Catalog cache 来源布局清理失败:${entry.name}`);
265
+ }
266
+ }
267
+ return warnings;
268
+ }
269
+ /** @internal Minimal cache bridge for catalog providers and cache behavior tests. */
270
+ export const catalogSourceCacheInternal = {
271
+ ensureCatalogSourceCacheLocation,
272
+ publishCatalogSourceCacheEntry,
273
+ readCatalogSourceCache,
274
+ resolveCatalogSourceCacheLocation,
275
+ };
276
+ //# sourceMappingURL=catalog-source-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-source-cache.js","sourceRoot":"","sources":["../../../src/utils/catalog-source-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CatalogSource, SourceIdentity } from '../types.js';
2
+ export declare function canonicalizeCatalogGitUrl(value: string): string;
3
+ export declare function canonicalizeCatalogPath(value: string, cwd: string): Promise<string>;
4
+ export declare function calculateCatalogSourceIdentity(source: CatalogSource): Promise<SourceIdentity>;
@@ -0,0 +1,118 @@
1
+ import crypto from 'node:crypto';
2
+ import path from 'node:path';
3
+ import { fileURLToPath, pathToFileURL } from 'node:url';
4
+ import fs from 'fs-extra';
5
+ import { CATALOG_SOURCE_IDENTITY_VERSION } from '../constants.js';
6
+ const SCP_GIT_URL_PATTERN = /^([^@/:\s]+)@([^/:\s]+):(.+)$/;
7
+ const ALLOWED_GIT_URL_PROTOCOLS = new Set(['file:', 'https:', 'ssh:']);
8
+ function normalizeGitPath(pathname) {
9
+ const normalized = pathname.replace(/\/+$/, '');
10
+ if (normalized === '' || normalized === '.') {
11
+ throw new Error('Invalid catalog Git URL: expected a repository path.');
12
+ }
13
+ return normalized;
14
+ }
15
+ export function canonicalizeCatalogGitUrl(value) {
16
+ if (typeof value !== 'string' || value.trim() === '' || value !== value.trim()) {
17
+ throw new Error('Invalid catalog Git URL: expected a non-empty canonical URL.');
18
+ }
19
+ const scpMatch = SCP_GIT_URL_PATTERN.exec(value);
20
+ if (scpMatch) {
21
+ const [, username, hostname, pathname] = scpMatch;
22
+ const hostUrl = new URL(`ssh://${hostname}/`);
23
+ const pathKind = pathname.startsWith('/') ? 'absolute' : 'relative';
24
+ return `scp-${pathKind}:${username}@${hostUrl.hostname.toLowerCase()}:${normalizeGitPath(pathname)}`;
25
+ }
26
+ if (path.isAbsolute(value)) {
27
+ const normalized = path.normalize(value).replace(/[\\/]+$/, '');
28
+ if (!normalized)
29
+ throw new Error('Invalid catalog Git path: expected a repository path.');
30
+ return normalized;
31
+ }
32
+ let url;
33
+ try {
34
+ url = new URL(value);
35
+ }
36
+ catch {
37
+ throw new Error('Invalid catalog Git URL: expected an absolute URL.');
38
+ }
39
+ if (!ALLOWED_GIT_URL_PROTOCOLS.has(url.protocol)) {
40
+ throw new Error(`Invalid catalog Git URL protocol "${url.protocol}".`);
41
+ }
42
+ if ((url.protocol !== 'file:' && !url.hostname)
43
+ || (url.protocol === 'file:' && url.hostname !== '')
44
+ || url.password
45
+ || (url.username && url.protocol !== 'ssh:')) {
46
+ throw new Error('Invalid catalog Git URL: embedded credentials are not allowed.');
47
+ }
48
+ if (url.search || url.hash) {
49
+ throw new Error('Invalid catalog Git URL: query strings and fragments are not allowed.');
50
+ }
51
+ if (url.protocol === 'https:' && url.username) {
52
+ throw new Error('Invalid catalog Git URL: embedded credentials are not allowed.');
53
+ }
54
+ if (url.protocol === 'file:') {
55
+ const filePath = fileURLToPath(url);
56
+ if (!path.isAbsolute(filePath))
57
+ throw new Error('Invalid catalog Git file URL: expected an absolute path.');
58
+ return pathToFileURL(normalizeGitPath(filePath)).href;
59
+ }
60
+ const username = url.username ? `${url.username}@` : '';
61
+ const port = url.port ? `:${url.port}` : '';
62
+ return `${url.protocol}//${username}${url.hostname.toLowerCase()}${port}${normalizeGitPath(url.pathname)}`;
63
+ }
64
+ function normalizeIdentitySubdir(subdir) {
65
+ if (subdir === undefined)
66
+ return null;
67
+ if (typeof subdir !== 'string' || subdir.trim() === '' || subdir.includes('\\')) {
68
+ throw new Error('Invalid catalog source subdir: expected a relative POSIX path.');
69
+ }
70
+ const normalized = path.posix.normalize(subdir);
71
+ if (path.posix.isAbsolute(subdir)
72
+ || normalized === '.'
73
+ || normalized === '..'
74
+ || normalized.startsWith('../')) {
75
+ throw new Error('Invalid catalog source subdir: path must stay inside the source.');
76
+ }
77
+ return normalized.replace(/^\.\//, '').replace(/\/$/, '');
78
+ }
79
+ async function realpathCatalogDirectory(value) {
80
+ const location = await fs.realpath(value);
81
+ const stat = await fs.stat(location);
82
+ if (!stat.isDirectory()) {
83
+ throw new Error('Invalid catalog path source: expected a directory.');
84
+ }
85
+ return location;
86
+ }
87
+ export async function canonicalizeCatalogPath(value, cwd) {
88
+ if (typeof value !== 'string' || value.trim() === '') {
89
+ throw new Error('Invalid catalog path source: expected a non-empty path.');
90
+ }
91
+ if (typeof cwd !== 'string' || cwd.trim() === '' || !path.isAbsolute(cwd)) {
92
+ throw new Error('Invalid catalog path source cwd: expected an absolute path.');
93
+ }
94
+ return realpathCatalogDirectory(path.resolve(cwd, value));
95
+ }
96
+ export async function calculateCatalogSourceIdentity(source) {
97
+ let location;
98
+ if (source.type === 'git') {
99
+ location = canonicalizeCatalogGitUrl(source.url);
100
+ }
101
+ else if (source.type === 'path') {
102
+ if (!path.isAbsolute(source.path)) {
103
+ throw new Error('Invalid catalog path source: expected a canonical absolute path.');
104
+ }
105
+ location = path.normalize(source.path);
106
+ }
107
+ else {
108
+ throw new Error('Invalid catalog source type: expected "git" or "path".');
109
+ }
110
+ const input = JSON.stringify({
111
+ version: CATALOG_SOURCE_IDENTITY_VERSION,
112
+ type: source.type,
113
+ location,
114
+ subdir: normalizeIdentitySubdir(source.type === 'git' ? source.subdir : undefined),
115
+ });
116
+ return `sha256:${crypto.createHash('sha256').update(input).digest('hex')}`;
117
+ }
118
+ //# sourceMappingURL=catalog-source-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-source-identity.js","sourceRoot":"","sources":["../../../src/utils/catalog-source-identity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function projectCatalogSourceLocation(value: string): string;
@@ -0,0 +1,32 @@
1
+ import path from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
3
+ const SCP_LOCATION = /^(?:[^@/\s]+@)?([^/:\s]+):(.+)$/u;
4
+ function privateLocationLabel(value) {
5
+ const basename = path.basename(value.replace(/[\\/]+$/u, ''));
6
+ return basename && basename !== path.parse(value).root
7
+ ? `已选择本地位置(${basename})`
8
+ : '已选择本地位置';
9
+ }
10
+ export function projectCatalogSourceLocation(value) {
11
+ if (path.isAbsolute(value))
12
+ return privateLocationLabel(value);
13
+ try {
14
+ const url = new URL(value);
15
+ if (url.protocol === 'file:')
16
+ return privateLocationLabel(fileURLToPath(url));
17
+ url.username = '';
18
+ url.password = '';
19
+ url.search = '';
20
+ url.hash = '';
21
+ return url.toString().replace(/\/$/u, '');
22
+ }
23
+ catch {
24
+ if (value.includes('://'))
25
+ return '已输入远程来源';
26
+ const scp = SCP_LOCATION.exec(value);
27
+ return scp
28
+ ? `ssh://${scp[1]}/${scp[2].split(/[?#]/u, 1)[0].replace(/^\/+|\/+$/gu, '')}`
29
+ : '已输入来源位置';
30
+ }
31
+ }
32
+ //# sourceMappingURL=catalog-source-presentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-source-presentation.js","sourceRoot":"","sources":["../../../src/utils/catalog-source-presentation.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,YAAY,GAAG,kCAAkC,CAAC;AAExD,SAAS,oBAAoB,CAAC,KAAa;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9D,OAAO,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI;QACpD,CAAC,CAAC,WAAW,QAAQ,GAAG;QACxB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAa;IACxD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,oBAAoB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;QAClB,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;QAClB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,GAAG;YACR,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE;YAC/E,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -0,0 +1,65 @@
1
+ import type { PlatformName, Scope } from '../types.js';
2
+ export type CatalogSourceReferenceKind = 'legacyOwner' | 'namespacedOwner' | 'legacyConfig' | 'namespacedConfig' | 'legacyLifecycle' | 'namespacedLifecycle' | 'legacyMarketplace' | 'namespacedMarketplace';
3
+ export interface CatalogSourceReference {
4
+ kind: CatalogSourceReferenceKind;
5
+ location: string;
6
+ pluginName?: string;
7
+ sourceId?: string;
8
+ sourceIdentity?: string;
9
+ marketplaceName?: string;
10
+ platform?: string;
11
+ scope?: string;
12
+ projectKey?: string | null;
13
+ }
14
+ export declare function canonicalMarketplaceRegistrationNames(references: readonly CatalogSourceReference[], sourceId: string): string[];
15
+ export interface CatalogSourceReferenceInventory {
16
+ inventorySchemaVersion: 1;
17
+ references: CatalogSourceReference[];
18
+ errors: CatalogSourceInventoryError[];
19
+ }
20
+ export interface CatalogSourceInventoryError {
21
+ code: 'stateInventoryFailed';
22
+ kind: string;
23
+ location: string;
24
+ message: string;
25
+ relevance: {
26
+ global: true;
27
+ } | {
28
+ global: false;
29
+ sourceId?: string;
30
+ pluginName?: string;
31
+ platform?: PlatformName;
32
+ scope?: Scope;
33
+ projectLocationKey?: string;
34
+ };
35
+ }
36
+ export declare function inventoryLegacyOwnerReferences(options: {
37
+ cwd: string;
38
+ env?: NodeJS.ProcessEnv;
39
+ }): Promise<CatalogSourceReferenceInventory>;
40
+ export declare function inventoryLegacyConfigReferences(options: {
41
+ cwd: string;
42
+ env?: NodeJS.ProcessEnv;
43
+ }): Promise<CatalogSourceReferenceInventory>;
44
+ export declare function inventoryCatalogSourceReferences(options: {
45
+ cwd: string;
46
+ env?: NodeJS.ProcessEnv;
47
+ includeHistoricalProjects?: boolean;
48
+ }): Promise<CatalogSourceReferenceInventory>;
49
+ export declare class LegacyCatalogStateUnsupportedError extends Error {
50
+ readonly code = "legacyStateUnsupported";
51
+ readonly inventory: CatalogSourceReferenceInventory;
52
+ constructor(inventory: CatalogSourceReferenceInventory);
53
+ }
54
+ export declare class CatalogSourceReferencedError extends Error {
55
+ readonly code = "catalogSourceInUse";
56
+ readonly inventory: CatalogSourceReferenceInventory;
57
+ constructor(inventory: CatalogSourceReferenceInventory);
58
+ }
59
+ export declare class CatalogSourceInventoryIncompleteError extends Error {
60
+ readonly code = "stateInventoryFailed";
61
+ readonly inventory: CatalogSourceReferenceInventory;
62
+ constructor(inventory: CatalogSourceReferenceInventory);
63
+ }
64
+ export declare function assertCatalogSourceInventoryComplete(inventory: CatalogSourceReferenceInventory): void;
65
+ export declare function assertCatalogSourceReferencesSupported(inventory: CatalogSourceReferenceInventory): void;