@kindgi/cli 0.1.6 → 0.1.7

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 (227) hide show
  1. package/README.md +35 -24
  2. package/dist/commands/auth.d.ts.map +1 -1
  3. package/dist/commands/auth.js +5 -4
  4. package/dist/commands/auth.js.map +1 -1
  5. package/dist/commands/dev.d.ts.map +1 -1
  6. package/dist/commands/dev.js +84 -13
  7. package/dist/commands/dev.js.map +1 -1
  8. package/dist/commands/doctor.d.ts +5 -1
  9. package/dist/commands/doctor.d.ts.map +1 -1
  10. package/dist/commands/doctor.js +104 -19
  11. package/dist/commands/doctor.js.map +1 -1
  12. package/dist/commands/guardrails.d.ts.map +1 -1
  13. package/dist/commands/guardrails.js +13 -2
  14. package/dist/commands/guardrails.js.map +1 -1
  15. package/dist/commands/index.d.ts.map +1 -1
  16. package/dist/commands/index.js +4 -0
  17. package/dist/commands/index.js.map +1 -1
  18. package/dist/commands/init.d.ts +1 -1
  19. package/dist/commands/init.d.ts.map +1 -1
  20. package/dist/commands/init.js +23 -3
  21. package/dist/commands/init.js.map +1 -1
  22. package/dist/commands/license.d.ts +3 -0
  23. package/dist/commands/license.d.ts.map +1 -0
  24. package/dist/commands/license.js +187 -0
  25. package/dist/commands/license.js.map +1 -0
  26. package/dist/commands/mcp.js +1 -1
  27. package/dist/commands/providers.d.ts.map +1 -1
  28. package/dist/commands/providers.js +11 -9
  29. package/dist/commands/providers.js.map +1 -1
  30. package/dist/commands/test.d.ts.map +1 -1
  31. package/dist/commands/test.js +21 -9
  32. package/dist/commands/test.js.map +1 -1
  33. package/dist/commands/webhooks.d.ts +20 -0
  34. package/dist/commands/webhooks.d.ts.map +1 -0
  35. package/dist/commands/webhooks.js +444 -0
  36. package/dist/commands/webhooks.js.map +1 -0
  37. package/dist/context.d.ts +4 -0
  38. package/dist/context.d.ts.map +1 -1
  39. package/dist/context.js +1 -0
  40. package/dist/context.js.map +1 -1
  41. package/dist/dev/already-running.d.ts +22 -0
  42. package/dist/dev/already-running.d.ts.map +1 -0
  43. package/dist/dev/already-running.js +72 -0
  44. package/dist/dev/already-running.js.map +1 -0
  45. package/dist/dev/defaults.d.ts.map +1 -1
  46. package/dist/dev/defaults.js +5 -2
  47. package/dist/dev/defaults.js.map +1 -1
  48. package/dist/dev/dev-lock.d.ts +50 -0
  49. package/dist/dev/dev-lock.d.ts.map +1 -0
  50. package/dist/dev/dev-lock.js +203 -0
  51. package/dist/dev/dev-lock.js.map +1 -0
  52. package/dist/dev/port.d.ts +6 -2
  53. package/dist/dev/port.d.ts.map +1 -1
  54. package/dist/dev/port.js +8 -4
  55. package/dist/dev/port.js.map +1 -1
  56. package/dist/dev/providers.d.ts.map +1 -1
  57. package/dist/dev/providers.js +112 -23
  58. package/dist/dev/providers.js.map +1 -1
  59. package/dist/dev/runners.d.ts +21 -2
  60. package/dist/dev/runners.d.ts.map +1 -1
  61. package/dist/dev/runtime-container.d.ts +78 -3
  62. package/dist/dev/runtime-container.d.ts.map +1 -1
  63. package/dist/dev/runtime-container.js +258 -26
  64. package/dist/dev/runtime-container.js.map +1 -1
  65. package/dist/dev/runtime-image.d.ts +4 -3
  66. package/dist/dev/runtime-image.d.ts.map +1 -1
  67. package/dist/dev/runtime-image.js +4 -3
  68. package/dist/dev/runtime-image.js.map +1 -1
  69. package/dist/dev/runtime-registry.d.ts +0 -9
  70. package/dist/dev/runtime-registry.d.ts.map +1 -1
  71. package/dist/dev/runtime-registry.js +12 -2
  72. package/dist/dev/runtime-registry.js.map +1 -1
  73. package/dist/dev/start-phases.d.ts +41 -0
  74. package/dist/dev/start-phases.d.ts.map +1 -0
  75. package/dist/dev/start-phases.js +103 -0
  76. package/dist/dev/start-phases.js.map +1 -0
  77. package/dist/init/augment-scaffolder.d.ts +20 -7
  78. package/dist/init/augment-scaffolder.d.ts.map +1 -1
  79. package/dist/init/augment-scaffolder.js +94 -21
  80. package/dist/init/augment-scaffolder.js.map +1 -1
  81. package/dist/init/pinning.d.ts +39 -0
  82. package/dist/init/pinning.d.ts.map +1 -0
  83. package/dist/init/pinning.js +130 -0
  84. package/dist/init/pinning.js.map +1 -0
  85. package/dist/init/template-files.d.ts +1 -1
  86. package/dist/init/tsconfig-paths.d.ts +29 -0
  87. package/dist/init/tsconfig-paths.d.ts.map +1 -0
  88. package/dist/init/tsconfig-paths.js +235 -0
  89. package/dist/init/tsconfig-paths.js.map +1 -0
  90. package/dist/init/vitest-setup.d.ts +41 -0
  91. package/dist/init/vitest-setup.d.ts.map +1 -0
  92. package/dist/init/vitest-setup.js +163 -0
  93. package/dist/init/vitest-setup.js.map +1 -0
  94. package/dist/license/aws.d.ts +24 -0
  95. package/dist/license/aws.d.ts.map +1 -0
  96. package/dist/license/aws.js +291 -0
  97. package/dist/license/aws.js.map +1 -0
  98. package/dist/license/cloud.d.ts +13 -0
  99. package/dist/license/cloud.d.ts.map +1 -0
  100. package/dist/license/cloud.js +193 -0
  101. package/dist/license/cloud.js.map +1 -0
  102. package/dist/license/expiry.d.ts +33 -0
  103. package/dist/license/expiry.d.ts.map +1 -0
  104. package/dist/license/expiry.js +35 -0
  105. package/dist/license/expiry.js.map +1 -0
  106. package/dist/license/license-key.d.ts +32 -0
  107. package/dist/license/license-key.d.ts.map +1 -0
  108. package/dist/license/license-key.js +91 -0
  109. package/dist/license/license-key.js.map +1 -0
  110. package/dist/license/protocol.d.ts +63 -0
  111. package/dist/license/protocol.d.ts.map +1 -0
  112. package/dist/license/protocol.js +102 -0
  113. package/dist/license/protocol.js.map +1 -0
  114. package/dist/license/renew.d.ts +59 -0
  115. package/dist/license/renew.d.ts.map +1 -0
  116. package/dist/license/renew.js +153 -0
  117. package/dist/license/renew.js.map +1 -0
  118. package/dist/license/stores.d.ts +19 -0
  119. package/dist/license/stores.d.ts.map +1 -0
  120. package/dist/license/stores.js +150 -0
  121. package/dist/license/stores.js.map +1 -0
  122. package/dist/main.d.ts +3 -0
  123. package/dist/main.d.ts.map +1 -1
  124. package/dist/main.js +1 -0
  125. package/dist/main.js.map +1 -1
  126. package/dist/package-manager.d.ts.map +1 -1
  127. package/dist/package-manager.js +2 -1
  128. package/dist/package-manager.js.map +1 -1
  129. package/dist/providers/preset-loader.d.ts +52 -1
  130. package/dist/providers/preset-loader.d.ts.map +1 -1
  131. package/dist/providers/preset-loader.js +85 -6
  132. package/dist/providers/preset-loader.js.map +1 -1
  133. package/dist/providers/presets/anthropic.json +1 -1
  134. package/dist/providers/presets/azure-openai.json +65 -0
  135. package/dist/providers/presets/bedrock.json +102 -0
  136. package/dist/sdk-skills/kindgi-authoring-agents/SKILL.md +3 -3
  137. package/dist/sdk-skills/kindgi-authoring-flows/SKILL.md +3 -3
  138. package/dist/sdk-skills/kindgi-authoring-guardrails/SKILL.md +11 -10
  139. package/dist/sdk-skills/kindgi-authoring-mcp-servers/SKILL.md +4 -4
  140. package/dist/sdk-skills/kindgi-authoring-providers/SKILL.md +16 -9
  141. package/dist/sdk-skills/kindgi-authoring-tools/SKILL.md +9 -11
  142. package/dist/sdk-skills/kindgi-framework-feedback/SKILL.md +3 -3
  143. package/dist/sdk-skills/kindgi-getting-started/SKILL.md +28 -5
  144. package/dist/sdk-skills/kindgi-java-authoring-agents/SKILL.md +1 -1
  145. package/dist/sdk-skills/kindgi-java-authoring-flows/SKILL.md +1 -1
  146. package/dist/sdk-skills/kindgi-java-authoring-guardrails/SKILL.md +1 -1
  147. package/dist/sdk-skills/kindgi-java-authoring-tools/SKILL.md +1 -1
  148. package/dist/sdk-skills/kindgi-java-getting-started/SKILL.md +6 -1
  149. package/dist/sdk-skills/kindgi-python-authoring-agents/SKILL.md +1 -1
  150. package/dist/sdk-skills/kindgi-python-authoring-flows/SKILL.md +1 -1
  151. package/dist/sdk-skills/kindgi-python-authoring-guardrails/SKILL.md +1 -1
  152. package/dist/sdk-skills/kindgi-python-authoring-tools/SKILL.md +1 -1
  153. package/dist/sdk-skills/kindgi-python-getting-started/SKILL.md +6 -1
  154. package/dist/sdk-skills/kindgi-scala-authoring-agents/SKILL.md +1 -1
  155. package/dist/sdk-skills/kindgi-scala-authoring-flows/SKILL.md +1 -1
  156. package/dist/sdk-skills/kindgi-scala-authoring-guardrails/SKILL.md +1 -1
  157. package/dist/sdk-skills/kindgi-scala-authoring-tools/SKILL.md +1 -1
  158. package/dist/sdk-skills/kindgi-scala-getting-started/SKILL.md +6 -1
  159. package/dist/sdk-skills/kindgi-using/SKILL.md +236 -0
  160. package/dist/templates/drupal/.nvmrc +1 -0
  161. package/dist/templates/drupal/AGENTS.md +62 -0
  162. package/dist/templates/drupal/README.md.tmpl +321 -0
  163. package/dist/templates/drupal/agents/content-agent/index.test.ts.tmpl +47 -0
  164. package/dist/templates/drupal/agents/content-agent/index.ts.tmpl +69 -0
  165. package/dist/templates/drupal/agents/content-reviewer/index.test.ts.tmpl +37 -0
  166. package/dist/templates/drupal/agents/content-reviewer/index.ts.tmpl +57 -0
  167. package/dist/templates/drupal/fixtures/node-updated.json +174 -0
  168. package/dist/templates/drupal/flows/content-review/index.ts.tmpl +66 -0
  169. package/dist/templates/drupal/gitignore +8 -0
  170. package/dist/templates/drupal/guardrails/no-contact-details/index.test.ts.tmpl +29 -0
  171. package/dist/templates/drupal/guardrails/no-contact-details/index.ts.tmpl +73 -0
  172. package/dist/templates/drupal/kindgi.config.ts.tmpl +41 -0
  173. package/dist/templates/drupal/lib/drupal.ts.tmpl +64 -0
  174. package/dist/templates/drupal/package.json.tmpl +31 -0
  175. package/dist/templates/drupal/pnpm-workspace.yaml +9 -0
  176. package/dist/templates/drupal/scripts/connect-drupal.mjs.tmpl +57 -0
  177. package/dist/templates/drupal/tools/check-content-event/index.test.ts.tmpl +72 -0
  178. package/dist/templates/drupal/tools/check-content-event/index.ts.tmpl +115 -0
  179. package/dist/templates/drupal/tsconfig.json.tmpl +28 -0
  180. package/dist/templates/drupal/vitest.config.ts.tmpl +14 -0
  181. package/dist/templates/java/AGENTS.md +6 -0
  182. package/dist/templates/java/README.md.tmpl +1 -1
  183. package/dist/templates/minimal/AGENTS.md +6 -0
  184. package/dist/templates/minimal/README.md.tmpl +3 -2
  185. package/dist/templates/minimal/package.json.tmpl +3 -2
  186. package/dist/templates/python/AGENTS.md +3 -2
  187. package/dist/templates/sample/AGENTS.md +6 -0
  188. package/dist/templates/sample/package.json.tmpl +3 -2
  189. package/dist/templates/scala/AGENTS.md +6 -0
  190. package/dist/templates/scala/README.md.tmpl +1 -1
  191. package/dist/templates/woocommerce/.nvmrc +1 -0
  192. package/dist/templates/woocommerce/AGENTS.md +49 -0
  193. package/dist/templates/woocommerce/README.md.tmpl +273 -0
  194. package/dist/templates/woocommerce/agents/order-reviewer/index.test.ts.tmpl +28 -0
  195. package/dist/templates/woocommerce/agents/order-reviewer/index.ts.tmpl +45 -0
  196. package/dist/templates/woocommerce/agents/store-agent/index.test.ts.tmpl +47 -0
  197. package/dist/templates/woocommerce/agents/store-agent/index.ts.tmpl +79 -0
  198. package/dist/templates/woocommerce/fixtures/order-created.json +67 -0
  199. package/dist/templates/woocommerce/flows/order-review/index.ts.tmpl +64 -0
  200. package/dist/templates/woocommerce/gitignore +8 -0
  201. package/dist/templates/woocommerce/guardrails/no-customer-contact-details/index.test.ts.tmpl +29 -0
  202. package/dist/templates/woocommerce/guardrails/no-customer-contact-details/index.ts.tmpl +74 -0
  203. package/dist/templates/woocommerce/kindgi.config.ts.tmpl +41 -0
  204. package/dist/templates/woocommerce/lib/fake-store.ts.tmpl +82 -0
  205. package/dist/templates/woocommerce/lib/woo.ts.tmpl +182 -0
  206. package/dist/templates/woocommerce/package.json.tmpl +30 -0
  207. package/dist/templates/woocommerce/pnpm-workspace.yaml +9 -0
  208. package/dist/templates/woocommerce/tools/check-order-event/index.test.ts.tmpl +76 -0
  209. package/dist/templates/woocommerce/tools/check-order-event/index.ts.tmpl +131 -0
  210. package/dist/templates/woocommerce/tools/find-orders/index.ts.tmpl +80 -0
  211. package/dist/templates/woocommerce/tools/publish-product/index.ts.tmpl +34 -0
  212. package/dist/templates/woocommerce/tools/refund/index.test.ts.tmpl +125 -0
  213. package/dist/templates/woocommerce/tools/refund/index.ts.tmpl +70 -0
  214. package/dist/templates/woocommerce/tools/refund-large/index.test.ts.tmpl +53 -0
  215. package/dist/templates/woocommerce/tools/refund-large/index.ts.tmpl +44 -0
  216. package/dist/templates/woocommerce/tools/set-price/index.ts.tmpl +36 -0
  217. package/dist/templates/woocommerce/tsconfig.json.tmpl +28 -0
  218. package/dist/templates/woocommerce/vitest.config.ts.tmpl +14 -0
  219. package/dist/test/defaults.d.ts +1 -1
  220. package/dist/test/defaults.d.ts.map +1 -1
  221. package/dist/test/defaults.js +2 -7
  222. package/dist/test/defaults.js.map +1 -1
  223. package/dist/test/runners.d.ts +6 -0
  224. package/dist/test/runners.d.ts.map +1 -1
  225. package/dist/test/runners.js +18 -1
  226. package/dist/test/runners.js.map +1 -1
  227. package/package.json +13 -13
package/README.md CHANGED
@@ -13,7 +13,7 @@ devDependency and runs the `kindgi` it pins, never a global install.
13
13
  ```sh
14
14
  npx @kindgi/cli init # in an existing app, or: init <pack-name>
15
15
  pnpm install
16
- pnpm exec kindgi dev # npm: npx --no kindgi dev
16
+ pnpm exec kindgi dev # npm: npx --no -- kindgi dev
17
17
  ```
18
18
 
19
19
  Use the scoped name, `@kindgi/cli`: there is no unscoped `kindgi` package.
@@ -64,7 +64,7 @@ pnpm exec kindgi runs start --flow=my-pack.echo-flow --input='{"name":"Ada"}' --
64
64
  ## `kindgi init`
65
65
 
66
66
  ```sh
67
- kindgi init [<pack-name>] [--template=minimal|sample|python] [--path=<dir>]
67
+ kindgi init [<pack-name>] [--template=minimal|sample|woocommerce|drupal|python] [--path=<dir>]
68
68
  [--force] [--link-local] [--new-repo] [--pack-id=<id>]
69
69
  ```
70
70
 
@@ -115,7 +115,7 @@ devDependency) at the running CLI's own version, or linked from a checkout
115
115
  | Flag | Purpose |
116
116
  |---|---|
117
117
  | `<pack-name>` | The pack id: lowercase kebab-case, optionally dot-namespaced (`my-pack`, `acme.legal-basics`). |
118
- | `--template=<name>` | `minimal` (the default: the folders, no examples), `sample` (three tools, a guardrail, an agent and a flow), or `python` (the sample as a Python pack). |
118
+ | `--template=<name>` | `minimal` (the default: the folders, no examples), `sample` (three tools, a guardrail, an agent and a flow), `woocommerce` (agents for a WooCommerce store: typed store tools, approvals for large refunds and store changes, and a review of each new order), `drupal` (agents for a Drupal site through its MCP Server: house-style fixes as drafts, each change approved, and a review of each saved article), or `python` (the sample as a Python pack). |
119
119
  | `--path=<dir>` | Where to scaffold. Default: `<pack-name>` under the current directory (for a dot-namespaced id, its last segment). |
120
120
  | `--force` | Write into a non-empty directory. Default: refuse. |
121
121
  | `--link-local` | Link `@kindgi/*` from the checkout the CLI runs from. |
@@ -207,12 +207,18 @@ One command runs the whole loop on your machine:
207
207
  Default Credentials file (`GOOGLE_APPLICATION_CREDENTIALS`, else the one
208
208
  `gcloud auth application-default login` writes) is mounted read-only.
209
209
  Kindgi keeps no key files of its own.
210
- - **The image:** the runtime image is pulled on first use. It is in
211
- private preview: request access at contact@kindgi.com, then log Docker in
212
- with the pull credentials you receive:
213
- `kindgi auth registry --username <robot name>` (see
210
+ - **The image:** the runtime image is pulled on first use. It needs a pull
211
+ credential: sign in with GitHub at https://access.kindgi.com for one, then
212
+ log Docker in with it:
213
+ `kindgi auth registry --username <your robot name>` (see
214
214
  [The runtime image's registry](#the-runtime-images-registry)). `kindgi dev`
215
215
  says so when a pull is refused.
216
+ - **Starting:** `kindgi dev` says what the start is doing as it happens,
217
+ and how long each step took: pulling the image (its size, then how much
218
+ has come as each layer arrives), starting the container, migrating the
219
+ database, and waiting for the runtime to serve. A step still going says
220
+ so every 3 seconds. Migrating shows with a runtime that reports it (0.1.7
221
+ and later); with an earlier one, that time counts as waiting.
216
222
 
217
223
  ### Env files
218
224
 
@@ -272,9 +278,10 @@ A turn the fallback answers carries a `fallback-provider` warning, which
272
278
  `kindgi runs start` prints. `kindgi providers unregister dev-echo` removes it
273
279
  for good.
274
280
 
275
- A preset's models carry their own output limit (Gemini 3.8 Flash: 65,536
276
- tokens, thinking included). `--max-output-tokens=<n>` registers them with a lower
277
- or different cap.
281
+ A preset's models carry a default output cap, what a call asks for when its
282
+ agent sets none (Gemini 3.8 Flash: 65,536 tokens, thinking included; the Claude
283
+ models: 16,000). `--max-output-tokens=<n>` registers them with a lower or
284
+ different cap.
278
285
 
279
286
  **Declared in the config**, `kindgi dev` registers them itself. Each project
280
287
  and git worktree has its own dev database, so this registers them in every
@@ -295,7 +302,7 @@ export default {
295
302
  In `pyproject.toml`, each one is a `[[tool.kindgi.providers]]` table with
296
303
  the same keys. A preset takes:
297
304
  - `models`;
298
- - `project`;
305
+ - the settings its preset asks for, each required: `project` for `gemini`, `resourceName` and `deployments` for `azure-openai`, `region` for `bedrock`. Another preset's setting is refused. `deployments` is a map of model to deployment (`{ 'gpt-6.1-sol': 'gpt-6-1-sol' }`, a `[tool.kindgi.providers.deployments]` table in `pyproject.toml`);
299
306
  - `secret`: the key's name, in place of the preset's own;
300
307
  - `maxOutputTokens`.
301
308
 
@@ -434,11 +441,15 @@ kindgi test [--watch] [--reporter <name>] [--path <dir>] [-- <vitest-args>...]
434
441
  ```
435
442
 
436
443
  Runs the pack's tests with the pack's own vitest (the CLI bundles none, so the
437
- pack chooses its vitest version). The templates include a `vitest.config.ts`
438
- and a first test. `--watch` runs vitest in watch mode; everything after `--`
439
- goes to vitest as is. The CLI refuses to run without a `vitest.config.*` at
440
- the pack root, and uses `pnpm exec vitest` in a pnpm project, else
441
- `npx --no-install vitest`.
444
+ pack chooses its vitest version). A pack from `kindgi init <name>` has a
445
+ `vitest.config.ts` and a first test. In an app Kindgi was added to, `kindgi
446
+ init` writes `vitest.config.mts` (`.ts` in a `"type": "module"` app), which
447
+ runs `kindgi/**/*.test.ts` with the app's tsconfig `paths` as
448
+ `resolve.alias`, and adds `vitest` and `vite`, unless the app runs vitest
449
+ already. `--watch` runs vitest in watch mode; everything after `--` goes to
450
+ vitest as is. The CLI refuses to run without a `vitest.config.*` (`.ts`,
451
+ `.mts`, `.cts`, `.js`, `.mjs` or `.cjs`) at the pack root, and uses
452
+ `pnpm exec vitest` in a pnpm project, else `npx --no-install vitest`.
442
453
 
443
454
  ## `kindgi build`
444
455
 
@@ -813,14 +824,14 @@ with `kindgi auth whoami`.
813
824
 
814
825
  ### The runtime image's registry
815
826
 
816
- The Kindgi runtime image `kindgi dev` runs is in private preview: request
817
- access at contact@kindgi.com. With the pull credentials you receive (a robot
818
- name and a token), log Docker in once:
827
+ The Kindgi runtime image `kindgi dev` runs needs a pull credential (a robot
828
+ name and a token). Sign in with GitHub at https://access.kindgi.com for one,
829
+ then log Docker in once:
819
830
 
820
831
  ```sh
821
- kindgi auth registry --username <robot name> # prompts for the token, without echoing it
822
- printf '%s' "$TOKEN" | kindgi auth registry --username <robot name> --password-stdin
823
- kindgi auth registry --check # only check access, no login
832
+ kindgi auth registry --username <your robot name> # prompts for the token, without echoing it
833
+ printf '%s' "$TOKEN" | kindgi auth registry --username <your robot name> --password-stdin
834
+ kindgi auth registry --check # only check access, no login
824
835
  ```
825
836
 
826
837
  It runs `docker login` with the token on its stdin, never in its arguments,
@@ -828,8 +839,8 @@ so the credential lives in Docker's own credential store: Kindgi stores
828
839
  nothing. Then it checks that Docker can pull the exact image this CLI runs
829
840
  (pinned by digest; with `docker buildx imagetools inspect`, or
830
841
  `docker manifest inspect` by digest where buildx isn't installed), and a
831
- failure says whether it's access (request it at
832
- contact@kindgi.com) or the image or the network. `--registry <host>` logs in
842
+ failure says whether it's access (a pull credential from
843
+ https://access.kindgi.com) or the image or the network. `--registry <host>` logs in
833
844
  to a mirror instead and checks for the same image there.
834
845
 
835
846
  ## Output and global flags
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,YAAY,EAAU,MAAM,6BAA6B,CAAC;AAiBxE,OAAO,EAEL,KAAK,OAAO,EAIb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,OAAO,EAA8B,MAAM,YAAY,CAAC;AAoFtE;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IACpC,uCAAuC;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AA2OD,eAAO,MAAM,WAAW,EAAE,OAKzB,CAAC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,YAAY,EAAU,MAAM,6BAA6B,CAAC;AAkBxE,OAAO,EAEL,KAAK,OAAO,EAIb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,OAAO,EAA8B,MAAM,YAAY,CAAC;AAoFtE;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IACpC,uCAAuC;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AA2OD,eAAO,MAAM,WAAW,EAAE,OAKzB,CAAC"}
@@ -4,6 +4,7 @@ import { saveHomeConfig } from '../config.js';
4
4
  import { docker } from '../dev/runtime-container.js';
5
5
  import { DEFAULT_RUNTIME_IMAGE, RUNTIME_IMAGE_REGISTRY, imageOnRegistry, registryOf, } from '../dev/runtime-image.js';
6
6
  import { checkDocker, checkImageAccess, credentialHelperHint, dockerLogin, registryLoginCommand, } from '../dev/runtime-registry.js';
7
+ import { KINDGI_ACCESS_ORIGIN } from '../license/protocol.js';
7
8
  import { renderJson } from '../output.js';
8
9
  import { PromptCancelled, readStdinToEnd, realTtySeam, stdinIsTty, } from '../terminal-input.js';
9
10
  const login = {
@@ -93,7 +94,7 @@ const registry = {
93
94
  optionSpec: {
94
95
  username: {
95
96
  type: 'string',
96
- description: 'The robot name you were given with your pull token. Needed to log in.',
97
+ description: `Your pull credential's robot name, shown at ${KINDGI_ACCESS_ORIGIN} once you sign in with GitHub. Needed to log in.`,
97
98
  },
98
99
  'password-stdin': {
99
100
  type: 'boolean',
@@ -122,7 +123,7 @@ function registryArgs(ctx) {
122
123
  return usageError('--check only checks access, so it takes no --username or --password-stdin.');
123
124
  }
124
125
  if (!check && (typeof username !== 'string' || username === '')) {
125
- return usageError('Missing --username=<name>: the robot name you were given with your pull token (request access at contact@kindgi.com).\nTo check access without logging in: kindgi auth registry --check.');
126
+ return usageError(`Missing --username=<name>: your pull credential's robot name. Sign in with GitHub at ${KINDGI_ACCESS_ORIGIN}: the page shows this command with your robot name, and the token to paste.\nTo check access without logging in: kindgi auth registry --check.`);
126
127
  }
127
128
  return {
128
129
  check,
@@ -202,8 +203,8 @@ function accessFailure(access, image, args) {
202
203
  return [
203
204
  ` ✗ No access to ${image}: ${access.detail}`,
204
205
  args.username === undefined
205
- ? ` The runtime image is in private preview: request access at contact@kindgi.com, then log in with the pull credentials you receive: ${registryLoginCommand(image)}.`
206
- : ` ${args.username} is logged in to ${args.host} but can't pull it: request access at contact@kindgi.com.`,
206
+ ? ` The runtime image needs a pull credential: sign in with GitHub at ${KINDGI_ACCESS_ORIGIN} for one, then log in: ${registryLoginCommand(image)}.`
207
+ : ` ${args.username} is logged in to ${args.host} but can't pull it: sign in at ${KINDGI_ACCESS_ORIGIN} for your current pull credential (questions: contact@kindgi.com).`,
207
208
  ];
208
209
  }
209
210
  if (access.kind === 'credential-helper') {
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAqEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAEL,KAAK,oBAAoB,EAK1B,MAAM,8BAA8B,CAAC;AA+BtC,OAAO,EAAE,KAAK,kBAAkB,EAAqB,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAEV,WAAW,EAKZ,MAAM,mBAAmB,CAAC;AAqB3B,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,eAAO,MAAM,UAAU,EAAE,WAqGxB,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,wDAAwD;AACxD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAuH7C,wBAAsB,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAyvBxE;AAirBD,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAqHD,UAAU,eAAe;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,CAAC;IAC3D,6DAA6D;IAC7D,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,kFAAkF;IAClF,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,mGAAmG;IACnG,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,uGAAuG;IACvG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;CACnD;AA8CD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAKrE;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,MAAM,EAAE,CAoC1E"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAqEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAWpD,OAAO,EAEL,KAAK,oBAAoB,EAK1B,MAAM,8BAA8B,CAAC;AA+BtC,OAAO,EAAE,KAAK,kBAAkB,EAAqB,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAEV,WAAW,EAKZ,MAAM,mBAAmB,CAAC;AAsB3B,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,eAAO,MAAM,UAAU,EAAE,WAsGxB,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,wDAAwD;AACxD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAuH7C,wBAAsB,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAwDxE;AA47CD,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAqHD,UAAU,eAAe;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,CAAC;IAC3D,6DAA6D;IAC7D,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,kFAAkF;IAClF,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,mGAAmG;IACnG,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,uGAAuG;IACvG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;CACnD;AAgDD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAKrE;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,MAAM,EAAE,CAoC1E"}
@@ -39,6 +39,8 @@ import { createInterface } from 'node:readline';
39
39
  import { discoveryRoots, findKindgiConfig, packLanguage, resolveDiscovery, } from '@kindgi/handler-runtime';
40
40
  import { LOCAL_ENV_NAME, describeUnreadable, displayEnvPath, namesInAppFiles, packValues, readPackEnv, runtimeValues, } from '@kindgi/secrets-dotenv';
41
41
  import { CORS_ORIGINS_VAR, EXPORT_SIGNING_KEY_PATH_VAR, PUBLIC_TOKEN_KEY_PATH_VAR, parseCorsOrigins, } from '@kindgi/env-schema';
42
+ import { ALREADY_RUNNING_EXIT_CODE, alreadyRunning } from '../dev/already-running.js';
43
+ import { DEV_LOCK_FILE, osProcesses, ownerIsLive, takeDevLock, } from '../dev/dev-lock.js';
42
44
  import { createDevOnlyImportsCheck } from '../dev/dev-only-imports.js';
43
45
  import { DEV_GOOGLE_CREDENTIALS_VAR, VERTEX_PROVIDER_ID, isVertexRegistration, resolveDevGoogleCredentials, vertexCredentialsHint, } from '../dev/google-credentials.js';
44
46
  import { DEFAULT_DEV_LOG_VIEW, parseDevLogFlags, resolveDevLogView, runtimeLogLevels, showIndexerLine, showLine, showText, sourceLogEnv, } from '../dev/log-view.js';
@@ -49,9 +51,10 @@ import { PORT_SEARCH_SPAN, firstFreePort } from '../dev/port.js';
49
51
  import { resolveDevProject } from '../dev/project.js';
50
52
  import { adoptLegacyBundledEntries, declaredProviders, describeReconcile, devProvidersKey, devProvidersRecordPath, readOwnedProviders, reconcileProviders, writeOwnedProviders, } from '../dev/providers.js';
51
53
  import { registerFromIndex } from '../dev/register.js';
52
- import { RuntimeStartStopped } from '../dev/runtime-container.js';
54
+ import { RuntimeOwnedElsewhere, RuntimeStartStopped } from '../dev/runtime-container.js';
53
55
  import { DEFAULT_RUNTIME_IMAGE } from '../dev/runtime-image.js';
54
56
  import { resolveDevSandbox } from '../dev/sandbox/notices.js';
57
+ import { createStartPhases, formatDuration } from '../dev/start-phases.js';
55
58
  import { describeEnvDiagnostics, loadLocalEnvSettings } from '../env/project-env.js';
56
59
  import { declaredProviderKeyNames, listAllProviders, providerKeyNamesFromRuntime, readProviderKeysRecord, writeProviderKeysRecord, } from '../env/provider-keys.js';
57
60
  import { PYPI_NO_BUNDLER } from '../esbuild-loader.js';
@@ -66,7 +69,7 @@ import { detectSkillDrift } from './skills.js';
66
69
  export const devCommand = {
67
70
  kind: 'leaf',
68
71
  name: 'dev',
69
- description: 'Run the Kindgi runtime as a container + hot-reload the pack under cwd.',
72
+ description: 'Run the Kindgi runtime as a container + hot-reload the pack under cwd. One per pack: a second exits 3 ("already running"), saying where the first is.',
70
73
  usage: 'kindgi dev [--port <n>] [--database-url <url>] [--tenant <id>] [--dev-token <token>] [--no-watch] [--open] [--path <dir>] [--reset [--yes]] [--recreate-services] [--runtime-image <ref> | --runtime-url <url>] [--log-level <level>] [--log <subsystem>=<level>]... [--log-format pretty|json] [--quiet]',
71
74
  optionSpec: {
72
75
  port: {
@@ -265,6 +268,36 @@ export async function runDev(ctx) {
265
268
  exitCode: 1,
266
269
  };
267
270
  }
271
+ // One kindgi dev per pack: a second would take the first's runtime
272
+ // container and repoint `.kindgirc.json`. It refuses before anything
273
+ // starts, saying where the running one is (exit 3).
274
+ let taken;
275
+ try {
276
+ taken = await takeDevLock(args.packDir, dev.devLockProcesses);
277
+ }
278
+ catch (cause) {
279
+ return { kind: 'error', stderr: `kindgi dev: ${cause.message}\n`, exitCode: 1 };
280
+ }
281
+ if (taken.kind === 'held') {
282
+ return alreadyRunning(taken.holder, {
283
+ fetch: ctx.fetch,
284
+ format: ctx.globals.format,
285
+ formatRequested: ctx.globals.formatRequested,
286
+ });
287
+ }
288
+ if (taken.stale !== undefined) {
289
+ emitProgress(` a previous kindgi dev (pid ${taken.stale.pid}) ended without removing ${DEV_LOCK_FILE}; continuing`);
290
+ }
291
+ const lock = taken.lock;
292
+ try {
293
+ return await runDevForPack(ctx, args, dev, configFile, stderrIsTTY, lock);
294
+ }
295
+ finally {
296
+ await lock.release();
297
+ }
298
+ }
299
+ /** `kindgi dev` for a pack it holds the lock of (`.kindgi/dev/dev.lock`). */
300
+ async function runDevForPack(ctx, args, dev, configFile, stderrIsTTY, lock) {
268
301
  // The project's env files — Kindgi runtime config (`KINDGI_*`) for
269
302
  // this process, everything else for the pack's agents via the dev
270
303
  // secret binding.
@@ -332,7 +365,11 @@ export async function runDev(ctx) {
332
365
  // The runtime's port, before anything starts. Taken without `--port`
333
366
  // (another `kindgi dev`, say): the next free one, which `.kindgirc.json`
334
367
  // then records for every client. Taken with `--port`: refused.
335
- const port = await pickRuntimePort(dev, args);
368
+ const owner = {
369
+ owner: lock.owner,
370
+ ownerIsLive: (o) => ownerIsLive(o, dev.devLockProcesses ?? osProcesses()),
371
+ };
372
+ const port = await pickRuntimePort(dev, args, owner);
336
373
  if (port.kind === 'error')
337
374
  return port;
338
375
  // Resolve the database URL. Precedence:
@@ -572,9 +609,12 @@ export async function runDev(ctx) {
572
609
  ? `Using the Kindgi runtime at ${args.runtimeUrl}...`
573
610
  : `Starting the Kindgi runtime (${args.runtimeImage})...`);
574
611
  let server;
612
+ // Each phase of the start as it happens, with its time (`dev/start-phases.ts`).
613
+ const startPhases = createStartPhases({ emit: emitProgress });
575
614
  try {
576
- server = await withHeartbeat('still starting the runtime', 3000, () => dev.startApiServer({
615
+ server = await dev.startApiServer({
577
616
  port: port.port,
617
+ ...owner,
578
618
  databaseUrl,
579
619
  tenantId: effectiveTenantId,
580
620
  token: effectiveToken,
@@ -602,10 +642,12 @@ export async function runDev(ctx) {
602
642
  logLevels: runtimeLogLevels(logView),
603
643
  onLog: (line, stream) => emitOutput(showLine('runtime', line, logView, stream)),
604
644
  onProgress: emitProgress,
645
+ startPhases,
605
646
  ...(ctx.stopSignal !== undefined && { signal: ctx.stopSignal }),
606
- }));
647
+ });
607
648
  }
608
649
  catch (err) {
650
+ startPhases.close();
609
651
  await pack.close().catch(() => undefined);
610
652
  // Ctrl+C (or SIGTERM) while it waited: a stop, not a failure.
611
653
  if (err instanceof RuntimeStartStopped || ctx.stopSignal?.aborted === true) {
@@ -615,13 +657,18 @@ export async function runDev(ctx) {
615
657
  exitCode: 130,
616
658
  };
617
659
  }
660
+ if (err instanceof RuntimeOwnedElsewhere)
661
+ return ownedElsewhereRefusal(err);
618
662
  return {
619
663
  kind: 'error',
620
664
  stderr: `kindgi dev couldn't start the Kindgi runtime: ${err.message}\n`,
621
665
  exitCode: 1,
622
666
  };
623
667
  }
624
- emitProgress(`✓ the Kindgi runtime is serving at ${server.baseUrl}`);
668
+ startPhases.close();
669
+ emitProgress(args.runtimeUrl !== undefined
670
+ ? `✓ the Kindgi runtime is serving at ${server.baseUrl}`
671
+ : `✓ the Kindgi runtime is serving at ${server.baseUrl} (started in ${formatDuration(startPhases.elapsedMs())})`);
625
672
  const client = ctx.clientFor(server.baseUrl, server.token);
626
673
  // Boot-time register, from the index built above.
627
674
  emitProgress('Registering primitives...');
@@ -736,6 +783,13 @@ export async function runDev(ctx) {
736
783
  // Best effort — if the pack dir is read-only or something goes wrong,
737
784
  // don't fail boot. The user can still pass --url/--token flags.
738
785
  }
786
+ // Where it serves, for a second kindgi dev to say (`dev.lock`).
787
+ await lock
788
+ .update({
789
+ apiUrl: server.baseUrl,
790
+ ...(server.consoleMounted === true && { consoleUrl: consoleUrlOf(server.baseUrl) }),
791
+ })
792
+ .catch(() => undefined);
739
793
  // Emit the "you're up, here's what to do next" block live to stderr
740
794
  // so watch-mode users see it immediately. (With --no-watch, the returned
741
795
  // command result also carries bannerLines, flushed on exit; watch mode
@@ -1017,14 +1071,29 @@ async function loadDevProjectEnv(ctx, packDir) {
1017
1071
  envFilesLabel: label(env.files.read),
1018
1072
  };
1019
1073
  }
1020
- async function pickRuntimePort(dev, args) {
1074
+ /** Another live kindgi dev's runtime container, for this pack: untouched, and said so. */
1075
+ function ownedElsewhereRefusal(err) {
1076
+ return {
1077
+ kind: 'error',
1078
+ stderr: `kindgi dev: ${err.message}. Stop that kindgi dev first, then run kindgi dev again.\n`,
1079
+ exitCode: ALREADY_RUNNING_EXIT_CODE,
1080
+ };
1081
+ }
1082
+ async function pickRuntimePort(dev, args, owner) {
1021
1083
  // `--runtime-url`: the developer's runtime has its own port. Port 0: any.
1022
1084
  if (args.runtimeUrl !== undefined || args.port === 0 || dev.runtimePortInUse === undefined) {
1023
1085
  return { kind: 'ok', port: args.port };
1024
1086
  }
1025
- const inUse = (port) => dev.runtimePortInUse({ packDir: args.packDir, port });
1026
- if (!(await inUse(args.port)))
1027
- return { kind: 'ok', port: args.port };
1087
+ const inUse = (port) => dev.runtimePortInUse({ packDir: args.packDir, port, ...owner });
1088
+ try {
1089
+ if (!(await inUse(args.port)))
1090
+ return { kind: 'ok', port: args.port };
1091
+ }
1092
+ catch (err) {
1093
+ if (err instanceof RuntimeOwnedElsewhere)
1094
+ return ownedElsewhereRefusal(err);
1095
+ throw err;
1096
+ }
1028
1097
  if (args.portGiven) {
1029
1098
  return {
1030
1099
  kind: 'error',
@@ -1561,11 +1630,13 @@ function describeBrowserOrigins(origins) {
1561
1630
  }
1562
1631
  /**
1563
1632
  * How to get a real model, for the banner: the presets that take an LLM
1564
- * provider key (anthropic, openai, gemini-api, groq, openrouter…), as
1565
- * the dev-echo warning and doctor name them.
1633
+ * provider key and nothing else (anthropic, openai, gemini-api, groq,
1634
+ * openrouter…), as the dev-echo warning names them. A preset that also asks
1635
+ * for settings (azure-openai) doesn't fit a one-line hint; doctor names its
1636
+ * settings.
1566
1637
  */
1567
1638
  async function registerProviderHint(kindgi) {
1568
- const keyed = Object.values(await loadProviderPresets()).flatMap((p) => p.secret !== undefined ? [p.name] : []);
1639
+ const keyed = Object.values(await loadProviderPresets()).flatMap((p) => p.secret !== undefined && (p.adapterConfig ?? []).length === 0 ? [p.name] : []);
1569
1640
  return keyed.length > 1
1570
1641
  ? `set an LLM provider key, then ${kindgi('providers', 'register', `--preset=<${keyed.join('|')}>`)}`
1571
1642
  : kindgi('providers', 'register', `--preset=${keyed[0] ?? 'anthropic'}`);