@canonical/pragma-cli 0.34.0 → 0.35.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 (798) hide show
  1. package/README.md +153 -30
  2. package/dist/.build-ok +0 -0
  3. package/dist/package.json +83 -0
  4. package/dist/pragma.conf.js +814 -0
  5. package/dist/pragma.conf.js.map +1 -0
  6. package/dist/src/bin.js +356 -0
  7. package/dist/src/bin.js.map +1 -0
  8. package/dist/src/capabilities/capabilities/capabilities.render.js +70 -0
  9. package/dist/src/capabilities/capabilities/capabilities.render.js.map +1 -0
  10. package/dist/src/capabilities/capabilities/capabilities.verb.js +59 -0
  11. package/dist/src/capabilities/capabilities/capabilities.verb.js.map +1 -0
  12. package/dist/src/capabilities/capabilities/catalog.js +130 -0
  13. package/dist/src/capabilities/capabilities/catalog.js.map +1 -0
  14. package/dist/src/capabilities/capabilities/hints.js +195 -0
  15. package/dist/src/capabilities/capabilities/hints.js.map +1 -0
  16. package/dist/src/capabilities/capabilities/index.js +11 -0
  17. package/dist/src/capabilities/capabilities/index.js.map +1 -0
  18. package/dist/src/capabilities/capabilities/types.js +11 -0
  19. package/dist/src/capabilities/capabilities/types.js.map +1 -0
  20. package/dist/src/capabilities/colophon/collectColophon.js +83 -0
  21. package/dist/src/capabilities/colophon/collectColophon.js.map +1 -0
  22. package/dist/src/capabilities/colophon/colophon.render.js +59 -0
  23. package/dist/src/capabilities/colophon/colophon.render.js.map +1 -0
  24. package/dist/src/capabilities/colophon/colophon.verb.js +43 -0
  25. package/dist/src/capabilities/colophon/colophon.verb.js.map +1 -0
  26. package/dist/src/capabilities/colophon/index.js +5 -0
  27. package/dist/src/capabilities/colophon/index.js.map +1 -0
  28. package/dist/src/capabilities/colophon/markdownTerminal.js +90 -0
  29. package/dist/src/capabilities/colophon/markdownTerminal.js.map +1 -0
  30. package/dist/src/capabilities/colophon/types.js +10 -0
  31. package/dist/src/capabilities/colophon/types.js.map +1 -0
  32. package/dist/src/capabilities/config/collectConfigShow.js +59 -0
  33. package/dist/src/capabilities/config/collectConfigShow.js.map +1 -0
  34. package/dist/src/capabilities/config/field.render.js +22 -0
  35. package/dist/src/capabilities/config/field.render.js.map +1 -0
  36. package/dist/src/capabilities/config/fields.js +46 -0
  37. package/dist/src/capabilities/config/fields.js.map +1 -0
  38. package/dist/src/capabilities/config/get.verb.js +61 -0
  39. package/dist/src/capabilities/config/get.verb.js.map +1 -0
  40. package/dist/src/capabilities/config/index.js +5 -0
  41. package/dist/src/capabilities/config/index.js.map +1 -0
  42. package/dist/src/capabilities/config/runField.js +59 -0
  43. package/dist/src/capabilities/config/runField.js.map +1 -0
  44. package/dist/src/capabilities/config/runGet.js +28 -0
  45. package/dist/src/capabilities/config/runGet.js.map +1 -0
  46. package/dist/src/capabilities/config/runSet.js +53 -0
  47. package/dist/src/capabilities/config/runSet.js.map +1 -0
  48. package/dist/src/capabilities/config/set.verb.js +66 -0
  49. package/dist/src/capabilities/config/set.verb.js.map +1 -0
  50. package/dist/src/capabilities/config/show.render.js +84 -0
  51. package/dist/src/capabilities/config/show.render.js.map +1 -0
  52. package/dist/src/capabilities/config/show.verb.js +44 -0
  53. package/dist/src/capabilities/config/show.verb.js.map +1 -0
  54. package/dist/src/capabilities/config/types.js +5 -0
  55. package/dist/src/capabilities/config/types.js.map +1 -0
  56. package/dist/src/capabilities/config/unset.verb.js +49 -0
  57. package/dist/src/capabilities/config/unset.verb.js.map +1 -0
  58. package/dist/src/capabilities/create/cliProjection.js +195 -0
  59. package/dist/src/capabilities/create/cliProjection.js.map +1 -0
  60. package/dist/src/capabilities/create/constants.js +47 -0
  61. package/dist/src/capabilities/create/constants.js.map +1 -0
  62. package/dist/src/capabilities/create/create.render.js +100 -0
  63. package/dist/src/capabilities/create/create.render.js.map +1 -0
  64. package/dist/src/capabilities/create/create.verb.js +438 -0
  65. package/dist/src/capabilities/create/create.verb.js.map +1 -0
  66. package/dist/src/capabilities/create/createHelp.js +47 -0
  67. package/dist/src/capabilities/create/createHelp.js.map +1 -0
  68. package/dist/src/capabilities/create/createSurface.generated.js +394 -0
  69. package/dist/src/capabilities/create/createSurface.generated.js.map +1 -0
  70. package/dist/src/capabilities/create/generatorToVerbSpec.js +106 -0
  71. package/dist/src/capabilities/create/generatorToVerbSpec.js.map +1 -0
  72. package/dist/src/capabilities/create/index.js +18 -0
  73. package/dist/src/capabilities/create/index.js.map +1 -0
  74. package/dist/src/capabilities/create/messages.js +16 -0
  75. package/dist/src/capabilities/create/messages.js.map +1 -0
  76. package/dist/src/capabilities/create/mount.js +293 -0
  77. package/dist/src/capabilities/create/mount.js.map +1 -0
  78. package/dist/src/capabilities/create/pathJail.js +65 -0
  79. package/dist/src/capabilities/create/pathJail.js.map +1 -0
  80. package/dist/src/capabilities/create/pickGenerator.js +53 -0
  81. package/dist/src/capabilities/create/pickGenerator.js.map +1 -0
  82. package/dist/src/capabilities/create/types.js +2 -0
  83. package/dist/src/capabilities/create/types.js.map +1 -0
  84. package/dist/src/capabilities/distribution.js +40 -0
  85. package/dist/src/capabilities/distribution.js.map +1 -0
  86. package/dist/src/capabilities/doctor/checks/checkKeStore.js +40 -0
  87. package/dist/src/capabilities/doctor/checks/checkKeStore.js.map +1 -0
  88. package/dist/src/capabilities/doctor/checks/checkNodeVersion.js +21 -0
  89. package/dist/src/capabilities/doctor/checks/checkNodeVersion.js.map +1 -0
  90. package/dist/src/capabilities/doctor/checks/checkPackageRefs.js +92 -0
  91. package/dist/src/capabilities/doctor/checks/checkPackageRefs.js.map +1 -0
  92. package/dist/src/capabilities/doctor/checks/checkPragmaVersion.js +19 -0
  93. package/dist/src/capabilities/doctor/checks/checkPragmaVersion.js.map +1 -0
  94. package/dist/src/capabilities/doctor/checks/checkShellCompletions.js +199 -0
  95. package/dist/src/capabilities/doctor/checks/checkShellCompletions.js.map +1 -0
  96. package/dist/src/capabilities/doctor/checks/index.js +27 -0
  97. package/dist/src/capabilities/doctor/checks/index.js.map +1 -0
  98. package/dist/src/capabilities/doctor/checks/mcpCommand.js +57 -0
  99. package/dist/src/capabilities/doctor/checks/mcpCommand.js.map +1 -0
  100. package/dist/src/capabilities/doctor/checks/targetHealth.js +205 -0
  101. package/dist/src/capabilities/doctor/checks/targetHealth.js.map +1 -0
  102. package/dist/src/capabilities/doctor/doctor.render.js +185 -0
  103. package/dist/src/capabilities/doctor/doctor.render.js.map +1 -0
  104. package/dist/src/capabilities/doctor/doctor.verb.js +45 -0
  105. package/dist/src/capabilities/doctor/doctor.verb.js.map +1 -0
  106. package/dist/src/capabilities/doctor/index.js +5 -0
  107. package/dist/src/capabilities/doctor/index.js.map +1 -0
  108. package/dist/src/capabilities/doctor/runChecks.js +83 -0
  109. package/dist/src/capabilities/doctor/runChecks.js.map +1 -0
  110. package/dist/src/capabilities/doctor/types.js +5 -0
  111. package/dist/src/capabilities/doctor/types.js.map +1 -0
  112. package/dist/src/capabilities/graph/index.js +19 -0
  113. package/dist/src/capabilities/graph/index.js.map +1 -0
  114. package/dist/src/capabilities/graph/inspect.render.js +76 -0
  115. package/dist/src/capabilities/graph/inspect.render.js.map +1 -0
  116. package/dist/src/capabilities/graph/inspect.verb.js +53 -0
  117. package/dist/src/capabilities/graph/inspect.verb.js.map +1 -0
  118. package/dist/src/capabilities/graph/query.render.js +73 -0
  119. package/dist/src/capabilities/graph/query.render.js.map +1 -0
  120. package/dist/src/capabilities/graph/query.verb.js +49 -0
  121. package/dist/src/capabilities/graph/query.verb.js.map +1 -0
  122. package/dist/src/capabilities/graph/runQuery.js +41 -0
  123. package/dist/src/capabilities/graph/runQuery.js.map +1 -0
  124. package/dist/src/capabilities/index.js +56 -0
  125. package/dist/src/capabilities/index.js.map +1 -0
  126. package/dist/src/capabilities/info/collectInfo.js +66 -0
  127. package/dist/src/capabilities/info/collectInfo.js.map +1 -0
  128. package/dist/src/capabilities/info/index.js +5 -0
  129. package/dist/src/capabilities/info/index.js.map +1 -0
  130. package/dist/src/capabilities/info/info.render.js +53 -0
  131. package/dist/src/capabilities/info/info.render.js.map +1 -0
  132. package/dist/src/capabilities/info/info.verb.js +42 -0
  133. package/dist/src/capabilities/info/info.verb.js.map +1 -0
  134. package/dist/src/capabilities/info/types.js +5 -0
  135. package/dist/src/capabilities/info/types.js.map +1 -0
  136. package/dist/src/capabilities/meta/complete.verb.js +43 -0
  137. package/dist/src/capabilities/meta/complete.verb.js.map +1 -0
  138. package/dist/src/capabilities/meta/index.js +13 -0
  139. package/dist/src/capabilities/meta/index.js.map +1 -0
  140. package/dist/src/capabilities/meta/mcp.verb.js +34 -0
  141. package/dist/src/capabilities/meta/mcp.verb.js.map +1 -0
  142. package/dist/src/capabilities/ontology/index.js +21 -0
  143. package/dist/src/capabilities/ontology/index.js.map +1 -0
  144. package/dist/src/capabilities/ontology/queries.js +123 -0
  145. package/dist/src/capabilities/ontology/queries.js.map +1 -0
  146. package/dist/src/capabilities/ontology/render.js +66 -0
  147. package/dist/src/capabilities/ontology/render.js.map +1 -0
  148. package/dist/src/capabilities/ontology/verbs.js +181 -0
  149. package/dist/src/capabilities/ontology/verbs.js.map +1 -0
  150. package/dist/src/capabilities/prompt/index.js +16 -0
  151. package/dist/src/capabilities/prompt/index.js.map +1 -0
  152. package/dist/src/capabilities/prompt/prompt.render.js +78 -0
  153. package/dist/src/capabilities/prompt/prompt.render.js.map +1 -0
  154. package/dist/src/capabilities/prompt/types.js +10 -0
  155. package/dist/src/capabilities/prompt/types.js.map +1 -0
  156. package/dist/src/capabilities/prompt/verbs.js +93 -0
  157. package/dist/src/capabilities/prompt/verbs.js.map +1 -0
  158. package/dist/src/capabilities/resources/index.js +10 -0
  159. package/dist/src/capabilities/resources/index.js.map +1 -0
  160. package/dist/src/capabilities/resources/provider.js +423 -0
  161. package/dist/src/capabilities/resources/provider.js.map +1 -0
  162. package/dist/src/capabilities/setup/buildPlan.js +168 -0
  163. package/dist/src/capabilities/setup/buildPlan.js.map +1 -0
  164. package/dist/src/capabilities/setup/index.js +5 -0
  165. package/dist/src/capabilities/setup/index.js.map +1 -0
  166. package/dist/src/capabilities/setup/mode.js +53 -0
  167. package/dist/src/capabilities/setup/mode.js.map +1 -0
  168. package/dist/src/capabilities/setup/operations/index.js +39 -0
  169. package/dist/src/capabilities/setup/operations/index.js.map +1 -0
  170. package/dist/src/capabilities/setup/operations/setupCompletions.js +160 -0
  171. package/dist/src/capabilities/setup/operations/setupCompletions.js.map +1 -0
  172. package/dist/src/capabilities/setup/operations/setupConfig.js +101 -0
  173. package/dist/src/capabilities/setup/operations/setupConfig.js.map +1 -0
  174. package/dist/src/capabilities/setup/operations/setupGenerator.js +343 -0
  175. package/dist/src/capabilities/setup/operations/setupGenerator.js.map +1 -0
  176. package/dist/src/capabilities/setup/operations/setupLsp.js +277 -0
  177. package/dist/src/capabilities/setup/operations/setupLsp.js.map +1 -0
  178. package/dist/src/capabilities/setup/operations/setupMcp.js +207 -0
  179. package/dist/src/capabilities/setup/operations/setupMcp.js.map +1 -0
  180. package/dist/src/capabilities/setup/operations/setupSkills.js +316 -0
  181. package/dist/src/capabilities/setup/operations/setupSkills.js.map +1 -0
  182. package/dist/src/capabilities/setup/plan.js +128 -0
  183. package/dist/src/capabilities/setup/plan.js.map +1 -0
  184. package/dist/src/capabilities/setup/plan.render.js +193 -0
  185. package/dist/src/capabilities/setup/plan.render.js.map +1 -0
  186. package/dist/src/capabilities/setup/setup.render.js +54 -0
  187. package/dist/src/capabilities/setup/setup.render.js.map +1 -0
  188. package/dist/src/capabilities/setup/setup.verb.js +334 -0
  189. package/dist/src/capabilities/setup/setup.verb.js.map +1 -0
  190. package/dist/src/capabilities/setup/shell.js +196 -0
  191. package/dist/src/capabilities/setup/shell.js.map +1 -0
  192. package/dist/src/capabilities/setup/targets.js +263 -0
  193. package/dist/src/capabilities/setup/targets.js.map +1 -0
  194. package/dist/src/capabilities/setup/types.js +5 -0
  195. package/dist/src/capabilities/setup/types.js.map +1 -0
  196. package/dist/src/capabilities/shared/assertExecOk.js +137 -0
  197. package/dist/src/capabilities/shared/assertExecOk.js.map +1 -0
  198. package/dist/src/capabilities/shared/bands.js +16 -0
  199. package/dist/src/capabilities/shared/bands.js.map +1 -0
  200. package/dist/src/capabilities/shared/index.js +26 -0
  201. package/dist/src/capabilities/shared/index.js.map +1 -0
  202. package/dist/src/capabilities/shared/packageManager.js +103 -0
  203. package/dist/src/capabilities/shared/packageManager.js.map +1 -0
  204. package/dist/src/capabilities/shared/registry.js +55 -0
  205. package/dist/src/capabilities/shared/registry.js.map +1 -0
  206. package/dist/src/capabilities/skill/discover.js +195 -0
  207. package/dist/src/capabilities/skill/discover.js.map +1 -0
  208. package/dist/src/capabilities/skill/index.js +10 -0
  209. package/dist/src/capabilities/skill/index.js.map +1 -0
  210. package/dist/src/capabilities/skill/render.js +49 -0
  211. package/dist/src/capabilities/skill/render.js.map +1 -0
  212. package/dist/src/capabilities/skill/verbs.js +83 -0
  213. package/dist/src/capabilities/skill/verbs.js.map +1 -0
  214. package/dist/src/capabilities/sources/collectStatus.js +103 -0
  215. package/dist/src/capabilities/sources/collectStatus.js.map +1 -0
  216. package/dist/src/capabilities/sources/index.js +13 -0
  217. package/dist/src/capabilities/sources/index.js.map +1 -0
  218. package/dist/src/capabilities/sources/installSkills.js +167 -0
  219. package/dist/src/capabilities/sources/installSkills.js.map +1 -0
  220. package/dist/src/capabilities/sources/runUpdate.js +394 -0
  221. package/dist/src/capabilities/sources/runUpdate.js.map +1 -0
  222. package/dist/src/capabilities/sources/status.render.js +64 -0
  223. package/dist/src/capabilities/sources/status.render.js.map +1 -0
  224. package/dist/src/capabilities/sources/status.verb.js +40 -0
  225. package/dist/src/capabilities/sources/status.verb.js.map +1 -0
  226. package/dist/src/capabilities/sources/types.js +6 -0
  227. package/dist/src/capabilities/sources/types.js.map +1 -0
  228. package/dist/src/capabilities/sources/update.render.js +34 -0
  229. package/dist/src/capabilities/sources/update.render.js.map +1 -0
  230. package/dist/src/capabilities/sources/update.verb.js +55 -0
  231. package/dist/src/capabilities/sources/update.verb.js.map +1 -0
  232. package/dist/src/capabilities/upgrade/index.js +5 -0
  233. package/dist/src/capabilities/upgrade/index.js.map +1 -0
  234. package/dist/src/capabilities/upgrade/runUpgrade.js +99 -0
  235. package/dist/src/capabilities/upgrade/runUpgrade.js.map +1 -0
  236. package/dist/src/capabilities/upgrade/types.js +5 -0
  237. package/dist/src/capabilities/upgrade/types.js.map +1 -0
  238. package/dist/src/capabilities/upgrade/upgrade.render.js +44 -0
  239. package/dist/src/capabilities/upgrade/upgrade.render.js.map +1 -0
  240. package/dist/src/capabilities/upgrade/upgrade.verb.js +52 -0
  241. package/dist/src/capabilities/upgrade/upgrade.verb.js.map +1 -0
  242. package/dist/src/capabilities/version/index.js +10 -0
  243. package/dist/src/capabilities/version/index.js.map +1 -0
  244. package/dist/src/capabilities/version/version.verb.js +36 -0
  245. package/dist/src/capabilities/version/version.verb.js.map +1 -0
  246. package/dist/src/constants.js +82 -0
  247. package/dist/src/constants.js.map +1 -0
  248. package/dist/src/index.js +12 -0
  249. package/dist/src/index.js.map +1 -0
  250. package/dist/src/kernel/completion/complete.js +66 -0
  251. package/dist/src/kernel/completion/complete.js.map +1 -0
  252. package/dist/src/kernel/completion/emitScripts.js +92 -0
  253. package/dist/src/kernel/completion/emitScripts.js.map +1 -0
  254. package/dist/src/kernel/completion/entitySource.js +285 -0
  255. package/dist/src/kernel/completion/entitySource.js.map +1 -0
  256. package/dist/src/kernel/completion/index.js +14 -0
  257. package/dist/src/kernel/completion/index.js.map +1 -0
  258. package/dist/src/kernel/completion/model.js +301 -0
  259. package/dist/src/kernel/completion/model.js.map +1 -0
  260. package/dist/src/kernel/completion/parse.js +253 -0
  261. package/dist/src/kernel/completion/parse.js.map +1 -0
  262. package/dist/src/kernel/completion/rank.js +101 -0
  263. package/dist/src/kernel/completion/rank.js.map +1 -0
  264. package/dist/src/kernel/completion/resolve.js +100 -0
  265. package/dist/src/kernel/completion/resolve.js.map +1 -0
  266. package/dist/src/kernel/completion/templates/bash.js +209 -0
  267. package/dist/src/kernel/completion/templates/bash.js.map +1 -0
  268. package/dist/src/kernel/completion/templates/fish.js +214 -0
  269. package/dist/src/kernel/completion/templates/fish.js.map +1 -0
  270. package/dist/src/kernel/completion/templates/index.js +23 -0
  271. package/dist/src/kernel/completion/templates/index.js.map +1 -0
  272. package/dist/src/kernel/completion/templates/shared.js +98 -0
  273. package/dist/src/kernel/completion/templates/shared.js.map +1 -0
  274. package/dist/src/kernel/completion/templates/zsh.js +201 -0
  275. package/dist/src/kernel/completion/templates/zsh.js.map +1 -0
  276. package/dist/src/kernel/completion/types.js +13 -0
  277. package/dist/src/kernel/completion/types.js.map +1 -0
  278. package/dist/src/kernel/config/defaults.js +17 -0
  279. package/dist/src/kernel/config/defaults.js.map +1 -0
  280. package/dist/src/kernel/config/evaluateProjectConfig.js +126 -0
  281. package/dist/src/kernel/config/evaluateProjectConfig.js.map +1 -0
  282. package/dist/src/kernel/config/findProjectConfig.js +43 -0
  283. package/dist/src/kernel/config/findProjectConfig.js.map +1 -0
  284. package/dist/src/kernel/config/firstRun.js +34 -0
  285. package/dist/src/kernel/config/firstRun.js.map +1 -0
  286. package/dist/src/kernel/config/globalConfig.js +79 -0
  287. package/dist/src/kernel/config/globalConfig.js.map +1 -0
  288. package/dist/src/kernel/config/index.js +16 -0
  289. package/dist/src/kernel/config/index.js.map +1 -0
  290. package/dist/src/kernel/config/paths.js +35 -0
  291. package/dist/src/kernel/config/paths.js.map +1 -0
  292. package/dist/src/kernel/config/readConfig.js +78 -0
  293. package/dist/src/kernel/config/readConfig.js.map +1 -0
  294. package/dist/src/kernel/config/schema.js +130 -0
  295. package/dist/src/kernel/config/schema.js.map +1 -0
  296. package/dist/src/kernel/config/types.js +19 -0
  297. package/dist/src/kernel/config/types.js.map +1 -0
  298. package/dist/src/kernel/config/writeConfigField.js +59 -0
  299. package/dist/src/kernel/config/writeConfigField.js.map +1 -0
  300. package/dist/src/kernel/copy.js +43 -0
  301. package/dist/src/kernel/copy.js.map +1 -0
  302. package/dist/src/kernel/error/PragmaError.js +149 -0
  303. package/dist/src/kernel/error/PragmaError.js.map +1 -0
  304. package/dist/src/kernel/error/constants.js +40 -0
  305. package/dist/src/kernel/error/constants.js.map +1 -0
  306. package/dist/src/kernel/error/fromTaskError.js +96 -0
  307. package/dist/src/kernel/error/fromTaskError.js.map +1 -0
  308. package/dist/src/kernel/error/index.js +13 -0
  309. package/dist/src/kernel/error/index.js.map +1 -0
  310. package/dist/src/kernel/error/recovery.js +52 -0
  311. package/dist/src/kernel/error/recovery.js.map +1 -0
  312. package/dist/src/kernel/error/renderError.js +115 -0
  313. package/dist/src/kernel/error/renderError.js.map +1 -0
  314. package/dist/src/kernel/error/serialize.js +25 -0
  315. package/dist/src/kernel/error/serialize.js.map +1 -0
  316. package/dist/src/kernel/error/types.js +9 -0
  317. package/dist/src/kernel/error/types.js.map +1 -0
  318. package/dist/src/kernel/index.js +25 -0
  319. package/dist/src/kernel/index.js.map +1 -0
  320. package/dist/src/kernel/packs/collect.js +187 -0
  321. package/dist/src/kernel/packs/collect.js.map +1 -0
  322. package/dist/src/kernel/packs/compile.js +304 -0
  323. package/dist/src/kernel/packs/compile.js.map +1 -0
  324. package/dist/src/kernel/packs/disclosure.js +76 -0
  325. package/dist/src/kernel/packs/disclosure.js.map +1 -0
  326. package/dist/src/kernel/packs/glob.js +38 -0
  327. package/dist/src/kernel/packs/glob.js.map +1 -0
  328. package/dist/src/kernel/packs/graphql/buildLookupDocument.js +258 -0
  329. package/dist/src/kernel/packs/graphql/buildLookupDocument.js.map +1 -0
  330. package/dist/src/kernel/packs/graphql/fetchGraphqlLookup.js +157 -0
  331. package/dist/src/kernel/packs/graphql/fetchGraphqlLookup.js.map +1 -0
  332. package/dist/src/kernel/packs/graphql/index.js +20 -0
  333. package/dist/src/kernel/packs/graphql/index.js.map +1 -0
  334. package/dist/src/kernel/packs/graphql/nameMap.js +63 -0
  335. package/dist/src/kernel/packs/graphql/nameMap.js.map +1 -0
  336. package/dist/src/kernel/packs/index.js +34 -0
  337. package/dist/src/kernel/packs/index.js.map +1 -0
  338. package/dist/src/kernel/packs/iri.js +110 -0
  339. package/dist/src/kernel/packs/iri.js.map +1 -0
  340. package/dist/src/kernel/packs/renderPack.js +129 -0
  341. package/dist/src/kernel/packs/renderPack.js.map +1 -0
  342. package/dist/src/kernel/packs/resolveEntity.js +223 -0
  343. package/dist/src/kernel/packs/resolveEntity.js.map +1 -0
  344. package/dist/src/kernel/packs/runBodies.js +87 -0
  345. package/dist/src/kernel/packs/runBodies.js.map +1 -0
  346. package/dist/src/kernel/packs/sample.js +56 -0
  347. package/dist/src/kernel/packs/sample.js.map +1 -0
  348. package/dist/src/kernel/packs/schema.js +369 -0
  349. package/dist/src/kernel/packs/schema.js.map +1 -0
  350. package/dist/src/kernel/packs/sparql/applyFilters.js +68 -0
  351. package/dist/src/kernel/packs/sparql/applyFilters.js.map +1 -0
  352. package/dist/src/kernel/packs/sparql/applySearch.js +25 -0
  353. package/dist/src/kernel/packs/sparql/applySearch.js.map +1 -0
  354. package/dist/src/kernel/packs/sparql/buildLookupQuery.js +217 -0
  355. package/dist/src/kernel/packs/sparql/buildLookupQuery.js.map +1 -0
  356. package/dist/src/kernel/packs/sparql/escape.js +21 -0
  357. package/dist/src/kernel/packs/sparql/escape.js.map +1 -0
  358. package/dist/src/kernel/packs/sparql/index.js +31 -0
  359. package/dist/src/kernel/packs/sparql/index.js.map +1 -0
  360. package/dist/src/kernel/packs/sparql/runSelect.js +101 -0
  361. package/dist/src/kernel/packs/sparql/runSelect.js.map +1 -0
  362. package/dist/src/kernel/packs/types.js +30 -0
  363. package/dist/src/kernel/packs/types.js.map +1 -0
  364. package/dist/src/kernel/packs/uniqueness.js +30 -0
  365. package/dist/src/kernel/packs/uniqueness.js.map +1 -0
  366. package/dist/src/kernel/project/cli/buildProgram.js +263 -0
  367. package/dist/src/kernel/project/cli/buildProgram.js.map +1 -0
  368. package/dist/src/kernel/project/cli/constants.js +27 -0
  369. package/dist/src/kernel/project/cli/constants.js.map +1 -0
  370. package/dist/src/kernel/project/cli/dispatch.js +420 -0
  371. package/dist/src/kernel/project/cli/dispatch.js.map +1 -0
  372. package/dist/src/kernel/project/cli/exitCodes.js +66 -0
  373. package/dist/src/kernel/project/cli/exitCodes.js.map +1 -0
  374. package/dist/src/kernel/project/cli/globalFlags.js +216 -0
  375. package/dist/src/kernel/project/cli/globalFlags.js.map +1 -0
  376. package/dist/src/kernel/project/cli/helpFormat.js +59 -0
  377. package/dist/src/kernel/project/cli/helpFormat.js.map +1 -0
  378. package/dist/src/kernel/project/cli/index.js +14 -0
  379. package/dist/src/kernel/project/cli/index.js.map +1 -0
  380. package/dist/src/kernel/project/cli/rootHelp.js +197 -0
  381. package/dist/src/kernel/project/cli/rootHelp.js.map +1 -0
  382. package/dist/src/kernel/project/cli/suggest.js +75 -0
  383. package/dist/src/kernel/project/cli/suggest.js.map +1 -0
  384. package/dist/src/kernel/project/cli/suggestNames.js +96 -0
  385. package/dist/src/kernel/project/cli/suggestNames.js.map +1 -0
  386. package/dist/src/kernel/project/cli/verbHelp.js +131 -0
  387. package/dist/src/kernel/project/cli/verbHelp.js.map +1 -0
  388. package/dist/src/kernel/project/mcp/buildServer.js +67 -0
  389. package/dist/src/kernel/project/mcp/buildServer.js.map +1 -0
  390. package/dist/src/kernel/project/mcp/envelope.js +37 -0
  391. package/dist/src/kernel/project/mcp/envelope.js.map +1 -0
  392. package/dist/src/kernel/project/mcp/index.js +8 -0
  393. package/dist/src/kernel/project/mcp/index.js.map +1 -0
  394. package/dist/src/kernel/project/mcp/instructions.js +44 -0
  395. package/dist/src/kernel/project/mcp/instructions.js.map +1 -0
  396. package/dist/src/kernel/project/mcp/mcpError.js +42 -0
  397. package/dist/src/kernel/project/mcp/mcpError.js.map +1 -0
  398. package/dist/src/kernel/project/mcp/prompts/index.js +36 -0
  399. package/dist/src/kernel/project/mcp/prompts/index.js.map +1 -0
  400. package/dist/src/kernel/project/mcp/prompts/provider.js +98 -0
  401. package/dist/src/kernel/project/mcp/prompts/provider.js.map +1 -0
  402. package/dist/src/kernel/project/mcp/prompts/source.js +154 -0
  403. package/dist/src/kernel/project/mcp/prompts/source.js.map +1 -0
  404. package/dist/src/kernel/project/mcp/registerVerb.js +300 -0
  405. package/dist/src/kernel/project/mcp/registerVerb.js.map +1 -0
  406. package/dist/src/kernel/project/mcp/serve.js +35 -0
  407. package/dist/src/kernel/project/mcp/serve.js.map +1 -0
  408. package/dist/src/kernel/render/compactUri.js +24 -0
  409. package/dist/src/kernel/render/compactUri.js.map +1 -0
  410. package/dist/src/kernel/render/contracts.js +10 -0
  411. package/dist/src/kernel/render/contracts.js.map +1 -0
  412. package/dist/src/kernel/render/disclosure.js +34 -0
  413. package/dist/src/kernel/render/disclosure.js.map +1 -0
  414. package/dist/src/kernel/render/envelope.js +30 -0
  415. package/dist/src/kernel/render/envelope.js.map +1 -0
  416. package/dist/src/kernel/render/formatters.js +27 -0
  417. package/dist/src/kernel/render/formatters.js.map +1 -0
  418. package/dist/src/kernel/render/index.js +15 -0
  419. package/dist/src/kernel/render/index.js.map +1 -0
  420. package/dist/src/kernel/render/prefixes.js +46 -0
  421. package/dist/src/kernel/render/prefixes.js.map +1 -0
  422. package/dist/src/kernel/render/renderers.js +468 -0
  423. package/dist/src/kernel/render/renderers.js.map +1 -0
  424. package/dist/src/kernel/render/style.js +85 -0
  425. package/dist/src/kernel/render/style.js.map +1 -0
  426. package/dist/src/kernel/render/turtle.js +194 -0
  427. package/dist/src/kernel/render/turtle.js.map +1 -0
  428. package/dist/src/kernel/render/writeStdout.js +43 -0
  429. package/dist/src/kernel/render/writeStdout.js.map +1 -0
  430. package/dist/src/kernel/runtime/boot.js +49 -0
  431. package/dist/src/kernel/runtime/boot.js.map +1 -0
  432. package/dist/src/kernel/runtime/facade.js +39 -0
  433. package/dist/src/kernel/runtime/facade.js.map +1 -0
  434. package/dist/src/kernel/runtime/graphpack/build.js +122 -0
  435. package/dist/src/kernel/runtime/graphpack/build.js.map +1 -0
  436. package/dist/src/kernel/runtime/graphpack/buildIndex.js +303 -0
  437. package/dist/src/kernel/runtime/graphpack/buildIndex.js.map +1 -0
  438. package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js +6 -0
  439. package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js.map +1 -0
  440. package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js +4 -0
  441. package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js.map +1 -0
  442. package/dist/src/kernel/runtime/graphpack/embedded/pack.stories.generated.js +4 -0
  443. package/dist/src/kernel/runtime/graphpack/embedded/pack.stories.generated.js.map +1 -0
  444. package/dist/src/kernel/runtime/graphpack/embedded.js +82 -0
  445. package/dist/src/kernel/runtime/graphpack/embedded.js.map +1 -0
  446. package/dist/src/kernel/runtime/graphpack/hash.js +38 -0
  447. package/dist/src/kernel/runtime/graphpack/hash.js.map +1 -0
  448. package/dist/src/kernel/runtime/graphpack/index.js +11 -0
  449. package/dist/src/kernel/runtime/graphpack/index.js.map +1 -0
  450. package/dist/src/kernel/runtime/graphpack/manifest.js +145 -0
  451. package/dist/src/kernel/runtime/graphpack/manifest.js.map +1 -0
  452. package/dist/src/kernel/runtime/graphpack/read.js +92 -0
  453. package/dist/src/kernel/runtime/graphpack/read.js.map +1 -0
  454. package/dist/src/kernel/runtime/graphpack/schemas.js +70 -0
  455. package/dist/src/kernel/runtime/graphpack/schemas.js.map +1 -0
  456. package/dist/src/kernel/runtime/graphpack/stories.js +68 -0
  457. package/dist/src/kernel/runtime/graphpack/stories.js.map +1 -0
  458. package/dist/src/kernel/runtime/graphpack/types.js +55 -0
  459. package/dist/src/kernel/runtime/graphpack/types.js.map +1 -0
  460. package/dist/src/kernel/runtime/index.js +8 -0
  461. package/dist/src/kernel/runtime/index.js.map +1 -0
  462. package/dist/src/kernel/runtime/loadSession.js +34 -0
  463. package/dist/src/kernel/runtime/loadSession.js.map +1 -0
  464. package/dist/src/kernel/runtime/paths.js +78 -0
  465. package/dist/src/kernel/runtime/paths.js.map +1 -0
  466. package/dist/src/kernel/runtime/probe.js +37 -0
  467. package/dist/src/kernel/runtime/probe.js.map +1 -0
  468. package/dist/src/kernel/runtime/readEntity.js +363 -0
  469. package/dist/src/kernel/runtime/readEntity.js.map +1 -0
  470. package/dist/src/kernel/runtime/refs/gitOps.js +65 -0
  471. package/dist/src/kernel/runtime/refs/gitOps.js.map +1 -0
  472. package/dist/src/kernel/runtime/refs/index.js +29 -0
  473. package/dist/src/kernel/runtime/refs/index.js.map +1 -0
  474. package/dist/src/kernel/runtime/refs/parseRef.js +70 -0
  475. package/dist/src/kernel/runtime/refs/parseRef.js.map +1 -0
  476. package/dist/src/kernel/runtime/refs/resolve.js +332 -0
  477. package/dist/src/kernel/runtime/refs/resolve.js.map +1 -0
  478. package/dist/src/kernel/runtime/resolveSources.js +62 -0
  479. package/dist/src/kernel/runtime/resolveSources.js.map +1 -0
  480. package/dist/src/kernel/runtime/store.js +75 -0
  481. package/dist/src/kernel/runtime/store.js.map +1 -0
  482. package/dist/src/kernel/runtime/storeReadiness.js +51 -0
  483. package/dist/src/kernel/runtime/storeReadiness.js.map +1 -0
  484. package/dist/src/kernel/runtime/types.js +11 -0
  485. package/dist/src/kernel/runtime/types.js.map +1 -0
  486. package/dist/src/kernel/spec/asVerb.js +21 -0
  487. package/dist/src/kernel/spec/asVerb.js.map +1 -0
  488. package/dist/src/kernel/spec/emitReference.js +578 -0
  489. package/dist/src/kernel/spec/emitReference.js.map +1 -0
  490. package/dist/src/kernel/spec/emitSurface.js +202 -0
  491. package/dist/src/kernel/spec/emitSurface.js.map +1 -0
  492. package/dist/src/kernel/spec/index.js +11 -0
  493. package/dist/src/kernel/spec/index.js.map +1 -0
  494. package/dist/src/kernel/spec/surfaceConformance.js +103 -0
  495. package/dist/src/kernel/spec/surfaceConformance.js.map +1 -0
  496. package/dist/src/kernel/spec/types.js +14 -0
  497. package/dist/src/kernel/spec/types.js.map +1 -0
  498. package/dist/src/kernel/spec/validate.js +110 -0
  499. package/dist/src/kernel/spec/validate.js.map +1 -0
  500. package/dist/src/kernel/vocabulary.js +97 -0
  501. package/dist/src/kernel/vocabulary.js.map +1 -0
  502. package/dist/src/types.js +11 -0
  503. package/dist/src/types.js.map +1 -0
  504. package/package.json +20 -22
  505. package/pragma.conf.ts +249 -60
  506. package/src/bin.ts +267 -82
  507. package/src/capabilities/block.parity.test.ts +6 -3
  508. package/src/capabilities/capabilities/capabilities.render.ts +1 -1
  509. package/src/capabilities/capabilities/capabilities.verb.ts +1 -1
  510. package/src/capabilities/capabilities/catalog.ts +3 -3
  511. package/src/capabilities/capabilities/hints.ts +32 -7
  512. package/src/capabilities/capabilities/index.ts +1 -1
  513. package/src/capabilities/colophon/collectColophon.ts +35 -24
  514. package/src/capabilities/colophon/colophon.render.ts +25 -1
  515. package/src/capabilities/colophon/colophon.test.ts +42 -21
  516. package/src/capabilities/colophon/colophon.verb.ts +4 -4
  517. package/src/capabilities/config/collectConfigShow.test.ts +1 -0
  518. package/src/capabilities/config/collectConfigShow.ts +3 -3
  519. package/src/capabilities/config/field.render.ts +4 -5
  520. package/src/capabilities/config/fields.ts +17 -10
  521. package/src/capabilities/config/get.verb.ts +70 -0
  522. package/src/capabilities/config/getUnset.test.ts +264 -0
  523. package/src/capabilities/config/index.ts +5 -1
  524. package/src/capabilities/config/runField.ts +40 -22
  525. package/src/capabilities/config/runGet.ts +34 -0
  526. package/src/capabilities/config/runSet.ts +35 -9
  527. package/src/capabilities/config/set.test.ts +48 -14
  528. package/src/capabilities/config/set.verb.ts +8 -7
  529. package/src/capabilities/config/show.render.ts +1 -1
  530. package/src/capabilities/config/show.verb.ts +9 -6
  531. package/src/capabilities/config/types.ts +18 -4
  532. package/src/capabilities/config/unset.verb.ts +58 -0
  533. package/src/capabilities/create/byteEquality.subprocess.test.ts +2 -3
  534. package/src/capabilities/create/byteEquality.test.ts +25 -11
  535. package/src/capabilities/create/cliProjection.ts +227 -0
  536. package/src/capabilities/create/constants.ts +36 -61
  537. package/src/capabilities/create/create.mcp.test.ts +89 -5
  538. package/src/capabilities/create/create.render.ts +71 -7
  539. package/src/capabilities/create/create.test.ts +433 -219
  540. package/src/capabilities/create/create.verb.ts +297 -328
  541. package/src/capabilities/create/createGrammar.test.ts +865 -0
  542. package/src/capabilities/create/createHelp.ts +71 -0
  543. package/src/capabilities/create/createSurface.generated.ts +400 -0
  544. package/src/capabilities/create/crossCli.subprocess.test.ts +745 -0
  545. package/src/capabilities/create/cwdJail.test.ts +24 -5
  546. package/src/capabilities/create/generatorToVerbSpec.test.ts +186 -0
  547. package/src/capabilities/create/generatorToVerbSpec.ts +13 -11
  548. package/src/capabilities/create/index.ts +7 -4
  549. package/src/capabilities/create/messages.ts +18 -0
  550. package/src/capabilities/create/mount.ts +391 -0
  551. package/src/capabilities/create/pathJail.test.ts +90 -0
  552. package/src/capabilities/create/pathJail.ts +8 -5
  553. package/src/capabilities/create/pickGenerator.ts +23 -35
  554. package/src/capabilities/create/shippedCreate.subprocess.test.ts +164 -0
  555. package/src/capabilities/create/types.ts +20 -0
  556. package/src/capabilities/distribution.test.ts +3 -1
  557. package/src/capabilities/distribution.ts +10 -15
  558. package/src/capabilities/doctor/checks/checkKeStore.ts +7 -5
  559. package/src/capabilities/doctor/checks/checkPackageRefs.ts +6 -4
  560. package/src/capabilities/doctor/checks/checkPragmaVersion.ts +2 -2
  561. package/src/capabilities/doctor/checks/checkShellCompletions.test.ts +72 -27
  562. package/src/capabilities/doctor/checks/checkShellCompletions.ts +59 -13
  563. package/src/capabilities/doctor/checks/index.ts +27 -0
  564. package/src/capabilities/doctor/checks/mcpCommand.test.ts +100 -0
  565. package/src/capabilities/doctor/checks/mcpCommand.ts +69 -0
  566. package/src/capabilities/doctor/checks/targetHealth.ts +274 -0
  567. package/src/capabilities/doctor/doctor.render.test.ts +18 -7
  568. package/src/capabilities/doctor/doctor.render.ts +43 -19
  569. package/src/capabilities/doctor/doctor.test.ts +123 -34
  570. package/src/capabilities/doctor/doctor.verb.ts +3 -3
  571. package/src/capabilities/doctor/runChecks.ts +62 -63
  572. package/src/capabilities/doctor/types.ts +20 -4
  573. package/src/capabilities/emptyRecovery.test.ts +13 -8
  574. package/src/capabilities/graph/examples.exec.test.ts +107 -0
  575. package/src/capabilities/graph/index.ts +1 -1
  576. package/src/capabilities/graph/inspect.render.ts +70 -22
  577. package/src/capabilities/graph/inspect.test.ts +260 -5
  578. package/src/capabilities/graph/inspect.verb.ts +18 -6
  579. package/src/capabilities/graph/query.render.ts +15 -3
  580. package/src/capabilities/graph/query.verb.ts +3 -3
  581. package/src/capabilities/graph/runQuery.ts +2 -3
  582. package/src/capabilities/index.ts +3 -1
  583. package/src/capabilities/info/collectInfo.ts +5 -4
  584. package/src/capabilities/info/info.render.ts +1 -1
  585. package/src/capabilities/info/info.verb.ts +1 -1
  586. package/src/capabilities/lazy.test.ts +32 -0
  587. package/src/capabilities/meta/complete.verb.ts +1 -1
  588. package/src/capabilities/meta/index.ts +1 -1
  589. package/src/capabilities/meta/mcp.verb.ts +10 -8
  590. package/src/capabilities/ontology/index.ts +15 -11
  591. package/src/capabilities/ontology/ontology.test.ts +6 -55
  592. package/src/capabilities/ontology/queries.ts +2 -2
  593. package/src/capabilities/ontology/render.ts +3 -4
  594. package/src/capabilities/ontology/verbs.ts +27 -68
  595. package/src/capabilities/prompt/index.ts +2 -2
  596. package/src/capabilities/prompt/prompt.render.ts +6 -2
  597. package/src/capabilities/prompt/types.ts +1 -1
  598. package/src/capabilities/prompt/verbs.ts +4 -5
  599. package/src/capabilities/reference.test.ts +63 -0
  600. package/src/capabilities/resources/provider.ts +342 -85
  601. package/src/capabilities/resources/resources.test.ts +355 -59
  602. package/src/capabilities/setup/buildPlan.ts +236 -0
  603. package/src/capabilities/setup/index.ts +7 -7
  604. package/src/capabilities/setup/mode.ts +74 -0
  605. package/src/capabilities/setup/operations/index.ts +74 -0
  606. package/src/capabilities/setup/operations/setupCompletions.ts +97 -24
  607. package/src/capabilities/setup/operations/setupConfig.ts +124 -0
  608. package/src/capabilities/setup/operations/setupGenerator.ts +396 -326
  609. package/src/capabilities/setup/operations/setupLsp.ts +329 -68
  610. package/src/capabilities/setup/operations/setupMcp.ts +137 -97
  611. package/src/capabilities/setup/operations/setupSkills.ts +336 -108
  612. package/src/capabilities/setup/plan.render.ts +241 -0
  613. package/src/capabilities/setup/plan.ts +236 -0
  614. package/src/capabilities/setup/setup.mcp.correctness.test.ts +432 -0
  615. package/src/capabilities/setup/setup.render.test.ts +281 -73
  616. package/src/capabilities/setup/setup.render.ts +45 -77
  617. package/src/capabilities/setup/setup.test.ts +972 -209
  618. package/src/capabilities/setup/setup.verb.ts +223 -71
  619. package/src/capabilities/setup/shell.test.ts +86 -0
  620. package/src/capabilities/setup/shell.ts +137 -11
  621. package/src/capabilities/setup/targets.ts +367 -0
  622. package/src/capabilities/setup/types.ts +18 -57
  623. package/src/capabilities/shared/assertExecOk.ts +68 -10
  624. package/src/capabilities/shared/index.ts +32 -0
  625. package/src/capabilities/shared/packageManager.test.ts +55 -0
  626. package/src/capabilities/shared/packageManager.ts +62 -6
  627. package/src/capabilities/skill/discover.ts +37 -5
  628. package/src/capabilities/skill/index.ts +1 -1
  629. package/src/capabilities/skill/render.ts +10 -9
  630. package/src/capabilities/skill/skill.test.ts +7 -5
  631. package/src/capabilities/skill/verbs.ts +3 -4
  632. package/src/capabilities/sources/collectStatus.ts +7 -2
  633. package/src/capabilities/sources/index.ts +1 -1
  634. package/src/capabilities/sources/installSkills.ts +84 -7
  635. package/src/capabilities/sources/runUpdate.ts +53 -21
  636. package/src/capabilities/sources/sources.test.ts +154 -2
  637. package/src/capabilities/sources/status.render.ts +1 -1
  638. package/src/capabilities/sources/status.verb.ts +1 -1
  639. package/src/capabilities/sources/update.render.ts +1 -1
  640. package/src/capabilities/sources/update.verb.ts +1 -1
  641. package/src/capabilities/surface.test.ts +134 -17
  642. package/src/capabilities/upgrade/runUpgrade.ts +8 -8
  643. package/src/capabilities/upgrade/upgrade.render.ts +4 -5
  644. package/src/capabilities/upgrade/upgrade.test.ts +3 -3
  645. package/src/capabilities/upgrade/upgrade.verb.ts +1 -1
  646. package/src/capabilities/version/index.ts +12 -0
  647. package/src/capabilities/version/version.test.ts +66 -0
  648. package/src/capabilities/version/version.verb.ts +39 -0
  649. package/src/constants.ts +31 -1
  650. package/src/identity.test.ts +40 -25
  651. package/src/kernel/completion/__snapshots__/emitScripts.test.ts.snap +15 -13
  652. package/src/kernel/completion/complete.test.ts +12 -2
  653. package/src/kernel/completion/complete.ts +1 -1
  654. package/src/kernel/completion/emitScripts.ts +1 -1
  655. package/src/kernel/completion/entitySource.test.ts +1 -1
  656. package/src/kernel/completion/entitySource.ts +21 -8
  657. package/src/kernel/completion/model.test.ts +164 -12
  658. package/src/kernel/completion/model.ts +94 -14
  659. package/src/kernel/completion/parse.test.ts +4 -7
  660. package/src/kernel/completion/parse.ts +15 -0
  661. package/src/kernel/completion/resolve.test.ts +0 -1
  662. package/src/kernel/completion/safety.test.ts +34 -26
  663. package/src/kernel/completion/shellDrive.test.ts +28 -9
  664. package/src/kernel/completion/templates/bash.ts +7 -2
  665. package/src/kernel/completion/templates/index.ts +23 -0
  666. package/src/kernel/completion/types.ts +7 -0
  667. package/src/kernel/config/defaults.test.ts +25 -2
  668. package/src/kernel/config/defaults.ts +4 -3
  669. package/src/kernel/config/evaluateProjectConfig.ts +31 -8
  670. package/src/kernel/config/firstRun.test.ts +44 -38
  671. package/src/kernel/config/firstRun.ts +24 -88
  672. package/src/kernel/config/index.ts +1 -1
  673. package/src/kernel/config/readConfig.test.ts +6 -3
  674. package/src/kernel/config/readConfig.ts +1 -1
  675. package/src/kernel/config/schema.ts +3 -1
  676. package/src/kernel/config/types.ts +3 -1
  677. package/src/kernel/copy.test.ts +34 -4
  678. package/src/kernel/copy.ts +54 -0
  679. package/src/kernel/error/PragmaError.test.ts +5 -2
  680. package/src/kernel/error/PragmaError.ts +4 -2
  681. package/src/kernel/error/constants.ts +7 -5
  682. package/src/kernel/error/fromTaskError.ts +28 -6
  683. package/src/kernel/error/recovery.ts +14 -0
  684. package/src/kernel/error/renderError.ts +42 -1
  685. package/src/kernel/error/types.ts +21 -1
  686. package/src/kernel/index.ts +26 -0
  687. package/src/kernel/packs/collect.ts +12 -16
  688. package/src/kernel/packs/compile.test.ts +130 -1
  689. package/src/kernel/packs/compile.ts +93 -3
  690. package/src/kernel/packs/disclosure.ts +2 -2
  691. package/src/kernel/packs/graphql/buildLookupDocument.ts +1 -1
  692. package/src/kernel/packs/graphql/fetchGraphqlLookup.ts +3 -4
  693. package/src/kernel/packs/graphql/index.ts +20 -0
  694. package/src/kernel/packs/index.ts +40 -0
  695. package/src/kernel/packs/iri.test.ts +73 -0
  696. package/src/kernel/packs/iri.ts +66 -14
  697. package/src/kernel/packs/renderPack.ts +24 -5
  698. package/src/kernel/packs/resolveEntity.test.ts +213 -0
  699. package/src/kernel/packs/resolveEntity.ts +112 -18
  700. package/src/kernel/packs/runBodies.ts +2 -3
  701. package/src/kernel/packs/sample.ts +1 -1
  702. package/src/kernel/packs/schema.ts +18 -1
  703. package/src/kernel/packs/sparql/applyFilters.ts +16 -17
  704. package/src/kernel/packs/sparql/buildLookupQuery.ts +75 -3
  705. package/src/kernel/packs/sparql/index.ts +37 -0
  706. package/src/kernel/packs/sparql/runSelect.test.ts +1 -1
  707. package/src/kernel/packs/sparql/runSelect.ts +3 -4
  708. package/src/kernel/packs/toolDescription.test.ts +42 -3
  709. package/src/kernel/packs/types.ts +13 -0
  710. package/src/kernel/packs/uniqueness.ts +1 -1
  711. package/src/kernel/project/cli/buildProgram.test.ts +147 -12
  712. package/src/kernel/project/cli/buildProgram.ts +77 -18
  713. package/src/kernel/project/cli/constants.ts +34 -0
  714. package/src/kernel/project/cli/dispatch.test.ts +160 -3
  715. package/src/kernel/project/cli/dispatch.ts +222 -42
  716. package/src/kernel/project/cli/exitCodes.ts +1 -1
  717. package/src/kernel/project/cli/globalFlags.test.ts +117 -1
  718. package/src/kernel/project/cli/globalFlags.ts +130 -30
  719. package/src/kernel/project/cli/helpFormat.ts +13 -0
  720. package/src/kernel/project/cli/rootHelp.ts +41 -12
  721. package/src/kernel/project/cli/suggest.test.ts +33 -1
  722. package/src/kernel/project/cli/suggest.ts +25 -1
  723. package/src/kernel/project/cli/verbHelp.test.ts +30 -0
  724. package/src/kernel/project/cli/verbHelp.ts +23 -7
  725. package/src/kernel/project/mcp/buildServer.ts +7 -4
  726. package/src/kernel/project/mcp/envelope.ts +2 -2
  727. package/src/kernel/project/mcp/instructions.ts +2 -2
  728. package/src/kernel/project/mcp/mcpError.ts +1 -1
  729. package/src/kernel/project/mcp/parity.test.ts +5 -2
  730. package/src/kernel/project/mcp/prompts/index.ts +37 -0
  731. package/src/kernel/project/mcp/prompts/source.ts +2 -2
  732. package/src/kernel/project/mcp/registerVerb.ts +35 -9
  733. package/src/kernel/project/mcp/serve.ts +2 -2
  734. package/src/kernel/render/__snapshots__/renderers.test.ts.snap +7 -4
  735. package/src/kernel/render/contracts.ts +21 -0
  736. package/src/kernel/render/envelope.ts +2 -3
  737. package/src/kernel/render/formatters.ts +1 -1
  738. package/src/kernel/render/renderers.test.ts +243 -6
  739. package/src/kernel/render/renderers.ts +222 -20
  740. package/src/kernel/render/style.test.ts +75 -24
  741. package/src/kernel/render/style.ts +31 -1
  742. package/src/kernel/render/turtle.ts +222 -0
  743. package/src/kernel/runtime/graphpack/buildIndex.ts +1 -1
  744. package/src/kernel/runtime/graphpack/embedded/pack.generated.ts +3 -3
  745. package/src/kernel/runtime/graphpack/embedded/pack.index.generated.ts +1 -1
  746. package/src/kernel/runtime/graphpack/embedded.ts +3 -3
  747. package/src/kernel/runtime/graphpack/manifest.ts +1 -1
  748. package/src/kernel/runtime/graphpack/read.ts +1 -2
  749. package/src/kernel/runtime/loadSession.ts +1 -1
  750. package/src/kernel/runtime/probe.ts +6 -6
  751. package/src/kernel/runtime/readEntity.ts +472 -28
  752. package/src/kernel/runtime/refs/index.ts +39 -0
  753. package/src/kernel/runtime/refs/parseRef.ts +2 -2
  754. package/src/kernel/runtime/refs/resolve.ts +4 -4
  755. package/src/kernel/runtime/storeReadiness.ts +1 -2
  756. package/src/kernel/runtime/types.ts +15 -1
  757. package/src/kernel/runtime/wasmEmbed.test.ts +37 -39
  758. package/src/kernel/spec/emitReference.ts +105 -30
  759. package/src/kernel/spec/emitSurface.ts +48 -6
  760. package/src/kernel/spec/surfaceConformance.test.ts +4 -2
  761. package/src/kernel/spec/types.ts +248 -4
  762. package/src/testing/behavioral/docExamples.test.ts +14 -0
  763. package/src/testing/behavioral/errorMatrix.mcp.test.ts +2 -2
  764. package/src/testing/behavioral/firstRun.e2e.test.ts +24 -24
  765. package/src/testing/behavioral/journeys.cli.test.ts +1 -1
  766. package/src/testing/behavioral/journeys.defaultPack.test.ts +7 -7
  767. package/src/testing/behavioral/journeys.implementation.test.ts +206 -0
  768. package/src/testing/behavioral/journeys.interactiveTty.e2e.test.ts +2 -2
  769. package/src/testing/behavioral/journeys.packageStories.test.ts +4 -4
  770. package/src/testing/behavioral/mcpServe.e2e.test.ts +57 -2
  771. package/src/testing/behavioral/mcpSurface.test.ts +1 -1
  772. package/src/testing/behavioral/rootCli.e2e.test.ts +26 -2
  773. package/src/testing/eval/cases/effectful.ts +3 -2
  774. package/src/testing/fixtures/blockGraph.ts +79 -0
  775. package/src/testing/fixtures/graph/canonical.ts +88 -2
  776. package/src/testing/fixtures/graph/defaultPack.ts +1 -1
  777. package/src/testing/helpers/blankCanonicalRanges.ts +36 -0
  778. package/src/testing/helpers/projectMcp.ts +32 -6
  779. package/src/testing/helpers/runCli.ts +35 -18
  780. package/src/testing/perf/budgets.test.ts +20 -9
  781. package/src/testing/perf/budgets.ts +58 -9
  782. package/src/testing/perf/codegen.test.ts +126 -0
  783. package/src/testing/perf/globalSetup.test.ts +286 -0
  784. package/src/testing/perf/globalSetup.ts +505 -23
  785. package/src/testing/perf/measure.test.ts +38 -0
  786. package/src/testing/perf/measure.ts +23 -4
  787. package/src/testing/setupXdgIsolation.ts +81 -21
  788. package/src/testing/tempRoot.globalSetup.ts +122 -0
  789. package/dist/pragma +0 -0
  790. package/src/capabilities/create/compiledCreate.subprocess.test.ts +0 -189
  791. package/src/capabilities/create/templates.embedded.generated.ts +0 -28
  792. package/src/capabilities/doctor/checks/checkConfigFile.ts +0 -42
  793. package/src/capabilities/doctor/checks/checkMcpCommands.ts +0 -114
  794. package/src/capabilities/doctor/checks/checkMcpConfigured.ts +0 -68
  795. package/src/capabilities/doctor/checks/checkSkillsSymlinked.ts +0 -61
  796. package/src/capabilities/doctor/checks/deriveBand.test.ts +0 -42
  797. package/src/capabilities/doctor/checks/deriveBand.ts +0 -28
  798. package/src/kernel/config/__snapshots__/firstRun.test.ts.snap +0 -11
@@ -0,0 +1,394 @@
1
+ /**
2
+ * Build the `sources update` Task.
3
+ *
4
+ * Two modes, chosen by `runtime.mutation.preview`:
5
+ *
6
+ * - Preview (CLI `--dry-run`, or MCP without `confirm`): NETWORK-FREE. It reads
7
+ * only the config, then hands back a plan-only Task listing the refs it would
8
+ * resolve+build and the pointer it would write — no git fetch, no compile, no
9
+ * cache write. This is what a dry-run / agent "preview" must be: side-effect
10
+ * free and offline-safe.
11
+ * - Real execution: the heavy work — resolve every configured pack (git
12
+ * clone/fetch, file verify, npm resolve), then build the ONE combined
13
+ * content-addressed pack — runs eagerly (it is not expressible as a task
14
+ * effect: the effect set is fs + exec, and the in-process compile is not an
15
+ * effect at all). The returned Task models the mutations: the active-pack
16
+ * pointer write (undo restores or removes the prior pointer) and the package
17
+ * skill symlinks.
18
+ *
19
+ * Pinning a revision is the ref's job, not a flag's: put a SHA in the source
20
+ * (`git+https://…#<sha>`) and every update resolves to exactly that commit.
21
+ */
22
+ import { $, deleteFile, gen, info, mkdir, symlink, writeFile, } from "@canonical/task";
23
+ import { VERSION } from "../../constants.js";
24
+ import { cliRecovery, PragmaError } from "../../kernel/error/index.js";
25
+ // DIRECT LEAF IMPORT, not `graphpack/index.js`. The barrel re-exports
26
+ // `embedded.ts`, which statically imports the ~1.9 MB generated pack — and
27
+ // with per-file `tsc` output ESM evaluates that re-export when this module
28
+ // loads. `sources update` builds a USER pack; it must not pay the embedded
29
+ // pack's cost to do it.
30
+ import { buildPack } from "../../kernel/runtime/graphpack/build.js";
31
+ import { activePackPath, readActivePack } from "../../kernel/runtime/paths.js";
32
+ import { detectPrefixClashes, harvestPrefixes, parsePackDeclaration, redactUrl, resolvePackage, } from "../../kernel/runtime/refs/index.js";
33
+ import { installedSkillsDir } from "../skill/discover.js";
34
+ import { planSkillInstall } from "./installSkills.js";
35
+ /** Generic-core prefixes; config `prefixes` merge over them (config wins). */
36
+ const CORE_PREFIXES = {
37
+ rdf: "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
38
+ rdfs: "http://www.w3.org/2000/01/rdf-schema#",
39
+ owl: "http://www.w3.org/2002/07/owl#",
40
+ xsd: "http://www.w3.org/2001/XMLSchema#",
41
+ skos: "http://www.w3.org/2004/02/skos/core#",
42
+ sh: "http://www.w3.org/ns/shacl#",
43
+ dcterms: "http://purl.org/dc/terms/",
44
+ };
45
+ /**
46
+ * The prefix map a pack is built with: core < the packs' own `@prefix` < config.
47
+ *
48
+ * A resolved package's own declarations are harvested from its TTL (ke does not
49
+ * fold parsed-Turtle prefixes into `store.prefixes`) and merged beneath config
50
+ * so the index compacts pack URIs to `pfx:Local` — the FROZEN `{name,type}`
51
+ * token contract — while config still wins any clash. The merged map is
52
+ * persisted in the manifest, so boot reads the same names.
53
+ *
54
+ * Exported because the bundler (`scripts/bundle.ts`) compiles the embedded pack
55
+ * through this exact precedence. If the two pipelines computed prefixes
56
+ * separately, the embed could compact entities differently from what the SAME
57
+ * config produces on a user's machine — a silent divergence in entity names.
58
+ *
59
+ * @param inputs - The resolved packages' labelled RDF sources.
60
+ * @param configPrefixes - The config layer's `prefixes`, if any.
61
+ * @returns The merged prefix map to build with.
62
+ */
63
+ export function buildPackPrefixes(inputs, configPrefixes) {
64
+ return {
65
+ ...CORE_PREFIXES,
66
+ ...harvestPrefixes(inputs),
67
+ ...(configPrefixes ?? {}),
68
+ };
69
+ }
70
+ /**
71
+ * Build the NETWORK-FREE preview plan for `sources update`.
72
+ *
73
+ * A plan-only Task: it reads the config to list the refs a real update would
74
+ * resolve and build, then models the project mutation (the active-pack pointer
75
+ * write) as effects the dry-run interpreter can describe WITHOUT running them.
76
+ * No git, no compile, no cache write — so `--dry-run` and an MCP plan-first call
77
+ * are offline-safe. Config refs are parsed (a cheap, offline validity check) but
78
+ * never resolved.
79
+ *
80
+ * @param runtime - The per-invocation runtime.
81
+ * @returns A plan-only Task describing the intended effects.
82
+ */
83
+ async function buildUpdatePlan(runtime) {
84
+ const layers = await runtime.loadConfig();
85
+ const entries = layers.config.packs ?? [];
86
+ const refs = entries.map(parsePackDeclaration);
87
+ const data = {
88
+ contentHash: "",
89
+ reused: false,
90
+ packs: refs.map((ref) => ({
91
+ name: ref.pkg,
92
+ resolved: "",
93
+ sourceCount: 0,
94
+ storyCount: 0,
95
+ })),
96
+ };
97
+ return gen(function* () {
98
+ yield* $(info(refs.length > 0
99
+ ? `Resolve and build ${refs.length} pack(s): ${refs.map((ref) => ref.source).join(", ")}`
100
+ : "No packs configured — the embedded pack answers store reads"));
101
+ // The project mutation, previewed (dry-run never executes it). The content
102
+ // is a placeholder: the real hash only exists once the build has run.
103
+ yield* $(writeFile(activePackPath(runtime.cwd), "(the pack hash, on execute)"));
104
+ return data;
105
+ });
106
+ }
107
+ /**
108
+ * Resolve, build, and produce the pointer-writing Task — or, for a preview, the
109
+ * network-free plan.
110
+ *
111
+ * @param runtime - The per-invocation runtime.
112
+ * @param skipInvalid - Drop sources that fail to parse (warning about each)
113
+ * rather than failing the whole update.
114
+ * @returns A Task that points the project at the built pack and returns the
115
+ * update result.
116
+ * @note Impure — resolves packages (may hit git) and builds the pack eagerly,
117
+ * UNLESS `runtime.mutation.preview` is set, in which case it stays offline.
118
+ */
119
+ export async function buildUpdateTask(runtime, skipInvalid = false) {
120
+ if (runtime.mutation?.preview)
121
+ return buildUpdatePlan(runtime);
122
+ // Progress seam (U7/U11): stream stage lines while the heavy EAGER work — the
123
+ // clone/parse/build below — runs, so the long op is never silent. Unset over
124
+ // MCP (a no-op there); `--verbose` adds a line per source (U11).
125
+ const report = runtime.report;
126
+ const verbose = runtime.globalFlags.verbose;
127
+ const layers = await runtime.loadConfig();
128
+ const entries = layers.config.packs ?? [];
129
+ const priorHash = readActivePack(runtime.cwd);
130
+ const resolved = [];
131
+ for (const entry of entries) {
132
+ const ref = parsePackDeclaration(entry);
133
+ report?.(resolveProgress(ref));
134
+ resolved.push({
135
+ kind: ref.kind,
136
+ ...(await resolvePackage(ref, { cwd: runtime.cwd })),
137
+ });
138
+ }
139
+ const inputs = resolved.flatMap((pkg) => pkg.sources);
140
+ // The packages' own `stories/*.json`, carried into the pack verbatim (see
141
+ // graphpack/types.STORIES_FILE). Raw text: nothing interprets them here.
142
+ const stories = resolved.flatMap((pkg) => pkg.stories);
143
+ // Refuse to build an empty store (A4). A package that ships no `.ttl` (or no
144
+ // configured packs at all) would build a 0-triple pack whose empty
145
+ // `data.nq` fails the completeness gate — so the "successful" update boots to
146
+ // a PERMANENT `STORE_UNAVAILABLE` loop. Fail loudly here, leaving the embedded
147
+ // pack (or the prior build) answering reads, instead of pointing at that one.
148
+ if (inputs.length === 0) {
149
+ throw PragmaError.configError(entries.length === 0
150
+ ? "No packs are configured, so there are no sources to build a store from. The embedded pack answers reads until you add a pack."
151
+ : `The ${entries.length} configured pack(s) resolved 0 RDF sources (no definitions/**.ttl or data/**.ttl). Refusing to build an empty store.`, {
152
+ recovery: cliRecovery("sources update --verbose", "Add a pack that ships `.ttl` under definitions/ or data/, then re-run."),
153
+ });
154
+ }
155
+ const prefixes = buildPackPrefixes(inputs, layers.config.prefixes);
156
+ // Warn on conflicting `@prefix` declarations across packages (A5): last-wins
157
+ // is silent otherwise, compacting the losing package's URIs to the wrong
158
+ // prefix. Display-only, so a warning (not a hard failure) is the right call.
159
+ for (const clash of detectPrefixClashes(inputs)) {
160
+ report?.(`Prefix "${clash.label}:" is declared with conflicting IRIs across packs (${clash.iris.join(" vs ")}); last wins, so some entities may compact to the wrong prefix.`);
161
+ }
162
+ report?.(`Building store from ${inputs.length} source(s)`);
163
+ if (verbose)
164
+ for (const input of inputs)
165
+ report?.(` parse ${input.path}`);
166
+ if (stories.length > 0)
167
+ report?.(`Carrying ${stories.length} pack read story file(s)`);
168
+ // Build the pack. On a parse/build failure, classify it as a NAMED data error
169
+ // (U6) — not INTERNAL_ERROR's "report this issue" — identifying the
170
+ // offending package source, since ke's parser error carries only line/column.
171
+ // With `--skip-invalid`, drop the unparseable sources (warning LOUDLY about
172
+ // each — never a silent partial graph) and build from the rest instead of
173
+ // failing the whole update.
174
+ // `<name>@<kind>:<resolved>` — the SAME provenance label the bundler writes
175
+ // for the embed, so the manifest field means one thing whoever built the pack,
176
+ // and `sources status` / `doctor` can still answer "which revision is my store
177
+ // built from?" now that no lock records it. A `file:` pack resolves to a local
178
+ // PATH rather than a revision, so it contributes its name alone: a machine
179
+ // path is not provenance, and `sources status` already lists the ref.
180
+ const sourceRef = resolved
181
+ .map((pkg) => pkg.kind === "file"
182
+ ? pkg.name
183
+ : `${pkg.name}@${pkg.kind}:${pkg.resolved}`)
184
+ .join(", ") || "embedded";
185
+ let built;
186
+ try {
187
+ built = await buildPack(inputs, {
188
+ name: "pragma",
189
+ version: VERSION,
190
+ sourceRef,
191
+ prefixes,
192
+ stories,
193
+ });
194
+ }
195
+ catch (error) {
196
+ if (!skipInvalid)
197
+ throw await classifySourceBuildError(error, inputs);
198
+ const bad = await collectBadSources(inputs);
199
+ // A build failure not attributable to a single unparseable source (e.g. a
200
+ // cross-file conflict) can't be skipped away — surface the named error.
201
+ if (bad.length === 0)
202
+ throw await classifySourceBuildError(error, inputs);
203
+ const badPaths = new Set(bad.map((entry) => entry.path));
204
+ const usableInputs = inputs.filter((input) => !badPaths.has(input.path));
205
+ for (const entry of bad)
206
+ report?.(` skipped invalid source ${entry.path}: ${entry.message}`);
207
+ report?.(`Skipped ${bad.length} invalid source(s); building from ${usableInputs.length} of ${inputs.length}`);
208
+ if (usableInputs.length === 0)
209
+ throw PragmaError.configError(`None of the ${inputs.length} configured source(s) can be parsed — nothing to build.`, {
210
+ recovery: cliRecovery("sources update --verbose", "Fix the reported sources, then re-run."),
211
+ });
212
+ try {
213
+ built = await buildPack(usableInputs, {
214
+ name: "pragma",
215
+ version: VERSION,
216
+ sourceRef,
217
+ // Re-harvest prefixes from only the sources that survived, so a dropped
218
+ // file's declarations don't skew compaction.
219
+ prefixes: buildPackPrefixes(usableInputs, layers.config.prefixes),
220
+ stories,
221
+ });
222
+ }
223
+ catch (rebuildError) {
224
+ throw await classifySourceBuildError(rebuildError, usableInputs);
225
+ }
226
+ }
227
+ report?.(`${built.reused ? "Reused" : "Built"} store ${built.contentHash.slice(0, 12)}`);
228
+ // Refuse a 0-triple build (A4): non-empty sources can still parse to no
229
+ // triples (e.g. comment-only TTL, or a file of only `@prefix` lines). Pointing
230
+ // the project at an empty pack boots to the same `STORE_UNAVAILABLE` loop, so
231
+ // treat it as a data error rather than a silent "success". (A manifest
232
+ // predating the triple count is left alone — `undefined` never trips this.)
233
+ if (built.manifest.tripleCount === 0) {
234
+ throw PragmaError.configError(`The configured sources parsed to 0 RDF triples, so the store would be empty. Refusing to build an empty store.`, {
235
+ recovery: cliRecovery("sources update --verbose", "Check that the pack sources actually contain RDF triples, then re-run."),
236
+ });
237
+ }
238
+ const path = activePackPath(runtime.cwd);
239
+ const data = {
240
+ contentHash: built.contentHash,
241
+ reused: built.reused,
242
+ packs: resolved.map((pkg) => ({
243
+ name: pkg.name,
244
+ resolved: pkg.resolved,
245
+ sourceCount: pkg.sources.length,
246
+ storyCount: pkg.stories.length,
247
+ })),
248
+ };
249
+ const undo = priorHash !== undefined ? writeFile(path, priorHash) : deleteFile(path);
250
+ // Install package-provided skills (U10): symlink each resolved package's
251
+ // `skills/*` into the installed-skills root, so `skill list` / `setup skills`
252
+ // see them after an update — and RETIRE the links of skills those packages
253
+ // have since dropped, which the same plan reports as `pruned`. Kept in this
254
+ // Task (reversible: a created link carries an unlink undo, a pruned one a
255
+ // re-link undo) so `sources update --undo` restores the root as it was.
256
+ //
257
+ // The two are split, not counted together: a prune is a deletion, so folding
258
+ // it into "Installing N skill(s)" would report a removal as an install.
259
+ const skillPlan = planSkillInstall(resolved);
260
+ const skillLinks = skillPlan.filter((link) => link.action === "created" || link.action === "replaced");
261
+ const staleLinks = skillPlan.filter((link) => link.action === "pruned");
262
+ if (skillLinks.length > 0)
263
+ report?.(`Installing ${skillLinks.length} skill(s)`);
264
+ if (staleLinks.length > 0)
265
+ report?.(`Removing ${staleLinks.length} skill link(s) no longer provided by any package`);
266
+ report?.(`Pointing ${runtime.cwd} at pack ${built.contentHash.slice(0, 12)}`);
267
+ return gen(function* () {
268
+ yield* $(writeFile(path, built.contentHash, { undo }));
269
+ if (skillLinks.length > 0) {
270
+ yield* $(mkdir(installedSkillsDir(), true));
271
+ for (const link of skillLinks) {
272
+ if (link.action === "replaced")
273
+ yield* $(deleteFile(link.linkPath));
274
+ yield* $(symlink(link.target, link.linkPath, {
275
+ undo: deleteFile(link.linkPath),
276
+ }));
277
+ }
278
+ }
279
+ // No `mkdir` guard here: a stale link can only have been enumerated FROM
280
+ // the installed root, so the root necessarily exists.
281
+ //
282
+ // The undo re-creates the link exactly as found — dangling target and all —
283
+ // because undo's job is to restore the prior state, not to improve on it. It
284
+ // clears the path first because the undo interpreter MOCKS forward effects
285
+ // when collecting: the delete above may never have run, and `fs.symlink`
286
+ // refuses a path that already exists. Same delete-then-link shape the
287
+ // `replaced` branch above uses, for the same reason.
288
+ for (const stale of staleLinks) {
289
+ yield* $(deleteFile(stale.linkPath, {
290
+ undo: gen(function* () {
291
+ yield* $(deleteFile(stale.linkPath));
292
+ yield* $(symlink(stale.target, stale.linkPath));
293
+ }),
294
+ }));
295
+ }
296
+ return data;
297
+ });
298
+ }
299
+ /** Progress line for a package about to be resolved, phrased by ref kind. */
300
+ function resolveProgress(ref) {
301
+ switch (ref.kind) {
302
+ case "git":
303
+ return `Cloning ${ref.pkg} from ${redactUrl(ref.url)}`;
304
+ case "file":
305
+ return `Reading ${ref.pkg} from ${ref.path}`;
306
+ case "npm":
307
+ return `Resolving ${ref.pkg}`;
308
+ }
309
+ }
310
+ /**
311
+ * Classify a pack-build failure as a NAMED data error (U6).
312
+ *
313
+ * ke/Oxigraph parses each source's Turtle, but its thrown parser error carries
314
+ * only the line/column — NOT which source produced it (it sees a content string,
315
+ * not a path). So on failure we re-parse each source in ISOLATION to find the
316
+ * first that throws — the culprit — and raise a `CONFIG_ERROR` naming its
317
+ * `pkg/relative-path` with the parser's own message and an actionable recovery.
318
+ * This runs only on the error path, so the per-source re-parse cost is paid once.
319
+ * A `PragmaError` from resolution (e.g. a missing file) is already classified and
320
+ * passes through untouched.
321
+ *
322
+ * @param error - The value thrown by `buildPack`.
323
+ * @param inputs - The labelled sources handed to the build.
324
+ * @returns A classified {@link PragmaError} (never INTERNAL_ERROR for bad data).
325
+ */
326
+ export async function classifySourceBuildError(error, inputs) {
327
+ if (error instanceof PragmaError)
328
+ return error;
329
+ const parserMessage = error instanceof Error ? error.message : String(error);
330
+ const culprit = await isolateBadSource(inputs);
331
+ const detail = culprit?.message ?? parserMessage;
332
+ const where = culprit
333
+ ? `Pack source "${culprit.path}" cannot be parsed`
334
+ : "The configured packs cannot be built into a store";
335
+ return PragmaError.configError(`${where}: ${detail}`, {
336
+ recovery: cliRecovery("sources update --verbose", "Re-run with --verbose to see each file as it parses. If a pack ships malformed RDF, report it to that pack's maintainer."),
337
+ });
338
+ }
339
+ /**
340
+ * Re-parse each source alone to find the first that fails to parse.
341
+ *
342
+ * @param inputs - The labelled sources.
343
+ * @returns The offending source's path + parser message, or `undefined` if none
344
+ * fails in isolation (a build failure unrelated to a single bad source).
345
+ * @note Impure — boots a throwaway ke store per source; error path only.
346
+ */
347
+ async function isolateBadSource(inputs) {
348
+ const { createStore } = await import("@canonical/ke");
349
+ for (const input of inputs) {
350
+ try {
351
+ const store = await createStore({
352
+ sources: [{ content: input.content, path: input.path }],
353
+ });
354
+ store.dispose();
355
+ }
356
+ catch (error) {
357
+ return {
358
+ path: input.path,
359
+ message: error instanceof Error ? error.message : String(error),
360
+ };
361
+ }
362
+ }
363
+ return undefined;
364
+ }
365
+ /**
366
+ * Re-parse each source in isolation and collect EVERY one that fails to parse.
367
+ *
368
+ * Backs `--skip-invalid`: {@link isolateBadSource} returns just the first
369
+ * culprit (for the error message), whereas the skip path needs the full set to
370
+ * drop before rebuilding. Error path only — one throwaway ke store per source.
371
+ *
372
+ * @param inputs - The labelled sources.
373
+ * @returns Every source that fails to parse alone, with its parser message.
374
+ */
375
+ async function collectBadSources(inputs) {
376
+ const { createStore } = await import("@canonical/ke");
377
+ const bad = [];
378
+ for (const input of inputs) {
379
+ try {
380
+ const store = await createStore({
381
+ sources: [{ content: input.content, path: input.path }],
382
+ });
383
+ store.dispose();
384
+ }
385
+ catch (error) {
386
+ bad.push({
387
+ path: input.path,
388
+ message: error instanceof Error ? error.message : String(error),
389
+ });
390
+ }
391
+ }
392
+ return bad;
393
+ }
394
+ //# sourceMappingURL=runUpdate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runUpdate.js","sourceRoot":"","sources":["../../../../src/capabilities/sources/runUpdate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Formatters for `pragma sources status` — plain, llm, json.
3
+ */
4
+ import { BIN_NAME } from "../../constants.js";
5
+ import { defaultStyle } from "../../kernel/render/style.js";
6
+ /**
7
+ * The headline for each boot decision. The `embedded` case names the update
8
+ * explicitly: the distribution's snapshot answers reads, but it is a snapshot,
9
+ * so reporting it as "up to date" would be a lie.
10
+ */
11
+ const STORE_HEADLINE = {
12
+ built: "ready",
13
+ embedded: `embedded snapshot (run \`${BIN_NAME} sources update\` to build from the configured packs)`,
14
+ unavailable: `not built (run \`${BIN_NAME} sources update\`)`,
15
+ };
16
+ /**
17
+ * Render `sources status` as plain text.
18
+ *
19
+ * @param data - The resolved sources-status payload.
20
+ * @param style - TTY styling; defaults to the process style. On a color-capable
21
+ * terminal the `Sources:` heading is bold, source names align into a column,
22
+ * and each configured ref is dimmed; off a TTY the styler is inert, so the
23
+ * output is byte-identical to the plain form.
24
+ * @returns The formatted status block.
25
+ */
26
+ export function renderSourcesStatusPlain(data, style = defaultStyle()) {
27
+ const lines = [`Store: ${STORE_HEADLINE[data.store]}`];
28
+ if (data.contentHash !== null) {
29
+ lines.push(` pack: ${data.contentHash.slice(0, 12)} — ${data.entityCount ?? "?"} entities, built ${data.builtAt ?? "?"}`, ` from: ${data.sourceRef ?? "?"}`);
30
+ }
31
+ lines.push("", style.enabled ? style.bold("Sources:") : "Sources:");
32
+ if (data.sources.length === 0) {
33
+ lines.push(" (none configured)");
34
+ }
35
+ const nameWidth = style.enabled
36
+ ? Math.max(0, ...data.sources.map((source) => source.name.length))
37
+ : 0;
38
+ for (const source of data.sources) {
39
+ lines.push(style.enabled
40
+ ? ` ${source.name.padEnd(nameWidth)} ${style.dim(source.ref)}`
41
+ : ` ${source.name} ${source.ref}`);
42
+ }
43
+ return lines.join("\n");
44
+ }
45
+ export const statusFormatters = {
46
+ plain(data) {
47
+ return renderSourcesStatusPlain(data);
48
+ },
49
+ llm(data) {
50
+ const lines = [`# sources`, `- Store: ${data.store}`];
51
+ if (data.sourceRef !== null)
52
+ lines.push(`- From: ${data.sourceRef}`);
53
+ if (data.entityCount !== null)
54
+ lines.push(`- Entities: ${data.entityCount}`);
55
+ for (const source of data.sources) {
56
+ lines.push(`- ${source.name}: ${source.ref}`);
57
+ }
58
+ return lines.join("\n");
59
+ },
60
+ json(data) {
61
+ return JSON.stringify(data);
62
+ },
63
+ };
64
+ //# sourceMappingURL=status.render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.render.js","sourceRoot":"","sources":["../../../../src/capabilities/sources/status.render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * The `sources status` verb — a storeless read.
3
+ *
4
+ * `needsStore: false` is load-bearing: status must report even a cold or
5
+ * unbuilt store (`store: "unavailable"`), so it must NOT boot the store —
6
+ * booting a cold store would throw STORE_UNAVAILABLE before status could say
7
+ * so. Its `run` is a lazy thunk (the collector is dynamic-imported), keeping
8
+ * the config reader off the fast path, exactly like `info`.
9
+ */
10
+ import { BIN_NAME } from "../../constants.js";
11
+ import { statusFormatters } from "./status.render.js";
12
+ /** The `sources status` verb spec. */
13
+ export const statusVerb = {
14
+ path: ["sources", "status"],
15
+ summary: "Report which pack answers reads, and the packs it was built from.",
16
+ doc: "Storeless — reads config and the pack cache without booting the store, so it works even when the store is cold. Reports whether reads are answered by a locally built pack, by the embedded snapshot, or not at all.",
17
+ params: [],
18
+ output: { formatters: statusFormatters },
19
+ examples: [
20
+ {
21
+ cmd: `${BIN_NAME} sources status`,
22
+ note: "human-readable readiness summary",
23
+ },
24
+ {
25
+ cmd: `${BIN_NAME} sources status --format json`,
26
+ note: "the full envelope",
27
+ },
28
+ ],
29
+ capability: {
30
+ needsStore: false,
31
+ mutates: false,
32
+ needsNetwork: false,
33
+ mcp: {
34
+ expose: true,
35
+ annotations: { readOnlyHint: true, openWorldHint: false },
36
+ },
37
+ },
38
+ run: (_params, runtime) => import("./collectStatus.js").then((module) => module.collectStatus(runtime)),
39
+ };
40
+ //# sourceMappingURL=status.verb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.verb.js","sourceRoot":"","sources":["../../../../src/capabilities/sources/status.verb.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAGnB;IACF,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC3B,OAAO,EAAE,mEAAmE;IAC5E,GAAG,EAAE,sNAAsN;IAC3N,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;IACxC,QAAQ,EAAE;QACR;YACE,GAAG,EAAE,GAAG,QAAQ,iBAAiB;YACjC,IAAI,EAAE,kCAAkC;SACzC;QACD;YACE,GAAG,EAAE,GAAG,QAAQ,+BAA+B;YAC/C,IAAI,EAAE,mBAAmB;SAC1B;KACF;IACD,UAAU,EAAE;QACV,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,KAAK;QACnB,GAAG,EAAE;YACH,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;SAC1D;KACF;IACD,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CACxB,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAC9B;CACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Data shapes for the `sources` noun — `status` (storeless read) and `update`
3
+ * (the Task that resolves, builds, and points the project at a pack).
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/capabilities/sources/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Formatters for `pragma sources update` — plain, llm, json.
3
+ */
4
+ export const updateFormatters = {
5
+ plain(data) {
6
+ const lines = [
7
+ data.reused
8
+ ? `Store up to date (pack ${data.contentHash.slice(0, 12)}).`
9
+ : `Built pack ${data.contentHash.slice(0, 12)}.`,
10
+ ];
11
+ for (const pack of data.packs) {
12
+ // FILES, not usable stories: `sources update` carries them verbatim and
13
+ // never validates them (zod would have to run per record, in the build).
14
+ // `doctor` is where "2 stories ignored" comes from — saying "stories"
15
+ // here would put a green count next to a broken file.
16
+ const stories = pack.storyCount > 0
17
+ ? `, ${pack.storyCount} story file${pack.storyCount === 1 ? "" : "s"}`
18
+ : "";
19
+ lines.push(` ${pack.name} @ ${pack.resolved.slice(0, 12)} (${pack.sourceCount} source${pack.sourceCount === 1 ? "" : "s"}${stories})`);
20
+ }
21
+ return lines.join("\n");
22
+ },
23
+ llm(data) {
24
+ return [
25
+ `# sources update`,
26
+ `- Pack: ${data.contentHash.slice(0, 12)}${data.reused ? " (reused)" : ""}`,
27
+ ...data.packs.map((pack) => `- ${pack.name}: ${pack.resolved}`),
28
+ ].join("\n");
29
+ },
30
+ json(data) {
31
+ return JSON.stringify(data);
32
+ },
33
+ };
34
+ //# sourceMappingURL=update.render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.render.js","sourceRoot":"","sources":["../../../../src/capabilities/sources/update.render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,CAAC,MAAM,gBAAgB,GAAkC;IAC7D,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG;YACZ,IAAI,CAAC,MAAM;gBACT,CAAC,CAAC,0BAA0B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI;gBAC7D,CAAC,CAAC,cAAc,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;SACnD,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,wEAAwE;YACxE,yEAAyE;YACzE,sEAAsE;YACtE,sDAAsD;YACtD,MAAM,OAAO,GACX,IAAI,CAAC,UAAU,GAAG,CAAC;gBACjB,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,cAAc,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;gBACtE,CAAC,CAAC,EAAE,CAAC;YACT,KAAK,CAAC,IAAI,CACR,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,UAAU,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,CAC5H,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,GAAG,CAAC,IAAI;QACN,OAAO;YACL,kBAAkB;YAClB,WAAW,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3E,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;SAChE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,IAAI,CAAC,IAAI;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * The `sources update` verb — resolve the configured packs, build the store,
3
+ * and point the project at it.
4
+ *
5
+ * A mutation (`mutates: true`) that needs the network (`needsNetwork: true`)
6
+ * but NOT the pre-booted store (`needsStore: false`): update is what *creates*
7
+ * the store, so the dispatcher must not try to boot it first (a cold boot would
8
+ * throw STORE_UNAVAILABLE). `run` returns a `Promise<Task<R>>` — the union's
9
+ * third arm — which the dispatcher awaits: for a real execution it resolves and
10
+ * builds before handing back the pointer-writing Task; for a preview
11
+ * (`runtime.mutation.preview`) it stays network-free and hands back a
12
+ * plan-only Task.
13
+ */
14
+ import { BIN_NAME } from "../../constants.js";
15
+ import { updateFormatters } from "./update.render.js";
16
+ /** The `sources update` verb spec. */
17
+ export const updateVerb = {
18
+ path: ["sources", "update"],
19
+ summary: "Resolve configured packs and build the local store from them.",
20
+ doc: "Resolves each configured pack (git/file/npm) and builds one content-addressed pack, which every later boot reads with no network access. Pin a revision by putting a commit SHA in the pack's source ref.",
21
+ params: [
22
+ {
23
+ kind: "boolean",
24
+ name: "skipInvalid",
25
+ doc: "Skip sources that fail to parse (warning about each) and build from the rest, instead of failing the whole update.",
26
+ },
27
+ ],
28
+ output: { formatters: updateFormatters },
29
+ examples: [
30
+ { cmd: `${BIN_NAME} sources update`, note: "resolve and build" },
31
+ {
32
+ cmd: `${BIN_NAME} sources update --skip-invalid`,
33
+ note: "build from the parseable sources, warning about any dropped",
34
+ },
35
+ ],
36
+ capability: {
37
+ needsStore: false,
38
+ mutates: true,
39
+ needsNetwork: true,
40
+ mcp: {
41
+ expose: true,
42
+ annotations: { readOnlyHint: false, openWorldHint: true },
43
+ },
44
+ },
45
+ // `run` really returns `Promise<Task<R>>`: `buildUpdateTask` awaits config
46
+ // (and, on a real execution, resolves + builds) before handing back the
47
+ // pointer-writing Task — or, when `runtime.mutation.preview` is set, a
48
+ // network-free plan Task. The dispatcher and MCP handler both `await` this
49
+ // promise into a `Task`. The `VerbSpec.run` union is deliberately two-armed
50
+ // (`Promise<R> | Task<R>`) — a third `Promise<Task<R>>` arm would poison async
51
+ // read-verb inference — so the awaited-away Promise is presented through the
52
+ // `Task<R>` arm by this single, honest cast.
53
+ run: (params, runtime) => import("./runUpdate.js").then((module) => module.buildUpdateTask(runtime, params.skipInvalid === true)),
54
+ };
55
+ //# sourceMappingURL=update.verb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.verb.js","sourceRoot":"","sources":["../../../../src/capabilities/sources/update.verb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAGnB;IACF,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC3B,OAAO,EAAE,+DAA+D;IACxE,GAAG,EAAE,2MAA2M;IAChN,MAAM,EAAE;QACN;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,oHAAoH;SAC1H;KACF;IACD,MAAM,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;IACxC,QAAQ,EAAE;QACR,EAAE,GAAG,EAAE,GAAG,QAAQ,iBAAiB,EAAE,IAAI,EAAE,mBAAmB,EAAE;QAChE;YACE,GAAG,EAAE,GAAG,QAAQ,gCAAgC;YAChD,IAAI,EAAE,6DAA6D;SACpE;KACF;IACD,UAAU,EAAE;QACV,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,IAAI;QAClB,GAAG,EAAE;YACH,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;SAC1D;KACF;IACD,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,2EAA2E;IAC3E,4EAA4E;IAC5E,+EAA+E;IAC/E,6EAA6E;IAC7E,6CAA6C;IAC7C,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACvB,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,CACvB;CAC1C,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * The `upgrade` capability barrel.
3
+ */
4
+ export { upgradeModule } from "./upgrade.verb.js";
5
+ //# sourceMappingURL=index.js.map