@kindgi/cli 0.1.8 → 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.
Files changed (267) hide show
  1. package/README.md +59 -2
  2. package/dist/api-address.d.ts +104 -12
  3. package/dist/api-address.d.ts.map +1 -1
  4. package/dist/api-address.js +169 -30
  5. package/dist/api-address.js.map +1 -1
  6. package/dist/cli.js +12 -2
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/approvals.d.ts.map +1 -1
  9. package/dist/commands/approvals.js +15 -3
  10. package/dist/commands/approvals.js.map +1 -1
  11. package/dist/commands/auth.d.ts.map +1 -1
  12. package/dist/commands/auth.js +27 -0
  13. package/dist/commands/auth.js.map +1 -1
  14. package/dist/commands/build.d.ts +18 -0
  15. package/dist/commands/build.d.ts.map +1 -1
  16. package/dist/commands/build.js +118 -13
  17. package/dist/commands/build.js.map +1 -1
  18. package/dist/commands/conversations.d.ts.map +1 -1
  19. package/dist/commands/conversations.js +13 -3
  20. package/dist/commands/conversations.js.map +1 -1
  21. package/dist/commands/deploy.d.ts.map +1 -1
  22. package/dist/commands/deploy.js +235 -53
  23. package/dist/commands/deploy.js.map +1 -1
  24. package/dist/commands/deployments.d.ts +3 -0
  25. package/dist/commands/deployments.d.ts.map +1 -0
  26. package/dist/commands/deployments.js +196 -0
  27. package/dist/commands/deployments.js.map +1 -0
  28. package/dist/commands/doctor.d.ts +1 -5
  29. package/dist/commands/doctor.d.ts.map +1 -1
  30. package/dist/commands/doctor.js +42 -22
  31. package/dist/commands/doctor.js.map +1 -1
  32. package/dist/commands/egress.d.ts +9 -0
  33. package/dist/commands/egress.d.ts.map +1 -0
  34. package/dist/commands/egress.js +40 -0
  35. package/dist/commands/egress.js.map +1 -0
  36. package/dist/commands/env-scoped.d.ts +5 -0
  37. package/dist/commands/env-scoped.d.ts.map +1 -1
  38. package/dist/commands/env-scoped.js +64 -19
  39. package/dist/commands/env-scoped.js.map +1 -1
  40. package/dist/commands/env.d.ts.map +1 -1
  41. package/dist/commands/env.js +91 -30
  42. package/dist/commands/env.js.map +1 -1
  43. package/dist/commands/environments.d.ts +6 -0
  44. package/dist/commands/environments.d.ts.map +1 -0
  45. package/dist/commands/environments.js +166 -0
  46. package/dist/commands/environments.js.map +1 -0
  47. package/dist/commands/exports.d.ts.map +1 -1
  48. package/dist/commands/exports.js +118 -3
  49. package/dist/commands/exports.js.map +1 -1
  50. package/dist/commands/feedback.d.ts +1 -2
  51. package/dist/commands/feedback.d.ts.map +1 -1
  52. package/dist/commands/feedback.js +55 -24
  53. package/dist/commands/feedback.js.map +1 -1
  54. package/dist/commands/helpers.d.ts +6 -0
  55. package/dist/commands/helpers.d.ts.map +1 -1
  56. package/dist/commands/helpers.js +8 -0
  57. package/dist/commands/helpers.js.map +1 -1
  58. package/dist/commands/index.d.ts.map +1 -1
  59. package/dist/commands/index.js +12 -0
  60. package/dist/commands/index.js.map +1 -1
  61. package/dist/commands/license.d.ts +3 -0
  62. package/dist/commands/license.d.ts.map +1 -1
  63. package/dist/commands/license.js +1 -1
  64. package/dist/commands/license.js.map +1 -1
  65. package/dist/commands/people.d.ts.map +1 -1
  66. package/dist/commands/people.js +105 -10
  67. package/dist/commands/people.js.map +1 -1
  68. package/dist/commands/projects.d.ts.map +1 -1
  69. package/dist/commands/projects.js +133 -11
  70. package/dist/commands/projects.js.map +1 -1
  71. package/dist/commands/promote.d.ts +38 -0
  72. package/dist/commands/promote.d.ts.map +1 -0
  73. package/dist/commands/promote.js +371 -0
  74. package/dist/commands/promote.js.map +1 -0
  75. package/dist/commands/proposals.d.ts.map +1 -1
  76. package/dist/commands/proposals.js +2 -1
  77. package/dist/commands/proposals.js.map +1 -1
  78. package/dist/commands/providers.d.ts.map +1 -1
  79. package/dist/commands/providers.js +29 -5
  80. package/dist/commands/providers.js.map +1 -1
  81. package/dist/commands/schedules.d.ts.map +1 -1
  82. package/dist/commands/schedules.js +30 -2
  83. package/dist/commands/schedules.js.map +1 -1
  84. package/dist/commands/secrets.d.ts.map +1 -1
  85. package/dist/commands/secrets.js +65 -40
  86. package/dist/commands/secrets.js.map +1 -1
  87. package/dist/commands/sign-in.d.ts +3 -0
  88. package/dist/commands/sign-in.d.ts.map +1 -0
  89. package/dist/commands/sign-in.js +61 -0
  90. package/dist/commands/sign-in.js.map +1 -0
  91. package/dist/commands/sites.d.ts +3 -0
  92. package/dist/commands/sites.d.ts.map +1 -0
  93. package/dist/commands/sites.js +244 -0
  94. package/dist/commands/sites.js.map +1 -0
  95. package/dist/commands/tools.d.ts.map +1 -1
  96. package/dist/commands/tools.js +2 -2
  97. package/dist/commands/tools.js.map +1 -1
  98. package/dist/commands/types.d.ts +11 -0
  99. package/dist/commands/types.d.ts.map +1 -1
  100. package/dist/commands/webhooks.d.ts.map +1 -1
  101. package/dist/commands/webhooks.js +38 -2
  102. package/dist/commands/webhooks.js.map +1 -1
  103. package/dist/config.d.ts +13 -0
  104. package/dist/config.d.ts.map +1 -1
  105. package/dist/config.js +20 -7
  106. package/dist/config.js.map +1 -1
  107. package/dist/context.d.ts +38 -2
  108. package/dist/context.d.ts.map +1 -1
  109. package/dist/context.js +12 -1
  110. package/dist/context.js.map +1 -1
  111. package/dist/deploy/defaults.d.ts.map +1 -1
  112. package/dist/deploy/defaults.js +7 -1
  113. package/dist/deploy/defaults.js.map +1 -1
  114. package/dist/deploy/pack-service-text.d.ts +29 -0
  115. package/dist/deploy/pack-service-text.d.ts.map +1 -0
  116. package/dist/deploy/pack-service-text.js +72 -0
  117. package/dist/deploy/pack-service-text.js.map +1 -0
  118. package/dist/deploy/post.d.ts +17 -4
  119. package/dist/deploy/post.d.ts.map +1 -1
  120. package/dist/deploy/post.js +177 -60
  121. package/dist/deploy/post.js.map +1 -1
  122. package/dist/deploy/promotion-path.d.ts +44 -0
  123. package/dist/deploy/promotion-path.d.ts.map +1 -0
  124. package/dist/deploy/promotion-path.js +86 -0
  125. package/dist/deploy/promotion-path.js.map +1 -0
  126. package/dist/deploy/response.d.ts +3 -0
  127. package/dist/deploy/response.d.ts.map +1 -1
  128. package/dist/deploy/response.js +66 -12
  129. package/dist/deploy/response.js.map +1 -1
  130. package/dist/deploy/runners.d.ts +99 -5
  131. package/dist/deploy/runners.d.ts.map +1 -1
  132. package/dist/dev/java-builder.d.ts.map +1 -1
  133. package/dist/dev/java-builder.js +19 -3
  134. package/dist/dev/java-builder.js.map +1 -1
  135. package/dist/dev/python-builder.d.ts.map +1 -1
  136. package/dist/dev/python-builder.js +18 -3
  137. package/dist/dev/python-builder.js.map +1 -1
  138. package/dist/dev/runtime-container.d.ts +28 -3
  139. package/dist/dev/runtime-container.d.ts.map +1 -1
  140. package/dist/dev/runtime-container.js +103 -36
  141. package/dist/dev/runtime-container.js.map +1 -1
  142. package/dist/dev/runtime-image.d.ts +1 -1
  143. package/dist/dev/runtime-image.d.ts.map +1 -1
  144. package/dist/dev/runtime-image.js +1 -1
  145. package/dist/dev/runtime-image.js.map +1 -1
  146. package/dist/dev/scala-builder.d.ts.map +1 -1
  147. package/dist/dev/scala-builder.js +55 -21
  148. package/dist/dev/scala-builder.js.map +1 -1
  149. package/dist/dev/shared-watch.d.ts +30 -0
  150. package/dist/dev/shared-watch.d.ts.map +1 -1
  151. package/dist/dev/shared-watch.js +46 -1
  152. package/dist/dev/shared-watch.js.map +1 -1
  153. package/dist/env/pack-env-hint.d.ts +52 -0
  154. package/dist/env/pack-env-hint.d.ts.map +1 -0
  155. package/dist/env/pack-env-hint.js +57 -0
  156. package/dist/env/pack-env-hint.js.map +1 -0
  157. package/dist/env/pack-env-plan.d.ts +2 -0
  158. package/dist/env/pack-env-plan.d.ts.map +1 -1
  159. package/dist/env/pack-env-plan.js +2 -1
  160. package/dist/env/pack-env-plan.js.map +1 -1
  161. package/dist/env-projects.d.ts +23 -0
  162. package/dist/env-projects.d.ts.map +1 -0
  163. package/dist/env-projects.js +28 -0
  164. package/dist/env-projects.js.map +1 -0
  165. package/dist/exports/create.d.ts +71 -0
  166. package/dist/exports/create.d.ts.map +1 -0
  167. package/dist/exports/create.js +576 -0
  168. package/dist/exports/create.js.map +1 -0
  169. package/dist/exports/plan.d.ts +69 -0
  170. package/dist/exports/plan.d.ts.map +1 -0
  171. package/dist/exports/plan.js +496 -0
  172. package/dist/exports/plan.js.map +1 -0
  173. package/dist/exports/reader.d.ts +48 -0
  174. package/dist/exports/reader.d.ts.map +1 -0
  175. package/dist/exports/reader.js +181 -0
  176. package/dist/exports/reader.js.map +1 -0
  177. package/dist/feedback/entries.d.ts +53 -0
  178. package/dist/feedback/entries.d.ts.map +1 -0
  179. package/dist/feedback/entries.js +173 -0
  180. package/dist/feedback/entries.js.map +1 -0
  181. package/dist/feedback/intake.d.ts +37 -0
  182. package/dist/feedback/intake.d.ts.map +1 -0
  183. package/dist/feedback/intake.js +101 -0
  184. package/dist/feedback/intake.js.map +1 -0
  185. package/dist/feedback/protocol.d.ts +111 -0
  186. package/dist/feedback/protocol.d.ts.map +1 -0
  187. package/dist/feedback/protocol.js +143 -0
  188. package/dist/feedback/protocol.js.map +1 -0
  189. package/dist/feedback/redact.d.ts +34 -0
  190. package/dist/feedback/redact.d.ts.map +1 -0
  191. package/dist/feedback/redact.js +258 -0
  192. package/dist/feedback/redact.js.map +1 -0
  193. package/dist/feedback/report.d.ts +51 -0
  194. package/dist/feedback/report.d.ts.map +1 -0
  195. package/dist/feedback/report.js +122 -0
  196. package/dist/feedback/report.js.map +1 -0
  197. package/dist/feedback/run.d.ts +21 -0
  198. package/dist/feedback/run.d.ts.map +1 -0
  199. package/dist/feedback/run.js +578 -0
  200. package/dist/feedback/run.js.map +1 -0
  201. package/dist/feedback/store.d.ts +24 -0
  202. package/dist/feedback/store.d.ts.map +1 -0
  203. package/dist/feedback/store.js +117 -0
  204. package/dist/feedback/store.js.map +1 -0
  205. package/dist/main.d.ts +6 -0
  206. package/dist/main.d.ts.map +1 -1
  207. package/dist/main.js +86 -5
  208. package/dist/main.js.map +1 -1
  209. package/dist/node-version.d.ts +13 -0
  210. package/dist/node-version.d.ts.map +1 -0
  211. package/dist/node-version.js +37 -0
  212. package/dist/node-version.js.map +1 -0
  213. package/dist/parse.d.ts +8 -2
  214. package/dist/parse.d.ts.map +1 -1
  215. package/dist/parse.js +7 -2
  216. package/dist/parse.js.map +1 -1
  217. package/dist/project-ref.d.ts +44 -0
  218. package/dist/project-ref.d.ts.map +1 -0
  219. package/dist/project-ref.js +69 -0
  220. package/dist/project-ref.js.map +1 -0
  221. package/dist/sdk-skills/kindgi-authoring-agents/SKILL.md +15 -2
  222. package/dist/sdk-skills/kindgi-authoring-flows/SKILL.md +1 -1
  223. package/dist/sdk-skills/kindgi-authoring-guardrails/SKILL.md +44 -7
  224. package/dist/sdk-skills/kindgi-authoring-mcp-servers/SKILL.md +11 -2
  225. package/dist/sdk-skills/kindgi-authoring-providers/SKILL.md +60 -13
  226. package/dist/sdk-skills/kindgi-authoring-tools/SKILL.md +19 -2
  227. package/dist/sdk-skills/kindgi-framework-feedback/SKILL.md +82 -3
  228. package/dist/sdk-skills/kindgi-getting-started/SKILL.md +1 -1
  229. package/dist/sdk-skills/kindgi-java-authoring-agents/SKILL.md +17 -3
  230. package/dist/sdk-skills/kindgi-java-authoring-flows/SKILL.md +1 -1
  231. package/dist/sdk-skills/kindgi-java-authoring-guardrails/SKILL.md +43 -6
  232. package/dist/sdk-skills/kindgi-java-authoring-tools/SKILL.md +19 -2
  233. package/dist/sdk-skills/kindgi-java-getting-started/SKILL.md +1 -1
  234. package/dist/sdk-skills/kindgi-python-authoring-agents/SKILL.md +17 -3
  235. package/dist/sdk-skills/kindgi-python-authoring-flows/SKILL.md +1 -1
  236. package/dist/sdk-skills/kindgi-python-authoring-guardrails/SKILL.md +49 -13
  237. package/dist/sdk-skills/kindgi-python-authoring-tools/SKILL.md +27 -3
  238. package/dist/sdk-skills/kindgi-python-getting-started/SKILL.md +1 -1
  239. package/dist/sdk-skills/kindgi-scala-authoring-agents/SKILL.md +17 -3
  240. package/dist/sdk-skills/kindgi-scala-authoring-flows/SKILL.md +1 -1
  241. package/dist/sdk-skills/kindgi-scala-authoring-guardrails/SKILL.md +43 -6
  242. package/dist/sdk-skills/kindgi-scala-authoring-tools/SKILL.md +19 -2
  243. package/dist/sdk-skills/kindgi-scala-getting-started/SKILL.md +1 -1
  244. package/dist/sdk-skills/kindgi-using/SKILL.md +1 -1
  245. package/dist/slug.d.ts +18 -0
  246. package/dist/slug.d.ts.map +1 -0
  247. package/dist/slug.js +29 -0
  248. package/dist/slug.js.map +1 -0
  249. package/dist/templates/drupal/AGENTS.md +2 -0
  250. package/dist/templates/java/AGENTS.md +2 -0
  251. package/dist/templates/minimal/AGENTS.md +2 -0
  252. package/dist/templates/python/AGENTS.md +2 -0
  253. package/dist/templates/sample/AGENTS.md +2 -0
  254. package/dist/templates/scala/AGENTS.md +2 -0
  255. package/dist/templates/woocommerce/AGENTS.md +11 -4
  256. package/dist/templates/woocommerce/README.md.tmpl +47 -4
  257. package/dist/templates/woocommerce/agents/store-agent/index.test.ts.tmpl +13 -0
  258. package/dist/templates/woocommerce/agents/store-agent/index.ts.tmpl +11 -1
  259. package/dist/templates/woocommerce/tools/publish-product/index.ts.tmpl +7 -1
  260. package/dist/templates/woocommerce/tools/refund/index.ts.tmpl +7 -2
  261. package/dist/templates/woocommerce/tools/refund-large/index.ts.tmpl +8 -2
  262. package/dist/templates/woocommerce/tools/set-price/index.ts.tmpl +6 -0
  263. package/dist/value-target.d.ts +139 -0
  264. package/dist/value-target.d.ts.map +1 -0
  265. package/dist/value-target.js +231 -0
  266. package/dist/value-target.js.map +1 -0
  267. package/package.json +13 -13
@@ -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, ...details } }` via `toWireError` in
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 details = extractDetails(wire?.error);
133
- const limit = wire?.error?.details?.limit;
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
- * Every project of the tenant whose slug is `opts.slug`, read page by page
230
- * from `GET /v1/projects` (it has no slug filter). The token's own rights
231
- * decide what it lists.
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 findProjectsReal(opts) {
234
- const base = `${opts.endpoint.replace(/\/+$/, '')}/v1/projects`;
235
- const found = [];
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 url = `${base}?limit=${PROJECTS_PAGE_LIMIT}${cursor === undefined ? '' : `&cursor=${encodeURIComponent(cursor)}`}`;
239
- let res;
240
- try {
241
- res = await opts.fetchImpl(url, {
242
- headers: { Authorization: `Bearer ${opts.token}` },
243
- ...(opts.signal !== undefined && { signal: opts.signal }),
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
- catch (err) {
247
- return { kind: 'error', message: `GET ${base} failed: ${err.message}` };
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
@@ -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;AA2ClG,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;CACjC,GACA,gBAAgB,CAwGlB;AAED;;;;;;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"}
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"}
@@ -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
- const fill = (text) => text.replaceAll('{signerKeyId}', ctx.signerKeyId).replaceAll('{endpoint}', ctx.endpoint);
84
- const hint = WIRE_ERROR_HINTS[result.error.code];
85
- if (hint !== undefined) {
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":"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"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/deploy/response.ts"],"names":[],"mappings":"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"}