@numa-tech/numa 1.12.10 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +96 -14
  2. package/dist/ai-registry/commands.js +33 -33
  3. package/dist/ai-registry/commands.js.map +1 -1
  4. package/dist/app-config.d.ts +0 -1
  5. package/dist/app-config.js +4 -2
  6. package/dist/app-config.js.map +1 -1
  7. package/dist/application-onboarding/client.d.ts +83 -8
  8. package/dist/application-onboarding/client.js +23 -1
  9. package/dist/application-onboarding/client.js.map +1 -1
  10. package/dist/application-onboarding/commands.js +66 -4
  11. package/dist/application-onboarding/commands.js.map +1 -1
  12. package/dist/application-onboarding/schemas.d.ts +301 -58
  13. package/dist/application-onboarding/schemas.js +134 -8
  14. package/dist/application-onboarding/schemas.js.map +1 -1
  15. package/dist/application-onboarding/tui-model.d.ts +18 -0
  16. package/dist/application-onboarding/tui-model.js +215 -3
  17. package/dist/application-onboarding/tui-model.js.map +1 -1
  18. package/dist/application-onboarding/tui.d.ts +1 -1
  19. package/dist/application-onboarding/tui.js +20 -6
  20. package/dist/application-onboarding/tui.js.map +1 -1
  21. package/dist/authorization/access-request-client.d.ts +45 -0
  22. package/dist/authorization/access-request-client.js +93 -0
  23. package/dist/authorization/access-request-client.js.map +1 -0
  24. package/dist/authorization/access-request-commands.d.ts +25 -0
  25. package/dist/authorization/access-request-commands.js +196 -0
  26. package/dist/authorization/access-request-commands.js.map +1 -0
  27. package/dist/authorization/access-request-schemas.d.ts +123 -0
  28. package/dist/authorization/access-request-schemas.js +67 -0
  29. package/dist/authorization/access-request-schemas.js.map +1 -0
  30. package/dist/authorization/client.d.ts +50 -0
  31. package/dist/authorization/client.js +113 -0
  32. package/dist/authorization/client.js.map +1 -0
  33. package/dist/authorization/commands.d.ts +40 -0
  34. package/dist/authorization/commands.js +296 -0
  35. package/dist/authorization/commands.js.map +1 -0
  36. package/dist/authorization/errors.d.ts +13 -0
  37. package/dist/authorization/errors.js +70 -0
  38. package/dist/authorization/errors.js.map +1 -0
  39. package/dist/authorization/schemas.d.ts +187 -0
  40. package/dist/authorization/schemas.js +101 -0
  41. package/dist/authorization/schemas.js.map +1 -0
  42. package/dist/cli.js +73 -9
  43. package/dist/cli.js.map +1 -1
  44. package/dist/clusters/client.d.ts +436 -0
  45. package/dist/clusters/client.js +207 -0
  46. package/dist/clusters/client.js.map +1 -0
  47. package/dist/clusters/commands.d.ts +11 -0
  48. package/dist/clusters/commands.js +373 -0
  49. package/dist/clusters/commands.js.map +1 -0
  50. package/dist/clusters/errors.d.ts +10 -0
  51. package/dist/clusters/errors.js +61 -0
  52. package/dist/clusters/errors.js.map +1 -0
  53. package/dist/clusters/kubeconfig-discovery.d.ts +48 -0
  54. package/dist/clusters/kubeconfig-discovery.js +280 -0
  55. package/dist/clusters/kubeconfig-discovery.js.map +1 -0
  56. package/dist/clusters/schemas.d.ts +510 -0
  57. package/dist/clusters/schemas.js +201 -0
  58. package/dist/clusters/schemas.js.map +1 -0
  59. package/dist/command-catalog.js +490 -26
  60. package/dist/command-catalog.js.map +1 -1
  61. package/dist/gitops/client.d.ts +499 -0
  62. package/dist/gitops/client.js +163 -0
  63. package/dist/gitops/client.js.map +1 -0
  64. package/dist/gitops/commands.d.ts +11 -0
  65. package/dist/gitops/commands.js +367 -0
  66. package/dist/gitops/commands.js.map +1 -0
  67. package/dist/gitops/errors.d.ts +10 -0
  68. package/dist/gitops/errors.js +59 -0
  69. package/dist/gitops/errors.js.map +1 -0
  70. package/dist/gitops/schemas.d.ts +1712 -0
  71. package/dist/gitops/schemas.js +360 -0
  72. package/dist/gitops/schemas.js.map +1 -0
  73. package/dist/repositories/client.d.ts +540 -0
  74. package/dist/repositories/client.js +215 -0
  75. package/dist/repositories/client.js.map +1 -0
  76. package/dist/repositories/commands.d.ts +10 -0
  77. package/dist/repositories/commands.js +347 -0
  78. package/dist/repositories/commands.js.map +1 -0
  79. package/dist/repositories/errors.d.ts +10 -0
  80. package/dist/repositories/errors.js +60 -0
  81. package/dist/repositories/errors.js.map +1 -0
  82. package/dist/repositories/schemas.d.ts +1692 -0
  83. package/dist/repositories/schemas.js +255 -0
  84. package/dist/repositories/schemas.js.map +1 -0
  85. package/dist/web-console-page.d.ts +1 -1
  86. package/dist/web-console-page.js +1 -1
  87. package/dist/web-console.js +2 -2
  88. package/dist/web-console.js.map +1 -1
  89. package/examples/ai-registry/README.md +18 -0
  90. package/examples/ai-registry/nacos-instance.username-password.example.json +25 -0
  91. package/package.json +4 -4
  92. package/skills/numa-ai-registry/SKILL.md +5 -5
  93. package/skills/numa-ai-registry/evals/evals.json +1 -1
  94. package/skills/numa-ai-registry/references/command-contract.md +22 -22
@@ -0,0 +1,201 @@
1
+ import { z } from "zod";
2
+ const NonEmptyString = z.string().trim().min(1);
3
+ const OptionalString = NonEmptyString.nullable().optional();
4
+ const PositiveId = z.union([
5
+ z.string().trim().regex(/^[1-9]\d*$/u),
6
+ z.number().int().positive()
7
+ ]).transform(String);
8
+ const Sha256 = z.string().regex(/^[0-9a-f]{64}$/u);
9
+ export const ClusterSourceTypeSchema = z.enum(["KUBECONFIG_CLI", "ALIYUN_ACK_ASSUME_ROLE"]);
10
+ export const ClusterSourceStatusSchema = z.enum(["ACTIVE", "DISABLED", "ERROR"]);
11
+ export const ClusterCandidateStatusSchema = z.enum(["PENDING", "MATCHED", "AMBIGUOUS", "ADOPTED", "LINKED", "IGNORED"]);
12
+ export const ClusterGovernanceActionSchema = z.enum(["ADOPT", "LINK", "IGNORE"]);
13
+ export const ClusterSummarySchema = z.object({
14
+ id: PositiveId.optional(),
15
+ clusterKey: NonEmptyString,
16
+ code: NonEmptyString,
17
+ name: NonEmptyString,
18
+ provider: NonEmptyString,
19
+ providerClusterId: OptionalString,
20
+ region: OptionalString,
21
+ status: NonEmptyString,
22
+ identityStatus: NonEmptyString,
23
+ endpointFingerprintPrefix: OptionalString,
24
+ lastObservedAt: OptionalString,
25
+ version: z.number().int().nonnegative()
26
+ });
27
+ export const ClusterDetailSchema = z.object({
28
+ cluster: ClusterSummarySchema,
29
+ description: OptionalString,
30
+ fingerprintKinds: z.array(NonEmptyString).default([]),
31
+ linkedCandidateKeys: z.array(NonEmptyString).default([])
32
+ });
33
+ export const ClusterSourceViewSchema = z.object({
34
+ id: PositiveId.optional(),
35
+ sourceKey: NonEmptyString,
36
+ sourceType: ClusterSourceTypeSchema,
37
+ displayName: NonEmptyString,
38
+ aliyunAccountId: PositiveId.nullable().optional(),
39
+ aliyunAssumeRoleId: PositiveId.nullable().optional(),
40
+ regions: z.array(NonEmptyString).default([]),
41
+ enabled: z.boolean(),
42
+ status: ClusterSourceStatusSchema,
43
+ lastObservedAt: OptionalString,
44
+ observationCount: z.number().int().nonnegative(),
45
+ lastErrorCode: OptionalString,
46
+ lastErrorMessage: OptionalString,
47
+ version: z.number().int().nonnegative()
48
+ });
49
+ export const FingerprintEvidenceSchema = z.object({
50
+ kind: NonEmptyString,
51
+ fingerprintPrefix: NonEmptyString,
52
+ strength: NonEmptyString,
53
+ matched: z.boolean()
54
+ });
55
+ export const ClusterObservationViewSchema = z.object({
56
+ observationKey: NonEmptyString,
57
+ sourceKey: NonEmptyString,
58
+ candidateKey: NonEmptyString,
59
+ observedName: OptionalString,
60
+ provider: NonEmptyString,
61
+ providerClusterId: OptionalString,
62
+ region: OptionalString,
63
+ kubernetesVersion: OptionalString,
64
+ evidence: z.array(FingerprintEvidenceSchema).default([]),
65
+ evidenceSource: z.enum(["KUBECONFIG_CLI", "ACK_API"]),
66
+ observedAt: OptionalString,
67
+ receivedAt: OptionalString,
68
+ disposition: OptionalString
69
+ });
70
+ export const ClusterCandidateViewSchema = z.object({
71
+ candidateKey: NonEmptyString,
72
+ sourceKey: NonEmptyString,
73
+ status: ClusterCandidateStatusSchema,
74
+ matchKind: NonEmptyString,
75
+ matchedClusterKey: OptionalString,
76
+ observedName: OptionalString,
77
+ provider: NonEmptyString,
78
+ providerClusterId: OptionalString,
79
+ region: OptionalString,
80
+ kubernetesVersion: OptionalString,
81
+ evidence: z.array(FingerprintEvidenceSchema).default([]),
82
+ firstObservedAt: OptionalString,
83
+ lastObservedAt: OptionalString,
84
+ observationCount: z.number().int().nonnegative(),
85
+ resolutionReason: OptionalString,
86
+ reviewedBy: OptionalString,
87
+ reviewedAt: OptionalString,
88
+ version: z.number().int().nonnegative()
89
+ });
90
+ export const ClusterSourceCreateSchema = z.object({
91
+ sourceKey: z.string().trim().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,119}$/u),
92
+ sourceType: ClusterSourceTypeSchema,
93
+ displayName: z.string().trim().min(1).max(200),
94
+ aliyunAccountId: PositiveId.nullable().optional(),
95
+ aliyunAssumeRoleId: PositiveId.nullable().optional(),
96
+ regions: z.array(z.string().regex(/^[a-z0-9-]{1,80}$/u)).max(100),
97
+ enabled: z.boolean().optional()
98
+ }).strict().superRefine((value, context) => {
99
+ if (value.sourceType === "KUBECONFIG_CLI") {
100
+ if (value.aliyunAccountId != null || value.aliyunAssumeRoleId != null || value.regions.length) {
101
+ context.addIssue({ code: "custom", message: "KUBECONFIG_CLI cannot reference Alibaba Cloud identity or regions" });
102
+ }
103
+ }
104
+ else if (value.aliyunAccountId == null || value.aliyunAssumeRoleId == null || !value.regions.length) {
105
+ context.addIssue({ code: "custom", message: "ALIYUN_ACK_ASSUME_ROLE requires accountId, assumeRoleId, and at least one region" });
106
+ }
107
+ });
108
+ export const ClusterSourceUpdateSchema = z.object({
109
+ displayName: z.string().trim().min(1).max(200),
110
+ aliyunAccountId: PositiveId.nullable(),
111
+ aliyunAssumeRoleId: PositiveId.nullable(),
112
+ regions: z.array(z.string().regex(/^[a-z0-9-]{1,80}$/u)).max(100),
113
+ enabled: z.boolean(),
114
+ expectedVersion: z.number().int().nonnegative()
115
+ }).strict();
116
+ export const ClusterObservationInputSchema = z.object({
117
+ observationKey: z.string().regex(/^obs_[0-9a-f]{64}$/u),
118
+ observedAt: z.string().datetime({ offset: true }).optional(),
119
+ observedName: z.string().trim().min(1).max(200).optional(),
120
+ provider: z.string().regex(/^[A-Za-z0-9._-]{1,40}$/u),
121
+ region: z.string().trim().min(1).max(80).optional(),
122
+ kubernetesVersion: z.string().trim().min(1).max(80).optional(),
123
+ providerClusterId: z.string().trim().min(1).max(320).optional(),
124
+ providerClusterIdSha256: Sha256.optional(),
125
+ kubeSystemUidSha256: Sha256.optional(),
126
+ endpointSha256: Sha256.optional(),
127
+ certificateAuthoritySha256: Sha256.optional()
128
+ }).strict().superRefine((value, context) => {
129
+ if (value.providerClusterId != null && value.providerClusterIdSha256 == null) {
130
+ context.addIssue({ code: "custom", path: ["providerClusterIdSha256"], message: "providerClusterIdSha256 is required with providerClusterId" });
131
+ }
132
+ });
133
+ export const ClusterObservationBatchRequestSchema = z.object({
134
+ observations: z.array(ClusterObservationInputSchema).min(1).max(100)
135
+ }).strict();
136
+ export const ClusterAdoptRequestSchema = z.object({
137
+ code: z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]{0,79}$/u),
138
+ name: z.string().trim().min(1).max(120),
139
+ description: z.string().trim().max(2000).optional(),
140
+ expectedVersion: z.number().int().nonnegative(),
141
+ reason: z.string().trim().min(5).max(1000)
142
+ }).strict();
143
+ export const ClusterLinkRequestSchema = z.object({
144
+ clusterKey: z.string().regex(/^clu_[0-9a-f]{32}$/u),
145
+ expectedCandidateVersion: z.number().int().nonnegative(),
146
+ expectedClusterVersion: z.number().int().nonnegative(),
147
+ reason: z.string().trim().min(5).max(1000)
148
+ }).strict();
149
+ export const ClusterIgnoreRequestSchema = z.object({
150
+ expectedVersion: z.number().int().nonnegative(),
151
+ reason: z.string().trim().min(5).max(1000)
152
+ }).strict();
153
+ export const ClusterObservationReceiptSchema = z.object({
154
+ observation: ClusterObservationViewSchema,
155
+ candidate: ClusterCandidateViewSchema,
156
+ replayed: z.boolean()
157
+ });
158
+ export const ClusterObservationBatchReceiptSchema = z.object({
159
+ items: z.array(ClusterObservationReceiptSchema),
160
+ observationCount: z.number().int().nonnegative(),
161
+ candidateCount: z.number().int().nonnegative(),
162
+ replayed: z.boolean()
163
+ });
164
+ export const ClusterCandidateDecisionViewSchema = z.object({
165
+ action: ClusterGovernanceActionSchema,
166
+ candidate: ClusterCandidateViewSchema,
167
+ cluster: ClusterSummarySchema.nullable().optional(),
168
+ replayed: z.boolean(),
169
+ decidedAt: NonEmptyString
170
+ });
171
+ export const ClusterDiscoveryRunViewSchema = z.object({
172
+ runNo: NonEmptyString,
173
+ sourceKey: NonEmptyString,
174
+ state: NonEmptyString,
175
+ discoveredCount: z.number().int().nonnegative(),
176
+ candidateCount: z.number().int().nonnegative(),
177
+ errorCode: OptionalString,
178
+ errorMessage: OptionalString,
179
+ startedAt: OptionalString,
180
+ completedAt: OptionalString
181
+ });
182
+ function pageSchema(item) {
183
+ return z.object({
184
+ items: z.array(item),
185
+ total: z.number().int().nonnegative(),
186
+ page: z.number().int().positive(),
187
+ size: z.number().int().positive(),
188
+ totalPages: z.number().int().nonnegative()
189
+ });
190
+ }
191
+ export const ClusterSummaryListSchema = z.array(ClusterSummarySchema);
192
+ export const ClusterSourceListSchema = z.array(ClusterSourceViewSchema);
193
+ export const ClusterCandidatePageSchema = pageSchema(ClusterCandidateViewSchema);
194
+ export const ClusterObservationPageSchema = pageSchema(ClusterObservationViewSchema);
195
+ export const ClusterApiErrorSchema = z.object({
196
+ code: z.string().optional(),
197
+ message: z.string().optional(),
198
+ requestId: z.string().optional(),
199
+ details: z.unknown().optional()
200
+ });
201
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/clusters/schemas.ts"],"names":[],"mappings":"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"}