@mannyc1/ts-release 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/ARCHITECTURE.md +93 -0
  2. package/README.md +282 -49
  3. package/SPEC.md +46 -9
  4. package/dist/config/schema.d.ts +4 -0
  5. package/dist/config/schema.d.ts.map +1 -1
  6. package/dist/config/schema.js +13 -0
  7. package/dist/config/schema.js.map +1 -1
  8. package/dist/domain/evidence.d.ts +4 -0
  9. package/dist/domain/evidence.d.ts.map +1 -1
  10. package/dist/domain/evidence.js +4 -0
  11. package/dist/domain/evidence.js.map +1 -1
  12. package/dist/domain/operation.d.ts +1 -0
  13. package/dist/domain/operation.d.ts.map +1 -1
  14. package/dist/domain/operation.js +147 -1
  15. package/dist/domain/operation.js.map +1 -1
  16. package/dist/domain/release.d.ts +1 -0
  17. package/dist/domain/release.d.ts.map +1 -1
  18. package/dist/domain/release.js +1 -0
  19. package/dist/domain/release.js.map +1 -1
  20. package/dist/domain/remote-state.d.ts +90 -0
  21. package/dist/domain/remote-state.d.ts.map +1 -0
  22. package/dist/domain/remote-state.js +85 -0
  23. package/dist/domain/remote-state.js.map +1 -0
  24. package/dist/domain/status.d.ts +43 -0
  25. package/dist/domain/status.d.ts.map +1 -0
  26. package/dist/domain/status.js +50 -0
  27. package/dist/domain/status.js.map +1 -0
  28. package/dist/domain/target.d.ts +32 -2
  29. package/dist/domain/target.d.ts.map +1 -1
  30. package/dist/domain/target.js +35 -2
  31. package/dist/domain/target.js.map +1 -1
  32. package/dist/host/host.d.ts +7 -23
  33. package/dist/host/host.d.ts.map +1 -1
  34. package/dist/host/host.js +3 -22
  35. package/dist/host/host.js.map +1 -1
  36. package/dist/host/http-live.d.ts +1 -2
  37. package/dist/host/http-live.d.ts.map +1 -1
  38. package/dist/host/http-live.js +18 -9
  39. package/dist/host/http-live.js.map +1 -1
  40. package/dist/host/http.d.ts +3 -1
  41. package/dist/host/http.d.ts.map +1 -1
  42. package/dist/host/http.js +3 -1
  43. package/dist/host/http.js.map +1 -1
  44. package/dist/host/platform.d.ts +10 -0
  45. package/dist/host/platform.d.ts.map +1 -0
  46. package/dist/host/platform.js +121 -0
  47. package/dist/host/platform.js.map +1 -0
  48. package/dist/host/test.d.ts +7 -3
  49. package/dist/host/test.d.ts.map +1 -1
  50. package/dist/host/test.js +128 -25
  51. package/dist/host/test.js.map +1 -1
  52. package/dist/internal/workspace-path.d.ts +16 -0
  53. package/dist/internal/workspace-path.d.ts.map +1 -0
  54. package/dist/internal/workspace-path.js +33 -0
  55. package/dist/internal/workspace-path.js.map +1 -0
  56. package/dist/planner/artifact-inventory.d.ts +9 -0
  57. package/dist/planner/artifact-inventory.d.ts.map +1 -0
  58. package/dist/planner/artifact-inventory.js +85 -0
  59. package/dist/planner/artifact-inventory.js.map +1 -0
  60. package/dist/planner/create-release-plan.d.ts +1 -1
  61. package/dist/planner/create-release-plan.d.ts.map +1 -1
  62. package/dist/planner/errors.d.ts +37 -1
  63. package/dist/planner/errors.d.ts.map +1 -1
  64. package/dist/planner/errors.js +30 -0
  65. package/dist/planner/errors.js.map +1 -1
  66. package/dist/planner/evidence-recorder.d.ts +13 -8
  67. package/dist/planner/evidence-recorder.d.ts.map +1 -1
  68. package/dist/planner/evidence-recorder.js +116 -18
  69. package/dist/planner/evidence-recorder.js.map +1 -1
  70. package/dist/planner/executor.d.ts +31 -19
  71. package/dist/planner/executor.d.ts.map +1 -1
  72. package/dist/planner/executor.js +52 -7
  73. package/dist/planner/executor.js.map +1 -1
  74. package/dist/planner/normalize-release.d.ts +2 -2
  75. package/dist/planner/normalize-release.d.ts.map +1 -1
  76. package/dist/planner/normalize-release.js +50 -52
  77. package/dist/planner/normalize-release.js.map +1 -1
  78. package/dist/planner/reconcile.d.ts +17 -0
  79. package/dist/planner/reconcile.d.ts.map +1 -0
  80. package/dist/planner/reconcile.js +337 -0
  81. package/dist/planner/reconcile.js.map +1 -0
  82. package/dist/planner/release-eligibility.d.ts +34 -0
  83. package/dist/planner/release-eligibility.d.ts.map +1 -0
  84. package/dist/planner/release-eligibility.js +179 -0
  85. package/dist/planner/release-eligibility.js.map +1 -0
  86. package/dist/planner/render-plan.d.ts +10 -0
  87. package/dist/planner/render-plan.d.ts.map +1 -1
  88. package/dist/planner/render-plan.js +179 -0
  89. package/dist/planner/render-plan.js.map +1 -1
  90. package/dist/planner/status.d.ts +40 -0
  91. package/dist/planner/status.d.ts.map +1 -0
  92. package/dist/planner/status.js +342 -0
  93. package/dist/planner/status.js.map +1 -0
  94. package/dist/targets/github.d.ts.map +1 -1
  95. package/dist/targets/github.js +28 -13
  96. package/dist/targets/github.js.map +1 -1
  97. package/dist/targets/npm.d.ts +2 -2
  98. package/dist/targets/npm.d.ts.map +1 -1
  99. package/dist/targets/npm.js +74 -14
  100. package/dist/targets/npm.js.map +1 -1
  101. package/dist/workflows/config.d.ts +153 -0
  102. package/dist/workflows/config.d.ts.map +1 -0
  103. package/dist/workflows/config.js +301 -0
  104. package/dist/workflows/config.js.map +1 -0
  105. package/dist/workflows/diagnostics.d.ts +62 -0
  106. package/dist/workflows/diagnostics.d.ts.map +1 -0
  107. package/dist/workflows/diagnostics.js +474 -0
  108. package/dist/workflows/diagnostics.js.map +1 -0
  109. package/dist/workflows/evidence.d.ts +21 -0
  110. package/dist/workflows/evidence.d.ts.map +1 -0
  111. package/dist/workflows/evidence.js +45 -0
  112. package/dist/workflows/evidence.js.map +1 -0
  113. package/dist/workflows/index.d.ts +7 -0
  114. package/dist/workflows/index.d.ts.map +1 -0
  115. package/dist/workflows/index.js +6 -0
  116. package/dist/workflows/index.js.map +1 -0
  117. package/dist/workflows/init.d.ts +71 -0
  118. package/dist/workflows/init.d.ts.map +1 -0
  119. package/dist/workflows/init.js +384 -0
  120. package/dist/workflows/init.js.map +1 -0
  121. package/dist/workflows/live.d.ts +9 -0
  122. package/dist/workflows/live.d.ts.map +1 -0
  123. package/dist/workflows/live.js +7 -0
  124. package/dist/workflows/live.js.map +1 -0
  125. package/dist/workflows/options.d.ts +30 -0
  126. package/dist/workflows/options.d.ts.map +1 -0
  127. package/dist/workflows/options.js +16 -0
  128. package/dist/workflows/options.js.map +1 -0
  129. package/examples/README.md +16 -9
  130. package/examples/github-release/release.config.json +1 -0
  131. package/examples/homebrew-tap/release.config.json +1 -0
  132. package/examples/multi-target/release.config.json +10 -1
  133. package/examples/non-strict-skips/release.config.json +1 -0
  134. package/examples/npm-first-publish/release.config.json +33 -0
  135. package/examples/npm-only/release.config.json +10 -1
  136. package/examples/pypi-registry/release.config.json +1 -0
  137. package/examples/scoop-bucket/release.config.json +1 -0
  138. package/package.json +56 -27
  139. package/templates/README.md +54 -0
  140. package/templates/github-actions/plan-and-approved-execute.yml +53 -0
  141. package/templates/github-actions/plan-only.yml +30 -0
  142. package/templates/github-actions/trusted-publishing.yml +59 -0
  143. package/templates/multi-target-homebrew/release.config.json +70 -0
  144. package/templates/multi-target-scoop/release.config.json +72 -0
  145. package/templates/npm-github/release.config.json +50 -0
  146. package/templates/npm-only/release.config.json +39 -0
  147. package/dist/cli/command.d.ts +0 -4
  148. package/dist/cli/command.d.ts.map +0 -1
  149. package/dist/cli/command.js +0 -125
  150. package/dist/cli/command.js.map +0 -1
  151. package/dist/cli/main.d.ts +0 -3
  152. package/dist/cli/main.d.ts.map +0 -1
  153. package/dist/cli/main.js +0 -15
  154. package/dist/cli/main.js.map +0 -1
  155. package/dist/cli/programmatic.d.ts +0 -25
  156. package/dist/cli/programmatic.d.ts.map +0 -1
  157. package/dist/cli/programmatic.js +0 -53
  158. package/dist/cli/programmatic.js.map +0 -1
  159. package/dist/host/bun.d.ts +0 -9
  160. package/dist/host/bun.d.ts.map +0 -1
  161. package/dist/host/bun.js +0 -156
  162. package/dist/host/bun.js.map +0 -1
@@ -12,19 +12,31 @@ const ghCommand = (target, args, includeAuth) => CommandSpec.make({
12
12
  const githubValidationStrategy = (target) => target.dryRunSupport === "none" ? "skipped" : "simulated-plan";
13
13
  export const githubTargetCapabilities = (target) => targetCapabilitiesFor(target, githubValidationStrategy(target));
14
14
  const targetArtifacts = (target, model) => model.artifacts.filter((artifact) => artifact.consumers.includes(target.id));
15
+ const rejectDirectoryAssets = Effect.fn("github.rejectDirectoryAssets")(function* (target, model) {
16
+ const directoryAsset = targetArtifacts(target, model).find((artifact) => artifact.format === "directory");
17
+ if (directoryAsset === undefined) {
18
+ return;
19
+ }
20
+ return yield* Effect.fail(PlanConstructionError.make({
21
+ targetId: target.id,
22
+ reason: "GitHub release assets must be file-like, not directories."
23
+ }));
24
+ });
15
25
  const pathBaseName = (path) => {
16
26
  const parts = path.replaceAll("\\", "/").split("/");
17
27
  return parts[parts.length - 1] ?? path;
18
28
  };
29
+ const githubReleaseTag = (model) => model.identity.tag ?? model.identity.version;
30
+ const githubReleaseTitle = (model) => `${model.identity.name} ${model.identity.version}`;
19
31
  const releaseArgs = (target, model) => {
20
32
  const args = [
21
33
  "release",
22
34
  "create",
23
- model.identity.tag ?? model.identity.version,
35
+ githubReleaseTag(model),
24
36
  "--repo",
25
37
  target.repository,
26
38
  "--title",
27
- `${model.identity.name} ${model.identity.version}`
39
+ githubReleaseTitle(model)
28
40
  ];
29
41
  if (target.draft === true) {
30
42
  args.push("--draft");
@@ -54,9 +66,18 @@ const githubApiEnvHeaders = (target) => target.tokenEnv === undefined
54
66
  prefix: "Bearer "
55
67
  })
56
68
  ];
69
+ const githubReleaseRequestSpec = (target, tag) => HttpRequestSpec.make({
70
+ method: "GET",
71
+ url: githubReleaseApiUrl(target, tag),
72
+ headers: githubApiHeaders(),
73
+ envHeaders: githubApiEnvHeaders(target),
74
+ requiredEnv: envNames(target),
75
+ redactedEnv: envNames(target)
76
+ });
77
+ const githubReleaseCreateCommand = (target, model) => ghCommand(target, releaseArgs(target, model), true);
57
78
  const githubVerificationOperations = (target, model) => {
58
- const tag = model.identity.tag ?? model.identity.version;
59
- const title = `${model.identity.name} ${model.identity.version}`;
79
+ const tag = githubReleaseTag(model);
80
+ const title = githubReleaseTitle(model);
60
81
  const isDraft = target.draft === true;
61
82
  const isPrerelease = target.prerelease === true;
62
83
  const artifactChecks = targetArtifacts(target, model).map((artifact) => HttpJsonArrayObjectFieldEqualsCheck.make({
@@ -71,14 +92,7 @@ const githubVerificationOperations = (target, model) => {
71
92
  description: "Verify the GitHub release through the GitHub API.",
72
93
  risk: "read-only",
73
94
  gate: noApprovalGate("GitHub API release verification is read-only."),
74
- request: HttpRequestSpec.make({
75
- method: "GET",
76
- url: githubReleaseApiUrl(target, tag),
77
- headers: githubApiHeaders(),
78
- envHeaders: githubApiEnvHeaders(target),
79
- requiredEnv: envNames(target),
80
- redactedEnv: envNames(target)
81
- }),
95
+ request: githubReleaseRequestSpec(target, tag),
82
96
  expectedStatus: 200,
83
97
  checks: [
84
98
  HttpJsonEqualsCheck.make({
@@ -120,6 +134,7 @@ export const planGitHubOperations = Effect.fn("planGitHubOperations")(function*
120
134
  }));
121
135
  }
122
136
  yield* rejectNoDryRunInStrictMode(target, model, "GitHub release target declares no dry-run support in strict mode.");
137
+ yield* rejectDirectoryAssets(target, model);
123
138
  const publishRisk = target.mutability === "immutable" ? "irreversible" : "externally-visible";
124
139
  const publishGate = publishRisk === "irreversible"
125
140
  ? irreversibleGate("Creating this GitHub release is externally visible and configured as immutable.")
@@ -148,7 +163,7 @@ export const planGitHubOperations = Effect.fn("planGitHubOperations")(function*
148
163
  description: `Create GitHub release for ${model.identity.name}@${model.identity.version}.`,
149
164
  risk: publishRisk,
150
165
  gate: publishGate,
151
- command: ghCommand(target, releaseArgs(target, model), true)
166
+ command: githubReleaseCreateCommand(target, model)
152
167
  }),
153
168
  ...githubVerificationOperations(target, model)
154
169
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/targets/github.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACb,UAAU,EACV,mCAAmC,EACnC,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EAEd,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAQ/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAIjH,MAAM,QAAQ,GAAG,CAAC,MAA2B,EAAyB,EAAE,CACtE,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AAExD,MAAM,SAAS,GAAG,CAChB,MAA2B,EAC3B,IAA2B,EAC3B,WAAoB,EACP,EAAE,CACf,WAAW,CAAC,IAAI,CAAC;IACf,UAAU,EAAE,IAAI;IAChB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;IAChD,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;CACjD,CAAC,CAAA;AAEJ,MAAM,wBAAwB,GAAG,CAAC,MAA2B,EAA4B,EAAE,CACzF,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAA;AAEhE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAA2B,EAAsB,EAAE,CAC1F,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAA;AAEjE,MAAM,eAAe,GAAG,CAAC,MAA2B,EAAE,KAAmB,EAAE,EAAE,CAC3E,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;AAE9E,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACnD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,MAA2B,EAAE,KAAmB,EAAyB,EAAE;IAC9F,MAAM,IAAI,GAAkB;QAC1B,SAAS;QACT,QAAQ;QACR,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO;QAC5C,QAAQ;QACR,MAAM,CAAC,UAAU;QACjB,SAAS;QACT,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;KACnD,CAAA;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACtB,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,MAA2B,EAAE,GAAW,EAAU,EAAE,CAC/E,gCAAgC,MAAM,CAAC,UAAU,kBAAkB,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAA;AAE9F,MAAM,gBAAgB,GAAG,GAA8B,EAAE,CAAC;IACxD,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;IACzE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;CACvE,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,MAA2B,EAAgC,EAAE,CACxF,MAAM,CAAC,QAAQ,KAAK,SAAS;IAC3B,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC;QACA,aAAa,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,SAAS;SAClB,CAAC;KACH,CAAA;AAEL,MAAM,4BAA4B,GAAG,CACnC,MAA2B,EAC3B,KAAmB,EACO,EAAE;IAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAA;IACxD,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;IAChE,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,KAAK,IAAI,CAAA;IACrC,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,KAAK,IAAI,CAAA;IAC/C,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACrE,mCAAmC,CAAC,IAAI,CAAC;QACvC,IAAI,EAAE,CAAC,QAAQ,CAAC;QAChB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;KACtC,CAAC,CACH,CAAA;IAED,OAAO;QACL,mBAAmB,CAAC,IAAI,CAAC;YACvB,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,6BAA6B;YAC7C,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,mDAAmD;YAChE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,cAAc,CAAC,+CAA+C,CAAC;YACrE,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC;gBAC5B,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC;gBACrC,OAAO,EAAE,gBAAgB,EAAE;gBAC3B,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC;gBACvC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAC7B,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC;aAC9B,CAAC;YACF,cAAc,EAAE,GAAG;YACnB,MAAM,EAAE;gBACN,mBAAmB,CAAC,IAAI,CAAC;oBACvB,IAAI,EAAE,CAAC,UAAU,CAAC;oBAClB,QAAQ,EAAE,GAAG;iBACd,CAAC;gBACF,mBAAmB,CAAC,IAAI,CAAC;oBACvB,IAAI,EAAE,CAAC,MAAM,CAAC;oBACd,QAAQ,EAAE,KAAK;iBAChB,CAAC;gBACF,mBAAmB,CAAC,IAAI,CAAC;oBACvB,IAAI,EAAE,CAAC,OAAO,CAAC;oBACf,QAAQ,EAAE,OAAO;iBAClB,CAAC;gBACF,mBAAmB,CAAC,IAAI,CAAC;oBACvB,IAAI,EAAE,CAAC,YAAY,CAAC;oBACpB,QAAQ,EAAE,YAAY;iBACvB,CAAC;gBACF,GAAG,cAAc;aAClB;SACF,CAAC;KACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAC5B,MAA2B,EAC3B,aAAqD,EAC1C,EAAE,CACb,uBAAuB,CAAC;IACtB,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,qBAAqB;IACrC,QAAQ,EAAE,MAAM,CAAC,EAAE;IACnB,aAAa;IACb,oBAAoB,EAAE,qDAAqD;IAC3E,kBAAkB,EAAE,mDAAmD;IACvE,gBAAgB,EACd,oIAAoI;IACtI,cAAc,EAAE,gGAAgG;CACjH,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,EAC7E,MAA2B,EAC3B,KAAmB;IAEnB,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;IAC1C,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,qBAAqB,CAAC,IAAI,CAAC;YACzB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,MAAM,EAAE,sFAAsF;SAC/F,CAAC,CACH,CAAA;IACH,CAAC;IACD,KAAK,CAAC,CAAC,0BAA0B,CAC/B,MAAM,EACN,KAAK,EACL,mEAAmE,CACpE,CAAA;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAA;IAC7F,MAAM,WAAW,GAAG,WAAW,KAAK,cAAc;QAChD,CAAC,CAAC,gBAAgB,CAAC,iFAAiF,CAAC;QACrG,CAAC,CAAC,WAAW,CAAC,8DAA8D,CAAC,CAAA;IAE/E,OAAO;QACL,wBAAwB,CAAC,IAAI,CAAC;YAC5B,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,aAAa;YAC7B,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,gCAAgC;YAC7C,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,cAAc,CAAC,2CAA2C,CAAC;YACjE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;SACjD,CAAC;QACF,wBAAwB,CAAC,IAAI,CAAC;YAC5B,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,iBAAiB;YACjC,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,qCAAqC;YAClD,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,cAAc,CAAC,0DAA0D,CAAC;YAChF,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC;SACrD,CAAC;QACF,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC;QAC5C,uBAAuB,CAAC,IAAI,CAAC;YAC3B,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,oBAAoB;YACpC,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,6BAA6B,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG;YAC1F,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC;SAC7D,CAAC;QACF,GAAG,4BAA4B,CAAC,MAAM,EAAE,KAAK,CAAC;KACZ,CAAA;AACtC,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,aAAa,GAAwB;IAChD,SAAS,EAAE,qBAAqB;IAChC,YAAY,EAAE,wBAAwB;IACtC,cAAc,EAAE,oBAAoB;CACrC,CAAA"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/targets/github.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { PublishCommandOperation, ValidateCommandOperation } from "../domain/operation.js";
2
+ import { PublishCommandOperation, ValidateCommandOperation, VerifyRemoteOperation } from "../domain/operation.js";
3
3
  import { ReleaseModel } from "../domain/release.js";
4
4
  import { NpmRegistryTarget, TargetCapabilities } from "../domain/target.js";
5
5
  import { NpmTargetAdapter } from "./adapter.js";
6
6
  export type * from "../types/effect-internal.js";
7
7
  export declare const npmTargetCapabilities: (target: NpmRegistryTarget) => TargetCapabilities;
8
- export declare const planNpmOperations: (target: NpmRegistryTarget, model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").RenderFileOperation | ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | PublishCommandOperation | import("../domain/operation.js").VerifyRemoteOperation | import("../domain/operation.js").VerifyHttpOperation)[], import("../planner/errors.js").PlanConstructionError, never>;
8
+ export declare const planNpmOperations: (target: NpmRegistryTarget, model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").RenderFileOperation | ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | PublishCommandOperation | VerifyRemoteOperation | import("../domain/operation.js").VerifyHttpOperation)[], import("../planner/errors.js").PlanConstructionError, never>;
9
9
  export declare const NpmAdapter: NpmTargetAdapter;
10
10
  //# sourceMappingURL=npm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/targets/npm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAKL,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAQ/C,mBAAmB,6BAA6B,CAAA;AAmBhD,eAAO,MAAM,qBAAqB,GAAI,QAAQ,iBAAiB,KAAG,kBACgB,CAAA;AAoClF,eAAO,MAAM,iBAAiB,0ZAkC5B,CAAA;AAEF,eAAO,MAAM,UAAU,EAAE,gBAIxB,CAAA"}
1
+ {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/targets/npm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAKL,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,iBAAiB,EAEjB,kBAAkB,EAEnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAQ/C,mBAAmB,6BAA6B,CAAA;AA4ChD,eAAO,MAAM,qBAAqB,GAAI,QAAQ,iBAAiB,KAAG,kBAejE,CAAA;AAmED,eAAO,MAAM,iBAAiB,yXAyC5B,CAAA;AAEF,eAAO,MAAM,UAAU,EAAE,gBAIxB,CAAA"}
@@ -1,15 +1,47 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { CommandSpec, irreversibleGate, noApprovalGate, PublishCommandOperation, ValidateCommandOperation } from "../domain/operation.js";
2
+ import { CommandSpec, irreversibleGate, noApprovalGate, PublishCommandOperation, ValidateCommandOperation, VerifyRemoteOperation } from "../domain/operation.js";
3
+ import { TargetAuthSetup, TargetCapabilities, TargetRequiredPermission } from "../domain/target.js";
3
4
  import { rejectNoDryRunInStrictMode, targetCapabilitiesFor, validationNoteOperation, validationStrategyForDryRun } from "./adapter-helpers.js";
4
- const envNames = (target) => target.tokenEnv === undefined ? [] : [target.tokenEnv];
5
+ const isTrustedPublishing = (target) => target.trustedPublishing !== undefined;
6
+ const envNames = (target) => isTrustedPublishing(target) || target.tokenEnv === undefined ? [] : [target.tokenEnv];
7
+ const trustedPublishingRequiredEnvNames = [
8
+ "ACTIONS_ID_TOKEN_REQUEST_URL",
9
+ "ACTIONS_ID_TOKEN_REQUEST_TOKEN"
10
+ ];
11
+ const requiredAuthEnvNames = (target) => isTrustedPublishing(target) ? trustedPublishingRequiredEnvNames : envNames(target);
12
+ const redactedAuthEnvNames = (target) => isTrustedPublishing(target) ? trustedPublishingRequiredEnvNames : envNames(target);
5
13
  const npmCommand = (target, args, cwd, includeAuth) => CommandSpec.make({
6
14
  executable: "npm",
7
15
  args: [...args],
8
16
  ...(cwd === undefined ? {} : { cwd }),
9
- requiredEnv: includeAuth ? envNames(target) : [],
10
- redactedEnv: includeAuth ? envNames(target) : []
17
+ requiredEnv: includeAuth ? requiredAuthEnvNames(target) : [],
18
+ redactedEnv: includeAuth ? redactedAuthEnvNames(target) : []
11
19
  });
12
- export const npmTargetCapabilities = (target) => targetCapabilitiesFor(target, validationStrategyForDryRun(target.dryRunSupport));
20
+ const trustedPublishingAuthSetup = (workflow) => TargetAuthSetup.make({
21
+ runsIn: "ci",
22
+ provider: "github-actions",
23
+ workflow,
24
+ requiredPermissions: [
25
+ TargetRequiredPermission.make({ name: "id-token", value: "write" })
26
+ ],
27
+ prerequisites: ["npm-package-exists"]
28
+ });
29
+ export const npmTargetCapabilities = (target) => {
30
+ const trustedPublishing = target.trustedPublishing;
31
+ if (trustedPublishing === undefined) {
32
+ return targetCapabilitiesFor(target, validationStrategyForDryRun(target.dryRunSupport));
33
+ }
34
+ return TargetCapabilities.make({
35
+ targetId: target.id,
36
+ targetTag: target._tag,
37
+ authRequirement: "trusted-publishing",
38
+ dryRunSupport: target.dryRunSupport,
39
+ mutability: target.mutability,
40
+ recovery: target.recovery,
41
+ validationStrategy: validationStrategyForDryRun(target.dryRunSupport),
42
+ authSetup: trustedPublishingAuthSetup(trustedPublishing.workflow)
43
+ });
44
+ };
13
45
  const npmDryRunOperation = (target) => {
14
46
  const dryRunSupport = target.dryRunSupport;
15
47
  return dryRunSupport === "native"
@@ -31,6 +63,32 @@ const npmDryRunOperation = (target) => {
31
63
  skippedMessage: "npm dry-run validation was skipped because this target declares no dry-run support."
32
64
  });
33
65
  };
66
+ const npmAuthOperation = (target) => target.trustedPublishing !== undefined
67
+ ? validationNoteOperation({
68
+ id: `${target.id}:npm-trusted-publishing-auth`,
69
+ targetId: target.id,
70
+ dryRunSupport: "simulated",
71
+ simulatedDescription: "Record npm trusted publishing authentication mode.",
72
+ skippedDescription: "Record skipped npm trusted publishing authentication mode.",
73
+ simulatedMessage: `NPM trusted publishing authenticates during npm publish with CI OIDC; npm whoami does not validate this mode. This target expects provider ${target.trustedPublishing.provider}, workflow ${target.trustedPublishing.workflow}, GitHub Actions permission id-token: write, and package ${target.packageName} to already exist on the registry.`,
74
+ skippedMessage: "NPM trusted publishing authentication validation was skipped."
75
+ })
76
+ : ValidateCommandOperation.make({
77
+ id: `${target.id}:npm-whoami`,
78
+ targetId: target.id,
79
+ description: "Validate npm CLI authentication.",
80
+ risk: "read-only",
81
+ gate: noApprovalGate("npm whoami checks CLI authentication without publishing."),
82
+ command: npmCommand(target, ["whoami", "--registry", target.registry], undefined, true)
83
+ });
84
+ const npmPackageExistsOperation = (target) => ValidateCommandOperation.make({
85
+ id: `${target.id}:npm-package-exists`,
86
+ targetId: target.id,
87
+ description: "Verify npm package exists before trusted publishing.",
88
+ risk: "read-only",
89
+ gate: noApprovalGate("npm view checks package metadata without publishing."),
90
+ command: npmCommand(target, ["view", target.packageName, "name", "--registry", target.registry], undefined, false)
91
+ });
34
92
  const npmPublishArgs = (target) => {
35
93
  const args = ["publish", target.packagePath, "--registry", target.registry];
36
94
  if (target.access !== undefined) {
@@ -52,22 +110,24 @@ export const planNpmOperations = Effect.fn("planNpmOperations")(function* (targe
52
110
  gate: noApprovalGate("CLI availability validation is read-only."),
53
111
  command: npmCommand(target, ["--version"], undefined, false)
54
112
  }),
55
- ValidateCommandOperation.make({
56
- id: `${target.id}:npm-whoami`,
57
- targetId: target.id,
58
- description: "Validate npm CLI authentication.",
59
- risk: "read-only",
60
- gate: noApprovalGate("npm whoami checks CLI authentication without publishing."),
61
- command: npmCommand(target, ["whoami", "--registry", target.registry], undefined, true)
62
- }),
113
+ npmAuthOperation(target),
114
+ ...(target.trustedPublishing?.verifyPackageExists === true ? [npmPackageExistsOperation(target)] : []),
63
115
  npmDryRunOperation(target),
64
116
  PublishCommandOperation.make({
65
117
  id: `${target.id}:npm-publish`,
66
118
  targetId: target.id,
67
- description: `Publish ${model.identity.name}@${model.identity.version} to npm.`,
119
+ description: `Publish ${target.packageName}@${model.identity.version} to npm.`,
68
120
  risk: "irreversible",
69
121
  gate: irreversibleGate("npm package versions are immutable once published."),
70
122
  command: npmCommand(target, npmPublishArgs(target), undefined, true)
123
+ }),
124
+ VerifyRemoteOperation.make({
125
+ id: `${target.id}:npm-version-verify`,
126
+ targetId: target.id,
127
+ description: `Verify ${target.packageName}@${model.identity.version} exists on npm.`,
128
+ risk: "read-only",
129
+ gate: noApprovalGate("npm view verifies published package metadata without publishing."),
130
+ command: npmCommand(target, ["view", `${target.packageName}@${model.identity.version}`, "version", "--registry", target.registry], undefined, false)
71
131
  })
72
132
  ];
73
133
  return operations;
@@ -1 +1 @@
1
- {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/targets/npm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/targets/npm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as FileSystem from "effect/FileSystem";
3
+ import * as Path from "effect/Path";
4
+ import * as Schema from "effect/Schema";
5
+ import { ConfigReadError } from "../config/errors.js";
6
+ import { ReleaseEligibilityCheckError } from "../planner/errors.js";
7
+ export type * from "../types/effect-internal.js";
8
+ export declare const ReleasePlanFormat: Schema.Literals<readonly ["json", "text", "summary", "markdown"]>;
9
+ export type ReleasePlanFormat = typeof ReleasePlanFormat.Type;
10
+ export declare const ReleaseConfigValidationFormat: Schema.Literals<readonly ["json", "text"]>;
11
+ export type ReleaseConfigValidationFormat = typeof ReleaseConfigValidationFormat.Type;
12
+ declare const ReleaseConfigOptions_base: Schema.Class<ReleaseConfigOptions, Schema.Struct<{
13
+ readonly root: Schema.optionalKey<Schema.String>;
14
+ readonly configPath: Schema.optionalKey<Schema.String>;
15
+ }>, {}>;
16
+ export declare class ReleaseConfigOptions extends ReleaseConfigOptions_base {
17
+ }
18
+ export interface ReleaseConfigInput {
19
+ readonly root?: string | undefined;
20
+ readonly configPath?: string | undefined;
21
+ }
22
+ declare const ValidateReleaseConfigFileOptions_base: Schema.Class<ValidateReleaseConfigFileOptions, Schema.Struct<{
23
+ readonly root: Schema.optionalKey<Schema.String>;
24
+ readonly configPath: Schema.optionalKey<Schema.String>;
25
+ readonly format: Schema.optionalKey<Schema.Literals<readonly ["json", "text"]>>;
26
+ }>, {}>;
27
+ export declare class ValidateReleaseConfigFileOptions extends ValidateReleaseConfigFileOptions_base {
28
+ }
29
+ export interface ValidateReleaseConfigFileInput extends ReleaseConfigInput {
30
+ readonly format?: ReleaseConfigValidationFormat | undefined;
31
+ }
32
+ declare const ReleaseConfigValidationResult_base: Schema.Class<ReleaseConfigValidationResult, Schema.Struct<{
33
+ readonly schemaVersion: Schema.Literal<"release-config-validation/v1">;
34
+ readonly path: Schema.String;
35
+ readonly valid: Schema.Boolean;
36
+ }>, {}>;
37
+ export declare class ReleaseConfigValidationResult extends ReleaseConfigValidationResult_base {
38
+ }
39
+ declare const PlanReleaseConfigOptions_base: Schema.Class<PlanReleaseConfigOptions, Schema.Struct<{
40
+ readonly root: Schema.optionalKey<Schema.String>;
41
+ readonly configPath: Schema.optionalKey<Schema.String>;
42
+ readonly format: Schema.optionalKey<Schema.Literals<readonly ["json", "text", "summary", "markdown"]>>;
43
+ }>, {}>;
44
+ export declare class PlanReleaseConfigOptions extends PlanReleaseConfigOptions_base {
45
+ }
46
+ export interface PlanReleaseConfigInput extends ReleaseConfigInput {
47
+ readonly format?: ReleasePlanFormat | undefined;
48
+ }
49
+ declare const RenderReleaseConfigOptions_base: Schema.Class<RenderReleaseConfigOptions, Schema.Struct<{
50
+ readonly root: Schema.optionalKey<Schema.String>;
51
+ readonly configPath: Schema.optionalKey<Schema.String>;
52
+ readonly execute: Schema.optionalKey<Schema.Boolean>;
53
+ }>, {}>;
54
+ export declare class RenderReleaseConfigOptions extends RenderReleaseConfigOptions_base {
55
+ }
56
+ export interface RenderReleaseConfigInput extends ReleaseConfigInput {
57
+ readonly execute?: boolean | undefined;
58
+ }
59
+ declare const ExplainReleaseConfigOptions_base: Schema.Class<ExplainReleaseConfigOptions, Schema.Struct<{
60
+ readonly root: Schema.optionalKey<Schema.String>;
61
+ readonly configPath: Schema.optionalKey<Schema.String>;
62
+ readonly operationId: Schema.String;
63
+ }>, {}>;
64
+ export declare class ExplainReleaseConfigOptions extends ExplainReleaseConfigOptions_base {
65
+ }
66
+ export interface ExplainReleaseConfigInput extends ReleaseConfigInput {
67
+ readonly operationId: string;
68
+ }
69
+ declare const ReleaseExecutionOptions_base: Schema.Class<ReleaseExecutionOptions, Schema.Struct<{
70
+ readonly root: Schema.optionalKey<Schema.String>;
71
+ readonly configPath: Schema.optionalKey<Schema.String>;
72
+ readonly execute: Schema.optionalKey<Schema.Boolean>;
73
+ readonly approveIrreversible: Schema.optionalKey<Schema.Boolean>;
74
+ }>, {}>;
75
+ export declare class ReleaseExecutionOptions extends ReleaseExecutionOptions_base {
76
+ }
77
+ export interface ReleaseExecutionInput extends ReleaseConfigInput {
78
+ readonly execute?: boolean | undefined;
79
+ readonly approveIrreversible?: boolean | undefined;
80
+ }
81
+ declare const ReleaseStatusOptions_base: Schema.Class<ReleaseStatusOptions, Schema.Struct<{
82
+ readonly root: Schema.optionalKey<Schema.String>;
83
+ readonly configPath: Schema.optionalKey<Schema.String>;
84
+ readonly format: Schema.optionalKey<Schema.Literals<readonly ["json", "text", "summary", "markdown"]>>;
85
+ }>, {}>;
86
+ export declare class ReleaseStatusOptions extends ReleaseStatusOptions_base {
87
+ }
88
+ export interface ReleaseStatusInput extends ReleaseConfigInput {
89
+ readonly format?: ReleasePlanFormat | undefined;
90
+ }
91
+ declare const ReleaseResumeConfigOptions_base: Schema.Class<ReleaseResumeConfigOptions, Schema.Struct<{
92
+ readonly root: Schema.optionalKey<Schema.String>;
93
+ readonly configPath: Schema.optionalKey<Schema.String>;
94
+ readonly execute: Schema.optionalKey<Schema.Boolean>;
95
+ readonly approveIrreversible: Schema.optionalKey<Schema.Boolean>;
96
+ }>, {}>;
97
+ export declare class ReleaseResumeConfigOptions extends ReleaseResumeConfigOptions_base {
98
+ }
99
+ export interface ReleaseResumeConfigInput extends ReleaseExecutionInput {
100
+ }
101
+ declare const ReleaseReconcileConfigOptions_base: Schema.Class<ReleaseReconcileConfigOptions, Schema.Struct<{
102
+ readonly root: Schema.optionalKey<Schema.String>;
103
+ readonly configPath: Schema.optionalKey<Schema.String>;
104
+ readonly execute: Schema.optionalKey<Schema.Boolean>;
105
+ }>, {}>;
106
+ export declare class ReleaseReconcileConfigOptions extends ReleaseReconcileConfigOptions_base {
107
+ }
108
+ export interface ReleaseReconcileConfigInput extends ReleaseConfigInput {
109
+ readonly execute?: boolean | undefined;
110
+ }
111
+ declare const ReleaseEligibilityConfigOptions_base: Schema.Class<ReleaseEligibilityConfigOptions, Schema.Struct<{
112
+ readonly root: Schema.optionalKey<Schema.String>;
113
+ readonly configPath: Schema.optionalKey<Schema.String>;
114
+ readonly packagePath: Schema.optionalKey<Schema.String>;
115
+ }>, {}>;
116
+ export declare class ReleaseEligibilityConfigOptions extends ReleaseEligibilityConfigOptions_base {
117
+ }
118
+ export interface ReleaseEligibilityConfigInput extends ReleaseConfigInput {
119
+ readonly packagePath?: string | undefined;
120
+ }
121
+ export declare const planReleaseConfig: (input?: PlanReleaseConfigInput | undefined) => Effect.Effect<import("../domain/release.js").ReleasePlan, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
122
+ export declare const renderReleaseConfigPlan: (input?: PlanReleaseConfigInput | undefined) => Effect.Effect<string, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
123
+ export declare const explainReleaseConfigOperation: (input: ExplainReleaseConfigInput) => Effect.Effect<string, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../targets/registry.js").MissingTargetAdapterError | import("../planner/render-plan.js").PlanOperationNotFoundError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
124
+ export declare const renderReleaseConfig: (input?: RenderReleaseConfigInput | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").WorkspaceWriteError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
125
+ export declare const validateReleaseConfigFile: (input?: ValidateReleaseConfigFileInput | undefined) => Effect.Effect<ReleaseConfigValidationResult, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError, FileSystem.FileSystem | Path.Path>;
126
+ export declare const renderReleaseConfigValidationJson: (result: ReleaseConfigValidationResult) => string;
127
+ export declare const renderReleaseConfigValidationText: (result: ReleaseConfigValidationResult) => string;
128
+ export declare const renderReleaseConfigValidation: (input?: ValidateReleaseConfigFileInput | undefined) => Effect.Effect<string, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError, FileSystem.FileSystem | Path.Path>;
129
+ export declare const validateReleaseConfig: (input?: ReleaseConfigInput | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../host/host.js").CommandRunnerError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
130
+ export declare const executeReleaseConfig: (input?: ReleaseExecutionInput | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../host/host.js").CommandRunnerError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
131
+ export declare const verifyReleaseConfig: (input?: ReleaseConfigInput | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../host/host.js").CommandRunnerError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("../host/http.js").ReleaseHttp | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
132
+ export declare const runReleaseConfig: (input?: ReleaseExecutionInput | undefined) => Effect.Effect<import("../domain/evidence.js").ReleaseWorkflowEvidence, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../host/host.js").CommandRunnerError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").WorkspaceWriteError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("../host/http.js").ReleaseHttp | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
133
+ export declare const statusReleaseConfig: (input?: ReleaseStatusInput | undefined) => Effect.Effect<import("../domain/status.js").ReleaseStatusReport, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").EvidenceReadError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
134
+ export declare const renderReleaseStatus: (input?: ReleaseStatusInput | undefined) => Effect.Effect<string, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").EvidenceReadError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
135
+ export declare const resumeReleaseConfig: (input?: ReleaseResumeConfigInput | undefined) => Effect.Effect<import("../domain/evidence.js").ReleaseWorkflowEvidence, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../host/host.js").CommandRunnerError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").EvidenceReadError | import("../planner/errors.js").WorkspaceWriteError | import("../planner/errors.js").ResumeBlockedError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("../host/http.js").ReleaseHttp | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
136
+ export declare const reconcileReleaseConfig: (input?: ReleaseReconcileConfigInput | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../host/host.js").CommandRunnerError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").RemoteStateInspectionError | import("../planner/errors.js").ReconciliationBlockedError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("../host/http.js").ReleaseHttp | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
137
+ export declare const checkReleaseConfigEligibility: (input?: ReleaseEligibilityConfigInput | undefined) => Effect.Effect<import("../domain/remote-state.js").ReleaseEligibilityDecision, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../host/host.js").CommandRunnerError | ReleaseEligibilityCheckError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner>;
138
+ export declare const plan: (input?: PlanReleaseConfigInput | undefined) => Effect.Effect<import("../domain/release.js").ReleasePlan, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
139
+ export declare const renderPlan: (input?: PlanReleaseConfigInput | undefined) => Effect.Effect<string, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
140
+ export declare const explain: (input: ExplainReleaseConfigInput) => Effect.Effect<string, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../targets/registry.js").MissingTargetAdapterError | import("../planner/render-plan.js").PlanOperationNotFoundError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
141
+ export declare const render: (input?: RenderReleaseConfigInput | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").WorkspaceWriteError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
142
+ export declare const validateFile: (input?: ValidateReleaseConfigFileInput | undefined) => Effect.Effect<ReleaseConfigValidationResult, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError, FileSystem.FileSystem | Path.Path>;
143
+ export declare const renderValidation: (input?: ValidateReleaseConfigFileInput | undefined) => Effect.Effect<string, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError, FileSystem.FileSystem | Path.Path>;
144
+ export declare const validate: (input?: ReleaseConfigInput | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../host/host.js").CommandRunnerError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
145
+ export declare const execute: (input?: ReleaseExecutionInput | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../host/host.js").CommandRunnerError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
146
+ export declare const verify: (input?: ReleaseConfigInput | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../host/host.js").CommandRunnerError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("../host/http.js").ReleaseHttp | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
147
+ export declare const run: (input?: ReleaseExecutionInput | undefined) => Effect.Effect<import("../domain/evidence.js").ReleaseWorkflowEvidence, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../host/host.js").CommandRunnerError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").WorkspaceWriteError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("../host/http.js").ReleaseHttp | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
148
+ export declare const status: (input?: ReleaseStatusInput | undefined) => Effect.Effect<import("../domain/status.js").ReleaseStatusReport, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").EvidenceReadError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
149
+ export declare const renderStatus: (input?: ReleaseStatusInput | undefined) => Effect.Effect<string, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").EvidenceReadError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
150
+ export declare const resume: (input?: ReleaseResumeConfigInput | undefined) => Effect.Effect<import("../domain/evidence.js").ReleaseWorkflowEvidence, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../host/host.js").CommandRunnerError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").EvidenceReadError | import("../planner/errors.js").WorkspaceWriteError | import("../planner/errors.js").ResumeBlockedError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("../host/http.js").ReleaseHttp | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
151
+ export declare const reconcile: (input?: ReleaseReconcileConfigInput | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../host/host.js").CommandRunnerError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").RemoteStateInspectionError | import("../planner/errors.js").ReconciliationBlockedError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner | import("../host/http.js").ReleaseHttp | import("effect/Crypto").Crypto | import("../targets/registry.js").TargetRegistry>;
152
+ export declare const checkEligibility: (input?: ReleaseEligibilityConfigInput | undefined) => Effect.Effect<import("../domain/remote-state.js").ReleaseEligibilityDecision, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../host/host.js").CommandRunnerError | ReleaseEligibilityCheckError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner>;
153
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/workflows/config.ts"],"names":[],"mappings":"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"}