@mannyc1/ts-release 0.0.7 → 0.2.2

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 (635) hide show
  1. package/ARCHITECTURE.md +124 -92
  2. package/CHANGELOG.md +115 -0
  3. package/LICENSE +21 -0
  4. package/README.md +278 -324
  5. package/SPEC.md +206 -310
  6. package/apps/release-ts/README.md +32 -0
  7. package/apps/release-ts/src/cli/command.ts +164 -0
  8. package/apps/release-ts/src/cli/commands.ts +351 -0
  9. package/apps/release-ts/src/cli/main.ts +43 -0
  10. package/apps/release-ts/src/cli/node-main.ts +49 -0
  11. package/apps/ts-release-agents/LICENSE +21 -0
  12. package/apps/ts-release-agents/README.md +21 -0
  13. package/apps/ts-release-agents/evals/cases.json +11 -0
  14. package/apps/ts-release-agents/manifests/claude.json +5 -0
  15. package/apps/ts-release-agents/manifests/codex.json +5 -0
  16. package/apps/ts-release-agents/package.json +11 -0
  17. package/apps/ts-release-agents/skills/release/SKILL.md +48 -0
  18. package/apps/ts-release-agents/skills/release/references/configuration.md +18 -0
  19. package/apps/ts-release-agents/skills/release/references/recovery.md +10 -0
  20. package/apps/ts-release-agents/skills/release/references/staged-workflow.md +12 -0
  21. package/apps/ts-release-agents/skills/release/references/target-selection.md +13 -0
  22. package/apps/ts-release-agents/skills/release/references/verification.md +14 -0
  23. package/apps/ts-release-agents/src/build.ts +105 -0
  24. package/apps/ts-release-agents/src/check.ts +117 -0
  25. package/apps/ts-release-agents/src/install.ts +121 -0
  26. package/apps/ts-release-agents/test/contract.test.ts +56 -0
  27. package/apps/ts-release-agents/tsconfig.json +5 -0
  28. package/dist/api/api.d.ts +15 -0
  29. package/dist/api/api.d.ts.map +1 -0
  30. package/dist/api/api.js +244 -0
  31. package/dist/api/api.js.map +1 -0
  32. package/dist/api/errors.d.ts +39 -0
  33. package/dist/api/errors.d.ts.map +1 -0
  34. package/dist/api/errors.js +32 -0
  35. package/dist/api/errors.js.map +1 -0
  36. package/dist/api/input.d.ts +10 -0
  37. package/dist/api/input.d.ts.map +1 -0
  38. package/dist/api/input.js +73 -0
  39. package/dist/api/input.js.map +1 -0
  40. package/dist/api/runtime.d.ts +18 -0
  41. package/dist/api/runtime.d.ts.map +1 -0
  42. package/dist/api/runtime.js +7 -0
  43. package/dist/api/runtime.js.map +1 -0
  44. package/dist/api/types.d.ts +76 -0
  45. package/dist/api/types.d.ts.map +1 -0
  46. package/dist/api/types.js +17 -0
  47. package/dist/api/types.js.map +1 -0
  48. package/dist/bin/ts-release.js +39239 -0
  49. package/dist/capabilities/bun-targets.d.ts +3 -0
  50. package/dist/capabilities/bun-targets.d.ts.map +1 -0
  51. package/dist/capabilities/bun-targets.js +3 -0
  52. package/dist/capabilities/bun-targets.js.map +1 -0
  53. package/dist/capabilities/field-ownership.d.ts +17 -0
  54. package/dist/capabilities/field-ownership.d.ts.map +1 -0
  55. package/dist/capabilities/field-ownership.js +40 -0
  56. package/dist/capabilities/field-ownership.js.map +1 -0
  57. package/dist/capabilities/module.d.ts +91 -0
  58. package/dist/capabilities/module.d.ts.map +1 -0
  59. package/dist/capabilities/module.js +2 -0
  60. package/dist/capabilities/module.js.map +1 -0
  61. package/dist/capabilities/registry.d.ts +829 -0
  62. package/dist/capabilities/registry.d.ts.map +1 -0
  63. package/dist/capabilities/registry.js +291 -0
  64. package/dist/capabilities/registry.js.map +1 -0
  65. package/dist/config/config.d.ts +6 -0
  66. package/dist/config/config.d.ts.map +1 -0
  67. package/dist/config/config.js +42 -0
  68. package/dist/config/config.js.map +1 -0
  69. package/dist/correction/coordinator.d.ts +248 -0
  70. package/dist/correction/coordinator.d.ts.map +1 -0
  71. package/dist/correction/coordinator.js +274 -0
  72. package/dist/correction/coordinator.js.map +1 -0
  73. package/dist/correction/index.d.ts +3 -0
  74. package/dist/correction/index.d.ts.map +1 -0
  75. package/dist/correction/index.js +3 -0
  76. package/dist/correction/index.js.map +1 -0
  77. package/dist/correction/intent.d.ts +111 -0
  78. package/dist/correction/intent.d.ts.map +1 -0
  79. package/dist/correction/intent.js +146 -0
  80. package/dist/correction/intent.js.map +1 -0
  81. package/dist/drivers/archive.d.ts +8 -0
  82. package/dist/drivers/archive.d.ts.map +1 -0
  83. package/dist/drivers/archive.js +101 -0
  84. package/dist/drivers/archive.js.map +1 -0
  85. package/dist/drivers/contain.d.ts +6 -0
  86. package/dist/drivers/contain.d.ts.map +1 -0
  87. package/dist/drivers/contain.js +17 -0
  88. package/dist/drivers/contain.js.map +1 -0
  89. package/dist/drivers/environment.d.ts +4 -0
  90. package/dist/drivers/environment.d.ts.map +1 -0
  91. package/dist/drivers/environment.js +18 -0
  92. package/dist/drivers/environment.js.map +1 -0
  93. package/dist/drivers/errors.d.ts +9 -0
  94. package/dist/drivers/errors.d.ts.map +1 -0
  95. package/dist/drivers/errors.js +6 -0
  96. package/dist/drivers/errors.js.map +1 -0
  97. package/dist/drivers/glob.d.ts +2 -0
  98. package/dist/drivers/glob.d.ts.map +1 -0
  99. package/dist/drivers/glob.js +162 -0
  100. package/dist/drivers/glob.js.map +1 -0
  101. package/dist/drivers/process.d.ts +48 -0
  102. package/dist/drivers/process.d.ts.map +1 -0
  103. package/dist/drivers/process.js +257 -0
  104. package/dist/drivers/process.js.map +1 -0
  105. package/dist/drivers/redact.d.ts +4 -0
  106. package/dist/drivers/redact.d.ts.map +1 -0
  107. package/dist/drivers/redact.js +24 -0
  108. package/dist/drivers/redact.js.map +1 -0
  109. package/dist/drivers/seccomp-helper-source.d.ts +7 -0
  110. package/dist/drivers/seccomp-helper-source.d.ts.map +1 -0
  111. package/dist/drivers/seccomp-helper-source.js +121 -0
  112. package/dist/drivers/seccomp-helper-source.js.map +1 -0
  113. package/dist/drivers/utils.d.ts +4 -0
  114. package/dist/drivers/utils.d.ts.map +1 -0
  115. package/dist/drivers/utils.js +5 -0
  116. package/dist/drivers/utils.js.map +1 -0
  117. package/dist/drivers/workspace.d.ts +6 -0
  118. package/dist/drivers/workspace.d.ts.map +1 -0
  119. package/dist/drivers/workspace.js +49 -0
  120. package/dist/drivers/workspace.js.map +1 -0
  121. package/dist/extensions/provider-adapter.d.ts +48 -0
  122. package/dist/extensions/provider-adapter.d.ts.map +1 -0
  123. package/dist/extensions/provider-adapter.js +64 -0
  124. package/dist/extensions/provider-adapter.js.map +1 -0
  125. package/dist/host.d.ts +33 -0
  126. package/dist/host.d.ts.map +1 -0
  127. package/dist/host.js +20 -0
  128. package/dist/host.js.map +1 -0
  129. package/dist/index.d.ts +19 -1
  130. package/dist/index.d.ts.map +1 -1
  131. package/dist/index.js +12 -1
  132. package/dist/index.js.map +1 -1
  133. package/dist/model/artifact-collection.d.ts +84 -0
  134. package/dist/model/artifact-collection.d.ts.map +1 -0
  135. package/dist/model/artifact-collection.js +185 -0
  136. package/dist/model/artifact-collection.js.map +1 -0
  137. package/dist/model/authority.d.ts +89 -0
  138. package/dist/model/authority.d.ts.map +1 -0
  139. package/dist/model/authority.js +80 -0
  140. package/dist/model/authority.js.map +1 -0
  141. package/dist/model/bun-targets.d.ts +34 -0
  142. package/dist/model/bun-targets.d.ts.map +1 -0
  143. package/dist/model/bun-targets.js +17 -0
  144. package/dist/model/bun-targets.js.map +1 -0
  145. package/dist/model/canonical.d.ts +8 -0
  146. package/dist/model/canonical.d.ts.map +1 -0
  147. package/dist/model/canonical.js +205 -0
  148. package/dist/model/canonical.js.map +1 -0
  149. package/dist/model/catalog.d.ts +76 -0
  150. package/dist/model/catalog.d.ts.map +1 -0
  151. package/dist/model/catalog.js +174 -0
  152. package/dist/model/catalog.js.map +1 -0
  153. package/dist/model/digest.d.ts +53 -0
  154. package/dist/model/digest.d.ts.map +1 -0
  155. package/dist/model/digest.js +127 -0
  156. package/dist/model/digest.js.map +1 -0
  157. package/dist/model/errors.d.ts +14 -0
  158. package/dist/model/errors.d.ts.map +1 -0
  159. package/dist/model/errors.js +8 -0
  160. package/dist/model/errors.js.map +1 -0
  161. package/dist/model/primitives.d.ts +19 -0
  162. package/dist/model/primitives.d.ts.map +1 -0
  163. package/dist/model/primitives.js +18 -0
  164. package/dist/model/primitives.js.map +1 -0
  165. package/dist/model/pypi.d.ts +12 -0
  166. package/dist/model/pypi.d.ts.map +1 -0
  167. package/dist/model/pypi.js +20 -0
  168. package/dist/model/pypi.js.map +1 -0
  169. package/dist/model/python-distribution.d.ts +33 -0
  170. package/dist/model/python-distribution.d.ts.map +1 -0
  171. package/dist/model/python-distribution.js +367 -0
  172. package/dist/model/python-distribution.js.map +1 -0
  173. package/dist/model/secret-patterns.d.ts +2 -0
  174. package/dist/model/secret-patterns.d.ts.map +1 -0
  175. package/dist/model/secret-patterns.js +12 -0
  176. package/dist/model/secret-patterns.js.map +1 -0
  177. package/dist/platform/bun.d.ts +7 -0
  178. package/dist/platform/bun.d.ts.map +1 -0
  179. package/dist/platform/bun.js +15 -0
  180. package/dist/platform/bun.js.map +1 -0
  181. package/dist/platform/credentials.d.ts +32 -0
  182. package/dist/platform/credentials.d.ts.map +1 -0
  183. package/dist/platform/credentials.js +772 -0
  184. package/dist/platform/credentials.js.map +1 -0
  185. package/dist/platform/host-support.d.ts +2 -0
  186. package/dist/platform/host-support.d.ts.map +1 -0
  187. package/dist/platform/host-support.js +4 -0
  188. package/dist/platform/host-support.js.map +1 -0
  189. package/dist/platform/node.d.ts +7 -0
  190. package/dist/platform/node.d.ts.map +1 -0
  191. package/dist/platform/node.js +15 -0
  192. package/dist/platform/node.js.map +1 -0
  193. package/dist/platform/release-runtime.d.ts +11 -0
  194. package/dist/platform/release-runtime.d.ts.map +1 -0
  195. package/dist/platform/release-runtime.js +34 -0
  196. package/dist/platform/release-runtime.js.map +1 -0
  197. package/dist/platform/services.d.ts +15 -0
  198. package/dist/platform/services.d.ts.map +1 -0
  199. package/dist/platform/services.js +30 -0
  200. package/dist/platform/services.js.map +1 -0
  201. package/dist/platform/source-observer.d.ts +5 -0
  202. package/dist/platform/source-observer.d.ts.map +1 -0
  203. package/dist/platform/source-observer.js +159 -0
  204. package/dist/platform/source-observer.js.map +1 -0
  205. package/dist/provider-sdk.d.ts +14 -0
  206. package/dist/provider-sdk.d.ts.map +1 -0
  207. package/dist/provider-sdk.js +10 -0
  208. package/dist/provider-sdk.js.map +1 -0
  209. package/dist/publication/adapter.d.ts +212 -0
  210. package/dist/publication/adapter.d.ts.map +1 -0
  211. package/dist/publication/adapter.js +83 -0
  212. package/dist/publication/adapter.js.map +1 -0
  213. package/dist/publication/authority.d.ts +137 -0
  214. package/dist/publication/authority.d.ts.map +1 -0
  215. package/dist/publication/authority.js +233 -0
  216. package/dist/publication/authority.js.map +1 -0
  217. package/dist/publication/catalog-git.d.ts +37 -0
  218. package/dist/publication/catalog-git.d.ts.map +1 -0
  219. package/dist/publication/catalog-git.js +451 -0
  220. package/dist/publication/catalog-git.js.map +1 -0
  221. package/dist/publication/claim.d.ts +39 -0
  222. package/dist/publication/claim.d.ts.map +1 -0
  223. package/dist/publication/claim.js +31 -0
  224. package/dist/publication/claim.js.map +1 -0
  225. package/dist/publication/coordinator.d.ts +246 -0
  226. package/dist/publication/coordinator.d.ts.map +1 -0
  227. package/dist/publication/coordinator.js +370 -0
  228. package/dist/publication/coordinator.js.map +1 -0
  229. package/dist/publication/github.d.ts +36 -0
  230. package/dist/publication/github.d.ts.map +1 -0
  231. package/dist/publication/github.js +644 -0
  232. package/dist/publication/github.js.map +1 -0
  233. package/dist/publication/http.d.ts +69 -0
  234. package/dist/publication/http.d.ts.map +1 -0
  235. package/dist/publication/http.js +29 -0
  236. package/dist/publication/http.js.map +1 -0
  237. package/dist/publication/index.d.ts +5 -0
  238. package/dist/publication/index.d.ts.map +1 -0
  239. package/dist/publication/index.js +5 -0
  240. package/dist/publication/index.js.map +1 -0
  241. package/dist/publication/npm.d.ts +40 -0
  242. package/dist/publication/npm.d.ts.map +1 -0
  243. package/dist/publication/npm.js +359 -0
  244. package/dist/publication/npm.js.map +1 -0
  245. package/dist/publication/profiles.d.ts +136 -0
  246. package/dist/publication/profiles.d.ts.map +1 -0
  247. package/dist/publication/profiles.js +90 -0
  248. package/dist/publication/profiles.js.map +1 -0
  249. package/dist/publication/publisher.d.ts +82 -0
  250. package/dist/publication/publisher.d.ts.map +1 -0
  251. package/dist/publication/publisher.js +53 -0
  252. package/dist/publication/publisher.js.map +1 -0
  253. package/dist/publication/pypi.d.ts +45 -0
  254. package/dist/publication/pypi.d.ts.map +1 -0
  255. package/dist/publication/pypi.js +369 -0
  256. package/dist/publication/pypi.js.map +1 -0
  257. package/dist/publication/recovery.d.ts +663 -0
  258. package/dist/publication/recovery.d.ts.map +1 -0
  259. package/dist/publication/recovery.js +252 -0
  260. package/dist/publication/recovery.js.map +1 -0
  261. package/dist/publication/report.d.ts +1061 -0
  262. package/dist/publication/report.d.ts.map +1 -0
  263. package/dist/publication/report.js +441 -0
  264. package/dist/publication/report.js.map +1 -0
  265. package/dist/recipes/config.d.ts +296 -0
  266. package/dist/recipes/config.d.ts.map +1 -0
  267. package/dist/recipes/config.js +325 -0
  268. package/dist/recipes/config.js.map +1 -0
  269. package/dist/release/capabilities.d.ts +12 -0
  270. package/dist/release/capabilities.d.ts.map +1 -0
  271. package/dist/release/capabilities.js +395 -0
  272. package/dist/release/capabilities.js.map +1 -0
  273. package/dist/release/compiler.d.ts +5 -0
  274. package/dist/release/compiler.d.ts.map +1 -0
  275. package/dist/release/compiler.js +19 -0
  276. package/dist/release/compiler.js.map +1 -0
  277. package/dist/release/config.d.ts +5 -0
  278. package/dist/release/config.d.ts.map +1 -0
  279. package/dist/release/config.js +10 -0
  280. package/dist/release/config.js.map +1 -0
  281. package/dist/release/context.d.ts +96 -0
  282. package/dist/release/context.d.ts.map +1 -0
  283. package/dist/release/context.js +168 -0
  284. package/dist/release/context.js.map +1 -0
  285. package/dist/release/graph.d.ts +271 -0
  286. package/dist/release/graph.d.ts.map +1 -0
  287. package/dist/release/graph.js +766 -0
  288. package/dist/release/graph.js.map +1 -0
  289. package/dist/release/inspect.d.ts +88 -0
  290. package/dist/release/inspect.d.ts.map +1 -0
  291. package/dist/release/inspect.js +75 -0
  292. package/dist/release/inspect.js.map +1 -0
  293. package/dist/release/prepare.d.ts +24 -0
  294. package/dist/release/prepare.d.ts.map +1 -0
  295. package/dist/release/prepare.js +1116 -0
  296. package/dist/release/prepare.js.map +1 -0
  297. package/dist/release/prepared-ref.d.ts +60 -0
  298. package/dist/release/prepared-ref.d.ts.map +1 -0
  299. package/dist/release/prepared-ref.js +131 -0
  300. package/dist/release/prepared-ref.js.map +1 -0
  301. package/dist/release/prepared-store.d.ts +90 -0
  302. package/dist/release/prepared-store.d.ts.map +1 -0
  303. package/dist/release/prepared-store.js +337 -0
  304. package/dist/release/prepared-store.js.map +1 -0
  305. package/dist/release/prepared.d.ts +172 -0
  306. package/dist/release/prepared.d.ts.map +1 -0
  307. package/dist/release/prepared.js +268 -0
  308. package/dist/release/prepared.js.map +1 -0
  309. package/dist/release/staging.d.ts +31 -0
  310. package/dist/release/staging.d.ts.map +1 -0
  311. package/dist/release/staging.js +218 -0
  312. package/dist/release/staging.js.map +1 -0
  313. package/dist/resolve/authored.d.ts +53 -0
  314. package/dist/resolve/authored.d.ts.map +1 -0
  315. package/dist/resolve/authored.js +55 -0
  316. package/dist/resolve/authored.js.map +1 -0
  317. package/dist/resolve/encode.d.ts +3 -0
  318. package/dist/resolve/encode.d.ts.map +1 -0
  319. package/dist/resolve/encode.js +21 -0
  320. package/dist/resolve/encode.js.map +1 -0
  321. package/dist/resolve/errors.d.ts +7 -0
  322. package/dist/resolve/errors.d.ts.map +1 -0
  323. package/dist/resolve/errors.js +17 -0
  324. package/dist/resolve/errors.js.map +1 -0
  325. package/dist/resolve/facts.d.ts +12 -0
  326. package/dist/resolve/facts.d.ts.map +1 -0
  327. package/dist/resolve/facts.js +18 -0
  328. package/dist/resolve/facts.js.map +1 -0
  329. package/dist/resolve/resolve.d.ts +10 -0
  330. package/dist/resolve/resolve.d.ts.map +1 -0
  331. package/dist/resolve/resolve.js +242 -0
  332. package/dist/resolve/resolve.js.map +1 -0
  333. package/dist/store.d.ts +11 -0
  334. package/dist/store.d.ts.map +1 -0
  335. package/dist/store.js +9 -0
  336. package/dist/store.js.map +1 -0
  337. package/examples/README.md +20 -30
  338. package/examples/github-release/release.config.json +11 -18
  339. package/examples/homebrew-tap/README.md +11 -0
  340. package/examples/homebrew-tap/release.config.json +40 -28
  341. package/examples/multi-target/release.config.json +28 -53
  342. package/examples/npm-first-publish/release.config.json +23 -25
  343. package/examples/npm-only/release.config.json +22 -30
  344. package/examples/portable-cli/README.md +17 -0
  345. package/examples/portable-cli/artifacts/portable-example-0.1.0-darwin-arm64 +1 -0
  346. package/examples/portable-cli/artifacts/portable-example-0.1.0-darwin-x64 +1 -0
  347. package/examples/portable-cli/artifacts/portable-example-0.1.0-linux-arm64 +1 -0
  348. package/examples/portable-cli/artifacts/portable-example-0.1.0-linux-x64 +1 -0
  349. package/examples/portable-cli/artifacts/portable-example-0.1.0-windows-x64.exe +1 -0
  350. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-macosx_10_15_x86_64.whl +1 -0
  351. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-macosx_11_0_arm64.whl +1 -0
  352. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-manylinux2014_aarch64.whl +1 -0
  353. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-manylinux2014_x86_64.whl +1 -0
  354. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-win_amd64.whl +1 -0
  355. package/examples/portable-cli/package.json +9 -0
  356. package/examples/portable-cli/release.config.json +53 -0
  357. package/examples/portable-cli/src/cli.ts +3 -0
  358. package/examples/pypi-registry/README.md +8 -0
  359. package/examples/scoop-bucket/README.md +10 -0
  360. package/examples/scoop-bucket/release.config.json +40 -30
  361. package/package.json +60 -156
  362. package/src/api/api.ts +365 -0
  363. package/src/api/errors.ts +36 -0
  364. package/src/api/input.ts +92 -0
  365. package/src/api/runtime.ts +14 -0
  366. package/src/api/types.ts +103 -0
  367. package/src/capabilities/bun-targets.ts +2 -0
  368. package/src/capabilities/field-ownership.ts +60 -0
  369. package/src/capabilities/module.ts +158 -0
  370. package/src/capabilities/registry.ts +333 -0
  371. package/src/config/config.ts +48 -0
  372. package/src/correction/coordinator.ts +336 -0
  373. package/src/correction/index.ts +2 -0
  374. package/src/correction/intent.ts +172 -0
  375. package/src/drivers/archive.ts +102 -0
  376. package/src/drivers/contain.ts +20 -0
  377. package/src/drivers/environment.ts +28 -0
  378. package/src/drivers/errors.ts +6 -0
  379. package/src/drivers/glob.ts +137 -0
  380. package/src/drivers/process.ts +340 -0
  381. package/src/drivers/redact.ts +31 -0
  382. package/src/drivers/seccomp-helper-source.ts +121 -0
  383. package/src/drivers/utils.ts +10 -0
  384. package/src/drivers/workspace.ts +40 -0
  385. package/src/extensions/provider-adapter.ts +99 -0
  386. package/src/host.ts +140 -0
  387. package/src/index.ts +64 -0
  388. package/src/model/artifact-collection.ts +237 -0
  389. package/src/model/authority.ts +116 -0
  390. package/src/model/bun-targets.ts +34 -0
  391. package/src/model/canonical.ts +205 -0
  392. package/src/model/catalog.ts +220 -0
  393. package/src/model/digest.ts +172 -0
  394. package/src/model/errors.ts +6 -0
  395. package/src/model/primitives.ts +37 -0
  396. package/src/model/pypi.ts +30 -0
  397. package/src/model/python-distribution.ts +360 -0
  398. package/src/model/secret-patterns.ts +11 -0
  399. package/src/platform/bun.ts +38 -0
  400. package/src/platform/credentials.ts +1083 -0
  401. package/src/platform/host-support.ts +4 -0
  402. package/src/platform/node.ts +38 -0
  403. package/src/platform/release-runtime.ts +47 -0
  404. package/src/platform/services.ts +57 -0
  405. package/src/platform/source-observer.ts +193 -0
  406. package/src/provider-sdk.ts +48 -0
  407. package/src/publication/adapter.ts +132 -0
  408. package/src/publication/authority.ts +397 -0
  409. package/src/publication/catalog-git.ts +603 -0
  410. package/src/publication/claim.ts +51 -0
  411. package/src/publication/coordinator.ts +578 -0
  412. package/src/publication/github.ts +954 -0
  413. package/src/publication/http.ts +101 -0
  414. package/src/publication/index.ts +4 -0
  415. package/src/publication/npm.ts +525 -0
  416. package/src/publication/profiles.ts +94 -0
  417. package/src/publication/publisher.ts +130 -0
  418. package/src/publication/pypi.ts +463 -0
  419. package/src/publication/recovery.ts +349 -0
  420. package/src/publication/report.ts +628 -0
  421. package/src/recipes/config.ts +395 -0
  422. package/src/release/capabilities.ts +459 -0
  423. package/src/release/compiler.ts +28 -0
  424. package/src/release/config.ts +12 -0
  425. package/src/release/context.ts +223 -0
  426. package/src/release/graph.ts +866 -0
  427. package/src/release/inspect.ts +83 -0
  428. package/src/release/prepare.ts +1331 -0
  429. package/src/release/prepared-ref.ts +193 -0
  430. package/src/release/prepared-store.ts +377 -0
  431. package/src/release/prepared.ts +299 -0
  432. package/src/release/staging.ts +257 -0
  433. package/src/resolve/authored.ts +64 -0
  434. package/src/resolve/encode.ts +22 -0
  435. package/src/resolve/errors.ts +15 -0
  436. package/src/resolve/facts.ts +18 -0
  437. package/src/resolve/resolve.ts +328 -0
  438. package/src/store.ts +28 -0
  439. package/templates/README.md +55 -72
  440. package/templates/bun-cli-github/README.md +7 -9
  441. package/templates/bun-cli-github/release.config.json +35 -73
  442. package/templates/github-actions/release.yml +57 -0
  443. package/templates/github-actions/reviewed-release.yml +80 -0
  444. package/templates/multi-target-homebrew/README.md +10 -0
  445. package/templates/multi-target-homebrew/release.config.json +43 -60
  446. package/templates/multi-target-scoop/README.md +10 -0
  447. package/templates/multi-target-scoop/release.config.json +43 -62
  448. package/templates/npm-github/release.config.json +25 -38
  449. package/templates/npm-github/reviewed-release.config.json +37 -0
  450. package/templates/npm-only/README.md +10 -0
  451. package/templates/npm-only/release.config.json +15 -30
  452. package/templates/portable-cli/README.md +13 -0
  453. package/templates/portable-cli/release.config.json +53 -0
  454. package/dist/artifacts/adapter.d.ts +0 -39
  455. package/dist/artifacts/adapter.d.ts.map +0 -1
  456. package/dist/artifacts/adapter.js +0 -23
  457. package/dist/artifacts/adapter.js.map +0 -1
  458. package/dist/artifacts/registry.d.ts +0 -21
  459. package/dist/artifacts/registry.d.ts.map +0 -1
  460. package/dist/artifacts/registry.js +0 -21
  461. package/dist/artifacts/registry.js.map +0 -1
  462. package/dist/config/errors.d.ts +0 -24
  463. package/dist/config/errors.d.ts.map +0 -1
  464. package/dist/config/errors.js +0 -19
  465. package/dist/config/errors.js.map +0 -1
  466. package/dist/config/load.d.ts +0 -9
  467. package/dist/config/load.d.ts.map +0 -1
  468. package/dist/config/load.js +0 -29
  469. package/dist/config/load.js.map +0 -1
  470. package/dist/config/schema.d.ts +0 -12
  471. package/dist/config/schema.d.ts.map +0 -1
  472. package/dist/config/schema.js +0 -19
  473. package/dist/config/schema.js.map +0 -1
  474. package/dist/domain/artifact.d.ts +0 -118
  475. package/dist/domain/artifact.d.ts.map +0 -1
  476. package/dist/domain/artifact.js +0 -197
  477. package/dist/domain/artifact.js.map +0 -1
  478. package/dist/domain/evidence.d.ts +0 -59
  479. package/dist/domain/evidence.d.ts.map +0 -1
  480. package/dist/domain/evidence.js +0 -51
  481. package/dist/domain/evidence.js.map +0 -1
  482. package/dist/domain/operation.d.ts +0 -143
  483. package/dist/domain/operation.d.ts.map +0 -1
  484. package/dist/domain/operation.js +0 -198
  485. package/dist/domain/operation.js.map +0 -1
  486. package/dist/domain/release.d.ts +0 -93
  487. package/dist/domain/release.d.ts.map +0 -1
  488. package/dist/domain/release.js +0 -82
  489. package/dist/domain/release.js.map +0 -1
  490. package/dist/domain/remote-state.d.ts +0 -58
  491. package/dist/domain/remote-state.d.ts.map +0 -1
  492. package/dist/domain/remote-state.js +0 -55
  493. package/dist/domain/remote-state.js.map +0 -1
  494. package/dist/domain/target.d.ts +0 -148
  495. package/dist/domain/target.d.ts.map +0 -1
  496. package/dist/domain/target.js +0 -151
  497. package/dist/domain/target.js.map +0 -1
  498. package/dist/host/host.d.ts +0 -32
  499. package/dist/host/host.d.ts.map +0 -1
  500. package/dist/host/host.js +0 -24
  501. package/dist/host/host.js.map +0 -1
  502. package/dist/host/http-live.d.ts +0 -6
  503. package/dist/host/http-live.d.ts.map +0 -1
  504. package/dist/host/http-live.js +0 -86
  505. package/dist/host/http-live.js.map +0 -1
  506. package/dist/host/http.d.ts +0 -43
  507. package/dist/host/http.d.ts.map +0 -1
  508. package/dist/host/http.js +0 -59
  509. package/dist/host/http.js.map +0 -1
  510. package/dist/host/platform.d.ts +0 -10
  511. package/dist/host/platform.d.ts.map +0 -1
  512. package/dist/host/platform.js +0 -114
  513. package/dist/host/platform.js.map +0 -1
  514. package/dist/host/test.d.ts +0 -23
  515. package/dist/host/test.d.ts.map +0 -1
  516. package/dist/host/test.js +0 -222
  517. package/dist/host/test.js.map +0 -1
  518. package/dist/internal/workspace-path.d.ts +0 -15
  519. package/dist/internal/workspace-path.d.ts.map +0 -1
  520. package/dist/internal/workspace-path.js +0 -36
  521. package/dist/internal/workspace-path.js.map +0 -1
  522. package/dist/planner/artifact-inventory.d.ts +0 -9
  523. package/dist/planner/artifact-inventory.d.ts.map +0 -1
  524. package/dist/planner/artifact-inventory.js +0 -86
  525. package/dist/planner/artifact-inventory.js.map +0 -1
  526. package/dist/planner/create-release-plan.d.ts +0 -5
  527. package/dist/planner/create-release-plan.d.ts.map +0 -1
  528. package/dist/planner/create-release-plan.js +0 -25
  529. package/dist/planner/create-release-plan.js.map +0 -1
  530. package/dist/planner/errors.d.ts +0 -67
  531. package/dist/planner/errors.d.ts.map +0 -1
  532. package/dist/planner/errors.js +0 -58
  533. package/dist/planner/errors.js.map +0 -1
  534. package/dist/planner/evidence-recorder.d.ts +0 -28
  535. package/dist/planner/evidence-recorder.d.ts.map +0 -1
  536. package/dist/planner/evidence-recorder.js +0 -362
  537. package/dist/planner/evidence-recorder.js.map +0 -1
  538. package/dist/planner/executor.d.ts +0 -58
  539. package/dist/planner/executor.d.ts.map +0 -1
  540. package/dist/planner/executor.js +0 -147
  541. package/dist/planner/executor.js.map +0 -1
  542. package/dist/planner/normalize-release.d.ts +0 -19
  543. package/dist/planner/normalize-release.d.ts.map +0 -1
  544. package/dist/planner/normalize-release.js +0 -342
  545. package/dist/planner/normalize-release.js.map +0 -1
  546. package/dist/planner/reconcile.d.ts +0 -17
  547. package/dist/planner/reconcile.d.ts.map +0 -1
  548. package/dist/planner/reconcile.js +0 -259
  549. package/dist/planner/reconcile.js.map +0 -1
  550. package/dist/planner/render-plan.d.ts +0 -15
  551. package/dist/planner/render-plan.d.ts.map +0 -1
  552. package/dist/planner/render-plan.js +0 -231
  553. package/dist/planner/render-plan.js.map +0 -1
  554. package/dist/targets/adapter-helpers.d.ts +0 -79
  555. package/dist/targets/adapter-helpers.d.ts.map +0 -1
  556. package/dist/targets/adapter-helpers.js +0 -194
  557. package/dist/targets/adapter-helpers.js.map +0 -1
  558. package/dist/targets/adapter.d.ts +0 -17
  559. package/dist/targets/adapter.d.ts.map +0 -1
  560. package/dist/targets/adapter.js +0 -2
  561. package/dist/targets/adapter.js.map +0 -1
  562. package/dist/targets/github-release.d.ts +0 -25
  563. package/dist/targets/github-release.d.ts.map +0 -1
  564. package/dist/targets/github-release.js +0 -82
  565. package/dist/targets/github-release.js.map +0 -1
  566. package/dist/targets/github.d.ts +0 -11
  567. package/dist/targets/github.d.ts.map +0 -1
  568. package/dist/targets/github.js +0 -117
  569. package/dist/targets/github.js.map +0 -1
  570. package/dist/targets/homebrew.d.ts +0 -11
  571. package/dist/targets/homebrew.d.ts.map +0 -1
  572. package/dist/targets/homebrew.js +0 -210
  573. package/dist/targets/homebrew.js.map +0 -1
  574. package/dist/targets/live.d.ts +0 -5
  575. package/dist/targets/live.d.ts.map +0 -1
  576. package/dist/targets/live.js +0 -50
  577. package/dist/targets/live.js.map +0 -1
  578. package/dist/targets/npm.d.ts +0 -10
  579. package/dist/targets/npm.d.ts.map +0 -1
  580. package/dist/targets/npm.js +0 -112
  581. package/dist/targets/npm.js.map +0 -1
  582. package/dist/targets/pypi.d.ts +0 -11
  583. package/dist/targets/pypi.d.ts.map +0 -1
  584. package/dist/targets/pypi.js +0 -141
  585. package/dist/targets/pypi.js.map +0 -1
  586. package/dist/targets/registry.d.ts +0 -25
  587. package/dist/targets/registry.d.ts.map +0 -1
  588. package/dist/targets/registry.js +0 -34
  589. package/dist/targets/registry.js.map +0 -1
  590. package/dist/targets/scoop.d.ts +0 -11
  591. package/dist/targets/scoop.d.ts.map +0 -1
  592. package/dist/targets/scoop.js +0 -88
  593. package/dist/targets/scoop.js.map +0 -1
  594. package/dist/types/effect-internal.d.ts +0 -5
  595. package/dist/types/effect-internal.d.ts.map +0 -1
  596. package/dist/types/effect-internal.js +0 -2
  597. package/dist/types/effect-internal.js.map +0 -1
  598. package/dist/workflows/config.d.ts +0 -202
  599. package/dist/workflows/config.d.ts.map +0 -1
  600. package/dist/workflows/config.js +0 -420
  601. package/dist/workflows/config.js.map +0 -1
  602. package/dist/workflows/diagnostics.d.ts +0 -62
  603. package/dist/workflows/diagnostics.d.ts.map +0 -1
  604. package/dist/workflows/diagnostics.js +0 -530
  605. package/dist/workflows/diagnostics.js.map +0 -1
  606. package/dist/workflows/distribution.d.ts +0 -25
  607. package/dist/workflows/distribution.d.ts.map +0 -1
  608. package/dist/workflows/distribution.js +0 -24
  609. package/dist/workflows/distribution.js.map +0 -1
  610. package/dist/workflows/evidence.d.ts +0 -17
  611. package/dist/workflows/evidence.d.ts.map +0 -1
  612. package/dist/workflows/evidence.js +0 -32
  613. package/dist/workflows/evidence.js.map +0 -1
  614. package/dist/workflows/index.d.ts +0 -8
  615. package/dist/workflows/index.d.ts.map +0 -1
  616. package/dist/workflows/index.js +0 -7
  617. package/dist/workflows/index.js.map +0 -1
  618. package/dist/workflows/init.d.ts +0 -84
  619. package/dist/workflows/init.d.ts.map +0 -1
  620. package/dist/workflows/init.js +0 -487
  621. package/dist/workflows/init.js.map +0 -1
  622. package/dist/workflows/live.d.ts +0 -9
  623. package/dist/workflows/live.d.ts.map +0 -1
  624. package/dist/workflows/live.js +0 -7
  625. package/dist/workflows/live.js.map +0 -1
  626. package/dist/workflows/options.d.ts +0 -30
  627. package/dist/workflows/options.d.ts.map +0 -1
  628. package/dist/workflows/options.js +0 -16
  629. package/dist/workflows/options.js.map +0 -1
  630. package/examples/non-strict-skips/artifacts/release-example-skips-0.1.0.tgz +0 -1
  631. package/examples/non-strict-skips/release.config.json +0 -31
  632. package/examples/pypi-registry/release.config.json +0 -31
  633. package/templates/github-actions/plan-and-approved-execute.yml +0 -58
  634. package/templates/github-actions/plan-only.yml +0 -33
  635. package/templates/github-actions/trusted-publishing.yml +0 -61
@@ -0,0 +1,829 @@
1
+ import type { OwnedConfigField } from "./module.js";
2
+ export declare const releaseIdentityCapability: Readonly<{
3
+ _tag: "ResolutionCapability";
4
+ id: "release.identity";
5
+ fields: readonly OwnedConfigField[];
6
+ requirements: {
7
+ executionHosts: readonly ["linux"];
8
+ nativeTools: string[];
9
+ artifactTargets: never[];
10
+ credentialStrategies: never[];
11
+ };
12
+ certification: {
13
+ boundary: "root-api";
14
+ tests: string[];
15
+ };
16
+ resolve: (authored: unknown, facts: unknown) => import("../recipes/config.js").CandidateConfig;
17
+ }>;
18
+ export declare const sourcePreparationCapability: Readonly<{
19
+ _tag: "PreparationCapability";
20
+ id: "prepare.source";
21
+ phase: "source";
22
+ fields: readonly OwnedConfigField[];
23
+ requirements: {
24
+ executionHosts: readonly ["linux"];
25
+ nativeTools: string[];
26
+ artifactTargets: readonly ["linux-x64", "linux-arm64", "darwin-x64", "darwin-arm64"];
27
+ credentialStrategies: never[];
28
+ };
29
+ certification: {
30
+ boundary: "root-api";
31
+ tests: string[];
32
+ };
33
+ contribute: ({ config, context }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
34
+ }>;
35
+ export declare const packagePreparationCapability: Readonly<{
36
+ _tag: "PreparationCapability";
37
+ id: "prepare.package";
38
+ phase: "package";
39
+ fields: readonly OwnedConfigField[];
40
+ requirements: {
41
+ executionHosts: readonly ["linux"];
42
+ nativeTools: never[];
43
+ artifactTargets: never[];
44
+ credentialStrategies: never[];
45
+ };
46
+ certification: {
47
+ boundary: "root-api";
48
+ tests: string[];
49
+ };
50
+ contribute: ({ config, availableArtifacts, context }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
51
+ }>;
52
+ export declare const homebrewRenderCapability: Readonly<{
53
+ _tag: "PreparationCapability";
54
+ id: "render.homebrew";
55
+ phase: "render";
56
+ fields: readonly OwnedConfigField[];
57
+ requirements: {
58
+ executionHosts: readonly ["linux"];
59
+ nativeTools: never[];
60
+ artifactTargets: never[];
61
+ credentialStrategies: never[];
62
+ };
63
+ certification: {
64
+ boundary: "root-api";
65
+ tests: string[];
66
+ };
67
+ contribute: ({ config, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
68
+ }>;
69
+ export declare const scoopRenderCapability: Readonly<{
70
+ _tag: "PreparationCapability";
71
+ id: "render.scoop";
72
+ phase: "render";
73
+ fields: readonly OwnedConfigField[];
74
+ requirements: {
75
+ executionHosts: readonly ["linux"];
76
+ nativeTools: never[];
77
+ artifactTargets: never[];
78
+ credentialStrategies: never[];
79
+ };
80
+ certification: {
81
+ boundary: "root-api";
82
+ tests: string[];
83
+ };
84
+ contribute: ({ config, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
85
+ }>;
86
+ export declare const npmPublicationCapability: Readonly<{
87
+ _tag: "PublicationCapability";
88
+ id: "publish.npm";
89
+ preparedTag: "PreparedNpmPublication";
90
+ profile: Readonly<{
91
+ id: "publish.npm";
92
+ provider: "npm";
93
+ preparedTag: "PreparedNpmPublication";
94
+ recovery: {
95
+ readonly observation: "exact" | "none" | "conditional";
96
+ readonly authoritativeAbsence: "proved" | "provider-specific" | "unavailable";
97
+ readonly createAuthorization: "none" | "authenticated-namespace-and-unique-coordinate";
98
+ readonly replay: "conditional" | "coordinate-unique" | "idempotency-key" | "unsafe";
99
+ readonly identifierReuse: "reusable" | "consumed-after-delete" | "not-applicable";
100
+ readonly correction: readonly ("deprecate" | "amend-release-metadata" | "forward-catalog-state" | "yank-file")[];
101
+ readonly exposure: "retractable" | "persistent-to-consumers" | "append-only";
102
+ readonly historyRequirement: "optional-evidence" | "durable-cas-required";
103
+ readonly readConvergence: {
104
+ readonly contract: import("../publication/recovery.js").DocumentedReadConvergenceContract | import("../publication/recovery.js").AssumedReadConvergenceContract | import("../publication/recovery.js").UnknownReadConvergenceContract;
105
+ readonly observationRetry: {
106
+ readonly maxAttempts: number;
107
+ readonly backoff: import("../publication/recovery.js").ObservationRetryBackoff;
108
+ readonly totalBudgetMs: number;
109
+ };
110
+ readonly retryEligible: "VisibilityPending | Inconclusive";
111
+ readonly exhaustion: "UncertainSubject with full trace";
112
+ };
113
+ };
114
+ correctionAdapters: readonly [];
115
+ evidence: Readonly<{
116
+ reviewedAt: "2026-08-12";
117
+ observationSources: readonly string[];
118
+ correctionSources: readonly string[];
119
+ correctionFinding: "Official npm documentation exposes deprecation but no conditional update bound to an observed package generation.";
120
+ }>;
121
+ }>;
122
+ fields: OwnedConfigField[];
123
+ requirements: {
124
+ executionHosts: readonly ["linux"];
125
+ nativeTools: string[];
126
+ artifactTargets: never[];
127
+ credentialStrategies: string[];
128
+ };
129
+ certification: {
130
+ boundary: "provider-protocol";
131
+ tests: string[];
132
+ };
133
+ contribute: ({ config, context }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
134
+ subjects: (bundle: import("../store.js").PreparedBundle, publication: import("../release/prepared.js").PreparedNpmPublication, services: import("./module.js").PublicationSubjectServices) => readonly [import("../provider-sdk.js").ReleaseSubject];
135
+ }>;
136
+ export declare const githubPublicationCapability: Readonly<{
137
+ _tag: "PublicationCapability";
138
+ id: "publish.github";
139
+ preparedTag: "PreparedGitHubPublication";
140
+ profile: Readonly<{
141
+ id: "publish.github";
142
+ provider: "github";
143
+ preparedTag: "PreparedGitHubPublication";
144
+ recovery: {
145
+ readonly observation: "exact" | "none" | "conditional";
146
+ readonly authoritativeAbsence: "proved" | "provider-specific" | "unavailable";
147
+ readonly createAuthorization: "none" | "authenticated-namespace-and-unique-coordinate";
148
+ readonly replay: "conditional" | "coordinate-unique" | "idempotency-key" | "unsafe";
149
+ readonly identifierReuse: "reusable" | "consumed-after-delete" | "not-applicable";
150
+ readonly correction: readonly ("deprecate" | "amend-release-metadata" | "forward-catalog-state" | "yank-file")[];
151
+ readonly exposure: "retractable" | "persistent-to-consumers" | "append-only";
152
+ readonly historyRequirement: "optional-evidence" | "durable-cas-required";
153
+ readonly readConvergence: {
154
+ readonly contract: import("../publication/recovery.js").DocumentedReadConvergenceContract | import("../publication/recovery.js").AssumedReadConvergenceContract | import("../publication/recovery.js").UnknownReadConvergenceContract;
155
+ readonly observationRetry: {
156
+ readonly maxAttempts: number;
157
+ readonly backoff: import("../publication/recovery.js").ObservationRetryBackoff;
158
+ readonly totalBudgetMs: number;
159
+ };
160
+ readonly retryEligible: "VisibilityPending | Inconclusive";
161
+ readonly exhaustion: "UncertainSubject with full trace";
162
+ };
163
+ };
164
+ correctionAdapters: readonly [];
165
+ evidence: Readonly<{
166
+ reviewedAt: "2026-08-12";
167
+ observationSources: readonly string[];
168
+ correctionSources: readonly string[];
169
+ correctionFinding: "GitHub documents conditional reads, but unsafe-method conditions are unsupported unless an endpoint says otherwise; the release update endpoint documents none.";
170
+ }>;
171
+ }>;
172
+ fields: readonly OwnedConfigField[];
173
+ requirements: {
174
+ executionHosts: readonly ["linux"];
175
+ nativeTools: never[];
176
+ artifactTargets: never[];
177
+ credentialStrategies: string[];
178
+ };
179
+ certification: {
180
+ boundary: "provider-protocol";
181
+ tests: string[];
182
+ };
183
+ contribute: ({ config, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
184
+ subjects: (bundle: import("../store.js").PreparedBundle, publication: import("../release/prepared.js").PreparedGitHubPublication, services: import("./module.js").PublicationSubjectServices) => readonly [import("../provider-sdk.js").ReleaseSubject];
185
+ }>;
186
+ export declare const pyPiPublicationCapability: Readonly<{
187
+ _tag: "PublicationCapability";
188
+ id: "publish.pypi";
189
+ preparedTag: "PreparedPyPiPublication";
190
+ profile: Readonly<{
191
+ id: "publish.pypi";
192
+ provider: "pypi";
193
+ preparedTag: "PreparedPyPiPublication";
194
+ recovery: {
195
+ readonly observation: "exact" | "none" | "conditional";
196
+ readonly authoritativeAbsence: "proved" | "provider-specific" | "unavailable";
197
+ readonly createAuthorization: "none" | "authenticated-namespace-and-unique-coordinate";
198
+ readonly replay: "conditional" | "coordinate-unique" | "idempotency-key" | "unsafe";
199
+ readonly identifierReuse: "reusable" | "consumed-after-delete" | "not-applicable";
200
+ readonly correction: readonly ("deprecate" | "amend-release-metadata" | "forward-catalog-state" | "yank-file")[];
201
+ readonly exposure: "retractable" | "persistent-to-consumers" | "append-only";
202
+ readonly historyRequirement: "optional-evidence" | "durable-cas-required";
203
+ readonly readConvergence: {
204
+ readonly contract: import("../publication/recovery.js").DocumentedReadConvergenceContract | import("../publication/recovery.js").AssumedReadConvergenceContract | import("../publication/recovery.js").UnknownReadConvergenceContract;
205
+ readonly observationRetry: {
206
+ readonly maxAttempts: number;
207
+ readonly backoff: import("../publication/recovery.js").ObservationRetryBackoff;
208
+ readonly totalBudgetMs: number;
209
+ };
210
+ readonly retryEligible: "VisibilityPending | Inconclusive";
211
+ readonly exhaustion: "UncertainSubject with full trace";
212
+ };
213
+ };
214
+ correctionAdapters: readonly [];
215
+ evidence: Readonly<{
216
+ reviewedAt: "2026-08-13";
217
+ observationSources: readonly string[];
218
+ correctionSources: readonly string[];
219
+ correctionFinding: "PyPI documents yanking behavior but no stable exact conditional per-file update API; no correction adapter is installed.";
220
+ }>;
221
+ }>;
222
+ fields: OwnedConfigField[];
223
+ requirements: {
224
+ executionHosts: readonly ["linux"];
225
+ nativeTools: never[];
226
+ artifactTargets: never[];
227
+ credentialStrategies: string[];
228
+ };
229
+ certification: {
230
+ boundary: "provider-protocol";
231
+ tests: string[];
232
+ };
233
+ contribute: ({ config, context, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
234
+ subjects: (bundle: import("../store.js").PreparedBundle, publication: import("../release/prepared.js").PreparedPyPiPublication, services: import("./module.js").PublicationSubjectServices) => readonly import("../provider-sdk.js").ReleaseSubject[];
235
+ }>;
236
+ export declare const catalogPublicationCapability: Readonly<{
237
+ _tag: "PublicationCapability";
238
+ id: "publish.catalog-git";
239
+ preparedTag: "PreparedCatalogPublication";
240
+ profile: Readonly<{
241
+ id: "publish.catalog-git";
242
+ provider: "catalog-git";
243
+ preparedTag: "PreparedCatalogPublication";
244
+ recovery: {
245
+ readonly observation: "exact" | "none" | "conditional";
246
+ readonly authoritativeAbsence: "proved" | "provider-specific" | "unavailable";
247
+ readonly createAuthorization: "none" | "authenticated-namespace-and-unique-coordinate";
248
+ readonly replay: "conditional" | "coordinate-unique" | "idempotency-key" | "unsafe";
249
+ readonly identifierReuse: "reusable" | "consumed-after-delete" | "not-applicable";
250
+ readonly correction: readonly ("deprecate" | "amend-release-metadata" | "forward-catalog-state" | "yank-file")[];
251
+ readonly exposure: "retractable" | "persistent-to-consumers" | "append-only";
252
+ readonly historyRequirement: "optional-evidence" | "durable-cas-required";
253
+ readonly readConvergence: {
254
+ readonly contract: import("../publication/recovery.js").DocumentedReadConvergenceContract | import("../publication/recovery.js").AssumedReadConvergenceContract | import("../publication/recovery.js").UnknownReadConvergenceContract;
255
+ readonly observationRetry: {
256
+ readonly maxAttempts: number;
257
+ readonly backoff: import("../publication/recovery.js").ObservationRetryBackoff;
258
+ readonly totalBudgetMs: number;
259
+ };
260
+ readonly retryEligible: "VisibilityPending | Inconclusive";
261
+ readonly exhaustion: "UncertainSubject with full trace";
262
+ };
263
+ };
264
+ correctionAdapters: readonly ["forward-catalog-state"];
265
+ evidence: Readonly<{
266
+ reviewedAt: "2026-08-13";
267
+ observationSources: readonly string[];
268
+ correctionSources: readonly string[];
269
+ correctionFinding: "Catalog correction is an exact forward SemVer replacement of the managed target/state pair on one observed Git commit; the ref update is non-forced.";
270
+ }>;
271
+ }>;
272
+ fields: readonly OwnedConfigField[];
273
+ requirements: {
274
+ executionHosts: readonly ["linux"];
275
+ nativeTools: never[];
276
+ artifactTargets: never[];
277
+ credentialStrategies: string[];
278
+ };
279
+ certification: {
280
+ boundary: "provider-protocol";
281
+ tests: string[];
282
+ };
283
+ contribute: ({ config, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
284
+ subjects: (bundle: import("../store.js").PreparedBundle, publication: import("../release/prepared.js").PreparedCatalogPublication, services: import("./module.js").PublicationSubjectServices) => readonly [import("../provider-sdk.js").ReleaseSubject];
285
+ }>;
286
+ /**
287
+ * The only installed capability registry. There are no support booleans and
288
+ * no symbol-path strings: deleting a module value deletes support.
289
+ */
290
+ export declare const capabilityModules: readonly [Readonly<{
291
+ _tag: "ResolutionCapability";
292
+ id: "release.identity";
293
+ fields: readonly OwnedConfigField[];
294
+ requirements: {
295
+ executionHosts: readonly ["linux"];
296
+ nativeTools: string[];
297
+ artifactTargets: never[];
298
+ credentialStrategies: never[];
299
+ };
300
+ certification: {
301
+ boundary: "root-api";
302
+ tests: string[];
303
+ };
304
+ resolve: (authored: unknown, facts: unknown) => import("../recipes/config.js").CandidateConfig;
305
+ }>, Readonly<{
306
+ _tag: "PreparationCapability";
307
+ id: "prepare.source";
308
+ phase: "source";
309
+ fields: readonly OwnedConfigField[];
310
+ requirements: {
311
+ executionHosts: readonly ["linux"];
312
+ nativeTools: string[];
313
+ artifactTargets: readonly ["linux-x64", "linux-arm64", "darwin-x64", "darwin-arm64"];
314
+ credentialStrategies: never[];
315
+ };
316
+ certification: {
317
+ boundary: "root-api";
318
+ tests: string[];
319
+ };
320
+ contribute: ({ config, context }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
321
+ }>, Readonly<{
322
+ _tag: "PreparationCapability";
323
+ id: "prepare.package";
324
+ phase: "package";
325
+ fields: readonly OwnedConfigField[];
326
+ requirements: {
327
+ executionHosts: readonly ["linux"];
328
+ nativeTools: never[];
329
+ artifactTargets: never[];
330
+ credentialStrategies: never[];
331
+ };
332
+ certification: {
333
+ boundary: "root-api";
334
+ tests: string[];
335
+ };
336
+ contribute: ({ config, availableArtifacts, context }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
337
+ }>, Readonly<{
338
+ _tag: "PreparationCapability";
339
+ id: "render.homebrew";
340
+ phase: "render";
341
+ fields: readonly OwnedConfigField[];
342
+ requirements: {
343
+ executionHosts: readonly ["linux"];
344
+ nativeTools: never[];
345
+ artifactTargets: never[];
346
+ credentialStrategies: never[];
347
+ };
348
+ certification: {
349
+ boundary: "root-api";
350
+ tests: string[];
351
+ };
352
+ contribute: ({ config, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
353
+ }>, Readonly<{
354
+ _tag: "PreparationCapability";
355
+ id: "render.scoop";
356
+ phase: "render";
357
+ fields: readonly OwnedConfigField[];
358
+ requirements: {
359
+ executionHosts: readonly ["linux"];
360
+ nativeTools: never[];
361
+ artifactTargets: never[];
362
+ credentialStrategies: never[];
363
+ };
364
+ certification: {
365
+ boundary: "root-api";
366
+ tests: string[];
367
+ };
368
+ contribute: ({ config, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
369
+ }>, Readonly<{
370
+ _tag: "PublicationCapability";
371
+ id: "publish.npm";
372
+ preparedTag: "PreparedNpmPublication";
373
+ profile: Readonly<{
374
+ id: "publish.npm";
375
+ provider: "npm";
376
+ preparedTag: "PreparedNpmPublication";
377
+ recovery: {
378
+ readonly observation: "exact" | "none" | "conditional";
379
+ readonly authoritativeAbsence: "proved" | "provider-specific" | "unavailable";
380
+ readonly createAuthorization: "none" | "authenticated-namespace-and-unique-coordinate";
381
+ readonly replay: "conditional" | "coordinate-unique" | "idempotency-key" | "unsafe";
382
+ readonly identifierReuse: "reusable" | "consumed-after-delete" | "not-applicable";
383
+ readonly correction: readonly ("deprecate" | "amend-release-metadata" | "forward-catalog-state" | "yank-file")[];
384
+ readonly exposure: "retractable" | "persistent-to-consumers" | "append-only";
385
+ readonly historyRequirement: "optional-evidence" | "durable-cas-required";
386
+ readonly readConvergence: {
387
+ readonly contract: import("../publication/recovery.js").DocumentedReadConvergenceContract | import("../publication/recovery.js").AssumedReadConvergenceContract | import("../publication/recovery.js").UnknownReadConvergenceContract;
388
+ readonly observationRetry: {
389
+ readonly maxAttempts: number;
390
+ readonly backoff: import("../publication/recovery.js").ObservationRetryBackoff;
391
+ readonly totalBudgetMs: number;
392
+ };
393
+ readonly retryEligible: "VisibilityPending | Inconclusive";
394
+ readonly exhaustion: "UncertainSubject with full trace";
395
+ };
396
+ };
397
+ correctionAdapters: readonly [];
398
+ evidence: Readonly<{
399
+ reviewedAt: "2026-08-12";
400
+ observationSources: readonly string[];
401
+ correctionSources: readonly string[];
402
+ correctionFinding: "Official npm documentation exposes deprecation but no conditional update bound to an observed package generation.";
403
+ }>;
404
+ }>;
405
+ fields: OwnedConfigField[];
406
+ requirements: {
407
+ executionHosts: readonly ["linux"];
408
+ nativeTools: string[];
409
+ artifactTargets: never[];
410
+ credentialStrategies: string[];
411
+ };
412
+ certification: {
413
+ boundary: "provider-protocol";
414
+ tests: string[];
415
+ };
416
+ contribute: ({ config, context }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
417
+ subjects: (bundle: import("../store.js").PreparedBundle, publication: import("../release/prepared.js").PreparedNpmPublication, services: import("./module.js").PublicationSubjectServices) => readonly [import("../provider-sdk.js").ReleaseSubject];
418
+ }>, Readonly<{
419
+ _tag: "PublicationCapability";
420
+ id: "publish.pypi";
421
+ preparedTag: "PreparedPyPiPublication";
422
+ profile: Readonly<{
423
+ id: "publish.pypi";
424
+ provider: "pypi";
425
+ preparedTag: "PreparedPyPiPublication";
426
+ recovery: {
427
+ readonly observation: "exact" | "none" | "conditional";
428
+ readonly authoritativeAbsence: "proved" | "provider-specific" | "unavailable";
429
+ readonly createAuthorization: "none" | "authenticated-namespace-and-unique-coordinate";
430
+ readonly replay: "conditional" | "coordinate-unique" | "idempotency-key" | "unsafe";
431
+ readonly identifierReuse: "reusable" | "consumed-after-delete" | "not-applicable";
432
+ readonly correction: readonly ("deprecate" | "amend-release-metadata" | "forward-catalog-state" | "yank-file")[];
433
+ readonly exposure: "retractable" | "persistent-to-consumers" | "append-only";
434
+ readonly historyRequirement: "optional-evidence" | "durable-cas-required";
435
+ readonly readConvergence: {
436
+ readonly contract: import("../publication/recovery.js").DocumentedReadConvergenceContract | import("../publication/recovery.js").AssumedReadConvergenceContract | import("../publication/recovery.js").UnknownReadConvergenceContract;
437
+ readonly observationRetry: {
438
+ readonly maxAttempts: number;
439
+ readonly backoff: import("../publication/recovery.js").ObservationRetryBackoff;
440
+ readonly totalBudgetMs: number;
441
+ };
442
+ readonly retryEligible: "VisibilityPending | Inconclusive";
443
+ readonly exhaustion: "UncertainSubject with full trace";
444
+ };
445
+ };
446
+ correctionAdapters: readonly [];
447
+ evidence: Readonly<{
448
+ reviewedAt: "2026-08-13";
449
+ observationSources: readonly string[];
450
+ correctionSources: readonly string[];
451
+ correctionFinding: "PyPI documents yanking behavior but no stable exact conditional per-file update API; no correction adapter is installed.";
452
+ }>;
453
+ }>;
454
+ fields: OwnedConfigField[];
455
+ requirements: {
456
+ executionHosts: readonly ["linux"];
457
+ nativeTools: never[];
458
+ artifactTargets: never[];
459
+ credentialStrategies: string[];
460
+ };
461
+ certification: {
462
+ boundary: "provider-protocol";
463
+ tests: string[];
464
+ };
465
+ contribute: ({ config, context, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
466
+ subjects: (bundle: import("../store.js").PreparedBundle, publication: import("../release/prepared.js").PreparedPyPiPublication, services: import("./module.js").PublicationSubjectServices) => readonly import("../provider-sdk.js").ReleaseSubject[];
467
+ }>, Readonly<{
468
+ _tag: "PublicationCapability";
469
+ id: "publish.github";
470
+ preparedTag: "PreparedGitHubPublication";
471
+ profile: Readonly<{
472
+ id: "publish.github";
473
+ provider: "github";
474
+ preparedTag: "PreparedGitHubPublication";
475
+ recovery: {
476
+ readonly observation: "exact" | "none" | "conditional";
477
+ readonly authoritativeAbsence: "proved" | "provider-specific" | "unavailable";
478
+ readonly createAuthorization: "none" | "authenticated-namespace-and-unique-coordinate";
479
+ readonly replay: "conditional" | "coordinate-unique" | "idempotency-key" | "unsafe";
480
+ readonly identifierReuse: "reusable" | "consumed-after-delete" | "not-applicable";
481
+ readonly correction: readonly ("deprecate" | "amend-release-metadata" | "forward-catalog-state" | "yank-file")[];
482
+ readonly exposure: "retractable" | "persistent-to-consumers" | "append-only";
483
+ readonly historyRequirement: "optional-evidence" | "durable-cas-required";
484
+ readonly readConvergence: {
485
+ readonly contract: import("../publication/recovery.js").DocumentedReadConvergenceContract | import("../publication/recovery.js").AssumedReadConvergenceContract | import("../publication/recovery.js").UnknownReadConvergenceContract;
486
+ readonly observationRetry: {
487
+ readonly maxAttempts: number;
488
+ readonly backoff: import("../publication/recovery.js").ObservationRetryBackoff;
489
+ readonly totalBudgetMs: number;
490
+ };
491
+ readonly retryEligible: "VisibilityPending | Inconclusive";
492
+ readonly exhaustion: "UncertainSubject with full trace";
493
+ };
494
+ };
495
+ correctionAdapters: readonly [];
496
+ evidence: Readonly<{
497
+ reviewedAt: "2026-08-12";
498
+ observationSources: readonly string[];
499
+ correctionSources: readonly string[];
500
+ correctionFinding: "GitHub documents conditional reads, but unsafe-method conditions are unsupported unless an endpoint says otherwise; the release update endpoint documents none.";
501
+ }>;
502
+ }>;
503
+ fields: readonly OwnedConfigField[];
504
+ requirements: {
505
+ executionHosts: readonly ["linux"];
506
+ nativeTools: never[];
507
+ artifactTargets: never[];
508
+ credentialStrategies: string[];
509
+ };
510
+ certification: {
511
+ boundary: "provider-protocol";
512
+ tests: string[];
513
+ };
514
+ contribute: ({ config, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
515
+ subjects: (bundle: import("../store.js").PreparedBundle, publication: import("../release/prepared.js").PreparedGitHubPublication, services: import("./module.js").PublicationSubjectServices) => readonly [import("../provider-sdk.js").ReleaseSubject];
516
+ }>, Readonly<{
517
+ _tag: "PublicationCapability";
518
+ id: "publish.catalog-git";
519
+ preparedTag: "PreparedCatalogPublication";
520
+ profile: Readonly<{
521
+ id: "publish.catalog-git";
522
+ provider: "catalog-git";
523
+ preparedTag: "PreparedCatalogPublication";
524
+ recovery: {
525
+ readonly observation: "exact" | "none" | "conditional";
526
+ readonly authoritativeAbsence: "proved" | "provider-specific" | "unavailable";
527
+ readonly createAuthorization: "none" | "authenticated-namespace-and-unique-coordinate";
528
+ readonly replay: "conditional" | "coordinate-unique" | "idempotency-key" | "unsafe";
529
+ readonly identifierReuse: "reusable" | "consumed-after-delete" | "not-applicable";
530
+ readonly correction: readonly ("deprecate" | "amend-release-metadata" | "forward-catalog-state" | "yank-file")[];
531
+ readonly exposure: "retractable" | "persistent-to-consumers" | "append-only";
532
+ readonly historyRequirement: "optional-evidence" | "durable-cas-required";
533
+ readonly readConvergence: {
534
+ readonly contract: import("../publication/recovery.js").DocumentedReadConvergenceContract | import("../publication/recovery.js").AssumedReadConvergenceContract | import("../publication/recovery.js").UnknownReadConvergenceContract;
535
+ readonly observationRetry: {
536
+ readonly maxAttempts: number;
537
+ readonly backoff: import("../publication/recovery.js").ObservationRetryBackoff;
538
+ readonly totalBudgetMs: number;
539
+ };
540
+ readonly retryEligible: "VisibilityPending | Inconclusive";
541
+ readonly exhaustion: "UncertainSubject with full trace";
542
+ };
543
+ };
544
+ correctionAdapters: readonly ["forward-catalog-state"];
545
+ evidence: Readonly<{
546
+ reviewedAt: "2026-08-13";
547
+ observationSources: readonly string[];
548
+ correctionSources: readonly string[];
549
+ correctionFinding: "Catalog correction is an exact forward SemVer replacement of the managed target/state pair on one observed Git commit; the ref update is non-forced.";
550
+ }>;
551
+ }>;
552
+ fields: readonly OwnedConfigField[];
553
+ requirements: {
554
+ executionHosts: readonly ["linux"];
555
+ nativeTools: never[];
556
+ artifactTargets: never[];
557
+ credentialStrategies: string[];
558
+ };
559
+ certification: {
560
+ boundary: "provider-protocol";
561
+ tests: string[];
562
+ };
563
+ contribute: ({ config, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
564
+ subjects: (bundle: import("../store.js").PreparedBundle, publication: import("../release/prepared.js").PreparedCatalogPublication, services: import("./module.js").PublicationSubjectServices) => readonly [import("../provider-sdk.js").ReleaseSubject];
565
+ }>];
566
+ export declare const preparationCapabilities: readonly [Readonly<{
567
+ _tag: "PreparationCapability";
568
+ id: "prepare.source";
569
+ phase: "source";
570
+ fields: readonly OwnedConfigField[];
571
+ requirements: {
572
+ executionHosts: readonly ["linux"];
573
+ nativeTools: string[];
574
+ artifactTargets: readonly ["linux-x64", "linux-arm64", "darwin-x64", "darwin-arm64"];
575
+ credentialStrategies: never[];
576
+ };
577
+ certification: {
578
+ boundary: "root-api";
579
+ tests: string[];
580
+ };
581
+ contribute: ({ config, context }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
582
+ }>, Readonly<{
583
+ _tag: "PreparationCapability";
584
+ id: "prepare.package";
585
+ phase: "package";
586
+ fields: readonly OwnedConfigField[];
587
+ requirements: {
588
+ executionHosts: readonly ["linux"];
589
+ nativeTools: never[];
590
+ artifactTargets: never[];
591
+ credentialStrategies: never[];
592
+ };
593
+ certification: {
594
+ boundary: "root-api";
595
+ tests: string[];
596
+ };
597
+ contribute: ({ config, availableArtifacts, context }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
598
+ }>, Readonly<{
599
+ _tag: "PreparationCapability";
600
+ id: "render.homebrew";
601
+ phase: "render";
602
+ fields: readonly OwnedConfigField[];
603
+ requirements: {
604
+ executionHosts: readonly ["linux"];
605
+ nativeTools: never[];
606
+ artifactTargets: never[];
607
+ credentialStrategies: never[];
608
+ };
609
+ certification: {
610
+ boundary: "root-api";
611
+ tests: string[];
612
+ };
613
+ contribute: ({ config, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
614
+ }>, Readonly<{
615
+ _tag: "PreparationCapability";
616
+ id: "render.scoop";
617
+ phase: "render";
618
+ fields: readonly OwnedConfigField[];
619
+ requirements: {
620
+ executionHosts: readonly ["linux"];
621
+ nativeTools: never[];
622
+ artifactTargets: never[];
623
+ credentialStrategies: never[];
624
+ };
625
+ certification: {
626
+ boundary: "root-api";
627
+ tests: string[];
628
+ };
629
+ contribute: ({ config, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
630
+ }>];
631
+ export declare const publicationCapabilities: readonly [Readonly<{
632
+ _tag: "PublicationCapability";
633
+ id: "publish.npm";
634
+ preparedTag: "PreparedNpmPublication";
635
+ profile: Readonly<{
636
+ id: "publish.npm";
637
+ provider: "npm";
638
+ preparedTag: "PreparedNpmPublication";
639
+ recovery: {
640
+ readonly observation: "exact" | "none" | "conditional";
641
+ readonly authoritativeAbsence: "proved" | "provider-specific" | "unavailable";
642
+ readonly createAuthorization: "none" | "authenticated-namespace-and-unique-coordinate";
643
+ readonly replay: "conditional" | "coordinate-unique" | "idempotency-key" | "unsafe";
644
+ readonly identifierReuse: "reusable" | "consumed-after-delete" | "not-applicable";
645
+ readonly correction: readonly ("deprecate" | "amend-release-metadata" | "forward-catalog-state" | "yank-file")[];
646
+ readonly exposure: "retractable" | "persistent-to-consumers" | "append-only";
647
+ readonly historyRequirement: "optional-evidence" | "durable-cas-required";
648
+ readonly readConvergence: {
649
+ readonly contract: import("../publication/recovery.js").DocumentedReadConvergenceContract | import("../publication/recovery.js").AssumedReadConvergenceContract | import("../publication/recovery.js").UnknownReadConvergenceContract;
650
+ readonly observationRetry: {
651
+ readonly maxAttempts: number;
652
+ readonly backoff: import("../publication/recovery.js").ObservationRetryBackoff;
653
+ readonly totalBudgetMs: number;
654
+ };
655
+ readonly retryEligible: "VisibilityPending | Inconclusive";
656
+ readonly exhaustion: "UncertainSubject with full trace";
657
+ };
658
+ };
659
+ correctionAdapters: readonly [];
660
+ evidence: Readonly<{
661
+ reviewedAt: "2026-08-12";
662
+ observationSources: readonly string[];
663
+ correctionSources: readonly string[];
664
+ correctionFinding: "Official npm documentation exposes deprecation but no conditional update bound to an observed package generation.";
665
+ }>;
666
+ }>;
667
+ fields: OwnedConfigField[];
668
+ requirements: {
669
+ executionHosts: readonly ["linux"];
670
+ nativeTools: string[];
671
+ artifactTargets: never[];
672
+ credentialStrategies: string[];
673
+ };
674
+ certification: {
675
+ boundary: "provider-protocol";
676
+ tests: string[];
677
+ };
678
+ contribute: ({ config, context }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
679
+ subjects: (bundle: import("../store.js").PreparedBundle, publication: import("../release/prepared.js").PreparedNpmPublication, services: import("./module.js").PublicationSubjectServices) => readonly [import("../provider-sdk.js").ReleaseSubject];
680
+ }>, Readonly<{
681
+ _tag: "PublicationCapability";
682
+ id: "publish.pypi";
683
+ preparedTag: "PreparedPyPiPublication";
684
+ profile: Readonly<{
685
+ id: "publish.pypi";
686
+ provider: "pypi";
687
+ preparedTag: "PreparedPyPiPublication";
688
+ recovery: {
689
+ readonly observation: "exact" | "none" | "conditional";
690
+ readonly authoritativeAbsence: "proved" | "provider-specific" | "unavailable";
691
+ readonly createAuthorization: "none" | "authenticated-namespace-and-unique-coordinate";
692
+ readonly replay: "conditional" | "coordinate-unique" | "idempotency-key" | "unsafe";
693
+ readonly identifierReuse: "reusable" | "consumed-after-delete" | "not-applicable";
694
+ readonly correction: readonly ("deprecate" | "amend-release-metadata" | "forward-catalog-state" | "yank-file")[];
695
+ readonly exposure: "retractable" | "persistent-to-consumers" | "append-only";
696
+ readonly historyRequirement: "optional-evidence" | "durable-cas-required";
697
+ readonly readConvergence: {
698
+ readonly contract: import("../publication/recovery.js").DocumentedReadConvergenceContract | import("../publication/recovery.js").AssumedReadConvergenceContract | import("../publication/recovery.js").UnknownReadConvergenceContract;
699
+ readonly observationRetry: {
700
+ readonly maxAttempts: number;
701
+ readonly backoff: import("../publication/recovery.js").ObservationRetryBackoff;
702
+ readonly totalBudgetMs: number;
703
+ };
704
+ readonly retryEligible: "VisibilityPending | Inconclusive";
705
+ readonly exhaustion: "UncertainSubject with full trace";
706
+ };
707
+ };
708
+ correctionAdapters: readonly [];
709
+ evidence: Readonly<{
710
+ reviewedAt: "2026-08-13";
711
+ observationSources: readonly string[];
712
+ correctionSources: readonly string[];
713
+ correctionFinding: "PyPI documents yanking behavior but no stable exact conditional per-file update API; no correction adapter is installed.";
714
+ }>;
715
+ }>;
716
+ fields: OwnedConfigField[];
717
+ requirements: {
718
+ executionHosts: readonly ["linux"];
719
+ nativeTools: never[];
720
+ artifactTargets: never[];
721
+ credentialStrategies: string[];
722
+ };
723
+ certification: {
724
+ boundary: "provider-protocol";
725
+ tests: string[];
726
+ };
727
+ contribute: ({ config, context, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
728
+ subjects: (bundle: import("../store.js").PreparedBundle, publication: import("../release/prepared.js").PreparedPyPiPublication, services: import("./module.js").PublicationSubjectServices) => readonly import("../provider-sdk.js").ReleaseSubject[];
729
+ }>, Readonly<{
730
+ _tag: "PublicationCapability";
731
+ id: "publish.github";
732
+ preparedTag: "PreparedGitHubPublication";
733
+ profile: Readonly<{
734
+ id: "publish.github";
735
+ provider: "github";
736
+ preparedTag: "PreparedGitHubPublication";
737
+ recovery: {
738
+ readonly observation: "exact" | "none" | "conditional";
739
+ readonly authoritativeAbsence: "proved" | "provider-specific" | "unavailable";
740
+ readonly createAuthorization: "none" | "authenticated-namespace-and-unique-coordinate";
741
+ readonly replay: "conditional" | "coordinate-unique" | "idempotency-key" | "unsafe";
742
+ readonly identifierReuse: "reusable" | "consumed-after-delete" | "not-applicable";
743
+ readonly correction: readonly ("deprecate" | "amend-release-metadata" | "forward-catalog-state" | "yank-file")[];
744
+ readonly exposure: "retractable" | "persistent-to-consumers" | "append-only";
745
+ readonly historyRequirement: "optional-evidence" | "durable-cas-required";
746
+ readonly readConvergence: {
747
+ readonly contract: import("../publication/recovery.js").DocumentedReadConvergenceContract | import("../publication/recovery.js").AssumedReadConvergenceContract | import("../publication/recovery.js").UnknownReadConvergenceContract;
748
+ readonly observationRetry: {
749
+ readonly maxAttempts: number;
750
+ readonly backoff: import("../publication/recovery.js").ObservationRetryBackoff;
751
+ readonly totalBudgetMs: number;
752
+ };
753
+ readonly retryEligible: "VisibilityPending | Inconclusive";
754
+ readonly exhaustion: "UncertainSubject with full trace";
755
+ };
756
+ };
757
+ correctionAdapters: readonly [];
758
+ evidence: Readonly<{
759
+ reviewedAt: "2026-08-12";
760
+ observationSources: readonly string[];
761
+ correctionSources: readonly string[];
762
+ correctionFinding: "GitHub documents conditional reads, but unsafe-method conditions are unsupported unless an endpoint says otherwise; the release update endpoint documents none.";
763
+ }>;
764
+ }>;
765
+ fields: readonly OwnedConfigField[];
766
+ requirements: {
767
+ executionHosts: readonly ["linux"];
768
+ nativeTools: never[];
769
+ artifactTargets: never[];
770
+ credentialStrategies: string[];
771
+ };
772
+ certification: {
773
+ boundary: "provider-protocol";
774
+ tests: string[];
775
+ };
776
+ contribute: ({ config, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
777
+ subjects: (bundle: import("../store.js").PreparedBundle, publication: import("../release/prepared.js").PreparedGitHubPublication, services: import("./module.js").PublicationSubjectServices) => readonly [import("../provider-sdk.js").ReleaseSubject];
778
+ }>, Readonly<{
779
+ _tag: "PublicationCapability";
780
+ id: "publish.catalog-git";
781
+ preparedTag: "PreparedCatalogPublication";
782
+ profile: Readonly<{
783
+ id: "publish.catalog-git";
784
+ provider: "catalog-git";
785
+ preparedTag: "PreparedCatalogPublication";
786
+ recovery: {
787
+ readonly observation: "exact" | "none" | "conditional";
788
+ readonly authoritativeAbsence: "proved" | "provider-specific" | "unavailable";
789
+ readonly createAuthorization: "none" | "authenticated-namespace-and-unique-coordinate";
790
+ readonly replay: "conditional" | "coordinate-unique" | "idempotency-key" | "unsafe";
791
+ readonly identifierReuse: "reusable" | "consumed-after-delete" | "not-applicable";
792
+ readonly correction: readonly ("deprecate" | "amend-release-metadata" | "forward-catalog-state" | "yank-file")[];
793
+ readonly exposure: "retractable" | "persistent-to-consumers" | "append-only";
794
+ readonly historyRequirement: "optional-evidence" | "durable-cas-required";
795
+ readonly readConvergence: {
796
+ readonly contract: import("../publication/recovery.js").DocumentedReadConvergenceContract | import("../publication/recovery.js").AssumedReadConvergenceContract | import("../publication/recovery.js").UnknownReadConvergenceContract;
797
+ readonly observationRetry: {
798
+ readonly maxAttempts: number;
799
+ readonly backoff: import("../publication/recovery.js").ObservationRetryBackoff;
800
+ readonly totalBudgetMs: number;
801
+ };
802
+ readonly retryEligible: "VisibilityPending | Inconclusive";
803
+ readonly exhaustion: "UncertainSubject with full trace";
804
+ };
805
+ };
806
+ correctionAdapters: readonly ["forward-catalog-state"];
807
+ evidence: Readonly<{
808
+ reviewedAt: "2026-08-13";
809
+ observationSources: readonly string[];
810
+ correctionSources: readonly string[];
811
+ correctionFinding: "Catalog correction is an exact forward SemVer replacement of the managed target/state pair on one observed Git commit; the ref update is non-forced.";
812
+ }>;
813
+ }>;
814
+ fields: readonly OwnedConfigField[];
815
+ requirements: {
816
+ executionHosts: readonly ["linux"];
817
+ nativeTools: never[];
818
+ artifactTargets: never[];
819
+ credentialStrategies: string[];
820
+ };
821
+ certification: {
822
+ boundary: "provider-protocol";
823
+ tests: string[];
824
+ };
825
+ contribute: ({ config, availableArtifacts }: import("./module.js").CompilationSnapshot) => import("../release/graph.js").CapabilityContribution;
826
+ subjects: (bundle: import("../store.js").PreparedBundle, publication: import("../release/prepared.js").PreparedCatalogPublication, services: import("./module.js").PublicationSubjectServices) => readonly [import("../provider-sdk.js").ReleaseSubject];
827
+ }>];
828
+ export declare const capabilityIds: readonly ("release.identity" | "prepare.source" | "prepare.package" | "render.homebrew" | "render.scoop" | "publish.npm" | "publish.pypi" | "publish.catalog-git" | "publish.github")[];
829
+ //# sourceMappingURL=registry.d.ts.map