@numa-tech/numa 1.14.28 → 1.14.30

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 (94) hide show
  1. package/README.md +35 -201
  2. package/dist/application-onboarding/client.d.ts +3 -17
  3. package/dist/application-onboarding/client.js +1 -14
  4. package/dist/application-onboarding/client.js.map +1 -1
  5. package/dist/application-onboarding/commands.d.ts +0 -2
  6. package/dist/application-onboarding/commands.js +5 -76
  7. package/dist/application-onboarding/commands.js.map +1 -1
  8. package/dist/application-onboarding/schemas.d.ts +28 -301
  9. package/dist/application-onboarding/schemas.js +13 -91
  10. package/dist/application-onboarding/schemas.js.map +1 -1
  11. package/dist/cli.js +0 -2
  12. package/dist/cli.js.map +1 -1
  13. package/dist/command-catalog.js +6 -336
  14. package/dist/command-catalog.js.map +1 -1
  15. package/dist/gitops/client.d.ts +0 -38
  16. package/dist/gitops/client.js +1 -9
  17. package/dist/gitops/client.js.map +1 -1
  18. package/dist/gitops/commands.js +1 -20
  19. package/dist/gitops/commands.js.map +1 -1
  20. package/dist/gitops/schemas.d.ts +0 -112
  21. package/dist/gitops/schemas.js +0 -38
  22. package/dist/gitops/schemas.js.map +1 -1
  23. package/dist/jenkins/commands.d.ts +0 -4
  24. package/dist/jenkins/commands.js +0 -10
  25. package/dist/jenkins/commands.js.map +1 -1
  26. package/dist/jenkins-jobs/commands.d.ts +0 -2
  27. package/dist/jenkins-jobs/commands.js +0 -2
  28. package/dist/jenkins-jobs/commands.js.map +1 -1
  29. package/dist/pipeline/commands.js +0 -2
  30. package/dist/pipeline/commands.js.map +1 -1
  31. package/dist/platform-profile.d.ts +2 -0
  32. package/dist/platform-profile.js +2 -1
  33. package/dist/platform-profile.js.map +1 -1
  34. package/package.json +4 -4
  35. package/skills/numa-create-application/SKILL.md +30 -163
  36. package/skills/numa-create-application/agents/openai.yaml +2 -2
  37. package/skills/numa-create-application/evals/evals.json +9 -150
  38. package/skills/numa-create-application/references/checklist.md +22 -139
  39. package/skills/numa-create-application/references/numa-cli.md +27 -257
  40. package/skills/numa-create-application/references/promote-workflows.md +22 -188
  41. package/skills/numa-create-application/scripts/inspect-project.mjs +1 -1
  42. package/skills/numa-jenkins-deployment/SKILL.md +21 -132
  43. package/skills/numa-jenkins-deployment/agents/openai.yaml +2 -2
  44. package/skills/numa-jenkins-deployment/evals/evals.json +9 -59
  45. package/skills/numa-jenkins-deployment/references/cli-contract.md +22 -101
  46. package/skills/numa-jenkins-deployment/references/diagnostics.md +2 -2
  47. package/skills/numa-jenkins-deployment/references/release-policy.md +19 -85
  48. package/skills/numa-local-flux-deploy/SKILL.md +1 -1
  49. package/skills/numa-local-flux-deploy/references/local-flux-release.md +1 -1
  50. package/dist/integration-bootstrap/client.d.ts +0 -61
  51. package/dist/integration-bootstrap/client.js +0 -293
  52. package/dist/integration-bootstrap/client.js.map +0 -1
  53. package/dist/integration-bootstrap/commands.d.ts +0 -86
  54. package/dist/integration-bootstrap/commands.js +0 -615
  55. package/dist/integration-bootstrap/commands.js.map +0 -1
  56. package/dist/integration-bootstrap/schemas.d.ts +0 -831
  57. package/dist/integration-bootstrap/schemas.js +0 -565
  58. package/dist/integration-bootstrap/schemas.js.map +0 -1
  59. package/dist/jenkins-gitops-rollouts/client.d.ts +0 -197
  60. package/dist/jenkins-gitops-rollouts/client.js +0 -126
  61. package/dist/jenkins-gitops-rollouts/client.js.map +0 -1
  62. package/dist/jenkins-gitops-rollouts/commands.d.ts +0 -50
  63. package/dist/jenkins-gitops-rollouts/commands.js +0 -358
  64. package/dist/jenkins-gitops-rollouts/commands.js.map +0 -1
  65. package/dist/jenkins-gitops-rollouts/schemas.d.ts +0 -217
  66. package/dist/jenkins-gitops-rollouts/schemas.js +0 -131
  67. package/dist/jenkins-gitops-rollouts/schemas.js.map +0 -1
  68. package/dist/platform-build-job-replans/client.d.ts +0 -291
  69. package/dist/platform-build-job-replans/client.js +0 -148
  70. package/dist/platform-build-job-replans/client.js.map +0 -1
  71. package/dist/platform-build-job-replans/commands.d.ts +0 -6
  72. package/dist/platform-build-job-replans/commands.js +0 -373
  73. package/dist/platform-build-job-replans/commands.js.map +0 -1
  74. package/dist/platform-build-job-replans/schemas.d.ts +0 -147
  75. package/dist/platform-build-job-replans/schemas.js +0 -151
  76. package/dist/platform-build-job-replans/schemas.js.map +0 -1
  77. package/dist/platform-build-rollouts/client.d.ts +0 -346
  78. package/dist/platform-build-rollouts/client.js +0 -153
  79. package/dist/platform-build-rollouts/client.js.map +0 -1
  80. package/dist/platform-build-rollouts/commands.d.ts +0 -98
  81. package/dist/platform-build-rollouts/commands.js +0 -465
  82. package/dist/platform-build-rollouts/commands.js.map +0 -1
  83. package/dist/platform-build-rollouts/schemas.d.ts +0 -348
  84. package/dist/platform-build-rollouts/schemas.js +0 -257
  85. package/dist/platform-build-rollouts/schemas.js.map +0 -1
  86. package/dist/platform-builds/client.d.ts +0 -147
  87. package/dist/platform-builds/client.js +0 -115
  88. package/dist/platform-builds/client.js.map +0 -1
  89. package/dist/platform-builds/commands.d.ts +0 -7
  90. package/dist/platform-builds/commands.js +0 -226
  91. package/dist/platform-builds/commands.js.map +0 -1
  92. package/dist/platform-builds/schemas.d.ts +0 -127
  93. package/dist/platform-builds/schemas.js +0 -66
  94. package/dist/platform-builds/schemas.js.map +0 -1
@@ -1,373 +0,0 @@
1
- import process from "node:process";
2
- import { createHash } from "node:crypto";
3
- import { loadAppConfig } from "../app-config.js";
4
- import { loadConfig } from "../config.js";
5
- import { PipelineError, sanitizePipelineOutput } from "../pipeline/errors.js";
6
- import { PlatformBuildJobReplanClient } from "./client.js";
7
- import { PLATFORM_BUILD_JOB_POLICY, PlatformBuildJobTierSchema } from "./schemas.js";
8
- const SAFE_KEY = /^[A-Za-z0-9][A-Za-z0-9._:/+-]*$/u;
9
- const PLAN_HASH = /^[0-9a-f]{64}$/u;
10
- function safeKey(value, label, maximum = 200) {
11
- const trimmed = value?.trim() ?? "";
12
- if (!trimmed || trimmed.length > maximum || !SAFE_KEY.test(trimmed)) {
13
- throw new PipelineError(`${label} must be 1-${maximum} safe opaque characters.`, "JENKINS_PLATFORM_BUILD_JOB_REPLAN_INPUT_INVALID");
14
- }
15
- return trimmed;
16
- }
17
- function tier(value) {
18
- const parsed = PlatformBuildJobTierSchema.safeParse(value?.trim().toUpperCase());
19
- if (!parsed.success) {
20
- throw new PipelineError("tier must be develop, staging, production, or unknown.", "JENKINS_PLATFORM_BUILD_JOB_REPLAN_INPUT_INVALID");
21
- }
22
- return parsed.data;
23
- }
24
- function exactPlanHash(value) {
25
- const trimmed = value?.trim() ?? "";
26
- if (!PLAN_HASH.test(trimmed)) {
27
- throw new PipelineError("plan-hash must be the exact lower-case SHA-256 returned by the server.", "JENKINS_PLATFORM_BUILD_JOB_REPLAN_INPUT_INVALID");
28
- }
29
- return trimmed;
30
- }
31
- function requireYes(value) {
32
- if (!value) {
33
- throw new PipelineError("Platform-build job mutation requires --yes after reviewing its exact scope.", "JENKINS_PLATFORM_BUILD_JOB_REPLAN_CONFIRMATION_REQUIRED");
34
- }
35
- }
36
- function resultMayBeUnknown(error) {
37
- return error instanceof TypeError
38
- || (error instanceof PipelineError && ((error.status ?? 0) >= 500
39
- || (error.status != null && error.status >= 200 && error.status < 300
40
- && error.code === "JENKINS_PLATFORM_BUILD_JOB_REPLAN_INVALID_RESPONSE")));
41
- }
42
- function resultUnknown(error, message) {
43
- return new PipelineError(message, "JENKINS_PLATFORM_BUILD_JOB_REPLAN_RESULT_UNKNOWN", error instanceof PipelineError ? error.status : undefined, error instanceof PipelineError ? error.requestId : undefined);
44
- }
45
- function snakeCase(key) {
46
- return key.replace(/([a-z0-9])([A-Z])/gu, "$1_$2").toLowerCase();
47
- }
48
- function stableOutput(value) {
49
- const safe = sanitizePipelineOutput(value);
50
- if (Array.isArray(safe))
51
- return safe.map(stableOutput);
52
- if (safe && typeof safe === "object") {
53
- return Object.fromEntries(Object.entries(safe).map(([key, item]) => [snakeCase(key), stableOutput(item)]));
54
- }
55
- return safe;
56
- }
57
- async function jsonEnabled(command) {
58
- return Boolean(command.optsWithGlobals().json
59
- || (await loadAppConfig()).output === "json");
60
- }
61
- async function output(command, payload, textValue) {
62
- if (await jsonEnabled(command)) {
63
- process.stdout.write(`${JSON.stringify(stableOutput(payload), null, 2)}\n`);
64
- }
65
- else {
66
- process.stdout.write(`${String(sanitizePipelineOutput(textValue))}\n`);
67
- }
68
- }
69
- function examples(command, values, notes = []) {
70
- const noteSection = notes.length
71
- ? `\n说明:\n${notes.map((item) => ` - ${item}`).join("\n")}\n`
72
- : "";
73
- return command.addHelpText("after", `${noteSection}\nExamples:\n${values.map((item) => ` ${item}`).join("\n")}\n`);
74
- }
75
- function publicPlan(plan) {
76
- return {
77
- plan_no: plan.planNo,
78
- operation: plan.operation,
79
- scan_mode: plan.scanMode,
80
- state: plan.state,
81
- plan_hash: plan.planHash,
82
- policy_version: plan.policyVersion,
83
- client_request_id: plan.clientRequestId,
84
- request_digest: plan.requestDigest,
85
- application_code: plan.applicationCode,
86
- instance_code: plan.instanceCode,
87
- canonical_job_id: plan.canonicalJobId,
88
- canonical_job_full_name: plan.canonicalJobFullName,
89
- repository_key: plan.repositoryKey,
90
- tier: plan.tier,
91
- observed_config_digest: plan.observedConfigDigest,
92
- side_effects: plan.sideEffects,
93
- warnings: plan.warnings,
94
- blockers: plan.blockers,
95
- expires_at: plan.expiresAt
96
- };
97
- }
98
- function publicView(view) {
99
- return {
100
- policy_version: view.policyVersion,
101
- plan: publicPlan(view.plan),
102
- run: {
103
- run_no: view.run.runNo,
104
- plan_no: view.run.planNo,
105
- client_request_id: view.run.clientRequestId,
106
- request_digest: view.run.requestDigest,
107
- state: view.run.state,
108
- step_code: view.run.stepCode,
109
- canonical_job_id: view.run.canonicalJobId,
110
- canonical_job_full_name: view.run.canonicalJobFullName,
111
- binding_id: view.run.bindingId,
112
- observed_config_digest: view.run.observedConfigDigest,
113
- retryable: view.run.retryable,
114
- error_code: view.run.errorCode,
115
- error_message: view.run.errorMessage,
116
- accepted_at: view.run.acceptedAt,
117
- started_at: view.run.startedAt,
118
- completed_at: view.run.completedAt
119
- }
120
- };
121
- }
122
- function knownSuccess(view) {
123
- return view.plan.state === "CONSUMED"
124
- && view.run.state === "SUCCEEDED";
125
- }
126
- function canonicalDigest(value) {
127
- const canonical = JSON.stringify(Object.fromEntries(Object.entries(value).sort(([left], [right]) => left.localeCompare(right))));
128
- return createHash("sha256").update(canonical, "utf8").digest("hex");
129
- }
130
- function planRequestDigest(request) {
131
- return canonicalDigest(request);
132
- }
133
- function applyRequestDigest(request) {
134
- return canonicalDigest(request);
135
- }
136
- function exactResolvedPlan(candidate, expected) {
137
- return candidate.policyVersion === PLATFORM_BUILD_JOB_POLICY
138
- && candidate.applicationCode === expected.applicationCode
139
- && candidate.instanceCode === expected.instanceCode
140
- && candidate.tier === expected.tier
141
- && candidate.clientRequestId === expected.clientRequestId
142
- && candidate.requestDigest === planRequestDigest(expected);
143
- }
144
- function exactResolvedApply(candidate, expected) {
145
- return candidate.policyVersion === PLATFORM_BUILD_JOB_POLICY
146
- && candidate.plan.planNo === expected.planNo
147
- && candidate.plan.planHash === expected.planHash
148
- && candidate.plan.state === "CONSUMED"
149
- && candidate.run.clientRequestId === expected.clientRequestId
150
- && candidate.run.requestDigest === applyRequestDigest(expected);
151
- }
152
- function exactActionRecovery(baseline, candidate) {
153
- return exactActionIdentity(baseline, candidate)
154
- && candidate.run.state !== baseline.run.state
155
- && ["SUCCEEDED", "FAILED"].includes(candidate.run.state);
156
- }
157
- function exactActionIdentity(baseline, candidate) {
158
- return candidate.policyVersion === baseline.policyVersion
159
- && candidate.plan.planNo === baseline.plan.planNo
160
- && candidate.plan.planHash === baseline.plan.planHash
161
- && candidate.plan.clientRequestId === baseline.plan.clientRequestId
162
- && candidate.plan.requestDigest === baseline.plan.requestDigest
163
- && candidate.plan.applicationCode === baseline.plan.applicationCode
164
- && candidate.plan.instanceCode === baseline.plan.instanceCode
165
- && candidate.plan.repositoryKey === baseline.plan.repositoryKey
166
- && candidate.plan.tier === baseline.plan.tier
167
- && candidate.run.runNo === baseline.run.runNo
168
- && candidate.run.clientRequestId === baseline.run.clientRequestId
169
- && candidate.run.requestDigest === baseline.run.requestDigest
170
- && candidate.run.canonicalJobId === baseline.run.canonicalJobId
171
- && candidate.run.canonicalJobFullName === baseline.run.canonicalJobFullName
172
- && candidate.run.bindingId === baseline.run.bindingId
173
- && candidate.plan.observedConfigDigest === baseline.plan.observedConfigDigest;
174
- }
175
- export function registerPlatformBuildJobCommands(jenkins, dependencies = {}) {
176
- const client = () => dependencies.clientFactory?.()
177
- ?? new PlatformBuildJobReplanClient(loadConfig());
178
- const job = jenkins.command("platform-build-job")
179
- .description("管理独立 Platform Delivery v2 Jenkins Job provenance replan")
180
- .addHelpText("after", `
181
- 安全边界:
182
- 必须先创建并审阅不可变 existing plan,再以 exact planNo/planHash 单独 apply。
183
- 服务端固定 USE_EXISTING、scanMode=INDEX_ONLY、Jenkinsfile 和 canonical repository/job/binding。
184
- apply 只执行经过 NoTrigger 验证的分支索引,并要求默认分支 child 可构建;不会触发 build。
185
- 不接受 job/repository ID、路径、scan mode、XML、Groovy、credential、env 或 build 参数。
186
- plan/apply 写响应未知时分别只 GET plan resolve/run resolve,绝不自动重放 POST。
187
- `);
188
- const plan = job.command("plan").description("创建、审阅独立 v2 existing-root plan");
189
- examples(plan.command("existing")
190
- .description("规划为既有 canonical Multibranch root 重建 v2 provenance")
191
- .requiredOption("--application <code>", "Application stable code")
192
- .requiredOption("--instance <code>", "Jenkins instance stable code")
193
- .requiredOption("--tier <tier>", "develop, staging, production, or unknown")
194
- .requiredOption("--client-request-id <key>", "plan 稳定结果恢复 ID")
195
- .requiredOption("--idempotency-key <key>", "plan 稳定写入幂等键")
196
- .option("--yes", "确认只创建不可变 plan,不修改 Jenkins")
197
- .action(async (options, command) => {
198
- requireYes(options.yes);
199
- const request = {
200
- applicationCode: safeKey(options.application, "application", 80),
201
- instanceCode: safeKey(options.instance, "instance", 80),
202
- tier: tier(options.tier),
203
- clientRequestId: safeKey(options.clientRequestId, "client-request-id"),
204
- idempotencyKey: safeKey(options.idempotencyKey, "idempotency-key")
205
- };
206
- const replanClient = client();
207
- let result;
208
- let recoveredFromStatus = false;
209
- try {
210
- result = await replanClient.createPlan(request, request.idempotencyKey);
211
- }
212
- catch (error) {
213
- if (!resultMayBeUnknown(error))
214
- throw error;
215
- let resolved;
216
- try {
217
- resolved = await replanClient.resolvePlan(request.clientRequestId);
218
- }
219
- catch {
220
- throw resultUnknown(error, "Platform-build job plan result is unknown. GET plan resolve did not prove the exact request; do not replay.");
221
- }
222
- if (!exactResolvedPlan(resolved, request)) {
223
- throw resultUnknown(error, "Platform-build job plan result is unknown. GET resolve returned a different immutable request; do not replay.");
224
- }
225
- result = resolved;
226
- recoveredFromStatus = true;
227
- }
228
- if (!exactResolvedPlan(result, request)) {
229
- throw resultUnknown(new PipelineError("Platform-build job plan response did not match the exact request.", "JENKINS_PLATFORM_BUILD_JOB_REPLAN_INVALID_RESPONSE"), "Platform-build job plan result is unknown. The response did not prove the exact request; do not replay.");
230
- }
231
- await output(command, {
232
- ok: result.state === "READY",
233
- recovered_from_status: recoveredFromStatus,
234
- plan: publicPlan(result)
235
- }, `${result.planNo}\t${result.state}\t${result.planHash}\t${result.blockers.length} blocker(s)`);
236
- }), [
237
- "numa jenkins platform-build-job plan existing --application code-index --instance numa --tier production --client-request-id code-index-v2-job-plan-1 --idempotency-key code-index-v2-job-plan-write-1 --yes --json"
238
- ]);
239
- examples(plan.command("get <plan-no>")
240
- .description("读取并审阅不可变 existing-root plan")
241
- .action(async (planNo, _options, command) => {
242
- const result = await client().getPlan(safeKey(planNo, "plan-no", 120));
243
- await output(command, { ok: result.state === "READY", plan: publicPlan(result) }, `${result.planNo}\t${result.state}\t${result.planHash}\t${result.blockers.length} blocker(s)`);
244
- }), ["numa jenkins platform-build-job plan get jpbplan_01 --json"]);
245
- examples(plan.command("resolve")
246
- .description("按原 plan clientRequestId 只读恢复不可变 plan")
247
- .requiredOption("--client-request-id <key>", "原 plan 结果恢复 ID")
248
- .action(async (options, command) => {
249
- const result = await client().resolvePlan(safeKey(options.clientRequestId, "client-request-id"));
250
- await output(command, { ok: result.state === "READY", plan: publicPlan(result) }, `${result.planNo}\t${result.state}\t${result.planHash}\t${result.blockers.length} blocker(s)`);
251
- }), [
252
- "numa jenkins platform-build-job plan resolve --client-request-id code-index-v2-job-plan-1 --json"
253
- ], ["纯 GET;暂未可见时稍后使用同一 clientRequestId 重试,绝不重放 plan POST。"]);
254
- examples(job.command("apply")
255
- .description("应用已审阅的 exact READY plan,不修改或触发 Jenkins build")
256
- .requiredOption("--plan-no <number>", "服务端 plan 编号")
257
- .requiredOption("--plan-hash <64hex>", "服务端 exact plan hash")
258
- .requiredOption("--client-request-id <key>", "apply 稳定结果恢复 ID")
259
- .requiredOption("--idempotency-key <key>", "apply 稳定写入幂等键")
260
- .option("--yes", "确认应用 exact plan")
261
- .action(async (options, command) => {
262
- requireYes(options.yes);
263
- const request = {
264
- planNo: safeKey(options.planNo, "plan-no", 120),
265
- planHash: exactPlanHash(options.planHash),
266
- clientRequestId: safeKey(options.clientRequestId, "client-request-id"),
267
- idempotencyKey: safeKey(options.idempotencyKey, "idempotency-key")
268
- };
269
- const replanClient = client();
270
- const current = await replanClient.getPlan(request.planNo);
271
- if (current.planHash !== request.planHash) {
272
- throw new PipelineError("plan-hash does not match the current immutable plan.", "JENKINS_PLATFORM_BUILD_JOB_REPLAN_PLAN_HASH_MISMATCH");
273
- }
274
- if (current.state !== "READY" || current.blockers.length > 0) {
275
- throw new PipelineError("Platform-build job plan is not READY or contains blockers.", "JENKINS_PLATFORM_BUILD_JOB_REPLAN_PLAN_NOT_READY");
276
- }
277
- let result;
278
- let recoveredFromStatus = false;
279
- try {
280
- result = await replanClient.apply(request, request.idempotencyKey);
281
- }
282
- catch (error) {
283
- if (!resultMayBeUnknown(error))
284
- throw error;
285
- let resolved;
286
- try {
287
- resolved = await replanClient.resolve(request.clientRequestId);
288
- }
289
- catch {
290
- throw resultUnknown(error, "Platform-build job apply result is unknown. GET resolve did not prove the exact request; do not replay.");
291
- }
292
- if (!exactResolvedApply(resolved, request)) {
293
- throw resultUnknown(error, "Platform-build job apply result is unknown. GET resolve returned a different immutable request; do not replay.");
294
- }
295
- result = resolved;
296
- recoveredFromStatus = true;
297
- }
298
- if (!exactResolvedApply(result, request)) {
299
- throw resultUnknown(new PipelineError("Platform-build job apply response did not match the exact request.", "JENKINS_PLATFORM_BUILD_JOB_REPLAN_INVALID_RESPONSE"), "Platform-build job apply result is unknown. The response did not prove the exact request; do not replay.");
300
- }
301
- await output(command, {
302
- ok: knownSuccess(result),
303
- recovered_from_status: recoveredFromStatus,
304
- replan: publicView(result)
305
- }, `${result.run.runNo}\t${result.run.state}\t${result.run.stepCode}`);
306
- }), [
307
- "numa jenkins platform-build-job apply --plan-no jpbplan_01 --plan-hash <64hex> --client-request-id code-index-v2-job-apply-1 --idempotency-key code-index-v2-job-apply-write-1 --yes --json"
308
- ]);
309
- examples(job.command("resolve")
310
- .description("按原 apply clientRequestId 只读恢复 replan run")
311
- .requiredOption("--client-request-id <key>", "原 apply 结果恢复 ID")
312
- .action(async (options, command) => {
313
- const result = await client().resolve(safeKey(options.clientRequestId, "client-request-id"));
314
- await output(command, { ok: knownSuccess(result), replan: publicView(result) }, `${result.run.runNo}\t${result.run.state}\t${result.run.stepCode}`);
315
- }), [
316
- "numa jenkins platform-build-job resolve --client-request-id code-index-v2-job-apply-1 --json"
317
- ]);
318
- examples(job.command("get <run-no>")
319
- .description("读取独立 v2 replan run")
320
- .action(async (runNo, _options, command) => {
321
- const result = await client().get(safeKey(runNo, "run-no", 120));
322
- await output(command, { ok: knownSuccess(result), replan: publicView(result) }, `${result.run.runNo}\t${result.run.state}\t${result.run.stepCode}`);
323
- }), ["numa jenkins platform-build-job get jpbrun_01 --json"]);
324
- for (const action of ["retry", "reconcile"]) {
325
- examples(job.command(`${action} <run-no>`)
326
- .description(action === "retry"
327
- ? "显式重试服务端标记可恢复的 v2 replan"
328
- : "显式调和结果未知的 v2 replan")
329
- .requiredOption("--idempotency-key <key>", "稳定恢复动作幂等键")
330
- .option("--yes", "确认受控恢复动作")
331
- .action(async (runNo, options, command) => {
332
- requireYes(options.yes);
333
- const stableRunNo = safeKey(runNo, "run-no", 120);
334
- const key = safeKey(options.idempotencyKey, "idempotency-key");
335
- const replanClient = client();
336
- const baseline = await replanClient.get(stableRunNo);
337
- let result;
338
- let recoveredFromStatus = false;
339
- try {
340
- result = action === "retry"
341
- ? await replanClient.retry(stableRunNo, { idempotencyKey: key }, key)
342
- : await replanClient.reconcile(stableRunNo, { idempotencyKey: key }, key);
343
- }
344
- catch (error) {
345
- if (!resultMayBeUnknown(error))
346
- throw error;
347
- let observed;
348
- try {
349
- observed = await replanClient.get(stableRunNo);
350
- }
351
- catch {
352
- throw resultUnknown(error, `Platform-build job ${action} result is unknown. GET recovery failed; do not replay.`);
353
- }
354
- if (!exactActionRecovery(baseline, observed)) {
355
- throw resultUnknown(error, `Platform-build job ${action} result is unknown. GET did not prove a new exact terminal state; do not replay.`);
356
- }
357
- result = observed;
358
- recoveredFromStatus = true;
359
- }
360
- if (!exactActionIdentity(baseline, result)) {
361
- throw resultUnknown(new PipelineError(`Platform-build job ${action} response did not match the exact run.`, "JENKINS_PLATFORM_BUILD_JOB_REPLAN_INVALID_RESPONSE"), `Platform-build job ${action} result is unknown. The response did not prove the exact run; do not replay.`);
362
- }
363
- await output(command, {
364
- ok: knownSuccess(result),
365
- recovered_from_status: recoveredFromStatus,
366
- replan: publicView(result)
367
- }, `${result.run.runNo}\t${result.run.state}\t${result.run.stepCode}`);
368
- }), [
369
- `numa jenkins platform-build-job ${action} jpbrun_01 --idempotency-key code-index-v2-${action}-1 --yes --json`
370
- ], ["结果未知时只 GET 同一 run;没有新 exact terminal evidence 时保持 UNKNOWN。"]);
371
- }
372
- }
373
- //# sourceMappingURL=commands.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/platform-build-job-replans/commands.ts"],"names":[],"mappings":"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"}
@@ -1,147 +0,0 @@
1
- import { z } from "zod";
2
- export declare const PLATFORM_BUILD_JOB_POLICY: "jenkins-job-plan/v2";
3
- export declare const PlatformBuildJobTierSchema: z.ZodEnum<{
4
- DEVELOP: "DEVELOP";
5
- PRODUCTION: "PRODUCTION";
6
- STAGING: "STAGING";
7
- UNKNOWN: "UNKNOWN";
8
- }>;
9
- export declare const PlatformBuildJobPlanRequestSchema: z.ZodObject<{
10
- applicationCode: z.ZodString;
11
- instanceCode: z.ZodString;
12
- tier: z.ZodEnum<{
13
- DEVELOP: "DEVELOP";
14
- PRODUCTION: "PRODUCTION";
15
- STAGING: "STAGING";
16
- UNKNOWN: "UNKNOWN";
17
- }>;
18
- clientRequestId: z.ZodString;
19
- idempotencyKey: z.ZodString;
20
- }, z.core.$strict>;
21
- export declare const PlatformBuildJobApplyRequestSchema: z.ZodObject<{
22
- planNo: z.ZodString;
23
- planHash: z.ZodString;
24
- clientRequestId: z.ZodString;
25
- idempotencyKey: z.ZodString;
26
- }, z.core.$strict>;
27
- export declare const PlatformBuildJobActionRequestSchema: z.ZodObject<{
28
- idempotencyKey: z.ZodString;
29
- }, z.core.$strict>;
30
- export declare const PlatformBuildJobPlanSchema: z.ZodObject<{
31
- planNo: z.ZodString;
32
- operation: z.ZodLiteral<"USE_EXISTING">;
33
- scanMode: z.ZodLiteral<"INDEX_ONLY">;
34
- state: z.ZodEnum<{
35
- BLOCKED: "BLOCKED";
36
- CONSUMED: "CONSUMED";
37
- EXPIRED: "EXPIRED";
38
- READY: "READY";
39
- }>;
40
- planHash: z.ZodString;
41
- policyVersion: z.ZodLiteral<"jenkins-job-plan/v2">;
42
- clientRequestId: z.ZodString;
43
- requestDigest: z.ZodString;
44
- applicationCode: z.ZodString;
45
- instanceCode: z.ZodString;
46
- canonicalJobId: z.ZodNumber;
47
- canonicalJobFullName: z.ZodString;
48
- repositoryKey: z.ZodString;
49
- tier: z.ZodEnum<{
50
- DEVELOP: "DEVELOP";
51
- PRODUCTION: "PRODUCTION";
52
- STAGING: "STAGING";
53
- UNKNOWN: "UNKNOWN";
54
- }>;
55
- observedConfigDigest: z.ZodString;
56
- sideEffects: z.ZodDefault<z.ZodArray<z.ZodString>>;
57
- warnings: z.ZodDefault<z.ZodArray<z.ZodString>>;
58
- blockers: z.ZodDefault<z.ZodArray<z.ZodString>>;
59
- expiresAt: z.ZodString;
60
- }, z.core.$strict>;
61
- export declare const PlatformBuildJobRunSchema: z.ZodObject<{
62
- runNo: z.ZodString;
63
- planNo: z.ZodString;
64
- clientRequestId: z.ZodString;
65
- requestDigest: z.ZodString;
66
- state: z.ZodEnum<{
67
- ACCEPTED: "ACCEPTED";
68
- FAILED: "FAILED";
69
- RUNNING: "RUNNING";
70
- SUCCEEDED: "SUCCEEDED";
71
- UNKNOWN: "UNKNOWN";
72
- }>;
73
- stepCode: z.ZodString;
74
- canonicalJobId: z.ZodNumber;
75
- canonicalJobFullName: z.ZodString;
76
- bindingId: z.ZodNumber;
77
- observedConfigDigest: z.ZodNullable<z.ZodString>;
78
- retryable: z.ZodBoolean;
79
- errorCode: z.ZodNullable<z.ZodString>;
80
- errorMessage: z.ZodNullable<z.ZodString>;
81
- acceptedAt: z.ZodString;
82
- startedAt: z.ZodNullable<z.ZodString>;
83
- completedAt: z.ZodNullable<z.ZodString>;
84
- }, z.core.$strict>;
85
- export declare const PlatformBuildJobReplanSchema: z.ZodObject<{
86
- policyVersion: z.ZodLiteral<"jenkins-job-plan/v2">;
87
- plan: z.ZodObject<{
88
- planNo: z.ZodString;
89
- operation: z.ZodLiteral<"USE_EXISTING">;
90
- scanMode: z.ZodLiteral<"INDEX_ONLY">;
91
- state: z.ZodEnum<{
92
- BLOCKED: "BLOCKED";
93
- CONSUMED: "CONSUMED";
94
- EXPIRED: "EXPIRED";
95
- READY: "READY";
96
- }>;
97
- planHash: z.ZodString;
98
- policyVersion: z.ZodLiteral<"jenkins-job-plan/v2">;
99
- clientRequestId: z.ZodString;
100
- requestDigest: z.ZodString;
101
- applicationCode: z.ZodString;
102
- instanceCode: z.ZodString;
103
- canonicalJobId: z.ZodNumber;
104
- canonicalJobFullName: z.ZodString;
105
- repositoryKey: z.ZodString;
106
- tier: z.ZodEnum<{
107
- DEVELOP: "DEVELOP";
108
- PRODUCTION: "PRODUCTION";
109
- STAGING: "STAGING";
110
- UNKNOWN: "UNKNOWN";
111
- }>;
112
- observedConfigDigest: z.ZodString;
113
- sideEffects: z.ZodDefault<z.ZodArray<z.ZodString>>;
114
- warnings: z.ZodDefault<z.ZodArray<z.ZodString>>;
115
- blockers: z.ZodDefault<z.ZodArray<z.ZodString>>;
116
- expiresAt: z.ZodString;
117
- }, z.core.$strict>;
118
- run: z.ZodObject<{
119
- runNo: z.ZodString;
120
- planNo: z.ZodString;
121
- clientRequestId: z.ZodString;
122
- requestDigest: z.ZodString;
123
- state: z.ZodEnum<{
124
- ACCEPTED: "ACCEPTED";
125
- FAILED: "FAILED";
126
- RUNNING: "RUNNING";
127
- SUCCEEDED: "SUCCEEDED";
128
- UNKNOWN: "UNKNOWN";
129
- }>;
130
- stepCode: z.ZodString;
131
- canonicalJobId: z.ZodNumber;
132
- canonicalJobFullName: z.ZodString;
133
- bindingId: z.ZodNumber;
134
- observedConfigDigest: z.ZodNullable<z.ZodString>;
135
- retryable: z.ZodBoolean;
136
- errorCode: z.ZodNullable<z.ZodString>;
137
- errorMessage: z.ZodNullable<z.ZodString>;
138
- acceptedAt: z.ZodString;
139
- startedAt: z.ZodNullable<z.ZodString>;
140
- completedAt: z.ZodNullable<z.ZodString>;
141
- }, z.core.$strict>;
142
- }, z.core.$strict>;
143
- export type PlatformBuildJobPlanRequest = z.infer<typeof PlatformBuildJobPlanRequestSchema>;
144
- export type PlatformBuildJobApplyRequest = z.infer<typeof PlatformBuildJobApplyRequestSchema>;
145
- export type PlatformBuildJobActionRequest = z.infer<typeof PlatformBuildJobActionRequestSchema>;
146
- export type PlatformBuildJobPlan = z.infer<typeof PlatformBuildJobPlanSchema>;
147
- export type PlatformBuildJobReplan = z.infer<typeof PlatformBuildJobReplanSchema>;