@mannyc1/ts-release 0.0.7 → 0.3.0

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 (695) hide show
  1. package/ARCHITECTURE.md +184 -92
  2. package/CHANGELOG.md +197 -0
  3. package/LICENSE +21 -0
  4. package/README.md +404 -327
  5. package/SPEC.md +257 -310
  6. package/apps/release-ts/README.md +39 -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 +122 -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 +39346 -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 +9 -0
  82. package/dist/drivers/archive.d.ts.map +1 -0
  83. package/dist/drivers/archive.js +105 -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/python-wheel.d.ts +21 -0
  106. package/dist/drivers/python-wheel.d.ts.map +1 -0
  107. package/dist/drivers/python-wheel.js +109 -0
  108. package/dist/drivers/python-wheel.js.map +1 -0
  109. package/dist/drivers/redact.d.ts +4 -0
  110. package/dist/drivers/redact.d.ts.map +1 -0
  111. package/dist/drivers/redact.js +24 -0
  112. package/dist/drivers/redact.js.map +1 -0
  113. package/dist/drivers/seccomp-helper-source.d.ts +7 -0
  114. package/dist/drivers/seccomp-helper-source.d.ts.map +1 -0
  115. package/dist/drivers/seccomp-helper-source.js +121 -0
  116. package/dist/drivers/seccomp-helper-source.js.map +1 -0
  117. package/dist/drivers/utils.d.ts +4 -0
  118. package/dist/drivers/utils.d.ts.map +1 -0
  119. package/dist/drivers/utils.js +5 -0
  120. package/dist/drivers/utils.js.map +1 -0
  121. package/dist/drivers/workspace.d.ts +9 -0
  122. package/dist/drivers/workspace.d.ts.map +1 -0
  123. package/dist/drivers/workspace.js +53 -0
  124. package/dist/drivers/workspace.js.map +1 -0
  125. package/dist/extensions/provider-adapter.d.ts +48 -0
  126. package/dist/extensions/provider-adapter.d.ts.map +1 -0
  127. package/dist/extensions/provider-adapter.js +64 -0
  128. package/dist/extensions/provider-adapter.js.map +1 -0
  129. package/dist/host.d.ts +33 -0
  130. package/dist/host.d.ts.map +1 -0
  131. package/dist/host.js +20 -0
  132. package/dist/host.js.map +1 -0
  133. package/dist/index.d.ts +19 -1
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +12 -1
  136. package/dist/index.js.map +1 -1
  137. package/dist/model/artifact-collection.d.ts +84 -0
  138. package/dist/model/artifact-collection.d.ts.map +1 -0
  139. package/dist/model/artifact-collection.js +185 -0
  140. package/dist/model/artifact-collection.js.map +1 -0
  141. package/dist/model/authority.d.ts +89 -0
  142. package/dist/model/authority.d.ts.map +1 -0
  143. package/dist/model/authority.js +80 -0
  144. package/dist/model/authority.js.map +1 -0
  145. package/dist/model/bun-targets.d.ts +34 -0
  146. package/dist/model/bun-targets.d.ts.map +1 -0
  147. package/dist/model/bun-targets.js +17 -0
  148. package/dist/model/bun-targets.js.map +1 -0
  149. package/dist/model/canonical.d.ts +8 -0
  150. package/dist/model/canonical.d.ts.map +1 -0
  151. package/dist/model/canonical.js +205 -0
  152. package/dist/model/canonical.js.map +1 -0
  153. package/dist/model/catalog.d.ts +76 -0
  154. package/dist/model/catalog.d.ts.map +1 -0
  155. package/dist/model/catalog.js +174 -0
  156. package/dist/model/catalog.js.map +1 -0
  157. package/dist/model/digest.d.ts +53 -0
  158. package/dist/model/digest.d.ts.map +1 -0
  159. package/dist/model/digest.js +127 -0
  160. package/dist/model/digest.js.map +1 -0
  161. package/dist/model/errors.d.ts +14 -0
  162. package/dist/model/errors.d.ts.map +1 -0
  163. package/dist/model/errors.js +8 -0
  164. package/dist/model/errors.js.map +1 -0
  165. package/dist/model/primitives.d.ts +19 -0
  166. package/dist/model/primitives.d.ts.map +1 -0
  167. package/dist/model/primitives.js +18 -0
  168. package/dist/model/primitives.js.map +1 -0
  169. package/dist/model/pypi.d.ts +12 -0
  170. package/dist/model/pypi.d.ts.map +1 -0
  171. package/dist/model/pypi.js +20 -0
  172. package/dist/model/pypi.js.map +1 -0
  173. package/dist/model/python-distribution.d.ts +33 -0
  174. package/dist/model/python-distribution.d.ts.map +1 -0
  175. package/dist/model/python-distribution.js +367 -0
  176. package/dist/model/python-distribution.js.map +1 -0
  177. package/dist/model/secret-patterns.d.ts +2 -0
  178. package/dist/model/secret-patterns.d.ts.map +1 -0
  179. package/dist/model/secret-patterns.js +12 -0
  180. package/dist/model/secret-patterns.js.map +1 -0
  181. package/dist/operation-journal/authority.d.ts +3 -0
  182. package/dist/operation-journal/authority.d.ts.map +1 -0
  183. package/dist/operation-journal/authority.js +147 -0
  184. package/dist/operation-journal/authority.js.map +1 -0
  185. package/dist/operation-journal/aws/deadline.d.ts +12 -0
  186. package/dist/operation-journal/aws/deadline.d.ts.map +1 -0
  187. package/dist/operation-journal/aws/deadline.js +38 -0
  188. package/dist/operation-journal/aws/deadline.js.map +1 -0
  189. package/dist/operation-journal/aws/oidc.d.ts +27 -0
  190. package/dist/operation-journal/aws/oidc.d.ts.map +1 -0
  191. package/dist/operation-journal/aws/oidc.js +361 -0
  192. package/dist/operation-journal/aws/oidc.js.map +1 -0
  193. package/dist/operation-journal/aws/policy.d.ts +42 -0
  194. package/dist/operation-journal/aws/policy.d.ts.map +1 -0
  195. package/dist/operation-journal/aws/policy.js +404 -0
  196. package/dist/operation-journal/aws/policy.js.map +1 -0
  197. package/dist/operation-journal/aws/s3-boundary.d.ts +17 -0
  198. package/dist/operation-journal/aws/s3-boundary.d.ts.map +1 -0
  199. package/dist/operation-journal/aws/s3-boundary.js +417 -0
  200. package/dist/operation-journal/aws/s3-boundary.js.map +1 -0
  201. package/dist/operation-journal/aws.d.ts +11 -0
  202. package/dist/operation-journal/aws.d.ts.map +1 -0
  203. package/dist/operation-journal/aws.js +50 -0
  204. package/dist/operation-journal/aws.js.map +1 -0
  205. package/dist/operation-journal/canonical.d.ts +52 -0
  206. package/dist/operation-journal/canonical.d.ts.map +1 -0
  207. package/dist/operation-journal/canonical.js +282 -0
  208. package/dist/operation-journal/canonical.js.map +1 -0
  209. package/dist/operation-journal/model.d.ts +251 -0
  210. package/dist/operation-journal/model.d.ts.map +1 -0
  211. package/dist/operation-journal/model.js +56 -0
  212. package/dist/operation-journal/model.js.map +1 -0
  213. package/dist/operation-journal/reducer.d.ts +28 -0
  214. package/dist/operation-journal/reducer.d.ts.map +1 -0
  215. package/dist/operation-journal/reducer.js +73 -0
  216. package/dist/operation-journal/reducer.js.map +1 -0
  217. package/dist/operation-journal/s3.d.ts +7 -0
  218. package/dist/operation-journal/s3.d.ts.map +1 -0
  219. package/dist/operation-journal/s3.js +667 -0
  220. package/dist/operation-journal/s3.js.map +1 -0
  221. package/dist/operation-journal.d.ts +14 -0
  222. package/dist/operation-journal.d.ts.map +1 -0
  223. package/dist/operation-journal.js +12 -0
  224. package/dist/operation-journal.js.map +1 -0
  225. package/dist/platform/bun.d.ts +7 -0
  226. package/dist/platform/bun.d.ts.map +1 -0
  227. package/dist/platform/bun.js +15 -0
  228. package/dist/platform/bun.js.map +1 -0
  229. package/dist/platform/credentials.d.ts +32 -0
  230. package/dist/platform/credentials.d.ts.map +1 -0
  231. package/dist/platform/credentials.js +834 -0
  232. package/dist/platform/credentials.js.map +1 -0
  233. package/dist/platform/host-support.d.ts +2 -0
  234. package/dist/platform/host-support.d.ts.map +1 -0
  235. package/dist/platform/host-support.js +4 -0
  236. package/dist/platform/host-support.js.map +1 -0
  237. package/dist/platform/node.d.ts +7 -0
  238. package/dist/platform/node.d.ts.map +1 -0
  239. package/dist/platform/node.js +15 -0
  240. package/dist/platform/node.js.map +1 -0
  241. package/dist/platform/release-runtime.d.ts +11 -0
  242. package/dist/platform/release-runtime.d.ts.map +1 -0
  243. package/dist/platform/release-runtime.js +34 -0
  244. package/dist/platform/release-runtime.js.map +1 -0
  245. package/dist/platform/services.d.ts +15 -0
  246. package/dist/platform/services.d.ts.map +1 -0
  247. package/dist/platform/services.js +30 -0
  248. package/dist/platform/services.js.map +1 -0
  249. package/dist/platform/source-observer.d.ts +5 -0
  250. package/dist/platform/source-observer.d.ts.map +1 -0
  251. package/dist/platform/source-observer.js +159 -0
  252. package/dist/platform/source-observer.js.map +1 -0
  253. package/dist/provider-sdk.d.ts +14 -0
  254. package/dist/provider-sdk.d.ts.map +1 -0
  255. package/dist/provider-sdk.js +10 -0
  256. package/dist/provider-sdk.js.map +1 -0
  257. package/dist/publication/adapter.d.ts +212 -0
  258. package/dist/publication/adapter.d.ts.map +1 -0
  259. package/dist/publication/adapter.js +83 -0
  260. package/dist/publication/adapter.js.map +1 -0
  261. package/dist/publication/authority.d.ts +137 -0
  262. package/dist/publication/authority.d.ts.map +1 -0
  263. package/dist/publication/authority.js +233 -0
  264. package/dist/publication/authority.js.map +1 -0
  265. package/dist/publication/catalog-git.d.ts +37 -0
  266. package/dist/publication/catalog-git.d.ts.map +1 -0
  267. package/dist/publication/catalog-git.js +451 -0
  268. package/dist/publication/catalog-git.js.map +1 -0
  269. package/dist/publication/claim.d.ts +39 -0
  270. package/dist/publication/claim.d.ts.map +1 -0
  271. package/dist/publication/claim.js +31 -0
  272. package/dist/publication/claim.js.map +1 -0
  273. package/dist/publication/coordinator.d.ts +246 -0
  274. package/dist/publication/coordinator.d.ts.map +1 -0
  275. package/dist/publication/coordinator.js +370 -0
  276. package/dist/publication/coordinator.js.map +1 -0
  277. package/dist/publication/github.d.ts +36 -0
  278. package/dist/publication/github.d.ts.map +1 -0
  279. package/dist/publication/github.js +695 -0
  280. package/dist/publication/github.js.map +1 -0
  281. package/dist/publication/http.d.ts +69 -0
  282. package/dist/publication/http.d.ts.map +1 -0
  283. package/dist/publication/http.js +29 -0
  284. package/dist/publication/http.js.map +1 -0
  285. package/dist/publication/index.d.ts +5 -0
  286. package/dist/publication/index.d.ts.map +1 -0
  287. package/dist/publication/index.js +5 -0
  288. package/dist/publication/index.js.map +1 -0
  289. package/dist/publication/npm.d.ts +40 -0
  290. package/dist/publication/npm.d.ts.map +1 -0
  291. package/dist/publication/npm.js +359 -0
  292. package/dist/publication/npm.js.map +1 -0
  293. package/dist/publication/profiles.d.ts +136 -0
  294. package/dist/publication/profiles.d.ts.map +1 -0
  295. package/dist/publication/profiles.js +90 -0
  296. package/dist/publication/profiles.js.map +1 -0
  297. package/dist/publication/publisher.d.ts +82 -0
  298. package/dist/publication/publisher.d.ts.map +1 -0
  299. package/dist/publication/publisher.js +53 -0
  300. package/dist/publication/publisher.js.map +1 -0
  301. package/dist/publication/pypi.d.ts +45 -0
  302. package/dist/publication/pypi.d.ts.map +1 -0
  303. package/dist/publication/pypi.js +369 -0
  304. package/dist/publication/pypi.js.map +1 -0
  305. package/dist/publication/recovery.d.ts +663 -0
  306. package/dist/publication/recovery.d.ts.map +1 -0
  307. package/dist/publication/recovery.js +252 -0
  308. package/dist/publication/recovery.js.map +1 -0
  309. package/dist/publication/report.d.ts +1061 -0
  310. package/dist/publication/report.d.ts.map +1 -0
  311. package/dist/publication/report.js +441 -0
  312. package/dist/publication/report.js.map +1 -0
  313. package/dist/recipes/config.d.ts +296 -0
  314. package/dist/recipes/config.d.ts.map +1 -0
  315. package/dist/recipes/config.js +325 -0
  316. package/dist/recipes/config.js.map +1 -0
  317. package/dist/release/capabilities.d.ts +12 -0
  318. package/dist/release/capabilities.d.ts.map +1 -0
  319. package/dist/release/capabilities.js +395 -0
  320. package/dist/release/capabilities.js.map +1 -0
  321. package/dist/release/compiler.d.ts +5 -0
  322. package/dist/release/compiler.d.ts.map +1 -0
  323. package/dist/release/compiler.js +19 -0
  324. package/dist/release/compiler.js.map +1 -0
  325. package/dist/release/config.d.ts +5 -0
  326. package/dist/release/config.d.ts.map +1 -0
  327. package/dist/release/config.js +10 -0
  328. package/dist/release/config.js.map +1 -0
  329. package/dist/release/context.d.ts +96 -0
  330. package/dist/release/context.d.ts.map +1 -0
  331. package/dist/release/context.js +168 -0
  332. package/dist/release/context.js.map +1 -0
  333. package/dist/release/graph.d.ts +271 -0
  334. package/dist/release/graph.d.ts.map +1 -0
  335. package/dist/release/graph.js +766 -0
  336. package/dist/release/graph.js.map +1 -0
  337. package/dist/release/inspect.d.ts +88 -0
  338. package/dist/release/inspect.d.ts.map +1 -0
  339. package/dist/release/inspect.js +75 -0
  340. package/dist/release/inspect.js.map +1 -0
  341. package/dist/release/prepare.d.ts +24 -0
  342. package/dist/release/prepare.d.ts.map +1 -0
  343. package/dist/release/prepare.js +1115 -0
  344. package/dist/release/prepare.js.map +1 -0
  345. package/dist/release/prepared-ref.d.ts +60 -0
  346. package/dist/release/prepared-ref.d.ts.map +1 -0
  347. package/dist/release/prepared-ref.js +131 -0
  348. package/dist/release/prepared-ref.js.map +1 -0
  349. package/dist/release/prepared-store.d.ts +90 -0
  350. package/dist/release/prepared-store.d.ts.map +1 -0
  351. package/dist/release/prepared-store.js +339 -0
  352. package/dist/release/prepared-store.js.map +1 -0
  353. package/dist/release/prepared.d.ts +172 -0
  354. package/dist/release/prepared.d.ts.map +1 -0
  355. package/dist/release/prepared.js +268 -0
  356. package/dist/release/prepared.js.map +1 -0
  357. package/dist/release/staging.d.ts +31 -0
  358. package/dist/release/staging.d.ts.map +1 -0
  359. package/dist/release/staging.js +218 -0
  360. package/dist/release/staging.js.map +1 -0
  361. package/dist/resolve/authored.d.ts +53 -0
  362. package/dist/resolve/authored.d.ts.map +1 -0
  363. package/dist/resolve/authored.js +55 -0
  364. package/dist/resolve/authored.js.map +1 -0
  365. package/dist/resolve/encode.d.ts +3 -0
  366. package/dist/resolve/encode.d.ts.map +1 -0
  367. package/dist/resolve/encode.js +21 -0
  368. package/dist/resolve/encode.js.map +1 -0
  369. package/dist/resolve/errors.d.ts +7 -0
  370. package/dist/resolve/errors.d.ts.map +1 -0
  371. package/dist/resolve/errors.js +17 -0
  372. package/dist/resolve/errors.js.map +1 -0
  373. package/dist/resolve/facts.d.ts +12 -0
  374. package/dist/resolve/facts.d.ts.map +1 -0
  375. package/dist/resolve/facts.js +18 -0
  376. package/dist/resolve/facts.js.map +1 -0
  377. package/dist/resolve/resolve.d.ts +10 -0
  378. package/dist/resolve/resolve.d.ts.map +1 -0
  379. package/dist/resolve/resolve.js +242 -0
  380. package/dist/resolve/resolve.js.map +1 -0
  381. package/dist/store.d.ts +11 -0
  382. package/dist/store.d.ts.map +1 -0
  383. package/dist/store.js +9 -0
  384. package/dist/store.js.map +1 -0
  385. package/examples/README.md +20 -30
  386. package/examples/github-release/release.config.json +11 -18
  387. package/examples/homebrew-tap/README.md +11 -0
  388. package/examples/homebrew-tap/release.config.json +40 -28
  389. package/examples/multi-target/release.config.json +28 -53
  390. package/examples/npm-first-publish/release.config.json +23 -25
  391. package/examples/npm-only/release.config.json +22 -30
  392. package/examples/portable-cli/README.md +17 -0
  393. package/examples/portable-cli/artifacts/portable-example-0.1.0-darwin-arm64 +1 -0
  394. package/examples/portable-cli/artifacts/portable-example-0.1.0-darwin-x64 +1 -0
  395. package/examples/portable-cli/artifacts/portable-example-0.1.0-linux-arm64 +1 -0
  396. package/examples/portable-cli/artifacts/portable-example-0.1.0-linux-x64 +1 -0
  397. package/examples/portable-cli/artifacts/portable-example-0.1.0-windows-x64.exe +1 -0
  398. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-macosx_10_15_x86_64.whl +1 -0
  399. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-macosx_11_0_arm64.whl +1 -0
  400. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-manylinux2014_aarch64.whl +1 -0
  401. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-manylinux2014_x86_64.whl +1 -0
  402. package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-win_amd64.whl +1 -0
  403. package/examples/portable-cli/package.json +9 -0
  404. package/examples/portable-cli/release.config.json +53 -0
  405. package/examples/portable-cli/src/cli.ts +3 -0
  406. package/examples/pypi-registry/README.md +8 -0
  407. package/examples/scoop-bucket/README.md +10 -0
  408. package/examples/scoop-bucket/release.config.json +40 -30
  409. package/package.json +73 -154
  410. package/src/api/api.ts +365 -0
  411. package/src/api/errors.ts +36 -0
  412. package/src/api/input.ts +92 -0
  413. package/src/api/runtime.ts +14 -0
  414. package/src/api/types.ts +103 -0
  415. package/src/capabilities/bun-targets.ts +2 -0
  416. package/src/capabilities/field-ownership.ts +60 -0
  417. package/src/capabilities/module.ts +158 -0
  418. package/src/capabilities/registry.ts +333 -0
  419. package/src/config/config.ts +48 -0
  420. package/src/correction/coordinator.ts +336 -0
  421. package/src/correction/index.ts +2 -0
  422. package/src/correction/intent.ts +172 -0
  423. package/src/drivers/archive.ts +111 -0
  424. package/src/drivers/contain.ts +20 -0
  425. package/src/drivers/environment.ts +28 -0
  426. package/src/drivers/errors.ts +6 -0
  427. package/src/drivers/glob.ts +137 -0
  428. package/src/drivers/process.ts +339 -0
  429. package/src/drivers/python-wheel.ts +145 -0
  430. package/src/drivers/redact.ts +31 -0
  431. package/src/drivers/seccomp-helper-source.ts +121 -0
  432. package/src/drivers/utils.ts +10 -0
  433. package/src/drivers/workspace.ts +46 -0
  434. package/src/extensions/provider-adapter.ts +99 -0
  435. package/src/host.ts +140 -0
  436. package/src/index.ts +64 -0
  437. package/src/model/artifact-collection.ts +237 -0
  438. package/src/model/authority.ts +116 -0
  439. package/src/model/bun-targets.ts +34 -0
  440. package/src/model/canonical.ts +205 -0
  441. package/src/model/catalog.ts +220 -0
  442. package/src/model/digest.ts +172 -0
  443. package/src/model/errors.ts +6 -0
  444. package/src/model/primitives.ts +37 -0
  445. package/src/model/pypi.ts +30 -0
  446. package/src/model/python-distribution.ts +360 -0
  447. package/src/model/secret-patterns.ts +11 -0
  448. package/src/operation-journal/authority.ts +162 -0
  449. package/src/operation-journal/aws/deadline.ts +41 -0
  450. package/src/operation-journal/aws/oidc.ts +439 -0
  451. package/src/operation-journal/aws/policy.ts +491 -0
  452. package/src/operation-journal/aws/s3-boundary.ts +562 -0
  453. package/src/operation-journal/aws.ts +60 -0
  454. package/src/operation-journal/canonical.ts +373 -0
  455. package/src/operation-journal/model.ts +301 -0
  456. package/src/operation-journal/reducer.ts +112 -0
  457. package/src/operation-journal/s3.ts +884 -0
  458. package/src/operation-journal.ts +51 -0
  459. package/src/platform/bun.ts +38 -0
  460. package/src/platform/credentials.ts +1151 -0
  461. package/src/platform/host-support.ts +4 -0
  462. package/src/platform/node.ts +38 -0
  463. package/src/platform/release-runtime.ts +47 -0
  464. package/src/platform/services.ts +57 -0
  465. package/src/platform/source-observer.ts +193 -0
  466. package/src/provider-sdk.ts +48 -0
  467. package/src/publication/adapter.ts +132 -0
  468. package/src/publication/authority.ts +397 -0
  469. package/src/publication/catalog-git.ts +603 -0
  470. package/src/publication/claim.ts +51 -0
  471. package/src/publication/coordinator.ts +578 -0
  472. package/src/publication/github.ts +1022 -0
  473. package/src/publication/http.ts +101 -0
  474. package/src/publication/index.ts +4 -0
  475. package/src/publication/npm.ts +525 -0
  476. package/src/publication/profiles.ts +94 -0
  477. package/src/publication/publisher.ts +130 -0
  478. package/src/publication/pypi.ts +463 -0
  479. package/src/publication/recovery.ts +349 -0
  480. package/src/publication/report.ts +628 -0
  481. package/src/recipes/config.ts +395 -0
  482. package/src/release/capabilities.ts +460 -0
  483. package/src/release/compiler.ts +28 -0
  484. package/src/release/config.ts +12 -0
  485. package/src/release/context.ts +223 -0
  486. package/src/release/graph.ts +866 -0
  487. package/src/release/inspect.ts +83 -0
  488. package/src/release/prepare.ts +1329 -0
  489. package/src/release/prepared-ref.ts +193 -0
  490. package/src/release/prepared-store.ts +378 -0
  491. package/src/release/prepared.ts +299 -0
  492. package/src/release/staging.ts +257 -0
  493. package/src/resolve/authored.ts +64 -0
  494. package/src/resolve/encode.ts +22 -0
  495. package/src/resolve/errors.ts +15 -0
  496. package/src/resolve/facts.ts +18 -0
  497. package/src/resolve/resolve.ts +328 -0
  498. package/src/store.ts +28 -0
  499. package/templates/README.md +55 -72
  500. package/templates/bun-cli-github/README.md +7 -9
  501. package/templates/bun-cli-github/release.config.json +35 -73
  502. package/templates/github-actions/release.yml +74 -0
  503. package/templates/github-actions/reviewed-release.yml +115 -0
  504. package/templates/multi-target-homebrew/README.md +10 -0
  505. package/templates/multi-target-homebrew/release.config.json +43 -60
  506. package/templates/multi-target-scoop/README.md +10 -0
  507. package/templates/multi-target-scoop/release.config.json +43 -62
  508. package/templates/npm-github/release.config.json +25 -38
  509. package/templates/npm-github/reviewed-release.config.json +37 -0
  510. package/templates/npm-only/README.md +10 -0
  511. package/templates/npm-only/release.config.json +15 -30
  512. package/templates/portable-cli/README.md +13 -0
  513. package/templates/portable-cli/release.config.json +53 -0
  514. package/dist/artifacts/adapter.d.ts +0 -39
  515. package/dist/artifacts/adapter.d.ts.map +0 -1
  516. package/dist/artifacts/adapter.js +0 -23
  517. package/dist/artifacts/adapter.js.map +0 -1
  518. package/dist/artifacts/registry.d.ts +0 -21
  519. package/dist/artifacts/registry.d.ts.map +0 -1
  520. package/dist/artifacts/registry.js +0 -21
  521. package/dist/artifacts/registry.js.map +0 -1
  522. package/dist/config/errors.d.ts +0 -24
  523. package/dist/config/errors.d.ts.map +0 -1
  524. package/dist/config/errors.js +0 -19
  525. package/dist/config/errors.js.map +0 -1
  526. package/dist/config/load.d.ts +0 -9
  527. package/dist/config/load.d.ts.map +0 -1
  528. package/dist/config/load.js +0 -29
  529. package/dist/config/load.js.map +0 -1
  530. package/dist/config/schema.d.ts +0 -12
  531. package/dist/config/schema.d.ts.map +0 -1
  532. package/dist/config/schema.js +0 -19
  533. package/dist/config/schema.js.map +0 -1
  534. package/dist/domain/artifact.d.ts +0 -118
  535. package/dist/domain/artifact.d.ts.map +0 -1
  536. package/dist/domain/artifact.js +0 -197
  537. package/dist/domain/artifact.js.map +0 -1
  538. package/dist/domain/evidence.d.ts +0 -59
  539. package/dist/domain/evidence.d.ts.map +0 -1
  540. package/dist/domain/evidence.js +0 -51
  541. package/dist/domain/evidence.js.map +0 -1
  542. package/dist/domain/operation.d.ts +0 -143
  543. package/dist/domain/operation.d.ts.map +0 -1
  544. package/dist/domain/operation.js +0 -198
  545. package/dist/domain/operation.js.map +0 -1
  546. package/dist/domain/release.d.ts +0 -93
  547. package/dist/domain/release.d.ts.map +0 -1
  548. package/dist/domain/release.js +0 -82
  549. package/dist/domain/release.js.map +0 -1
  550. package/dist/domain/remote-state.d.ts +0 -58
  551. package/dist/domain/remote-state.d.ts.map +0 -1
  552. package/dist/domain/remote-state.js +0 -55
  553. package/dist/domain/remote-state.js.map +0 -1
  554. package/dist/domain/target.d.ts +0 -148
  555. package/dist/domain/target.d.ts.map +0 -1
  556. package/dist/domain/target.js +0 -151
  557. package/dist/domain/target.js.map +0 -1
  558. package/dist/host/host.d.ts +0 -32
  559. package/dist/host/host.d.ts.map +0 -1
  560. package/dist/host/host.js +0 -24
  561. package/dist/host/host.js.map +0 -1
  562. package/dist/host/http-live.d.ts +0 -6
  563. package/dist/host/http-live.d.ts.map +0 -1
  564. package/dist/host/http-live.js +0 -86
  565. package/dist/host/http-live.js.map +0 -1
  566. package/dist/host/http.d.ts +0 -43
  567. package/dist/host/http.d.ts.map +0 -1
  568. package/dist/host/http.js +0 -59
  569. package/dist/host/http.js.map +0 -1
  570. package/dist/host/platform.d.ts +0 -10
  571. package/dist/host/platform.d.ts.map +0 -1
  572. package/dist/host/platform.js +0 -114
  573. package/dist/host/platform.js.map +0 -1
  574. package/dist/host/test.d.ts +0 -23
  575. package/dist/host/test.d.ts.map +0 -1
  576. package/dist/host/test.js +0 -222
  577. package/dist/host/test.js.map +0 -1
  578. package/dist/internal/workspace-path.d.ts +0 -15
  579. package/dist/internal/workspace-path.d.ts.map +0 -1
  580. package/dist/internal/workspace-path.js +0 -36
  581. package/dist/internal/workspace-path.js.map +0 -1
  582. package/dist/planner/artifact-inventory.d.ts +0 -9
  583. package/dist/planner/artifact-inventory.d.ts.map +0 -1
  584. package/dist/planner/artifact-inventory.js +0 -86
  585. package/dist/planner/artifact-inventory.js.map +0 -1
  586. package/dist/planner/create-release-plan.d.ts +0 -5
  587. package/dist/planner/create-release-plan.d.ts.map +0 -1
  588. package/dist/planner/create-release-plan.js +0 -25
  589. package/dist/planner/create-release-plan.js.map +0 -1
  590. package/dist/planner/errors.d.ts +0 -67
  591. package/dist/planner/errors.d.ts.map +0 -1
  592. package/dist/planner/errors.js +0 -58
  593. package/dist/planner/errors.js.map +0 -1
  594. package/dist/planner/evidence-recorder.d.ts +0 -28
  595. package/dist/planner/evidence-recorder.d.ts.map +0 -1
  596. package/dist/planner/evidence-recorder.js +0 -362
  597. package/dist/planner/evidence-recorder.js.map +0 -1
  598. package/dist/planner/executor.d.ts +0 -58
  599. package/dist/planner/executor.d.ts.map +0 -1
  600. package/dist/planner/executor.js +0 -147
  601. package/dist/planner/executor.js.map +0 -1
  602. package/dist/planner/normalize-release.d.ts +0 -19
  603. package/dist/planner/normalize-release.d.ts.map +0 -1
  604. package/dist/planner/normalize-release.js +0 -342
  605. package/dist/planner/normalize-release.js.map +0 -1
  606. package/dist/planner/reconcile.d.ts +0 -17
  607. package/dist/planner/reconcile.d.ts.map +0 -1
  608. package/dist/planner/reconcile.js +0 -259
  609. package/dist/planner/reconcile.js.map +0 -1
  610. package/dist/planner/render-plan.d.ts +0 -15
  611. package/dist/planner/render-plan.d.ts.map +0 -1
  612. package/dist/planner/render-plan.js +0 -231
  613. package/dist/planner/render-plan.js.map +0 -1
  614. package/dist/targets/adapter-helpers.d.ts +0 -79
  615. package/dist/targets/adapter-helpers.d.ts.map +0 -1
  616. package/dist/targets/adapter-helpers.js +0 -194
  617. package/dist/targets/adapter-helpers.js.map +0 -1
  618. package/dist/targets/adapter.d.ts +0 -17
  619. package/dist/targets/adapter.d.ts.map +0 -1
  620. package/dist/targets/adapter.js +0 -2
  621. package/dist/targets/adapter.js.map +0 -1
  622. package/dist/targets/github-release.d.ts +0 -25
  623. package/dist/targets/github-release.d.ts.map +0 -1
  624. package/dist/targets/github-release.js +0 -82
  625. package/dist/targets/github-release.js.map +0 -1
  626. package/dist/targets/github.d.ts +0 -11
  627. package/dist/targets/github.d.ts.map +0 -1
  628. package/dist/targets/github.js +0 -117
  629. package/dist/targets/github.js.map +0 -1
  630. package/dist/targets/homebrew.d.ts +0 -11
  631. package/dist/targets/homebrew.d.ts.map +0 -1
  632. package/dist/targets/homebrew.js +0 -210
  633. package/dist/targets/homebrew.js.map +0 -1
  634. package/dist/targets/live.d.ts +0 -5
  635. package/dist/targets/live.d.ts.map +0 -1
  636. package/dist/targets/live.js +0 -50
  637. package/dist/targets/live.js.map +0 -1
  638. package/dist/targets/npm.d.ts +0 -10
  639. package/dist/targets/npm.d.ts.map +0 -1
  640. package/dist/targets/npm.js +0 -112
  641. package/dist/targets/npm.js.map +0 -1
  642. package/dist/targets/pypi.d.ts +0 -11
  643. package/dist/targets/pypi.d.ts.map +0 -1
  644. package/dist/targets/pypi.js +0 -141
  645. package/dist/targets/pypi.js.map +0 -1
  646. package/dist/targets/registry.d.ts +0 -25
  647. package/dist/targets/registry.d.ts.map +0 -1
  648. package/dist/targets/registry.js +0 -34
  649. package/dist/targets/registry.js.map +0 -1
  650. package/dist/targets/scoop.d.ts +0 -11
  651. package/dist/targets/scoop.d.ts.map +0 -1
  652. package/dist/targets/scoop.js +0 -88
  653. package/dist/targets/scoop.js.map +0 -1
  654. package/dist/types/effect-internal.d.ts +0 -5
  655. package/dist/types/effect-internal.d.ts.map +0 -1
  656. package/dist/types/effect-internal.js +0 -2
  657. package/dist/types/effect-internal.js.map +0 -1
  658. package/dist/workflows/config.d.ts +0 -202
  659. package/dist/workflows/config.d.ts.map +0 -1
  660. package/dist/workflows/config.js +0 -420
  661. package/dist/workflows/config.js.map +0 -1
  662. package/dist/workflows/diagnostics.d.ts +0 -62
  663. package/dist/workflows/diagnostics.d.ts.map +0 -1
  664. package/dist/workflows/diagnostics.js +0 -530
  665. package/dist/workflows/diagnostics.js.map +0 -1
  666. package/dist/workflows/distribution.d.ts +0 -25
  667. package/dist/workflows/distribution.d.ts.map +0 -1
  668. package/dist/workflows/distribution.js +0 -24
  669. package/dist/workflows/distribution.js.map +0 -1
  670. package/dist/workflows/evidence.d.ts +0 -17
  671. package/dist/workflows/evidence.d.ts.map +0 -1
  672. package/dist/workflows/evidence.js +0 -32
  673. package/dist/workflows/evidence.js.map +0 -1
  674. package/dist/workflows/index.d.ts +0 -8
  675. package/dist/workflows/index.d.ts.map +0 -1
  676. package/dist/workflows/index.js +0 -7
  677. package/dist/workflows/index.js.map +0 -1
  678. package/dist/workflows/init.d.ts +0 -84
  679. package/dist/workflows/init.d.ts.map +0 -1
  680. package/dist/workflows/init.js +0 -487
  681. package/dist/workflows/init.js.map +0 -1
  682. package/dist/workflows/live.d.ts +0 -9
  683. package/dist/workflows/live.d.ts.map +0 -1
  684. package/dist/workflows/live.js +0 -7
  685. package/dist/workflows/live.js.map +0 -1
  686. package/dist/workflows/options.d.ts +0 -30
  687. package/dist/workflows/options.d.ts.map +0 -1
  688. package/dist/workflows/options.js +0 -16
  689. package/dist/workflows/options.js.map +0 -1
  690. package/examples/non-strict-skips/artifacts/release-example-skips-0.1.0.tgz +0 -1
  691. package/examples/non-strict-skips/release.config.json +0 -31
  692. package/examples/pypi-registry/release.config.json +0 -31
  693. package/templates/github-actions/plan-and-approved-execute.yml +0 -58
  694. package/templates/github-actions/plan-only.yml +0 -33
  695. 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