@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/build/defaults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Deploy envelope shape emitted by `kindgi build` — the file
3
+ * `kindgi deploy` reads and POSTs to `POST /v1/deployments`.
4
+ *
5
+ * Includes a canonicalizer that stably-serialises the signature body
6
+ * (sort-keyed JSON, no whitespace) so the same inputs produce the same
7
+ * bytes on every machine. The server applies the same canonicalization
8
+ * when it verifies the signature.
9
+ */
10
+ export declare const DEPLOY_ENVELOPE_SCHEMA: "kindgi-deploy-envelope/v1";
11
+ export interface SignatureBody {
12
+ readonly imageDigest: string;
13
+ readonly artifactVersion: string;
14
+ readonly indexHash: string;
15
+ readonly tenantId: string;
16
+ readonly publishedAt: string;
17
+ }
18
+ export interface DeployEnvelope {
19
+ readonly $schema: typeof DEPLOY_ENVELOPE_SCHEMA;
20
+ readonly imageRef: string;
21
+ readonly imageDigest: string;
22
+ readonly artifactVersion: string;
23
+ readonly index: Readonly<Record<string, unknown>>;
24
+ readonly indexHash: string;
25
+ readonly tenantId: string;
26
+ readonly publishedAt: string;
27
+ /** Optional — omitted when `--skip-sign` is set. */
28
+ readonly signerKeyId?: string;
29
+ /** Optional — omitted when `--skip-sign` is set. */
30
+ readonly signerPublicKey?: string;
31
+ /** Optional — omitted when `--skip-sign` is set. */
32
+ readonly signature?: string;
33
+ readonly buildLogsUrl?: string;
34
+ }
35
+ /**
36
+ * Canonicalise the signature body. Same shape the server's deployment
37
+ * route verifies against. Sorted-key JSON with no whitespace —
38
+ * byte-identical output for identical inputs across every JS runtime.
39
+ *
40
+ * Framework-grade note: we intentionally do NOT reach into
41
+ * `packages/compliance-pipeline/src/canonical.ts` or
42
+ * `packages/handler-runtime/src/kindgi-index.ts`'s stableStringify.
43
+ * The CLI package's canonicalization is a leaf primitive — no
44
+ * cross-package coupling. All three implementations produce the same
45
+ * bytes (verified via the round-trip tests in each package).
46
+ */
47
+ export declare function canonicaliseSignatureBody(body: SignatureBody): Uint8Array;
48
+ /**
49
+ * Sort-keyed JSON.stringify. Objects recurse; arrays keep order (arrays
50
+ * are ordered data — sorting them would corrupt).
51
+ */
52
+ export declare function stableStringify(value: unknown): string;
53
+ export interface BuildEnvelopeInputs {
54
+ readonly imageRef: string;
55
+ readonly imageDigest: string;
56
+ readonly artifactVersion: string;
57
+ readonly index: Readonly<Record<string, unknown>>;
58
+ readonly indexHash: string;
59
+ readonly tenantId: string;
60
+ readonly publishedAt: string;
61
+ readonly buildLogsUrl?: string;
62
+ readonly signature?: {
63
+ readonly signatureBase64: string;
64
+ readonly publicKeyPem: string;
65
+ readonly keyId: string;
66
+ };
67
+ }
68
+ /** Assemble the deploy envelope JSON. Signed / unsigned depends on inputs. */
69
+ export declare function buildEnvelope(inputs: BuildEnvelopeInputs): DeployEnvelope;
70
+ /** Utility used by tests + defaults: sha256 hex prefixed `sha256:`. */
71
+ export declare function sha256Hex(bytes: Uint8Array): Promise<string>;
72
+ //# sourceMappingURL=envelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/build/envelope.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,eAAO,MAAM,sBAAsB,EAAG,2BAAoC,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,sBAAsB,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,oDAAoD;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,oDAAoD;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,CASzE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAStD;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAClH;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAiBzE;AAED,uEAAuE;AACvE,wBAAsB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlE"}
@@ -0,0 +1,76 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ /**
4
+ * Deploy envelope shape emitted by `kindgi build` — the file
5
+ * `kindgi deploy` reads and POSTs to `POST /v1/deployments`.
6
+ *
7
+ * Includes a canonicalizer that stably-serialises the signature body
8
+ * (sort-keyed JSON, no whitespace) so the same inputs produce the same
9
+ * bytes on every machine. The server applies the same canonicalization
10
+ * when it verifies the signature.
11
+ */
12
+ export const DEPLOY_ENVELOPE_SCHEMA = 'kindgi-deploy-envelope/v1';
13
+ /**
14
+ * Canonicalise the signature body. Same shape the server's deployment
15
+ * route verifies against. Sorted-key JSON with no whitespace —
16
+ * byte-identical output for identical inputs across every JS runtime.
17
+ *
18
+ * Framework-grade note: we intentionally do NOT reach into
19
+ * `packages/compliance-pipeline/src/canonical.ts` or
20
+ * `packages/handler-runtime/src/kindgi-index.ts`'s stableStringify.
21
+ * The CLI package's canonicalization is a leaf primitive — no
22
+ * cross-package coupling. All three implementations produce the same
23
+ * bytes (verified via the round-trip tests in each package).
24
+ */
25
+ export function canonicaliseSignatureBody(body) {
26
+ const canonical = {
27
+ artifactVersion: body.artifactVersion,
28
+ imageDigest: body.imageDigest,
29
+ indexHash: body.indexHash,
30
+ publishedAt: body.publishedAt,
31
+ tenantId: body.tenantId,
32
+ };
33
+ return new TextEncoder().encode(stableStringify(canonical));
34
+ }
35
+ /**
36
+ * Sort-keyed JSON.stringify. Objects recurse; arrays keep order (arrays
37
+ * are ordered data — sorting them would corrupt).
38
+ */
39
+ export function stableStringify(value) {
40
+ if (value === null || typeof value !== 'object')
41
+ return JSON.stringify(value);
42
+ if (Array.isArray(value)) {
43
+ return `[${value.map((v) => stableStringify(v)).join(',')}]`;
44
+ }
45
+ const obj = value;
46
+ const keys = Object.keys(obj).sort();
47
+ const parts = keys.map((k) => `${JSON.stringify(k)}:${stableStringify(obj[k])}`);
48
+ return `{${parts.join(',')}}`;
49
+ }
50
+ /** Assemble the deploy envelope JSON. Signed / unsigned depends on inputs. */
51
+ export function buildEnvelope(inputs) {
52
+ return {
53
+ $schema: DEPLOY_ENVELOPE_SCHEMA,
54
+ imageRef: inputs.imageRef,
55
+ imageDigest: inputs.imageDigest,
56
+ artifactVersion: inputs.artifactVersion,
57
+ index: inputs.index,
58
+ indexHash: inputs.indexHash,
59
+ tenantId: inputs.tenantId,
60
+ publishedAt: inputs.publishedAt,
61
+ ...(inputs.signature !== undefined && {
62
+ signerKeyId: inputs.signature.keyId,
63
+ signerPublicKey: inputs.signature.publicKeyPem,
64
+ signature: inputs.signature.signatureBase64,
65
+ }),
66
+ ...(inputs.buildLogsUrl !== undefined && { buildLogsUrl: inputs.buildLogsUrl }),
67
+ };
68
+ }
69
+ /** Utility used by tests + defaults: sha256 hex prefixed `sha256:`. */
70
+ export async function sha256Hex(bytes) {
71
+ const { createHash } = await import('node:crypto');
72
+ const h = createHash('sha256');
73
+ h.update(bytes);
74
+ return `sha256:${h.digest('hex')}`;
75
+ }
76
+ //# sourceMappingURL=envelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/build/envelope.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,2BAAoC,CAAC;AA4B3E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAmB;IAC3D,MAAM,SAAS,GAAG;QAChB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;IACF,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/D,CAAC;IACD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjF,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAChC,CAAC;AAcD,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,MAA2B;IACvD,OAAO;QACL,OAAO,EAAE,sBAAsB;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI;YACpC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK;YACnC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY;YAC9C,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe;SAC5C,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;KAChF,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAiB;IAC/C,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACrC,CAAC"}
@@ -0,0 +1,48 @@
1
+ export type ImagePackageManager = 'pnpm' | 'npm' | 'yarn';
2
+ /** A config file the install reads as a build secret, never a layer. */
3
+ export interface HostSecret {
4
+ /** The BuildKit secret id (`--secret id=<id>,src=<file>`). */
5
+ readonly id: string;
6
+ /** Relative to the install root. */
7
+ readonly file: string;
8
+ }
9
+ export interface HostInstall {
10
+ /** The install root: the nearest folder at or above the pack with a lockfile. */
11
+ readonly root: string;
12
+ /** The pack folder relative to `root` (`''` when the pack is the root). */
13
+ readonly packRel: string;
14
+ readonly manager: ImagePackageManager;
15
+ /** The root `package.json`'s `packageManager` (`pnpm@11.25.0`): what corepack installs. */
16
+ readonly managerSpec?: string;
17
+ /** Yarn 2+ (a `yarn.lock` with `__metadata`), which installs differently. */
18
+ readonly yarnBerry: boolean;
19
+ /**
20
+ * The root is a workspace with members (`pnpm-workspace.yaml`, or
21
+ * `workspaces`): with pnpm, the image installs only the pack's project
22
+ * and what it depends on.
23
+ */
24
+ readonly workspace: boolean;
25
+ /** The root `package.json`'s `engines.node`. */
26
+ readonly enginesNode?: string;
27
+ /** Files the install reads, relative to `root`, sorted. */
28
+ readonly files: readonly string[];
29
+ readonly secrets: readonly HostSecret[];
30
+ }
31
+ export type HostInstallOutcome = {
32
+ readonly kind: 'ok';
33
+ readonly install: HostInstall;
34
+ } | {
35
+ readonly kind: 'err';
36
+ readonly message: string;
37
+ };
38
+ /** What a pack image installs, for the pack at `packDir`. */
39
+ export declare function resolveHostInstall(packDir: string): Promise<HostInstallOutcome>;
40
+ /** The install, and the prune once build steps that need dev dependencies are done. */
41
+ export interface InstallCommands {
42
+ /** Full install, frozen, scripts off; then the allowed build scripts. */
43
+ readonly install: string;
44
+ /** Down to production dependencies. */
45
+ readonly prune: string;
46
+ }
47
+ export declare function installCommands(install: HostInstall): InstallCommands;
48
+ //# sourceMappingURL=host-install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-install.d.ts","sourceRoot":"","sources":["../../src/build/host-install.ts"],"names":[],"mappings":"AA4BA,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAE1D,wEAAwE;AACxE,MAAM,WAAW,UAAU;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,2FAA2F;IAC3F,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;CACzC;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAoBvD,6DAA6D;AAC7D,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0JrF;AAED,uFAAuF;AACvF,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAmCrE"}
@@ -0,0 +1,375 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ import { readFile, readdir, stat } from 'node:fs/promises';
4
+ import { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
5
+ import { createGlobMatcher } from '@kindgi/handler-runtime';
6
+ import { parse as parseYaml } from 'yaml';
7
+ import { forbiddenReason } from './context-files.js';
8
+ const LOCKFILES = [
9
+ ['pnpm-lock.yaml', 'pnpm'],
10
+ ['package-lock.json', 'npm'],
11
+ ['npm-shrinkwrap.json', 'npm'],
12
+ ['yarn.lock', 'yarn'],
13
+ ['bun.lock', 'bun'],
14
+ ['bun.lockb', 'bun'],
15
+ ];
16
+ const DEPENDENCY_FIELDS = [
17
+ 'dependencies',
18
+ 'devDependencies',
19
+ 'optionalDependencies',
20
+ 'peerDependencies',
21
+ ];
22
+ /** What a pack image installs, for the pack at `packDir`. */
23
+ export async function resolveHostInstall(packDir) {
24
+ const found = await findLockfile(resolve(packDir));
25
+ if (found === undefined) {
26
+ return {
27
+ kind: 'err',
28
+ message: `No lockfile at or above ${packDir}. A pack image installs the app's dependencies from its lockfile: run the app's install (pnpm, npm or yarn) so it writes one.`,
29
+ };
30
+ }
31
+ const { root, lockfile, manager } = found;
32
+ if (manager === 'bun') {
33
+ return { kind: 'err', message: `${lockfile}: bun isn't supported for pack images yet; use pnpm, npm or yarn.` };
34
+ }
35
+ const rootManifest = await readManifest(join(root, 'package.json'));
36
+ if (rootManifest === undefined) {
37
+ return { kind: 'err', message: `${join(root, 'package.json')} is missing or isn't JSON.` };
38
+ }
39
+ const managerSpec = stringField(rootManifest, 'packageManager');
40
+ const declared = managerSpec?.split('@')[0];
41
+ if (declared !== undefined && declared !== manager) {
42
+ return {
43
+ kind: 'err',
44
+ message: `package.json says packageManager "${managerSpec}", but the lockfile is ${lockfile} (${manager}). Make them agree.`,
45
+ };
46
+ }
47
+ const files = new Set(['package.json', lockfile]);
48
+ const secrets = [];
49
+ let yarnBerry = false;
50
+ let memberPatterns = [];
51
+ // Where overrides and resolutions can point a package at a local path.
52
+ const overrides = [];
53
+ if (manager === 'pnpm') {
54
+ const workspace = await readYaml(join(root, 'pnpm-workspace.yaml'));
55
+ overrides.push(['pnpm-workspace.yaml overrides', workspace?.overrides]);
56
+ if (workspace !== undefined) {
57
+ files.add('pnpm-workspace.yaml');
58
+ memberPatterns = stringList(workspace.packages);
59
+ for (const patch of Object.values(objectField(workspace, 'patchedDependencies'))) {
60
+ if (typeof patch === 'string')
61
+ files.add(patch);
62
+ }
63
+ }
64
+ const pnpmField = objectField(rootManifest, 'pnpm');
65
+ overrides.push(['package.json pnpm.overrides', pnpmField.overrides]);
66
+ for (const patch of Object.values(objectField(pnpmField, 'patchedDependencies'))) {
67
+ if (typeof patch === 'string')
68
+ files.add(patch);
69
+ }
70
+ if (await isFile(join(root, '.pnpmfile.cjs')))
71
+ files.add('.pnpmfile.cjs');
72
+ }
73
+ else {
74
+ overrides.push(manager === 'npm'
75
+ ? ['package.json overrides', rootManifest.overrides]
76
+ : ['package.json resolutions', rootManifest.resolutions]);
77
+ const workspaces = rootManifest.workspaces;
78
+ memberPatterns = Array.isArray(workspaces)
79
+ ? stringList(workspaces)
80
+ : stringList(objectField(rootManifest, 'workspaces').packages);
81
+ }
82
+ if (manager === 'yarn') {
83
+ yarnBerry = (await readFile(join(root, lockfile), 'utf8')).includes('__metadata:');
84
+ if (yarnBerry) {
85
+ const yarnrc = await readYaml(join(root, '.yarnrc.yml'));
86
+ const linker = yarnrc?.nodeLinker;
87
+ if (linker !== 'node-modules') {
88
+ return {
89
+ kind: 'err',
90
+ message: `Yarn ${linker === undefined ? 'Plug’n’Play (the default)' : `nodeLinker "${String(linker)}"`} has no node_modules for a pack image to load packages from: set nodeLinker: node-modules in .yarnrc.yml.`,
91
+ };
92
+ }
93
+ secrets.push({ id: 'yarnrc-yml', file: '.yarnrc.yml' });
94
+ for (const dir of ['.yarn/releases', '.yarn/plugins', '.yarn/patches']) {
95
+ for (const file of await filesUnder(root, dir))
96
+ files.add(file);
97
+ }
98
+ }
99
+ else if (await isFile(join(root, '.yarnrc'))) {
100
+ secrets.push({ id: 'yarnrc', file: '.yarnrc' });
101
+ }
102
+ }
103
+ if (await isFile(join(root, '.npmrc')))
104
+ secrets.push({ id: 'npmrc', file: '.npmrc' });
105
+ // Workspace members: their manifests, so a frozen install sees the
106
+ // whole workspace the lockfile describes.
107
+ const memberDirs = await matchDirectories(root, memberPatterns);
108
+ const workspace = memberDirs.some((dir) => dir !== '');
109
+ const manifests = [['', rootManifest]];
110
+ for (const dir of memberDirs) {
111
+ if (dir === '')
112
+ continue;
113
+ const manifest = await readManifest(join(root, dir, 'package.json'));
114
+ if (manifest === undefined)
115
+ continue;
116
+ files.add(`${dir}/package.json`);
117
+ manifests.push([dir, manifest]);
118
+ }
119
+ const packRel = toPosix(relative(root, resolve(packDir)));
120
+ if (packRel !== '' && !files.has(`${packRel}/package.json`)) {
121
+ const manifest = await readManifest(join(root, packRel, 'package.json'));
122
+ if (manifest !== undefined) {
123
+ files.add(`${packRel}/package.json`);
124
+ manifests.push([packRel, manifest]);
125
+ }
126
+ }
127
+ // Local dependencies (`file:` / `link:` / `portal:`) the install reads:
128
+ // those the manifests name (relative to their folder), and those the
129
+ // overrides point at (relative to the root).
130
+ const locals = [];
131
+ for (const [dir, manifest] of manifests) {
132
+ for (const field of DEPENDENCY_FIELDS) {
133
+ for (const [name, spec] of Object.entries(objectField(manifest, field))) {
134
+ if (typeof spec === 'string') {
135
+ locals.push({ name, spec, base: dir, where: `${dir === '' ? '' : `${dir}/`}package.json` });
136
+ }
137
+ }
138
+ }
139
+ }
140
+ for (const [where, value] of overrides) {
141
+ for (const [name, spec] of overrideSpecs(value))
142
+ locals.push({ name, spec, base: '', where });
143
+ }
144
+ for (const { name, spec, base, where } of locals) {
145
+ const local = /^(file|link|portal):(.+)$/.exec(spec);
146
+ if (local === null)
147
+ continue;
148
+ const rel = toPosix(relative(root, resolve(root, base, local[2] ?? '')));
149
+ if (rel.startsWith('..') || isAbsolute(rel)) {
150
+ return {
151
+ kind: 'err',
152
+ message: `${name} is "${spec}" in ${where}, outside the project: a pack image can't install it. Vendor it as a tarball inside the project (file:vendor/<name>.tgz), or install it from a registry.`,
153
+ };
154
+ }
155
+ const added = await addLocalDependency(root, rel, files);
156
+ if (added !== undefined)
157
+ return { kind: 'err', message: added };
158
+ }
159
+ for (const file of files) {
160
+ const reason = forbiddenReason(file);
161
+ if (reason !== undefined) {
162
+ return { kind: 'err', message: `The install would ship ${file} (${reason}); move it out of the install's inputs.` };
163
+ }
164
+ }
165
+ const enginesNode = stringField(objectField(rootManifest, 'engines'), 'node');
166
+ return {
167
+ kind: 'ok',
168
+ install: {
169
+ root,
170
+ packRel,
171
+ manager,
172
+ ...(managerSpec !== undefined && { managerSpec }),
173
+ yarnBerry,
174
+ workspace,
175
+ ...(enginesNode !== undefined && { enginesNode }),
176
+ files: [...files].sort(),
177
+ secrets,
178
+ },
179
+ };
180
+ }
181
+ export function installCommands(install) {
182
+ switch (install.manager) {
183
+ case 'pnpm': {
184
+ // `rebuild` runs the build scripts the app allows (pnpm's allowBuilds).
185
+ if (!install.workspace) {
186
+ return {
187
+ install: 'pnpm install --frozen-lockfile --ignore-scripts && pnpm rebuild',
188
+ prune: 'pnpm prune --prod',
189
+ };
190
+ }
191
+ // A workspace: the pack's project and what it depends on, not the
192
+ // rest of the workspace. The prune is the same filtered install with
193
+ // --prod (`pnpm prune` ignores a filter and installs the whole
194
+ // workspace).
195
+ const only = `--filter '{${install.packRel === '' ? '.' : `./${install.packRel}`}}...'`;
196
+ return {
197
+ install: `pnpm install --frozen-lockfile --ignore-scripts ${only} && pnpm ${only} rebuild`,
198
+ prune: `pnpm install --frozen-lockfile --ignore-scripts --prod ${only}`,
199
+ };
200
+ }
201
+ case 'npm':
202
+ return {
203
+ install: 'npm ci --ignore-scripts --no-audit --no-fund && npm rebuild',
204
+ prune: 'npm prune --omit=dev --no-audit --no-fund',
205
+ };
206
+ case 'yarn':
207
+ return install.yarnBerry
208
+ ? { install: 'yarn install --immutable', prune: 'yarn workspaces focus --all --production' }
209
+ : {
210
+ install: 'yarn install --frozen-lockfile --ignore-scripts --non-interactive && npm rebuild',
211
+ prune: 'yarn install --production --frozen-lockfile --ignore-scripts --non-interactive && npm rebuild',
212
+ };
213
+ }
214
+ }
215
+ // ---------------------------------------------------------------------
216
+ async function findLockfile(start) {
217
+ let current = start;
218
+ for (;;) {
219
+ for (const [lockfile, manager] of LOCKFILES) {
220
+ if (await isFile(join(current, lockfile)))
221
+ return { root: current, lockfile, manager };
222
+ }
223
+ const parent = dirname(current);
224
+ if (parent === current)
225
+ return undefined;
226
+ current = parent;
227
+ }
228
+ }
229
+ /**
230
+ * Every `[package, spec]` in overrides or resolutions: a flat map of
231
+ * strings (pnpm, yarn), or npm's nested one (`{ "a": { "b": "1.0.0" } }`,
232
+ * `"."` for the package itself).
233
+ */
234
+ function overrideSpecs(value, parent = '') {
235
+ if (value === null || typeof value !== 'object' || Array.isArray(value))
236
+ return [];
237
+ const out = [];
238
+ for (const [key, spec] of Object.entries(value)) {
239
+ const name = key === '.' ? parent : key;
240
+ if (typeof spec === 'string')
241
+ out.push([name, spec]);
242
+ else
243
+ out.push(...overrideSpecs(spec, key));
244
+ }
245
+ return out;
246
+ }
247
+ /** A `file:` / `link:` dependency inside the root: the tarball, or the folder's files. */
248
+ async function addLocalDependency(root, rel, files) {
249
+ const abs = join(root, rel);
250
+ let info;
251
+ try {
252
+ info = await stat(abs);
253
+ }
254
+ catch {
255
+ return `The local dependency ${rel} doesn't exist.`;
256
+ }
257
+ if (info.isFile()) {
258
+ files.add(rel);
259
+ return undefined;
260
+ }
261
+ for (const file of await filesUnder(root, rel))
262
+ files.add(file);
263
+ return undefined;
264
+ }
265
+ /** Every file under `dir` (relative to `root`), skipping `node_modules` and `.git`. */
266
+ async function filesUnder(root, dir) {
267
+ const out = [];
268
+ const walk = async (rel) => {
269
+ let entries;
270
+ try {
271
+ entries = await readdir(join(root, rel), { withFileTypes: true });
272
+ }
273
+ catch {
274
+ return;
275
+ }
276
+ for (const entry of entries) {
277
+ if (entry.name === 'node_modules' || entry.name === '.git')
278
+ continue;
279
+ const child = `${rel}/${entry.name}`;
280
+ if (entry.isDirectory())
281
+ await walk(child);
282
+ else if (entry.isFile())
283
+ out.push(child);
284
+ }
285
+ };
286
+ await walk(dir);
287
+ return out;
288
+ }
289
+ /**
290
+ * The folders (relative to `root`) the workspace patterns match:
291
+ * `packages/*`, `apps/**`, `.`, with `!` negations.
292
+ */
293
+ async function matchDirectories(root, patterns) {
294
+ const include = patterns.filter((p) => !p.startsWith('!')).map(normalizePattern);
295
+ const exclude = patterns.filter((p) => p.startsWith('!')).map((p) => normalizePattern(p.slice(1)));
296
+ if (include.length === 0)
297
+ return [];
298
+ const included = createGlobMatcher(include);
299
+ const excluded = exclude.length > 0 ? createGlobMatcher(exclude) : () => false;
300
+ const out = include.includes('') ? [''] : [];
301
+ const deep = include.some((p) => p.includes('**'));
302
+ const maxDepth = deep ? Number.POSITIVE_INFINITY : Math.max(...include.map((p) => p.split('/').length));
303
+ const walk = async (rel, depth) => {
304
+ if (depth >= maxDepth)
305
+ return;
306
+ let entries;
307
+ try {
308
+ entries = await readdir(rel === '' ? root : join(root, rel), { withFileTypes: true });
309
+ }
310
+ catch {
311
+ return;
312
+ }
313
+ for (const entry of entries) {
314
+ if (!entry.isDirectory() || entry.name === 'node_modules' || entry.name.startsWith('.'))
315
+ continue;
316
+ const child = rel === '' ? entry.name : `${rel}/${entry.name}`;
317
+ if (included(child) && !excluded(child))
318
+ out.push(child);
319
+ await walk(child, depth + 1);
320
+ }
321
+ };
322
+ await walk('', 0);
323
+ return out.sort();
324
+ }
325
+ function normalizePattern(pattern) {
326
+ const trimmed = pattern.replace(/^\.\//, '').replace(/\/+$/, '');
327
+ return trimmed === '.' ? '' : trimmed;
328
+ }
329
+ async function readManifest(path) {
330
+ try {
331
+ const parsed = JSON.parse(await readFile(path, 'utf8'));
332
+ return parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)
333
+ ? parsed
334
+ : undefined;
335
+ }
336
+ catch {
337
+ return undefined;
338
+ }
339
+ }
340
+ async function readYaml(path) {
341
+ let raw;
342
+ try {
343
+ raw = await readFile(path, 'utf8');
344
+ }
345
+ catch {
346
+ return undefined;
347
+ }
348
+ const parsed = parseYaml(raw);
349
+ return parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)
350
+ ? parsed
351
+ : {};
352
+ }
353
+ async function isFile(path) {
354
+ try {
355
+ return (await stat(path)).isFile();
356
+ }
357
+ catch {
358
+ return false;
359
+ }
360
+ }
361
+ function objectField(value, key) {
362
+ const field = value?.[key];
363
+ return field !== null && typeof field === 'object' && !Array.isArray(field) ? field : {};
364
+ }
365
+ function stringField(value, key) {
366
+ const field = value[key];
367
+ return typeof field === 'string' && field !== '' ? field : undefined;
368
+ }
369
+ function stringList(value) {
370
+ return Array.isArray(value) ? value.filter((v) => typeof v === 'string') : [];
371
+ }
372
+ function toPosix(path) {
373
+ return path.split(sep).join('/');
374
+ }
375
+ //# sourceMappingURL=host-install.js.map