@kindgi/cli 0.1.4-rc.5 → 0.1.5-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 (329) hide show
  1. package/README.md +16 -10
  2. package/dist/build/defaults.d.ts +3 -1
  3. package/dist/build/defaults.d.ts.map +1 -1
  4. package/dist/build/defaults.js +44 -1
  5. package/dist/build/defaults.js.map +1 -1
  6. package/dist/build/java-image.d.ts +31 -0
  7. package/dist/build/java-image.d.ts.map +1 -0
  8. package/dist/build/java-image.js +146 -0
  9. package/dist/build/java-image.js.map +1 -0
  10. package/dist/build/pack-root.d.ts +1 -31
  11. package/dist/build/pack-root.d.ts.map +1 -1
  12. package/dist/build/pack-root.js +22 -2
  13. package/dist/build/pack-root.js.map +1 -1
  14. package/dist/build/runners.d.ts +44 -0
  15. package/dist/build/runners.d.ts.map +1 -1
  16. package/dist/build/scala-image.d.ts +21 -0
  17. package/dist/build/scala-image.d.ts.map +1 -0
  18. package/dist/build/scala-image.js +150 -0
  19. package/dist/build/scala-image.js.map +1 -0
  20. package/dist/cli-pin.d.ts +16 -0
  21. package/dist/cli-pin.d.ts.map +1 -0
  22. package/dist/cli-pin.js +66 -0
  23. package/dist/cli-pin.js.map +1 -0
  24. package/dist/commands/agents.d.ts.map +1 -1
  25. package/dist/commands/agents.js +9 -8
  26. package/dist/commands/agents.js.map +1 -1
  27. package/dist/commands/approvals.d.ts.map +1 -1
  28. package/dist/commands/approvals.js +30 -4
  29. package/dist/commands/approvals.js.map +1 -1
  30. package/dist/commands/artifacts.d.ts.map +1 -1
  31. package/dist/commands/artifacts.js +100 -37
  32. package/dist/commands/artifacts.js.map +1 -1
  33. package/dist/commands/auth.js +2 -2
  34. package/dist/commands/blocks.d.ts.map +1 -1
  35. package/dist/commands/blocks.js +5 -4
  36. package/dist/commands/blocks.js.map +1 -1
  37. package/dist/commands/build.d.ts +10 -2
  38. package/dist/commands/build.d.ts.map +1 -1
  39. package/dist/commands/build.js +109 -16
  40. package/dist/commands/build.js.map +1 -1
  41. package/dist/commands/capabilities.d.ts.map +1 -1
  42. package/dist/commands/capabilities.js +37 -10
  43. package/dist/commands/capabilities.js.map +1 -1
  44. package/dist/commands/console.d.ts +21 -0
  45. package/dist/commands/console.d.ts.map +1 -0
  46. package/dist/commands/console.js +87 -0
  47. package/dist/commands/console.js.map +1 -0
  48. package/dist/commands/conversations.d.ts.map +1 -1
  49. package/dist/commands/conversations.js +13 -2
  50. package/dist/commands/conversations.js.map +1 -1
  51. package/dist/commands/deploy.d.ts.map +1 -1
  52. package/dist/commands/deploy.js +2 -2
  53. package/dist/commands/deploy.js.map +1 -1
  54. package/dist/commands/dev.d.ts +11 -0
  55. package/dist/commands/dev.d.ts.map +1 -1
  56. package/dist/commands/dev.js +211 -39
  57. package/dist/commands/dev.js.map +1 -1
  58. package/dist/commands/doctor.d.ts +18 -5
  59. package/dist/commands/doctor.d.ts.map +1 -1
  60. package/dist/commands/doctor.js +421 -21
  61. package/dist/commands/doctor.js.map +1 -1
  62. package/dist/commands/env-scoped.d.ts +44 -0
  63. package/dist/commands/env-scoped.d.ts.map +1 -0
  64. package/dist/commands/env-scoped.js +222 -0
  65. package/dist/commands/env-scoped.js.map +1 -0
  66. package/dist/commands/env.d.ts.map +1 -1
  67. package/dist/commands/env.js +85 -123
  68. package/dist/commands/env.js.map +1 -1
  69. package/dist/commands/eval-runs.d.ts +9 -0
  70. package/dist/commands/eval-runs.d.ts.map +1 -1
  71. package/dist/commands/eval-runs.js +20 -19
  72. package/dist/commands/eval-runs.js.map +1 -1
  73. package/dist/commands/eval-suites.d.ts.map +1 -1
  74. package/dist/commands/eval-suites.js +16 -8
  75. package/dist/commands/eval-suites.js.map +1 -1
  76. package/dist/commands/exports.d.ts +3 -0
  77. package/dist/commands/exports.d.ts.map +1 -0
  78. package/dist/commands/exports.js +82 -0
  79. package/dist/commands/exports.js.map +1 -0
  80. package/dist/commands/feedback.d.ts.map +1 -1
  81. package/dist/commands/feedback.js +6 -5
  82. package/dist/commands/feedback.js.map +1 -1
  83. package/dist/commands/flows.d.ts.map +1 -1
  84. package/dist/commands/flows.js +2 -1
  85. package/dist/commands/flows.js.map +1 -1
  86. package/dist/commands/gate-policies.d.ts.map +1 -1
  87. package/dist/commands/gate-policies.js +2 -1
  88. package/dist/commands/gate-policies.js.map +1 -1
  89. package/dist/commands/guardrails.d.ts.map +1 -1
  90. package/dist/commands/guardrails.js +3 -2
  91. package/dist/commands/guardrails.js.map +1 -1
  92. package/dist/commands/helpers.js +5 -5
  93. package/dist/commands/helpers.js.map +1 -1
  94. package/dist/commands/index.d.ts.map +1 -1
  95. package/dist/commands/index.js +14 -0
  96. package/dist/commands/index.js.map +1 -1
  97. package/dist/commands/init.d.ts +1 -1
  98. package/dist/commands/init.d.ts.map +1 -1
  99. package/dist/commands/init.js +254 -18
  100. package/dist/commands/init.js.map +1 -1
  101. package/dist/commands/judge-classes.d.ts.map +1 -1
  102. package/dist/commands/judge-classes.js +11 -10
  103. package/dist/commands/judge-classes.js.map +1 -1
  104. package/dist/commands/judgments.d.ts.map +1 -1
  105. package/dist/commands/judgments.js +7 -6
  106. package/dist/commands/judgments.js.map +1 -1
  107. package/dist/commands/key.js +4 -4
  108. package/dist/commands/memory.d.ts.map +1 -1
  109. package/dist/commands/memory.js +277 -25
  110. package/dist/commands/memory.js.map +1 -1
  111. package/dist/commands/people.d.ts +3 -0
  112. package/dist/commands/people.d.ts.map +1 -0
  113. package/dist/commands/people.js +166 -0
  114. package/dist/commands/people.js.map +1 -0
  115. package/dist/commands/proposals.d.ts.map +1 -1
  116. package/dist/commands/proposals.js +390 -69
  117. package/dist/commands/proposals.js.map +1 -1
  118. package/dist/commands/provenance.d.ts.map +1 -1
  119. package/dist/commands/provenance.js +6 -7
  120. package/dist/commands/provenance.js.map +1 -1
  121. package/dist/commands/providers.d.ts.map +1 -1
  122. package/dist/commands/providers.js +46 -7
  123. package/dist/commands/providers.js.map +1 -1
  124. package/dist/commands/reviewers.d.ts.map +1 -1
  125. package/dist/commands/reviewers.js +3 -2
  126. package/dist/commands/reviewers.js.map +1 -1
  127. package/dist/commands/runs.d.ts.map +1 -1
  128. package/dist/commands/runs.js +24 -14
  129. package/dist/commands/runs.js.map +1 -1
  130. package/dist/commands/schedules.d.ts +3 -0
  131. package/dist/commands/schedules.d.ts.map +1 -0
  132. package/dist/commands/schedules.js +275 -0
  133. package/dist/commands/schedules.js.map +1 -0
  134. package/dist/commands/secrets.d.ts.map +1 -1
  135. package/dist/commands/secrets.js +10 -11
  136. package/dist/commands/secrets.js.map +1 -1
  137. package/dist/commands/service-accounts.d.ts +3 -0
  138. package/dist/commands/service-accounts.d.ts.map +1 -0
  139. package/dist/commands/service-accounts.js +175 -0
  140. package/dist/commands/service-accounts.js.map +1 -0
  141. package/dist/commands/skills.d.ts +1 -1
  142. package/dist/commands/skills.d.ts.map +1 -1
  143. package/dist/commands/skills.js +11 -4
  144. package/dist/commands/skills.js.map +1 -1
  145. package/dist/commands/sso.d.ts +6 -0
  146. package/dist/commands/sso.d.ts.map +1 -0
  147. package/dist/commands/sso.js +318 -0
  148. package/dist/commands/sso.js.map +1 -0
  149. package/dist/commands/tokens.d.ts +11 -0
  150. package/dist/commands/tokens.d.ts.map +1 -1
  151. package/dist/commands/tokens.js +144 -11
  152. package/dist/commands/tokens.js.map +1 -1
  153. package/dist/commands/tools.d.ts.map +1 -1
  154. package/dist/commands/tools.js +4 -3
  155. package/dist/commands/tools.js.map +1 -1
  156. package/dist/commands/unwired.d.ts.map +1 -1
  157. package/dist/commands/unwired.js +1 -30
  158. package/dist/commands/unwired.js.map +1 -1
  159. package/dist/commands/upgrade.d.ts +11 -0
  160. package/dist/commands/upgrade.d.ts.map +1 -0
  161. package/dist/commands/upgrade.js +160 -0
  162. package/dist/commands/upgrade.js.map +1 -0
  163. package/dist/context.d.ts +7 -0
  164. package/dist/context.d.ts.map +1 -1
  165. package/dist/context.js +1 -0
  166. package/dist/context.js.map +1 -1
  167. package/dist/dev/defaults.d.ts +28 -11
  168. package/dist/dev/defaults.d.ts.map +1 -1
  169. package/dist/dev/defaults.js +114 -35
  170. package/dist/dev/defaults.js.map +1 -1
  171. package/dist/dev/google-credentials.d.ts +50 -0
  172. package/dist/dev/google-credentials.d.ts.map +1 -0
  173. package/dist/dev/google-credentials.js +157 -0
  174. package/dist/dev/google-credentials.js.map +1 -0
  175. package/dist/dev/java-builder.d.ts +56 -0
  176. package/dist/dev/java-builder.d.ts.map +1 -0
  177. package/dist/dev/java-builder.js +204 -0
  178. package/dist/dev/java-builder.js.map +1 -0
  179. package/dist/dev/jvm-run-files.d.ts +29 -0
  180. package/dist/dev/jvm-run-files.d.ts.map +1 -0
  181. package/dist/dev/jvm-run-files.js +94 -0
  182. package/dist/dev/jvm-run-files.js.map +1 -0
  183. package/dist/dev/lines.d.ts +13 -0
  184. package/dist/dev/lines.d.ts.map +1 -0
  185. package/dist/dev/lines.js +24 -0
  186. package/dist/dev/lines.js.map +1 -0
  187. package/dist/dev/log-view.d.ts +116 -0
  188. package/dist/dev/log-view.d.ts.map +1 -0
  189. package/dist/dev/log-view.js +233 -0
  190. package/dist/dev/log-view.js.map +1 -0
  191. package/dist/dev/pack-code.d.ts +79 -4
  192. package/dist/dev/pack-code.d.ts.map +1 -1
  193. package/dist/dev/pack-code.js +262 -3
  194. package/dist/dev/pack-code.js.map +1 -1
  195. package/dist/dev/pack-env.d.ts.map +1 -1
  196. package/dist/dev/pack-env.js +4 -0
  197. package/dist/dev/pack-env.js.map +1 -1
  198. package/dist/dev/pack-service.d.ts +11 -1
  199. package/dist/dev/pack-service.d.ts.map +1 -1
  200. package/dist/dev/pack-service.js +56 -20
  201. package/dist/dev/pack-service.js.map +1 -1
  202. package/dist/dev/paths.d.ts +6 -0
  203. package/dist/dev/paths.d.ts.map +1 -1
  204. package/dist/dev/paths.js +8 -0
  205. package/dist/dev/paths.js.map +1 -1
  206. package/dist/dev/project-database.js +1 -1
  207. package/dist/dev/project-database.js.map +1 -1
  208. package/dist/dev/runners.d.ts +35 -9
  209. package/dist/dev/runners.d.ts.map +1 -1
  210. package/dist/dev/runtime-container.d.ts +10 -2
  211. package/dist/dev/runtime-container.d.ts.map +1 -1
  212. package/dist/dev/runtime-container.js +48 -20
  213. package/dist/dev/runtime-container.js.map +1 -1
  214. package/dist/dev/runtime-env.d.ts +10 -0
  215. package/dist/dev/runtime-env.d.ts.map +1 -1
  216. package/dist/dev/runtime-env.js +8 -4
  217. package/dist/dev/runtime-env.js.map +1 -1
  218. package/dist/dev/runtime-image.d.ts +1 -1
  219. package/dist/dev/runtime-image.js +1 -1
  220. package/dist/dev/scala-builder.d.ts +72 -0
  221. package/dist/dev/scala-builder.d.ts.map +1 -0
  222. package/dist/dev/scala-builder.js +347 -0
  223. package/dist/dev/scala-builder.js.map +1 -0
  224. package/dist/env/project-env.d.ts.map +1 -1
  225. package/dist/env/project-env.js +3 -1
  226. package/dist/env/project-env.js.map +1 -1
  227. package/dist/errors.d.ts +9 -0
  228. package/dist/errors.d.ts.map +1 -1
  229. package/dist/errors.js +15 -0
  230. package/dist/errors.js.map +1 -1
  231. package/dist/help.d.ts +14 -0
  232. package/dist/help.d.ts.map +1 -1
  233. package/dist/help.js +55 -0
  234. package/dist/help.js.map +1 -1
  235. package/dist/init/dependency-specs.d.ts +26 -0
  236. package/dist/init/dependency-specs.d.ts.map +1 -1
  237. package/dist/init/dependency-specs.js +38 -0
  238. package/dist/init/dependency-specs.js.map +1 -1
  239. package/dist/init/java-augment.d.ts +24 -0
  240. package/dist/init/java-augment.d.ts.map +1 -0
  241. package/dist/init/java-augment.js +198 -0
  242. package/dist/init/java-augment.js.map +1 -0
  243. package/dist/init/mode-detect.d.ts +2 -2
  244. package/dist/init/mode-detect.d.ts.map +1 -1
  245. package/dist/init/mode-detect.js +12 -1
  246. package/dist/init/mode-detect.js.map +1 -1
  247. package/dist/init/scala-augment.d.ts +23 -0
  248. package/dist/init/scala-augment.d.ts.map +1 -0
  249. package/dist/init/scala-augment.js +213 -0
  250. package/dist/init/scala-augment.js.map +1 -0
  251. package/dist/init/template-files.d.ts +40 -2
  252. package/dist/init/template-files.d.ts.map +1 -1
  253. package/dist/init/template-files.js +56 -5
  254. package/dist/init/template-files.js.map +1 -1
  255. package/dist/main.d.ts +3 -0
  256. package/dist/main.d.ts.map +1 -1
  257. package/dist/main.js +30 -4
  258. package/dist/main.js.map +1 -1
  259. package/dist/open-url.d.ts +15 -0
  260. package/dist/open-url.d.ts.map +1 -0
  261. package/dist/open-url.js +41 -0
  262. package/dist/open-url.js.map +1 -0
  263. package/dist/package-manager.d.ts +10 -3
  264. package/dist/package-manager.d.ts.map +1 -1
  265. package/dist/package-manager.js +19 -1
  266. package/dist/package-manager.js.map +1 -1
  267. package/dist/providers/preset-loader.d.ts.map +1 -1
  268. package/dist/providers/preset-loader.js +9 -1
  269. package/dist/providers/preset-loader.js.map +1 -1
  270. package/dist/providers/presets/anthropic.json +35 -4
  271. package/dist/providers/presets/gemini-api.json +3 -0
  272. package/dist/providers/presets/gemini.json +3 -0
  273. package/dist/providers/presets/groq.json +1 -0
  274. package/dist/providers/presets/openai.json +36 -4
  275. package/dist/providers/presets/openrouter.json +6 -2
  276. package/dist/sdk-skills/kindgi-authoring-agents/SKILL.md +28 -4
  277. package/dist/sdk-skills/kindgi-authoring-flows/SKILL.md +1 -1
  278. package/dist/sdk-skills/kindgi-authoring-guardrails/SKILL.md +47 -3
  279. package/dist/sdk-skills/kindgi-authoring-mcp-servers/SKILL.md +7 -5
  280. package/dist/sdk-skills/kindgi-authoring-providers/SKILL.md +81 -52
  281. package/dist/sdk-skills/kindgi-authoring-tools/SKILL.md +27 -1
  282. package/dist/sdk-skills/kindgi-framework-feedback/SKILL.md +5 -4
  283. package/dist/sdk-skills/kindgi-getting-started/SKILL.md +1 -1
  284. package/dist/sdk-skills/kindgi-java-authoring-agents/SKILL.md +220 -0
  285. package/dist/sdk-skills/kindgi-java-authoring-flows/SKILL.md +390 -0
  286. package/dist/sdk-skills/kindgi-java-authoring-guardrails/SKILL.md +209 -0
  287. package/dist/sdk-skills/kindgi-java-authoring-tools/SKILL.md +334 -0
  288. package/dist/sdk-skills/kindgi-java-getting-started/SKILL.md +270 -0
  289. package/dist/sdk-skills/kindgi-python-authoring-agents/SKILL.md +23 -5
  290. package/dist/sdk-skills/kindgi-python-authoring-flows/SKILL.md +1 -1
  291. package/dist/sdk-skills/kindgi-python-authoring-guardrails/SKILL.md +10 -3
  292. package/dist/sdk-skills/kindgi-python-authoring-tools/SKILL.md +36 -5
  293. package/dist/sdk-skills/kindgi-python-getting-started/SKILL.md +2 -2
  294. package/dist/sdk-skills/kindgi-scala-authoring-agents/SKILL.md +217 -0
  295. package/dist/sdk-skills/kindgi-scala-authoring-flows/SKILL.md +357 -0
  296. package/dist/sdk-skills/kindgi-scala-authoring-guardrails/SKILL.md +199 -0
  297. package/dist/sdk-skills/kindgi-scala-authoring-tools/SKILL.md +302 -0
  298. package/dist/sdk-skills/kindgi-scala-getting-started/SKILL.md +302 -0
  299. package/dist/templates/java/.mvn/wrapper/maven-wrapper.properties +3 -0
  300. package/dist/templates/java/AGENTS.md +31 -0
  301. package/dist/templates/java/README.md.tmpl +69 -0
  302. package/dist/templates/java/gitignore +9 -0
  303. package/dist/templates/java/kindgi.config.json.tmpl +8 -0
  304. package/dist/templates/java/kindgiw +33 -0
  305. package/dist/templates/java/kindgiw.cmd +28 -0
  306. package/dist/templates/java/mvnw +295 -0
  307. package/dist/templates/java/pom.xml.tmpl +65 -0
  308. package/dist/templates/java/src/main/java/__PACKAGE__/agents/EchoAgent.java.tmpl +27 -0
  309. package/dist/templates/java/src/main/java/__PACKAGE__/flows/EchoFlow.java.tmpl +18 -0
  310. package/dist/templates/java/src/main/java/__PACKAGE__/guardrails/ResponseNotEmpty.java.tmpl +28 -0
  311. package/dist/templates/java/src/main/java/__PACKAGE__/tools/Echo.java.tmpl +22 -0
  312. package/dist/templates/java/src/main/java/__PACKAGE__/tools/Greet.java.tmpl +23 -0
  313. package/dist/templates/java/src/test/java/__PACKAGE__/ToolsTest.java.tmpl +30 -0
  314. package/dist/templates/minimal/README.md.tmpl +8 -14
  315. package/dist/templates/python/README.md.tmpl +6 -6
  316. package/dist/templates/sample/README.md.tmpl +7 -13
  317. package/dist/templates/scala/AGENTS.md +32 -0
  318. package/dist/templates/scala/README.md.tmpl +75 -0
  319. package/dist/templates/scala/build.sbt.tmpl +16 -0
  320. package/dist/templates/scala/gitignore +13 -0
  321. package/dist/templates/scala/kindgi.config.json.tmpl +8 -0
  322. package/dist/templates/scala/project/build.properties +1 -0
  323. package/dist/templates/scala/src/main/scala/__PACKAGE__/agents/EchoAgent.scala.tmpl +23 -0
  324. package/dist/templates/scala/src/main/scala/__PACKAGE__/flows/EchoFlow.scala.tmpl +16 -0
  325. package/dist/templates/scala/src/main/scala/__PACKAGE__/guardrails/ResponseNotEmpty.scala.tmpl +21 -0
  326. package/dist/templates/scala/src/main/scala/__PACKAGE__/tools/Echo.scala.tmpl +16 -0
  327. package/dist/templates/scala/src/main/scala/__PACKAGE__/tools/Greet.scala.tmpl +17 -0
  328. package/dist/templates/scala/src/test/scala/__PACKAGE__/ToolsSuite.scala.tmpl +23 -0
  329. package/package.json +13 -12
@@ -8,13 +8,35 @@
8
8
  * Node pack service (`@kindgi/handler-runtime`).
9
9
  * - python: no bundling, `python -m kindgi.pack index` and
10
10
  * `python -m kindgi.pack serve` with the pack's own interpreter.
11
+ * - java: Maven compiles the pack (`java-builder.ts`), then
12
+ * `com.kindgi.pack.Main index` and `… serve` (through the
13
+ * launcher, `kindgi-pack-java`) with the pack's JDK.
14
+ * - scala: sbt compiles the pack through its server (`scala-builder.ts`),
15
+ * then the same as Java: kindgi-pack indexes and serves it.
11
16
  *
12
- * Both run under the pack's environment (`devPackEnv`) and behind the same
17
+ * All run under the pack's environment (`devPackEnv`) and behind the same
13
18
  * supervisor and front, so the api-server never knows which it is.
14
19
  */
15
20
  import { spawn } from 'node:child_process';
16
21
  import { access, stat } from 'node:fs/promises';
17
22
  import { join } from 'node:path';
23
+ import { devJvmDir } from './paths.js';
24
+ /** Whether the pack's code runs on the JVM: kindgi-pack indexes and serves it. */
25
+ export function isJvmPackCode(code) {
26
+ return code?.language === 'java' || code?.language === 'scala';
27
+ }
28
+ /** The `@argfile` passing a JVM pack's classpath to `java` (written by its builder). */
29
+ export function javaArgsFile(code) {
30
+ return join(code.workDir, 'java.args');
31
+ }
32
+ /** The launcher (`kindgi-pack-java`) extracted from the pack's kindgi-pack jar. */
33
+ export function javaLauncher(code) {
34
+ return join(code.workDir, 'kindgi-pack-java');
35
+ }
36
+ /** The environment a JVM pack's children run with: the pack's, plus its JDK as `JAVA_HOME`. */
37
+ export function javaEnv(code, env) {
38
+ return code.javaHome === undefined ? env : { ...env, JAVA_HOME: code.javaHome };
39
+ }
18
40
  export const NODE_PACK_CODE = { language: 'node' };
19
41
  /**
20
42
  * The interpreter that runs a Python pack:
@@ -53,10 +75,144 @@ export async function resolvePackPython(packDir, config) {
53
75
  }
54
76
  return { kind: 'ok', value: ['python3'] };
55
77
  }
56
- /** The pack code for a language, with the interpreter resolved for Python. */
57
- export async function resolvePackCode(language, packDir, config) {
78
+ /**
79
+ * The JDK and the Maven that run and build a Java pack:
80
+ *
81
+ * - the JDK: `dev.javaHome` in the config, else `JAVA_HOME`, else `java`
82
+ * on `PATH`;
83
+ * - Maven: `dev.maven` (an argv, such as `["mvn", "-s", "settings.xml"]`),
84
+ * else the pack's wrapper (`mvnw`, run with `sh`), else `mvn` on `PATH`.
85
+ *
86
+ * A Java pack's service starts through a POSIX shell script (the launcher
87
+ * keeps its token out of the JVM's environment): on Windows, `kindgi dev`
88
+ * runs it under WSL.
89
+ */
90
+ export async function resolvePackJava(packDir, config, hostEnv, platform = process.platform) {
91
+ const runtime = resolveJvmRuntime('java', packDir, config, hostEnv, platform);
92
+ if (runtime.kind === 'err')
93
+ return runtime;
94
+ const configuredMaven = devSettings(config).maven;
95
+ let maven;
96
+ if (configuredMaven !== undefined) {
97
+ const argv = commandArgv(configuredMaven);
98
+ if (argv === undefined) {
99
+ return {
100
+ kind: 'err',
101
+ message: '`dev.maven` must be a command or a non-empty command list (e.g. ["mvn", "-s", "settings.xml"]).',
102
+ };
103
+ }
104
+ maven = argv;
105
+ }
106
+ else if (await isFile(join(packDir, 'mvnw'))) {
107
+ maven = ['sh', join(packDir, 'mvnw')];
108
+ }
109
+ else {
110
+ maven = ['mvn'];
111
+ }
112
+ const mavenEnv = {};
113
+ for (const name of ['MAVEN_ARGS', 'MAVEN_OPTS']) {
114
+ const value = hostEnv[name];
115
+ if (value !== undefined && value !== '')
116
+ mavenEnv[name] = value;
117
+ }
118
+ return {
119
+ kind: 'ok',
120
+ value: {
121
+ language: 'java',
122
+ ...runtime.value,
123
+ maven,
124
+ ...(Object.keys(mavenEnv).length > 0 && { mavenEnv }),
125
+ },
126
+ };
127
+ }
128
+ /**
129
+ * The JDK and the sbt that run and build a Scala pack:
130
+ *
131
+ * - the JDK, as for a Java pack: `dev.javaHome`, else `JAVA_HOME`, else
132
+ * `java` on `PATH`;
133
+ * - sbt: `dev.sbt` (an argv, such as `["sbt", "-Dsbt.override.build.repos=true"]`),
134
+ * else `sbt` on `PATH`. Builds go through its server (`sbt --client`),
135
+ * so a save compiles without starting a JVM.
136
+ */
137
+ export async function resolvePackScala(packDir, config, hostEnv, platform = process.platform) {
138
+ const runtime = resolveJvmRuntime('scala', packDir, config, hostEnv, platform);
139
+ if (runtime.kind === 'err')
140
+ return runtime;
141
+ const configuredSbt = devSettings(config).sbt;
142
+ let sbt = ['sbt'];
143
+ if (configuredSbt !== undefined) {
144
+ const argv = commandArgv(configuredSbt);
145
+ if (argv === undefined) {
146
+ return {
147
+ kind: 'err',
148
+ message: '`dev.sbt` must be a command or a non-empty command list (e.g. ["sbt", "-mem", "2048"]).',
149
+ };
150
+ }
151
+ sbt = argv;
152
+ }
153
+ const sbtOpts = hostEnv.SBT_OPTS;
154
+ return {
155
+ kind: 'ok',
156
+ value: {
157
+ language: 'scala',
158
+ ...runtime.value,
159
+ sbt,
160
+ ...(sbtOpts !== undefined && sbtOpts !== '' && { sbtEnv: { SBT_OPTS: sbtOpts } }),
161
+ },
162
+ };
163
+ }
164
+ /** A config's `dev` table, or an empty one. */
165
+ function devSettings(config) {
166
+ const dev = config?.dev;
167
+ return dev !== null && typeof dev === 'object' ? dev : {};
168
+ }
169
+ /** A configured command (a string, or a non-empty list of non-empty strings) as an argv; undefined when it's neither. */
170
+ function commandArgv(configured) {
171
+ const argv = typeof configured === 'string' ? [configured] : configured;
172
+ return Array.isArray(argv) &&
173
+ argv.length > 0 &&
174
+ argv.every((part) => typeof part === 'string' && part !== '')
175
+ ? argv
176
+ : undefined;
177
+ }
178
+ /**
179
+ * The JDK every JVM pack runs on: `dev.javaHome`, else `JAVA_HOME`, else
180
+ * `java` on `PATH`. A JVM pack's service starts through a POSIX shell script
181
+ * (the launcher keeps its token out of the JVM's environment): on Windows,
182
+ * `kindgi dev` runs it under WSL.
183
+ */
184
+ function resolveJvmRuntime(language, packDir, config, hostEnv, platform) {
185
+ const name = language === 'java' ? 'Java' : 'Scala';
186
+ if (platform === 'win32') {
187
+ return {
188
+ kind: 'err',
189
+ message: `a ${name} pack's service starts through a POSIX shell script (kindgi-pack-java), so on Windows run kindgi dev under WSL.`,
190
+ };
191
+ }
192
+ const configuredHome = devSettings(config).javaHome;
193
+ if (configuredHome !== undefined &&
194
+ (typeof configuredHome !== 'string' || configuredHome === '')) {
195
+ return { kind: 'err', message: '`dev.javaHome` must be the path of a JDK (17 or later).' };
196
+ }
197
+ const javaHome = configuredHome ??
198
+ (hostEnv.JAVA_HOME !== undefined && hostEnv.JAVA_HOME !== '' ? hostEnv.JAVA_HOME : undefined);
199
+ return {
200
+ kind: 'ok',
201
+ value: {
202
+ java: javaHome === undefined ? 'java' : join(javaHome, 'bin', 'java'),
203
+ ...(javaHome !== undefined && { javaHome }),
204
+ workDir: devJvmDir(packDir, language),
205
+ },
206
+ };
207
+ }
208
+ /** The pack code for a language, with the interpreter or the JDK resolved. */
209
+ export async function resolvePackCode(language, packDir, config, hostEnv = process.env) {
58
210
  if (language === 'node')
59
211
  return { kind: 'ok', value: NODE_PACK_CODE };
212
+ if (language === 'java')
213
+ return resolvePackJava(packDir, config, hostEnv);
214
+ if (language === 'scala')
215
+ return resolvePackScala(packDir, config, hostEnv);
60
216
  const python = await resolvePackPython(packDir, config);
61
217
  if (python.kind === 'err')
62
218
  return python;
@@ -118,6 +274,109 @@ export async function checkPackPython(python, env, packDir) {
118
274
  value: `Python ${pythonVersion ?? '?'} · kindgi ${kindgiVersion ?? '?'} (${shown})`,
119
275
  };
120
276
  }
277
+ /** The oldest JDK a JVM pack runs on (kindgi-pack's baseline). */
278
+ export const MIN_JAVA_MAJOR = 17;
279
+ /**
280
+ * Check a JVM pack's JDK (17 or later) and its build tool (Maven or sbt)
281
+ * start, with the pack's environment — so a missing JDK or build tool is one
282
+ * clear line at boot instead of a build failure. Whether the pack has
283
+ * kindgi-pack shows at its first build.
284
+ */
285
+ export async function checkPackJvm(code, env, packDir) {
286
+ const childEnv = javaEnv(code, env);
287
+ const jdk = await checkJdk(code, childEnv, packDir);
288
+ if (jdk.kind === 'err')
289
+ return jdk;
290
+ const tool = code.language === 'scala'
291
+ ? await checkTool(code.sbt, ['--script-version'], { ...childEnv, ...code.sbtEnv }, packDir, {
292
+ name: 'sbt',
293
+ version: /(\d+\.\d+\.\d+\S*)/,
294
+ setting: 'dev.sbt',
295
+ install: 'Install sbt 1.10 or later (https://www.scala-sbt.org/download),',
296
+ })
297
+ : await checkTool(code.maven, ['--version'], { ...childEnv, ...code.mavenEnv }, packDir, {
298
+ name: 'Maven',
299
+ version: /Apache Maven (\S+)/,
300
+ setting: 'dev.maven',
301
+ install: 'Add the Maven wrapper to the pack (mvn wrapper:wrapper), install Maven 3.9 or later,',
302
+ });
303
+ if (tool.kind === 'err')
304
+ return tool;
305
+ return {
306
+ kind: 'ok',
307
+ value: `Java ${jdk.value} · ${tool.value} (${code.javaHome ?? code.java}; ${(code.language === 'scala' ? code.sbt : code.maven).join(' ')})`,
308
+ };
309
+ }
310
+ /** The pack's JDK starts and is 17 or later: its version. */
311
+ async function checkJdk(code, env, packDir) {
312
+ const java = await run(code.java, ['-version'], env, packDir);
313
+ if (java.spawnError !== undefined) {
314
+ return {
315
+ kind: 'err',
316
+ message: [
317
+ `the pack's JDK (${code.java}) did not start: ${java.spawnError}`,
318
+ ` Install a JDK ${MIN_JAVA_MAJOR} or later (e.g. Eclipse Temurin), and set JAVA_HOME to it,`,
319
+ ' or point `dev.javaHome` in kindgi.config.json at one.',
320
+ ].join('\n'),
321
+ };
322
+ }
323
+ const version = /version "([^"]+)"/.exec(`${java.stderr}\n${java.stdout}`)?.[1];
324
+ const major = version === undefined ? undefined : javaMajor(version);
325
+ if (version === undefined || major === undefined || major < MIN_JAVA_MAJOR) {
326
+ return {
327
+ kind: 'err',
328
+ message: [
329
+ `the pack's JDK (${code.java}) is ${version ?? 'of an unknown version'}; a ${code.language === 'java' ? 'Java' : 'Scala'} pack needs ${MIN_JAVA_MAJOR} or later.`,
330
+ ' Set JAVA_HOME to a newer JDK, or point `dev.javaHome` in kindgi.config.json at one.',
331
+ ].join('\n'),
332
+ };
333
+ }
334
+ return { kind: 'ok', value: version };
335
+ }
336
+ /** The pack's build tool runs: its name and version (`Maven 3.9.9`, `sbt 1.12.15`). */
337
+ async function checkTool(argv, versionArgs, env, packDir, about) {
338
+ const [program, ...prefix] = argv;
339
+ const result = await run(program, [...prefix, ...versionArgs], env, packDir);
340
+ if (result.spawnError !== undefined || result.code !== 0) {
341
+ const detail = result.spawnError ?? (result.stderr.trim() || result.stdout.trim()).split('\n').pop();
342
+ return {
343
+ kind: 'err',
344
+ message: [
345
+ `the pack's ${about.name} (${argv.join(' ')}) did not run: ${detail ?? ''}`,
346
+ ` ${about.install}`,
347
+ ` or point \`${about.setting}\` in kindgi.config.json at one.`,
348
+ ].join('\n'),
349
+ };
350
+ }
351
+ return { kind: 'ok', value: `${about.name} ${about.version.exec(result.stdout)?.[1] ?? '?'}` };
352
+ }
353
+ /** `17.0.6` → 17; `1.8.0_392` → 8. */
354
+ export function javaMajor(version) {
355
+ const parts = version.split(/[.+_-]/);
356
+ const first = Number(parts[0]);
357
+ if (!Number.isInteger(first))
358
+ return undefined;
359
+ return first === 1 ? Number(parts[1]) : first;
360
+ }
361
+ function run(program, args, env, cwd) {
362
+ return new Promise((resolve) => {
363
+ const child = spawn(program, [...args], {
364
+ env,
365
+ ...(cwd !== undefined && { cwd }),
366
+ stdio: ['ignore', 'pipe', 'pipe'],
367
+ });
368
+ let out = '';
369
+ let err = '';
370
+ child.stdout.on('data', (chunk) => {
371
+ out += chunk.toString('utf8');
372
+ });
373
+ child.stderr.on('data', (chunk) => {
374
+ err += chunk.toString('utf8');
375
+ });
376
+ child.once('error', (cause) => resolve({ code: null, stdout: out, stderr: err, spawnError: cause.message }));
377
+ child.once('close', (exit) => resolve({ code: exit, stdout: out, stderr: err }));
378
+ });
379
+ }
121
380
  async function isFile(path) {
122
381
  try {
123
382
  return (await stat(path)).isFile();
@@ -1 +1 @@
1
- {"version":3,"file":"pack-code.js","sourceRoot":"","sources":["../../src/dev/pack-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pack-code.js","sourceRoot":"","sources":["../../src/dev/pack-code.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pack-env.d.ts","sourceRoot":"","sources":["../../src/dev/pack-env.ts"],"names":[],"mappings":"AAmBA,iEAAiE;AACjE,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAA+B,CAAC;AAE3E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CAChE;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAYxF;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAChC,SAAS,MAAM,EAAE,CAMnB"}
1
+ {"version":3,"file":"pack-env.d.ts","sourceRoot":"","sources":["../../src/dev/pack-env.ts"],"names":[],"mappings":"AAmBA,iEAAiE;AACjE,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAA+B,CAAC;AAE3E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CAChE;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgBxF;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAChC,SAAS,MAAM,EAAE,CAMnB"}
@@ -18,10 +18,14 @@ export async function devPackEnv(input) {
18
18
  if (value !== undefined)
19
19
  host[name] = value;
20
20
  }
21
+ // The files' `${VAR}` references to names they don't define (and a key's
22
+ // reference to itself, `KEY=${KEY}`) take the shell's value, as the
23
+ // runtime's do (`shellReferencesOf`). Nothing else from the shell is passed.
21
24
  const files = await readPackEnv({
22
25
  packDir: input.packDir,
23
26
  envName: LOCAL_ENV_NAME,
24
27
  ...(input.localEnvFiles !== undefined && { localEnvFiles: input.localEnvFiles }),
28
+ env: input.hostEnv,
25
29
  });
26
30
  return { ...host, ...packValues(files.values), NODE_ENV: 'development' };
27
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pack-env.js","sourceRoot":"","sources":["../../src/dev/pack-env.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;;;GAOG;AAEH,OAAO,EACL,cAAc,EACd,UAAU,EACV,WAAW,EACX,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,iEAAiE;AACjE,MAAM,CAAC,MAAM,aAAa,GAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAU3E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAsB;IACrD,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9C,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,cAAc;QACvB,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;KACjF,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAC3E,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,aAAiC;IAEjC,OAAO,mBAAmB,CAAC;QACzB,OAAO;QACP,OAAO,EAAE,cAAc;QACvB,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,CAAC;KACtD,CAAC,CAAC,IAAI,CAAC;AACV,CAAC"}
1
+ {"version":3,"file":"pack-env.js","sourceRoot":"","sources":["../../src/dev/pack-env.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;;;GAOG;AAEH,OAAO,EACL,cAAc,EACd,UAAU,EACV,WAAW,EACX,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,iEAAiE;AACjE,MAAM,CAAC,MAAM,aAAa,GAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAU3E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAsB;IACrD,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9C,CAAC;IACD,yEAAyE;IACzE,oEAAoE;IACpE,6EAA6E;IAC7E,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,cAAc;QACvB,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;QAChF,GAAG,EAAE,KAAK,CAAC,OAAO;KACnB,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAC3E,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,aAAiC;IAEjC,OAAO,mBAAmB,CAAC;QACzB,OAAO;QACP,OAAO,EAAE,cAAc;QACvB,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,CAAC;KACtD,CAAC,CAAC,IAAI,CAAC;AACV,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { PackServiceSupervisor, PackServiceSupervisorEvent } from '@kindgi/handler-runtime/pack-service';
2
+ import { type DevLogView, type DevOutput } from './log-view.js';
2
3
  import type { PackCode } from './pack-code.js';
3
4
  import type { DevRunners, IndexResult, PackBuild, PackBuilder } from './runners.js';
4
5
  export interface PackRefresherDeps {
@@ -18,6 +19,8 @@ export interface PackRefresherDeps {
18
19
  readonly onBuild?: (build: Extract<PackBuild, {
19
20
  readonly kind: 'ok';
20
21
  }>) => Promise<void>;
22
+ /** What pack code prints while the indexer loads it, line by line. */
23
+ readonly onIndexerOutput?: (line: string, stream: 'stdout' | 'stderr') => void;
21
24
  }
22
25
  export interface PackRefresher {
23
26
  /**
@@ -36,5 +39,12 @@ export declare function createPackRefresher(deps: PackRefresherDeps): PackRefres
36
39
  * the pack root, which is the pack service's module root).
37
40
  */
38
41
  export declare function packServiceIndex(index: unknown, bundleMap: Readonly<Record<string, string>>): unknown;
39
- export declare function describePackEvent(event: PackServiceSupervisorEvent): string | undefined;
42
+ /**
43
+ * The dev console's view of the pack service: its records (each call,
44
+ * what the pack's code logs with `ctx.log`) as the view shows records,
45
+ * missing env, and crashes. Its lifecycle, and restarts that work, stay
46
+ * out of the pretty view; `--log-format=json` passes every record on.
47
+ * `--quiet` keeps a pack service that keeps crashing, and error records.
48
+ */
49
+ export declare function showPackEvent(event: PackServiceSupervisorEvent, view: DevLogView): readonly DevOutput[];
40
50
  //# sourceMappingURL=pack-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pack-service.d.ts","sourceRoot":"","sources":["../../src/dev/pack-service.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEpF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9D,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1F;AAED,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,sDAAsD;IACtD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAOD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAoH1E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC1C,OAAO,CAmBT;AAoBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,GAAG,SAAS,CAWvF"}
1
+ {"version":3,"file":"pack-service.d.ts","sourceRoot":"","sources":["../../src/dev/pack-service.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAA2B,MAAM,eAAe,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEpF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9D,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,sEAAsE;IACtE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;CAChF;AAED,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,sDAAsD;IACtD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAOD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAqH1E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC1C,OAAO,CAmBT;AAwBD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,0BAA0B,EACjC,IAAI,EAAE,UAAU,GACf,SAAS,SAAS,EAAE,CAiBtB"}
@@ -25,6 +25,7 @@
25
25
  */
26
26
  import { mkdir, readFile, writeFile } from 'node:fs/promises';
27
27
  import { dirname } from 'node:path';
28
+ import { parseRecord, showRecord } from './log-view.js';
28
29
  import { devIndexPath, devStagedIndexPath, devStagedPackIndexPath } from './paths.js';
29
30
  export function createPackRefresher(deps) {
30
31
  let tail = Promise.resolve();
@@ -46,6 +47,7 @@ export function createPackRefresher(deps) {
46
47
  bundleMap: build.bundleMap,
47
48
  env: deps.env,
48
49
  code: deps.code,
50
+ ...(deps.onIndexerOutput !== undefined && { onOutput: deps.onIndexerOutput }),
49
51
  });
50
52
  if (indexed.kind !== 'ok') {
51
53
  if (indexed.code === 'discovery-empty')
@@ -157,33 +159,67 @@ export function packServiceIndex(index, bundleMap) {
157
159
  }),
158
160
  };
159
161
  }
162
+ /** The pack service's own lifecycle: `kindgi dev` reports swaps and crashes its own way. */
163
+ const LIFECYCLE = new Set([
164
+ 'listening',
165
+ 'boot-failed',
166
+ 'config-invalid',
167
+ 'draining',
168
+ 'stopped',
169
+ ]);
170
+ /** A line `kindgi dev` writes itself about the pack service, on stderr. */
171
+ function note(line) {
172
+ return { stream: 'stderr', lines: [line] };
173
+ }
174
+ /** The `env.required` names the pack's env files don't give a value. */
175
+ function missingEnv(names) {
176
+ const one = names.length === 1;
177
+ return note(`⚠ the pack's env.required ${one ? 'name' : 'names'} ${names.join(', ')} ${one ? 'has' : 'have'} no value: add ${one ? 'it' : 'them'} to the pack's env files (a deployment won't be ready without ${one ? 'it' : 'them'})`);
178
+ }
160
179
  /**
161
- * The dev console's view of the pack service: what pack code prints,
162
- * failed calls, and crashes. Successful calls and restarts that work
163
- * stay quiet.
180
+ * The dev console's view of the pack service: its records (each call,
181
+ * what the pack's code logs with `ctx.log`) as the view shows records,
182
+ * missing env, and crashes. Its lifecycle, and restarts that work, stay
183
+ * out of the pretty view; `--log-format=json` passes every record on.
184
+ * `--quiet` keeps a pack service that keeps crashing, and error records.
164
185
  */
165
- /** A pack service log line worth a line of `kindgi dev` output: a failed call, missing env. */
166
- function describePackLog(event) {
167
- const e = event;
168
- if (e.kind === 'missing-env' && Array.isArray(e.names)) {
169
- const names = e.names.map(String);
170
- const one = names.length === 1;
171
- return ` ⚠ the pack's env.required ${one ? 'name' : 'names'} ${names.join(', ')} ${one ? 'has' : 'have'} no value: add ${one ? 'it' : 'them'} to the pack's env files (a deployment won't be ready without ${one ? 'it' : 'them'})`;
172
- }
173
- return e.kind === 'call' && e.outcome !== 'ok'
174
- ? ` [pack] ✗ ${String(e.id)}: ${String(e.outcome)}`
175
- : undefined;
176
- }
177
- export function describePackEvent(event) {
186
+ export function showPackEvent(event, view) {
178
187
  switch (event.kind) {
179
188
  case 'exited':
180
- return ` ⚠ pack service exited (${event.signal ?? event.code}) — restarting`;
189
+ return view.quiet
190
+ ? []
191
+ : [note(`⚠ pack service exited (${event.signal ?? event.code}) — restarting`)];
181
192
  case 'gave-up':
182
- return ` ✗ pack service kept exiting (${event.attempts} restarts) — fix the code and save to retry`;
193
+ return [
194
+ note(`✗ pack service kept exiting (${event.attempts} restarts) — fix the code and save to retry`),
195
+ ];
183
196
  case 'log':
184
- return describePackLog(event.event);
197
+ return showPackLog(event.event, event.line, view);
185
198
  default:
186
- return undefined;
199
+ return [];
200
+ }
201
+ }
202
+ function showPackLog(event, line, view) {
203
+ const names = Array.isArray(event.names) ? event.names.map(String) : undefined;
204
+ const record = parseRecord(line);
205
+ if (record === undefined) {
206
+ // A bare event, from a pack service from before records.
207
+ if (view.quiet)
208
+ return [];
209
+ if (event.kind === 'missing-env' && names !== undefined)
210
+ return [missingEnv(names)];
211
+ return event.kind === 'call' && event.outcome !== 'ok'
212
+ ? [note(`[pack] ✗ ${String(event.id)}: ${String(event.outcome)}`)]
213
+ : [];
214
+ }
215
+ const shown = showRecord('pack', record, line, view);
216
+ const own = record.subsystem === 'pack';
217
+ if (own && event.kind === 'missing-env' && names !== undefined) {
218
+ const warning = view.quiet ? [] : [missingEnv(names)];
219
+ return view.format === 'json' && shown !== undefined ? [shown, ...warning] : warning;
187
220
  }
221
+ if (own && LIFECYCLE.has(event.kind) && view.format === 'pretty')
222
+ return [];
223
+ return shown === undefined ? [] : [shown];
188
224
  }
189
225
  //# sourceMappingURL=pack-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pack-service.js","sourceRoot":"","sources":["../../src/dev/pack-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pack-service.js","sourceRoot":"","sources":["../../src/dev/pack-service.ts"],"names":[],"mappings":"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"}
@@ -19,4 +19,10 @@ export declare function devDistDir(packDir: string): string;
19
19
  export declare function devStagedPackIndexPath(packDir: string): string;
20
20
  /** The source → bundle map the indexer child reads. */
21
21
  export declare function devBundleMapPath(packDir: string): string;
22
+ /**
23
+ * Where `kindgi dev` keeps a JVM pack's build files: the classpath its build
24
+ * resolved, the `@argfile` that passes it to \`java`, and the launcher
25
+ * (`kindgi-pack-java`) extracted from the pack's own kindgi-pack jar.
26
+ */
27
+ export declare function devJvmDir(packDir: string, language: 'java' | 'scala'): string;
22
28
  //# sourceMappingURL=paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/dev/paths.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/dev/paths.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAE7E"}
package/dist/dev/paths.js CHANGED
@@ -32,4 +32,12 @@ export function devStagedPackIndexPath(packDir) {
32
32
  export function devBundleMapPath(packDir) {
33
33
  return join(packDir, '.kindgi', 'dev', 'bundle-map.json');
34
34
  }
35
+ /**
36
+ * Where `kindgi dev` keeps a JVM pack's build files: the classpath its build
37
+ * resolved, the `@argfile` that passes it to \`java`, and the launcher
38
+ * (`kindgi-pack-java`) extracted from the pack's own kindgi-pack jar.
39
+ */
40
+ export function devJvmDir(packDir, language) {
41
+ return join(packDir, '.kindgi', 'dev', language);
42
+ }
35
43
  //# sourceMappingURL=paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/dev/paths.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAC5D,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;AACjE,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/dev/paths.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAC5D,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;AACjE,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,QAA0B;IACnE,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC"}
@@ -86,7 +86,7 @@ export function createProjectDatabases(input) {
86
86
  if (folderExists(current.root)) {
87
87
  return {
88
88
  kind: 'refused',
89
- message: `the database ${project.database} belongs to ${current.root}, another folder whose project is also named "${project.name}". Give this one its own name: set \`project\` in kindgi.config.ts (or \`project\` under [tool.kindgi] in pyproject.toml), or pass --database-url.`,
89
+ message: `the database ${project.database} belongs to ${current.root}, another folder whose project is also named "${project.name}". Give this one its own name: set \`project\` in kindgi.config.ts (or \`project\` under [tool.kindgi] in pyproject.toml, or in kindgi.config.json), or pass --database-url.`,
90
90
  };
91
91
  }
92
92
  const moved = await setOwner(project.database, {
@@ -1 +1 @@
1
- {"version":3,"file":"project-database.js","sourceRoot":"","sources":["../../src/dev/project-database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-database.js","sourceRoot":"","sources":["../../src/dev/project-database.ts"],"names":[],"mappings":"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"}