@numa-tech/numa 1.12.11 → 1.13.1

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 (59) hide show
  1. package/README.md +111 -4
  2. package/dist/application-onboarding/client.d.ts +83 -8
  3. package/dist/application-onboarding/client.js +23 -1
  4. package/dist/application-onboarding/client.js.map +1 -1
  5. package/dist/application-onboarding/commands.js +72 -6
  6. package/dist/application-onboarding/commands.js.map +1 -1
  7. package/dist/application-onboarding/schemas.d.ts +301 -58
  8. package/dist/application-onboarding/schemas.js +134 -8
  9. package/dist/application-onboarding/schemas.js.map +1 -1
  10. package/dist/application-onboarding/tui-model.d.ts +20 -0
  11. package/dist/application-onboarding/tui-model.js +362 -20
  12. package/dist/application-onboarding/tui-model.js.map +1 -1
  13. package/dist/application-onboarding/tui.d.ts +6 -1
  14. package/dist/application-onboarding/tui.js +104 -7
  15. package/dist/application-onboarding/tui.js.map +1 -1
  16. package/dist/cli.js +50 -8
  17. package/dist/cli.js.map +1 -1
  18. package/dist/clusters/client.d.ts +436 -0
  19. package/dist/clusters/client.js +207 -0
  20. package/dist/clusters/client.js.map +1 -0
  21. package/dist/clusters/commands.d.ts +11 -0
  22. package/dist/clusters/commands.js +373 -0
  23. package/dist/clusters/commands.js.map +1 -0
  24. package/dist/clusters/errors.d.ts +10 -0
  25. package/dist/clusters/errors.js +61 -0
  26. package/dist/clusters/errors.js.map +1 -0
  27. package/dist/clusters/kubeconfig-discovery.d.ts +48 -0
  28. package/dist/clusters/kubeconfig-discovery.js +280 -0
  29. package/dist/clusters/kubeconfig-discovery.js.map +1 -0
  30. package/dist/clusters/schemas.d.ts +510 -0
  31. package/dist/clusters/schemas.js +201 -0
  32. package/dist/clusters/schemas.js.map +1 -0
  33. package/dist/command-catalog.js +370 -1
  34. package/dist/command-catalog.js.map +1 -1
  35. package/dist/gitops/client.d.ts +499 -0
  36. package/dist/gitops/client.js +163 -0
  37. package/dist/gitops/client.js.map +1 -0
  38. package/dist/gitops/commands.d.ts +11 -0
  39. package/dist/gitops/commands.js +367 -0
  40. package/dist/gitops/commands.js.map +1 -0
  41. package/dist/gitops/errors.d.ts +10 -0
  42. package/dist/gitops/errors.js +59 -0
  43. package/dist/gitops/errors.js.map +1 -0
  44. package/dist/gitops/schemas.d.ts +1712 -0
  45. package/dist/gitops/schemas.js +360 -0
  46. package/dist/gitops/schemas.js.map +1 -0
  47. package/dist/repositories/client.d.ts +558 -0
  48. package/dist/repositories/client.js +215 -0
  49. package/dist/repositories/client.js.map +1 -0
  50. package/dist/repositories/commands.d.ts +13 -0
  51. package/dist/repositories/commands.js +368 -0
  52. package/dist/repositories/commands.js.map +1 -0
  53. package/dist/repositories/errors.d.ts +10 -0
  54. package/dist/repositories/errors.js +60 -0
  55. package/dist/repositories/errors.js.map +1 -0
  56. package/dist/repositories/schemas.d.ts +1724 -0
  57. package/dist/repositories/schemas.js +261 -0
  58. package/dist/repositories/schemas.js.map +1 -0
  59. package/package.json +4 -4
package/README.md CHANGED
@@ -466,11 +466,31 @@ Nacos token、绕过 403 或未经确认覆盖本地配置。对应场景评测
466
466
  `MODE → BASIC_INFORMATION → OWNERSHIP → SOURCE_CONTROL → TECHNOLOGY → STANDARDIZATION → DELIVERY → REVIEW → EXECUTION`
467
467
  九步。`[` / `]` 切换步骤(切换时保存 `revision` 与稳定 `currentStep`),方向键选择字段和目录项,
468
468
  `Enter` / `e` 编辑,`s` 保存;`REVIEW` 中先按 `p` 查看阻断、警告与 `planHash`,再按 `a`、`y`
469
- 二次确认执行。目录接口不可用时仍可手工输入实体 ID;仓库 Provider 返回 501 时会明确提示手工输入
470
- 稳定 `externalId` `expectedHead`,不会把 URL 或凭据写入草稿。
469
+ 二次确认执行。新 TUI 草稿固定为 `schemaVersion: 2`:`CREATE_NEW` 输入 Repository Control Plane
470
+ 返回的 `planNo/planHash`,`ATTACH_EXISTING` 可按 `f` 查询 ACTIVE 受管仓库并选择 `repositoryKey`,
471
+ 或手工输入 `repositoryKey/expectedHead`。TUI 不再把 provider `connectionCode/externalId/defaultBranch`
472
+ 注入 v2 草稿。已有 `schemaVersion: 1` 会话只用于恢复查看;TUI 会在 REVIEW、preflight 和 apply
473
+ 边界 fail-closed,并引导改用 v2 TUI/JSON,不会把 v1 会话伪装成新流程。
471
474
 
472
- 非交互、CI 和 AI 调用必须提供 `--spec`。spec 使用 `schemaVersion: 1`,不得包含 Token、密码、
473
- SCM credential secret ref:
475
+ 非交互、CI 和 AI 调用必须提供 `--spec`。新流程使用 `schemaVersion: 2`,只引用独立 Repository
476
+ Control Plane 返回的 `repositoryPlanRef` 或受管 `repositoryRef`;兼容会话仍可读取
477
+ `schemaVersion: 1`。两种版本都不得包含 Token、密码、SCM credential 或 secret ref:
478
+
479
+ ```json
480
+ {
481
+ "schemaVersion": 2,
482
+ "mode": "NEW",
483
+ "application": { "code": "order-api", "name": "Order API", "teamId": 12, "systemId": 7 },
484
+ "repositoryStrategy": "CREATE_NEW",
485
+ "projectStrategy": "BOOTSTRAP_TEMPLATE",
486
+ "repositoryPlanRef": { "planNo": "RP-1", "planHash": "<64-lowercase-hex>" },
487
+ "technology": { "stackCode": "java-mci", "templateCode": "java-cloud", "repoMode": "STANDALONE", "parameters": {} }
488
+ }
489
+ ```
490
+
491
+ v2 顶层字段使用严格白名单;旧 `repository`、provider 管理字段以及任意未知顶层字段都会在本地拒绝。
492
+ 录入已有应用时改用 `repositoryStrategy: "ATTACH_EXISTING"`、`projectStrategy: "ASSESS_ONLY"` 和
493
+ `repositoryRef: { "repositoryKey": "...", "expectedHead": "<40-64-hex>" }`。
474
494
 
475
495
  ```bash
476
496
  # 只保存草稿并预检,不产生仓库、分支或 Jenkins 等外部副作用
@@ -514,6 +534,93 @@ numa app scm inspect codeup-main --repositories --cursor '<next-cursor>' --limit
514
534
  numa app scm probe codeup-main --json
515
535
  ```
516
536
 
537
+ 仓库生命周期也可以脱离应用入驻流程单独使用。先查询 Provider 返回的稳定 namespace
538
+ `externalId`,再创建并审阅不可变 plan;apply 必须原样提交服务端 `planNo/planHash`,且
539
+ `client-request-id` 与 `idempotency-key` 必须一致。成功 run 会同时完成远端创建和平台 catalog
540
+ 登记,不会留下 remote-only 结果,也不会自动执行本地 Git push:
541
+
542
+ ```bash
543
+ numa repository namespace list --connection codeup-main --search 'numa/framework' --json
544
+ numa repository remote list --connection codeup-main --search code-index --json
545
+ numa repository plan create \
546
+ --connection codeup-main --namespace 99 --name code-index \
547
+ --visibility private --initialization empty --owner-team-id 12 --json
548
+
549
+ # 重新读取并审阅已经生成的不可变计划
550
+ numa repository plan get <plan-no> --json
551
+
552
+ # 审阅上一步返回的 plan 后再执行;以下值必须来自同一个服务端 plan
553
+ numa repository create \
554
+ --plan-no <plan-no> --plan-hash <64-hex> \
555
+ --client-request-id code-index-20260822 \
556
+ --idempotency-key code-index-20260822 --yes --json
557
+ ```
558
+
559
+ DevOps New 的 v2 spec 创建新仓库时,先以 `--consumer application-onboarding` 生成 CREATE plan,
560
+ 再把其 `planNo/planHash` 写入 `repositoryPlanRef`;录入已有应用时只写受管 catalog 的
561
+ `repositoryKey` 和固定 `expectedHead`。旧 `numa app scm repository create` 已 fail-closed,不再调用
562
+ Provider;只读 list/inspect 在兼容期保留。
563
+
564
+ 历史 catalog 记录可能没有 `connectionCode`、`externalId` 或 `fullName`。Numa 会保留真实 null,
565
+ 在 JSON 中输出 `migration_required/migration_issues`,文本列表显示 `MIGRATION_REQUIRED`,不会伪造
566
+ provider 身份;此类记录完成迁移前禁止执行 `repository reconcile --repository`。
567
+
568
+ ## GitOps 服务导入、结构计划与执行
569
+
570
+ GitOps 开放 `service import/plan/apply/status/events/evidence`,仍不开放内部 `observe` 写接口。导入从 target
571
+ 锁定的 SCM revision 读取现有 `MCI_FLUX_V1` 文件并登记 binding;计划通过服务端唯一的
572
+ `MCI_FLUX_V1` renderer 生成并持久化受管文件快照。导入和计划都不会写 SCM,只有显式确认的
573
+ `apply` 会执行服务端锁定的文件变更。
574
+
575
+ ```bash
576
+ # 导入可安全重试;结果不明时必须对同一应用复用原 Idempotency-Key
577
+ numa gitops service import \
578
+ --application code-index \
579
+ --target mci-dev-primary \
580
+ --idempotency-key code-index-dev-import-1 \
581
+ --json
582
+
583
+ # spec 只描述结构,服务端锁定 target/profile/base revision 和两个 hash
584
+ numa gitops service plan \
585
+ --application code-index \
586
+ --target mci-dev-primary \
587
+ --spec gitops-service.json \
588
+ --json
589
+
590
+ # 使用 plan 原样返回的 number/hash;结果不明时必须复用同一 Idempotency-Key
591
+ numa gitops service apply gplan_01 \
592
+ --plan-hash <64-hex> \
593
+ --idempotency-key code-index-dev-apply-1 \
594
+ --yes --json
595
+
596
+ # status/events 同时接受 stable runNo 和数字 ID
597
+ numa gitops service status gplan_01 --json
598
+ numa gitops service events gplan_01 --json
599
+
600
+ # 只读查看 Jenkins image writer 与独立 Flux observer 的运行证据
601
+ numa gitops service evidence 77 --json
602
+ ```
603
+
604
+ 最小结构 spec 示例:
605
+
606
+ ```json
607
+ {
608
+ "workloadKind": "NODE",
609
+ "workload": { "replicas": 1, "strategy": "Recreate" },
610
+ "service": { "type": "ClusterIP", "port": 8080, "containerPort": 8080 }
611
+ }
612
+ ```
613
+
614
+ spec 不得包含整个 `image`,也不得包含应用、环境、namespace、release、仓库、分支、路径等平台
615
+ 受管字段。`image.repository` 和 `image.tag` 从锁定 overlay 派生;若 repository 无法解析,服务端以
616
+ `GITOPS_IMAGE_REPOSITORY_UNRESOLVED` 阻断,不会猜测镜像地址。返回的 `canonicalSpecHash`、
617
+ `planHash`、`baseRevision` 和 `sideEffects` 是后续审阅的锁定证据。
618
+
619
+ 生产 target 的 apply 由服务端强制要求 `mci-devops-platform-ops-admin`;非生产要求
620
+ `mci-devops-platform-gitops-operator` 和应用团队 `MAINTAINER`。`DIRECT_BRANCH` 可直接完成,
621
+ `REVIEWED_CHANGE` 会进入 `WAITING_REVIEW` 并返回审查地址。apply 请求只包含 `planNumber`、
622
+ `planHash` 和 `Idempotency-Key`,不接受任意 repository/path/image 输入。
623
+
517
624
  SCM 管理接口位于 `/api/v1/admin/scm-connections`,最终权限始终由网关和后端按 canonical
518
625
  Client Role 校验。metadata JSON 只允许 provider、URL、组织、auth type 以及服务端托管的
519
626
  `aliyunAccountId`/`aliyunAssumeRoleId` 引用;Numa 不接收云 AK。CODEUP 必须引用
@@ -1,6 +1,6 @@
1
1
  import type { AuthConfig } from "../config.js";
2
2
  import { type KeycloakTokenProvider } from "../oauth.js";
3
- import { OnboardingSessionSchema, type JsonValue, type OnboardingCapabilities, type OnboardingEvent, type OnboardingMode, type OnboardingPreflight, type OnboardingSession, type OnboardingSessionState, type OnboardingTask, type ScmAdminConnection, type ScmAdminConnectionInput, type ScmConnection, type ScmCredentialUpdate, type ScmProvider, type ScmRepository } from "./schemas.js";
3
+ import { OnboardingSessionSchema, type JsonValue, type OnboardingCapabilities, type OnboardingEvent, type OnboardingMode, type OnboardingPreflight, type OnboardingSession, type OnboardingSessionState, type OnboardingTask, type ScmAdminConnection, type ScmAdminConnectionInput, type ScmConnection, type ScmNamespace, type ScmRepositoryCreateInput, type ScmCredentialUpdate, type ScmProvider, type ScmRepository } from "./schemas.js";
4
4
  export interface OnboardingClientDependencies {
5
5
  fetch?: typeof fetch;
6
6
  tokenProvider?: KeycloakTokenProvider;
@@ -43,6 +43,26 @@ export interface OnboardingApi {
43
43
  nextCursor: string | null;
44
44
  hasMore: boolean;
45
45
  }>;
46
+ listScmNamespaces(connectionCode: string, options?: {
47
+ search?: string;
48
+ cursor?: string;
49
+ limit?: number;
50
+ }): Promise<{
51
+ items: ScmNamespace[];
52
+ nextCursor: string | null;
53
+ hasMore: boolean;
54
+ }>;
55
+ listManagedRepositories(connectionCode: string, options?: {
56
+ search?: string;
57
+ cursor?: string;
58
+ limit?: number;
59
+ }): Promise<{
60
+ items: ScmRepository[];
61
+ nextCursor: string | null;
62
+ hasMore: boolean;
63
+ }>;
64
+ getManagedRepository(connectionCode: string, externalId: string): Promise<ScmRepository>;
65
+ createManagedRepository(connectionCode: string, input: ScmRepositoryCreateInput, idempotencyKey: string): Promise<ScmRepository>;
46
66
  listAdminScmConnections(): Promise<{
47
67
  items: ScmAdminConnection[];
48
68
  nextCursor: string | null;
@@ -140,19 +160,61 @@ export declare class OnboardingClient implements OnboardingApi {
140
160
  }): Promise<{
141
161
  items: {
142
162
  externalId: string;
143
- namespace?: string | undefined;
163
+ namespace?: string | null | undefined;
164
+ name: string;
165
+ fullName?: string | null | undefined;
166
+ namespacePath?: string | null | undefined;
167
+ defaultBranch?: string | null | undefined;
168
+ headRevision?: string | null | undefined;
169
+ visibility?: string | null | undefined;
170
+ archived: boolean;
171
+ webUrl?: string | null | undefined;
172
+ httpCloneUrl?: string | null | undefined;
173
+ sshCloneUrl?: string | null | undefined;
174
+ }[];
175
+ nextCursor: string | null;
176
+ hasMore: boolean;
177
+ }>;
178
+ listScmNamespaces(connectionCode: string, options?: {
179
+ search?: string;
180
+ cursor?: string;
181
+ limit?: number;
182
+ }): Promise<{
183
+ items: {
184
+ externalId: string;
185
+ name: string;
186
+ fullPath: string;
187
+ parentExternalId?: string | null | undefined;
188
+ webUrl?: string | null | undefined;
189
+ visibility?: string | null | undefined;
190
+ }[];
191
+ nextCursor: string | null;
192
+ hasMore: boolean;
193
+ }>;
194
+ listManagedRepositories(connectionCode: string, options?: {
195
+ search?: string;
196
+ cursor?: string;
197
+ limit?: number;
198
+ }): Promise<{
199
+ items: {
200
+ externalId: string;
201
+ namespace?: string | null | undefined;
144
202
  name: string;
145
- fullName?: string | undefined;
146
- namespacePath?: string | undefined;
147
- defaultBranch: string;
148
- headRevision: string;
149
- visibility?: string | undefined;
203
+ fullName?: string | null | undefined;
204
+ namespacePath?: string | null | undefined;
205
+ defaultBranch?: string | null | undefined;
206
+ headRevision?: string | null | undefined;
207
+ visibility?: string | null | undefined;
150
208
  archived: boolean;
151
- webUrl?: string | undefined;
209
+ webUrl?: string | null | undefined;
210
+ httpCloneUrl?: string | null | undefined;
211
+ sshCloneUrl?: string | null | undefined;
152
212
  }[];
153
213
  nextCursor: string | null;
154
214
  hasMore: boolean;
155
215
  }>;
216
+ getManagedRepository(connectionCode: string, externalId: string): Promise<ScmRepository>;
217
+ createManagedRepository(connectionCode: string, input: ScmRepositoryCreateInput, idempotencyKey: string): Promise<ScmRepository>;
156
218
  listAdminScmConnections(): Promise<{
157
219
  items: {
158
220
  id?: number | undefined;
@@ -234,6 +296,19 @@ export declare class OnboardingClient implements OnboardingApi {
234
296
  warnCount?: number | undefined;
235
297
  jenkinsCandidateBindingIds?: (string | number)[] | undefined;
236
298
  jenkinsPendingTiers?: string[] | undefined;
299
+ gitopsPlanNumber?: string | undefined;
300
+ gitopsPlanHash?: string | undefined;
301
+ gitopsPlanFiles?: string[] | undefined;
302
+ gitopsWarnings?: string[] | undefined;
303
+ gitopsSideEffects?: string[] | undefined;
304
+ gitopsRunNo?: string | undefined;
305
+ gitopsLastEventSequence?: number | undefined;
306
+ gitopsState?: string | undefined;
307
+ gitopsBindingId?: string | number | undefined;
308
+ gitopsTargetKey?: string | undefined;
309
+ gitopsBaseRevision?: string | undefined;
310
+ gitopsResultRevision?: string | undefined;
311
+ gitopsReviewUrl?: string | undefined;
237
312
  retryAfterSeconds?: number | undefined;
238
313
  recoveryAction?: string | undefined;
239
314
  bundleDigest?: string | undefined;
@@ -1,9 +1,10 @@
1
1
  import { resolveBackendUrl } from "../backend.js";
2
2
  import { ensureAccessToken, fetchWithKeycloakIdentity } from "../oauth.js";
3
3
  import { OnboardingError, redactOnboardingText } from "./errors.js";
4
- import { OnboardingApiErrorSchema, OnboardingAssessmentSchema, OnboardingCapabilitiesSchema, OnboardingEventListSchema, OnboardingObjectListSchema, OnboardingPreflightSchema, OnboardingSessionListSchema, OnboardingSessionSchema, OnboardingTaskSchema, ScmAdminConnectionListSchema, ScmAdminConnectionSchema, ScmConnectionListSchema, ScmRepositoryPageSchema } from "./schemas.js";
4
+ import { OnboardingApiErrorSchema, OnboardingAssessmentSchema, OnboardingCapabilitiesSchema, OnboardingEventListSchema, OnboardingObjectListSchema, OnboardingPreflightSchema, OnboardingSessionListSchema, OnboardingSessionSchema, OnboardingTaskSchema, ScmAdminConnectionListSchema, ScmAdminConnectionSchema, ScmConnectionListSchema, ScmNamespacePageSchema, ScmRepositoryPageSchema, ScmRepositorySchema } from "./schemas.js";
5
5
  const API_ROOT = "/api/v1/application-onboarding";
6
6
  const ADMIN_SCM_ROOT = "/api/v1/admin/scm-connections";
7
+ const SCM_ROOT = "/api/v1/scm/connections";
7
8
  async function responseBody(response) {
8
9
  const text = await response.text();
9
10
  if (!text)
@@ -113,6 +114,27 @@ export class OnboardingClient {
113
114
  const connection = encodeURIComponent(safeSessionNo(connectionCode));
114
115
  return this.json(queryPath(`${API_ROOT}/scm-connections/${connection}/repositories`, options), ScmRepositoryPageSchema);
115
116
  }
117
+ listScmNamespaces(connectionCode, options = {}) {
118
+ const connection = encodeURIComponent(safeSessionNo(connectionCode));
119
+ return this.json(queryPath(`${SCM_ROOT}/${connection}/namespaces`, options), ScmNamespacePageSchema);
120
+ }
121
+ listManagedRepositories(connectionCode, options = {}) {
122
+ const connection = encodeURIComponent(safeSessionNo(connectionCode));
123
+ return this.json(queryPath(`${SCM_ROOT}/${connection}/repositories`, options), ScmRepositoryPageSchema);
124
+ }
125
+ getManagedRepository(connectionCode, externalId) {
126
+ const connection = encodeURIComponent(safeSessionNo(connectionCode));
127
+ const repository = encodeURIComponent(safeSessionNo(externalId));
128
+ return this.json(`${SCM_ROOT}/${connection}/repositories/${repository}`, ScmRepositorySchema);
129
+ }
130
+ createManagedRepository(connectionCode, input, idempotencyKey) {
131
+ const connection = encodeURIComponent(safeSessionNo(connectionCode));
132
+ return this.json(`${SCM_ROOT}/${connection}/repositories`, ScmRepositorySchema, {
133
+ method: "POST",
134
+ headers: { "Idempotency-Key": idempotencyKey },
135
+ body: JSON.stringify(input)
136
+ }, [200, 201]);
137
+ }
116
138
  listAdminScmConnections() {
117
139
  return this.json(ADMIN_SCM_ROOT, ScmAdminConnectionListSchema);
118
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/application-onboarding/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/application-onboarding/client.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import process from "node:process";
3
3
  import { loadAppConfig } from "../app-config.js";
4
4
  import { loadConfig } from "../config.js";
5
5
  import { registerApplicationCandidateCommands } from "../application-candidates/commands.js";
6
+ import { SourceRepositoryClient } from "../repositories/client.js";
6
7
  import { OnboardingClient } from "./client.js";
7
8
  import { OnboardingError, sanitizeOnboardingOutput } from "./errors.js";
8
9
  import { OnboardingModeSchema, OnboardingEventOutputSchema, OnboardingSessionStateSchema, OnboardingSpecSchema, ScmProviderSchema } from "./schemas.js";
@@ -190,17 +191,20 @@ function scmConnectionLine(connection) {
190
191
  return `${connection.code}\t${connection.provider}\t${connection.health}\t${connection.organizationKey}\t${enabled.join(",") || "no-capabilities"}`;
191
192
  }
192
193
  function repositoryLine(repository) {
193
- return `${repository.externalId}\t${repository.fullName ?? repository.name}\t${repository.defaultBranch}\t${repository.headRevision}${repository.archived ? "\tARCHIVED" : ""}`;
194
+ return `${repository.externalId}\t${repository.fullName ?? repository.name}\t${repository.defaultBranch ?? "-"}\t${repository.headRevision ?? "-"}${repository.archived ? "\tARCHIVED" : ""}`;
195
+ }
196
+ function namespaceLine(namespace) {
197
+ return `${namespace.externalId}\t${namespace.fullPath}\t${namespace.visibility ?? "-"}`;
194
198
  }
195
199
  function requireConfirmation(value, operation) {
196
200
  if (!value) {
197
201
  throw new OnboardingError(`${operation} requires --yes.`, "onboarding_confirmation_required");
198
202
  }
199
203
  }
200
- function idempotencyKey(value) {
204
+ function idempotencyKey(value, operation = "--apply") {
201
205
  const candidate = value?.trim();
202
206
  if (!candidate) {
203
- throw new OnboardingError("--apply requires --idempotency-key so retries can reuse the same submission identity.", "onboarding_idempotency_key_required");
207
+ throw new OnboardingError(`${operation} requires --idempotency-key so retries can reuse the same submission identity.`, "onboarding_idempotency_key_required");
204
208
  }
205
209
  if (candidate.length > 160 || /[\u0000-\u001f\u007f]/u.test(candidate)) {
206
210
  throw new OnboardingError("idempotency-key must be at most 160 printable characters.", "onboarding_input_invalid");
@@ -427,6 +431,65 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
427
431
  "仓库选择必须保存 externalId、defaultBranch 和 headRevision;向导会把 headRevision 写入 expectedHead。",
428
432
  "HTTP 429 会保留 Retry-After 诊断,不会由客户端无限重试。"
429
433
  ]);
434
+ const scmNamespace = scm.command("namespace")
435
+ .description("查询 SCM provider 可用于创建仓库的 namespace");
436
+ addExamples(scmNamespace.command("list <code>")
437
+ .description("分页查询真实 namespace;Codeup externalId 可直接用于仓库创建")
438
+ .option("--search <text>", "按 namespace 名称或路径搜索")
439
+ .option("--cursor <cursor>", "分页游标")
440
+ .option("--limit <number>", "每页数量 1-100", "50")
441
+ .action(async (code, options, command) => {
442
+ const namespaces = await client().listScmNamespaces(code, {
443
+ search: options.search?.trim() || undefined,
444
+ cursor: safeCursor(options.cursor),
445
+ limit: positiveInteger(options.limit, "limit", 50, 100)
446
+ });
447
+ const text = `${namespaces.items.map(namespaceLine).join("\n") || "没有匹配 namespace"}${namespaces.hasMore ? `\nnext-cursor: ${namespaces.nextCursor}` : ""}`;
448
+ await output(command, { ok: true, connectionCode: code, namespaces }, text);
449
+ }), [
450
+ "numa app scm namespace list codeup-main --search platform --json"
451
+ ], [
452
+ "Codeup 创建仓库需要 namespace externalId(数字 ID),不是显示路径。"
453
+ ]);
454
+ const scmRepository = scm.command("repository")
455
+ .description("独立查询和创建仓库;Application Onboarding New 流程复用同一服务端生命周期模块");
456
+ addExamples(scmRepository.command("list <code>")
457
+ .description("分页查询连接中的真实仓库")
458
+ .option("--search <text>", "仓库搜索词")
459
+ .option("--cursor <cursor>", "分页游标")
460
+ .option("--limit <number>", "每页数量 1-100", "50")
461
+ .action(async (code, options, command) => {
462
+ const repositories = await client().listManagedRepositories(code, {
463
+ search: options.search?.trim() || undefined,
464
+ cursor: safeCursor(options.cursor),
465
+ limit: positiveInteger(options.limit, "limit", 50, 100)
466
+ });
467
+ const text = `${repositories.items.map(repositoryLine).join("\n") || "没有匹配仓库"}${repositories.hasMore ? `\nnext-cursor: ${repositories.nextCursor}` : ""}`;
468
+ await output(command, { ok: true, connectionCode: code, repositories }, text);
469
+ }), ["numa app scm repository list codeup-main --search code-index --json"]);
470
+ addExamples(scmRepository.command("inspect <code> <external-id>")
471
+ .description("按 provider externalId 读取一个真实仓库")
472
+ .action(async (code, externalId, _options, command) => {
473
+ const repository = await client().getManagedRepository(code, externalId);
474
+ await output(command, { ok: true, connectionCode: code, repository }, repositoryLine(repository));
475
+ }), ["numa app scm repository inspect codeup-main 123456 --json"]);
476
+ addExamples(scmRepository.command("create <code>")
477
+ .description("已迁移:请使用顶层 repository plan create + repository create")
478
+ .requiredOption("--namespace <external-id>", "namespace externalId;Codeup 使用数字 ID")
479
+ .requiredOption("--name <name>", "仓库名称")
480
+ .option("--description <text>", "仓库描述")
481
+ .option("--visibility <visibility>", "private|internal|public", "private")
482
+ .option("--initialization <mode>", "empty|readme;现有本地代码仓库应使用 empty", "empty")
483
+ .requiredOption("--idempotency-key <key>", "结果不明时必须复用同一个幂等键")
484
+ .option("--yes", "确认创建外部仓库")
485
+ .action(async (_code, _options, _command) => {
486
+ throw new OnboardingError("Legacy app scm repository create is disabled because it cannot atomically register the platform catalog. Use `numa repository plan create`, review the server planHash, then run `numa repository create`.", "onboarding_scm_control_plane_required");
487
+ }), [
488
+ "numa repository plan create --connection codeup-main --namespace 123456 --name code-index --initialization empty --json"
489
+ ], [
490
+ "该兼容命令不会再触发任何 Provider 写操作。",
491
+ "使用顶层 Repository Control Plane,确保远端创建、平台登记与恢复状态一致。"
492
+ ]);
430
493
  addExamples(scm.command("probe <code>")
431
494
  .description("显示缓存健康诊断;管理员可用 --live 发起真实 provider probe")
432
495
  .option("--live", "调用管理员 live probe;服务端会重新探测 capability/health")
@@ -544,7 +607,7 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
544
607
  .description("启动入驻向导,或按 JSON spec 创建、预检和执行")
545
608
  .option("--mode <mode>", "new|existing;如有 --spec 必须与文件一致")
546
609
  .option("--session <session-no>", "更新已有草稿并跨 Web/CLI 恢复;不创建新会话")
547
- .option("--spec <file>", "schemaVersion=1 onboarding JSON 文件")
610
+ .option("--spec <file>", "schemaVersion=1(兼容)或 2(Repository Control Plane)的 onboarding JSON 文件")
548
611
  .option("--plan", "保存草稿并执行服务端预检,不产生外部副作用")
549
612
  .option("--apply", "保存草稿、预检并提交服务端异步执行")
550
613
  .option("--idempotency-key <key>", "apply 幂等键;结果不明时必须复用")
@@ -557,7 +620,7 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
557
620
  if (options.plan || options.apply || options.idempotencyKey) {
558
621
  throw new OnboardingError("--plan, --apply, and --idempotency-key require --spec.", "onboarding_input_invalid");
559
622
  }
560
- await tui(client(), { mode, sessionNo: options.session });
623
+ await tui(client(), { mode, sessionNo: options.session, repositoryClient: new SourceRepositoryClient(loadConfig()) });
561
624
  return;
562
625
  }
563
626
  const onboarding = client();
@@ -665,7 +728,10 @@ export function registerApplicationOnboardingCommands(program, dependencies = {}
665
728
  addExamples(app.command("tui")
666
729
  .description("打开可恢复的 Application Onboarding TUI")
667
730
  .option("--session <session-no>", "打开已有服务端会话")
668
- .action(async (options) => tui(client(), { sessionNo: options.session })), [
731
+ .action(async (options) => tui(client(), {
732
+ sessionNo: options.session,
733
+ repositoryClient: new SourceRepositoryClient(loadConfig())
734
+ })), [
669
735
  "numa app tui",
670
736
  "numa app tui --session 8d15ee89-43f0-4378-a7aa-51f09c5b42fc"
671
737
  ]);