@canonical/pragma-cli 0.34.0 → 0.36.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 (832) hide show
  1. package/README.md +153 -30
  2. package/bundled-skills/add-standard/SKILL.md +338 -0
  3. package/bundled-skills/adoption-a1-styles/SKILL.md +269 -0
  4. package/bundled-skills/adoption-a2-components/SKILL.md +291 -0
  5. package/bundled-skills/adoption-a3-forms/SKILL.md +260 -0
  6. package/bundled-skills/anatomy-author/ANATOMY_DSL_SPEC.md +406 -0
  7. package/bundled-skills/anatomy-author/SKILL.md +1226 -0
  8. package/bundled-skills/design-auditor/SKILL.md +455 -0
  9. package/bundled-skills/implement-component/SKILL.md +333 -0
  10. package/bundled-skills/specify-component/SKILL.md +331 -0
  11. package/bundled-skills/specify-pattern/SKILL.md +292 -0
  12. package/dist/.build-ok +0 -0
  13. package/dist/package.json +84 -0
  14. package/dist/pragma.conf.js +1016 -0
  15. package/dist/pragma.conf.js.map +1 -0
  16. package/dist/src/bin.js +356 -0
  17. package/dist/src/bin.js.map +1 -0
  18. package/dist/src/capabilities/capabilities/capabilities.render.js +70 -0
  19. package/dist/src/capabilities/capabilities/capabilities.render.js.map +1 -0
  20. package/dist/src/capabilities/capabilities/capabilities.verb.js +59 -0
  21. package/dist/src/capabilities/capabilities/capabilities.verb.js.map +1 -0
  22. package/dist/src/capabilities/capabilities/catalog.js +130 -0
  23. package/dist/src/capabilities/capabilities/catalog.js.map +1 -0
  24. package/dist/src/capabilities/capabilities/hints.js +195 -0
  25. package/dist/src/capabilities/capabilities/hints.js.map +1 -0
  26. package/dist/src/capabilities/capabilities/index.js +11 -0
  27. package/dist/src/capabilities/capabilities/index.js.map +1 -0
  28. package/dist/src/capabilities/capabilities/types.js +11 -0
  29. package/dist/src/capabilities/capabilities/types.js.map +1 -0
  30. package/dist/src/capabilities/colophon/collectColophon.js +83 -0
  31. package/dist/src/capabilities/colophon/collectColophon.js.map +1 -0
  32. package/dist/src/capabilities/colophon/colophon.render.js +59 -0
  33. package/dist/src/capabilities/colophon/colophon.render.js.map +1 -0
  34. package/dist/src/capabilities/colophon/colophon.verb.js +43 -0
  35. package/dist/src/capabilities/colophon/colophon.verb.js.map +1 -0
  36. package/dist/src/capabilities/colophon/index.js +5 -0
  37. package/dist/src/capabilities/colophon/index.js.map +1 -0
  38. package/dist/src/capabilities/colophon/markdownTerminal.js +90 -0
  39. package/dist/src/capabilities/colophon/markdownTerminal.js.map +1 -0
  40. package/dist/src/capabilities/colophon/types.js +10 -0
  41. package/dist/src/capabilities/colophon/types.js.map +1 -0
  42. package/dist/src/capabilities/config/collectConfigShow.js +59 -0
  43. package/dist/src/capabilities/config/collectConfigShow.js.map +1 -0
  44. package/dist/src/capabilities/config/field.render.js +22 -0
  45. package/dist/src/capabilities/config/field.render.js.map +1 -0
  46. package/dist/src/capabilities/config/fields.js +46 -0
  47. package/dist/src/capabilities/config/fields.js.map +1 -0
  48. package/dist/src/capabilities/config/get.verb.js +61 -0
  49. package/dist/src/capabilities/config/get.verb.js.map +1 -0
  50. package/dist/src/capabilities/config/index.js +5 -0
  51. package/dist/src/capabilities/config/index.js.map +1 -0
  52. package/dist/src/capabilities/config/runField.js +59 -0
  53. package/dist/src/capabilities/config/runField.js.map +1 -0
  54. package/dist/src/capabilities/config/runGet.js +28 -0
  55. package/dist/src/capabilities/config/runGet.js.map +1 -0
  56. package/dist/src/capabilities/config/runSet.js +53 -0
  57. package/dist/src/capabilities/config/runSet.js.map +1 -0
  58. package/dist/src/capabilities/config/set.verb.js +66 -0
  59. package/dist/src/capabilities/config/set.verb.js.map +1 -0
  60. package/dist/src/capabilities/config/show.render.js +84 -0
  61. package/dist/src/capabilities/config/show.render.js.map +1 -0
  62. package/dist/src/capabilities/config/show.verb.js +44 -0
  63. package/dist/src/capabilities/config/show.verb.js.map +1 -0
  64. package/dist/src/capabilities/config/types.js +5 -0
  65. package/dist/src/capabilities/config/types.js.map +1 -0
  66. package/dist/src/capabilities/config/unset.verb.js +49 -0
  67. package/dist/src/capabilities/config/unset.verb.js.map +1 -0
  68. package/dist/src/capabilities/create/cliProjection.js +195 -0
  69. package/dist/src/capabilities/create/cliProjection.js.map +1 -0
  70. package/dist/src/capabilities/create/constants.js +47 -0
  71. package/dist/src/capabilities/create/constants.js.map +1 -0
  72. package/dist/src/capabilities/create/create.render.js +100 -0
  73. package/dist/src/capabilities/create/create.render.js.map +1 -0
  74. package/dist/src/capabilities/create/create.verb.js +438 -0
  75. package/dist/src/capabilities/create/create.verb.js.map +1 -0
  76. package/dist/src/capabilities/create/createHelp.js +47 -0
  77. package/dist/src/capabilities/create/createHelp.js.map +1 -0
  78. package/dist/src/capabilities/create/createSurface.generated.js +394 -0
  79. package/dist/src/capabilities/create/createSurface.generated.js.map +1 -0
  80. package/dist/src/capabilities/create/generatorToVerbSpec.js +106 -0
  81. package/dist/src/capabilities/create/generatorToVerbSpec.js.map +1 -0
  82. package/dist/src/capabilities/create/index.js +18 -0
  83. package/dist/src/capabilities/create/index.js.map +1 -0
  84. package/dist/src/capabilities/create/messages.js +16 -0
  85. package/dist/src/capabilities/create/messages.js.map +1 -0
  86. package/dist/src/capabilities/create/mount.js +294 -0
  87. package/dist/src/capabilities/create/mount.js.map +1 -0
  88. package/dist/src/capabilities/create/pathJail.js +65 -0
  89. package/dist/src/capabilities/create/pathJail.js.map +1 -0
  90. package/dist/src/capabilities/create/pickGenerator.js +53 -0
  91. package/dist/src/capabilities/create/pickGenerator.js.map +1 -0
  92. package/dist/src/capabilities/create/types.js +2 -0
  93. package/dist/src/capabilities/create/types.js.map +1 -0
  94. package/dist/src/capabilities/distribution.js +40 -0
  95. package/dist/src/capabilities/distribution.js.map +1 -0
  96. package/dist/src/capabilities/doctor/checks/checkKeStore.js +40 -0
  97. package/dist/src/capabilities/doctor/checks/checkKeStore.js.map +1 -0
  98. package/dist/src/capabilities/doctor/checks/checkNodeVersion.js +21 -0
  99. package/dist/src/capabilities/doctor/checks/checkNodeVersion.js.map +1 -0
  100. package/dist/src/capabilities/doctor/checks/checkPackageRefs.js +148 -0
  101. package/dist/src/capabilities/doctor/checks/checkPackageRefs.js.map +1 -0
  102. package/dist/src/capabilities/doctor/checks/checkPragmaVersion.js +19 -0
  103. package/dist/src/capabilities/doctor/checks/checkPragmaVersion.js.map +1 -0
  104. package/dist/src/capabilities/doctor/checks/checkShellCompletions.js +199 -0
  105. package/dist/src/capabilities/doctor/checks/checkShellCompletions.js.map +1 -0
  106. package/dist/src/capabilities/doctor/checks/harnessInventory.js +195 -0
  107. package/dist/src/capabilities/doctor/checks/harnessInventory.js.map +1 -0
  108. package/dist/src/capabilities/doctor/checks/index.js +27 -0
  109. package/dist/src/capabilities/doctor/checks/index.js.map +1 -0
  110. package/dist/src/capabilities/doctor/checks/mcpCommand.js +57 -0
  111. package/dist/src/capabilities/doctor/checks/mcpCommand.js.map +1 -0
  112. package/dist/src/capabilities/doctor/checks/targetHealth.js +349 -0
  113. package/dist/src/capabilities/doctor/checks/targetHealth.js.map +1 -0
  114. package/dist/src/capabilities/doctor/doctor.render.js +164 -0
  115. package/dist/src/capabilities/doctor/doctor.render.js.map +1 -0
  116. package/dist/src/capabilities/doctor/doctor.verb.js +49 -0
  117. package/dist/src/capabilities/doctor/doctor.verb.js.map +1 -0
  118. package/dist/src/capabilities/doctor/index.js +5 -0
  119. package/dist/src/capabilities/doctor/index.js.map +1 -0
  120. package/dist/src/capabilities/doctor/runChecks.js +86 -0
  121. package/dist/src/capabilities/doctor/runChecks.js.map +1 -0
  122. package/dist/src/capabilities/doctor/types.js +5 -0
  123. package/dist/src/capabilities/doctor/types.js.map +1 -0
  124. package/dist/src/capabilities/graph/index.js +19 -0
  125. package/dist/src/capabilities/graph/index.js.map +1 -0
  126. package/dist/src/capabilities/graph/inspect.render.js +76 -0
  127. package/dist/src/capabilities/graph/inspect.render.js.map +1 -0
  128. package/dist/src/capabilities/graph/inspect.verb.js +53 -0
  129. package/dist/src/capabilities/graph/inspect.verb.js.map +1 -0
  130. package/dist/src/capabilities/graph/query.render.js +73 -0
  131. package/dist/src/capabilities/graph/query.render.js.map +1 -0
  132. package/dist/src/capabilities/graph/query.verb.js +49 -0
  133. package/dist/src/capabilities/graph/query.verb.js.map +1 -0
  134. package/dist/src/capabilities/graph/runQuery.js +41 -0
  135. package/dist/src/capabilities/graph/runQuery.js.map +1 -0
  136. package/dist/src/capabilities/index.js +56 -0
  137. package/dist/src/capabilities/index.js.map +1 -0
  138. package/dist/src/capabilities/info/collectInfo.js +72 -0
  139. package/dist/src/capabilities/info/collectInfo.js.map +1 -0
  140. package/dist/src/capabilities/info/index.js +5 -0
  141. package/dist/src/capabilities/info/index.js.map +1 -0
  142. package/dist/src/capabilities/info/info.render.js +57 -0
  143. package/dist/src/capabilities/info/info.render.js.map +1 -0
  144. package/dist/src/capabilities/info/info.verb.js +42 -0
  145. package/dist/src/capabilities/info/info.verb.js.map +1 -0
  146. package/dist/src/capabilities/info/types.js +5 -0
  147. package/dist/src/capabilities/info/types.js.map +1 -0
  148. package/dist/src/capabilities/meta/complete.verb.js +43 -0
  149. package/dist/src/capabilities/meta/complete.verb.js.map +1 -0
  150. package/dist/src/capabilities/meta/index.js +13 -0
  151. package/dist/src/capabilities/meta/index.js.map +1 -0
  152. package/dist/src/capabilities/meta/mcp.verb.js +34 -0
  153. package/dist/src/capabilities/meta/mcp.verb.js.map +1 -0
  154. package/dist/src/capabilities/ontology/index.js +21 -0
  155. package/dist/src/capabilities/ontology/index.js.map +1 -0
  156. package/dist/src/capabilities/ontology/queries.js +123 -0
  157. package/dist/src/capabilities/ontology/queries.js.map +1 -0
  158. package/dist/src/capabilities/ontology/render.js +66 -0
  159. package/dist/src/capabilities/ontology/render.js.map +1 -0
  160. package/dist/src/capabilities/ontology/verbs.js +181 -0
  161. package/dist/src/capabilities/ontology/verbs.js.map +1 -0
  162. package/dist/src/capabilities/prompt/index.js +16 -0
  163. package/dist/src/capabilities/prompt/index.js.map +1 -0
  164. package/dist/src/capabilities/prompt/prompt.render.js +78 -0
  165. package/dist/src/capabilities/prompt/prompt.render.js.map +1 -0
  166. package/dist/src/capabilities/prompt/types.js +10 -0
  167. package/dist/src/capabilities/prompt/types.js.map +1 -0
  168. package/dist/src/capabilities/prompt/verbs.js +93 -0
  169. package/dist/src/capabilities/prompt/verbs.js.map +1 -0
  170. package/dist/src/capabilities/resources/index.js +10 -0
  171. package/dist/src/capabilities/resources/index.js.map +1 -0
  172. package/dist/src/capabilities/resources/provider.js +423 -0
  173. package/dist/src/capabilities/resources/provider.js.map +1 -0
  174. package/dist/src/capabilities/setup/buildPlan.js +172 -0
  175. package/dist/src/capabilities/setup/buildPlan.js.map +1 -0
  176. package/dist/src/capabilities/setup/index.js +5 -0
  177. package/dist/src/capabilities/setup/index.js.map +1 -0
  178. package/dist/src/capabilities/setup/mode.js +53 -0
  179. package/dist/src/capabilities/setup/mode.js.map +1 -0
  180. package/dist/src/capabilities/setup/operations/index.js +39 -0
  181. package/dist/src/capabilities/setup/operations/index.js.map +1 -0
  182. package/dist/src/capabilities/setup/operations/setupCompletions.js +160 -0
  183. package/dist/src/capabilities/setup/operations/setupCompletions.js.map +1 -0
  184. package/dist/src/capabilities/setup/operations/setupConfig.js +101 -0
  185. package/dist/src/capabilities/setup/operations/setupConfig.js.map +1 -0
  186. package/dist/src/capabilities/setup/operations/setupGenerator.js +390 -0
  187. package/dist/src/capabilities/setup/operations/setupGenerator.js.map +1 -0
  188. package/dist/src/capabilities/setup/operations/setupLsp.js +329 -0
  189. package/dist/src/capabilities/setup/operations/setupLsp.js.map +1 -0
  190. package/dist/src/capabilities/setup/operations/setupMcp.js +253 -0
  191. package/dist/src/capabilities/setup/operations/setupMcp.js.map +1 -0
  192. package/dist/src/capabilities/setup/operations/setupSkills.js +594 -0
  193. package/dist/src/capabilities/setup/operations/setupSkills.js.map +1 -0
  194. package/dist/src/capabilities/setup/plan.js +128 -0
  195. package/dist/src/capabilities/setup/plan.js.map +1 -0
  196. package/dist/src/capabilities/setup/plan.render.js +271 -0
  197. package/dist/src/capabilities/setup/plan.render.js.map +1 -0
  198. package/dist/src/capabilities/setup/setup.render.js +54 -0
  199. package/dist/src/capabilities/setup/setup.render.js.map +1 -0
  200. package/dist/src/capabilities/setup/setup.verb.js +387 -0
  201. package/dist/src/capabilities/setup/setup.verb.js.map +1 -0
  202. package/dist/src/capabilities/setup/shell.js +196 -0
  203. package/dist/src/capabilities/setup/shell.js.map +1 -0
  204. package/dist/src/capabilities/setup/targets.js +328 -0
  205. package/dist/src/capabilities/setup/targets.js.map +1 -0
  206. package/dist/src/capabilities/setup/types.js +5 -0
  207. package/dist/src/capabilities/setup/types.js.map +1 -0
  208. package/dist/src/capabilities/shared/assertExecOk.js +137 -0
  209. package/dist/src/capabilities/shared/assertExecOk.js.map +1 -0
  210. package/dist/src/capabilities/shared/index.js +27 -0
  211. package/dist/src/capabilities/shared/index.js.map +1 -0
  212. package/dist/src/capabilities/shared/packageManager.js +349 -0
  213. package/dist/src/capabilities/shared/packageManager.js.map +1 -0
  214. package/dist/src/capabilities/shared/registry.js +55 -0
  215. package/dist/src/capabilities/shared/registry.js.map +1 -0
  216. package/dist/src/capabilities/skill/discover.js +281 -0
  217. package/dist/src/capabilities/skill/discover.js.map +1 -0
  218. package/dist/src/capabilities/skill/index.js +10 -0
  219. package/dist/src/capabilities/skill/index.js.map +1 -0
  220. package/dist/src/capabilities/skill/render.js +49 -0
  221. package/dist/src/capabilities/skill/render.js.map +1 -0
  222. package/dist/src/capabilities/skill/verbs.js +83 -0
  223. package/dist/src/capabilities/skill/verbs.js.map +1 -0
  224. package/dist/src/capabilities/sources/collectStatus.js +103 -0
  225. package/dist/src/capabilities/sources/collectStatus.js.map +1 -0
  226. package/dist/src/capabilities/sources/index.js +13 -0
  227. package/dist/src/capabilities/sources/index.js.map +1 -0
  228. package/dist/src/capabilities/sources/installSkills.js +309 -0
  229. package/dist/src/capabilities/sources/installSkills.js.map +1 -0
  230. package/dist/src/capabilities/sources/runUpdate.js +460 -0
  231. package/dist/src/capabilities/sources/runUpdate.js.map +1 -0
  232. package/dist/src/capabilities/sources/status.render.js +64 -0
  233. package/dist/src/capabilities/sources/status.render.js.map +1 -0
  234. package/dist/src/capabilities/sources/status.verb.js +40 -0
  235. package/dist/src/capabilities/sources/status.verb.js.map +1 -0
  236. package/dist/src/capabilities/sources/types.js +6 -0
  237. package/dist/src/capabilities/sources/types.js.map +1 -0
  238. package/dist/src/capabilities/sources/update.render.js +34 -0
  239. package/dist/src/capabilities/sources/update.render.js.map +1 -0
  240. package/dist/src/capabilities/sources/update.verb.js +55 -0
  241. package/dist/src/capabilities/sources/update.verb.js.map +1 -0
  242. package/dist/src/capabilities/upgrade/index.js +5 -0
  243. package/dist/src/capabilities/upgrade/index.js.map +1 -0
  244. package/dist/src/capabilities/upgrade/runUpgrade.js +135 -0
  245. package/dist/src/capabilities/upgrade/runUpgrade.js.map +1 -0
  246. package/dist/src/capabilities/upgrade/types.js +5 -0
  247. package/dist/src/capabilities/upgrade/types.js.map +1 -0
  248. package/dist/src/capabilities/upgrade/upgrade.render.js +52 -0
  249. package/dist/src/capabilities/upgrade/upgrade.render.js.map +1 -0
  250. package/dist/src/capabilities/upgrade/upgrade.verb.js +52 -0
  251. package/dist/src/capabilities/upgrade/upgrade.verb.js.map +1 -0
  252. package/dist/src/capabilities/version/index.js +10 -0
  253. package/dist/src/capabilities/version/index.js.map +1 -0
  254. package/dist/src/capabilities/version/version.verb.js +36 -0
  255. package/dist/src/capabilities/version/version.verb.js.map +1 -0
  256. package/dist/src/constants.js +87 -0
  257. package/dist/src/constants.js.map +1 -0
  258. package/dist/src/index.js +12 -0
  259. package/dist/src/index.js.map +1 -0
  260. package/dist/src/kernel/completion/complete.js +66 -0
  261. package/dist/src/kernel/completion/complete.js.map +1 -0
  262. package/dist/src/kernel/completion/emitScripts.js +92 -0
  263. package/dist/src/kernel/completion/emitScripts.js.map +1 -0
  264. package/dist/src/kernel/completion/entitySource.js +285 -0
  265. package/dist/src/kernel/completion/entitySource.js.map +1 -0
  266. package/dist/src/kernel/completion/index.js +14 -0
  267. package/dist/src/kernel/completion/index.js.map +1 -0
  268. package/dist/src/kernel/completion/model.js +301 -0
  269. package/dist/src/kernel/completion/model.js.map +1 -0
  270. package/dist/src/kernel/completion/parse.js +253 -0
  271. package/dist/src/kernel/completion/parse.js.map +1 -0
  272. package/dist/src/kernel/completion/rank.js +101 -0
  273. package/dist/src/kernel/completion/rank.js.map +1 -0
  274. package/dist/src/kernel/completion/resolve.js +100 -0
  275. package/dist/src/kernel/completion/resolve.js.map +1 -0
  276. package/dist/src/kernel/completion/templates/bash.js +209 -0
  277. package/dist/src/kernel/completion/templates/bash.js.map +1 -0
  278. package/dist/src/kernel/completion/templates/fish.js +214 -0
  279. package/dist/src/kernel/completion/templates/fish.js.map +1 -0
  280. package/dist/src/kernel/completion/templates/index.js +23 -0
  281. package/dist/src/kernel/completion/templates/index.js.map +1 -0
  282. package/dist/src/kernel/completion/templates/shared.js +98 -0
  283. package/dist/src/kernel/completion/templates/shared.js.map +1 -0
  284. package/dist/src/kernel/completion/templates/zsh.js +201 -0
  285. package/dist/src/kernel/completion/templates/zsh.js.map +1 -0
  286. package/dist/src/kernel/completion/types.js +13 -0
  287. package/dist/src/kernel/completion/types.js.map +1 -0
  288. package/dist/src/kernel/config/defaults.js +17 -0
  289. package/dist/src/kernel/config/defaults.js.map +1 -0
  290. package/dist/src/kernel/config/evaluateProjectConfig.js +126 -0
  291. package/dist/src/kernel/config/evaluateProjectConfig.js.map +1 -0
  292. package/dist/src/kernel/config/findProjectConfig.js +43 -0
  293. package/dist/src/kernel/config/findProjectConfig.js.map +1 -0
  294. package/dist/src/kernel/config/firstRun.js +34 -0
  295. package/dist/src/kernel/config/firstRun.js.map +1 -0
  296. package/dist/src/kernel/config/globalConfig.js +79 -0
  297. package/dist/src/kernel/config/globalConfig.js.map +1 -0
  298. package/dist/src/kernel/config/index.js +16 -0
  299. package/dist/src/kernel/config/index.js.map +1 -0
  300. package/dist/src/kernel/config/paths.js +35 -0
  301. package/dist/src/kernel/config/paths.js.map +1 -0
  302. package/dist/src/kernel/config/readConfig.js +78 -0
  303. package/dist/src/kernel/config/readConfig.js.map +1 -0
  304. package/dist/src/kernel/config/schema.js +130 -0
  305. package/dist/src/kernel/config/schema.js.map +1 -0
  306. package/dist/src/kernel/config/types.js +19 -0
  307. package/dist/src/kernel/config/types.js.map +1 -0
  308. package/dist/src/kernel/config/writeConfigField.js +59 -0
  309. package/dist/src/kernel/config/writeConfigField.js.map +1 -0
  310. package/dist/src/kernel/copy.js +43 -0
  311. package/dist/src/kernel/copy.js.map +1 -0
  312. package/dist/src/kernel/error/PragmaError.js +149 -0
  313. package/dist/src/kernel/error/PragmaError.js.map +1 -0
  314. package/dist/src/kernel/error/constants.js +40 -0
  315. package/dist/src/kernel/error/constants.js.map +1 -0
  316. package/dist/src/kernel/error/fromTaskError.js +96 -0
  317. package/dist/src/kernel/error/fromTaskError.js.map +1 -0
  318. package/dist/src/kernel/error/index.js +13 -0
  319. package/dist/src/kernel/error/index.js.map +1 -0
  320. package/dist/src/kernel/error/recovery.js +52 -0
  321. package/dist/src/kernel/error/recovery.js.map +1 -0
  322. package/dist/src/kernel/error/renderError.js +115 -0
  323. package/dist/src/kernel/error/renderError.js.map +1 -0
  324. package/dist/src/kernel/error/serialize.js +25 -0
  325. package/dist/src/kernel/error/serialize.js.map +1 -0
  326. package/dist/src/kernel/error/types.js +9 -0
  327. package/dist/src/kernel/error/types.js.map +1 -0
  328. package/dist/src/kernel/index.js +34 -0
  329. package/dist/src/kernel/index.js.map +1 -0
  330. package/dist/src/kernel/interactivity.js +68 -0
  331. package/dist/src/kernel/interactivity.js.map +1 -0
  332. package/dist/src/kernel/packs/collect.js +187 -0
  333. package/dist/src/kernel/packs/collect.js.map +1 -0
  334. package/dist/src/kernel/packs/compile.js +304 -0
  335. package/dist/src/kernel/packs/compile.js.map +1 -0
  336. package/dist/src/kernel/packs/disclosure.js +76 -0
  337. package/dist/src/kernel/packs/disclosure.js.map +1 -0
  338. package/dist/src/kernel/packs/glob.js +38 -0
  339. package/dist/src/kernel/packs/glob.js.map +1 -0
  340. package/dist/src/kernel/packs/graphql/buildLookupDocument.js +258 -0
  341. package/dist/src/kernel/packs/graphql/buildLookupDocument.js.map +1 -0
  342. package/dist/src/kernel/packs/graphql/fetchGraphqlLookup.js +157 -0
  343. package/dist/src/kernel/packs/graphql/fetchGraphqlLookup.js.map +1 -0
  344. package/dist/src/kernel/packs/graphql/index.js +20 -0
  345. package/dist/src/kernel/packs/graphql/index.js.map +1 -0
  346. package/dist/src/kernel/packs/graphql/nameMap.js +63 -0
  347. package/dist/src/kernel/packs/graphql/nameMap.js.map +1 -0
  348. package/dist/src/kernel/packs/index.js +34 -0
  349. package/dist/src/kernel/packs/index.js.map +1 -0
  350. package/dist/src/kernel/packs/iri.js +110 -0
  351. package/dist/src/kernel/packs/iri.js.map +1 -0
  352. package/dist/src/kernel/packs/renderPack.js +129 -0
  353. package/dist/src/kernel/packs/renderPack.js.map +1 -0
  354. package/dist/src/kernel/packs/resolveEntity.js +274 -0
  355. package/dist/src/kernel/packs/resolveEntity.js.map +1 -0
  356. package/dist/src/kernel/packs/runBodies.js +140 -0
  357. package/dist/src/kernel/packs/runBodies.js.map +1 -0
  358. package/dist/src/kernel/packs/sample.js +56 -0
  359. package/dist/src/kernel/packs/sample.js.map +1 -0
  360. package/dist/src/kernel/packs/schema.js +421 -0
  361. package/dist/src/kernel/packs/schema.js.map +1 -0
  362. package/dist/src/kernel/packs/sparql/applyFilters.js +167 -0
  363. package/dist/src/kernel/packs/sparql/applyFilters.js.map +1 -0
  364. package/dist/src/kernel/packs/sparql/applySearch.js +25 -0
  365. package/dist/src/kernel/packs/sparql/applySearch.js.map +1 -0
  366. package/dist/src/kernel/packs/sparql/buildLookupQuery.js +480 -0
  367. package/dist/src/kernel/packs/sparql/buildLookupQuery.js.map +1 -0
  368. package/dist/src/kernel/packs/sparql/escape.js +21 -0
  369. package/dist/src/kernel/packs/sparql/escape.js.map +1 -0
  370. package/dist/src/kernel/packs/sparql/index.js +31 -0
  371. package/dist/src/kernel/packs/sparql/index.js.map +1 -0
  372. package/dist/src/kernel/packs/sparql/runSelect.js +101 -0
  373. package/dist/src/kernel/packs/sparql/runSelect.js.map +1 -0
  374. package/dist/src/kernel/packs/types.js +30 -0
  375. package/dist/src/kernel/packs/types.js.map +1 -0
  376. package/dist/src/kernel/packs/uniqueness.js +30 -0
  377. package/dist/src/kernel/packs/uniqueness.js.map +1 -0
  378. package/dist/src/kernel/project/cli/buildProgram.js +263 -0
  379. package/dist/src/kernel/project/cli/buildProgram.js.map +1 -0
  380. package/dist/src/kernel/project/cli/constants.js +27 -0
  381. package/dist/src/kernel/project/cli/constants.js.map +1 -0
  382. package/dist/src/kernel/project/cli/dispatch.js +420 -0
  383. package/dist/src/kernel/project/cli/dispatch.js.map +1 -0
  384. package/dist/src/kernel/project/cli/exitCodes.js +66 -0
  385. package/dist/src/kernel/project/cli/exitCodes.js.map +1 -0
  386. package/dist/src/kernel/project/cli/globalFlags.js +219 -0
  387. package/dist/src/kernel/project/cli/globalFlags.js.map +1 -0
  388. package/dist/src/kernel/project/cli/helpFormat.js +58 -0
  389. package/dist/src/kernel/project/cli/helpFormat.js.map +1 -0
  390. package/dist/src/kernel/project/cli/index.js +14 -0
  391. package/dist/src/kernel/project/cli/index.js.map +1 -0
  392. package/dist/src/kernel/project/cli/rootHelp.js +227 -0
  393. package/dist/src/kernel/project/cli/rootHelp.js.map +1 -0
  394. package/dist/src/kernel/project/cli/suggest.js +75 -0
  395. package/dist/src/kernel/project/cli/suggest.js.map +1 -0
  396. package/dist/src/kernel/project/cli/suggestNames.js +96 -0
  397. package/dist/src/kernel/project/cli/suggestNames.js.map +1 -0
  398. package/dist/src/kernel/project/cli/verbHelp.js +131 -0
  399. package/dist/src/kernel/project/cli/verbHelp.js.map +1 -0
  400. package/dist/src/kernel/project/mcp/buildServer.js +67 -0
  401. package/dist/src/kernel/project/mcp/buildServer.js.map +1 -0
  402. package/dist/src/kernel/project/mcp/envelope.js +37 -0
  403. package/dist/src/kernel/project/mcp/envelope.js.map +1 -0
  404. package/dist/src/kernel/project/mcp/index.js +8 -0
  405. package/dist/src/kernel/project/mcp/index.js.map +1 -0
  406. package/dist/src/kernel/project/mcp/instructions.js +44 -0
  407. package/dist/src/kernel/project/mcp/instructions.js.map +1 -0
  408. package/dist/src/kernel/project/mcp/mcpError.js +42 -0
  409. package/dist/src/kernel/project/mcp/mcpError.js.map +1 -0
  410. package/dist/src/kernel/project/mcp/prompts/index.js +36 -0
  411. package/dist/src/kernel/project/mcp/prompts/index.js.map +1 -0
  412. package/dist/src/kernel/project/mcp/prompts/provider.js +98 -0
  413. package/dist/src/kernel/project/mcp/prompts/provider.js.map +1 -0
  414. package/dist/src/kernel/project/mcp/prompts/source.js +154 -0
  415. package/dist/src/kernel/project/mcp/prompts/source.js.map +1 -0
  416. package/dist/src/kernel/project/mcp/registerVerb.js +315 -0
  417. package/dist/src/kernel/project/mcp/registerVerb.js.map +1 -0
  418. package/dist/src/kernel/project/mcp/serve.js +35 -0
  419. package/dist/src/kernel/project/mcp/serve.js.map +1 -0
  420. package/dist/src/kernel/render/compactUri.js +24 -0
  421. package/dist/src/kernel/render/compactUri.js.map +1 -0
  422. package/dist/src/kernel/render/contracts.js +10 -0
  423. package/dist/src/kernel/render/contracts.js.map +1 -0
  424. package/dist/src/kernel/render/disclosure.js +34 -0
  425. package/dist/src/kernel/render/disclosure.js.map +1 -0
  426. package/dist/src/kernel/render/envelope.js +30 -0
  427. package/dist/src/kernel/render/envelope.js.map +1 -0
  428. package/dist/src/kernel/render/formatters.js +27 -0
  429. package/dist/src/kernel/render/formatters.js.map +1 -0
  430. package/dist/src/kernel/render/index.js +15 -0
  431. package/dist/src/kernel/render/index.js.map +1 -0
  432. package/dist/src/kernel/render/prefixes.js +46 -0
  433. package/dist/src/kernel/render/prefixes.js.map +1 -0
  434. package/dist/src/kernel/render/renderers.js +468 -0
  435. package/dist/src/kernel/render/renderers.js.map +1 -0
  436. package/dist/src/kernel/render/style.js +105 -0
  437. package/dist/src/kernel/render/style.js.map +1 -0
  438. package/dist/src/kernel/render/turtle.js +194 -0
  439. package/dist/src/kernel/render/turtle.js.map +1 -0
  440. package/dist/src/kernel/render/vocabulary.js +174 -0
  441. package/dist/src/kernel/render/vocabulary.js.map +1 -0
  442. package/dist/src/kernel/render/writeStdout.js +43 -0
  443. package/dist/src/kernel/render/writeStdout.js.map +1 -0
  444. package/dist/src/kernel/runtime/boot.js +49 -0
  445. package/dist/src/kernel/runtime/boot.js.map +1 -0
  446. package/dist/src/kernel/runtime/facade.js +39 -0
  447. package/dist/src/kernel/runtime/facade.js.map +1 -0
  448. package/dist/src/kernel/runtime/graphpack/build.js +122 -0
  449. package/dist/src/kernel/runtime/graphpack/build.js.map +1 -0
  450. package/dist/src/kernel/runtime/graphpack/buildIndex.js +303 -0
  451. package/dist/src/kernel/runtime/graphpack/buildIndex.js.map +1 -0
  452. package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js +6 -0
  453. package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js.map +1 -0
  454. package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js +4 -0
  455. package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js.map +1 -0
  456. package/dist/src/kernel/runtime/graphpack/embedded/pack.stories.generated.js +4 -0
  457. package/dist/src/kernel/runtime/graphpack/embedded/pack.stories.generated.js.map +1 -0
  458. package/dist/src/kernel/runtime/graphpack/embedded.js +82 -0
  459. package/dist/src/kernel/runtime/graphpack/embedded.js.map +1 -0
  460. package/dist/src/kernel/runtime/graphpack/hash.js +38 -0
  461. package/dist/src/kernel/runtime/graphpack/hash.js.map +1 -0
  462. package/dist/src/kernel/runtime/graphpack/index.js +11 -0
  463. package/dist/src/kernel/runtime/graphpack/index.js.map +1 -0
  464. package/dist/src/kernel/runtime/graphpack/manifest.js +145 -0
  465. package/dist/src/kernel/runtime/graphpack/manifest.js.map +1 -0
  466. package/dist/src/kernel/runtime/graphpack/read.js +92 -0
  467. package/dist/src/kernel/runtime/graphpack/read.js.map +1 -0
  468. package/dist/src/kernel/runtime/graphpack/schemas.js +70 -0
  469. package/dist/src/kernel/runtime/graphpack/schemas.js.map +1 -0
  470. package/dist/src/kernel/runtime/graphpack/stories.js +68 -0
  471. package/dist/src/kernel/runtime/graphpack/stories.js.map +1 -0
  472. package/dist/src/kernel/runtime/graphpack/types.js +55 -0
  473. package/dist/src/kernel/runtime/graphpack/types.js.map +1 -0
  474. package/dist/src/kernel/runtime/index.js +8 -0
  475. package/dist/src/kernel/runtime/index.js.map +1 -0
  476. package/dist/src/kernel/runtime/loadSession.js +34 -0
  477. package/dist/src/kernel/runtime/loadSession.js.map +1 -0
  478. package/dist/src/kernel/runtime/paths.js +78 -0
  479. package/dist/src/kernel/runtime/paths.js.map +1 -0
  480. package/dist/src/kernel/runtime/probe.js +37 -0
  481. package/dist/src/kernel/runtime/probe.js.map +1 -0
  482. package/dist/src/kernel/runtime/readEntity.js +363 -0
  483. package/dist/src/kernel/runtime/readEntity.js.map +1 -0
  484. package/dist/src/kernel/runtime/refs/gitOps.js +65 -0
  485. package/dist/src/kernel/runtime/refs/gitOps.js.map +1 -0
  486. package/dist/src/kernel/runtime/refs/index.js +29 -0
  487. package/dist/src/kernel/runtime/refs/index.js.map +1 -0
  488. package/dist/src/kernel/runtime/refs/parseRef.js +70 -0
  489. package/dist/src/kernel/runtime/refs/parseRef.js.map +1 -0
  490. package/dist/src/kernel/runtime/refs/resolve.js +332 -0
  491. package/dist/src/kernel/runtime/refs/resolve.js.map +1 -0
  492. package/dist/src/kernel/runtime/resolveSources.js +62 -0
  493. package/dist/src/kernel/runtime/resolveSources.js.map +1 -0
  494. package/dist/src/kernel/runtime/store.js +75 -0
  495. package/dist/src/kernel/runtime/store.js.map +1 -0
  496. package/dist/src/kernel/runtime/storeReadiness.js +51 -0
  497. package/dist/src/kernel/runtime/storeReadiness.js.map +1 -0
  498. package/dist/src/kernel/runtime/types.js +11 -0
  499. package/dist/src/kernel/runtime/types.js.map +1 -0
  500. package/dist/src/kernel/spec/asVerb.js +21 -0
  501. package/dist/src/kernel/spec/asVerb.js.map +1 -0
  502. package/dist/src/kernel/spec/emitReference.js +578 -0
  503. package/dist/src/kernel/spec/emitReference.js.map +1 -0
  504. package/dist/src/kernel/spec/emitSurface.js +202 -0
  505. package/dist/src/kernel/spec/emitSurface.js.map +1 -0
  506. package/dist/src/kernel/spec/index.js +11 -0
  507. package/dist/src/kernel/spec/index.js.map +1 -0
  508. package/dist/src/kernel/spec/surfaceConformance.js +103 -0
  509. package/dist/src/kernel/spec/surfaceConformance.js.map +1 -0
  510. package/dist/src/kernel/spec/types.js +14 -0
  511. package/dist/src/kernel/spec/types.js.map +1 -0
  512. package/dist/src/kernel/spec/validate.js +110 -0
  513. package/dist/src/kernel/spec/validate.js.map +1 -0
  514. package/dist/src/kernel/vocabulary.js +97 -0
  515. package/dist/src/kernel/vocabulary.js.map +1 -0
  516. package/dist/src/types.js +11 -0
  517. package/dist/src/types.js.map +1 -0
  518. package/package.json +22 -23
  519. package/pragma.conf.ts +486 -90
  520. package/src/bin.ts +274 -82
  521. package/src/capabilities/block.parity.test.ts +29 -12
  522. package/src/capabilities/block.shipped.exec.test.ts +282 -0
  523. package/src/capabilities/block.tierRank.exec.test.ts +300 -0
  524. package/src/capabilities/capabilities/capabilities.render.ts +1 -1
  525. package/src/capabilities/capabilities/capabilities.verb.ts +1 -1
  526. package/src/capabilities/capabilities/catalog.ts +3 -3
  527. package/src/capabilities/capabilities/hints.ts +32 -7
  528. package/src/capabilities/capabilities/index.ts +1 -1
  529. package/src/capabilities/colophon/collectColophon.ts +35 -24
  530. package/src/capabilities/colophon/colophon.render.ts +24 -1
  531. package/src/capabilities/colophon/colophon.test.ts +42 -21
  532. package/src/capabilities/colophon/colophon.verb.ts +4 -4
  533. package/src/capabilities/config/collectConfigShow.test.ts +1 -0
  534. package/src/capabilities/config/collectConfigShow.ts +3 -3
  535. package/src/capabilities/config/field.render.ts +4 -5
  536. package/src/capabilities/config/fields.ts +17 -10
  537. package/src/capabilities/config/get.verb.ts +70 -0
  538. package/src/capabilities/config/getUnset.test.ts +264 -0
  539. package/src/capabilities/config/index.ts +5 -1
  540. package/src/capabilities/config/runField.ts +40 -22
  541. package/src/capabilities/config/runGet.ts +34 -0
  542. package/src/capabilities/config/runSet.ts +35 -9
  543. package/src/capabilities/config/set.test.ts +48 -14
  544. package/src/capabilities/config/set.verb.ts +8 -7
  545. package/src/capabilities/config/show.render.ts +1 -1
  546. package/src/capabilities/config/show.verb.ts +9 -6
  547. package/src/capabilities/config/types.ts +18 -4
  548. package/src/capabilities/config/unset.verb.ts +58 -0
  549. package/src/capabilities/create/byteEquality.subprocess.test.ts +2 -3
  550. package/src/capabilities/create/byteEquality.test.ts +25 -11
  551. package/src/capabilities/create/cliProjection.ts +227 -0
  552. package/src/capabilities/create/constants.ts +36 -61
  553. package/src/capabilities/create/create.mcp.test.ts +89 -5
  554. package/src/capabilities/create/create.render.ts +71 -7
  555. package/src/capabilities/create/create.test.ts +433 -219
  556. package/src/capabilities/create/create.verb.ts +297 -328
  557. package/src/capabilities/create/createGrammar.test.ts +865 -0
  558. package/src/capabilities/create/createHelp.ts +71 -0
  559. package/src/capabilities/create/createSurface.generated.ts +400 -0
  560. package/src/capabilities/create/crossCli.subprocess.test.ts +745 -0
  561. package/src/capabilities/create/cwdJail.test.ts +24 -5
  562. package/src/capabilities/create/generatorToVerbSpec.test.ts +186 -0
  563. package/src/capabilities/create/generatorToVerbSpec.ts +13 -11
  564. package/src/capabilities/create/index.ts +7 -4
  565. package/src/capabilities/create/messages.ts +18 -0
  566. package/src/capabilities/create/mount.ts +391 -0
  567. package/src/capabilities/create/pathJail.test.ts +90 -0
  568. package/src/capabilities/create/pathJail.ts +8 -5
  569. package/src/capabilities/create/pickGenerator.ts +23 -35
  570. package/src/capabilities/create/shippedCreate.subprocess.test.ts +164 -0
  571. package/src/capabilities/create/types.ts +20 -0
  572. package/src/capabilities/distribution.parity.test.ts +4 -0
  573. package/src/capabilities/distribution.test.ts +3 -1
  574. package/src/capabilities/distribution.ts +10 -15
  575. package/src/capabilities/doctor/checks/checkKeStore.ts +7 -5
  576. package/src/capabilities/doctor/checks/checkPackageRefs.ts +75 -8
  577. package/src/capabilities/doctor/checks/checkPragmaVersion.ts +2 -2
  578. package/src/capabilities/doctor/checks/checkShellCompletions.test.ts +76 -29
  579. package/src/capabilities/doctor/checks/checkShellCompletions.ts +63 -17
  580. package/src/capabilities/doctor/checks/harnessInventory.test.ts +219 -0
  581. package/src/capabilities/doctor/checks/harnessInventory.ts +298 -0
  582. package/src/capabilities/doctor/checks/index.ts +27 -0
  583. package/src/capabilities/doctor/checks/mcpCommand.test.ts +100 -0
  584. package/src/capabilities/doctor/checks/mcpCommand.ts +69 -0
  585. package/src/capabilities/doctor/checks/targetHealth.ts +444 -0
  586. package/src/capabilities/doctor/doctor.render.test.ts +125 -38
  587. package/src/capabilities/doctor/doctor.render.ts +74 -74
  588. package/src/capabilities/doctor/doctor.test.ts +338 -37
  589. package/src/capabilities/doctor/doctor.verb.ts +8 -3
  590. package/src/capabilities/doctor/runChecks.ts +65 -63
  591. package/src/capabilities/doctor/types.ts +22 -15
  592. package/src/capabilities/emptyRecovery.test.ts +21 -8
  593. package/src/capabilities/graph/examples.exec.test.ts +107 -0
  594. package/src/capabilities/graph/index.ts +1 -1
  595. package/src/capabilities/graph/inspect.render.ts +70 -22
  596. package/src/capabilities/graph/inspect.test.ts +260 -5
  597. package/src/capabilities/graph/inspect.verb.ts +18 -6
  598. package/src/capabilities/graph/query.render.ts +15 -3
  599. package/src/capabilities/graph/query.verb.ts +3 -3
  600. package/src/capabilities/graph/runQuery.ts +2 -3
  601. package/src/capabilities/index.ts +3 -1
  602. package/src/capabilities/info/collectInfo.ts +13 -5
  603. package/src/capabilities/info/info.render.ts +7 -3
  604. package/src/capabilities/info/info.test.ts +37 -1
  605. package/src/capabilities/info/info.verb.ts +1 -1
  606. package/src/capabilities/info/types.ts +10 -2
  607. package/src/capabilities/lazy.test.ts +32 -0
  608. package/src/capabilities/meta/complete.verb.ts +1 -1
  609. package/src/capabilities/meta/index.ts +1 -1
  610. package/src/capabilities/meta/mcp.verb.ts +10 -8
  611. package/src/capabilities/ontology/index.ts +15 -11
  612. package/src/capabilities/ontology/ontology.test.ts +6 -55
  613. package/src/capabilities/ontology/queries.ts +2 -2
  614. package/src/capabilities/ontology/render.ts +3 -4
  615. package/src/capabilities/ontology/verbs.ts +27 -68
  616. package/src/capabilities/prompt/index.ts +2 -2
  617. package/src/capabilities/prompt/prompt.render.ts +6 -2
  618. package/src/capabilities/prompt/types.ts +1 -1
  619. package/src/capabilities/prompt/verbs.ts +4 -5
  620. package/src/capabilities/reference.test.ts +63 -0
  621. package/src/capabilities/renderVocabularySync.test.ts +82 -0
  622. package/src/capabilities/resources/provider.ts +342 -85
  623. package/src/capabilities/resources/resources.test.ts +355 -59
  624. package/src/capabilities/scopeTypeSync.test.ts +29 -15
  625. package/src/capabilities/setup/buildPlan.ts +240 -0
  626. package/src/capabilities/setup/index.ts +7 -7
  627. package/src/capabilities/setup/mode.ts +74 -0
  628. package/src/capabilities/setup/operations/index.ts +79 -0
  629. package/src/capabilities/setup/operations/setupCompletions.ts +97 -24
  630. package/src/capabilities/setup/operations/setupConfig.ts +124 -0
  631. package/src/capabilities/setup/operations/setupGenerator.ts +478 -334
  632. package/src/capabilities/setup/operations/setupLsp.ts +420 -67
  633. package/src/capabilities/setup/operations/setupMcp.ts +238 -127
  634. package/src/capabilities/setup/operations/setupSkills.ts +667 -105
  635. package/src/capabilities/setup/plan.render.ts +336 -0
  636. package/src/capabilities/setup/plan.ts +241 -0
  637. package/src/capabilities/setup/setup.mcp.correctness.test.ts +432 -0
  638. package/src/capabilities/setup/setup.render.test.ts +297 -75
  639. package/src/capabilities/setup/setup.render.ts +45 -77
  640. package/src/capabilities/setup/setup.test.ts +1819 -225
  641. package/src/capabilities/setup/setup.verb.ts +288 -78
  642. package/src/capabilities/setup/shell.test.ts +86 -0
  643. package/src/capabilities/setup/shell.ts +137 -11
  644. package/src/capabilities/setup/targets.ts +435 -0
  645. package/src/capabilities/setup/types.ts +23 -70
  646. package/src/capabilities/shared/assertExecOk.ts +68 -10
  647. package/src/capabilities/shared/index.ts +43 -0
  648. package/src/capabilities/shared/packageManager.test.ts +470 -0
  649. package/src/capabilities/shared/packageManager.ts +425 -34
  650. package/src/capabilities/skill/bundledSkills.test.ts +347 -0
  651. package/src/capabilities/skill/discover.ts +131 -10
  652. package/src/capabilities/skill/index.ts +1 -1
  653. package/src/capabilities/skill/render.ts +10 -9
  654. package/src/capabilities/skill/skill.test.ts +22 -7
  655. package/src/capabilities/skill/verbs.ts +3 -4
  656. package/src/capabilities/sources/collectStatus.ts +7 -2
  657. package/src/capabilities/sources/index.ts +1 -1
  658. package/src/capabilities/sources/installSkills.ts +265 -10
  659. package/src/capabilities/sources/runUpdate.ts +131 -23
  660. package/src/capabilities/sources/sources.test.ts +382 -2
  661. package/src/capabilities/sources/status.render.ts +1 -1
  662. package/src/capabilities/sources/status.verb.ts +1 -1
  663. package/src/capabilities/sources/update.render.ts +1 -1
  664. package/src/capabilities/sources/update.verb.ts +4 -4
  665. package/src/capabilities/surface.test.ts +136 -19
  666. package/src/capabilities/upgrade/runUpgrade.ts +53 -14
  667. package/src/capabilities/upgrade/types.ts +10 -2
  668. package/src/capabilities/upgrade/upgrade.render.ts +13 -7
  669. package/src/capabilities/upgrade/upgrade.test.ts +75 -3
  670. package/src/capabilities/upgrade/upgrade.verb.ts +1 -1
  671. package/src/capabilities/version/index.ts +12 -0
  672. package/src/capabilities/version/version.test.ts +66 -0
  673. package/src/capabilities/version/version.verb.ts +39 -0
  674. package/src/constants.ts +36 -1
  675. package/src/identity.test.ts +57 -29
  676. package/src/kernel/completion/__snapshots__/emitScripts.test.ts.snap +15 -13
  677. package/src/kernel/completion/complete.test.ts +12 -2
  678. package/src/kernel/completion/complete.ts +1 -1
  679. package/src/kernel/completion/emitScripts.ts +1 -1
  680. package/src/kernel/completion/entitySource.test.ts +16 -3
  681. package/src/kernel/completion/entitySource.ts +21 -8
  682. package/src/kernel/completion/model.test.ts +164 -12
  683. package/src/kernel/completion/model.ts +94 -14
  684. package/src/kernel/completion/parse.test.ts +4 -7
  685. package/src/kernel/completion/parse.ts +15 -0
  686. package/src/kernel/completion/resolve.test.ts +0 -1
  687. package/src/kernel/completion/safety.test.ts +50 -35
  688. package/src/kernel/completion/shellDrive.test.ts +28 -9
  689. package/src/kernel/completion/templates/bash.ts +7 -2
  690. package/src/kernel/completion/templates/index.ts +23 -0
  691. package/src/kernel/completion/types.ts +7 -0
  692. package/src/kernel/config/defaults.test.ts +27 -3
  693. package/src/kernel/config/defaults.ts +4 -3
  694. package/src/kernel/config/evaluateProjectConfig.ts +31 -8
  695. package/src/kernel/config/firstRun.test.ts +44 -38
  696. package/src/kernel/config/firstRun.ts +24 -88
  697. package/src/kernel/config/index.ts +1 -1
  698. package/src/kernel/config/readConfig.test.ts +6 -3
  699. package/src/kernel/config/readConfig.ts +1 -1
  700. package/src/kernel/config/schema.ts +3 -1
  701. package/src/kernel/config/types.ts +3 -1
  702. package/src/kernel/copy.test.ts +34 -4
  703. package/src/kernel/copy.ts +54 -0
  704. package/src/kernel/error/PragmaError.test.ts +5 -2
  705. package/src/kernel/error/PragmaError.ts +4 -2
  706. package/src/kernel/error/constants.ts +7 -5
  707. package/src/kernel/error/fromTaskError.ts +28 -6
  708. package/src/kernel/error/recovery.ts +14 -0
  709. package/src/kernel/error/renderError.ts +42 -1
  710. package/src/kernel/error/types.ts +21 -1
  711. package/src/kernel/index.ts +35 -0
  712. package/src/kernel/interactivity.test.ts +76 -0
  713. package/src/kernel/interactivity.ts +69 -0
  714. package/src/kernel/packs/collect.ts +12 -16
  715. package/src/kernel/packs/compile.test.ts +222 -1
  716. package/src/kernel/packs/compile.ts +93 -3
  717. package/src/kernel/packs/disclosure.ts +2 -2
  718. package/src/kernel/packs/graphql/buildLookupDocument.ts +1 -1
  719. package/src/kernel/packs/graphql/fetchGraphqlLookup.ts +3 -4
  720. package/src/kernel/packs/graphql/index.ts +20 -0
  721. package/src/kernel/packs/index.ts +40 -0
  722. package/src/kernel/packs/iri.test.ts +73 -0
  723. package/src/kernel/packs/iri.ts +66 -14
  724. package/src/kernel/packs/renderPack.ts +25 -6
  725. package/src/kernel/packs/resolveEntity.test.ts +274 -0
  726. package/src/kernel/packs/resolveEntity.ts +200 -42
  727. package/src/kernel/packs/runBodies.ts +86 -22
  728. package/src/kernel/packs/sample.ts +1 -1
  729. package/src/kernel/packs/schema.ts +78 -5
  730. package/src/kernel/packs/sparql/applyFilters.ts +136 -16
  731. package/src/kernel/packs/sparql/buildLookupQuery.test.ts +290 -0
  732. package/src/kernel/packs/sparql/buildLookupQuery.ts +367 -17
  733. package/src/kernel/packs/sparql/index.ts +37 -0
  734. package/src/kernel/packs/sparql/runSelect.test.ts +1 -1
  735. package/src/kernel/packs/sparql/runSelect.ts +3 -4
  736. package/src/kernel/packs/toolDescription.test.ts +77 -4
  737. package/src/kernel/packs/types.ts +136 -0
  738. package/src/kernel/packs/uniqueness.ts +1 -1
  739. package/src/kernel/project/cli/buildProgram.test.ts +218 -12
  740. package/src/kernel/project/cli/buildProgram.ts +84 -18
  741. package/src/kernel/project/cli/constants.ts +34 -0
  742. package/src/kernel/project/cli/dispatch.test.ts +160 -2
  743. package/src/kernel/project/cli/dispatch.ts +226 -45
  744. package/src/kernel/project/cli/exitCodes.ts +1 -1
  745. package/src/kernel/project/cli/globalFlags.test.ts +117 -1
  746. package/src/kernel/project/cli/globalFlags.ts +134 -31
  747. package/src/kernel/project/cli/helpFormat.ts +14 -2
  748. package/src/kernel/project/cli/rootHelp.ts +74 -12
  749. package/src/kernel/project/cli/suggest.test.ts +33 -1
  750. package/src/kernel/project/cli/suggest.ts +25 -1
  751. package/src/kernel/project/cli/verbHelp.test.ts +30 -0
  752. package/src/kernel/project/cli/verbHelp.ts +23 -7
  753. package/src/kernel/project/mcp/buildServer.ts +7 -4
  754. package/src/kernel/project/mcp/envelope.ts +2 -2
  755. package/src/kernel/project/mcp/instructions.ts +2 -2
  756. package/src/kernel/project/mcp/mcpError.ts +1 -1
  757. package/src/kernel/project/mcp/parity.test.ts +5 -2
  758. package/src/kernel/project/mcp/prompts/index.ts +37 -0
  759. package/src/kernel/project/mcp/prompts/source.ts +2 -2
  760. package/src/kernel/project/mcp/registerVerb.ts +55 -10
  761. package/src/kernel/project/mcp/serve.ts +2 -2
  762. package/src/kernel/render/__snapshots__/renderers.test.ts.snap +7 -4
  763. package/src/kernel/render/contracts.ts +21 -0
  764. package/src/kernel/render/envelope.ts +2 -3
  765. package/src/kernel/render/formatters.ts +1 -1
  766. package/src/kernel/render/renderers.test.ts +243 -6
  767. package/src/kernel/render/renderers.ts +222 -20
  768. package/src/kernel/render/style.test.ts +75 -24
  769. package/src/kernel/render/style.ts +59 -6
  770. package/src/kernel/render/turtle.ts +222 -0
  771. package/src/kernel/render/vocabulary.ts +276 -0
  772. package/src/kernel/runtime/graphpack/buildIndex.ts +1 -1
  773. package/src/kernel/runtime/graphpack/embedded/pack.generated.ts +3 -3
  774. package/src/kernel/runtime/graphpack/embedded/pack.index.generated.ts +1 -1
  775. package/src/kernel/runtime/graphpack/embedded.ts +3 -3
  776. package/src/kernel/runtime/graphpack/manifest.ts +1 -1
  777. package/src/kernel/runtime/graphpack/read.ts +1 -2
  778. package/src/kernel/runtime/loadSession.ts +1 -1
  779. package/src/kernel/runtime/probe.ts +6 -6
  780. package/src/kernel/runtime/readEntity.ts +472 -28
  781. package/src/kernel/runtime/refs/index.ts +39 -0
  782. package/src/kernel/runtime/refs/parseRef.ts +2 -2
  783. package/src/kernel/runtime/refs/resolve.ts +4 -4
  784. package/src/kernel/runtime/storeReadiness.ts +1 -2
  785. package/src/kernel/runtime/types.ts +15 -1
  786. package/src/kernel/runtime/wasmEmbed.test.ts +37 -39
  787. package/src/kernel/spec/emitReference.ts +105 -30
  788. package/src/kernel/spec/emitSurface.ts +48 -6
  789. package/src/kernel/spec/surfaceConformance.test.ts +4 -2
  790. package/src/kernel/spec/types.ts +277 -4
  791. package/src/testing/PARITY_GAPS.ts +9 -3
  792. package/src/testing/behavioral/docExamples.test.ts +16 -0
  793. package/src/testing/behavioral/errorMatrix.mcp.test.ts +112 -9
  794. package/src/testing/behavioral/firstRun.e2e.test.ts +24 -24
  795. package/src/testing/behavioral/journeys.cli.test.ts +1 -1
  796. package/src/testing/behavioral/journeys.defaultPack.test.ts +7 -7
  797. package/src/testing/behavioral/journeys.firstInstall.test.ts +7 -2
  798. package/src/testing/behavioral/journeys.implementation.test.ts +206 -0
  799. package/src/testing/behavioral/journeys.interactiveTty.e2e.test.ts +2 -2
  800. package/src/testing/behavioral/journeys.packageStories.test.ts +10 -7
  801. package/src/testing/behavioral/mcpServe.e2e.test.ts +57 -2
  802. package/src/testing/behavioral/mcpSurface.test.ts +1 -1
  803. package/src/testing/behavioral/rootCli.e2e.test.ts +26 -2
  804. package/src/testing/eval/__snapshots__/eval.test.ts.snap +26 -1
  805. package/src/testing/eval/cases/effectful.ts +3 -2
  806. package/src/testing/eval/cases/readNouns.ts +245 -9
  807. package/src/testing/fixtures/blockGraph.ts +104 -10
  808. package/src/testing/fixtures/graph/canonical.ts +182 -13
  809. package/src/testing/fixtures/graph/defaultPack.ts +1 -1
  810. package/src/testing/helpers/blankCanonicalRanges.ts +36 -0
  811. package/src/testing/helpers/projectMcp.ts +32 -6
  812. package/src/testing/helpers/runCli.ts +35 -18
  813. package/src/testing/perf/budgets.test.ts +20 -9
  814. package/src/testing/perf/budgets.ts +58 -9
  815. package/src/testing/perf/codegen.test.ts +126 -0
  816. package/src/testing/perf/globalSetup.test.ts +286 -0
  817. package/src/testing/perf/globalSetup.ts +505 -23
  818. package/src/testing/perf/measure.test.ts +38 -0
  819. package/src/testing/perf/measure.ts +23 -4
  820. package/src/testing/setupXdgIsolation.ts +81 -21
  821. package/src/testing/tempRoot.globalSetup.ts +122 -0
  822. package/dist/pragma +0 -0
  823. package/src/capabilities/create/compiledCreate.subprocess.test.ts +0 -189
  824. package/src/capabilities/create/templates.embedded.generated.ts +0 -28
  825. package/src/capabilities/doctor/checks/checkConfigFile.ts +0 -42
  826. package/src/capabilities/doctor/checks/checkMcpCommands.ts +0 -114
  827. package/src/capabilities/doctor/checks/checkMcpConfigured.ts +0 -68
  828. package/src/capabilities/doctor/checks/checkSkillsSymlinked.ts +0 -61
  829. package/src/capabilities/doctor/checks/deriveBand.test.ts +0 -42
  830. package/src/capabilities/doctor/checks/deriveBand.ts +0 -28
  831. package/src/capabilities/shared/bands.ts +0 -16
  832. package/src/kernel/config/__snapshots__/firstRun.test.ts.snap +0 -11
@@ -0,0 +1,149 @@
1
+ import { ISSUES_URL } from "../../constants.js";
2
+ /**
3
+ * Structured error for all pragma operations.
4
+ *
5
+ * Carries a machine-readable {@link ErrorCode}, optional recovery hints, and
6
+ * contextual metadata (suggestions, valid options, active filters) so the CLI
7
+ * and MCP projectors can render one actionable diagnostic from one throw. The
8
+ * effect seam reads throw these directly; mutations surface `TaskError`s that
9
+ * the dispatcher wraps.
10
+ */
11
+ class PragmaError extends Error {
12
+ /** Machine-readable error classification. */
13
+ code;
14
+ /** Entity that triggered the error (type + name), if applicable. */
15
+ entity;
16
+ /** Fuzzy-matched alternative names the user may have intended. */
17
+ suggestions;
18
+ /** Structured recovery hint with optional CLI command or MCP tool call. */
19
+ recovery;
20
+ /** Active filters at the time of the error, for diagnostic context. */
21
+ filters;
22
+ /** Enumerated valid options when input was rejected. */
23
+ validOptions;
24
+ /**
25
+ * @param data - Structured error payload.
26
+ */
27
+ constructor(data) {
28
+ super(data.message);
29
+ this.name = "PragmaError";
30
+ this.code = data.code;
31
+ this.entity = data.entity;
32
+ this.suggestions = data.suggestions ?? [];
33
+ this.recovery = data.recovery;
34
+ this.filters = data.filters;
35
+ this.validOptions = data.validOptions;
36
+ }
37
+ /**
38
+ * Factory: entity not found by name.
39
+ *
40
+ * @param entityType - Kind of entity (e.g. `"block"`, `"token"`).
41
+ * @param entityName - Name the user supplied.
42
+ * @param opts - Optional suggestions and recovery hint.
43
+ * @returns PragmaError with code `ENTITY_NOT_FOUND`.
44
+ */
45
+ static notFound(entityType, entityName, opts = {}) {
46
+ return new PragmaError({
47
+ code: "ENTITY_NOT_FOUND",
48
+ message: `${entityType} "${entityName}" not found.`,
49
+ entity: { type: entityType, name: entityName },
50
+ suggestions: opts.suggestions,
51
+ recovery: opts.recovery,
52
+ });
53
+ }
54
+ /**
55
+ * Factory: query returned zero results.
56
+ *
57
+ * @param entityType - Kind of entity being listed.
58
+ * @param opts - Optional message, active filters, and recovery hint.
59
+ * @returns PragmaError with code `EMPTY_RESULTS`.
60
+ */
61
+ static emptyResults(entityType, opts = {}) {
62
+ return new PragmaError({
63
+ code: "EMPTY_RESULTS",
64
+ message: opts.message ?? `No ${entityType}s found.`,
65
+ filters: opts.filters,
66
+ recovery: opts.recovery,
67
+ validOptions: opts.validOptions,
68
+ });
69
+ }
70
+ /**
71
+ * Factory: user-supplied input is invalid.
72
+ *
73
+ * @param field - Name of the invalid field or argument.
74
+ * @param value - The rejected value.
75
+ * @param opts - Optional valid alternatives and recovery hint.
76
+ * @returns PragmaError with code `INVALID_INPUT`.
77
+ */
78
+ static invalidInput(field, value, opts = {}) {
79
+ return new PragmaError({
80
+ code: "INVALID_INPUT",
81
+ message: `Invalid ${field} "${value}".`,
82
+ validOptions: opts.validOptions,
83
+ recovery: opts.recovery,
84
+ });
85
+ }
86
+ /**
87
+ * Factory: an unknown noun/verb was entered.
88
+ *
89
+ * @param verb - The unrecognized command token.
90
+ * @param opts - Optional suggestions and recovery hint.
91
+ * @returns PragmaError with code `UNKNOWN_VERB`.
92
+ */
93
+ static unknownVerb(verb, opts = {}) {
94
+ return new PragmaError({
95
+ code: "UNKNOWN_VERB",
96
+ message: `Unknown command "${verb}".`,
97
+ suggestions: opts.suggestions,
98
+ recovery: opts.recovery,
99
+ });
100
+ }
101
+ /**
102
+ * Factory: the knowledge-engine store could not be reached.
103
+ *
104
+ * Its own exit code (3) so scripts can distinguish an unavailable store from
105
+ * an ordinary runtime failure.
106
+ *
107
+ * @param reason - Human-readable failure description.
108
+ * @param opts - Optional recovery hint.
109
+ * @returns PragmaError with code `STORE_UNAVAILABLE`.
110
+ */
111
+ static storeUnavailable(reason, opts = {}) {
112
+ return new PragmaError({
113
+ code: "STORE_UNAVAILABLE",
114
+ message: `Store unavailable. ${reason}`,
115
+ recovery: opts.recovery,
116
+ });
117
+ }
118
+ /**
119
+ * Factory: configuration file is invalid or contains bad values.
120
+ *
121
+ * @param reason - Human-readable description of the config problem.
122
+ * @param opts - Optional valid alternatives and recovery hint.
123
+ * @returns PragmaError with code `CONFIG_ERROR`.
124
+ */
125
+ static configError(reason, opts = {}) {
126
+ return new PragmaError({
127
+ code: "CONFIG_ERROR",
128
+ message: reason,
129
+ validOptions: opts.validOptions,
130
+ recovery: opts.recovery,
131
+ });
132
+ }
133
+ /**
134
+ * Factory: unexpected internal failure (a bug).
135
+ *
136
+ * @param reason - Description of the internal error.
137
+ * @returns PragmaError with code `INTERNAL_ERROR` and a report-this hint
138
+ * naming the issue tracker.
139
+ */
140
+ static internalError(reason) {
141
+ return new PragmaError({
142
+ code: "INTERNAL_ERROR",
143
+ message: `Internal error: ${reason}`,
144
+ recovery: { message: `Report this issue at ${ISSUES_URL}.` },
145
+ });
146
+ }
147
+ }
148
+ export { PragmaError };
149
+ //# sourceMappingURL=PragmaError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PragmaError.js","sourceRoot":"","sources":["../../../../src/kernel/error/PragmaError.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * The closed set of pragma error codes.
3
+ *
4
+ * Every {@link PragmaError} carries one of these; the CLI projector maps each
5
+ * to a process exit code and the covenant freezes the exit-code table. Ported
6
+ * from the v1 error kernel with two additions for the v2 exit model:
7
+ * `STORE_UNAVAILABLE` (its own exit code, D2) and `UNKNOWN_VERB` (the usage
8
+ * class the unknown-command suggester resolves to). A store failure is either
9
+ * `STORE_UNAVAILABLE` (can't reach it) or a plain `INTERNAL_ERROR`, so no
10
+ * distinct `STORE_ERROR` code is carried.
11
+ */
12
+ /** All recognized pragma error codes as a const tuple. */
13
+ const ERROR_CODES = [
14
+ "ENTITY_NOT_FOUND",
15
+ "EMPTY_RESULTS",
16
+ "INVALID_INPUT",
17
+ // RESERVED: declared and exit-mapped (usage, exit 2) for forward-compat and
18
+ // advertised in the covenant, but not yet raised by any site. Reserved for a
19
+ // future ambiguous glob/lookup match (a name resolving to several entities);
20
+ // until then no factory exists, so it cannot be raised by accident.
21
+ "AMBIGUOUS_INPUT",
22
+ "UNKNOWN_VERB",
23
+ "STORE_UNAVAILABLE",
24
+ "CONFIG_ERROR",
25
+ "INTERNAL_ERROR",
26
+ // A runtime condition that is NOT a bug and NOT a usage mistake, so it must
27
+ // NOT collapse to INTERNAL_ERROR's "report this issue": a capability
28
+ // genuinely unavailable in this environment (`create` refusing when its
29
+ // lazily-imported generator runtime cannot be loaded at all — the
30
+ // module-not-found backstop in `capabilities/create/create.verb.ts`, which
31
+ // means the `@canonical/summon-*` dependencies could not be resolved, i.e. a
32
+ // broken or pruned install; every declared generator otherwise runs
33
+ // everywhere), OR an external command
34
+ // that RAN and failed for a fixable environment reason (a denied global
35
+ // `npm i -g`, a network/registry failure — see `shared/assertExecOk`). Both
36
+ // carry an actionable recovery and map to the generic runtime exit 1.
37
+ "UNSUPPORTED",
38
+ ];
39
+ export { ERROR_CODES };
40
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/kernel/error/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0DAA0D;AAC1D,MAAM,WAAW,GAAG;IAClB,kBAAkB;IAClB,eAAe;IACf,eAAe;IACf,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,oEAAoE;IACpE,iBAAiB;IACjB,cAAc;IACd,mBAAmB;IACnB,cAAc;IACd,gBAAgB;IAChB,4EAA4E;IAC5E,qEAAqE;IACrE,wEAAwE;IACxE,kEAAkE;IAClE,2EAA2E;IAC3E,6EAA6E;IAC7E,oEAAoE;IACpE,sCAAsC;IACtC,wEAAwE;IACxE,4EAA4E;IAC5E,sEAAsE;IACtE,aAAa;CACL,CAAC;AAEX,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Bridge task-interpreter / summon-core error codes to the pragma boundary.
3
+ *
4
+ * A mutating verb's Task can fail with a code raised by summon-core's `execute`:
5
+ * `GENERATOR_CANCELLED` when an attended-TTY user DECLINES the confirm gate, and
6
+ * `MISSING_REQUIRED_ANSWER` / `GENERATOR_INVALID_ANSWER` for absent or invalid
7
+ * non-interactive answers. `runTask` rethrows these as a `TaskExecutionError`
8
+ * carrying `.code`. Without a bridge the CLI/MCP boundary collapses every
9
+ * non-`PragmaError` to INTERNAL_ERROR + "report this issue" — telling a
10
+ * user to file a bug for cancelling their own scaffold.
11
+ *
12
+ * The codes are matched as STRING LITERALS, never imported from summon-core, so
13
+ * the kernel keeps summon-core out of its static import graph (the lazy-React /
14
+ * lazy-summon discipline that is the whole reason `create` dynamic-imports it).
15
+ */
16
+ import { PragmaError } from "./PragmaError.js";
17
+ /** summon-core's task-error code for a run declined at the confirm gate. */
18
+ const GENERATOR_CANCELLED = "GENERATOR_CANCELLED";
19
+ /** The interpreter's task-error code for a run aborted mid-flight (SIGINT). */
20
+ const TASK_INTERRUPTED = "TASK_INTERRUPTED";
21
+ /** summon-core task-error codes for absent/invalid non-interactive answers. */
22
+ const ANSWER_USAGE_CODES = new Set([
23
+ "MISSING_REQUIRED_ANSWER",
24
+ "GENERATOR_INVALID_ANSWER",
25
+ ]);
26
+ /** The clean, non-scary line shown when a user cancels at the confirm gate. */
27
+ export const CANCELLED_MESSAGE = "Cancelled.";
28
+ /** Read a task-interpreter error code off a thrown value, if it carries one. */
29
+ function taskErrorCode(error) {
30
+ if (error && typeof error === "object" && "code" in error) {
31
+ const { code } = error;
32
+ if (typeof code === "string")
33
+ return code;
34
+ }
35
+ return undefined;
36
+ }
37
+ /**
38
+ * True when the throw is an attended user DECLINING the interactive confirm
39
+ * gate — a deliberate choice, not a failure. The boundary renders this as a
40
+ * clean cancellation (a plain message, success exit), never INTERNAL_ERROR.
41
+ */
42
+ export function isCancellation(error) {
43
+ return taskErrorCode(error) === GENERATOR_CANCELLED;
44
+ }
45
+ /**
46
+ * True when the throw is the interpreter aborting a run mid-flight — a SIGINT
47
+ * on a `--yes`/CI run, or an in-wizard Ctrl-C DURING execution (which aborts
48
+ * the run's controller). Distinct from {@link isCancellation}: a cancel is a
49
+ * clean user decline (exit 0), an interruption stopped work already underway
50
+ * (exit 130, UNIX 128+SIGINT). The boundary renders both with the same clean
51
+ * "Cancelled." line — neither is a bug to report — but with different exit
52
+ * codes.
53
+ */
54
+ export function isInterruption(error) {
55
+ return taskErrorCode(error) === TASK_INTERRUPTED;
56
+ }
57
+ /**
58
+ * The {@link PragmaError} a task failure CARRIES, if any. A task-layer failure
59
+ * raised through the failure channel (`failPragma` — so an enclosing `recover`
60
+ * such as setup's per-step isolation can catch it, which a synchronous throw
61
+ * bypasses) stores the original PragmaError as the TaskError's `cause`;
62
+ * `runTask` then wraps that TaskError in a `TaskExecutionError` whose
63
+ * `taskError` carries it. Walk both wrappers (bounded — the shapes nest at
64
+ * most a few levels) so the boundary recovers the ORIGINAL error with its
65
+ * code, message, and recovery intact.
66
+ */
67
+ function carriedPragmaError(error) {
68
+ let current = error;
69
+ for (let depth = 0; depth < 4 && current !== undefined; depth += 1) {
70
+ if (current instanceof PragmaError)
71
+ return current;
72
+ const record = current;
73
+ current = record?.taskError ?? record?.cause;
74
+ }
75
+ return undefined;
76
+ }
77
+ /**
78
+ * Coerce a thrown value into a {@link PragmaError} for the CLI/MCP boundary,
79
+ * bridging summon-core task-error codes: a `PragmaError` (direct, or carried
80
+ * through the task failure channel as a TaskError `cause`) passes through
81
+ * unchanged; absent/invalid non-interactive answers become INVALID_INPUT (a
82
+ * usage error, exit 2); everything else stays INTERNAL_ERROR. Cancellation is
83
+ * handled separately by {@link isCancellation} as a clean, non-error outcome.
84
+ */
85
+ export function asPragmaError(error) {
86
+ const carried = carriedPragmaError(error);
87
+ if (carried !== undefined)
88
+ return carried;
89
+ const message = error instanceof Error ? error.message : String(error);
90
+ const code = taskErrorCode(error);
91
+ if (code !== undefined && ANSWER_USAGE_CODES.has(code)) {
92
+ return new PragmaError({ code: "INVALID_INPUT", message });
93
+ }
94
+ return PragmaError.internalError(message);
95
+ }
96
+ //# sourceMappingURL=fromTaskError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fromTaskError.js","sourceRoot":"","sources":["../../../../src/kernel/error/fromTaskError.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,4EAA4E;AAC5E,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAElD,+EAA+E;AAC/E,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C,+EAA+E;AAC/E,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAS;IACzC,yBAAyB;IACzB,0BAA0B;CAC3B,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAE9C,gFAAgF;AAChF,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,KAA0B,CAAC;QAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,aAAa,CAAC,KAAK,CAAC,KAAK,mBAAmB,CAAC;AACtD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,aAAa,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC;AACnD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,OAAO,GAAY,KAAK,CAAC;IAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,OAAO,KAAK,SAAS,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACnE,IAAI,OAAO,YAAY,WAAW;YAAE,OAAO,OAAO,CAAC;QACnD,MAAM,MAAM,GAAG,OAA0D,CAAC;QAC1E,OAAO,GAAG,MAAM,EAAE,SAAS,IAAI,MAAM,EAAE,KAAK,CAAC;IAC/C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC1C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,SAAS,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Error kernel barrel — the structured error model and its renderers.
3
+ *
4
+ * The projectors import `PragmaError` and the renderers from here; the
5
+ * recovery invariant and the serializer are exported for the seams that build
6
+ * and marshal errors.
7
+ */
8
+ export { ERROR_CODES } from "./constants.js";
9
+ export { PragmaError } from "./PragmaError.js";
10
+ export { cliRecovery } from "./recovery.js";
11
+ export { renderErrorJson, renderErrorLlm, renderErrorPlain, } from "./renderError.js";
12
+ export { serializeError } from "./serialize.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/kernel/error/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * The recovery-string invariant (D5).
3
+ *
4
+ * A `recovery.cli` hint quotes a command the installed binary answers to, so it
5
+ * must begin with {@link RECOVERY_CLI_PREFIX} — the distribution's own `name`
6
+ * plus a space. {@link cliRecovery} takes the command SUFFIX and prepends the
7
+ * prefix itself, so a hint that names the wrong binary is unwritable rather
8
+ * than merely detected. That is why there is no assertion here: an assertion
9
+ * over a string the caller composed from the prefix cannot fail, and the hints
10
+ * that were actually wrong were raw `cli:` object literals that never reached
11
+ * this function at all. `kernel/copy.test.ts` covers those, at the position.
12
+ *
13
+ * A THIRD authoring route is also legal and reached by NEITHER guard: a `cli`
14
+ * DERIVED from the program's own name at the call site. One site does this —
15
+ * the create mount (`capabilities/create/mount.ts`,
16
+ * `[...detail.chain, suggestion].join(" ")`), whose `chain[0]` is the root
17
+ * Commander program's name, `BIN_NAME` by wiring. It bypasses
18
+ * {@link cliRecovery}, and the position rule is structurally blind to it (it
19
+ * flags QUOTED literals containing the distribution's name, never a computed
20
+ * expression) — so D5 holds there by derivation, and the derivation is pinned
21
+ * where the value surfaces: `createGrammar.test.ts` COMPOSES its expected
22
+ * `cli` from {@link RECOVERY_CLI_PREFIX}, so a renamed root program reddens
23
+ * the cell naming the constant. (A separate `startsWith` assertion cannot
24
+ * pin it — behind an exact pin of the same value it has no reachable
25
+ * failing input.)
26
+ *
27
+ * `kernel/packs/schema.ts` holds a user-authored pack's `emptyRecovery.cli` to
28
+ * the same shape from the other side — it must NOT carry a prefix, because the
29
+ * consuming distribution's renderer supplies one.
30
+ */
31
+ import { RECOVERY_CLI_PREFIX } from "../../constants.js";
32
+ /**
33
+ * Build a {@link Recovery} whose `cli` command carries the distribution's own
34
+ * prefix, optionally pairing it with an MCP tool an agent can call.
35
+ *
36
+ * A recovery may need to speak to BOTH surfaces: the `cli` string guides a human,
37
+ * while `mcp` names the tool an agent invokes (an agent cannot run a shell
38
+ * command). The single human `message` is shared by both.
39
+ *
40
+ * @param command - The recovery command WITHOUT the binary name (`sources update`).
41
+ * @param message - Human-readable guidance shown alongside the command.
42
+ * @param mcp - The MCP tool (and optional params) an agent calls to recover.
43
+ * @returns A recovery hint whose `cli` names this distribution's binary.
44
+ */
45
+ export function cliRecovery(command, message, mcp) {
46
+ return {
47
+ message,
48
+ cli: `${RECOVERY_CLI_PREFIX}${command}`,
49
+ ...(mcp ? { mcp } : {}),
50
+ };
51
+ }
52
+ //# sourceMappingURL=recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../../../src/kernel/error/recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CACzB,OAAe,EACf,OAAe,EACf,GAAqB;IAErB,OAAO;QACL,OAAO;QACP,GAAG,EAAE,GAAG,mBAAmB,GAAG,OAAO,EAAE;QACvC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Render a {@link PragmaError} for each output surface.
3
+ *
4
+ * Plain text targets a human terminal (stderr), condensed Markdown targets an
5
+ * agent reading `--format llm`, and JSON emits the `{ ok: false, error }` envelope —
6
+ * the same failure shape the MCP projector returns, so agents see one contract
7
+ * whichever transport they use.
8
+ */
9
+ import { serializeError } from "./serialize.js";
10
+ /**
11
+ * Render a {@link PragmaError} as human-readable plain text for the terminal.
12
+ *
13
+ * @param error - The structured error to render.
14
+ * @returns Multi-line plain text string.
15
+ */
16
+ function renderErrorPlain(error) {
17
+ const lines = [`Error: ${error.message}`];
18
+ if (error.suggestions.length > 0) {
19
+ lines.push("", "Did you mean?");
20
+ for (const suggestion of error.suggestions) {
21
+ lines.push(` - ${suggestion}`);
22
+ }
23
+ }
24
+ if (error.filters) {
25
+ lines.push("", "Active filters:");
26
+ for (const [key, value] of Object.entries(error.filters)) {
27
+ lines.push(` ${key}: ${value}`);
28
+ }
29
+ }
30
+ if (error.validOptions && error.validOptions.length > 0) {
31
+ lines.push("", `Valid options: ${error.validOptions.join(", ")}`);
32
+ }
33
+ if (error.recovery) {
34
+ lines.push("");
35
+ // Keep the human guidance AND the runnable command — dropping the message
36
+ // when a `cli` is present loses the WHY (e.g. "Build the local store …").
37
+ lines.push(error.recovery.cli
38
+ ? `${error.recovery.message} Run \`${error.recovery.cli}\``
39
+ : error.recovery.message);
40
+ }
41
+ return lines.join("\n");
42
+ }
43
+ /**
44
+ * Render a {@link PragmaError} as condensed Markdown for agent consumption.
45
+ *
46
+ * @param error - The structured error to render.
47
+ * @returns Markdown-formatted string.
48
+ */
49
+ function renderErrorLlm(error) {
50
+ const lines = [`## Error: ${error.code}`, error.message];
51
+ if (error.suggestions.length > 0) {
52
+ lines.push(`Suggestions: ${error.suggestions.join(", ")}`);
53
+ }
54
+ if (error.filters) {
55
+ const filterParts = Object.entries(error.filters)
56
+ .map(([key, value]) => `${key}=${value}`)
57
+ .join(", ");
58
+ lines.push(`Filters: ${filterParts}`);
59
+ }
60
+ if (error.validOptions && error.validOptions.length > 0) {
61
+ lines.push(`Valid options: ${error.validOptions.join(", ")}`);
62
+ }
63
+ if (error.recovery) {
64
+ // Keep both the guidance and the runnable command (message was dropped when
65
+ // a `cli` was present).
66
+ lines.push(error.recovery.cli
67
+ ? `Recovery: ${error.recovery.message} \`${error.recovery.cli}\``
68
+ : `Recovery: ${error.recovery.message}`);
69
+ }
70
+ return lines.join("\n");
71
+ }
72
+ /**
73
+ * Render a {@link PragmaError} as the `{ ok: false, error }` JSON envelope.
74
+ *
75
+ * @param error - The structured error to render.
76
+ * @returns Serialized failure envelope, identical to the MCP error envelope.
77
+ */
78
+ function renderErrorJson(error) {
79
+ return JSON.stringify({ ok: false, error: serializeError(error) });
80
+ }
81
+ /**
82
+ * Render an error for an EXPLICITLY requested machine format, or decline.
83
+ *
84
+ * The ONE machine-format envelope decision for the usage-error surfaces —
85
+ * `handleProgramError`'s Commander parse failures (the unknown-command arm
86
+ * included), the create mount's projection usage-error writer, and
87
+ * `writeRefusal`: an explicit `--format json` renders the failure envelope,
88
+ * an explicit `--format llm` the condensed Markdown form, and anything else
89
+ * returns `undefined` so the caller keeps its raw default bytes.
90
+ * Auto-detected llm is excluded by construction — `parseGlobalFlags` leaves
91
+ * `format` at `"plain"` under auto-detection and records `autoLlm`
92
+ * separately — so an inferred output mode can never move the default
93
+ * (cross-CLI parity) bytes. Hoisted so the gate and the renderer pick exist
94
+ * ONCE instead of drifting per call site (they had already split: sites
95
+ * gated on json only vs json|llm, and `--format llm` enveloped some members
96
+ * of the usage-error class while siblings stayed raw). Deliberately NOT
97
+ * routed through here: the always-render sites with no raw arm to arbitrate
98
+ * — `renderStartupError`, bin.ts's bad-`--format` rejection,
99
+ * `handleProgramError`'s non-Commander fallthrough, and dispatch's
100
+ * `renderError` (which deliberately includes autoLlm for run errors) — each
101
+ * picks a PragmaError renderer directly.
102
+ *
103
+ * @param error - The structured error to render.
104
+ * @param format - The parsed global `--format` value.
105
+ * @returns The rendered string for `json`/`llm`; `undefined` for `plain`.
106
+ */
107
+ function renderErrorForFormat(error, format) {
108
+ if (format === "json")
109
+ return renderErrorJson(error);
110
+ if (format === "llm")
111
+ return renderErrorLlm(error);
112
+ return undefined;
113
+ }
114
+ export { renderErrorForFormat, renderErrorJson, renderErrorLlm, renderErrorPlain, };
115
+ //# sourceMappingURL=renderError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderError.js","sourceRoot":"","sources":["../../../../src/kernel/error/renderError.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Serialize a {@link PragmaError} into the covenant's error payload.
3
+ *
4
+ * The payload is the `error` field of the `{ ok: false, error }` envelope and
5
+ * is shared verbatim by the CLI (`--format json`) and MCP projectors, so both
6
+ * emit byte-identical error output. Optional fields are omitted rather than set
7
+ * to `undefined`, keeping the JSON minimal and stable.
8
+ */
9
+ /**
10
+ * Project a {@link PragmaError} onto the frozen {@link ErrorPayload} shape.
11
+ *
12
+ * @param error - The structured error to serialize.
13
+ * @returns The payload embedded under `error` in the failure envelope.
14
+ */
15
+ export function serializeError(error) {
16
+ return {
17
+ code: error.code,
18
+ message: error.message,
19
+ ...(error.suggestions.length > 0 && { suggestions: error.suggestions }),
20
+ ...(error.recovery && { recovery: error.recovery }),
21
+ ...(error.validOptions && { validOptions: error.validOptions }),
22
+ ...(error.filters && { filters: error.filters }),
23
+ };
24
+ }
25
+ //# sourceMappingURL=serialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../../src/kernel/error/serialize.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAkB;IAC/C,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QACvE,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnD,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;QAC/D,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;KACjD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Error type definitions for the pragma error system.
3
+ *
4
+ * Separated from the {@link PragmaError} class so consumers that only need the
5
+ * shapes (renderers, the MCP envelope, the exit-code mapper) can import types
6
+ * without pulling in the class or its factories.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/kernel/error/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * The kernel's own top-level declarations — the small set of facts that belong
3
+ * to no sub-domain because every sub-domain may need them.
4
+ *
5
+ * This is NOT a facade over the kernel. `kernel/` is a namespace of domains,
6
+ * each of which keeps its own barrel (`config/`, `render/`, `runtime/`,
7
+ * `packs/`, `error/`, `spec/`, `completion/`, `project/…`); a consumer wanting
8
+ * one of those imports that domain's barrel, not this one. What lives here is
9
+ * only what sits directly in `kernel/`, and the bar for putting a file there
10
+ * is high: it must be a declaration the kernel makes about itself rather than
11
+ * a step in any one pipeline.
12
+ *
13
+ * Today that is the declared vocabulary and the interactivity vocabulary. The
14
+ * latter (`interactivity.ts`) names the questions about attended streams — is
15
+ * stdout captured, may we prompt, may we color (that third one lives with the
16
+ * styler, for the dependency reason its docblock records) — which render,
17
+ * dispatch and flag parsing each used to answer with their own inline probe.
18
+ * They are different questions over different streams, and the names are what
19
+ * keeps them from being flattened into one flag.
20
+ *
21
+ * The declared vocabulary is the distribution's mapping from the roles the
22
+ * CLI knows (a prompt, a resource) onto the RDF terms that actually
23
+ * carry them in the active graph. It is parsed once at module load and read
24
+ * from the prompt capability, the MCP prompt source, and the pack index
25
+ * builder, none of which owns it and any of which would otherwise hardcode
26
+ * someone else's IRIs.
27
+ *
28
+ * The copy-gate rule table (`copy.ts`) deliberately stays off this barrel. It
29
+ * is reviewed data consumed by its own test and by nothing else at runtime;
30
+ * exporting it here would advertise a runtime API the gate does not have.
31
+ */
32
+ export { canPrompt, stdoutIsCaptured } from "./interactivity.js";
33
+ export { VOCABULARY } from "./vocabulary.js";
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kernel/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * The interactivity vocabulary — three named questions over three streams.
3
+ *
4
+ * Every one of these used to be spelled inline as a bare `process.<stream>
5
+ * .isTTY === true` at the site that needed it, in four places, and the
6
+ * spellings did not agree — because they are NOT the same question. Naming them
7
+ * is the point: the names are what stop the next reader from "simplifying"
8
+ * three probes into one flag.
9
+ *
10
+ * - {@link stdoutIsCaptured} reads **stdout**. It governs OUTPUT SHAPE: whether
11
+ * a consumer is piping the data stream somewhere (the shape an agent
12
+ * captures), which is what AUTO-INFERS the condensed `llm` default. Capture
13
+ * is the inference, not the gate: what drops the root-help wordmark is the
14
+ * resulting shape — `llm` or `json` — so an explicit `--format plain` through
15
+ * a pipe is captured and keeps the art, while `--format llm` on an attended
16
+ * terminal is not captured and drops it. Explicit format beats inference, in
17
+ * both directions.
18
+ * - {@link canPrompt} reads **stdin AND stderr** — never stdout. The step
19
+ * sequence renders to stderr and reads stdin, so `<verb> 2>/dev/null` is
20
+ * non-interactive while `<verb> | cat` is not. Gating this one on stdout
21
+ * would mount an invisible render that then blocks on stdin.
22
+ * - `canColor` (`render/style.ts`) reads **stdout** plus chalk's own color
23
+ * level, so piped, redirected and MCP output stays byte-stable even where
24
+ * `supports-color` fires off a TTY. It is the one question of the three that
25
+ * lives with the styler rather than here, because it needs `chalk` and this
26
+ * module is imported by global-flag parsing — which runs before `--version`
27
+ * answers, on a path that must load nothing it does not use. It still asks
28
+ * its stdout half through {@link stdoutIsCaptured}, so the three stay one
29
+ * vocabulary.
30
+ *
31
+ * The distinction is not academic: an agent running a mutating verb with its
32
+ * stdout captured but a terminal still attached is CAPTURED and PROMPTABLE at
33
+ * the same time. Answering either question with the other's probe would either
34
+ * hang a pipeline or refuse a human.
35
+ *
36
+ * These are the only sanctioned readers of `process.*.isTTY` outside a test.
37
+ * Each is a plain function rather than a module-load constant because a test
38
+ * assigns the streams' `isTTY` per case, and a constant would freeze the first
39
+ * value the process ever saw.
40
+ */
41
+ /**
42
+ * Whether stdout is going somewhere other than an attended terminal — piped,
43
+ * redirected, or read by a parent process.
44
+ *
45
+ * The OUTPUT-SHAPE question, and stdout's alone: it says nothing about whether
46
+ * a human is available to answer a prompt (see {@link canPrompt}).
47
+ *
48
+ * @returns True when stdout is not a TTY.
49
+ * @note Impure — reads `process.stdout.isTTY`.
50
+ */
51
+ export function stdoutIsCaptured() {
52
+ return process.stdout.isTTY !== true;
53
+ }
54
+ /**
55
+ * Whether this invocation may ask the user a question: stdin AND stderr are
56
+ * both attended terminals.
57
+ *
58
+ * THE interactivity gate (H3). One exported fact, so the kernel's interaction
59
+ * context and a mounted subtree's own decision can never disagree about what
60
+ * "a TTY" means. Deliberately blind to stdout — see the module docblock.
61
+ *
62
+ * @returns True when a prompt can be both drawn and answered.
63
+ * @note Impure — reads `process.stdin.isTTY` and `process.stderr.isTTY`.
64
+ */
65
+ export function canPrompt() {
66
+ return process.stdin.isTTY === true && process.stderr.isTTY === true;
67
+ }
68
+ //# sourceMappingURL=interactivity.js.map