@kindgi/cli 0.1.3 → 0.1.4-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/README.md +11 -5
  2. package/dist/build/defaults.d.ts.map +1 -1
  3. package/dist/build/defaults.js +2 -10
  4. package/dist/build/defaults.js.map +1 -1
  5. package/dist/commands/agents.d.ts.map +1 -1
  6. package/dist/commands/agents.js +63 -2
  7. package/dist/commands/agents.js.map +1 -1
  8. package/dist/commands/blocks.d.ts +3 -0
  9. package/dist/commands/blocks.d.ts.map +1 -0
  10. package/dist/commands/blocks.js +186 -0
  11. package/dist/commands/blocks.js.map +1 -0
  12. package/dist/commands/build.d.ts.map +1 -1
  13. package/dist/commands/build.js +2 -1
  14. package/dist/commands/build.js.map +1 -1
  15. package/dist/commands/dev.d.ts.map +1 -1
  16. package/dist/commands/dev.js +62 -5
  17. package/dist/commands/dev.js.map +1 -1
  18. package/dist/commands/eval-runs.d.ts +20 -0
  19. package/dist/commands/eval-runs.d.ts.map +1 -0
  20. package/dist/commands/eval-runs.js +278 -0
  21. package/dist/commands/eval-runs.js.map +1 -0
  22. package/dist/commands/eval-suites.d.ts +3 -0
  23. package/dist/commands/eval-suites.d.ts.map +1 -0
  24. package/dist/commands/eval-suites.js +177 -0
  25. package/dist/commands/eval-suites.js.map +1 -0
  26. package/dist/commands/helpers.d.ts +2 -0
  27. package/dist/commands/helpers.d.ts.map +1 -1
  28. package/dist/commands/helpers.js +6 -0
  29. package/dist/commands/helpers.js.map +1 -1
  30. package/dist/commands/index.d.ts.map +1 -1
  31. package/dist/commands/index.js +12 -0
  32. package/dist/commands/index.js.map +1 -1
  33. package/dist/commands/init.d.ts.map +1 -1
  34. package/dist/commands/init.js +39 -1
  35. package/dist/commands/init.js.map +1 -1
  36. package/dist/commands/judge-classes.d.ts +3 -0
  37. package/dist/commands/judge-classes.d.ts.map +1 -0
  38. package/dist/commands/judge-classes.js +136 -0
  39. package/dist/commands/judge-classes.js.map +1 -0
  40. package/dist/commands/judgments.d.ts +3 -0
  41. package/dist/commands/judgments.d.ts.map +1 -0
  42. package/dist/commands/judgments.js +159 -0
  43. package/dist/commands/judgments.js.map +1 -0
  44. package/dist/commands/projects.d.ts +3 -0
  45. package/dist/commands/projects.d.ts.map +1 -0
  46. package/dist/commands/projects.js +53 -0
  47. package/dist/commands/projects.js.map +1 -0
  48. package/dist/commands/runs.d.ts.map +1 -1
  49. package/dist/commands/runs.js +17 -1
  50. package/dist/commands/runs.js.map +1 -1
  51. package/dist/context.d.ts +9 -0
  52. package/dist/context.d.ts.map +1 -1
  53. package/dist/context.js +1 -0
  54. package/dist/context.js.map +1 -1
  55. package/dist/deploy/response.d.ts +9 -1
  56. package/dist/deploy/response.d.ts.map +1 -1
  57. package/dist/deploy/response.js +46 -0
  58. package/dist/deploy/response.js.map +1 -1
  59. package/dist/deploy/runners.d.ts +19 -0
  60. package/dist/deploy/runners.d.ts.map +1 -1
  61. package/dist/dev/defaults.d.ts +9 -3
  62. package/dist/dev/defaults.d.ts.map +1 -1
  63. package/dist/dev/defaults.js +34 -6
  64. package/dist/dev/defaults.js.map +1 -1
  65. package/dist/dev/port.d.ts +27 -0
  66. package/dist/dev/port.d.ts.map +1 -0
  67. package/dist/dev/port.js +67 -0
  68. package/dist/dev/port.js.map +1 -0
  69. package/dist/dev/providers.d.ts +37 -7
  70. package/dist/dev/providers.d.ts.map +1 -1
  71. package/dist/dev/providers.js +68 -18
  72. package/dist/dev/providers.js.map +1 -1
  73. package/dist/dev/python-builder.d.ts +6 -0
  74. package/dist/dev/python-builder.d.ts.map +1 -1
  75. package/dist/dev/python-builder.js +30 -5
  76. package/dist/dev/python-builder.js.map +1 -1
  77. package/dist/dev/runners.d.ts +14 -0
  78. package/dist/dev/runners.d.ts.map +1 -1
  79. package/dist/dev/runtime-container.d.ts +21 -0
  80. package/dist/dev/runtime-container.d.ts.map +1 -1
  81. package/dist/dev/runtime-container.js +142 -15
  82. package/dist/dev/runtime-container.js.map +1 -1
  83. package/dist/dev/runtime-env.d.ts +6 -0
  84. package/dist/dev/runtime-env.d.ts.map +1 -1
  85. package/dist/dev/runtime-env.js +1 -0
  86. package/dist/dev/runtime-env.js.map +1 -1
  87. package/dist/dev/runtime-image.d.ts +1 -1
  88. package/dist/dev/runtime-image.d.ts.map +1 -1
  89. package/dist/dev/runtime-image.js +1 -1
  90. package/dist/dev/runtime-image.js.map +1 -1
  91. package/dist/dev/scan-backstop.d.ts +38 -0
  92. package/dist/dev/scan-backstop.d.ts.map +1 -0
  93. package/dist/dev/scan-backstop.js +104 -0
  94. package/dist/dev/scan-backstop.js.map +1 -0
  95. package/dist/errors.d.ts.map +1 -1
  96. package/dist/errors.js +12 -1
  97. package/dist/errors.js.map +1 -1
  98. package/dist/init/dependency-specs.d.ts +5 -0
  99. package/dist/init/dependency-specs.d.ts.map +1 -1
  100. package/dist/init/dependency-specs.js +16 -4
  101. package/dist/init/dependency-specs.js.map +1 -1
  102. package/dist/main.d.ts +2 -0
  103. package/dist/main.d.ts.map +1 -1
  104. package/dist/main.js +1 -0
  105. package/dist/main.js.map +1 -1
  106. package/dist/package-manager.d.ts +26 -0
  107. package/dist/package-manager.d.ts.map +1 -1
  108. package/dist/package-manager.js +66 -6
  109. package/dist/package-manager.js.map +1 -1
  110. package/dist/sdk-skills/kindgi-authoring-agents/SKILL.md +1 -1
  111. package/dist/sdk-skills/kindgi-authoring-flows/SKILL.md +1 -1
  112. package/dist/sdk-skills/kindgi-authoring-guardrails/SKILL.md +1 -1
  113. package/dist/sdk-skills/kindgi-authoring-mcp-servers/SKILL.md +1 -1
  114. package/dist/sdk-skills/kindgi-authoring-providers/SKILL.md +1 -1
  115. package/dist/sdk-skills/kindgi-authoring-tools/SKILL.md +1 -1
  116. package/dist/sdk-skills/kindgi-framework-feedback/SKILL.md +1 -1
  117. package/dist/sdk-skills/kindgi-getting-started/SKILL.md +1 -1
  118. package/dist/sdk-skills/kindgi-python-authoring-agents/SKILL.md +1 -1
  119. package/dist/sdk-skills/kindgi-python-authoring-flows/SKILL.md +1 -1
  120. package/dist/sdk-skills/kindgi-python-authoring-guardrails/SKILL.md +1 -1
  121. package/dist/sdk-skills/kindgi-python-authoring-tools/SKILL.md +1 -1
  122. package/dist/sdk-skills/kindgi-python-getting-started/SKILL.md +1 -1
  123. package/package.json +11 -10
@@ -84,7 +84,9 @@ export async function ensureRuntimeImage(image, onProgress) {
84
84
  }
85
85
  /** The `docker run` arguments for the runtime container. */
86
86
  export function runtimeRunArgs(name, options) {
87
- const args = ['run', '--detach', '--rm', '--name', name, '--env-file', options.envFile];
87
+ // No --rm: a container that stops while starting is read (its logs, how
88
+ // it exited) before kindgi dev removes it; `stop` removes it too.
89
+ const args = ['run', '--detach', '--name', name, '--env-file', options.envFile];
88
90
  args.push('--volume', `${options.packDir}:${RUNTIME_PACK_DIR}`);
89
91
  if (options.googleCredentials !== undefined) {
90
92
  args.push('--volume', `${options.googleCredentials}:${RUNTIME_GOOGLE_CREDENTIALS}:ro`);
@@ -108,6 +110,35 @@ export function runtimeRunArgs(name, options) {
108
110
  args.push(options.image, '--console-static-dir', '/app/console', '--dev-echo-provider');
109
111
  return args;
110
112
  }
113
+ /** The banner ended (its `Env:` line) without the pack line: an image older than the dev settings. */
114
+ function predatesDevSettings(lines) {
115
+ return (lines.some((l) => l.startsWith(' Env: ')) && !lines.some((l) => l.startsWith(PACK_DIR_BANNER)));
116
+ }
117
+ /** `kindgi dev` was stopped (Ctrl+C, SIGTERM) while it waited for the runtime. */
118
+ export class RuntimeStartStopped extends Error {
119
+ constructor() {
120
+ super('stopped while waiting for the Kindgi runtime');
121
+ this.name = 'RuntimeStartStopped';
122
+ }
123
+ }
124
+ /** Wait `ms`, or less when `signal` aborts first. */
125
+ export function pauseUnlessStopped(ms, signal) {
126
+ return new Promise((resolve) => {
127
+ if (signal?.aborted === true) {
128
+ resolve();
129
+ return;
130
+ }
131
+ const done = () => {
132
+ clearTimeout(timer);
133
+ signal?.removeEventListener('abort', done);
134
+ resolve();
135
+ };
136
+ const timer = setTimeout(done, ms);
137
+ signal?.addEventListener('abort', done, { once: true });
138
+ });
139
+ }
140
+ /** How the docker CLI starts its own error lines. */
141
+ const DOCKER_DAEMON_ERROR = 'Error response from daemon: ';
111
142
  /** The line every runtime that runs a `kindgi dev` pack prints. */
112
143
  const PACK_DIR_BANNER = ` Pack: ${RUNTIME_PACK_DIR} `;
113
144
  /**
@@ -127,7 +158,10 @@ export async function startRuntimeContainer(options, wait = {}) {
127
158
  });
128
159
  const onChunk = (chunk) => {
129
160
  for (const line of chunk.toString().split('\n')) {
130
- if (line === '')
161
+ // `docker logs` prints its own errors on the same stream as the
162
+ // container's stderr: a container that already exited gets "can not
163
+ // get logs from container which is dead…". They aren't the runtime's.
164
+ if (line === '' || line.startsWith(DOCKER_DAEMON_ERROR))
131
165
  continue;
132
166
  lines.push(line);
133
167
  options.onLog(line);
@@ -135,15 +169,30 @@ export async function startRuntimeContainer(options, wait = {}) {
135
169
  };
136
170
  logs.stdout?.on('data', onChunk);
137
171
  logs.stderr?.on('data', onChunk);
138
- const stop = async () => {
172
+ // Stop following: listeners off first, so the follower's last output
173
+ // (`docker logs --follow` can panic once its container is gone) is never
174
+ // taken for the runtime's.
175
+ const stopFollowing = () => {
176
+ logs?.stdout?.removeAllListeners('data');
177
+ logs?.stderr?.removeAllListeners('data');
139
178
  logs?.kill();
140
179
  logs = undefined;
180
+ };
181
+ const stop = async () => {
182
+ stopFollowing();
141
183
  await docker(['stop', '--time', '10', name]);
184
+ await docker(['rm', '--force', name]);
142
185
  };
143
186
  const baseUrl = `http://127.0.0.1:${options.hostPort}`;
144
187
  const doFetch = wait.fetch ?? fetch;
145
188
  const deadline = Date.now() + (wait.timeoutMs ?? 120_000);
146
189
  for (;;) {
190
+ if (options.signal?.aborted === true) {
191
+ // It hasn't served anything: removed at once, not stopped gracefully.
192
+ stopFollowing();
193
+ await docker(['rm', '--force', name]);
194
+ throw new RuntimeStartStopped();
195
+ }
147
196
  const healthy = await doFetch(`${baseUrl}/health`, { signal: AbortSignal.timeout(2_000) })
148
197
  .then((r) => r.ok)
149
198
  .catch(() => false);
@@ -152,22 +201,100 @@ export async function startRuntimeContainer(options, wait = {}) {
152
201
  break;
153
202
  const running = await docker(['inspect', '--format', '{{.State.Running}}', name]);
154
203
  if (running.code !== 0 || running.stdout.trim() !== 'true') {
155
- await stop();
156
- throw new Error(`the Kindgi runtime container stopped while starting:\n${lines.slice(-15).join('\n')}`);
204
+ stopFollowing();
205
+ throw await startupFailure(name, lines);
157
206
  }
158
- // The banner ends with the `Env:` line, after the pack line. Without
159
- // the pack line, the image predates the runtime's development settings.
160
- if (lines.some((l) => l.startsWith(' Env: ')) &&
161
- !lines.some((l) => l.startsWith(PACK_DIR_BANNER))) {
207
+ const hopeless = waitingWontHelp(options.image, lines, deadline);
208
+ if (hopeless !== undefined) {
162
209
  await stop();
163
- throw new Error(`${options.image} can't run a kindgi dev pack: it predates the runtime's development settings. Use a newer image (--runtime-image).`);
210
+ throw hopeless;
164
211
  }
165
- if (Date.now() > deadline) {
166
- await stop();
167
- throw new Error(`the Kindgi runtime didn't start serving in time:\n${lines.slice(-15).join('\n')}`);
168
- }
169
- await new Promise((r) => setTimeout(r, 250));
212
+ await pauseUnlessStopped(250, options.signal);
170
213
  }
171
214
  return { name, baseUrl, banner: lines.join('\n'), stop };
172
215
  }
216
+ /** Why waiting longer for a running container won't help, if it won't. */
217
+ function waitingWontHelp(image, lines, deadline) {
218
+ // The banner ends with the `Env:` line, after the pack line. Without
219
+ // the pack line, the image predates the runtime's development settings.
220
+ if (predatesDevSettings(lines)) {
221
+ return new Error(`${image} can't run a kindgi dev pack: it predates the runtime's development settings. Use a newer image (--runtime-image).`);
222
+ }
223
+ if (Date.now() > deadline) {
224
+ return new Error(`the Kindgi runtime didn't start serving in time:\n${lines.slice(-15).join('\n')}`);
225
+ }
226
+ return undefined;
227
+ }
228
+ /**
229
+ * The error for a container that stopped while starting, read whole now
230
+ * (one that exits at once can stop before `docker logs --follow`
231
+ * attaches), then removed.
232
+ */
233
+ async function startupFailure(name, followed) {
234
+ const stopped = await stoppedContainer(name);
235
+ await docker(['rm', '--force', name]);
236
+ return new Error(describeStartupStop(stopped.lines.length > 0 ? stopped.lines : followed, stopped.exit));
237
+ }
238
+ /**
239
+ * Why the runtime container stopped before it served: how it exited, and
240
+ * its last log lines. One that stopped before printing anything is said
241
+ * to have done so, never an empty reason.
242
+ */
243
+ export function describeStartupStop(lines, exit) {
244
+ const how = describeExit(exit);
245
+ if (lines.length === 0) {
246
+ return `the Kindgi runtime container stopped while starting, before it printed anything${how}.`;
247
+ }
248
+ return `the Kindgi runtime container stopped while starting${how}:\n${lines.slice(-15).join('\n')}`;
249
+ }
250
+ function describeExit(exit) {
251
+ if (exit.oomKilled === true)
252
+ return ` (exit code ${exit.code ?? 137}: killed, out of memory)`;
253
+ if (exit.code === undefined)
254
+ return '';
255
+ const meaning = exit.code === 137
256
+ ? ': killed'
257
+ : exit.code === 139
258
+ ? ': it crashed (a segmentation fault)'
259
+ : exit.code === 126 || exit.code === 127
260
+ ? ": its command couldn't run"
261
+ : '';
262
+ const error = exit.error !== undefined && exit.error !== '' ? `; docker: ${exit.error}` : '';
263
+ return ` (exit code ${exit.code}${meaning}${error})`;
264
+ }
265
+ /** A stopped container's whole log, in the order it was written, and how it exited. */
266
+ async function stoppedContainer(name) {
267
+ const logLines = await new Promise((resolve) => {
268
+ const out = [];
269
+ const child = spawn('docker', ['logs', name], { stdio: ['ignore', 'pipe', 'pipe'] });
270
+ const onChunk = (chunk) => {
271
+ for (const line of chunk.toString().split('\n')) {
272
+ if (line !== '' && !line.startsWith(DOCKER_DAEMON_ERROR))
273
+ out.push(line);
274
+ }
275
+ };
276
+ child.stdout?.on('data', onChunk);
277
+ child.stderr?.on('data', onChunk);
278
+ child.on('error', () => resolve(out));
279
+ child.on('close', () => resolve(out));
280
+ });
281
+ const state = await docker([
282
+ 'inspect',
283
+ '--format',
284
+ '{{.State.ExitCode}}|{{.State.OOMKilled}}|{{.State.Error}}',
285
+ name,
286
+ ]);
287
+ if (state.code !== 0)
288
+ return { lines: logLines, exit: {} };
289
+ const [code, oom, ...error] = state.stdout.trim().split('|');
290
+ const parsed = Number.parseInt(code ?? '', 10);
291
+ return {
292
+ lines: logLines,
293
+ exit: {
294
+ ...(!Number.isNaN(parsed) && { code: parsed }),
295
+ oomKilled: oom === 'true',
296
+ ...(error.join('|') !== '' && { error: error.join('|') }),
297
+ },
298
+ };
299
+ }
173
300
  //# sourceMappingURL=runtime-container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-container.js","sourceRoot":"","sources":["../../src/dev/runtime-container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-container.js","sourceRoot":"","sources":["../../src/dev/runtime-container.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,12 @@ export interface RuntimeEnvInput {
10
10
  readonly apiPort: number;
11
11
  /** `KINDGI_API_HOST`: bind loopback (Linux host networking, or a server on the host). */
12
12
  readonly apiHost?: string;
13
+ /**
14
+ * `KINDGI_PUBLIC_URL`: where the developer reaches the runtime
15
+ * (`http://127.0.0.1:<port>`), which its banner names. In a container
16
+ * that's the published port, not the one the runtime binds.
17
+ */
18
+ readonly publicUrl: string;
13
19
  /**
14
20
  * `KINDGI_DEV_HOST_ALIAS`: where loopback calls go when the runtime
15
21
  * can't see the host's loopback (Docker Desktop: `host.docker.internal`).
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-env.d.ts","sourceRoot":"","sources":["../../src/dev/runtime-env.ts"],"names":[],"mappings":"AAgBA,oEAAoE;AACpE,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,6EAA6E;AAC7E,eAAO,MAAM,0BAA0B,wCAAwC,CAAC;AAChF,eAAO,MAAM,wBAAwB,yCAAyC,CAAC;AAE/E,wCAAwC;AACxC,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,gGAAgG;IAChG,QAAQ,CAAC,WAAW,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,oDAAoD;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,yEAAyE;IACzE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,wFAAwF;IACxF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5D;AAKD,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoC9E;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CACjE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAalC;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC,CAef"}
1
+ {"version":3,"file":"runtime-env.d.ts","sourceRoot":"","sources":["../../src/dev/runtime-env.ts"],"names":[],"mappings":"AAgBA,oEAAoE;AACpE,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,6EAA6E;AAC7E,eAAO,MAAM,0BAA0B,wCAAwC,CAAC;AAChF,eAAO,MAAM,wBAAwB,yCAAyC,CAAC;AAE/E,wCAAwC;AACxC,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,gGAAgG;IAChG,QAAQ,CAAC,WAAW,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,oDAAoD;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,yEAAyE;IACzE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,wFAAwF;IACxF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5D;AAKD,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqC9E;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CACjE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAalC;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC,CAef"}
@@ -28,6 +28,7 @@ export function buildRuntimeEnv(input) {
28
28
  KINDGI_ENV: LOCAL_ENV_NAME,
29
29
  KINDGI_API_PORT: String(input.apiPort),
30
30
  ...(input.apiHost !== undefined && { KINDGI_API_HOST: input.apiHost }),
31
+ KINDGI_PUBLIC_URL: input.publicUrl,
31
32
  ...(input.hostAlias !== undefined && { KINDGI_DEV_HOST_ALIAS: input.hostAlias }),
32
33
  KINDGI_DATABASE_URL: input.databaseUrl,
33
34
  KINDGI_TENANT_ID: input.tenantId,
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-env.js","sourceRoot":"","sources":["../../src/dev/runtime-env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-env.js","sourceRoot":"","sources":["../../src/dev/runtime-env.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  * The image is in private preview on Quay (pull credentials on request at
10
10
  * contact@kindgi.com, then `kindgi auth registry --username <name>`).
11
11
  */
12
- export declare const DEFAULT_RUNTIME_IMAGE = "quay.io/kindgi/runtime:0.1.3@sha256:0a149b88696c4221355e0a5cb9de9609af020ec74cea145448bd22e928f259f3";
12
+ export declare const DEFAULT_RUNTIME_IMAGE = "quay.io/kindgi/runtime:0.1.4-rc.1@sha256:f85312b47c6df5a7c4ceddffe3181bf9b1c583ce0619838b5a440ccab1673ffb";
13
13
  /**
14
14
  * The registry an image reference is pulled from, read the way Docker
15
15
  * reads it: the first path component when it names a host (it has a `.`
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-image.d.ts","sourceRoot":"","sources":["../../src/dev/runtime-image.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,yGACsE,CAAC;AAKzG;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,iGAAiG;AACjG,eAAO,MAAM,sBAAsB,QAAoC,CAAC;AAExE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOvE"}
1
+ {"version":3,"file":"runtime-image.d.ts","sourceRoot":"","sources":["../../src/dev/runtime-image.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,8GAC2E,CAAC;AAK9G;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,iGAAiG;AACjG,eAAO,MAAM,sBAAsB,QAAoC,CAAC;AAExE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOvE"}
@@ -11,7 +11,7 @@
11
11
  * The image is in private preview on Quay (pull credentials on request at
12
12
  * contact@kindgi.com, then `kindgi auth registry --username <name>`).
13
13
  */
14
- export const DEFAULT_RUNTIME_IMAGE = 'quay.io/kindgi/runtime:0.1.3@sha256:0a149b88696c4221355e0a5cb9de9609af020ec74cea145448bd22e928f259f3';
14
+ export const DEFAULT_RUNTIME_IMAGE = 'quay.io/kindgi/runtime:0.1.4-rc.1@sha256:f85312b47c6df5a7c4ceddffe3181bf9b1c583ce0619838b5a440ccab1673ffb';
15
15
  /** Docker Hub, the registry of a reference that names none (`busybox`, `library/busybox`). */
16
16
  const DOCKER_HUB = 'docker.io';
17
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-image.js","sourceRoot":"","sources":["../../src/dev/runtime-image.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC,sGAAsG,CAAC;AAEzG,8FAA8F;AAC9F,MAAM,UAAU,GAAG,WAAW,CAAC;AAE/B;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,UAAU,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAClG,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,QAAgB;IAC7D,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACzD,sDAAsD;IACtD,OAAO,GAAG,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"runtime-image.js","sourceRoot":"","sources":["../../src/dev/runtime-image.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC,2GAA2G,CAAC;AAE9G,8FAA8F;AAC9F,MAAM,UAAU,GAAG,WAAW,CAAC;AAE/B;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,UAAU,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAClG,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,QAAgB;IAC7D,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACzD,sDAAsD;IACtD,OAAO,GAAG,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACnF,CAAC"}
@@ -0,0 +1,38 @@
1
+ /** How often a watcher scans, by default. */
2
+ export declare const DEFAULT_SCAN_INTERVAL_MS = 1000;
3
+ /** Folders no watcher counts files in. Dot folders (`.git`, `.venv`, `.kindgi`) are skipped too. */
4
+ export declare const SCAN_SKIPPED_DIRS: readonly string[];
5
+ export interface ScanSpec {
6
+ /** Folders walked: the absolute path, and the prefix its entries are named by. */
7
+ readonly folders: readonly {
8
+ readonly abs: string;
9
+ readonly rel: string;
10
+ }[];
11
+ /** Whether a file counts, by its name (`rel/…`). */
12
+ readonly includes: (relPath: string) => boolean;
13
+ /** Whether a folder is never walked, by its name. Default: dot folders and `SCAN_SKIPPED_DIRS`. */
14
+ readonly skipDir?: (name: string) => boolean;
15
+ /** Single files, absolute; one that doesn't exist yet counts once it does. */
16
+ readonly files?: readonly string[];
17
+ }
18
+ /** What a watcher watches, as one string: it changes when any counted file does. */
19
+ export declare function scanSignature(spec: ScanSpec): Promise<string>;
20
+ export interface ScanBackstop {
21
+ /**
22
+ * Take what the files are now as seen: the watcher calls it as it acts
23
+ * on a change, so the scan doesn't fire again for that same change.
24
+ */
25
+ readonly mark: () => Promise<void>;
26
+ readonly stop: () => void;
27
+ }
28
+ /**
29
+ * Scan every `intervalMs` (longer on a large tree: at least 50 times the
30
+ * last scan's duration, at most 5 s); when the files changed since the
31
+ * last scan or `mark`, call `onChange` (the watcher's own debounced fire).
32
+ */
33
+ export declare function startScanBackstop(options: {
34
+ readonly scan: () => Promise<string>;
35
+ readonly intervalMs: number;
36
+ readonly onChange: () => void;
37
+ }): Promise<ScanBackstop>;
38
+ //# sourceMappingURL=scan-backstop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-backstop.d.ts","sourceRoot":"","sources":["../../src/dev/scan-backstop.ts"],"names":[],"mappings":"AAoBA,6CAA6C;AAC7C,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C,oGAAoG;AACpG,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAM9C,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,kFAAkF;IAClF,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5E,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAChD,mGAAmG;IACnG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAKD,oFAAoF;AACpF,wBAAsB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAQnE;AA8BD,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;CAC3B;AAOD;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;CAC/B,GAAG,OAAO,CAAC,YAAY,CAAC,CAuCxB"}
@@ -0,0 +1,104 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ import { readdir, stat } from 'node:fs/promises';
4
+ import { join } from 'node:path';
5
+ /** How often a watcher scans, by default. */
6
+ export const DEFAULT_SCAN_INTERVAL_MS = 1_000;
7
+ /** Folders no watcher counts files in. Dot folders (`.git`, `.venv`, `.kindgi`) are skipped too. */
8
+ export const SCAN_SKIPPED_DIRS = [
9
+ 'node_modules',
10
+ '__pycache__',
11
+ 'venv',
12
+ 'site-packages',
13
+ 'dist',
14
+ ];
15
+ const defaultSkip = (name) => name.startsWith('.') || SCAN_SKIPPED_DIRS.includes(name);
16
+ /** What a watcher watches, as one string: it changes when any counted file does. */
17
+ export async function scanSignature(spec) {
18
+ const skip = spec.skipDir ?? defaultSkip;
19
+ const entries = [];
20
+ for (const folder of spec.folders) {
21
+ await walk(folder.abs, folder.rel, spec.includes, skip, entries);
22
+ }
23
+ for (const file of spec.files ?? [])
24
+ entries.push(await describe(file, file));
25
+ return entries.sort().join('\n');
26
+ }
27
+ async function walk(abs, rel, includes, skip, into) {
28
+ let names;
29
+ try {
30
+ names = await readdir(abs, { withFileTypes: true });
31
+ }
32
+ catch {
33
+ return;
34
+ }
35
+ for (const entry of names) {
36
+ const childRel = rel === '' ? entry.name : `${rel}/${entry.name}`;
37
+ if (entry.isDirectory()) {
38
+ if (!skip(entry.name))
39
+ await walk(join(abs, entry.name), childRel, includes, skip, into);
40
+ }
41
+ else if (includes(childRel)) {
42
+ into.push(await describe(join(abs, entry.name), childRel));
43
+ }
44
+ }
45
+ }
46
+ async function describe(abs, name) {
47
+ const info = await stat(abs).catch(() => undefined);
48
+ return info === undefined ? `${name}:-` : `${name}:${info.mtimeMs}:${info.size}`;
49
+ }
50
+ /** A scan waits at least this many times its own last duration (≤ 2% of a core). */
51
+ const COST_FACTOR = 50;
52
+ /** However slow the scan, it runs at least this often. */
53
+ const MAX_INTERVAL_MS = 5_000;
54
+ /**
55
+ * Scan every `intervalMs` (longer on a large tree: at least 50 times the
56
+ * last scan's duration, at most 5 s); when the files changed since the
57
+ * last scan or `mark`, call `onChange` (the watcher's own debounced fire).
58
+ */
59
+ export async function startScanBackstop(options) {
60
+ let seen = await options.scan();
61
+ let stopped = false;
62
+ let timer;
63
+ // The scan in flight: `mark` waits for it.
64
+ let inFlight;
65
+ const tick = async () => {
66
+ if (stopped)
67
+ return;
68
+ const started = Date.now();
69
+ inFlight = options
70
+ .scan()
71
+ .then((now) => {
72
+ if (stopped || now === seen)
73
+ return;
74
+ seen = now;
75
+ options.onChange();
76
+ })
77
+ .catch(() => undefined);
78
+ await inFlight;
79
+ inFlight = undefined;
80
+ schedule(Date.now() - started);
81
+ };
82
+ const schedule = (lastScanMs) => {
83
+ if (stopped)
84
+ return;
85
+ const wait = Math.min(MAX_INTERVAL_MS, Math.max(options.intervalMs, lastScanMs * COST_FACTOR));
86
+ timer = setTimeout(() => void tick(), wait);
87
+ timer.unref?.();
88
+ };
89
+ schedule(0);
90
+ return {
91
+ mark: async () => {
92
+ await inFlight;
93
+ const now = await options.scan().catch(() => undefined);
94
+ if (now !== undefined)
95
+ seen = now;
96
+ },
97
+ stop: () => {
98
+ stopped = true;
99
+ if (timer !== undefined)
100
+ clearTimeout(timer);
101
+ },
102
+ };
103
+ }
104
+ //# sourceMappingURL=scan-backstop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-backstop.js","sourceRoot":"","sources":["../../src/dev/scan-backstop.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlE;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,QAAQ,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,OAAO,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACrE,QAAQ,CA8BV;AAqDD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAatE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlE;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,QAAQ,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,OAAO,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACrE,QAAQ,CA8BV;AAiED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAatE"}
package/dist/errors.js CHANGED
@@ -31,7 +31,7 @@ export function formatThrown(thrown, options) {
31
31
  const detail = options.verbose
32
32
  ? `\n${JSON.stringify(wire, null, 2)}`
33
33
  : formatValidationDetail(wire);
34
- return cliError(`Error [${wire.code}]: ${wire.message}${detail}`, 1);
34
+ return cliError(`Error [${errorTag(wire)}]: ${wire.message}${detail}`, 1);
35
35
  }
36
36
  if (thrown instanceof Error) {
37
37
  const detail = options.verbose && thrown.stack ? `\n${thrown.stack}` : '';
@@ -39,6 +39,17 @@ export function formatThrown(thrown, options) {
39
39
  }
40
40
  return cliError(`Error: ${String(thrown)}`, 1);
41
41
  }
42
+ /**
43
+ * The code an error line shows: a conflict's own reason when it has one
44
+ * (`registry-read-only`, `agent-already-registered`), which says more
45
+ * than `conflict`; otherwise the error's code.
46
+ */
47
+ function errorTag(wire) {
48
+ const reason = wire.reason;
49
+ return wire.code === 'conflict' && typeof reason === 'string' && reason !== ''
50
+ ? reason
51
+ : wire.code;
52
+ }
42
53
  /**
43
54
  * Format validation-issue detail inline (no --verbose required). We
44
55
  * treat two error shapes as "validation":
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,11 @@ export type KindgiPythonSource = {
48
48
  * CLI's minor (`0.x`) or major (from `1.0`). The Python SDK's minors follow
49
49
  * the npm packages'; its patches needn't, so a CLI patch release with no
50
50
  * Python release still resolves.
51
+ *
52
+ * A release candidate's floor is its own version in PEP 440
53
+ * (`kindgi>=0.1.4rc0,<0.2`): installers skip pre-releases unless the
54
+ * requirement names one, so the rc is tried with its own Python SDK, and
55
+ * the same requirement takes the release once it's out.
51
56
  */
52
57
  export declare function kindgiRequirement(cliVersion: string): string | undefined;
53
58
  /** The requirement to write for `source`: the published range, or the bare name a uv source pins. */
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-specs.d.ts","sourceRoot":"","sources":["../../src/init/dependency-specs.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,uBAAuB,CAAC;AAG/E,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,sFAAsF;IACtF,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB;IAClB,QAAQ,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD;AAED,MAAM,MAAM,4BAA4B,GACpC;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,4BAA4B,CAAC,CAoCvC;AAwCD;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQxE;AAED,qGAAqG;AACrG,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,CAAC,kBAAkB,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,GACrD,MAAM,CAER;AAED,wBAAsB,yBAAyB,CAC7C,KAAK,GAAE,IAAI,CAAC,2BAA2B,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAM,GACvF,OAAO,CAAC,kBAAkB,CAAC,CAmC7B"}
1
+ {"version":3,"file":"dependency-specs.d.ts","sourceRoot":"","sources":["../../src/init/dependency-specs.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,uBAAuB,CAAC;AAG/E,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,sFAAsF;IACtF,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB;IAClB,QAAQ,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD;AAED,MAAM,MAAM,4BAA4B,GACpC;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,4BAA4B,CAAC,CAoCvC;AAwCD;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAcxE;AAKD,qGAAqG;AACrG,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,CAAC,kBAAkB,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,GACrD,MAAM,CAER;AAED,wBAAsB,yBAAyB,CAC7C,KAAK,GAAE,IAAI,CAAC,2BAA2B,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAM,GACvF,OAAO,CAAC,kBAAkB,CAAC,CAmC7B"}
@@ -99,17 +99,29 @@ async function pathExists(path) {
99
99
  * CLI's minor (`0.x`) or major (from `1.0`). The Python SDK's minors follow
100
100
  * the npm packages'; its patches needn't, so a CLI patch release with no
101
101
  * Python release still resolves.
102
+ *
103
+ * A release candidate's floor is its own version in PEP 440
104
+ * (`kindgi>=0.1.4rc0,<0.2`): installers skip pre-releases unless the
105
+ * requirement names one, so the rc is tried with its own Python SDK, and
106
+ * the same requirement takes the release once it's out.
102
107
  */
103
108
  export function kindgiRequirement(cliVersion) {
104
- const match = /^(\d+)\.(\d+)\.\d+/.exec(cliVersion);
109
+ const match = /^(\d+)\.(\d+)\.(\d+)(?:-(alpha|beta|rc)\.(\d+))?/.exec(cliVersion);
105
110
  if (match === null)
106
111
  return undefined;
107
112
  const major = Number(match[1]);
108
113
  const minor = Number(match[2]);
109
- return major === 0
110
- ? `kindgi>=0.${minor},<0.${minor + 1}`
111
- : `kindgi>=${major}.${minor},<${major + 1}`;
114
+ const ceiling = major === 0 ? `0.${minor + 1}` : `${major + 1}`;
115
+ const pre = match[4] === undefined ? undefined : PEP440_PRE[match[4]];
116
+ const floor = pre === undefined
117
+ ? major === 0
118
+ ? `0.${minor}`
119
+ : `${major}.${minor}`
120
+ : `${major}.${minor}.${match[3]}${pre}${match[5]}`;
121
+ return `kindgi>=${floor},<${ceiling}`;
112
122
  }
123
+ /** npm's pre-release names, as PEP 440 spells them (`scripts/sync-python-version.mjs`). */
124
+ const PEP440_PRE = { alpha: 'a', beta: 'b', rc: 'rc' };
113
125
  /** The requirement to write for `source`: the published range, or the bare name a uv source pins. */
114
126
  export function kindgiRequirementFor(source) {
115
127
  return source.kind === 'published' ? source.requirement : 'kindgi';