@numa-tech/numa 1.12.8 → 1.12.11

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 (75) hide show
  1. package/README.md +140 -16
  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-candidates/client.d.ts +167 -0
  8. package/dist/application-candidates/client.js +103 -0
  9. package/dist/application-candidates/client.js.map +1 -0
  10. package/dist/application-candidates/commands.d.ts +13 -0
  11. package/dist/application-candidates/commands.js +225 -0
  12. package/dist/application-candidates/commands.js.map +1 -0
  13. package/dist/application-candidates/schemas.d.ts +171 -0
  14. package/dist/application-candidates/schemas.js +80 -0
  15. package/dist/application-candidates/schemas.js.map +1 -0
  16. package/dist/application-onboarding/client.d.ts +256 -0
  17. package/dist/application-onboarding/client.js +213 -0
  18. package/dist/application-onboarding/client.js.map +1 -0
  19. package/dist/application-onboarding/commands.d.ts +64 -0
  20. package/dist/application-onboarding/commands.js +694 -0
  21. package/dist/application-onboarding/commands.js.map +1 -0
  22. package/dist/application-onboarding/errors.d.ts +11 -0
  23. package/dist/application-onboarding/errors.js +51 -0
  24. package/dist/application-onboarding/errors.js.map +1 -0
  25. package/dist/application-onboarding/schemas.d.ts +1167 -0
  26. package/dist/application-onboarding/schemas.js +459 -0
  27. package/dist/application-onboarding/schemas.js.map +1 -0
  28. package/dist/application-onboarding/scm-credentials.d.ts +8 -0
  29. package/dist/application-onboarding/scm-credentials.js +98 -0
  30. package/dist/application-onboarding/scm-credentials.js.map +1 -0
  31. package/dist/application-onboarding/tui-model.d.ts +131 -0
  32. package/dist/application-onboarding/tui-model.js +554 -0
  33. package/dist/application-onboarding/tui-model.js.map +1 -0
  34. package/dist/application-onboarding/tui.d.ts +14 -0
  35. package/dist/application-onboarding/tui.js +554 -0
  36. package/dist/application-onboarding/tui.js.map +1 -0
  37. package/dist/authorization/access-request-client.d.ts +45 -0
  38. package/dist/authorization/access-request-client.js +93 -0
  39. package/dist/authorization/access-request-client.js.map +1 -0
  40. package/dist/authorization/access-request-commands.d.ts +25 -0
  41. package/dist/authorization/access-request-commands.js +196 -0
  42. package/dist/authorization/access-request-commands.js.map +1 -0
  43. package/dist/authorization/access-request-schemas.d.ts +123 -0
  44. package/dist/authorization/access-request-schemas.js +67 -0
  45. package/dist/authorization/access-request-schemas.js.map +1 -0
  46. package/dist/authorization/client.d.ts +50 -0
  47. package/dist/authorization/client.js +113 -0
  48. package/dist/authorization/client.js.map +1 -0
  49. package/dist/authorization/commands.d.ts +40 -0
  50. package/dist/authorization/commands.js +296 -0
  51. package/dist/authorization/commands.js.map +1 -0
  52. package/dist/authorization/errors.d.ts +13 -0
  53. package/dist/authorization/errors.js +70 -0
  54. package/dist/authorization/errors.js.map +1 -0
  55. package/dist/authorization/schemas.d.ts +187 -0
  56. package/dist/authorization/schemas.js +101 -0
  57. package/dist/authorization/schemas.js.map +1 -0
  58. package/dist/cli.js +44 -8
  59. package/dist/cli.js.map +1 -1
  60. package/dist/command-catalog.js +270 -26
  61. package/dist/command-catalog.js.map +1 -1
  62. package/dist/web-console-page.d.ts +1 -1
  63. package/dist/web-console-page.js +1 -1
  64. package/dist/web-console.js +6 -5
  65. package/dist/web-console.js.map +1 -1
  66. package/examples/ai-registry/README.md +18 -0
  67. package/examples/ai-registry/nacos-instance.username-password.example.json +25 -0
  68. package/package.json +4 -4
  69. package/skills/numa-ai-registry/SKILL.md +5 -5
  70. package/skills/numa-ai-registry/evals/evals.json +1 -1
  71. package/skills/numa-ai-registry/references/command-contract.md +22 -22
  72. package/skills/numa-cli/SKILL.md +44 -0
  73. package/skills/numa-cli/agents/openai.yaml +4 -0
  74. package/skills/numa-cli/evals/evals.json +35 -0
  75. package/skills/numa-cli/references/pipeline-release.md +107 -0
@@ -0,0 +1,256 @@
1
+ import type { AuthConfig } from "../config.js";
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";
4
+ export interface OnboardingClientDependencies {
5
+ fetch?: typeof fetch;
6
+ tokenProvider?: KeycloakTokenProvider;
7
+ }
8
+ export interface OnboardingApi {
9
+ getCapabilities(): Promise<OnboardingCapabilities>;
10
+ listCatalogOptions(type: "team" | "system" | "business-domain" | "environment", options?: {
11
+ search?: string;
12
+ limit?: number;
13
+ }): Promise<{
14
+ items: Array<Record<string, unknown>>;
15
+ nextCursor?: string | null;
16
+ }>;
17
+ listTechnologyStacks(options?: {
18
+ status?: string;
19
+ }): Promise<{
20
+ items: Array<Record<string, unknown>>;
21
+ nextCursor?: string | null;
22
+ }>;
23
+ listTemplates(options?: {
24
+ technologyStackCode?: string;
25
+ repoMode?: string;
26
+ }): Promise<{
27
+ items: Array<Record<string, unknown>>;
28
+ nextCursor?: string | null;
29
+ }>;
30
+ listScmConnections(options?: {
31
+ provider?: ScmProvider;
32
+ search?: string;
33
+ }): Promise<{
34
+ items: ScmConnection[];
35
+ nextCursor: string | null;
36
+ }>;
37
+ listRepositories(connectionCode: string, options?: {
38
+ search?: string;
39
+ cursor?: string;
40
+ limit?: number;
41
+ }): Promise<{
42
+ items: ScmRepository[];
43
+ nextCursor: string | null;
44
+ hasMore: boolean;
45
+ }>;
46
+ listAdminScmConnections(): Promise<{
47
+ items: ScmAdminConnection[];
48
+ nextCursor: string | null;
49
+ }>;
50
+ getAdminScmConnection(connectionCode: string): Promise<ScmAdminConnection>;
51
+ createAdminScmConnection(input: ScmAdminConnectionInput): Promise<ScmAdminConnection>;
52
+ updateAdminScmConnection(connectionCode: string, input: ScmAdminConnectionInput & {
53
+ version: number;
54
+ }): Promise<ScmAdminConnection>;
55
+ rotateAdminScmCredential(connectionCode: string, input: ScmCredentialUpdate): Promise<ScmAdminConnection>;
56
+ probeAdminScmConnection(connectionCode: string, input: {
57
+ version: number;
58
+ }): Promise<ScmAdminConnection>;
59
+ disableAdminScmConnection(connectionCode: string, version: number): Promise<void>;
60
+ createSession(mode: OnboardingMode): Promise<OnboardingSession>;
61
+ listSessions(options?: {
62
+ state?: OnboardingSessionState;
63
+ mine?: boolean;
64
+ cursor?: string;
65
+ }): Promise<{
66
+ items: OnboardingSession[];
67
+ nextCursor: string | null;
68
+ }>;
69
+ getSession(sessionNo: string): Promise<OnboardingSession>;
70
+ updateSession(sessionNo: string, input: {
71
+ revision: number;
72
+ currentStep: string;
73
+ draft: JsonValue;
74
+ }): Promise<OnboardingSession>;
75
+ preflight(sessionNo: string): Promise<OnboardingPreflight>;
76
+ apply(sessionNo: string, input: {
77
+ planHash: string;
78
+ idempotencyKey: string;
79
+ }): Promise<OnboardingTask>;
80
+ getEvents(sessionNo: string, afterSequence?: number): Promise<{
81
+ items: OnboardingEvent[];
82
+ nextSequence: number;
83
+ }>;
84
+ getAssessment(sessionNo: string): Promise<Record<string, unknown>>;
85
+ cancel(sessionNo: string): Promise<void>;
86
+ retry(sessionNo: string): Promise<void>;
87
+ resume(sessionNo: string): Promise<void>;
88
+ reassess(sessionNo: string): Promise<void>;
89
+ }
90
+ export declare class OnboardingClient implements OnboardingApi {
91
+ private readonly config;
92
+ private readonly fetchImpl;
93
+ private readonly tokenProvider;
94
+ constructor(config: AuthConfig, dependencies?: OnboardingClientDependencies);
95
+ private authenticatedFetch;
96
+ private json;
97
+ getCapabilities(): Promise<OnboardingCapabilities>;
98
+ listCatalogOptions(type: "team" | "system" | "business-domain" | "environment", options?: {
99
+ search?: string;
100
+ limit?: number;
101
+ }): Promise<{
102
+ [x: string]: unknown;
103
+ items: Record<string, unknown>[];
104
+ nextCursor?: string | null | undefined;
105
+ }>;
106
+ listTechnologyStacks(options?: {
107
+ status?: string;
108
+ }): Promise<{
109
+ [x: string]: unknown;
110
+ items: Record<string, unknown>[];
111
+ nextCursor?: string | null | undefined;
112
+ }>;
113
+ listTemplates(options?: {
114
+ technologyStackCode?: string;
115
+ repoMode?: string;
116
+ }): Promise<{
117
+ [x: string]: unknown;
118
+ items: Record<string, unknown>[];
119
+ nextCursor?: string | null | undefined;
120
+ }>;
121
+ listScmConnections(options?: {
122
+ provider?: ScmProvider;
123
+ search?: string;
124
+ }): Promise<{
125
+ items: {
126
+ code: string;
127
+ name: string;
128
+ provider: "CODEUP" | "GITHUB";
129
+ organizationKey: string;
130
+ health: string;
131
+ capabilities: Record<string, boolean>;
132
+ lastCheckedAt?: string | null | undefined;
133
+ }[];
134
+ nextCursor: string | null;
135
+ }>;
136
+ listRepositories(connectionCode: string, options?: {
137
+ search?: string;
138
+ cursor?: string;
139
+ limit?: number;
140
+ }): Promise<{
141
+ items: {
142
+ externalId: string;
143
+ namespace?: string | undefined;
144
+ name: string;
145
+ fullName?: string | undefined;
146
+ namespacePath?: string | undefined;
147
+ defaultBranch: string;
148
+ headRevision: string;
149
+ visibility?: string | undefined;
150
+ archived: boolean;
151
+ webUrl?: string | undefined;
152
+ }[];
153
+ nextCursor: string | null;
154
+ hasMore: boolean;
155
+ }>;
156
+ listAdminScmConnections(): Promise<{
157
+ items: {
158
+ id?: number | undefined;
159
+ code: string;
160
+ name: string;
161
+ provider: "CODEUP" | "GITHUB";
162
+ baseUrl: string;
163
+ organizationKey: string;
164
+ authType: "CODEUP_OPENAPI" | "GITHUB_APP" | "GITHUB_PAT";
165
+ aliyunAccountId?: number | null | undefined;
166
+ aliyunAssumeRoleId?: number | null | undefined;
167
+ capabilities: Record<string, boolean>;
168
+ status: "ACTIVE" | "DEGRADED" | "DISABLED" | "ERROR";
169
+ lastCheckedAt?: string | null | undefined;
170
+ lastError?: string | null | undefined;
171
+ version: number;
172
+ credentialConfigured: boolean;
173
+ credentialVersion?: number | undefined;
174
+ credentialUpdatedAt?: string | null | undefined;
175
+ }[];
176
+ nextCursor: string | null;
177
+ }>;
178
+ getAdminScmConnection(connectionCode: string): Promise<ScmAdminConnection>;
179
+ createAdminScmConnection(input: ScmAdminConnectionInput): Promise<ScmAdminConnection>;
180
+ updateAdminScmConnection(connectionCode: string, input: ScmAdminConnectionInput & {
181
+ version: number;
182
+ }): Promise<ScmAdminConnection>;
183
+ rotateAdminScmCredential(connectionCode: string, input: ScmCredentialUpdate): Promise<ScmAdminConnection>;
184
+ probeAdminScmConnection(connectionCode: string, input: {
185
+ version: number;
186
+ }): Promise<ScmAdminConnection>;
187
+ disableAdminScmConnection(connectionCode: string, version: number): Promise<void>;
188
+ createSession(mode: OnboardingMode): Promise<OnboardingSession>;
189
+ listSessions(options?: {
190
+ state?: OnboardingSessionState;
191
+ mine?: boolean;
192
+ cursor?: string;
193
+ }): Promise<{
194
+ items: Array<import("zod").output<typeof OnboardingSessionSchema>>;
195
+ nextCursor: string | null;
196
+ }>;
197
+ getSession(sessionNo: string): Promise<OnboardingSession>;
198
+ updateSession(sessionNo: string, input: {
199
+ revision: number;
200
+ currentStep: string;
201
+ draft: JsonValue;
202
+ }): Promise<OnboardingSession>;
203
+ preflight(sessionNo: string): Promise<OnboardingPreflight>;
204
+ apply(sessionNo: string, input: {
205
+ planHash: string;
206
+ idempotencyKey: string;
207
+ }): Promise<OnboardingTask>;
208
+ getEvents(sessionNo: string, afterSequence?: number): Promise<{
209
+ items: {
210
+ [x: string]: unknown;
211
+ sequenceNo: number;
212
+ eventType: string;
213
+ stepCode?: string | null | undefined;
214
+ stepState?: "COMPENSATED" | "FAILED" | "PENDING" | "RUNNING" | "SKIPPED" | "SUCCEEDED" | "WAITING" | null | undefined;
215
+ message: string;
216
+ output?: {
217
+ taskNo?: string | undefined;
218
+ planHash?: string | undefined;
219
+ applicationId?: string | number | undefined;
220
+ repositoryId?: string | number | undefined;
221
+ repositoryExternalId?: string | number | undefined;
222
+ repositoryFullName?: string | undefined;
223
+ repositoryUrl?: string | undefined;
224
+ repositoryHead?: string | undefined;
225
+ branch?: string | undefined;
226
+ changeRequestNumber?: string | number | undefined;
227
+ changeRequestUrl?: string | undefined;
228
+ changeRequestState?: string | undefined;
229
+ assessmentId?: string | number | undefined;
230
+ assessmentStatus?: string | undefined;
231
+ score?: number | undefined;
232
+ blockerCount?: number | undefined;
233
+ failCount?: number | undefined;
234
+ warnCount?: number | undefined;
235
+ jenkinsCandidateBindingIds?: (string | number)[] | undefined;
236
+ jenkinsPendingTiers?: string[] | undefined;
237
+ retryAfterSeconds?: number | undefined;
238
+ recoveryAction?: string | undefined;
239
+ bundleDigest?: string | undefined;
240
+ templateRevision?: string | undefined;
241
+ } | null | undefined;
242
+ errorCode?: string | null | undefined;
243
+ retryable: boolean;
244
+ actorType?: "RUNNER" | "SYSTEM" | "USER" | undefined;
245
+ actor?: string | null | undefined;
246
+ occurredAt?: string | undefined;
247
+ }[];
248
+ nextSequence: number;
249
+ }>;
250
+ getAssessment(sessionNo: string): Promise<Record<string, unknown>>;
251
+ cancel(sessionNo: string): Promise<void>;
252
+ retry(sessionNo: string): Promise<void>;
253
+ resume(sessionNo: string): Promise<void>;
254
+ reassess(sessionNo: string): Promise<void>;
255
+ private sessionAction;
256
+ }
@@ -0,0 +1,213 @@
1
+ import { resolveBackendUrl } from "../backend.js";
2
+ import { ensureAccessToken, fetchWithKeycloakIdentity } from "../oauth.js";
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";
5
+ const API_ROOT = "/api/v1/application-onboarding";
6
+ const ADMIN_SCM_ROOT = "/api/v1/admin/scm-connections";
7
+ async function responseBody(response) {
8
+ const text = await response.text();
9
+ if (!text)
10
+ return {};
11
+ try {
12
+ return JSON.parse(text);
13
+ }
14
+ catch {
15
+ return text;
16
+ }
17
+ }
18
+ function requestIdFrom(response, body) {
19
+ if (body && typeof body === "object" && "requestId" in body && typeof body.requestId === "string") {
20
+ return body.requestId;
21
+ }
22
+ return response.headers.get("x-request-id") ?? undefined;
23
+ }
24
+ function retryAfterSeconds(response) {
25
+ const value = response.headers.get("retry-after")?.trim();
26
+ if (!value)
27
+ return undefined;
28
+ if (/^\d+$/u.test(value))
29
+ return Number(value);
30
+ const timestamp = Date.parse(value);
31
+ if (!Number.isFinite(timestamp))
32
+ return undefined;
33
+ return Math.max(0, Math.ceil((timestamp - Date.now()) / 1000));
34
+ }
35
+ function apiFailure(response, body) {
36
+ const parsed = OnboardingApiErrorSchema.safeParse(body);
37
+ const retryAfter = retryAfterSeconds(response);
38
+ const retryableStatus = response.status === 429 || (response.status >= 500 && response.status !== 501);
39
+ const message = parsed.success
40
+ ? parsed.data.message ?? response.statusText ?? "Application onboarding API request failed."
41
+ : typeof body === "string"
42
+ ? body
43
+ : response.statusText || "Application onboarding API request failed.";
44
+ return new OnboardingError(`Application onboarding API HTTP ${response.status}: ${redactOnboardingText(message)}${retryAfter == null ? "" : ` Retry after ${retryAfter} second(s).`}`, parsed.success ? parsed.data.code ?? (response.status === 429 ? "onboarding_rate_limited" : "onboarding_api_error") : response.status === 429 ? "onboarding_rate_limited" : "onboarding_api_error", response.status, requestIdFrom(response, body), parsed.success ? Boolean(parsed.data.retryable) || retryableStatus : retryableStatus, parsed.success ? { fieldErrors: parsed.data.fieldErrors ?? [] } : undefined, retryAfter);
45
+ }
46
+ function safeSessionNo(value) {
47
+ const trimmed = value.trim();
48
+ if (!trimmed || trimmed.length > 160 || /[/?#\\\u0000-\u001f\u007f]/u.test(trimmed)) {
49
+ throw new OnboardingError("session-no is invalid.", "onboarding_input_invalid");
50
+ }
51
+ return trimmed;
52
+ }
53
+ function queryPath(path, values) {
54
+ const query = new URLSearchParams();
55
+ for (const [key, value] of Object.entries(values)) {
56
+ if (value != null && value !== "")
57
+ query.set(key, String(value));
58
+ }
59
+ return query.size ? `${path}?${query.toString()}` : path;
60
+ }
61
+ export class OnboardingClient {
62
+ config;
63
+ fetchImpl;
64
+ tokenProvider;
65
+ constructor(config, dependencies = {}) {
66
+ this.config = config;
67
+ this.fetchImpl = dependencies.fetch ?? fetch;
68
+ this.tokenProvider = dependencies.tokenProvider ?? ensureAccessToken;
69
+ }
70
+ async authenticatedFetch(path, init = {}) {
71
+ const url = resolveBackendUrl(this.config, { method: "GET", path });
72
+ const headers = new Headers(init.headers);
73
+ if (!headers.has("Accept"))
74
+ headers.set("Accept", "application/json");
75
+ if (init.body != null && typeof init.body === "string")
76
+ headers.set("Content-Type", "application/json");
77
+ return fetchWithKeycloakIdentity(this.config, url, () => ({ ...init, headers }), { fetch: this.fetchImpl, tokenProvider: this.tokenProvider });
78
+ }
79
+ async json(path, schema, init = {}, expectedStatuses) {
80
+ const response = await this.authenticatedFetch(path, init);
81
+ const body = await responseBody(response);
82
+ if (!response.ok)
83
+ throw apiFailure(response, body);
84
+ if (expectedStatuses && !expectedStatuses.includes(response.status)) {
85
+ throw new OnboardingError(`Application onboarding API returned HTTP ${response.status}; expected ${expectedStatuses.join(" or ")}.`, "onboarding_invalid_response", response.status, requestIdFrom(response, body));
86
+ }
87
+ const parsed = schema.safeParse(body);
88
+ if (!parsed.success) {
89
+ throw new OnboardingError(`Application onboarding API returned an invalid response: ${parsed.error.message}`, "onboarding_invalid_response", response.status, requestIdFrom(response, body));
90
+ }
91
+ return parsed.data;
92
+ }
93
+ getCapabilities() {
94
+ return this.json(`${API_ROOT}/capabilities`, OnboardingCapabilitiesSchema);
95
+ }
96
+ listCatalogOptions(type, options = {}) {
97
+ return this.json(queryPath("/api/v1/catalog/options", {
98
+ type,
99
+ q: options.search,
100
+ limit: options.limit ?? 50
101
+ }), OnboardingObjectListSchema);
102
+ }
103
+ listTechnologyStacks(options = {}) {
104
+ return this.json(queryPath(`${API_ROOT}/technology-stacks`, options), OnboardingObjectListSchema);
105
+ }
106
+ listTemplates(options = {}) {
107
+ return this.json(queryPath(`${API_ROOT}/templates`, options), OnboardingObjectListSchema);
108
+ }
109
+ listScmConnections(options = {}) {
110
+ return this.json(queryPath(`${API_ROOT}/scm-connections`, options), ScmConnectionListSchema);
111
+ }
112
+ listRepositories(connectionCode, options = {}) {
113
+ const connection = encodeURIComponent(safeSessionNo(connectionCode));
114
+ return this.json(queryPath(`${API_ROOT}/scm-connections/${connection}/repositories`, options), ScmRepositoryPageSchema);
115
+ }
116
+ listAdminScmConnections() {
117
+ return this.json(ADMIN_SCM_ROOT, ScmAdminConnectionListSchema);
118
+ }
119
+ getAdminScmConnection(connectionCode) {
120
+ return this.json(`${ADMIN_SCM_ROOT}/${encodeURIComponent(safeSessionNo(connectionCode))}`, ScmAdminConnectionSchema);
121
+ }
122
+ createAdminScmConnection(input) {
123
+ return this.json(ADMIN_SCM_ROOT, ScmAdminConnectionSchema, {
124
+ method: "POST",
125
+ body: JSON.stringify(input)
126
+ }, [200, 201]);
127
+ }
128
+ updateAdminScmConnection(connectionCode, input) {
129
+ return this.json(`${ADMIN_SCM_ROOT}/${encodeURIComponent(safeSessionNo(connectionCode))}`, ScmAdminConnectionSchema, {
130
+ method: "PUT",
131
+ body: JSON.stringify(input)
132
+ });
133
+ }
134
+ rotateAdminScmCredential(connectionCode, input) {
135
+ return this.json(`${ADMIN_SCM_ROOT}/${encodeURIComponent(safeSessionNo(connectionCode))}/credentials`, ScmAdminConnectionSchema, {
136
+ method: "PUT",
137
+ body: JSON.stringify(input)
138
+ });
139
+ }
140
+ probeAdminScmConnection(connectionCode, input) {
141
+ return this.json(`${ADMIN_SCM_ROOT}/${encodeURIComponent(safeSessionNo(connectionCode))}/probe`, ScmAdminConnectionSchema, {
142
+ method: "POST",
143
+ body: JSON.stringify(input)
144
+ });
145
+ }
146
+ async disableAdminScmConnection(connectionCode, version) {
147
+ const path = queryPath(`${ADMIN_SCM_ROOT}/${encodeURIComponent(safeSessionNo(connectionCode))}`, { version });
148
+ const response = await this.authenticatedFetch(path, { method: "DELETE" });
149
+ const body = await responseBody(response);
150
+ if (!response.ok)
151
+ throw apiFailure(response, body);
152
+ if (![200, 204].includes(response.status)) {
153
+ throw new OnboardingError(`Application onboarding API returned HTTP ${response.status}; expected 200 or 204.`, "onboarding_invalid_response", response.status, requestIdFrom(response, body));
154
+ }
155
+ }
156
+ createSession(mode) {
157
+ return this.json(`${API_ROOT}/sessions`, OnboardingSessionSchema, {
158
+ method: "POST",
159
+ body: JSON.stringify({ mode })
160
+ }, [200, 201]);
161
+ }
162
+ listSessions(options = {}) {
163
+ return this.json(queryPath(`${API_ROOT}/sessions`, options), OnboardingSessionListSchema);
164
+ }
165
+ getSession(sessionNo) {
166
+ return this.json(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}`, OnboardingSessionSchema);
167
+ }
168
+ updateSession(sessionNo, input) {
169
+ return this.json(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}`, OnboardingSessionSchema, {
170
+ method: "PUT",
171
+ body: JSON.stringify(input)
172
+ });
173
+ }
174
+ preflight(sessionNo) {
175
+ return this.json(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}/preflight`, OnboardingPreflightSchema, {
176
+ method: "POST"
177
+ });
178
+ }
179
+ apply(sessionNo, input) {
180
+ return this.json(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}/apply`, OnboardingTaskSchema, {
181
+ method: "POST",
182
+ headers: { "Idempotency-Key": input.idempotencyKey },
183
+ body: JSON.stringify({ planHash: input.planHash })
184
+ }, [200, 202]);
185
+ }
186
+ getEvents(sessionNo, afterSequence) {
187
+ return this.json(queryPath(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}/events`, { afterSequence }), OnboardingEventListSchema);
188
+ }
189
+ async getAssessment(sessionNo) {
190
+ return this.json(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}/assessment`, OnboardingAssessmentSchema);
191
+ }
192
+ cancel(sessionNo) {
193
+ return this.sessionAction(sessionNo, "cancel");
194
+ }
195
+ retry(sessionNo) {
196
+ return this.sessionAction(sessionNo, "retry");
197
+ }
198
+ resume(sessionNo) {
199
+ return this.sessionAction(sessionNo, "resume");
200
+ }
201
+ reassess(sessionNo) {
202
+ return this.sessionAction(sessionNo, "reassess");
203
+ }
204
+ async sessionAction(sessionNo, action) {
205
+ const response = await this.authenticatedFetch(`${API_ROOT}/sessions/${encodeURIComponent(safeSessionNo(sessionNo))}/${action}`, { method: "POST" });
206
+ if (!response.ok)
207
+ throw apiFailure(response, await responseBody(response));
208
+ if (![200, 202, 204].includes(response.status)) {
209
+ throw new OnboardingError(`Application onboarding API returned HTTP ${response.status}; expected 200, 202, or 204.`, "onboarding_invalid_response", response.status, requestIdFrom(response, undefined));
210
+ }
211
+ }
212
+ }
213
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/application-onboarding/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { Command } from "commander";
2
+ import { type OnboardingApi } from "./client.js";
3
+ import { OnboardingError } from "./errors.js";
4
+ import { type OnboardingEvent, type OnboardingEventOutput, type OnboardingMode, type OnboardingSession, type OnboardingSessionState, type OnboardingSpec, type ScmAuthType, type ScmConnection, type ScmCredentialBundle, type ScmCredentialUpdate } from "./schemas.js";
5
+ import { runOnboardingTui } from "./tui.js";
6
+ export interface ApplicationOnboardingCommandDependencies {
7
+ clientFactory?: () => OnboardingApi;
8
+ interactive?: () => boolean;
9
+ runTui?: typeof runOnboardingTui;
10
+ sleep?: (milliseconds: number, signal?: AbortSignal) => Promise<void>;
11
+ }
12
+ export interface OnboardingSpecExecutionResult {
13
+ session: OnboardingSession;
14
+ preflight?: Awaited<ReturnType<OnboardingApi["preflight"]>>;
15
+ task?: Awaited<ReturnType<OnboardingApi["apply"]>>;
16
+ idempotencyKey?: string;
17
+ }
18
+ export interface OnboardingExecutionView {
19
+ state: OnboardingSessionState;
20
+ currentStep: string | null;
21
+ summary: string;
22
+ active: boolean;
23
+ terminal: boolean;
24
+ lastSequence: number;
25
+ retryable: boolean;
26
+ errorCode: string | null;
27
+ eventOutput: OnboardingEventOutput;
28
+ }
29
+ export interface OnboardingInspection {
30
+ session: OnboardingSession;
31
+ events: OnboardingEvent[];
32
+ lastSequence: number;
33
+ execution: OnboardingExecutionView;
34
+ }
35
+ export type OnboardingRecoveryAction = "cancel" | "retry" | "resume" | "reassess";
36
+ export type ApplicationCatalogOptionType = "team" | "system" | "business-domain" | "environment";
37
+ export declare function publicOnboardingEvent(event: OnboardingEvent): OnboardingEvent;
38
+ export declare function onboardingExecutionView(session: OnboardingSession, events?: OnboardingEvent[]): OnboardingExecutionView;
39
+ export declare function parseOnboardingMode(value: string): OnboardingMode;
40
+ export declare function parseApplicationCatalogOptionType(value: string): ApplicationCatalogOptionType;
41
+ export declare function resolveScmConnection(client: Pick<OnboardingApi, "listScmConnections">, code: string): Promise<ScmConnection>;
42
+ export declare function scmCredentialUpdate(version: number, authType: ScmAuthType, credential: ScmCredentialBundle): ScmCredentialUpdate;
43
+ export declare function readOnboardingSpec(path: string): Promise<OnboardingSpec>;
44
+ export declare function executeOnboardingSpec(client: OnboardingApi, spec: OnboardingSpec, options?: {
45
+ mode?: OnboardingMode;
46
+ sessionNo?: string;
47
+ plan?: boolean;
48
+ apply?: boolean;
49
+ idempotencyKey?: string;
50
+ }): Promise<OnboardingSpecExecutionResult>;
51
+ export declare function watchOnboardingEvents(client: Pick<OnboardingApi, "getEvents" | "getSession">, sessionNo: string, options?: {
52
+ afterSequence?: number;
53
+ sleep?: (milliseconds: number, signal?: AbortSignal) => Promise<void>;
54
+ signal?: AbortSignal;
55
+ onEvent?: (event: OnboardingEvent) => void;
56
+ onSession?: (session: OnboardingSession) => void;
57
+ onReconnect?: (error: OnboardingError) => void;
58
+ }): Promise<{
59
+ session: OnboardingSession;
60
+ lastSequence: number;
61
+ }>;
62
+ export declare function inspectOnboardingSession(client: Pick<OnboardingApi, "getEvents" | "getSession">, sessionNo: string, afterSequence?: number): Promise<OnboardingInspection>;
63
+ export declare function executeOnboardingAction(client: Pick<OnboardingApi, OnboardingRecoveryAction | "getEvents" | "getSession">, sessionNo: string, action: OnboardingRecoveryAction): Promise<OnboardingInspection>;
64
+ export declare function registerApplicationOnboardingCommands(program: Command, dependencies?: ApplicationOnboardingCommandDependencies): void;