@numa-tech/numa 1.12.7 → 1.12.8

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 (65) hide show
  1. package/README.md +139 -43
  2. package/dist/ai-registry/bridge.d.ts +8 -0
  3. package/dist/ai-registry/bridge.js +63 -0
  4. package/dist/ai-registry/bridge.js.map +1 -0
  5. package/dist/ai-registry/client.d.ts +29 -3
  6. package/dist/ai-registry/client.js +112 -8
  7. package/dist/ai-registry/client.js.map +1 -1
  8. package/dist/ai-registry/commands.js +367 -112
  9. package/dist/ai-registry/commands.js.map +1 -1
  10. package/dist/ai-registry/errors.d.ts +2 -1
  11. package/dist/ai-registry/errors.js +12 -1
  12. package/dist/ai-registry/errors.js.map +1 -1
  13. package/dist/ai-registry/mcp-installer.d.ts +1 -0
  14. package/dist/ai-registry/mcp-installer.js +4 -0
  15. package/dist/ai-registry/mcp-installer.js.map +1 -1
  16. package/dist/ai-registry/namespace.d.ts +17 -0
  17. package/dist/ai-registry/namespace.js +53 -0
  18. package/dist/ai-registry/namespace.js.map +1 -0
  19. package/dist/ai-registry/schemas.d.ts +127 -2
  20. package/dist/ai-registry/schemas.js +42 -2
  21. package/dist/ai-registry/schemas.js.map +1 -1
  22. package/dist/ai-registry/sync.d.ts +23 -0
  23. package/dist/ai-registry/sync.js +276 -0
  24. package/dist/ai-registry/sync.js.map +1 -0
  25. package/dist/ai-registry/tui.d.ts +2 -0
  26. package/dist/ai-registry/tui.js +140 -0
  27. package/dist/ai-registry/tui.js.map +1 -0
  28. package/dist/ai-registry/workspace.d.ts +191 -0
  29. package/dist/ai-registry/workspace.js +167 -0
  30. package/dist/ai-registry/workspace.js.map +1 -0
  31. package/dist/app-config.d.ts +3 -2
  32. package/dist/app-config.js +5 -3
  33. package/dist/app-config.js.map +1 -1
  34. package/dist/cli.js +25 -3
  35. package/dist/cli.js.map +1 -1
  36. package/dist/command-catalog.d.ts +1 -0
  37. package/dist/command-catalog.js +97 -10
  38. package/dist/command-catalog.js.map +1 -1
  39. package/dist/config-page.js +2 -0
  40. package/dist/config-page.js.map +1 -1
  41. package/dist/config.d.ts +1 -0
  42. package/dist/config.js +1 -0
  43. package/dist/config.js.map +1 -1
  44. package/dist/pipeline/client.d.ts +10 -6
  45. package/dist/pipeline/client.js +7 -4
  46. package/dist/pipeline/client.js.map +1 -1
  47. package/dist/pipeline/commands.d.ts +5 -1
  48. package/dist/pipeline/commands.js +89 -18
  49. package/dist/pipeline/commands.js.map +1 -1
  50. package/dist/pipeline/schemas.d.ts +7 -7
  51. package/dist/pipeline/schemas.js +2 -2
  52. package/dist/pipeline/schemas.js.map +1 -1
  53. package/dist/platform-profile.d.ts +8 -2
  54. package/dist/platform-profile.js +5 -2
  55. package/dist/platform-profile.js.map +1 -1
  56. package/dist/web-console-page.d.ts +3 -3
  57. package/dist/web-console-page.js +75 -20
  58. package/dist/web-console-page.js.map +1 -1
  59. package/dist/web-console.d.ts +1 -1
  60. package/dist/web-console.js +46 -0
  61. package/dist/web-console.js.map +1 -1
  62. package/package.json +8 -5
  63. package/skills/numa-ai-registry/SKILL.md +25 -19
  64. package/skills/numa-ai-registry/evals/evals.json +10 -10
  65. package/skills/numa-ai-registry/references/command-contract.md +41 -6
@@ -73,6 +73,24 @@ export const COMMAND_CATALOG = [
73
73
  access: "authenticated",
74
74
  examples: ["numa registry tui"]
75
75
  },
76
+ {
77
+ command: "registry capabilities",
78
+ summary: "列出授权 namespace、环境、动作、Router 和客户端适配器",
79
+ access: "authenticated",
80
+ examples: ["numa registry capabilities --json"]
81
+ },
82
+ {
83
+ command: "registry init --namespace <key>",
84
+ summary: "创建项目级 .numa/registry.json",
85
+ access: "authenticated",
86
+ examples: ["numa registry init --namespace team-ai --json"]
87
+ },
88
+ ...["lock", "sync", "upgrade"].map((action) => ({
89
+ command: `registry ${action}`,
90
+ summary: action === "lock" ? "把项目 Registry 标签解析为精确版本锁" : action === "sync" ? "严格按 lock 同步安装且不隐式升级" : "显式升级跟踪标签并更新 lock",
91
+ access: "authenticated",
92
+ examples: [`numa registry ${action} --json`]
93
+ })),
76
94
  {
77
95
  command: "registry instances list",
78
96
  summary: "列出数据库中的 Nacos 实例与凭据配置状态,不返回 secret",
@@ -81,13 +99,13 @@ export const COMMAND_CATALOG = [
81
99
  },
82
100
  {
83
101
  command: "registry instances create <json>",
84
- summary: "创建 Nacos 实例并将 OIDC secret 加密写入平台数据库(服务端 edit Scope)",
102
+ summary: "创建 Nacos 实例及 namespace-scoped READER/MAINTAINER 双凭据",
85
103
  access: "authenticated",
86
104
  examples: ["numa registry instances create ./nacos-instance.json --json"]
87
105
  },
88
106
  {
89
107
  command: "registry instances update <id-or-code> <json>",
90
- summary: "以乐观锁更新 Nacos 实例及其写入式 secret(服务端 edit Scope)",
108
+ summary: "以乐观锁更新实例与只写式双凭据;省略凭据表示保留",
91
109
  access: "authenticated",
92
110
  examples: ["numa registry instances update cluster-a ./nacos-instance.json --json"]
93
111
  },
@@ -145,6 +163,12 @@ export const COMMAND_CATALOG = [
145
163
  access: "authenticated",
146
164
  examples: ["numa registry skill inspect release-helper --namespace team-ai --json"]
147
165
  },
166
+ {
167
+ command: "registry skill draft <name>",
168
+ summary: "从指定版本创建团队 Skill 草稿",
169
+ access: "authenticated",
170
+ examples: ["numa registry skill draft release-helper --from-version 1.0.0 --json"]
171
+ },
148
172
  {
149
173
  command: "registry skill install <name>",
150
174
  summary: "校验 SHA-256 和 ZIP 后原子安装到 AI 客户端 Skills 目录",
@@ -157,7 +181,7 @@ export const COMMAND_CATALOG = [
157
181
  access: "authenticated",
158
182
  examples: ["numa registry skill upload ./release-helper.zip --namespace team-ai --json"]
159
183
  },
160
- ...["submit", "publish", "online", "offline", "scope", "tags", "delete"].map((action) => ({
184
+ ...["submit", "publish", "online", "offline", "scope", "tags", "labels", "delete"].map((action) => ({
161
185
  command: `registry skill ${action} <name>`,
162
186
  summary: `执行 Skill ${action} 治理操作(服务端 edit Scope)`,
163
187
  access: "authenticated",
@@ -175,6 +199,12 @@ export const COMMAND_CATALOG = [
175
199
  access: "authenticated",
176
200
  examples: ["numa registry mcp inspect internal-docs --namespace team-ai --json"]
177
201
  },
202
+ {
203
+ command: "registry mcp bridge",
204
+ summary: "用 Numa 登录刷新能力把企业 Router 桥接为 stdio MCP",
205
+ access: "authenticated",
206
+ examples: ["numa registry mcp bridge --namespace team-ai"]
207
+ },
178
208
  {
179
209
  command: "registry mcp install <name>",
180
210
  summary: "安装 MCP Server 到 ChatGPT、Codex、Claude、Cursor、WorkBuddy 或 OpenClaw",
@@ -187,6 +217,48 @@ export const COMMAND_CATALOG = [
187
217
  access: "authenticated",
188
218
  examples: [`numa registry mcp ${action} --help`]
189
219
  })),
220
+ ...["online", "offline", "tags"].map((action) => ({
221
+ command: `registry mcp ${action} <name>`,
222
+ summary: `执行 MCP ${action} 治理操作(服务端授权)`,
223
+ access: "authenticated",
224
+ examples: [`numa registry mcp ${action} internal-docs --namespace team-ai --json`]
225
+ })),
226
+ ...["enable", "disable"].map((action) => ({
227
+ command: `registry mcp tool ${action} <mcp-name> <tool-name>`,
228
+ summary: `${action === "enable" ? "启用" : "禁用"}指定 MCP 工具并使用乐观锁`,
229
+ access: "authenticated",
230
+ examples: [`numa registry mcp tool ${action} internal-docs search --version 3 --json`]
231
+ })),
232
+ {
233
+ command: "registry approvals submit <type> <name>",
234
+ summary: "提交 Skill 或 MCP 精确版本进入两人制发布流程",
235
+ access: "authenticated",
236
+ examples: ["numa registry approvals submit skill release-helper --resource-version 1.2.0 --reason 'ready' --json"]
237
+ },
238
+ {
239
+ command: "registry approvals list",
240
+ summary: "列出当前 namespace 的发布申请收件箱",
241
+ access: "authenticated",
242
+ examples: ["numa registry approvals list --state SUBMITTED --json"]
243
+ },
244
+ ...["review", "publish"].map((action) => ({
245
+ command: `registry approvals ${action} <request-id>`,
246
+ summary: action === "review" ? "以 Reviewer 身份审核发布申请(禁止自审)" : "发布已批准的申请",
247
+ access: "authenticated",
248
+ examples: [`numa registry approvals ${action} rr_123 --json`]
249
+ })),
250
+ ...["inspect", "connect", "health", "reconcile"].map((action) => ({
251
+ command: `registry router ${action}`,
252
+ summary: `执行 namespace Router ${action} 操作`,
253
+ access: "authenticated",
254
+ examples: [`numa registry router ${action} --namespace team-ai --json`]
255
+ })),
256
+ {
257
+ command: "registry audit",
258
+ summary: "查询追加式 Registry 审计事件",
259
+ access: "authenticated",
260
+ examples: ["numa registry audit --namespace team-ai --json"]
261
+ },
190
262
  {
191
263
  command: "media capabilities",
192
264
  summary: "查询平台媒体 API、Provider 和版本能力",
@@ -209,36 +281,51 @@ export const COMMAND_CATALOG = [
209
281
  command: "pipeline builds [--app <code>] [--tier <tier>] [--branch <name>] [--state <state>] [--cursor <cursor>] [--limit <number>]",
210
282
  summary: "检索当前用户可见的 Jenkins 构建记录",
211
283
  access: "authenticated",
284
+ operationalNotes: ["用于在未保存 requestId 时按应用、环境、分支或状态找回构建记录。"],
212
285
  examples: ["numa pipeline builds --app mci-devops-platform --state running --json"]
213
286
  },
214
287
  {
215
- command: "pipeline build <application> --tier <tier> [--branch <name>] [--param <KEY=VALUE>...] [--idempotency-key <key>] [--wait]",
216
- summary: "通过平台授权触发非生产 Jenkins 构建",
288
+ command: "pipeline build <application> --tier <tier> [--branch <name>] [--param <KEY=VALUE>...] [--idempotency-key <key>] [--approve-id <id>] [--production-reason <text>] [--wait]",
289
+ summary: "通过平台授权触发 Jenkins 构建;生产要求 ops-admin 及审批依据",
217
290
  access: "authenticated",
218
- examples: ["numa pipeline build mci-devops-platform --tier develop --param SONAR_SCAN=false --wait --json"]
291
+ operationalNotes: [
292
+ "requestId 由平台生成,用于 status、log、stop 和 retry;idempotency-key 由调用者标识同一次提交。",
293
+ "不传 idempotency-key 时 CLI 自动生成并在成功结果中返回;生产和自动化建议显式提供,结果不明时复用原值。",
294
+ "--wait 约每 2 秒轮询至终态且无默认超时;Ctrl+C 或网络中断只结束本地等待,不会停止 Jenkins 构建。",
295
+ "--wait 仅在 SUCCESS 时返回退出码 0,其他终态返回非零。",
296
+ "approveId 由平台审计并仅在生产 trigger/retry 时映射为 Jenkins APPROVE_ID;productionReason 不转发。"
297
+ ],
298
+ examples: ["numa pipeline build mci-devops-platform --tier production --approve-id APPROVAL-2026-001 --wait --json"]
219
299
  },
220
300
  {
221
301
  command: "pipeline status <request-or-build-id> [--watch]",
222
302
  summary: "查询或持续观察 Jenkins 构建状态",
223
303
  access: "authenticated",
304
+ operationalNotes: [
305
+ "优先使用 build 返回的 requestId,也接受已分配的 Jenkins build number。",
306
+ "--watch 约每 2 秒轮询至终态且无默认超时;Ctrl+C 只停止观察,不停止构建。"
307
+ ],
224
308
  examples: ["numa pipeline status req_01ABC --watch --json"]
225
309
  },
226
310
  {
227
311
  command: "pipeline log <request-or-build-id> [--follow] [--offset <number>] [--limit <number>]",
228
312
  summary: "按 progressiveText 游标读取或跟随构建日志",
229
313
  access: "authenticated",
314
+ operationalNotes: ["--follow 可用 Ctrl+C 停止本地日志跟随,不会停止 Jenkins 构建。"],
230
315
  examples: ["numa pipeline log req_01ABC --follow"]
231
316
  },
232
317
  {
233
- command: "pipeline stop <request-or-build-id> --yes",
234
- summary: "停止排队中或运行中的非生产构建",
318
+ command: "pipeline stop <request-or-build-id> --yes [--approve-id <id>] [--production-reason <text>]",
319
+ summary: "停止排队中或运行中的构建;生产要求审批依据",
235
320
  access: "authenticated",
321
+ operationalNotes: ["--yes 仅确认本次停止操作;生产任务仍由服务端要求 ops-admin 及审批依据。"],
236
322
  examples: ["numa pipeline stop req_01ABC --yes --json"]
237
323
  },
238
324
  {
239
- command: "pipeline retry <request-or-build-id> --yes [--param <KEY=VALUE>...]",
240
- summary: "重试非生产构建并重新提供敏感参数",
325
+ command: "pipeline retry <request-or-build-id> --yes [--param <KEY=VALUE>...] [--approve-id <id>] [--production-reason <text>]",
326
+ summary: "重试构建;生产要求新的审批依据",
241
327
  access: "authenticated",
328
+ operationalNotes: ["retry 创建新的构建请求;生产任务必须提供新的有效审批依据,敏感参数必须重新提供。"],
242
329
  examples: ["numa pipeline retry req_01ABC --yes --param DEPLOY_TOKEN=value --json"]
243
330
  },
244
331
  {
@@ -1 +1 @@
1
- {"version":3,"file":"command-catalog.js","sourceRoot":"","sources":["../src/command-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-catalog.js","sourceRoot":"","sources":["../src/command-catalog.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,7 @@ export async function openConfigPage() {
50
50
  const apiBaseUrl = await ask("内部研发平台 API 地址", current.apiBaseUrl, validateHttpUrl);
51
51
  const profileUrl = await ask("公开 client profile URL", current.profileUrl, validateProfileUrl);
52
52
  const profileId = await ask("锁定 profile ID(可留空)", current.profileId);
53
+ const aiRegistryDefaultNamespaceKey = await ask("AI Registry 用户默认 namespace(可留空)", current.aiRegistryDefaultNamespaceKey);
53
54
  const registryUrl = await ask("npm registry", current.registryUrl, validateHttpUrl);
54
55
  const checkUpdatesText = await ask("启动时检查更新 (true/false)", String(current.checkUpdates), (value) => ["true", "false"].includes(value) ? undefined : "可选值: true, false");
55
56
  const saved = await saveAppConfig({
@@ -59,6 +60,7 @@ export async function openConfigPage() {
59
60
  apiBaseUrl,
60
61
  profileUrl,
61
62
  profileId,
63
+ aiRegistryDefaultNamespaceKey,
62
64
  registryUrl,
63
65
  checkUpdates: checkUpdatesText === "true"
64
66
  });
@@ -1 +1 @@
1
- {"version":3,"file":"config-page.js","sourceRoot":"","sources":["../src/config-page.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-page.js","sourceRoot":"","sources":["../src/config-page.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -13,6 +13,7 @@ export interface AuthConfig {
13
13
  redirectPath: string;
14
14
  openBrowser: boolean;
15
15
  backendBaseUrl?: string;
16
+ capabilityUrl?: string;
16
17
  allowAbsoluteBackendUrls: boolean;
17
18
  }
18
19
  export declare const DEFAULT_DISCOVERY_URL = "https://kc.mcisaas.com/auth/realms/numa-realm/.well-known/openid-configuration";
package/dist/config.js CHANGED
@@ -107,6 +107,7 @@ export function loadConfig(serviceKey = "platform") {
107
107
  redirectPath: redirectPathFromEnv(),
108
108
  openBrowser: envBoolean("NUMA_AUTH_OPEN_BROWSER", true),
109
109
  backendBaseUrl: process.env.NUMA_BACKEND_BASE_URL || selected?.service.baseUrl || appConfig.apiBaseUrl || undefined,
110
+ capabilityUrl: selected?.service.capabilityUrl,
110
111
  allowAbsoluteBackendUrls: envBoolean("NUMA_BACKEND_ALLOW_ABSOLUTE_URLS", false)
111
112
  };
112
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,11 @@ export interface ListBuildOptions extends ListPipelineOptions {
15
15
  cursor?: string;
16
16
  limit?: number;
17
17
  }
18
- export interface TriggerBuildInput {
18
+ export interface ProductionApprovalInput {
19
+ approveId?: string;
20
+ productionReason?: string;
21
+ }
22
+ export interface TriggerBuildInput extends ProductionApprovalInput {
19
23
  applicationCode: string;
20
24
  tier: PipelineTier;
21
25
  branch?: string;
@@ -42,7 +46,7 @@ export declare class PipelineClient {
42
46
  nextCursor: string | null;
43
47
  stale: boolean;
44
48
  lastSuccessfulSyncAt: string | null;
45
- requestId?: string | undefined;
49
+ requestId?: string | null | undefined;
46
50
  }>;
47
51
  inspectPipeline(applicationCode: string): Promise<{
48
52
  [x: string]: unknown;
@@ -70,7 +74,7 @@ export declare class PipelineClient {
70
74
  nextCursor: string | null;
71
75
  stale: boolean;
72
76
  lastSuccessfulSyncAt: string | null;
73
- requestId?: string | undefined;
77
+ requestId?: string | null | undefined;
74
78
  }>;
75
79
  triggerBuild(input: TriggerBuildInput): Promise<{
76
80
  [x: string]: unknown;
@@ -94,7 +98,7 @@ export declare class PipelineClient {
94
98
  queueId?: number | null | undefined;
95
99
  pollUrl?: string | undefined;
96
100
  }>;
97
- stopBuild(identifier: string): Promise<{
101
+ stopBuild(identifier: string, approval?: ProductionApprovalInput): Promise<{
98
102
  [x: string]: unknown;
99
103
  requestId?: string | undefined;
100
104
  buildNumber?: number | null | undefined;
@@ -105,7 +109,7 @@ export declare class PipelineClient {
105
109
  queueId?: number | null | undefined;
106
110
  pollUrl?: string | undefined;
107
111
  }>;
108
- retryBuild(identifier: string, parameters: Record<string, string>): Promise<{
112
+ retryBuild(identifier: string, parameters: Record<string, string>, approval?: ProductionApprovalInput): Promise<{
109
113
  [x: string]: unknown;
110
114
  requestId?: string | undefined;
111
115
  buildNumber?: number | null | undefined;
@@ -121,6 +125,6 @@ export declare class PipelineClient {
121
125
  text: string;
122
126
  nextOffset: number;
123
127
  moreData: boolean;
124
- requestId?: string | undefined;
128
+ requestId?: string | null | undefined;
125
129
  }>;
126
130
  }
@@ -90,12 +90,15 @@ export class PipelineClient {
90
90
  getBuild(identifier) {
91
91
  return this.json(`/api/v1/jenkins/builds/${encodeURIComponent(identifier)}`, BuildSchema);
92
92
  }
93
- stopBuild(identifier) {
94
- return this.json(`/api/v1/jenkins/builds/${encodeURIComponent(identifier)}/stop`, BuildSchema, { method: "POST" }, [200, 202]);
93
+ stopBuild(identifier, approval = {}) {
94
+ const body = approval.approveId || approval.productionReason ? JSON.stringify(approval) : undefined;
95
+ return this.json(`/api/v1/jenkins/builds/${encodeURIComponent(identifier)}/stop`, BuildSchema, {
96
+ method: "POST", ...(body ? { body } : {})
97
+ }, [200, 202]);
95
98
  }
96
- retryBuild(identifier, parameters) {
99
+ retryBuild(identifier, parameters, approval = {}) {
97
100
  return this.json(`/api/v1/jenkins/builds/${encodeURIComponent(identifier)}/retry`, BuildSchema, {
98
- method: "POST", body: JSON.stringify({ parameters })
101
+ method: "POST", body: JSON.stringify({ parameters, ...approval })
99
102
  }, [200, 202]);
100
103
  }
101
104
  getLog(identifier, offset = 0, limit) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/pipeline/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/pipeline/client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Command } from "commander";
2
- import { PipelineClient } from "./client.js";
2
+ import { PipelineClient, type ProductionApprovalInput } from "./client.js";
3
3
  import { type PipelineBuild, type PipelineTier } from "./schemas.js";
4
4
  export interface PipelineCommandDependencies {
5
5
  clientFactory?: () => PipelineClient;
@@ -8,6 +8,10 @@ export interface PipelineCommandDependencies {
8
8
  }
9
9
  export declare function parsePipelineTier(value: string): PipelineTier;
10
10
  export declare function parseBuildParameters(expressions?: string[]): Record<string, string>;
11
+ export declare function parseProductionApproval(input: {
12
+ approveId?: string;
13
+ productionReason?: string;
14
+ }, required?: boolean): ProductionApprovalInput;
11
15
  export declare function waitForBuild(client: Pick<PipelineClient, "getBuild">, initial: PipelineBuild, options?: {
12
16
  sleep?: (milliseconds: number, signal?: AbortSignal) => Promise<void>;
13
17
  random?: () => number;
@@ -7,8 +7,12 @@ import { PipelineError, sanitizePipelineOutput } from "./errors.js";
7
7
  import { BuildStateSchema, PipelineTierSchema } from "./schemas.js";
8
8
  const TERMINAL_STATES = new Set(["SUCCESS", "FAILED", "ABORTED", "CANCELLED", "NOT_BUILT"]);
9
9
  const SUCCESS_STATE = "SUCCESS";
10
- function addExamples(command, examples) {
11
- return command.addHelpText("after", `\nExamples:\n${examples.map((item) => ` ${item}`).join("\n")}\n`);
10
+ const APPROVE_ID = /^[A-Za-z0-9][A-Za-z0-9._:/-]{0,159}$/u;
11
+ function addExamples(command, examples, notes = []) {
12
+ const noteSection = notes.length
13
+ ? `\n说明:\n${notes.map((item) => ` - ${item}`).join("\n")}\n`
14
+ : "";
15
+ return command.addHelpText("after", `${noteSection}\nExamples:\n${examples.map((item) => ` ${item}`).join("\n")}\n`);
12
16
  }
13
17
  function snakeCase(key) {
14
18
  return key.replace(/([a-z0-9])([A-Z])/gu, "$1_$2").toLowerCase();
@@ -76,6 +80,9 @@ export function parseBuildParameters(expressions = []) {
76
80
  if (!/^[A-Za-z_][A-Za-z0-9_.-]{0,127}$/u.test(key)) {
77
81
  throw new PipelineError(`Build parameter must use KEY=VALUE syntax with a valid key: ${expression}`, "JENKINS_PARAMETER_INVALID");
78
82
  }
83
+ if (key.toUpperCase() === "APPROVE_ID") {
84
+ throw new PipelineError("APPROVE_ID is reserved; use --approve-id so the platform can validate and audit it.", "JENKINS_PARAMETER_INVALID");
85
+ }
79
86
  if (Object.hasOwn(parameters, key)) {
80
87
  throw new PipelineError(`Duplicate build parameter: ${key}`, "JENKINS_PARAMETER_INVALID");
81
88
  }
@@ -83,6 +90,26 @@ export function parseBuildParameters(expressions = []) {
83
90
  }
84
91
  return parameters;
85
92
  }
93
+ export function parseProductionApproval(input, required = false) {
94
+ const approveId = input.approveId?.trim() || undefined;
95
+ const productionReason = input.productionReason?.trim() || undefined;
96
+ if (approveId && !APPROVE_ID.test(approveId)) {
97
+ throw new PipelineError("approve-id must start with a letter or number, use only letters, numbers, . _ : / -, and be at most 160 characters.", "JENKINS_PRODUCTION_APPROVAL_INVALID");
98
+ }
99
+ if (productionReason && productionReason.length > 800) {
100
+ throw new PipelineError("production-reason must not exceed 800 characters.", "JENKINS_PRODUCTION_APPROVAL_INVALID");
101
+ }
102
+ if (!approveId && productionReason && productionReason.length < 10) {
103
+ throw new PipelineError("production-reason must contain at least 10 characters when approve-id is absent.", "JENKINS_PRODUCTION_APPROVAL_INVALID");
104
+ }
105
+ if (required && !approveId && !productionReason) {
106
+ throw new PipelineError("Production operations require --approve-id or --production-reason.", "JENKINS_PRODUCTION_APPROVAL_REQUIRED");
107
+ }
108
+ return {
109
+ ...(approveId ? { approveId } : {}),
110
+ ...(productionReason ? { productionReason } : {})
111
+ };
112
+ }
86
113
  function defaultSleep(milliseconds, signal) {
87
114
  return new Promise((resolve, reject) => {
88
115
  if (signal?.aborted) {
@@ -135,7 +162,18 @@ export function registerPipelineCommands(program, dependencies = {}) {
135
162
  const client = () => dependencies.clientFactory?.() ?? new PipelineClient(loadConfig("pipeline"));
136
163
  const sleep = dependencies.sleep ?? defaultSleep;
137
164
  const random = dependencies.random ?? Math.random;
138
- const pipeline = program.command("pipeline").description("通过平台 Keycloak 权限查询和操作 Jenkins 流水线");
165
+ const pipeline = program.command("pipeline")
166
+ .description("通过平台 Keycloak 权限查询和操作 Jenkins 流水线")
167
+ .addHelpText("after", `
168
+ 核心概念:
169
+ requestId 平台生成的构建任务标识,用于 status、log、stop 和 retry。
170
+ idempotency-key 调用者定义的提交标识;同一次提交重试时复用,新部署使用新值。
171
+ approve-id 生产审批依据;不是任务标识,也不能通过 --param APPROVE_ID 绕过治理。
172
+
173
+ 恢复流程:
174
+ 已保存 requestId: numa pipeline status <requestId> --watch
175
+ 未保存 requestId: numa pipeline builds --app <application> --tier <tier> --json
176
+ `);
139
177
  addExamples(pipeline.command("list")
140
178
  .description("列出当前用户可见的应用流水线")
141
179
  .option("--app <code>", "按 Application code 过滤")
@@ -173,22 +211,29 @@ export function registerPipelineCommands(program, dependencies = {}) {
173
211
  limit: positiveInteger(options.limit, "limit", 20, 100)
174
212
  });
175
213
  await output(command, { ok: true, builds: result }, result.items.map(buildLine).join("\n") || "没有找到构建记录");
176
- }), ["numa pipeline builds --app mci-devops-platform --state running --json"]);
214
+ }), ["numa pipeline builds --app mci-devops-platform --state running --json"], [
215
+ "用于在未保存 requestId 时按应用、环境、分支或状态找回构建记录。",
216
+ "--cursor 使用上一页响应返回的游标;--limit 控制每页条数,不是页码。"
217
+ ]);
177
218
  addExamples(pipeline.command("build <application>")
178
- .description("触发非生产流水线构建")
219
+ .description("触发流水线构建;生产要求 ops-admin 及审批 ID 或具体说明")
179
220
  .requiredOption("--tier <tier>", "develop|staging|production")
180
221
  .option("--branch <name>", "分支名称")
181
222
  .option("-p, --param <KEY=VALUE>", "构建参数,可重复", collect, [])
182
- .option("--idempotency-key <key>", "重试同一请求时必须复用的幂等键")
183
- .option("--wait", "等待构建进入终态")
223
+ .option("--idempotency-key <key>", "可选;同一提交重试时复用,不传则自动生成并随成功结果返回")
224
+ .option("--approve-id <id>", "生产审批 ID;由平台审计并映射为 Jenkins APPROVE_ID")
225
+ .option("--production-reason <text>", "无审批 ID 时填写至少 10 个字符的生产操作说明")
226
+ .option("--wait", "约每 2 秒轮询至终态;无默认超时,Ctrl+C 只停止本地等待")
184
227
  .action(async (application, options, command) => {
185
228
  const idempotencyKey = options.idempotencyKey ? identifier(options.idempotencyKey, "idempotency-key") : randomUUID();
229
+ const tier = parsePipelineTier(options.tier);
186
230
  const request = {
187
231
  applicationCode: identifier(application, "application"),
188
- tier: parsePipelineTier(options.tier),
232
+ tier,
189
233
  branch: options.branch,
190
234
  parameters: parseBuildParameters(options.param),
191
- idempotencyKey
235
+ idempotencyKey,
236
+ ...parseProductionApproval(options, tier === "PRODUCTION")
192
237
  };
193
238
  const pipelineClient = client();
194
239
  let result = await pipelineClient.triggerBuild(request);
@@ -199,11 +244,18 @@ export function registerPipelineCommands(program, dependencies = {}) {
199
244
  process.exitCode = 1;
200
245
  }), [
201
246
  "numa pipeline build mci-devops-platform --tier develop --branch develop --param SONAR_SCAN=false --json",
247
+ "numa pipeline build mci-devops-platform --tier production --branch main --approve-id APPROVAL-2026-001 --wait --json",
202
248
  "numa pipeline build mci-devops-platform --tier develop --wait"
249
+ ], [
250
+ "requestId 由平台生成,用于后续查询和操作;idempotency-key 标识是否为同一次提交。",
251
+ "生产和自动化建议显式提供 idempotency-key;网络结果不明时复用原值重提,不要生成新值。",
252
+ "--wait 无默认超时。Ctrl+C 或网络中断只结束本地等待,不会停止 Jenkins 构建。",
253
+ "--wait 仅在 SUCCESS 时返回退出码 0,FAILED、ABORTED、CANCELLED、NOT_BUILT 返回非零。",
254
+ "approveId 由平台审计并在生产 trigger/retry 时映射为 Jenkins APPROVE_ID;productionReason 不转发。"
203
255
  ]);
204
256
  addExamples(pipeline.command("status <request-or-build-id>")
205
257
  .description("查询构建状态,可持续观察至终态")
206
- .option("--watch", "持续轮询至终态")
258
+ .option("--watch", "约每 2 秒轮询至终态;无默认超时,Ctrl+C 只停止观察")
207
259
  .action(async (value, options, command) => {
208
260
  const pipelineClient = client();
209
261
  const useJson = await jsonEnabled(command);
@@ -215,7 +267,10 @@ export function registerPipelineCommands(program, dependencies = {}) {
215
267
  process.stderr.write(`${sanitizePipelineOutput(buildLine(item))}\n`); }
216
268
  }));
217
269
  await output(command, { ok: true, build: result }, buildLine(result));
218
- }), ["numa pipeline status req_01ABC --watch --json"]);
270
+ }), ["numa pipeline status req_01ABC --watch --json"], [
271
+ "优先使用 build 返回的 requestId,也接受已经分配的 Jenkins build number。",
272
+ "不带 --watch 只查询一次;--watch 无默认超时。中断观察不会停止 Jenkins 构建。"
273
+ ]);
219
274
  addExamples(pipeline.command("log <request-or-build-id>")
220
275
  .description("读取构建日志,follow 模式持续读取 progressiveText 游标")
221
276
  .option("--follow", "持续读取直到构建终止且日志耗尽")
@@ -259,25 +314,41 @@ export function registerPipelineCommands(program, dependencies = {}) {
259
314
  await output(command, { ok: true, log: { ...latest, text: chunks.join("") } }, "");
260
315
  else if (!latest.text && chunks.length === 1)
261
316
  process.stdout.write("\n");
262
- }), ["numa pipeline log req_01ABC --follow", "numa pipeline log 1842 --offset 4096 --json"]);
317
+ }), ["numa pipeline log req_01ABC --follow", "numa pipeline log 1842 --offset 4096 --json"], [
318
+ "Ctrl+C 只停止本地日志跟随,不会停止 Jenkins 构建;真正停止任务请使用 pipeline stop。"
319
+ ]);
263
320
  addExamples(pipeline.command("stop <request-or-build-id>")
264
- .description("停止排队中或运行中的非生产构建")
321
+ .description("停止排队中或运行中的构建;生产要求审批依据")
265
322
  .option("--yes", "确认停止")
323
+ .option("--approve-id <id>", "生产审批 ID")
324
+ .option("--production-reason <text>", "无审批 ID 时填写至少 10 个字符的生产操作说明")
266
325
  .action(async (value, options, command) => {
267
326
  if (!options.yes)
268
327
  throw new PipelineError("Stopping a build requires --yes.", "JENKINS_CONFIRMATION_REQUIRED");
269
- const result = await client().stopBuild(identifier(value, "request-or-build-id"));
328
+ const result = await client().stopBuild(identifier(value, "request-or-build-id"), parseProductionApproval(options));
270
329
  await output(command, { ok: true, build: result }, buildLine(result));
271
- }), ["numa pipeline stop req_01ABC --yes --json"]);
330
+ }), [
331
+ "numa pipeline stop req_01ABC --yes --json",
332
+ "numa pipeline stop req_01ABC --yes --approve-id APPROVAL-STOP-001 --json"
333
+ ], [
334
+ "--yes 只确认本次停止操作;生产任务仍由服务端要求 ops-admin 及审批依据。"
335
+ ]);
272
336
  addExamples(pipeline.command("retry <request-or-build-id>")
273
- .description("重试非生产构建;敏感参数必须重新提供")
337
+ .description("重试构建;生产要求新的审批依据,敏感参数必须重新提供")
274
338
  .option("--yes", "确认重试")
275
339
  .option("-p, --param <KEY=VALUE>", "重新提供或覆盖构建参数,可重复", collect, [])
340
+ .option("--approve-id <id>", "生产审批 ID")
341
+ .option("--production-reason <text>", "无审批 ID 时填写至少 10 个字符的生产操作说明")
276
342
  .action(async (value, options, command) => {
277
343
  if (!options.yes)
278
344
  throw new PipelineError("Retrying a build requires --yes.", "JENKINS_CONFIRMATION_REQUIRED");
279
- const result = await client().retryBuild(identifier(value, "request-or-build-id"), parseBuildParameters(options.param));
345
+ const result = await client().retryBuild(identifier(value, "request-or-build-id"), parseBuildParameters(options.param), parseProductionApproval(options));
280
346
  await output(command, { ok: true, build: result }, buildLine(result));
281
- }), ["numa pipeline retry req_01ABC --yes --param DEPLOY_TOKEN=secret --json"]);
347
+ }), [
348
+ "numa pipeline retry req_01ABC --yes --param DEPLOY_TOKEN=secret --json",
349
+ "numa pipeline retry req_01ABC --yes --production-reason 'Retry after verified rollback' --json"
350
+ ], [
351
+ "retry 创建新的构建请求;生产任务必须提供新的有效审批依据,敏感参数必须重新提供。"
352
+ ]);
282
353
  }
283
354
  //# sourceMappingURL=commands.js.map