@mannyc1/ts-release 0.0.6 → 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 (639) hide show
  1. package/ARCHITECTURE.md +124 -87
  2. package/CHANGELOG.md +115 -0
  3. package/LICENSE +21 -0
  4. package/README.md +272 -540
  5. package/SPEC.md +206 -305
  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 +61 -154
  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 -59
  440. package/templates/bun-cli-github/README.md +12 -0
  441. package/templates/bun-cli-github/release.config.json +51 -0
  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/config/errors.d.ts +0 -24
  455. package/dist/config/errors.d.ts.map +0 -1
  456. package/dist/config/errors.js +0 -19
  457. package/dist/config/errors.js.map +0 -1
  458. package/dist/config/load.d.ts +0 -9
  459. package/dist/config/load.d.ts.map +0 -1
  460. package/dist/config/load.js +0 -29
  461. package/dist/config/load.js.map +0 -1
  462. package/dist/config/schema.d.ts +0 -12
  463. package/dist/config/schema.d.ts.map +0 -1
  464. package/dist/config/schema.js +0 -19
  465. package/dist/config/schema.js.map +0 -1
  466. package/dist/domain/artifact.d.ts +0 -36
  467. package/dist/domain/artifact.d.ts.map +0 -1
  468. package/dist/domain/artifact.js +0 -29
  469. package/dist/domain/artifact.js.map +0 -1
  470. package/dist/domain/evidence.d.ts +0 -108
  471. package/dist/domain/evidence.d.ts.map +0 -1
  472. package/dist/domain/evidence.js +0 -96
  473. package/dist/domain/evidence.js.map +0 -1
  474. package/dist/domain/operation.d.ts +0 -153
  475. package/dist/domain/operation.d.ts.map +0 -1
  476. package/dist/domain/operation.js +0 -320
  477. package/dist/domain/operation.js.map +0 -1
  478. package/dist/domain/release.d.ts +0 -141
  479. package/dist/domain/release.d.ts.map +0 -1
  480. package/dist/domain/release.js +0 -127
  481. package/dist/domain/release.js.map +0 -1
  482. package/dist/domain/remote-state.d.ts +0 -85
  483. package/dist/domain/remote-state.d.ts.map +0 -1
  484. package/dist/domain/remote-state.js +0 -77
  485. package/dist/domain/remote-state.js.map +0 -1
  486. package/dist/domain/status.d.ts +0 -43
  487. package/dist/domain/status.d.ts.map +0 -1
  488. package/dist/domain/status.js +0 -51
  489. package/dist/domain/status.js.map +0 -1
  490. package/dist/domain/target.d.ts +0 -135
  491. package/dist/domain/target.d.ts.map +0 -1
  492. package/dist/domain/target.js +0 -137
  493. package/dist/domain/target.js.map +0 -1
  494. package/dist/host/host.d.ts +0 -32
  495. package/dist/host/host.d.ts.map +0 -1
  496. package/dist/host/host.js +0 -24
  497. package/dist/host/host.js.map +0 -1
  498. package/dist/host/http-live.d.ts +0 -6
  499. package/dist/host/http-live.d.ts.map +0 -1
  500. package/dist/host/http-live.js +0 -86
  501. package/dist/host/http-live.js.map +0 -1
  502. package/dist/host/http.d.ts +0 -43
  503. package/dist/host/http.d.ts.map +0 -1
  504. package/dist/host/http.js +0 -59
  505. package/dist/host/http.js.map +0 -1
  506. package/dist/host/platform.d.ts +0 -10
  507. package/dist/host/platform.d.ts.map +0 -1
  508. package/dist/host/platform.js +0 -114
  509. package/dist/host/platform.js.map +0 -1
  510. package/dist/host/test.d.ts +0 -23
  511. package/dist/host/test.d.ts.map +0 -1
  512. package/dist/host/test.js +0 -222
  513. package/dist/host/test.js.map +0 -1
  514. package/dist/internal/workflow-phases.d.ts +0 -3
  515. package/dist/internal/workflow-phases.d.ts.map +0 -1
  516. package/dist/internal/workflow-phases.js +0 -2
  517. package/dist/internal/workflow-phases.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 -84
  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 -81
  531. package/dist/planner/errors.d.ts.map +0 -1
  532. package/dist/planner/errors.js +0 -70
  533. package/dist/planner/errors.js.map +0 -1
  534. package/dist/planner/evidence-recorder.d.ts +0 -26
  535. package/dist/planner/evidence-recorder.d.ts.map +0 -1
  536. package/dist/planner/evidence-recorder.js +0 -330
  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 -159
  541. package/dist/planner/executor.js.map +0 -1
  542. package/dist/planner/normalize-release.d.ts +0 -16
  543. package/dist/planner/normalize-release.d.ts.map +0 -1
  544. package/dist/planner/normalize-release.js +0 -218
  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 -261
  549. package/dist/planner/reconcile.js.map +0 -1
  550. package/dist/planner/release-eligibility.d.ts +0 -39
  551. package/dist/planner/release-eligibility.d.ts.map +0 -1
  552. package/dist/planner/release-eligibility.js +0 -578
  553. package/dist/planner/release-eligibility.js.map +0 -1
  554. package/dist/planner/render-plan.d.ts +0 -15
  555. package/dist/planner/render-plan.d.ts.map +0 -1
  556. package/dist/planner/render-plan.js +0 -238
  557. package/dist/planner/render-plan.js.map +0 -1
  558. package/dist/planner/status.d.ts +0 -40
  559. package/dist/planner/status.d.ts.map +0 -1
  560. package/dist/planner/status.js +0 -313
  561. package/dist/planner/status.js.map +0 -1
  562. package/dist/targets/adapter-helpers.d.ts +0 -64
  563. package/dist/targets/adapter-helpers.d.ts.map +0 -1
  564. package/dist/targets/adapter-helpers.js +0 -124
  565. package/dist/targets/adapter-helpers.js.map +0 -1
  566. package/dist/targets/adapter.d.ts +0 -17
  567. package/dist/targets/adapter.d.ts.map +0 -1
  568. package/dist/targets/adapter.js +0 -2
  569. package/dist/targets/adapter.js.map +0 -1
  570. package/dist/targets/github-release.d.ts +0 -25
  571. package/dist/targets/github-release.d.ts.map +0 -1
  572. package/dist/targets/github-release.js +0 -82
  573. package/dist/targets/github-release.js.map +0 -1
  574. package/dist/targets/github.d.ts +0 -11
  575. package/dist/targets/github.d.ts.map +0 -1
  576. package/dist/targets/github.js +0 -125
  577. package/dist/targets/github.js.map +0 -1
  578. package/dist/targets/homebrew.d.ts +0 -11
  579. package/dist/targets/homebrew.d.ts.map +0 -1
  580. package/dist/targets/homebrew.js +0 -97
  581. package/dist/targets/homebrew.js.map +0 -1
  582. package/dist/targets/live.d.ts +0 -5
  583. package/dist/targets/live.d.ts.map +0 -1
  584. package/dist/targets/live.js +0 -50
  585. package/dist/targets/live.js.map +0 -1
  586. package/dist/targets/npm.d.ts +0 -10
  587. package/dist/targets/npm.d.ts.map +0 -1
  588. package/dist/targets/npm.js +0 -118
  589. package/dist/targets/npm.js.map +0 -1
  590. package/dist/targets/pypi.d.ts +0 -11
  591. package/dist/targets/pypi.d.ts.map +0 -1
  592. package/dist/targets/pypi.js +0 -103
  593. package/dist/targets/pypi.js.map +0 -1
  594. package/dist/targets/registry.d.ts +0 -25
  595. package/dist/targets/registry.d.ts.map +0 -1
  596. package/dist/targets/registry.js +0 -34
  597. package/dist/targets/registry.js.map +0 -1
  598. package/dist/targets/scoop.d.ts +0 -11
  599. package/dist/targets/scoop.d.ts.map +0 -1
  600. package/dist/targets/scoop.js +0 -78
  601. package/dist/targets/scoop.js.map +0 -1
  602. package/dist/types/effect-internal.d.ts +0 -5
  603. package/dist/types/effect-internal.d.ts.map +0 -1
  604. package/dist/types/effect-internal.js +0 -2
  605. package/dist/types/effect-internal.js.map +0 -1
  606. package/dist/workflows/config.d.ts +0 -252
  607. package/dist/workflows/config.d.ts.map +0 -1
  608. package/dist/workflows/config.js +0 -465
  609. package/dist/workflows/config.js.map +0 -1
  610. package/dist/workflows/diagnostics.d.ts +0 -62
  611. package/dist/workflows/diagnostics.d.ts.map +0 -1
  612. package/dist/workflows/diagnostics.js +0 -527
  613. package/dist/workflows/diagnostics.js.map +0 -1
  614. package/dist/workflows/evidence.d.ts +0 -26
  615. package/dist/workflows/evidence.d.ts.map +0 -1
  616. package/dist/workflows/evidence.js +0 -44
  617. package/dist/workflows/evidence.js.map +0 -1
  618. package/dist/workflows/index.d.ts +0 -7
  619. package/dist/workflows/index.d.ts.map +0 -1
  620. package/dist/workflows/index.js +0 -6
  621. package/dist/workflows/index.js.map +0 -1
  622. package/dist/workflows/init.d.ts +0 -84
  623. package/dist/workflows/init.d.ts.map +0 -1
  624. package/dist/workflows/init.js +0 -441
  625. package/dist/workflows/init.js.map +0 -1
  626. package/dist/workflows/live.d.ts +0 -9
  627. package/dist/workflows/live.d.ts.map +0 -1
  628. package/dist/workflows/live.js +0 -7
  629. package/dist/workflows/live.js.map +0 -1
  630. package/dist/workflows/options.d.ts +0 -30
  631. package/dist/workflows/options.d.ts.map +0 -1
  632. package/dist/workflows/options.js +0 -16
  633. package/dist/workflows/options.js.map +0 -1
  634. package/examples/non-strict-skips/artifacts/release-example-skips-0.1.0.tgz +0 -1
  635. package/examples/non-strict-skips/release.config.json +0 -31
  636. package/examples/pypi-registry/release.config.json +0 -31
  637. package/templates/github-actions/plan-and-approved-execute.yml +0 -58
  638. package/templates/github-actions/plan-only.yml +0 -33
  639. 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