@kindgi/cli 0.1.8-rc.0 → 0.1.9-rc.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.
- package/README.md +59 -2
- package/dist/api-address.d.ts +104 -12
- package/dist/api-address.d.ts.map +1 -1
- package/dist/api-address.js +169 -30
- package/dist/api-address.js.map +1 -1
- package/dist/cli.js +12 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/approvals.d.ts.map +1 -1
- package/dist/commands/approvals.js +15 -3
- package/dist/commands/approvals.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +27 -0
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/build.d.ts +18 -0
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +118 -13
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/conversations.d.ts.map +1 -1
- package/dist/commands/conversations.js +13 -3
- package/dist/commands/conversations.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +235 -53
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/deployments.d.ts +3 -0
- package/dist/commands/deployments.d.ts.map +1 -0
- package/dist/commands/deployments.js +196 -0
- package/dist/commands/deployments.js.map +1 -0
- package/dist/commands/doctor.d.ts +1 -5
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +42 -22
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/egress.d.ts +9 -0
- package/dist/commands/egress.d.ts.map +1 -0
- package/dist/commands/egress.js +40 -0
- package/dist/commands/egress.js.map +1 -0
- package/dist/commands/env-scoped.d.ts +5 -0
- package/dist/commands/env-scoped.d.ts.map +1 -1
- package/dist/commands/env-scoped.js +64 -19
- package/dist/commands/env-scoped.js.map +1 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +91 -30
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/environments.d.ts +6 -0
- package/dist/commands/environments.d.ts.map +1 -0
- package/dist/commands/environments.js +166 -0
- package/dist/commands/environments.js.map +1 -0
- package/dist/commands/exports.d.ts.map +1 -1
- package/dist/commands/exports.js +118 -3
- package/dist/commands/exports.js.map +1 -1
- package/dist/commands/feedback.d.ts +1 -2
- package/dist/commands/feedback.d.ts.map +1 -1
- package/dist/commands/feedback.js +55 -24
- package/dist/commands/feedback.js.map +1 -1
- package/dist/commands/helpers.d.ts +6 -0
- package/dist/commands/helpers.d.ts.map +1 -1
- package/dist/commands/helpers.js +8 -0
- package/dist/commands/helpers.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +12 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/license.d.ts +3 -0
- package/dist/commands/license.d.ts.map +1 -1
- package/dist/commands/license.js +1 -1
- package/dist/commands/license.js.map +1 -1
- package/dist/commands/people.d.ts.map +1 -1
- package/dist/commands/people.js +105 -10
- package/dist/commands/people.js.map +1 -1
- package/dist/commands/projects.d.ts.map +1 -1
- package/dist/commands/projects.js +133 -11
- package/dist/commands/projects.js.map +1 -1
- package/dist/commands/promote.d.ts +38 -0
- package/dist/commands/promote.d.ts.map +1 -0
- package/dist/commands/promote.js +371 -0
- package/dist/commands/promote.js.map +1 -0
- package/dist/commands/proposals.d.ts.map +1 -1
- package/dist/commands/proposals.js +2 -1
- package/dist/commands/proposals.js.map +1 -1
- package/dist/commands/providers.d.ts.map +1 -1
- package/dist/commands/providers.js +29 -5
- package/dist/commands/providers.js.map +1 -1
- package/dist/commands/schedules.d.ts.map +1 -1
- package/dist/commands/schedules.js +30 -2
- package/dist/commands/schedules.js.map +1 -1
- package/dist/commands/secrets.d.ts.map +1 -1
- package/dist/commands/secrets.js +65 -40
- package/dist/commands/secrets.js.map +1 -1
- package/dist/commands/sign-in.d.ts +3 -0
- package/dist/commands/sign-in.d.ts.map +1 -0
- package/dist/commands/sign-in.js +61 -0
- package/dist/commands/sign-in.js.map +1 -0
- package/dist/commands/sites.d.ts +3 -0
- package/dist/commands/sites.d.ts.map +1 -0
- package/dist/commands/sites.js +244 -0
- package/dist/commands/sites.js.map +1 -0
- package/dist/commands/tools.d.ts.map +1 -1
- package/dist/commands/tools.js +2 -2
- package/dist/commands/tools.js.map +1 -1
- package/dist/commands/types.d.ts +11 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/webhooks.d.ts.map +1 -1
- package/dist/commands/webhooks.js +38 -2
- package/dist/commands/webhooks.js.map +1 -1
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +20 -7
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +38 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +12 -1
- package/dist/context.js.map +1 -1
- package/dist/deploy/defaults.d.ts.map +1 -1
- package/dist/deploy/defaults.js +7 -1
- package/dist/deploy/defaults.js.map +1 -1
- package/dist/deploy/pack-service-text.d.ts +29 -0
- package/dist/deploy/pack-service-text.d.ts.map +1 -0
- package/dist/deploy/pack-service-text.js +72 -0
- package/dist/deploy/pack-service-text.js.map +1 -0
- package/dist/deploy/post.d.ts +17 -4
- package/dist/deploy/post.d.ts.map +1 -1
- package/dist/deploy/post.js +177 -60
- package/dist/deploy/post.js.map +1 -1
- package/dist/deploy/promotion-path.d.ts +44 -0
- package/dist/deploy/promotion-path.d.ts.map +1 -0
- package/dist/deploy/promotion-path.js +86 -0
- package/dist/deploy/promotion-path.js.map +1 -0
- package/dist/deploy/response.d.ts +3 -0
- package/dist/deploy/response.d.ts.map +1 -1
- package/dist/deploy/response.js +66 -12
- package/dist/deploy/response.js.map +1 -1
- package/dist/deploy/runners.d.ts +99 -5
- package/dist/deploy/runners.d.ts.map +1 -1
- package/dist/dev/java-builder.d.ts.map +1 -1
- package/dist/dev/java-builder.js +19 -3
- package/dist/dev/java-builder.js.map +1 -1
- package/dist/dev/python-builder.d.ts.map +1 -1
- package/dist/dev/python-builder.js +18 -3
- package/dist/dev/python-builder.js.map +1 -1
- package/dist/dev/runtime-container.d.ts +28 -3
- package/dist/dev/runtime-container.d.ts.map +1 -1
- package/dist/dev/runtime-container.js +103 -36
- package/dist/dev/runtime-container.js.map +1 -1
- package/dist/dev/runtime-image.d.ts +1 -1
- package/dist/dev/runtime-image.js +1 -1
- package/dist/dev/scala-builder.d.ts.map +1 -1
- package/dist/dev/scala-builder.js +55 -21
- package/dist/dev/scala-builder.js.map +1 -1
- package/dist/dev/shared-watch.d.ts +30 -0
- package/dist/dev/shared-watch.d.ts.map +1 -1
- package/dist/dev/shared-watch.js +46 -1
- package/dist/dev/shared-watch.js.map +1 -1
- package/dist/env/pack-env-hint.d.ts +52 -0
- package/dist/env/pack-env-hint.d.ts.map +1 -0
- package/dist/env/pack-env-hint.js +57 -0
- package/dist/env/pack-env-hint.js.map +1 -0
- package/dist/env/pack-env-plan.d.ts +2 -0
- package/dist/env/pack-env-plan.d.ts.map +1 -1
- package/dist/env/pack-env-plan.js +2 -1
- package/dist/env/pack-env-plan.js.map +1 -1
- package/dist/env-projects.d.ts +23 -0
- package/dist/env-projects.d.ts.map +1 -0
- package/dist/env-projects.js +28 -0
- package/dist/env-projects.js.map +1 -0
- package/dist/exports/create.d.ts +71 -0
- package/dist/exports/create.d.ts.map +1 -0
- package/dist/exports/create.js +576 -0
- package/dist/exports/create.js.map +1 -0
- package/dist/exports/plan.d.ts +69 -0
- package/dist/exports/plan.d.ts.map +1 -0
- package/dist/exports/plan.js +496 -0
- package/dist/exports/plan.js.map +1 -0
- package/dist/exports/reader.d.ts +48 -0
- package/dist/exports/reader.d.ts.map +1 -0
- package/dist/exports/reader.js +181 -0
- package/dist/exports/reader.js.map +1 -0
- package/dist/feedback/entries.d.ts +53 -0
- package/dist/feedback/entries.d.ts.map +1 -0
- package/dist/feedback/entries.js +173 -0
- package/dist/feedback/entries.js.map +1 -0
- package/dist/feedback/intake.d.ts +37 -0
- package/dist/feedback/intake.d.ts.map +1 -0
- package/dist/feedback/intake.js +101 -0
- package/dist/feedback/intake.js.map +1 -0
- package/dist/feedback/protocol.d.ts +111 -0
- package/dist/feedback/protocol.d.ts.map +1 -0
- package/dist/feedback/protocol.js +143 -0
- package/dist/feedback/protocol.js.map +1 -0
- package/dist/feedback/redact.d.ts +34 -0
- package/dist/feedback/redact.d.ts.map +1 -0
- package/dist/feedback/redact.js +258 -0
- package/dist/feedback/redact.js.map +1 -0
- package/dist/feedback/report.d.ts +51 -0
- package/dist/feedback/report.d.ts.map +1 -0
- package/dist/feedback/report.js +122 -0
- package/dist/feedback/report.js.map +1 -0
- package/dist/feedback/run.d.ts +21 -0
- package/dist/feedback/run.d.ts.map +1 -0
- package/dist/feedback/run.js +578 -0
- package/dist/feedback/run.js.map +1 -0
- package/dist/feedback/store.d.ts +24 -0
- package/dist/feedback/store.d.ts.map +1 -0
- package/dist/feedback/store.js +117 -0
- package/dist/feedback/store.js.map +1 -0
- package/dist/main.d.ts +6 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +86 -5
- package/dist/main.js.map +1 -1
- package/dist/node-version.d.ts +13 -0
- package/dist/node-version.d.ts.map +1 -0
- package/dist/node-version.js +37 -0
- package/dist/node-version.js.map +1 -0
- package/dist/parse.d.ts +8 -2
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +7 -2
- package/dist/parse.js.map +1 -1
- package/dist/project-ref.d.ts +44 -0
- package/dist/project-ref.d.ts.map +1 -0
- package/dist/project-ref.js +69 -0
- package/dist/project-ref.js.map +1 -0
- package/dist/sdk-skills/kindgi-authoring-agents/SKILL.md +15 -2
- package/dist/sdk-skills/kindgi-authoring-flows/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-authoring-guardrails/SKILL.md +44 -7
- package/dist/sdk-skills/kindgi-authoring-mcp-servers/SKILL.md +11 -2
- package/dist/sdk-skills/kindgi-authoring-providers/SKILL.md +60 -13
- package/dist/sdk-skills/kindgi-authoring-tools/SKILL.md +19 -2
- package/dist/sdk-skills/kindgi-framework-feedback/SKILL.md +82 -3
- package/dist/sdk-skills/kindgi-getting-started/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-java-authoring-agents/SKILL.md +17 -3
- package/dist/sdk-skills/kindgi-java-authoring-flows/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-java-authoring-guardrails/SKILL.md +43 -6
- package/dist/sdk-skills/kindgi-java-authoring-tools/SKILL.md +19 -2
- package/dist/sdk-skills/kindgi-java-getting-started/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-python-authoring-agents/SKILL.md +17 -3
- package/dist/sdk-skills/kindgi-python-authoring-flows/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-python-authoring-guardrails/SKILL.md +49 -13
- package/dist/sdk-skills/kindgi-python-authoring-tools/SKILL.md +27 -3
- package/dist/sdk-skills/kindgi-python-getting-started/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-scala-authoring-agents/SKILL.md +17 -3
- package/dist/sdk-skills/kindgi-scala-authoring-flows/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-scala-authoring-guardrails/SKILL.md +43 -6
- package/dist/sdk-skills/kindgi-scala-authoring-tools/SKILL.md +19 -2
- package/dist/sdk-skills/kindgi-scala-getting-started/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-using/SKILL.md +1 -1
- package/dist/slug.d.ts +18 -0
- package/dist/slug.d.ts.map +1 -0
- package/dist/slug.js +29 -0
- package/dist/slug.js.map +1 -0
- package/dist/templates/drupal/AGENTS.md +2 -0
- package/dist/templates/java/AGENTS.md +2 -0
- package/dist/templates/minimal/AGENTS.md +2 -0
- package/dist/templates/python/AGENTS.md +2 -0
- package/dist/templates/sample/AGENTS.md +2 -0
- package/dist/templates/scala/AGENTS.md +2 -0
- package/dist/templates/woocommerce/AGENTS.md +11 -4
- package/dist/templates/woocommerce/README.md.tmpl +47 -4
- package/dist/templates/woocommerce/agents/store-agent/index.test.ts.tmpl +13 -0
- package/dist/templates/woocommerce/agents/store-agent/index.ts.tmpl +11 -1
- package/dist/templates/woocommerce/tools/publish-product/index.ts.tmpl +7 -1
- package/dist/templates/woocommerce/tools/refund/index.ts.tmpl +7 -2
- package/dist/templates/woocommerce/tools/refund-large/index.ts.tmpl +8 -2
- package/dist/templates/woocommerce/tools/set-price/index.ts.tmpl +6 -0
- package/dist/value-target.d.ts +139 -0
- package/dist/value-target.d.ts.map +1 -0
- package/dist/value-target.js +231 -0
- package/dist/value-target.js.map +1 -0
- package/package.json +13 -13
package/dist/deploy/post.js
CHANGED
|
@@ -19,7 +19,11 @@
|
|
|
19
19
|
* actual HTTP POST via the caller-supplied `fetchImpl`, parses the
|
|
20
20
|
* server's response, discriminates 201 / 200 / 4xx / 5xx. A refusal
|
|
21
21
|
* carries its `Retry-After` and the limit a `429` names, for the
|
|
22
|
-
* command to wait out (`rate-limit-wait.ts`)
|
|
22
|
+
* command to wait out (`rate-limit-wait.ts`), and the position a
|
|
23
|
+
* `409 environment-takes-promotions` names, for its hint.
|
|
24
|
+
*
|
|
25
|
+
* - `listProjectsReal` / `findProjectsReal` / `listEnvironmentOrdersReal`
|
|
26
|
+
* — the reads `--project <slug>` and that hint make, every page.
|
|
23
27
|
*/
|
|
24
28
|
import { createHash } from 'node:crypto';
|
|
25
29
|
import { stableStringify } from '../build/envelope.js';
|
|
@@ -124,13 +128,19 @@ export async function postDeploymentReal(opts) {
|
|
|
124
128
|
};
|
|
125
129
|
}
|
|
126
130
|
// 4xx / 5xx — the api-server wraps errors in `{ error: { code,
|
|
127
|
-
// message,
|
|
131
|
+
// message, details? } }` via `toWireError` in
|
|
128
132
|
// `packages/api/src/errors.ts`.
|
|
129
133
|
const wire = body;
|
|
130
134
|
const code = wire?.error?.code ?? `http-${res.status}`;
|
|
131
135
|
const message = wire?.error?.message ?? `HTTP ${res.status}`;
|
|
132
|
-
const
|
|
133
|
-
const
|
|
136
|
+
const wireDetails = wire?.error?.details;
|
|
137
|
+
const details = Array.isArray(wireDetails?.issues)
|
|
138
|
+
? wireDetails.issues
|
|
139
|
+
: undefined;
|
|
140
|
+
const limit = wireDetails?.limit;
|
|
141
|
+
const cause = wireDetails?.cause;
|
|
142
|
+
const position = wireDetails?.position;
|
|
143
|
+
const firstProjectId = wireDetails?.firstProjectId;
|
|
134
144
|
const retryAfter = res.headers.get('retry-after')?.trim();
|
|
135
145
|
return {
|
|
136
146
|
kind: 'wire-error',
|
|
@@ -144,18 +154,13 @@ export async function postDeploymentReal(opts) {
|
|
|
144
154
|
message,
|
|
145
155
|
...(details !== undefined && { details }),
|
|
146
156
|
...(typeof limit === 'string' && { limit }),
|
|
157
|
+
...(typeof cause === 'string' && { cause }),
|
|
158
|
+
...(Number.isSafeInteger(position) &&
|
|
159
|
+
position >= 0 && { position: position }),
|
|
160
|
+
...(typeof firstProjectId === 'string' && firstProjectId !== '' && { firstProjectId }),
|
|
147
161
|
},
|
|
148
162
|
};
|
|
149
163
|
}
|
|
150
|
-
function extractDetails(err) {
|
|
151
|
-
if (err === undefined)
|
|
152
|
-
return undefined;
|
|
153
|
-
const issues = err.issues;
|
|
154
|
-
if (Array.isArray(issues)) {
|
|
155
|
-
return issues;
|
|
156
|
-
}
|
|
157
|
-
return undefined;
|
|
158
|
-
}
|
|
159
164
|
/**
|
|
160
165
|
* Derive the Idempotency-Key for a sync-secrets POST. Same shape as
|
|
161
166
|
* `deriveIdempotencyKey` for deployments (sha256 of canonical body) —
|
|
@@ -223,59 +228,135 @@ export async function syncSecretsReal(opts) {
|
|
|
223
228
|
},
|
|
224
229
|
};
|
|
225
230
|
}
|
|
226
|
-
/** The most a page of `GET /v1/projects` holds. */
|
|
227
|
-
const PROJECTS_PAGE_LIMIT = 100;
|
|
228
231
|
/**
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
+
* whoami's `servedEnv`: the env the runtime serves, and whether it refuses
|
|
233
|
+
* values under any other. `undefined` when it names none (a runtime that
|
|
234
|
+
* serves no env, or an older one), or on any failure: the runtime still
|
|
235
|
+
* refuses the sync itself.
|
|
232
236
|
*/
|
|
233
|
-
export async function
|
|
234
|
-
|
|
235
|
-
|
|
237
|
+
export async function servedEnvReal(opts) {
|
|
238
|
+
try {
|
|
239
|
+
const res = await opts.fetchImpl(`${opts.endpoint.replace(/\/+$/, '')}/v1/identity/whoami`, {
|
|
240
|
+
headers: { Authorization: `Bearer ${opts.token}` },
|
|
241
|
+
...(opts.signal !== undefined && { signal: opts.signal }),
|
|
242
|
+
});
|
|
243
|
+
if (!res.ok)
|
|
244
|
+
return undefined;
|
|
245
|
+
const served = (await res.json()).servedEnv;
|
|
246
|
+
return typeof served?.envName === 'string' && typeof served.refusesOtherEnvs === 'boolean'
|
|
247
|
+
? { envName: served.envName, refusesOtherEnvs: served.refusesOtherEnvs }
|
|
248
|
+
: undefined;
|
|
249
|
+
}
|
|
250
|
+
catch {
|
|
251
|
+
return undefined;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/** The most a page of a list holds. */
|
|
255
|
+
const PAGE_LIMIT = 100;
|
|
256
|
+
/**
|
|
257
|
+
* Every row of a tenant list (`GET /v1/projects`, say), read page by page.
|
|
258
|
+
* The token's own rights decide what it lists.
|
|
259
|
+
*/
|
|
260
|
+
async function listAllReal(opts, path) {
|
|
261
|
+
const base = `${opts.endpoint.replace(/\/+$/, '')}${path}`;
|
|
262
|
+
const rows = [];
|
|
236
263
|
let cursor;
|
|
237
264
|
do {
|
|
238
|
-
const
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
265
|
+
const page = await readPage(opts, base, cursor);
|
|
266
|
+
if (page.kind === 'error')
|
|
267
|
+
return page;
|
|
268
|
+
rows.push(...page.data);
|
|
269
|
+
cursor = page.nextCursor;
|
|
270
|
+
} while (cursor !== undefined);
|
|
271
|
+
return { kind: 'ok', rows };
|
|
272
|
+
}
|
|
273
|
+
/** One page of that list, from `cursor`; `nextCursor` while there's more. */
|
|
274
|
+
async function readPage(opts, base, cursor) {
|
|
275
|
+
const url = `${base}?limit=${PAGE_LIMIT}${cursor === undefined ? '' : `&cursor=${encodeURIComponent(cursor)}`}`;
|
|
276
|
+
let res;
|
|
277
|
+
try {
|
|
278
|
+
res = await opts.fetchImpl(url, {
|
|
279
|
+
headers: { Authorization: `Bearer ${opts.token}` },
|
|
280
|
+
...(opts.signal !== undefined && { signal: opts.signal }),
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
catch (err) {
|
|
284
|
+
return { kind: 'error', message: `GET ${base} failed: ${err.message}` };
|
|
285
|
+
}
|
|
286
|
+
let page;
|
|
287
|
+
try {
|
|
288
|
+
page = (await res.json());
|
|
289
|
+
}
|
|
290
|
+
catch {
|
|
291
|
+
return {
|
|
292
|
+
kind: 'error',
|
|
293
|
+
message: `GET ${base} returned HTTP ${res.status} with a body that isn't JSON`,
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
if (!res.ok || !Array.isArray(page.data)) {
|
|
297
|
+
const code = page.error?.code;
|
|
298
|
+
return {
|
|
299
|
+
kind: 'error',
|
|
300
|
+
message: `GET ${base} answered HTTP ${res.status}${typeof code === 'string' ? ` (${code})` : ''}`,
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
const more = page.hasMore === true && typeof page.nextCursor === 'string';
|
|
304
|
+
return { kind: 'ok', data: page.data, ...(more && { nextCursor: page.nextCursor }) };
|
|
305
|
+
}
|
|
306
|
+
/** Every project the token can read (`GET /v1/projects`, every page). */
|
|
307
|
+
export async function listProjectsReal(opts) {
|
|
308
|
+
const listed = await listAllReal(opts, '/v1/projects');
|
|
309
|
+
if (listed.kind === 'error')
|
|
310
|
+
return listed;
|
|
311
|
+
const projects = [];
|
|
312
|
+
for (const p of listed.rows) {
|
|
313
|
+
if (typeof p?.id !== 'string')
|
|
314
|
+
continue;
|
|
315
|
+
projects.push({
|
|
316
|
+
id: p.id,
|
|
317
|
+
name: typeof p.name === 'string' ? p.name : p.id,
|
|
318
|
+
...(typeof p.slug === 'string' && { slug: p.slug }),
|
|
319
|
+
...(typeof p.orgId === 'string' && { orgId: p.orgId }),
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
return { kind: 'ok', projects };
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Every project of the tenant whose slug is `opts.slug`, from
|
|
326
|
+
* `GET /v1/projects` (it has no slug filter).
|
|
327
|
+
*/
|
|
328
|
+
export async function findProjectsReal(opts) {
|
|
329
|
+
const listed = await listProjectsReal(opts);
|
|
330
|
+
if (listed.kind === 'error')
|
|
331
|
+
return listed;
|
|
332
|
+
return {
|
|
333
|
+
kind: 'ok',
|
|
334
|
+
projects: listed.projects
|
|
335
|
+
.filter((p) => p.slug === opts.slug)
|
|
336
|
+
.map(({ id, name, orgId }) => ({ id, name, ...(orgId !== undefined && { orgId }) })),
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
/** Every environment order the token can read a project in (`GET /v1/environment-orders`, every page). */
|
|
340
|
+
export async function listEnvironmentOrdersReal(opts) {
|
|
341
|
+
const listed = await listAllReal(opts, '/v1/environment-orders');
|
|
342
|
+
if (listed.kind === 'error')
|
|
343
|
+
return listed;
|
|
344
|
+
const orders = [];
|
|
345
|
+
for (const o of listed.rows) {
|
|
346
|
+
if (!Array.isArray(o?.entries))
|
|
347
|
+
continue;
|
|
348
|
+
const entries = [];
|
|
349
|
+
for (const e of o.entries) {
|
|
350
|
+
if (!Number.isSafeInteger(e?.position))
|
|
351
|
+
continue;
|
|
352
|
+
entries.push({
|
|
353
|
+
position: e.position,
|
|
354
|
+
...(typeof e.projectId === 'string' && { projectId: e.projectId }),
|
|
244
355
|
});
|
|
245
356
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
let page;
|
|
250
|
-
try {
|
|
251
|
-
page = (await res.json());
|
|
252
|
-
}
|
|
253
|
-
catch {
|
|
254
|
-
return {
|
|
255
|
-
kind: 'error',
|
|
256
|
-
message: `GET ${base} returned HTTP ${res.status} with a body that isn't JSON`,
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
if (!res.ok || !Array.isArray(page.data)) {
|
|
260
|
-
const code = page.error?.code;
|
|
261
|
-
return {
|
|
262
|
-
kind: 'error',
|
|
263
|
-
message: `GET ${base} answered HTTP ${res.status}${typeof code === 'string' ? ` (${code})` : ''}`,
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
for (const p of page.data) {
|
|
267
|
-
if (p.slug === opts.slug && typeof p.id === 'string') {
|
|
268
|
-
found.push({
|
|
269
|
-
id: p.id,
|
|
270
|
-
name: typeof p.name === 'string' ? p.name : p.id,
|
|
271
|
-
...(typeof p.orgId === 'string' && { orgId: p.orgId }),
|
|
272
|
-
});
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
cursor =
|
|
276
|
-
page.hasMore === true && typeof page.nextCursor === 'string' ? page.nextCursor : undefined;
|
|
277
|
-
} while (cursor !== undefined);
|
|
278
|
-
return { kind: 'ok', projects: found };
|
|
357
|
+
orders.push({ entries });
|
|
358
|
+
}
|
|
359
|
+
return { kind: 'ok', orders };
|
|
279
360
|
}
|
|
280
361
|
/** `GET /v1/deployments/:id`: the deployment as the runtime has it now. */
|
|
281
362
|
export async function getDeploymentReal(opts) {
|
|
@@ -309,4 +390,40 @@ export async function getDeploymentReal(opts) {
|
|
|
309
390
|
}
|
|
310
391
|
return { kind: 'ok', record: body };
|
|
311
392
|
}
|
|
393
|
+
/** `GET /v1/deployments/:id/pack-env`: where each name the deployment's pack declares is set. */
|
|
394
|
+
export async function getPackEnvReal(opts) {
|
|
395
|
+
const url = `${opts.endpoint.replace(/\/+$/, '')}/v1/deployments/${encodeURIComponent(opts.deploymentId)}/pack-env`;
|
|
396
|
+
let res;
|
|
397
|
+
try {
|
|
398
|
+
res = await opts.fetchImpl(url, {
|
|
399
|
+
headers: { Authorization: `Bearer ${opts.token}` },
|
|
400
|
+
...(opts.signal !== undefined && { signal: opts.signal }),
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
catch (err) {
|
|
404
|
+
return { kind: 'error', message: `GET ${url} failed: ${err.message}` };
|
|
405
|
+
}
|
|
406
|
+
// 501: its pack services take their env from how they're run; 404: a server before the route.
|
|
407
|
+
if (res.status === 501 || res.status === 404)
|
|
408
|
+
return { kind: 'not-served' };
|
|
409
|
+
let body;
|
|
410
|
+
try {
|
|
411
|
+
body = await res.json();
|
|
412
|
+
}
|
|
413
|
+
catch {
|
|
414
|
+
return {
|
|
415
|
+
kind: 'error',
|
|
416
|
+
message: `GET ${url} answered HTTP ${res.status} with a body that isn't JSON`,
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
|
+
const packEnv = body;
|
|
420
|
+
if (!res.ok || typeof packEnv?.envName !== 'string' || !Array.isArray(packEnv.data)) {
|
|
421
|
+
const code = body?.error?.code;
|
|
422
|
+
return {
|
|
423
|
+
kind: 'error',
|
|
424
|
+
message: `GET ${url} answered HTTP ${res.status}${typeof code === 'string' ? ` (${code})` : ''}`,
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
return { kind: 'ok', packEnv: packEnv };
|
|
428
|
+
}
|
|
312
429
|
//# sourceMappingURL=post.js.map
|
package/dist/deploy/post.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../src/deploy/post.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../src/deploy/post.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { EnvironmentOrderRow, ProjectRow } from './runners.js';
|
|
2
|
+
/** One environment a build goes through on its way to the refused one. */
|
|
3
|
+
export type PromotionStop =
|
|
4
|
+
/** An environment of the pack config. */
|
|
5
|
+
{
|
|
6
|
+
readonly kind: 'env';
|
|
7
|
+
readonly name: string;
|
|
8
|
+
}
|
|
9
|
+
/** A project no environment of the pack config names. */
|
|
10
|
+
| {
|
|
11
|
+
readonly kind: 'project';
|
|
12
|
+
readonly name: string;
|
|
13
|
+
}
|
|
14
|
+
/** A project the caller can't read. */
|
|
15
|
+
| {
|
|
16
|
+
readonly kind: 'hidden';
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* The environments from the order's first (`firstProjectId`) to the one at
|
|
20
|
+
* `position`, the refused one, each named from the pack config where it
|
|
21
|
+
* names one. `undefined` when no listed order starts at `firstProjectId`, or
|
|
22
|
+
* that order has no environment at `position`.
|
|
23
|
+
*/
|
|
24
|
+
export declare function promotionPath(input: {
|
|
25
|
+
readonly firstProjectId: string;
|
|
26
|
+
readonly position: number;
|
|
27
|
+
readonly orders: readonly EnvironmentOrderRow[];
|
|
28
|
+
readonly projects: readonly ProjectRow[];
|
|
29
|
+
readonly environments: readonly {
|
|
30
|
+
readonly name: string;
|
|
31
|
+
readonly ref: string;
|
|
32
|
+
}[];
|
|
33
|
+
}): readonly PromotionStop[] | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* The hint for that refusal: where the build goes instead, and each
|
|
36
|
+
* `kindgi promote` from there, one line each so they copy whole. Without a
|
|
37
|
+
* path (the first environment is one the caller can't read, or the reads
|
|
38
|
+
* failed), the rule and where to look the order up.
|
|
39
|
+
*/
|
|
40
|
+
export declare function promotionHint(path: readonly PromotionStop[] | undefined): {
|
|
41
|
+
readonly text: string;
|
|
42
|
+
readonly commands: readonly string[];
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=promotion-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promotion-path.d.ts","sourceRoot":"","sources":["../../src/deploy/promotion-path.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEpE,0EAA0E;AAC1E,MAAM,MAAM,aAAa;AACvB,yCAAyC;AACvC;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACjD,yDAAyD;GACvD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACrD,uCAAuC;GACrC;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEhC;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACnF,GAAG,SAAS,aAAa,EAAE,GAAG,SAAS,CAavC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,GAAG;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,CAkCA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* `kindgi deploy` into a later environment of an environment order is
|
|
5
|
+
* refused (`409 environment-takes-promotions`): a build enters the order at
|
|
6
|
+
* its first environment and moves on one environment at a time, by
|
|
7
|
+
* promotion. This names each environment on the way, so the hint can print
|
|
8
|
+
* each `kindgi promote` to run.
|
|
9
|
+
*/
|
|
10
|
+
import { envNamesByProject } from '../env-projects.js';
|
|
11
|
+
/**
|
|
12
|
+
* The environments from the order's first (`firstProjectId`) to the one at
|
|
13
|
+
* `position`, the refused one, each named from the pack config where it
|
|
14
|
+
* names one. `undefined` when no listed order starts at `firstProjectId`, or
|
|
15
|
+
* that order has no environment at `position`.
|
|
16
|
+
*/
|
|
17
|
+
export function promotionPath(input) {
|
|
18
|
+
const order = input.orders
|
|
19
|
+
.map((o) => [...o.entries].sort((a, b) => a.position - b.position))
|
|
20
|
+
.find((entries) => entries[0]?.projectId === input.firstProjectId);
|
|
21
|
+
if (order === undefined || order.length <= input.position)
|
|
22
|
+
return undefined;
|
|
23
|
+
const envNames = envNamesByProject(input.environments, input.projects);
|
|
24
|
+
const projects = new Map(input.projects.map((p) => [p.id, p]));
|
|
25
|
+
return order.slice(0, input.position + 1).map((entry) => {
|
|
26
|
+
if (entry.projectId === undefined)
|
|
27
|
+
return { kind: 'hidden' };
|
|
28
|
+
const env = envNames.get(entry.projectId);
|
|
29
|
+
if (env !== undefined)
|
|
30
|
+
return { kind: 'env', name: env };
|
|
31
|
+
return { kind: 'project', name: projects.get(entry.projectId)?.name ?? entry.projectId };
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The hint for that refusal: where the build goes instead, and each
|
|
36
|
+
* `kindgi promote` from there, one line each so they copy whole. Without a
|
|
37
|
+
* path (the first environment is one the caller can't read, or the reads
|
|
38
|
+
* failed), the rule and where to look the order up.
|
|
39
|
+
*/
|
|
40
|
+
export function promotionHint(path) {
|
|
41
|
+
const first = path?.[0];
|
|
42
|
+
const target = path?.[path.length - 1];
|
|
43
|
+
if (path === undefined || first === undefined || target === undefined || path.length < 2) {
|
|
44
|
+
return {
|
|
45
|
+
text: 'A build enters an environment order at its first environment and moves on one ' +
|
|
46
|
+
'environment at a time, by promotion. Deploy into the first environment, then ' +
|
|
47
|
+
'promote the build from there, one `kindgi promote --from=<environment> --to=<the next one>` ' +
|
|
48
|
+
'at a time. `kindgi environments list` shows the order.',
|
|
49
|
+
commands: [],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const commands = [];
|
|
53
|
+
for (let i = 1; i < path.length; i += 1) {
|
|
54
|
+
commands.push(`kindgi promote --from=${flagValue(path[i - 1])} --to=${flagValue(path[i])}`);
|
|
55
|
+
}
|
|
56
|
+
const unnamed = path.flatMap((s) => (s.kind === 'project' ? [s.name] : []));
|
|
57
|
+
const sentences = [
|
|
58
|
+
`Builds reach ${prose(target)} only by promotion from the environment before it.`,
|
|
59
|
+
`A build enters its environment order at ${prose(first)}, the first environment: deploy there, then promote the build one environment at a time.`,
|
|
60
|
+
];
|
|
61
|
+
if (unnamed.length > 0) {
|
|
62
|
+
sentences.push(`Your pack config names no environment for ${unnamed.length === 1 ? 'project' : 'projects'} ${unnamed.join(', ')}: add one, with its \`project\`, to promote through it.`);
|
|
63
|
+
}
|
|
64
|
+
if (path.some((s) => s.kind === 'hidden')) {
|
|
65
|
+
sentences.push('`kindgi environments list` shows the order, as far as you can read it.');
|
|
66
|
+
}
|
|
67
|
+
const text = sentences.join(' ');
|
|
68
|
+
return { text, commands };
|
|
69
|
+
}
|
|
70
|
+
/** A stop in the hint's sentences. */
|
|
71
|
+
function prose(stop) {
|
|
72
|
+
if (stop.kind === 'env')
|
|
73
|
+
return stop.name;
|
|
74
|
+
if (stop.kind === 'project')
|
|
75
|
+
return `project ${stop.name}`;
|
|
76
|
+
return "a project you can't read";
|
|
77
|
+
}
|
|
78
|
+
/** A stop as `kindgi promote`'s `--from` / `--to`: an environment's name, else a placeholder. */
|
|
79
|
+
function flagValue(stop) {
|
|
80
|
+
if (stop.kind === 'env')
|
|
81
|
+
return stop.name;
|
|
82
|
+
if (stop.kind === 'project')
|
|
83
|
+
return `<the environment for project ${stop.name}>`;
|
|
84
|
+
return '<the next environment>';
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=promotion-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promotion-path.js","sourceRoot":"","sources":["../../src/deploy/promotion-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* `commands/deploy.ts` so tests can pin the exact text without
|
|
5
5
|
* exercising the full runCli path.
|
|
6
6
|
*/
|
|
7
|
+
import { type PromotionStop } from './promotion-path.js';
|
|
7
8
|
import type { DeployedVersionRecord, DeploymentRecord, PostDeploymentResult } from './runners.js';
|
|
8
9
|
export interface RenderedResponse {
|
|
9
10
|
/** Lines to append to the stderr banner. */
|
|
@@ -32,6 +33,8 @@ export declare function renderResponse(result: PostDeploymentResult, ctx: {
|
|
|
32
33
|
readonly signerKeyId: string;
|
|
33
34
|
readonly envelopePath: string;
|
|
34
35
|
readonly idempotencyKey: string;
|
|
36
|
+
/** On a `409 environment-takes-promotions`: each environment on the way there, when they could be read. */
|
|
37
|
+
readonly promotionPath?: readonly PromotionStop[] | undefined;
|
|
35
38
|
}): RenderedResponse;
|
|
36
39
|
/**
|
|
37
40
|
* One line per agent or flow registered under another version than its
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/deploy/response.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/deploy/response.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AA4FlG,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,EAC5B,GAAG,EAAE;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,2GAA2G;IAC3G,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;CAC/D,GACA,gBAAgB,CA8FlB;AA+BD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,GAAG,MAAM,EACtB,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACxC,MAAM,EAAE,CAcV;AA6BD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,GAAG,MAAM,CAOxE"}
|
package/dist/deploy/response.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* Deploy response formatters — turn a `PostDeploymentResult` into the
|
|
5
|
+
* banner lines + JSON summary the command emits. Split out from
|
|
6
|
+
* `commands/deploy.ts` so tests can pin the exact text without
|
|
7
|
+
* exercising the full runCli path.
|
|
8
|
+
*/
|
|
9
|
+
import { promotionHint } from './promotion-path.js';
|
|
3
10
|
/**
|
|
4
11
|
* Human-friendly hint text keyed by server wire-error code. Each hint
|
|
5
12
|
* points the developer at the most likely remedy. Unknown codes fall
|
|
@@ -26,6 +33,40 @@ const WIRE_ERROR_HINTS = {
|
|
|
26
33
|
'guardrail in the pack travels in it with its schemas and instructions: make the largest ' +
|
|
27
34
|
'schemas smaller, or split the pack into two.',
|
|
28
35
|
};
|
|
36
|
+
/** `image-unverifiable`'s hint by its `details.cause`, when the server names one. */
|
|
37
|
+
const IMAGE_CAUSE_HINTS = {
|
|
38
|
+
'image-registry-unreachable': "The server couldn't reach the image's registry. Check that the registry is up " +
|
|
39
|
+
'and that the runtime can reach it, then deploy again.',
|
|
40
|
+
'image-registry-unauthorized': "The image's registry refused the runtime's credentials. Give the runtime pull " +
|
|
41
|
+
"access to the image's repository, then deploy again.",
|
|
42
|
+
'image-unreadable': "A layer of the image isn't an archive the server can read: not a tar, or compressed " +
|
|
43
|
+
'twice. Build the image again with `kindgi build`, push it, and deploy the new digest.',
|
|
44
|
+
'image-limit-exceeded': "The image is past one of the server's bounds on reading an image; the message names " +
|
|
45
|
+
'it. The same image is refused again. An image `kindgi build` made keeps ' +
|
|
46
|
+
'/app/index.json in its top layer, the only layer read: build with it, or make the ' +
|
|
47
|
+
'image smaller.',
|
|
48
|
+
};
|
|
49
|
+
/** `image-limit-exceeded`'s hint by its `details.limit`, where the cause's doesn't fit. */
|
|
50
|
+
const IMAGE_LIMIT_HINTS = {
|
|
51
|
+
file: "The pack's index, /app/index.json, is past the size the server reads. Every tool, " +
|
|
52
|
+
'agent, flow and guardrail in the pack is in it with its schemas: make the largest ' +
|
|
53
|
+
'schemas smaller, or split the pack into two.',
|
|
54
|
+
'tenant-unpack-hour': "This tenant's image reads unpacked as much as the server allows in an hour. " +
|
|
55
|
+
'Deploy again after the wait the message names; an image `kindgi build` made unpacks ' +
|
|
56
|
+
'only its small top layer.',
|
|
57
|
+
};
|
|
58
|
+
/** A table's own entry: a key like `constructor` isn't one. */
|
|
59
|
+
const own = (table, key) => key !== undefined && Object.hasOwn(table, key) ? table[key] : undefined;
|
|
60
|
+
/** The hint for a refusal: by its code, or for `image-unverifiable` by its cause. */
|
|
61
|
+
function hintFor(error) {
|
|
62
|
+
if (error.code === 'image-unverifiable') {
|
|
63
|
+
const byLimit = error.cause === 'image-limit-exceeded' ? own(IMAGE_LIMIT_HINTS, error.limit) : undefined;
|
|
64
|
+
const byCause = byLimit ?? own(IMAGE_CAUSE_HINTS, error.cause);
|
|
65
|
+
if (byCause !== undefined)
|
|
66
|
+
return byCause;
|
|
67
|
+
}
|
|
68
|
+
return own(WIRE_ERROR_HINTS, error.code);
|
|
69
|
+
}
|
|
29
70
|
/**
|
|
30
71
|
* The command a hint names, on a line of its own so it copies whole.
|
|
31
72
|
* `{signerKeyId}` and `{endpoint}` are filled in from the deploy.
|
|
@@ -80,18 +121,9 @@ export function renderResponse(result, ctx) {
|
|
|
80
121
|
banner.push(` ✗ POST /v1/deployments → HTTP ${result.status}`);
|
|
81
122
|
banner.push(` code: ${result.error.code}`);
|
|
82
123
|
banner.push(` message: ${result.error.message}`);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
banner.push('');
|
|
87
|
-
banner.push(' Hint:');
|
|
88
|
-
for (const line of wrapForBanner(fill(hint), 74, ' ')) {
|
|
89
|
-
banner.push(line);
|
|
90
|
-
}
|
|
91
|
-
const command = WIRE_ERROR_COMMANDS[result.error.code];
|
|
92
|
-
if (command !== undefined)
|
|
93
|
-
banner.push(` ${fill(command)}`);
|
|
94
|
-
}
|
|
124
|
+
if (result.error.cause !== undefined)
|
|
125
|
+
banner.push(` cause: ${result.error.cause}`);
|
|
126
|
+
banner.push(...hintLines(result.error, ctx));
|
|
95
127
|
if (result.error.details !== undefined && result.error.details.length > 0) {
|
|
96
128
|
banner.push('');
|
|
97
129
|
banner.push(' Details:');
|
|
@@ -124,6 +156,28 @@ export function renderResponse(result, ctx) {
|
|
|
124
156
|
banner.push('');
|
|
125
157
|
return { banner, summary: null, exitCode: 1 };
|
|
126
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* The hint for a refusal (by its code, or for `image-unverifiable` by its
|
|
161
|
+
* cause), then the commands it names, each on a line of its own; none for a
|
|
162
|
+
* refusal without one.
|
|
163
|
+
*/
|
|
164
|
+
function hintLines(error, ctx) {
|
|
165
|
+
const fill = (text) => text.replaceAll('{signerKeyId}', ctx.signerKeyId).replaceAll('{endpoint}', ctx.endpoint);
|
|
166
|
+
let text;
|
|
167
|
+
let commands;
|
|
168
|
+
if (error.code === 'environment-takes-promotions') {
|
|
169
|
+
({ text, commands } = promotionHint(ctx.promotionPath));
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
const hint = hintFor(error);
|
|
173
|
+
if (hint === undefined)
|
|
174
|
+
return [];
|
|
175
|
+
const command = WIRE_ERROR_COMMANDS[error.code];
|
|
176
|
+
text = fill(hint);
|
|
177
|
+
commands = command === undefined ? [] : [fill(command)];
|
|
178
|
+
}
|
|
179
|
+
return ['', ' Hint:', ...wrapForBanner(text, 74, ' '), ...commands.map((c) => ` ${c}`)];
|
|
180
|
+
}
|
|
127
181
|
/**
|
|
128
182
|
* One line per agent or flow registered under another version than its
|
|
129
183
|
* definition names, saying which version runs, why, and how to make the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/deploy/response.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/deploy/response.ts"],"names":[],"mappings":"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"}
|