@kindgi/cli 0.0.0-bootstrap.0 → 0.1.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 (496) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +690 -1
  3. package/dist/build/apt.d.ts +16 -0
  4. package/dist/build/apt.d.ts.map +1 -0
  5. package/dist/build/apt.js +50 -0
  6. package/dist/build/apt.js.map +1 -0
  7. package/dist/build/bundle.d.ts +45 -0
  8. package/dist/build/bundle.d.ts.map +1 -0
  9. package/dist/build/bundle.js +121 -0
  10. package/dist/build/bundle.js.map +1 -0
  11. package/dist/build/containerfile.d.ts +27 -0
  12. package/dist/build/containerfile.d.ts.map +1 -0
  13. package/dist/build/containerfile.js +196 -0
  14. package/dist/build/containerfile.js.map +1 -0
  15. package/dist/build/context-files.d.ts +24 -0
  16. package/dist/build/context-files.d.ts.map +1 -0
  17. package/dist/build/context-files.js +99 -0
  18. package/dist/build/context-files.js.map +1 -0
  19. package/dist/build/defaults.d.ts +66 -0
  20. package/dist/build/defaults.d.ts.map +1 -0
  21. package/dist/build/defaults.js +586 -0
  22. package/dist/build/defaults.js.map +1 -0
  23. package/dist/build/envelope.d.ts +72 -0
  24. package/dist/build/envelope.d.ts.map +1 -0
  25. package/dist/build/envelope.js +76 -0
  26. package/dist/build/envelope.js.map +1 -0
  27. package/dist/build/host-install.d.ts +48 -0
  28. package/dist/build/host-install.d.ts.map +1 -0
  29. package/dist/build/host-install.js +375 -0
  30. package/dist/build/host-install.js.map +1 -0
  31. package/dist/build/image-config.d.ts +32 -0
  32. package/dist/build/image-config.d.ts.map +1 -0
  33. package/dist/build/image-config.js +129 -0
  34. package/dist/build/image-config.js.map +1 -0
  35. package/dist/build/integrity.d.ts +51 -0
  36. package/dist/build/integrity.d.ts.map +1 -0
  37. package/dist/build/integrity.js +75 -0
  38. package/dist/build/integrity.js.map +1 -0
  39. package/dist/build/node-image.d.ts +18 -0
  40. package/dist/build/node-image.d.ts.map +1 -0
  41. package/dist/build/node-image.js +46 -0
  42. package/dist/build/node-image.js.map +1 -0
  43. package/dist/build/pack-root.d.ts +69 -0
  44. package/dist/build/pack-root.d.ts.map +1 -0
  45. package/dist/build/pack-root.js +102 -0
  46. package/dist/build/pack-root.js.map +1 -0
  47. package/dist/build/poetry-requirements.d.ts +5 -0
  48. package/dist/build/poetry-requirements.d.ts.map +1 -0
  49. package/dist/build/poetry-requirements.js +8 -0
  50. package/dist/build/poetry-requirements.js.map +1 -0
  51. package/dist/build/python-image.d.ts +40 -0
  52. package/dist/build/python-image.d.ts.map +1 -0
  53. package/dist/build/python-image.js +197 -0
  54. package/dist/build/python-image.js.map +1 -0
  55. package/dist/build/runners.d.ts +259 -0
  56. package/dist/build/runners.d.ts.map +1 -0
  57. package/dist/build/runners.js +4 -0
  58. package/dist/build/runners.js.map +1 -0
  59. package/dist/build/version-specifier.d.ts +2 -0
  60. package/dist/build/version-specifier.d.ts.map +1 -0
  61. package/dist/build/version-specifier.js +70 -0
  62. package/dist/build/version-specifier.js.map +1 -0
  63. package/dist/cli-package.d.ts +15 -0
  64. package/dist/cli-package.d.ts.map +1 -0
  65. package/dist/cli-package.js +37 -0
  66. package/dist/cli-package.js.map +1 -0
  67. package/dist/cli.d.ts +3 -0
  68. package/dist/cli.d.ts.map +1 -0
  69. package/dist/cli.js +26 -0
  70. package/dist/cli.js.map +1 -0
  71. package/dist/commands/adapters.d.ts +3 -0
  72. package/dist/commands/adapters.d.ts.map +1 -0
  73. package/dist/commands/adapters.js +148 -0
  74. package/dist/commands/adapters.js.map +1 -0
  75. package/dist/commands/agents.d.ts +3 -0
  76. package/dist/commands/agents.d.ts.map +1 -0
  77. package/dist/commands/agents.js +82 -0
  78. package/dist/commands/agents.js.map +1 -0
  79. package/dist/commands/approvals.d.ts +3 -0
  80. package/dist/commands/approvals.d.ts.map +1 -0
  81. package/dist/commands/approvals.js +92 -0
  82. package/dist/commands/approvals.js.map +1 -0
  83. package/dist/commands/artifacts.d.ts +3 -0
  84. package/dist/commands/artifacts.d.ts.map +1 -0
  85. package/dist/commands/artifacts.js +87 -0
  86. package/dist/commands/artifacts.js.map +1 -0
  87. package/dist/commands/auth.d.ts +3 -0
  88. package/dist/commands/auth.d.ts.map +1 -0
  89. package/dist/commands/auth.js +88 -0
  90. package/dist/commands/auth.js.map +1 -0
  91. package/dist/commands/build.d.ts +39 -0
  92. package/dist/commands/build.d.ts.map +1 -0
  93. package/dist/commands/build.js +872 -0
  94. package/dist/commands/build.js.map +1 -0
  95. package/dist/commands/capabilities.d.ts +3 -0
  96. package/dist/commands/capabilities.d.ts.map +1 -0
  97. package/dist/commands/capabilities.js +38 -0
  98. package/dist/commands/capabilities.js.map +1 -0
  99. package/dist/commands/conversations.d.ts +3 -0
  100. package/dist/commands/conversations.d.ts.map +1 -0
  101. package/dist/commands/conversations.js +75 -0
  102. package/dist/commands/conversations.js.map +1 -0
  103. package/dist/commands/deploy.d.ts +7 -0
  104. package/dist/commands/deploy.d.ts.map +1 -0
  105. package/dist/commands/deploy.js +697 -0
  106. package/dist/commands/deploy.js.map +1 -0
  107. package/dist/commands/dev.d.ts +44 -0
  108. package/dist/commands/dev.d.ts.map +1 -0
  109. package/dist/commands/dev.js +1032 -0
  110. package/dist/commands/dev.js.map +1 -0
  111. package/dist/commands/env.d.ts +27 -0
  112. package/dist/commands/env.d.ts.map +1 -0
  113. package/dist/commands/env.js +816 -0
  114. package/dist/commands/env.js.map +1 -0
  115. package/dist/commands/feedback.d.ts +33 -0
  116. package/dist/commands/feedback.d.ts.map +1 -0
  117. package/dist/commands/feedback.js +374 -0
  118. package/dist/commands/feedback.js.map +1 -0
  119. package/dist/commands/flows.d.ts +3 -0
  120. package/dist/commands/flows.d.ts.map +1 -0
  121. package/dist/commands/flows.js +60 -0
  122. package/dist/commands/flows.js.map +1 -0
  123. package/dist/commands/guardrails.d.ts +3 -0
  124. package/dist/commands/guardrails.d.ts.map +1 -0
  125. package/dist/commands/guardrails.js +89 -0
  126. package/dist/commands/guardrails.js.map +1 -0
  127. package/dist/commands/health.d.ts +8 -0
  128. package/dist/commands/health.d.ts.map +1 -0
  129. package/dist/commands/health.js +40 -0
  130. package/dist/commands/health.js.map +1 -0
  131. package/dist/commands/helpers.d.ts +37 -0
  132. package/dist/commands/helpers.d.ts.map +1 -0
  133. package/dist/commands/helpers.js +93 -0
  134. package/dist/commands/helpers.js.map +1 -0
  135. package/dist/commands/index.d.ts +7 -0
  136. package/dist/commands/index.d.ts.map +1 -0
  137. package/dist/commands/index.js +90 -0
  138. package/dist/commands/index.js.map +1 -0
  139. package/dist/commands/init.d.ts +46 -0
  140. package/dist/commands/init.d.ts.map +1 -0
  141. package/dist/commands/init.js +455 -0
  142. package/dist/commands/init.js.map +1 -0
  143. package/dist/commands/key.d.ts +3 -0
  144. package/dist/commands/key.d.ts.map +1 -0
  145. package/dist/commands/key.js +322 -0
  146. package/dist/commands/key.js.map +1 -0
  147. package/dist/commands/mcp.d.ts +43 -0
  148. package/dist/commands/mcp.d.ts.map +1 -0
  149. package/dist/commands/mcp.js +433 -0
  150. package/dist/commands/mcp.js.map +1 -0
  151. package/dist/commands/memory.d.ts +3 -0
  152. package/dist/commands/memory.d.ts.map +1 -0
  153. package/dist/commands/memory.js +82 -0
  154. package/dist/commands/memory.js.map +1 -0
  155. package/dist/commands/observations.d.ts +3 -0
  156. package/dist/commands/observations.d.ts.map +1 -0
  157. package/dist/commands/observations.js +27 -0
  158. package/dist/commands/observations.js.map +1 -0
  159. package/dist/commands/proposals.d.ts +3 -0
  160. package/dist/commands/proposals.d.ts.map +1 -0
  161. package/dist/commands/proposals.js +116 -0
  162. package/dist/commands/proposals.js.map +1 -0
  163. package/dist/commands/provenance.d.ts +3 -0
  164. package/dist/commands/provenance.d.ts.map +1 -0
  165. package/dist/commands/provenance.js +53 -0
  166. package/dist/commands/provenance.js.map +1 -0
  167. package/dist/commands/providers.d.ts +3 -0
  168. package/dist/commands/providers.d.ts.map +1 -0
  169. package/dist/commands/providers.js +202 -0
  170. package/dist/commands/providers.js.map +1 -0
  171. package/dist/commands/reviewers.d.ts +3 -0
  172. package/dist/commands/reviewers.d.ts.map +1 -0
  173. package/dist/commands/reviewers.js +78 -0
  174. package/dist/commands/reviewers.js.map +1 -0
  175. package/dist/commands/runs.d.ts +3 -0
  176. package/dist/commands/runs.d.ts.map +1 -0
  177. package/dist/commands/runs.js +221 -0
  178. package/dist/commands/runs.js.map +1 -0
  179. package/dist/commands/secrets.d.ts +21 -0
  180. package/dist/commands/secrets.d.ts.map +1 -0
  181. package/dist/commands/secrets.js +750 -0
  182. package/dist/commands/secrets.js.map +1 -0
  183. package/dist/commands/skills.d.ts +64 -0
  184. package/dist/commands/skills.d.ts.map +1 -0
  185. package/dist/commands/skills.js +430 -0
  186. package/dist/commands/skills.js.map +1 -0
  187. package/dist/commands/test.d.ts +5 -0
  188. package/dist/commands/test.d.ts.map +1 -0
  189. package/dist/commands/test.js +181 -0
  190. package/dist/commands/test.js.map +1 -0
  191. package/dist/commands/tokens.d.ts +3 -0
  192. package/dist/commands/tokens.d.ts.map +1 -0
  193. package/dist/commands/tokens.js +33 -0
  194. package/dist/commands/tokens.js.map +1 -0
  195. package/dist/commands/tools.d.ts +3 -0
  196. package/dist/commands/tools.d.ts.map +1 -0
  197. package/dist/commands/tools.js +153 -0
  198. package/dist/commands/tools.js.map +1 -0
  199. package/dist/commands/types.d.ts +54 -0
  200. package/dist/commands/types.d.ts.map +1 -0
  201. package/dist/commands/types.js +4 -0
  202. package/dist/commands/types.js.map +1 -0
  203. package/dist/commands/unwired.d.ts +17 -0
  204. package/dist/commands/unwired.d.ts.map +1 -0
  205. package/dist/commands/unwired.js +41 -0
  206. package/dist/commands/unwired.js.map +1 -0
  207. package/dist/commands/version.d.ts +8 -0
  208. package/dist/commands/version.d.ts.map +1 -0
  209. package/dist/commands/version.js +41 -0
  210. package/dist/commands/version.js.map +1 -0
  211. package/dist/config.d.ts +42 -0
  212. package/dist/config.d.ts.map +1 -0
  213. package/dist/config.js +83 -0
  214. package/dist/config.js.map +1 -0
  215. package/dist/context.d.ts +153 -0
  216. package/dist/context.d.ts.map +1 -0
  217. package/dist/context.js +44 -0
  218. package/dist/context.js.map +1 -0
  219. package/dist/deploy/defaults.d.ts +14 -0
  220. package/dist/deploy/defaults.d.ts.map +1 -0
  221. package/dist/deploy/defaults.js +37 -0
  222. package/dist/deploy/defaults.js.map +1 -0
  223. package/dist/deploy/envelope-loader.d.ts +24 -0
  224. package/dist/deploy/envelope-loader.d.ts.map +1 -0
  225. package/dist/deploy/envelope-loader.js +141 -0
  226. package/dist/deploy/envelope-loader.js.map +1 -0
  227. package/dist/deploy/post.d.ts +48 -0
  228. package/dist/deploy/post.d.ts.map +1 -0
  229. package/dist/deploy/post.js +210 -0
  230. package/dist/deploy/post.js.map +1 -0
  231. package/dist/deploy/response.d.ts +42 -0
  232. package/dist/deploy/response.d.ts.map +1 -0
  233. package/dist/deploy/response.js +128 -0
  234. package/dist/deploy/response.js.map +1 -0
  235. package/dist/deploy/runners.d.ts +218 -0
  236. package/dist/deploy/runners.d.ts.map +1 -0
  237. package/dist/deploy/runners.js +4 -0
  238. package/dist/deploy/runners.js.map +1 -0
  239. package/dist/dev/bundler.d.ts +8 -0
  240. package/dist/dev/bundler.d.ts.map +1 -0
  241. package/dist/dev/bundler.js +154 -0
  242. package/dist/dev/bundler.js.map +1 -0
  243. package/dist/dev/defaults.d.ts +138 -0
  244. package/dist/dev/defaults.d.ts.map +1 -0
  245. package/dist/dev/defaults.js +691 -0
  246. package/dist/dev/defaults.js.map +1 -0
  247. package/dist/dev/docker-compose.dev.yml +56 -0
  248. package/dist/dev/index-child.d.ts +2 -0
  249. package/dist/dev/index-child.d.ts.map +1 -0
  250. package/dist/dev/index-child.js +53 -0
  251. package/dist/dev/index-child.js.map +1 -0
  252. package/dist/dev/pack-code.d.ts +36 -0
  253. package/dist/dev/pack-code.d.ts.map +1 -0
  254. package/dist/dev/pack-code.js +129 -0
  255. package/dist/dev/pack-code.js.map +1 -0
  256. package/dist/dev/pack-env.d.ts +13 -0
  257. package/dist/dev/pack-env.d.ts.map +1 -0
  258. package/dist/dev/pack-env.js +36 -0
  259. package/dist/dev/pack-env.js.map +1 -0
  260. package/dist/dev/pack-service.d.ts +32 -0
  261. package/dist/dev/pack-service.d.ts.map +1 -0
  262. package/dist/dev/pack-service.js +188 -0
  263. package/dist/dev/pack-service.js.map +1 -0
  264. package/dist/dev/paths.d.ts +22 -0
  265. package/dist/dev/paths.d.ts.map +1 -0
  266. package/dist/dev/paths.js +35 -0
  267. package/dist/dev/paths.js.map +1 -0
  268. package/dist/dev/python-builder.d.ts +16 -0
  269. package/dist/dev/python-builder.d.ts.map +1 -0
  270. package/dist/dev/python-builder.js +122 -0
  271. package/dist/dev/python-builder.js.map +1 -0
  272. package/dist/dev/register.d.ts +71 -0
  273. package/dist/dev/register.d.ts.map +1 -0
  274. package/dist/dev/register.js +54 -0
  275. package/dist/dev/register.js.map +1 -0
  276. package/dist/dev/runners.d.ts +287 -0
  277. package/dist/dev/runners.d.ts.map +1 -0
  278. package/dist/dev/runners.js +4 -0
  279. package/dist/dev/runners.js.map +1 -0
  280. package/dist/dev/runtime-container.d.ts +62 -0
  281. package/dist/dev/runtime-container.d.ts.map +1 -0
  282. package/dist/dev/runtime-container.js +164 -0
  283. package/dist/dev/runtime-container.js.map +1 -0
  284. package/dist/dev/runtime-env.d.ts +62 -0
  285. package/dist/dev/runtime-env.d.ts.map +1 -0
  286. package/dist/dev/runtime-env.js +100 -0
  287. package/dist/dev/runtime-env.js.map +1 -0
  288. package/dist/dev/runtime-image.d.ts +13 -0
  289. package/dist/dev/runtime-image.d.ts.map +1 -0
  290. package/dist/dev/runtime-image.js +15 -0
  291. package/dist/dev/runtime-image.js.map +1 -0
  292. package/dist/env/defaults.d.ts +3 -0
  293. package/dist/env/defaults.d.ts.map +1 -0
  294. package/dist/env/defaults.js +22 -0
  295. package/dist/env/defaults.js.map +1 -0
  296. package/dist/env/pack-env-plan.d.ts +70 -0
  297. package/dist/env/pack-env-plan.d.ts.map +1 -0
  298. package/dist/env/pack-env-plan.js +236 -0
  299. package/dist/env/pack-env-plan.js.map +1 -0
  300. package/dist/env/parser.d.ts +9 -0
  301. package/dist/env/parser.d.ts.map +1 -0
  302. package/dist/env/parser.js +11 -0
  303. package/dist/env/parser.js.map +1 -0
  304. package/dist/env/project-env.d.ts +34 -0
  305. package/dist/env/project-env.d.ts.map +1 -0
  306. package/dist/env/project-env.js +45 -0
  307. package/dist/env/project-env.js.map +1 -0
  308. package/dist/env/runners.d.ts +22 -0
  309. package/dist/env/runners.d.ts.map +1 -0
  310. package/dist/env/runners.js +4 -0
  311. package/dist/env/runners.js.map +1 -0
  312. package/dist/env/writer.d.ts +7 -0
  313. package/dist/env/writer.d.ts.map +1 -0
  314. package/dist/env/writer.js +9 -0
  315. package/dist/env/writer.js.map +1 -0
  316. package/dist/errors.d.ts +31 -0
  317. package/dist/errors.d.ts.map +1 -0
  318. package/dist/errors.js +107 -0
  319. package/dist/errors.js.map +1 -0
  320. package/dist/help.d.ts +5 -0
  321. package/dist/help.d.ts.map +1 -0
  322. package/dist/help.js +61 -0
  323. package/dist/help.js.map +1 -0
  324. package/dist/index.d.ts +13 -0
  325. package/dist/index.d.ts.map +1 -0
  326. package/dist/index.js +13 -0
  327. package/dist/index.js.map +1 -0
  328. package/dist/init/augment-scaffolder.d.ts +74 -0
  329. package/dist/init/augment-scaffolder.d.ts.map +1 -0
  330. package/dist/init/augment-scaffolder.js +459 -0
  331. package/dist/init/augment-scaffolder.js.map +1 -0
  332. package/dist/init/dependency-specs.d.ts +58 -0
  333. package/dist/init/dependency-specs.d.ts.map +1 -0
  334. package/dist/init/dependency-specs.js +153 -0
  335. package/dist/init/dependency-specs.js.map +1 -0
  336. package/dist/init/gitignore-patcher.d.ts +23 -0
  337. package/dist/init/gitignore-patcher.d.ts.map +1 -0
  338. package/dist/init/gitignore-patcher.js +103 -0
  339. package/dist/init/gitignore-patcher.js.map +1 -0
  340. package/dist/init/mode-detect.d.ts +34 -0
  341. package/dist/init/mode-detect.d.ts.map +1 -0
  342. package/dist/init/mode-detect.js +115 -0
  343. package/dist/init/mode-detect.js.map +1 -0
  344. package/dist/init/package-json-patcher.d.ts +36 -0
  345. package/dist/init/package-json-patcher.d.ts.map +1 -0
  346. package/dist/init/package-json-patcher.js +128 -0
  347. package/dist/init/package-json-patcher.js.map +1 -0
  348. package/dist/init/pyproject-patcher.d.ts +56 -0
  349. package/dist/init/pyproject-patcher.d.ts.map +1 -0
  350. package/dist/init/pyproject-patcher.js +324 -0
  351. package/dist/init/pyproject-patcher.js.map +1 -0
  352. package/dist/init/python-augment.d.ts +22 -0
  353. package/dist/init/python-augment.d.ts.map +1 -0
  354. package/dist/init/python-augment.js +300 -0
  355. package/dist/init/python-augment.js.map +1 -0
  356. package/dist/init/template-files.d.ts +16 -0
  357. package/dist/init/template-files.d.ts.map +1 -0
  358. package/dist/init/template-files.js +38 -0
  359. package/dist/init/template-files.js.map +1 -0
  360. package/dist/key/defaults.d.ts +3 -0
  361. package/dist/key/defaults.d.ts.map +1 -0
  362. package/dist/key/defaults.js +60 -0
  363. package/dist/key/defaults.js.map +1 -0
  364. package/dist/key/fingerprint.d.ts +6 -0
  365. package/dist/key/fingerprint.d.ts.map +1 -0
  366. package/dist/key/fingerprint.js +25 -0
  367. package/dist/key/fingerprint.js.map +1 -0
  368. package/dist/key/paths.d.ts +30 -0
  369. package/dist/key/paths.d.ts.map +1 -0
  370. package/dist/key/paths.js +51 -0
  371. package/dist/key/paths.js.map +1 -0
  372. package/dist/key/runners.d.ts +60 -0
  373. package/dist/key/runners.d.ts.map +1 -0
  374. package/dist/key/runners.js +4 -0
  375. package/dist/key/runners.js.map +1 -0
  376. package/dist/main.d.ts +106 -0
  377. package/dist/main.d.ts.map +1 -0
  378. package/dist/main.js +198 -0
  379. package/dist/main.js.map +1 -0
  380. package/dist/mcp/launcher.d.ts +143 -0
  381. package/dist/mcp/launcher.d.ts.map +1 -0
  382. package/dist/mcp/launcher.js +393 -0
  383. package/dist/mcp/launcher.js.map +1 -0
  384. package/dist/mcp/preset-loader.d.ts +29 -0
  385. package/dist/mcp/preset-loader.d.ts.map +1 -0
  386. package/dist/mcp/preset-loader.js +217 -0
  387. package/dist/mcp/preset-loader.js.map +1 -0
  388. package/dist/mcp/preset-types.d.ts +71 -0
  389. package/dist/mcp/preset-types.d.ts.map +1 -0
  390. package/dist/mcp/preset-types.js +4 -0
  391. package/dist/mcp/preset-types.js.map +1 -0
  392. package/dist/mcp/presets/README.md +68 -0
  393. package/dist/mcp/presets/postgres.json +15 -0
  394. package/dist/output.d.ts +26 -0
  395. package/dist/output.d.ts.map +1 -0
  396. package/dist/output.js +46 -0
  397. package/dist/output.js.map +1 -0
  398. package/dist/pack-config.d.ts +37 -0
  399. package/dist/pack-config.d.ts.map +1 -0
  400. package/dist/pack-config.js +65 -0
  401. package/dist/pack-config.js.map +1 -0
  402. package/dist/package-manager.d.ts +33 -0
  403. package/dist/package-manager.d.ts.map +1 -0
  404. package/dist/package-manager.js +129 -0
  405. package/dist/package-manager.js.map +1 -0
  406. package/dist/parse.d.ts +82 -0
  407. package/dist/parse.d.ts.map +1 -0
  408. package/dist/parse.js +99 -0
  409. package/dist/parse.js.map +1 -0
  410. package/dist/providers/preset-loader.d.ts +47 -0
  411. package/dist/providers/preset-loader.d.ts.map +1 -0
  412. package/dist/providers/preset-loader.js +107 -0
  413. package/dist/providers/preset-loader.js.map +1 -0
  414. package/dist/providers/presets/anthropic.json +47 -0
  415. package/dist/providers/presets/gemini.json +40 -0
  416. package/dist/reference.d.ts +28 -0
  417. package/dist/reference.d.ts.map +1 -0
  418. package/dist/reference.js +52 -0
  419. package/dist/reference.js.map +1 -0
  420. package/dist/sdk-package.d.ts +9 -0
  421. package/dist/sdk-package.d.ts.map +1 -0
  422. package/dist/sdk-package.js +20 -0
  423. package/dist/sdk-package.js.map +1 -0
  424. package/dist/sdk-skills/kindgi-authoring-agents/SKILL.md +253 -0
  425. package/dist/sdk-skills/kindgi-authoring-flows/SKILL.md +299 -0
  426. package/dist/sdk-skills/kindgi-authoring-guardrails/SKILL.md +291 -0
  427. package/dist/sdk-skills/kindgi-authoring-mcp-servers/SKILL.md +289 -0
  428. package/dist/sdk-skills/kindgi-authoring-providers/SKILL.md +704 -0
  429. package/dist/sdk-skills/kindgi-authoring-tools/SKILL.md +288 -0
  430. package/dist/sdk-skills/kindgi-framework-feedback/SKILL.md +211 -0
  431. package/dist/sdk-skills/kindgi-getting-started/SKILL.md +181 -0
  432. package/dist/sdk-skills/kindgi-python-authoring-agents/SKILL.md +205 -0
  433. package/dist/sdk-skills/kindgi-python-authoring-flows/SKILL.md +322 -0
  434. package/dist/sdk-skills/kindgi-python-authoring-guardrails/SKILL.md +173 -0
  435. package/dist/sdk-skills/kindgi-python-authoring-tools/SKILL.md +299 -0
  436. package/dist/sdk-skills/kindgi-python-getting-started/SKILL.md +240 -0
  437. package/dist/stop-signal.d.ts +15 -0
  438. package/dist/stop-signal.d.ts.map +1 -0
  439. package/dist/stop-signal.js +16 -0
  440. package/dist/stop-signal.js.map +1 -0
  441. package/dist/templates/minimal/.gitignore +8 -0
  442. package/dist/templates/minimal/.nvmrc +1 -0
  443. package/dist/templates/minimal/AGENTS.md +23 -0
  444. package/dist/templates/minimal/README.md.tmpl +69 -0
  445. package/dist/templates/minimal/agents/.gitkeep +0 -0
  446. package/dist/templates/minimal/flows/.gitkeep +0 -0
  447. package/dist/templates/minimal/guardrails/.gitkeep +0 -0
  448. package/dist/templates/minimal/kindgi.config.ts.tmpl +44 -0
  449. package/dist/templates/minimal/package.json.tmpl +25 -0
  450. package/dist/templates/minimal/pnpm-workspace.yaml +6 -0
  451. package/dist/templates/minimal/tools/.gitkeep +0 -0
  452. package/dist/templates/minimal/tsconfig.json.tmpl +27 -0
  453. package/dist/templates/minimal/vitest.config.ts.tmpl +14 -0
  454. package/dist/templates/python/.gitignore +9 -0
  455. package/dist/templates/python/AGENTS.md +30 -0
  456. package/dist/templates/python/README.md.tmpl +56 -0
  457. package/dist/templates/python/agents/echo_agent.py.tmpl +23 -0
  458. package/dist/templates/python/flows/echo_flow.py.tmpl +17 -0
  459. package/dist/templates/python/guardrails/response_not_empty.py.tmpl +27 -0
  460. package/dist/templates/python/pyproject.toml.tmpl +42 -0
  461. package/dist/templates/python/tests/test_tools.py.tmpl +22 -0
  462. package/dist/templates/python/tools/echo.py.tmpl +27 -0
  463. package/dist/templates/python/tools/greet.py.tmpl +20 -0
  464. package/dist/templates/sample/.gitignore +8 -0
  465. package/dist/templates/sample/.nvmrc +1 -0
  466. package/dist/templates/sample/AGENTS.md +23 -0
  467. package/dist/templates/sample/README.md.tmpl +85 -0
  468. package/dist/templates/sample/agents/echo-agent/index.ts.tmpl +34 -0
  469. package/dist/templates/sample/flows/echo-flow/index.ts.tmpl +59 -0
  470. package/dist/templates/sample/guardrails/response-not-empty/index.ts.tmpl +50 -0
  471. package/dist/templates/sample/kindgi.config.ts.tmpl +41 -0
  472. package/dist/templates/sample/package.json.tmpl +25 -0
  473. package/dist/templates/sample/pnpm-workspace.yaml +6 -0
  474. package/dist/templates/sample/tools/echo/index.test.ts.tmpl +31 -0
  475. package/dist/templates/sample/tools/echo/index.ts.tmpl +37 -0
  476. package/dist/templates/sample/tools/fetch-httpbin/index.ts.tmpl +60 -0
  477. package/dist/templates/sample/tools/greet/index.ts.tmpl +35 -0
  478. package/dist/templates/sample/tsconfig.json.tmpl +27 -0
  479. package/dist/templates/sample/vitest.config.ts.tmpl +14 -0
  480. package/dist/test/defaults.d.ts +3 -0
  481. package/dist/test/defaults.d.ts.map +1 -0
  482. package/dist/test/defaults.js +104 -0
  483. package/dist/test/defaults.js.map +1 -0
  484. package/dist/test/runners.d.ts +60 -0
  485. package/dist/test/runners.d.ts.map +1 -0
  486. package/dist/test/runners.js +4 -0
  487. package/dist/test/runners.js.map +1 -0
  488. package/dist/version-info.d.ts +9 -0
  489. package/dist/version-info.d.ts.map +1 -0
  490. package/dist/version-info.js +27 -0
  491. package/dist/version-info.js.map +1 -0
  492. package/dist/write-fully.d.ts +13 -0
  493. package/dist/write-fully.d.ts.map +1 -0
  494. package/dist/write-fully.js +17 -0
  495. package/dist/write-fully.js.map +1 -0
  496. package/package.json +63 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/dev/defaults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ # kindgi dev — bundled composition for auto-started local services.
2
+ # Started by `kindgi dev` with `docker compose -p kindgi-dev` (see `startServicesReal`)
3
+ # when docker-compose is detected AND no KINDGI_DATABASE_URL is set.
4
+ #
5
+ # Every container is namespaced under kindgi-dev-* so nothing collides with
6
+ # other local docker-compose stacks. Only Postgres:
7
+ # OpenFGA and MinIO were started and never wired (authz is off in dev), so
8
+ # they're not started until dev wires them. The Kindgi runtime itself runs
9
+ # as its own container, one per pack (`runtime-container.ts`).
10
+ #
11
+ # ## State persistence (2026-09-25)
12
+ #
13
+ # A named volume carries the Postgres data across `kindgi dev` restarts —
14
+ # providers a user registers via `kindgi providers register` survive
15
+ # reboots. `kindgi dev --reset` (which runs `docker compose down -v`)
16
+ # removes it for a true clean slate.
17
+ #
18
+ # Trade-off: migrations no longer re-run from scratch on every boot
19
+ # (drizzle is idempotent — only new migrations apply), so migration-path
20
+ # regressions are caught less continuously. Mitigation: run `kindgi dev
21
+ # --reset` before pushing schema changes, and CI runs against a fresh DB.
22
+
23
+ services:
24
+ postgres:
25
+ image: pgvector/pgvector:pg16
26
+ container_name: kindgi-dev_postgres
27
+ environment:
28
+ POSTGRES_USER: kindgi
29
+ POSTGRES_PASSWORD: kindgi_dev_only
30
+ POSTGRES_DB: kindgi
31
+ POSTGRES_INITDB_ARGS: "--data-checksums"
32
+ command:
33
+ - "postgres"
34
+ - "-c"
35
+ - "max_connections=200"
36
+ - "-c"
37
+ - "shared_buffers=256MB"
38
+ - "-c"
39
+ - "wal_level=logical"
40
+ volumes:
41
+ - kindgi-dev-postgres-data:/var/lib/postgresql/data
42
+ ports:
43
+ - "5432"
44
+ healthcheck:
45
+ test: ["CMD-SHELL", "pg_isready -U kindgi -d kindgi"]
46
+ interval: 5s
47
+ timeout: 5s
48
+ retries: 10
49
+
50
+ networks:
51
+ default:
52
+ name: kindgi-dev
53
+
54
+ volumes:
55
+ kindgi-dev-postgres-data:
56
+ name: kindgi-dev_postgres-data
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index-child.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-child.d.ts","sourceRoot":"","sources":["../../src/dev/index-child.ts"],"names":[],"mappings":""}
@@ -0,0 +1,53 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ /**
4
+ * The indexer, as a child process of `kindgi dev`:
5
+ *
6
+ * node index-child.js --pack <dir> --out <index.json> --bundle-map <map.json>
7
+ *
8
+ * It runs with the pack's environment (not the CLI's), so modules that
9
+ * read env when imported behave as they will in the pack service, and
10
+ * each run is a fresh process — no module cache carried between
11
+ * generations. Each primitive's source file is imported as its bundle
12
+ * (the map: source path → bundle path, relative to the pack root), while
13
+ * the index records the source path.
14
+ *
15
+ * Prints one JSON line: the indexer's outcome. Self-contained (no
16
+ * relative imports) so it also runs from source under Node's type
17
+ * stripping.
18
+ */
19
+ import { readFile } from 'node:fs/promises';
20
+ import { isAbsolute, relative, resolve, sep } from 'node:path';
21
+ import { fileURLToPath, pathToFileURL } from 'node:url';
22
+ import { runIndexer } from '@kindgi/handler-runtime';
23
+ function arg(name) {
24
+ const at = process.argv.indexOf(name);
25
+ const value = at >= 0 ? process.argv[at + 1] : undefined;
26
+ if (value === undefined)
27
+ throw new Error(`index-child: ${name} is required`);
28
+ return value;
29
+ }
30
+ async function main() {
31
+ const packDir = resolve(arg('--pack'));
32
+ const outputPath = resolve(arg('--out'));
33
+ const bundleMap = JSON.parse(await readFile(arg('--bundle-map'), 'utf8'));
34
+ const outcome = await runIndexer({
35
+ packDir,
36
+ outputPath,
37
+ importModule: (fileUrl) => {
38
+ const source = relative(packDir, fileURLToPath(fileUrl)).split(sep).join('/');
39
+ const bundle = bundleMap[source];
40
+ if (bundle === undefined)
41
+ return import(fileUrl);
42
+ const abs = isAbsolute(bundle) ? bundle : resolve(packDir, bundle);
43
+ return import(pathToFileURL(abs).href);
44
+ },
45
+ });
46
+ process.stdout.write(`${JSON.stringify(outcome)}\n`);
47
+ }
48
+ main().catch((cause) => {
49
+ const message = cause instanceof Error ? (cause.stack ?? cause.message) : String(cause);
50
+ process.stdout.write(`${JSON.stringify({ kind: 'err', error: { code: 'index-child-failed', message } })}\n`);
51
+ process.exitCode = 1;
52
+ });
53
+ //# sourceMappingURL=index-child.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-child.js","sourceRoot":"","sources":["../../src/dev/index-child.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,SAAS,GAAG,CAAC,IAAY;IACvB,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,cAAc,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAGvE,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC;QAC/B,OAAO;QACP,UAAU;QACV,YAAY,EAAE,CAAC,OAAe,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACnE,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CACvF,CAAC;IACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { PackLanguage } from '@kindgi/handler-runtime';
2
+ /** The pack's code: its language, and for Python the interpreter (an argv prefix). */
3
+ export type PackCode = {
4
+ readonly language: 'node';
5
+ } | {
6
+ readonly language: 'python';
7
+ readonly python: readonly [string, ...string[]];
8
+ };
9
+ export declare const NODE_PACK_CODE: PackCode;
10
+ type Outcome<T> = {
11
+ readonly kind: 'ok';
12
+ readonly value: T;
13
+ } | {
14
+ readonly kind: 'err';
15
+ readonly message: string;
16
+ };
17
+ /**
18
+ * The interpreter that runs a Python pack:
19
+ *
20
+ * 1. `dev.python` in the config — a path, or an argv such as
21
+ * `["uv", "run", "python"]`;
22
+ * 2. the pack's own virtualenv, `.venv/bin/python`;
23
+ * 3. `python3` on `PATH`.
24
+ */
25
+ export declare function resolvePackPython(packDir: string, config: Readonly<Record<string, unknown>> | undefined): Promise<Outcome<readonly [string, ...string[]]>>;
26
+ /** The pack code for a language, with the interpreter resolved for Python. */
27
+ export declare function resolvePackCode(language: PackLanguage, packDir: string, config: Readonly<Record<string, unknown>> | undefined): Promise<Outcome<PackCode>>;
28
+ /**
29
+ * Check the pack's Python can run pack code (`import kindgi.pack`), with the
30
+ * pack's environment and from the pack's directory — so a missing
31
+ * virtualenv or package is one clear line at boot instead of an indexer
32
+ * failure.
33
+ */
34
+ export declare function checkPackPython(python: readonly [string, ...string[]], env: Readonly<Record<string, string>>, packDir?: string): Promise<Outcome<string>>;
35
+ export {};
36
+ //# sourceMappingURL=pack-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-code.d.ts","sourceRoot":"","sources":["../../src/dev/pack-code.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,sFAAsF;AACtF,MAAM,MAAM,QAAQ,GAChB;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC;AAErF,eAAO,MAAM,cAAc,EAAE,QAA+B,CAAC;AAE7D,KAAK,OAAO,CAAC,CAAC,IACV;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAC1C;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,GACpD,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CA+BlD;AAED,8EAA8E;AAC9E,wBAAsB,eAAe,CACnC,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,GACpD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAK5B;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EACtC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACrC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAyD1B"}
@@ -0,0 +1,129 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ /**
4
+ * How `kindgi dev` builds, indexes and runs a pack's code — by its
5
+ * language (`packLanguage` of the pack's config).
6
+ *
7
+ * - node: esbuild bundles, the TypeScript indexer in a Node child, the
8
+ * Node pack service (`@kindgi/handler-runtime`).
9
+ * - python: no bundling, `python -m kindgi.pack index` and
10
+ * `python -m kindgi.pack serve` with the pack's own interpreter.
11
+ *
12
+ * Both run under the pack's environment (`devPackEnv`) and behind the same
13
+ * supervisor and front, so the api-server never knows which it is.
14
+ */
15
+ import { spawn } from 'node:child_process';
16
+ import { access, stat } from 'node:fs/promises';
17
+ import { join } from 'node:path';
18
+ export const NODE_PACK_CODE = { language: 'node' };
19
+ /**
20
+ * The interpreter that runs a Python pack:
21
+ *
22
+ * 1. `dev.python` in the config — a path, or an argv such as
23
+ * `["uv", "run", "python"]`;
24
+ * 2. the pack's own virtualenv, `.venv/bin/python`;
25
+ * 3. `python3` on `PATH`.
26
+ */
27
+ export async function resolvePackPython(packDir, config) {
28
+ const dev = config?.dev;
29
+ const configured = dev !== null && typeof dev === 'object' ? dev.python : undefined;
30
+ if (configured !== undefined) {
31
+ const argv = typeof configured === 'string' ? [configured] : configured;
32
+ if (!Array.isArray(argv) ||
33
+ argv.length === 0 ||
34
+ !argv.every((part) => typeof part === 'string' && part !== '')) {
35
+ return {
36
+ kind: 'err',
37
+ message: '`dev.python` must be an interpreter path or a non-empty command list (e.g. ["uv", "run", "python"]).',
38
+ };
39
+ }
40
+ return { kind: 'ok', value: argv };
41
+ }
42
+ for (const candidate of [
43
+ join(packDir, '.venv', 'bin', 'python'),
44
+ join(packDir, '.venv', 'Scripts', 'python.exe'),
45
+ ]) {
46
+ try {
47
+ await access(candidate);
48
+ return { kind: 'ok', value: [candidate] };
49
+ }
50
+ catch {
51
+ // next
52
+ }
53
+ }
54
+ return { kind: 'ok', value: ['python3'] };
55
+ }
56
+ /** The pack code for a language, with the interpreter resolved for Python. */
57
+ export async function resolvePackCode(language, packDir, config) {
58
+ if (language === 'node')
59
+ return { kind: 'ok', value: NODE_PACK_CODE };
60
+ const python = await resolvePackPython(packDir, config);
61
+ if (python.kind === 'err')
62
+ return python;
63
+ return { kind: 'ok', value: { language: 'python', python: python.value } };
64
+ }
65
+ /**
66
+ * Check the pack's Python can run pack code (`import kindgi.pack`), with the
67
+ * pack's environment and from the pack's directory — so a missing
68
+ * virtualenv or package is one clear line at boot instead of an indexer
69
+ * failure.
70
+ */
71
+ export async function checkPackPython(python, env, packDir) {
72
+ const [program, ...prefix] = python;
73
+ const script = 'import sys, kindgi.pack, kindgi; print(sys.version.split()[0], kindgi.__version__)';
74
+ const { code, stdout, stderr, spawnError } = await new Promise((resolve) => {
75
+ const child = spawn(program, [...prefix, '-c', script], {
76
+ env,
77
+ ...(packDir !== undefined && { cwd: packDir }),
78
+ stdio: ['ignore', 'pipe', 'pipe'],
79
+ });
80
+ let out = '';
81
+ let err = '';
82
+ child.stdout.on('data', (chunk) => {
83
+ out += chunk.toString('utf8');
84
+ });
85
+ child.stderr.on('data', (chunk) => {
86
+ err += chunk.toString('utf8');
87
+ });
88
+ child.once('error', (cause) => resolve({ code: null, stdout: out, stderr: err, spawnError: cause.message }));
89
+ child.once('close', (exit) => resolve({ code: exit, stdout: out, stderr: err }));
90
+ });
91
+ const shown = python.join(' ');
92
+ if (spawnError !== undefined) {
93
+ return { kind: 'err', message: `the pack's Python (${shown}) did not start: ${spawnError}` };
94
+ }
95
+ if (code !== 0) {
96
+ const last = stderr.trim().split('\n').pop() ?? '';
97
+ const shadow = packDir === undefined ? undefined : join(packDir, 'kindgi', '__init__.py');
98
+ if (shadow !== undefined && (await isFile(shadow))) {
99
+ return {
100
+ kind: 'err',
101
+ message: [
102
+ `the pack's Python (${shown}) cannot import kindgi: ${last}`,
103
+ ` ${shadow} makes the pack's kindgi/ folder a Python package named kindgi, which hides the kindgi SDK.`,
104
+ " Delete that __init__.py — kindgi/ only holds the pack's files; Kindgi imports them itself.",
105
+ ].join('\n'),
106
+ };
107
+ }
108
+ const lines = [
109
+ `the pack's Python (${shown}) cannot import kindgi: ${last}`,
110
+ " Install the Kindgi Python SDK into the pack's environment (e.g. `uv add kindgi`, or `pip install kindgi`),",
111
+ ' or point `dev.python` in [tool.kindgi] at an interpreter that has it.',
112
+ ];
113
+ return { kind: 'err', message: lines.join('\n') };
114
+ }
115
+ const [pythonVersion, kindgiVersion] = stdout.trim().split(/\s+/);
116
+ return {
117
+ kind: 'ok',
118
+ value: `Python ${pythonVersion ?? '?'} · kindgi ${kindgiVersion ?? '?'} (${shown})`,
119
+ };
120
+ }
121
+ async function isFile(path) {
122
+ try {
123
+ return (await stat(path)).isFile();
124
+ }
125
+ catch {
126
+ return false;
127
+ }
128
+ }
129
+ //# sourceMappingURL=pack-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-code.js","sourceRoot":"","sources":["../../src/dev/pack-code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** The host variables a pack service inherits from the shell. */
2
+ export declare const PACK_HOST_ENV: readonly string[];
3
+ export interface DevPackEnvInput {
4
+ readonly packDir: string;
5
+ /** `dev.envFiles` from `kindgi.config.ts`; default `.env`, `.env.local`. */
6
+ readonly localEnvFiles?: readonly string[];
7
+ /** The CLI's own environment. */
8
+ readonly hostEnv: Readonly<Record<string, string | undefined>>;
9
+ }
10
+ export declare function devPackEnv(input: DevPackEnvInput): Promise<Record<string, string>>;
11
+ /** The env files whose edits should restart the pack service (absolute paths). */
12
+ export declare function devPackEnvFiles(packDir: string, localEnvFiles?: readonly string[]): readonly string[];
13
+ //# sourceMappingURL=pack-env.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,36 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ /**
4
+ * The environment `kindgi dev` gives the pack service — the process
5
+ * that runs the pack's own code. It is what a deployment would give it:
6
+ * the pack's env files (`.env`, `.env.local`, or `dev.envFiles`) without
7
+ * Kindgi's own `KINDGI_*` settings, plus the few host variables a Node
8
+ * process and its tools need to work (`PATH`, `HOME` for cloud CLI
9
+ * credentials, `TMPDIR`). Nothing else from the shell reaches pack code.
10
+ */
11
+ import { LOCAL_ENV_NAME, packValues, readPackEnv, resolvePackEnvFiles, } from '@kindgi/secrets-dotenv';
12
+ /** The host variables a pack service inherits from the shell. */
13
+ export const PACK_HOST_ENV = ['PATH', 'HOME', 'TMPDIR'];
14
+ export async function devPackEnv(input) {
15
+ const host = {};
16
+ for (const name of PACK_HOST_ENV) {
17
+ const value = input.hostEnv[name];
18
+ if (value !== undefined)
19
+ host[name] = value;
20
+ }
21
+ const files = await readPackEnv({
22
+ packDir: input.packDir,
23
+ envName: LOCAL_ENV_NAME,
24
+ ...(input.localEnvFiles !== undefined && { localEnvFiles: input.localEnvFiles }),
25
+ });
26
+ return { ...host, ...packValues(files.values), NODE_ENV: 'development' };
27
+ }
28
+ /** The env files whose edits should restart the pack service (absolute paths). */
29
+ export function devPackEnvFiles(packDir, localEnvFiles) {
30
+ return resolvePackEnvFiles({
31
+ packDir,
32
+ envName: LOCAL_ENV_NAME,
33
+ ...(localEnvFiles !== undefined && { localEnvFiles }),
34
+ }).read;
35
+ }
36
+ //# sourceMappingURL=pack-env.js.map
@@ -0,0 +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"}
@@ -0,0 +1,32 @@
1
+ import type { PackServiceSupervisor, PackServiceSupervisorEvent } from '@kindgi/handler-runtime/pack-service';
2
+ import type { PackCode } from './pack-code.js';
3
+ import type { DevRunners, IndexResult, PackBuild, PackBuilder } from './runners.js';
4
+ export interface PackRefresherDeps {
5
+ readonly dev: DevRunners;
6
+ readonly pack: PackServiceSupervisor;
7
+ readonly builder: PackBuilder;
8
+ readonly packDir: string;
9
+ /** The pack's environment (the indexer child runs with it). */
10
+ readonly env: () => Promise<Readonly<Record<string, string>>>;
11
+ /** The pack's code: which indexer reads it. */
12
+ readonly code: PackCode;
13
+ }
14
+ export interface PackRefresher {
15
+ /**
16
+ * Bundle (or use `build`, a watch rebuild's result), index, load and
17
+ * publish. Without `build`, reuses the last good bundle when there is
18
+ * one (an env-file change) and bundles otherwise.
19
+ */
20
+ refresh(build?: PackBuild): Promise<IndexResult>;
21
+ /** Resolves once no refresh is running or waiting. */
22
+ idle(): Promise<void>;
23
+ }
24
+ export declare function createPackRefresher(deps: PackRefresherDeps): PackRefresher;
25
+ /**
26
+ * The index as the pack service reads it: each tool's module and each
27
+ * guardrail's check module point at their bundles (paths relative to
28
+ * the pack root, which is the pack service's module root).
29
+ */
30
+ export declare function packServiceIndex(index: unknown, bundleMap: Readonly<Record<string, string>>): unknown;
31
+ export declare function describePackEvent(event: PackServiceSupervisorEvent): string | undefined;
32
+ //# sourceMappingURL=pack-service.d.ts.map
@@ -0,0 +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;CACzB;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,CAmH1E;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"}
@@ -0,0 +1,188 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ /**
4
+ * How `kindgi dev` keeps the pack's code and its index in step. The
5
+ * pack service loads an index once, when it boots, so a change is
6
+ * picked up in this order:
7
+ *
8
+ * 1. bundle the pack's code (esbuild; a watch rebuild hands its result in) —
9
+ * for a Python pack, the sources are the build;
10
+ * 2. index the bundles (or sources) in a child process with the pack's
11
+ * environment, into a staging file — the TypeScript indexer, or
12
+ * `python -m kindgi.pack index`;
13
+ * 3. boot a pack service on it — once it listens (every module
14
+ * imported), calls go to it and the previous one stops;
15
+ * 4. publish the staged index as the one the api-server reads.
16
+ *
17
+ * So the api-server never lists a tool whose code isn't running. Code
18
+ * that fails to bundle or to load leaves the previous pack service and
19
+ * index in place. A pack whose last primitives were deleted publishes an
20
+ * empty index, so what was deleted stops being listed.
21
+ *
22
+ * Refreshes run one at a time. A refresh asked for while one runs waits
23
+ * for it, and several such requests collapse into one, with the latest
24
+ * build — so two pack services never start at once.
25
+ */
26
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
27
+ import { dirname } from 'node:path';
28
+ import { devIndexPath, devStagedIndexPath, devStagedPackIndexPath } from './paths.js';
29
+ export function createPackRefresher(deps) {
30
+ let tail = Promise.resolve();
31
+ let waiting;
32
+ let lastGood;
33
+ async function refreshOnce(given) {
34
+ const build = given ?? lastGood ?? (await deps.builder.build());
35
+ if (build.kind === 'err') {
36
+ return {
37
+ kind: 'err',
38
+ code: 'bundle-failed',
39
+ message: `The pack's code did not build:\n ${build.errors.join('\n ')}`,
40
+ };
41
+ }
42
+ lastGood = build;
43
+ const staged = devStagedIndexPath(deps.packDir);
44
+ const indexed = await deps.dev.runIndexer(deps.packDir, staged, {
45
+ bundleMap: build.bundleMap,
46
+ env: deps.env,
47
+ code: deps.code,
48
+ });
49
+ if (indexed.kind !== 'ok') {
50
+ if (indexed.code === 'discovery-empty')
51
+ await publishEmpty();
52
+ return indexed;
53
+ }
54
+ const packIndex = devStagedPackIndexPath(deps.packDir);
55
+ await mkdir(dirname(packIndex), { recursive: true });
56
+ await writeFile(packIndex, JSON.stringify(packServiceIndex(indexed.index, build.bundleMap)), 'utf8');
57
+ const started = await deps.pack.start(packIndex);
58
+ if (started.kind === 'err') {
59
+ return {
60
+ kind: 'err',
61
+ code: 'pack-service-boot-failed',
62
+ message: `The pack's code did not load: ${started.error.problems.join('; ')}`,
63
+ };
64
+ }
65
+ await deps.dev.publishIndex(staged, devIndexPath(deps.packDir));
66
+ return indexed;
67
+ }
68
+ /**
69
+ * The pack has no primitives left (the last ones were deleted): publish
70
+ * the previous index's header with nothing in it, so the api-server
71
+ * stops listing them. Nothing to do before any index was published, or
72
+ * when the published one is already empty. The pack service keeps its
73
+ * old code until the next refresh with primitives; nothing calls it.
74
+ */
75
+ async function publishEmpty() {
76
+ const published = devIndexPath(deps.packDir);
77
+ let previous;
78
+ try {
79
+ previous = JSON.parse(await readFile(published, 'utf8'));
80
+ }
81
+ catch {
82
+ return;
83
+ }
84
+ const kinds = ['tools', 'guardrails', 'agents', 'flows'];
85
+ const listed = (kind) => {
86
+ const entries = previous[kind];
87
+ return Array.isArray(entries) && entries.length > 0;
88
+ };
89
+ if (!kinds.some(listed))
90
+ return;
91
+ const staged = devStagedIndexPath(deps.packDir);
92
+ await mkdir(dirname(staged), { recursive: true });
93
+ await writeFile(staged, JSON.stringify({
94
+ ...previous,
95
+ publishedAt: new Date().toISOString(),
96
+ tools: [],
97
+ guardrails: [],
98
+ agents: [],
99
+ flows: [],
100
+ }), 'utf8');
101
+ await deps.dev.publishIndex(staged, published);
102
+ }
103
+ async function guarded(build) {
104
+ try {
105
+ return await refreshOnce(build);
106
+ }
107
+ catch (cause) {
108
+ return {
109
+ kind: 'err',
110
+ code: 'refresh-failed',
111
+ message: cause instanceof Error ? cause.message : String(cause),
112
+ };
113
+ }
114
+ }
115
+ return {
116
+ refresh(build) {
117
+ if (waiting !== undefined) {
118
+ // Collapse into the waiting refresh; the latest build wins.
119
+ if (build !== undefined)
120
+ waiting.build = build;
121
+ return waiting.result;
122
+ }
123
+ const request = { build, result: Promise.resolve(undefined) };
124
+ request.result = tail.then(() => {
125
+ if (waiting === request)
126
+ waiting = undefined;
127
+ return guarded(request.build);
128
+ });
129
+ waiting = request;
130
+ tail = request.result;
131
+ return request.result;
132
+ },
133
+ async idle() {
134
+ await tail;
135
+ },
136
+ };
137
+ }
138
+ /**
139
+ * The index as the pack service reads it: each tool's module and each
140
+ * guardrail's check module point at their bundles (paths relative to
141
+ * the pack root, which is the pack service's module root).
142
+ */
143
+ export function packServiceIndex(index, bundleMap) {
144
+ const doc = index;
145
+ const bundled = (path) => typeof path === 'string' ? (bundleMap[path] ?? path) : path;
146
+ return {
147
+ ...doc,
148
+ ...(doc.tools !== undefined && {
149
+ tools: doc.tools.map((t) => ({ ...t, modulePath: bundled(t.modulePath) })),
150
+ }),
151
+ ...(doc.guardrails !== undefined && {
152
+ guardrails: doc.guardrails.map((g) => ({
153
+ ...g,
154
+ checkModulePath: bundled(g.checkModulePath),
155
+ })),
156
+ }),
157
+ };
158
+ }
159
+ /**
160
+ * The dev console's view of the pack service: what pack code prints,
161
+ * failed calls, and crashes. Successful calls and restarts that work
162
+ * stay quiet.
163
+ */
164
+ /** A pack service log line worth a line of `kindgi dev` output: a failed call, missing env. */
165
+ function describePackLog(event) {
166
+ const e = event;
167
+ if (e.kind === 'missing-env' && Array.isArray(e.names)) {
168
+ const names = e.names.map(String);
169
+ const one = names.length === 1;
170
+ 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'})`;
171
+ }
172
+ return e.kind === 'call' && e.outcome !== 'ok'
173
+ ? ` [pack] ✗ ${String(e.id)}: ${String(e.outcome)}`
174
+ : undefined;
175
+ }
176
+ export function describePackEvent(event) {
177
+ switch (event.kind) {
178
+ case 'exited':
179
+ return ` ⚠ pack service exited (${event.signal ?? event.code}) — restarting`;
180
+ case 'gave-up':
181
+ return ` ✗ pack service kept exiting (${event.attempts} restarts) — fix the code and save to retry`;
182
+ case 'log':
183
+ return describePackLog(event.event);
184
+ default:
185
+ return undefined;
186
+ }
187
+ }
188
+ //# sourceMappingURL=pack-service.js.map