@canonical/pragma-cli 0.31.0 → 0.32.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 (1064) hide show
  1. package/dist/pragma +0 -0
  2. package/package.json +27 -42
  3. package/src/bin.ts +292 -11
  4. package/src/capabilities/block/blockList.verb.ts +150 -0
  5. package/src/capabilities/block/index.ts +25 -0
  6. package/src/capabilities/block/pack.ts +155 -0
  7. package/src/capabilities/block/parity.test.ts +180 -0
  8. package/src/capabilities/block/tierChain.ts +78 -0
  9. package/src/capabilities/capabilities/capabilities.render.ts +89 -0
  10. package/src/capabilities/capabilities/capabilities.test.ts +131 -0
  11. package/src/capabilities/capabilities/capabilities.verb.ts +48 -0
  12. package/src/capabilities/capabilities/catalog.ts +144 -0
  13. package/src/capabilities/capabilities/hints.ts +221 -0
  14. package/src/capabilities/capabilities/index.ts +13 -0
  15. package/src/capabilities/capabilities/types.ts +58 -0
  16. package/src/capabilities/colophon/collectColophon.ts +68 -0
  17. package/src/capabilities/colophon/colophon.render.test.ts +87 -0
  18. package/src/capabilities/colophon/colophon.render.ts +38 -0
  19. package/src/capabilities/colophon/colophon.test.ts +241 -0
  20. package/src/capabilities/colophon/colophon.verb.ts +41 -0
  21. package/src/capabilities/colophon/index.ts +6 -0
  22. package/src/capabilities/colophon/markdownTerminal.test.ts +50 -0
  23. package/src/capabilities/colophon/markdownTerminal.ts +85 -0
  24. package/src/capabilities/colophon/pragmaColophon.ts +66 -0
  25. package/src/capabilities/colophon/types.ts +29 -0
  26. package/src/capabilities/config/collectConfigShow.ts +32 -0
  27. package/src/capabilities/config/field.render.ts +28 -0
  28. package/src/capabilities/config/field.test.ts +188 -0
  29. package/src/capabilities/config/fields.ts +152 -0
  30. package/src/capabilities/config/index.ts +6 -0
  31. package/src/capabilities/config/runField.ts +59 -0
  32. package/src/capabilities/config/runSet.ts +38 -0
  33. package/src/capabilities/config/set.test.ts +207 -0
  34. package/src/capabilities/config/set.verb.ts +70 -0
  35. package/src/capabilities/config/show.render.ts +61 -0
  36. package/src/capabilities/config/show.verb.ts +45 -0
  37. package/src/capabilities/config/types.ts +27 -0
  38. package/src/capabilities/create/byteEquality.subprocess.test.ts +88 -0
  39. package/src/capabilities/create/byteEquality.test.ts +222 -0
  40. package/src/capabilities/create/compiledCreate.subprocess.test.ts +152 -0
  41. package/src/capabilities/create/create.mcp.test.ts +139 -0
  42. package/src/capabilities/create/create.render.ts +50 -0
  43. package/src/capabilities/create/create.test.ts +403 -0
  44. package/src/capabilities/create/create.verb.ts +435 -0
  45. package/src/capabilities/create/cwdJail.test.ts +129 -0
  46. package/src/capabilities/create/generatorToVerbSpec.ts +111 -0
  47. package/src/capabilities/create/index.ts +25 -0
  48. package/src/capabilities/create/pathJail.ts +73 -0
  49. package/src/capabilities/create/pickGenerator.ts +63 -0
  50. package/src/capabilities/create/templates.embedded.generated.ts +53 -0
  51. package/src/capabilities/create/types.ts +8 -0
  52. package/src/capabilities/doctor/checks/checkConfigFile.ts +41 -0
  53. package/src/capabilities/doctor/checks/checkKeStore.ts +39 -0
  54. package/src/capabilities/doctor/checks/checkMcpCommands.ts +108 -0
  55. package/src/capabilities/doctor/checks/checkMcpConfigured.ts +61 -0
  56. package/src/capabilities/doctor/checks/checkNodeVersion.ts +25 -0
  57. package/src/capabilities/doctor/checks/checkPackageRefs.ts +73 -0
  58. package/src/capabilities/doctor/checks/checkPragmaVersion.ts +22 -0
  59. package/src/capabilities/doctor/checks/checkShellCompletions.test.ts +111 -0
  60. package/src/capabilities/doctor/checks/checkShellCompletions.ts +131 -0
  61. package/src/capabilities/doctor/checks/checkSkillsSymlinked.ts +60 -0
  62. package/src/capabilities/doctor/doctor.render.ts +116 -0
  63. package/src/capabilities/doctor/doctor.test.ts +179 -0
  64. package/src/capabilities/doctor/doctor.verb.ts +46 -0
  65. package/src/capabilities/doctor/index.ts +6 -0
  66. package/src/capabilities/doctor/runChecks.ts +76 -0
  67. package/src/capabilities/doctor/types.ts +41 -0
  68. package/src/capabilities/emptyRecovery.test.ts +112 -0
  69. package/src/capabilities/graph/index.ts +21 -0
  70. package/src/capabilities/graph/inspect.render.ts +38 -0
  71. package/src/capabilities/graph/inspect.test.ts +80 -0
  72. package/src/capabilities/graph/inspect.verb.ts +51 -0
  73. package/src/capabilities/graph/query.render.ts +77 -0
  74. package/src/capabilities/graph/query.test.ts +156 -0
  75. package/src/capabilities/graph/query.verb.ts +58 -0
  76. package/src/capabilities/graph/runQuery.ts +49 -0
  77. package/src/capabilities/index.ts +54 -0
  78. package/src/capabilities/info/collectInfo.ts +76 -0
  79. package/src/capabilities/info/index.ts +6 -0
  80. package/src/capabilities/info/info.render.ts +72 -0
  81. package/src/capabilities/info/info.test.ts +127 -0
  82. package/src/capabilities/info/info.verb.ts +46 -0
  83. package/src/capabilities/info/types.ts +42 -0
  84. package/src/capabilities/lazy.test.ts +89 -0
  85. package/src/capabilities/meta/complete.verb.ts +52 -0
  86. package/src/capabilities/meta/index.ts +15 -0
  87. package/src/capabilities/meta/mcp.verb.ts +35 -0
  88. package/src/capabilities/modifier/index.ts +15 -0
  89. package/src/capabilities/modifier/pack.ts +64 -0
  90. package/src/capabilities/ontology/index.ts +12 -0
  91. package/src/capabilities/ontology/ontology.test.ts +94 -0
  92. package/src/capabilities/ontology/queries.ts +197 -0
  93. package/src/capabilities/ontology/render.ts +87 -0
  94. package/src/capabilities/ontology/verbs.ts +170 -0
  95. package/src/capabilities/prompt/index.ts +18 -0
  96. package/src/capabilities/prompt/prompt.render.ts +70 -0
  97. package/src/capabilities/prompt/prompt.test.ts +119 -0
  98. package/src/capabilities/prompt/types.ts +30 -0
  99. package/src/capabilities/prompt/verbs.ts +93 -0
  100. package/src/capabilities/resources/index.ts +15 -0
  101. package/src/capabilities/resources/provider.ts +231 -0
  102. package/src/capabilities/resources/resources.test.ts +114 -0
  103. package/src/capabilities/roundtrip.test.ts +107 -0
  104. package/src/capabilities/setup/index.ts +6 -0
  105. package/src/capabilities/setup/operations/setupCompletions.ts +108 -0
  106. package/src/capabilities/setup/operations/setupGenerator.ts +307 -0
  107. package/src/capabilities/setup/operations/setupLsp.ts +61 -0
  108. package/src/capabilities/setup/operations/setupMcp.ts +85 -0
  109. package/src/capabilities/setup/operations/setupSkills.ts +199 -0
  110. package/src/capabilities/setup/setup.render.ts +49 -0
  111. package/src/capabilities/setup/setup.test.ts +351 -0
  112. package/src/capabilities/setup/setup.verb.ts +209 -0
  113. package/src/capabilities/setup/shell.ts +85 -0
  114. package/src/capabilities/setup/types.ts +42 -0
  115. package/src/capabilities/shared/assertExecOk.ts +106 -0
  116. package/src/capabilities/shared/packageManager.ts +62 -0
  117. package/src/capabilities/shared/registry.ts +70 -0
  118. package/src/capabilities/skill/discover.ts +178 -0
  119. package/src/capabilities/skill/index.ts +12 -0
  120. package/src/capabilities/skill/render.ts +60 -0
  121. package/src/capabilities/skill/skill.test.ts +142 -0
  122. package/src/capabilities/skill/verbs.ts +100 -0
  123. package/src/capabilities/sources/collectStatus.ts +87 -0
  124. package/src/capabilities/sources/index.ts +15 -0
  125. package/src/capabilities/sources/installSkills.ts +124 -0
  126. package/src/capabilities/sources/runUpdate.ts +407 -0
  127. package/src/capabilities/sources/sources.test.ts +642 -0
  128. package/src/capabilities/sources/status.render.ts +56 -0
  129. package/src/capabilities/sources/status.verb.ts +42 -0
  130. package/src/capabilities/sources/types.ts +51 -0
  131. package/src/capabilities/sources/update.render.ts +35 -0
  132. package/src/capabilities/sources/update.verb.ts +76 -0
  133. package/src/capabilities/standard/index.ts +18 -0
  134. package/src/capabilities/standard/pack.ts +128 -0
  135. package/src/capabilities/standard/parity.test.ts +208 -0
  136. package/src/capabilities/surface.test.ts +208 -0
  137. package/src/capabilities/tier/index.ts +19 -0
  138. package/src/capabilities/tier/lookup.render.ts +34 -0
  139. package/src/capabilities/tier/lookup.test.ts +68 -0
  140. package/src/capabilities/tier/lookup.verb.ts +44 -0
  141. package/src/capabilities/tier/pack.ts +28 -0
  142. package/src/capabilities/tier/runLookup.ts +59 -0
  143. package/src/capabilities/token/addConfig.render.ts +27 -0
  144. package/src/capabilities/token/addConfig.test.ts +62 -0
  145. package/src/capabilities/token/addConfig.verb.ts +40 -0
  146. package/src/capabilities/token/index.ts +19 -0
  147. package/src/capabilities/token/pack.ts +58 -0
  148. package/src/capabilities/token/runAddConfig.ts +95 -0
  149. package/src/capabilities/upgrade/index.ts +6 -0
  150. package/src/capabilities/upgrade/runUpgrade.ts +119 -0
  151. package/src/capabilities/upgrade/types.ts +21 -0
  152. package/src/capabilities/upgrade/upgrade.render.ts +55 -0
  153. package/src/capabilities/upgrade/upgrade.test.ts +372 -0
  154. package/src/capabilities/upgrade/upgrade.verb.ts +56 -0
  155. package/src/constants.test.ts +33 -0
  156. package/src/constants.ts +38 -70
  157. package/src/index.ts +27 -122
  158. package/src/kernel/completion/__snapshots__/emitScripts.test.ts.snap +340 -0
  159. package/src/kernel/completion/bashDrive.test.ts +73 -0
  160. package/src/kernel/completion/complete.test.ts +101 -0
  161. package/src/kernel/completion/complete.ts +77 -0
  162. package/src/kernel/completion/emitScripts.test.ts +173 -0
  163. package/src/kernel/completion/emitScripts.ts +122 -0
  164. package/src/kernel/completion/entitySource.test.ts +198 -0
  165. package/src/kernel/completion/entitySource.ts +269 -0
  166. package/src/kernel/completion/index.ts +42 -0
  167. package/src/kernel/completion/model.test.ts +405 -0
  168. package/src/kernel/completion/model.ts +259 -0
  169. package/src/kernel/completion/parse.test.ts +338 -0
  170. package/src/kernel/completion/parse.ts +294 -0
  171. package/src/kernel/completion/rank.test.ts +100 -0
  172. package/src/kernel/completion/rank.ts +118 -0
  173. package/src/kernel/completion/resolve.test.ts +204 -0
  174. package/src/kernel/completion/resolve.ts +133 -0
  175. package/src/kernel/completion/safety.test.ts +374 -0
  176. package/src/kernel/completion/templates/bash.ts +249 -0
  177. package/src/kernel/completion/templates/fish.ts +245 -0
  178. package/src/kernel/completion/templates/shared.ts +134 -0
  179. package/src/kernel/completion/templates/zsh.ts +246 -0
  180. package/src/kernel/completion/types.ts +153 -0
  181. package/src/kernel/config/__snapshots__/firstRun.test.ts.snap +11 -0
  182. package/src/kernel/config/defaults.ts +28 -0
  183. package/src/kernel/config/evaluateProjectConfig.ts +119 -0
  184. package/src/kernel/config/findProjectConfig.ts +45 -0
  185. package/src/kernel/config/firstRun.test.ts +60 -0
  186. package/src/kernel/config/firstRun.ts +91 -0
  187. package/src/kernel/config/globalConfig.ts +94 -0
  188. package/src/kernel/config/index.ts +35 -0
  189. package/src/kernel/config/paths.ts +39 -0
  190. package/src/kernel/config/readConfig.test.ts +245 -0
  191. package/src/kernel/config/readConfig.ts +94 -0
  192. package/src/kernel/config/schema.ts +56 -0
  193. package/src/kernel/config/types.ts +106 -0
  194. package/src/kernel/config/writeConfigField.ts +82 -0
  195. package/src/kernel/error/PragmaError.test.ts +119 -0
  196. package/src/kernel/error/PragmaError.ts +182 -0
  197. package/src/kernel/error/constants.ts +38 -0
  198. package/src/kernel/error/fromTaskError.test.ts +83 -0
  199. package/src/kernel/error/fromTaskError.ts +80 -0
  200. package/src/kernel/error/index.ts +23 -0
  201. package/src/kernel/error/recovery.test.ts +60 -0
  202. package/src/kernel/error/recovery.ts +49 -0
  203. package/src/kernel/error/renderError.ts +101 -0
  204. package/src/kernel/error/serialize.ts +28 -0
  205. package/src/kernel/error/types.ts +62 -0
  206. package/src/kernel/packs/collect.test.ts +138 -0
  207. package/src/kernel/packs/collect.ts +108 -0
  208. package/src/kernel/packs/compile.test.ts +229 -0
  209. package/src/kernel/packs/compile.ts +315 -0
  210. package/src/kernel/packs/disclosure.test.ts +200 -0
  211. package/src/kernel/packs/disclosure.ts +98 -0
  212. package/src/kernel/packs/glob.ts +39 -0
  213. package/src/kernel/packs/graphql/buildLookupDocument.ts +397 -0
  214. package/src/kernel/packs/graphql/fetchGraphqlLookup.ts +217 -0
  215. package/src/kernel/packs/graphql/nameMap.ts +67 -0
  216. package/src/kernel/packs/graphqlSource.test.ts +383 -0
  217. package/src/kernel/packs/iri.ts +78 -0
  218. package/src/kernel/packs/renderPack.ts +196 -0
  219. package/src/kernel/packs/resolveEntity.ts +232 -0
  220. package/src/kernel/packs/runBodies.ts +157 -0
  221. package/src/kernel/packs/sample.ts +60 -0
  222. package/src/kernel/packs/schema.ts +328 -0
  223. package/src/kernel/packs/sparql/applyFilters.ts +83 -0
  224. package/src/kernel/packs/sparql/applySearch.ts +33 -0
  225. package/src/kernel/packs/sparql/buildLookupQuery.ts +180 -0
  226. package/src/kernel/packs/sparql/escape.ts +22 -0
  227. package/src/kernel/packs/sparql/runSelect.test.ts +80 -0
  228. package/src/kernel/packs/sparql/runSelect.ts +84 -0
  229. package/src/kernel/packs/toolDescription.test.ts +81 -0
  230. package/src/kernel/packs/types.ts +337 -0
  231. package/src/kernel/packs/uniqueness.ts +35 -0
  232. package/src/kernel/project/cli/buildProgram.test.ts +387 -0
  233. package/src/kernel/project/cli/buildProgram.ts +280 -0
  234. package/src/kernel/project/cli/dispatch.test.ts +288 -0
  235. package/src/kernel/project/cli/dispatch.ts +334 -0
  236. package/src/kernel/project/cli/exitCodes.test.ts +59 -0
  237. package/src/kernel/project/cli/exitCodes.ts +68 -0
  238. package/src/kernel/project/cli/globalFlags.test.ts +99 -0
  239. package/src/kernel/project/cli/globalFlags.ts +149 -0
  240. package/src/kernel/project/cli/helpFormat.ts +58 -0
  241. package/src/kernel/project/cli/index.ts +21 -0
  242. package/src/kernel/project/cli/interactionSeam.test.ts +99 -0
  243. package/src/kernel/project/cli/rootHelp.ts +218 -0
  244. package/src/kernel/project/cli/suggest.test.ts +54 -0
  245. package/src/kernel/project/cli/suggest.ts +67 -0
  246. package/src/kernel/project/cli/suggestNames.ts +122 -0
  247. package/src/kernel/project/cli/verbHelp.test.ts +138 -0
  248. package/src/kernel/project/cli/verbHelp.ts +144 -0
  249. package/src/kernel/project/mcp/buildServer.ts +70 -0
  250. package/src/kernel/project/mcp/envelope.ts +44 -0
  251. package/src/kernel/project/mcp/index.ts +8 -0
  252. package/src/kernel/project/mcp/instructions.ts +48 -0
  253. package/src/kernel/project/mcp/parity.test.ts +72 -0
  254. package/src/kernel/project/mcp/prompts/prompts.test.ts +96 -0
  255. package/src/kernel/project/mcp/prompts/provider.ts +74 -0
  256. package/src/kernel/project/mcp/prompts/source.ts +194 -0
  257. package/src/kernel/project/mcp/registerVerb.test.ts +238 -0
  258. package/src/kernel/project/mcp/registerVerb.ts +296 -0
  259. package/src/kernel/project/mcp/serve.ts +34 -0
  260. package/src/kernel/project/mcp/toolDescriptions.test.ts +80 -0
  261. package/src/kernel/render/__snapshots__/renderers.test.ts.snap +127 -0
  262. package/src/kernel/render/compactUri.ts +25 -0
  263. package/src/kernel/render/contracts.ts +72 -0
  264. package/src/kernel/render/disclosure.ts +44 -0
  265. package/src/kernel/render/envelope.ts +50 -0
  266. package/src/kernel/render/formatters.ts +30 -0
  267. package/src/kernel/render/index.ts +30 -0
  268. package/src/kernel/render/prefixes.ts +21 -0
  269. package/src/kernel/render/renderers.test.ts +171 -0
  270. package/src/kernel/render/renderers.ts +429 -0
  271. package/src/kernel/render/writeStdout.test.ts +43 -0
  272. package/src/kernel/render/writeStdout.ts +49 -0
  273. package/src/kernel/runtime/boot.test.ts +69 -0
  274. package/src/kernel/runtime/boot.ts +59 -0
  275. package/src/kernel/runtime/facade.test.ts +125 -0
  276. package/src/kernel/runtime/facade.ts +47 -0
  277. package/src/kernel/runtime/graphpack/build.ts +148 -0
  278. package/src/kernel/runtime/graphpack/buildIndex.ts +229 -0
  279. package/src/kernel/runtime/graphpack/embedded/pack.generated.ts +8 -0
  280. package/src/kernel/runtime/graphpack/embedded/pack.index.generated.ts +4 -0
  281. package/src/kernel/runtime/graphpack/embedded/sample.ttl +39 -0
  282. package/src/kernel/runtime/graphpack/embedded.ts +70 -0
  283. package/src/kernel/runtime/graphpack/graphpack.test.ts +153 -0
  284. package/src/kernel/runtime/graphpack/hash.ts +46 -0
  285. package/src/kernel/runtime/graphpack/index.ts +21 -0
  286. package/src/kernel/runtime/graphpack/manifest.ts +55 -0
  287. package/src/kernel/runtime/graphpack/read.ts +102 -0
  288. package/src/kernel/runtime/graphpack/types.ts +111 -0
  289. package/src/kernel/runtime/index.ts +15 -0
  290. package/src/kernel/runtime/loadSession.ts +56 -0
  291. package/src/kernel/runtime/lock.ts +90 -0
  292. package/src/kernel/runtime/paths.ts +37 -0
  293. package/src/kernel/runtime/probe.test.ts +16 -0
  294. package/src/kernel/runtime/probe.ts +39 -0
  295. package/src/kernel/runtime/readEntity.ts +83 -0
  296. package/src/kernel/runtime/refs/gitOps.ts +88 -0
  297. package/src/kernel/runtime/refs/parseRef.test.ts +34 -0
  298. package/src/kernel/runtime/refs/parseRef.ts +103 -0
  299. package/src/kernel/runtime/refs/resolve.ts +320 -0
  300. package/src/kernel/runtime/resolveSources.test.ts +154 -0
  301. package/src/kernel/runtime/resolveSources.ts +66 -0
  302. package/src/kernel/runtime/store.test.ts +94 -0
  303. package/src/kernel/runtime/store.ts +90 -0
  304. package/src/kernel/runtime/storeless.test.ts +86 -0
  305. package/src/kernel/runtime/types.ts +210 -0
  306. package/src/kernel/runtime/wasmEmbed.test.ts +142 -0
  307. package/src/kernel/spec/asVerb.ts +23 -0
  308. package/src/kernel/spec/emitSurface.test.ts +65 -0
  309. package/src/kernel/spec/emitSurface.ts +223 -0
  310. package/src/kernel/spec/index.ts +34 -0
  311. package/src/kernel/spec/surfaceConformance.test.ts +94 -0
  312. package/src/kernel/spec/surfaceConformance.ts +135 -0
  313. package/src/kernel/spec/types.ts +233 -0
  314. package/src/kernel/spec/validate.test.ts +81 -0
  315. package/src/kernel/spec/validate.ts +125 -0
  316. package/src/testing/PARITY_GAPS.test.ts +32 -0
  317. package/src/testing/PARITY_GAPS.ts +179 -0
  318. package/src/testing/behavioral/README.md +164 -0
  319. package/src/testing/behavioral/agentSession.mcp.test.ts +160 -0
  320. package/src/testing/behavioral/autoLlm.e2e.test.ts +44 -0
  321. package/src/testing/behavioral/completion.test.ts +132 -0
  322. package/src/testing/behavioral/disclosure.test.ts +103 -0
  323. package/src/testing/behavioral/errorMatrix.mcp.test.ts +120 -0
  324. package/src/testing/behavioral/errorMatrix.storeless.test.ts +123 -0
  325. package/src/testing/behavioral/exitCodes.e2e.test.ts +53 -0
  326. package/src/testing/behavioral/firstRun.e2e.test.ts +40 -0
  327. package/src/testing/behavioral/harness.foundation.test.ts +136 -0
  328. package/src/testing/behavioral/journeys.cli.test.ts +129 -0
  329. package/src/testing/behavioral/liveReadSurface.ts +80 -0
  330. package/src/testing/behavioral/mcpServe.e2e.test.ts +21 -0
  331. package/src/testing/behavioral/mcpSurface.test.ts +139 -0
  332. package/src/testing/behavioral/parity.test.ts +224 -0
  333. package/src/testing/behavioral/rootCli.e2e.test.ts +62 -0
  334. package/src/testing/eval/__snapshots__/eval.test.ts.snap +201 -0
  335. package/src/testing/eval/cases/assembly.ts +195 -0
  336. package/src/testing/eval/cases/effectful.ts +245 -0
  337. package/src/testing/eval/cases/readNouns.ts +232 -0
  338. package/src/testing/eval/cases/stable.ts +163 -0
  339. package/src/testing/eval/eval.test.ts +74 -0
  340. package/src/testing/eval/harness.ts +91 -0
  341. package/src/testing/eval/report.ts +58 -0
  342. package/src/testing/fixtures/blockGraph.ts +112 -0
  343. package/src/testing/fixtures/completionFixture.ts +239 -0
  344. package/src/testing/fixtures/fixtureCapability.ts +175 -0
  345. package/src/testing/fixtures/graph/canonical.ts +184 -0
  346. package/src/testing/fixtures/packs/recipe.ts +78 -0
  347. package/src/testing/helpers/fixtureGraph.ts +148 -0
  348. package/src/testing/helpers/golden.ts +45 -0
  349. package/src/testing/helpers/packRuntime.ts +118 -0
  350. package/src/testing/helpers/parity.ts +86 -0
  351. package/src/testing/helpers/projectCli.ts +35 -0
  352. package/src/testing/helpers/projectMcp.ts +145 -0
  353. package/src/testing/helpers/runCli.ts +128 -0
  354. package/src/testing/perf/budgets.test.ts +164 -0
  355. package/src/testing/perf/budgets.ts +37 -0
  356. package/src/testing/perf/globalSetup.ts +30 -0
  357. package/src/testing/perf/measure.ts +97 -0
  358. package/src/testing/setupXdgIsolation.ts +13 -12
  359. package/src/types.ts +42 -0
  360. package/README.md +0 -458
  361. package/src/bin.test.ts +0 -54
  362. package/src/compile-validation.runner.ts +0 -137
  363. package/src/compile-validation.ts +0 -191
  364. package/src/completions/computeSocketPath.test.ts +0 -26
  365. package/src/completions/computeSocketPath.ts +0 -16
  366. package/src/completions/constants.ts +0 -25
  367. package/src/completions/handleQuery.test.ts +0 -125
  368. package/src/completions/handleQuery.ts +0 -49
  369. package/src/completions/index.ts +0 -14
  370. package/src/completions/queryCompletions.test.ts +0 -105
  371. package/src/completions/queryCompletions.ts +0 -75
  372. package/src/completions/querySocket.test.ts +0 -101
  373. package/src/completions/querySocket.ts +0 -71
  374. package/src/completions/startCompletionsServer.test.ts +0 -74
  375. package/src/completions/startCompletionsServer.ts +0 -75
  376. package/src/completions/startCompletionsServer.unit.test.ts +0 -131
  377. package/src/completions/waitForSocket.test.ts +0 -27
  378. package/src/completions/waitForSocket.ts +0 -27
  379. package/src/config/configExists.ts +0 -14
  380. package/src/config/defaultConfig.test.ts +0 -33
  381. package/src/config/defaultConfig.ts +0 -59
  382. package/src/config/defaults.json +0 -17
  383. package/src/config/findProjectConfigPath.test.ts +0 -53
  384. package/src/config/findProjectConfigPath.ts +0 -36
  385. package/src/config/index.ts +0 -21
  386. package/src/config/mergeConfigFileUpdate.ts +0 -58
  387. package/src/config/parseConfigValues.ts +0 -217
  388. package/src/config/readConfig.test.ts +0 -395
  389. package/src/config/readConfig.ts +0 -21
  390. package/src/config/readConfigLayers.test.ts +0 -109
  391. package/src/config/readConfigLayers.ts +0 -118
  392. package/src/config/resolveConfigPath.test.ts +0 -20
  393. package/src/config/resolveConfigPath.ts +0 -11
  394. package/src/config/resolveGlobalConfigPath.ts +0 -13
  395. package/src/config/resolveWriteConfigPath.test.ts +0 -53
  396. package/src/config/resolveWriteConfigPath.ts +0 -31
  397. package/src/config/types.ts +0 -128
  398. package/src/config/writeConfig.ts +0 -37
  399. package/src/domains/block/blockConfig.ts +0 -97
  400. package/src/domains/block/commands/index.ts +0 -5
  401. package/src/domains/block/commands/list.test.ts +0 -111
  402. package/src/domains/block/commands/list.ts +0 -11
  403. package/src/domains/block/commands/lookup.test.ts +0 -187
  404. package/src/domains/block/commands/lookup.ts +0 -14
  405. package/src/domains/block/commands/sample.ts +0 -56
  406. package/src/domains/block/formatters/index.ts +0 -5
  407. package/src/domains/block/formatters/list.test.ts +0 -107
  408. package/src/domains/block/formatters/list.ts +0 -50
  409. package/src/domains/block/formatters/lookup.test.ts +0 -318
  410. package/src/domains/block/formatters/lookup.ts +0 -149
  411. package/src/domains/block/formatters/sample.ts +0 -21
  412. package/src/domains/block/formatters/types.ts +0 -16
  413. package/src/domains/block/helpers/index.ts +0 -4
  414. package/src/domains/block/helpers/resolveAspects.test.ts +0 -64
  415. package/src/domains/block/helpers/resolveAspects.ts +0 -35
  416. package/src/domains/block/index.ts +0 -25
  417. package/src/domains/block/mcp/index.ts +0 -2
  418. package/src/domains/block/mcp/specs.ts +0 -67
  419. package/src/domains/block/operations/index.ts +0 -5
  420. package/src/domains/block/operations/list.test.ts +0 -80
  421. package/src/domains/block/operations/list.ts +0 -72
  422. package/src/domains/block/operations/lookup.test.ts +0 -129
  423. package/src/domains/block/operations/lookup.ts +0 -446
  424. package/src/domains/block/operations/sample.ts +0 -41
  425. package/src/domains/block/orchestration/blockEmptyError.test.ts +0 -26
  426. package/src/domains/block/orchestration/blockEmptyError.ts +0 -19
  427. package/src/domains/block/orchestration/buildBlockFilters.ts +0 -12
  428. package/src/domains/block/orchestration/enrichBlocks.ts +0 -44
  429. package/src/domains/block/orchestration/index.ts +0 -5
  430. package/src/domains/block/orchestration/resolveBlockList.ts +0 -39
  431. package/src/domains/block/orchestration/resolveBlockLookup.ts +0 -35
  432. package/src/domains/block/stories.test.ts +0 -28
  433. package/src/domains/block/stories.ts +0 -260
  434. package/src/domains/block/types.ts +0 -30
  435. package/src/domains/config/commands/channel.test.ts +0 -128
  436. package/src/domains/config/commands/channel.ts +0 -99
  437. package/src/domains/config/commands/configScope.ts +0 -46
  438. package/src/domains/config/commands/framework.test.ts +0 -119
  439. package/src/domains/config/commands/framework.ts +0 -103
  440. package/src/domains/config/commands/index.ts +0 -6
  441. package/src/domains/config/commands/show.test.ts +0 -61
  442. package/src/domains/config/commands/show.ts +0 -11
  443. package/src/domains/config/commands/tier.test.ts +0 -102
  444. package/src/domains/config/commands/tier.ts +0 -97
  445. package/src/domains/config/commands/trace.test.ts +0 -165
  446. package/src/domains/config/commands/trace.ts +0 -83
  447. package/src/domains/config/formatters/channel.test.ts +0 -70
  448. package/src/domains/config/formatters/channel.ts +0 -37
  449. package/src/domains/config/formatters/framework.ts +0 -37
  450. package/src/domains/config/formatters/index.ts +0 -6
  451. package/src/domains/config/formatters/show.test.ts +0 -153
  452. package/src/domains/config/formatters/show.ts +0 -89
  453. package/src/domains/config/formatters/tier.test.ts +0 -86
  454. package/src/domains/config/formatters/tier.ts +0 -48
  455. package/src/domains/config/formatters/trace.ts +0 -28
  456. package/src/domains/config/index.ts +0 -36
  457. package/src/domains/config/mcp/index.ts +0 -2
  458. package/src/domains/config/mcp/specs.ts +0 -100
  459. package/src/domains/config/operations/index.ts +0 -6
  460. package/src/domains/config/operations/show.test.ts +0 -78
  461. package/src/domains/config/operations/show.ts +0 -48
  462. package/src/domains/config/operations/types.ts +0 -20
  463. package/src/domains/config/operations/validateChannel.test.ts +0 -36
  464. package/src/domains/config/operations/validateChannel.ts +0 -24
  465. package/src/domains/config/operations/validateFramework.ts +0 -24
  466. package/src/domains/config/operations/validateTier.test.ts +0 -65
  467. package/src/domains/config/operations/validateTier.ts +0 -43
  468. package/src/domains/config/stories.ts +0 -42
  469. package/src/domains/config/tasks/index.ts +0 -6
  470. package/src/domains/config/tasks/setChannel.ts +0 -21
  471. package/src/domains/config/tasks/setFramework.ts +0 -21
  472. package/src/domains/config/tasks/setTier.ts +0 -20
  473. package/src/domains/config/tasks/setTrace.ts +0 -20
  474. package/src/domains/config/tasks/writeConfigField.ts +0 -41
  475. package/src/domains/create/generatorPack/bundled.ts +0 -49
  476. package/src/domains/create/generatorPack/compileGeneratorPack.test.ts +0 -159
  477. package/src/domains/create/generatorPack/compileGeneratorPack.ts +0 -312
  478. package/src/domains/create/index.ts +0 -21
  479. package/src/domains/create/mcp/index.ts +0 -2
  480. package/src/domains/create/mcp/specs.ts +0 -13
  481. package/src/domains/create/renderGeneratorUi.test.ts +0 -103
  482. package/src/domains/create/renderGeneratorUi.ts +0 -65
  483. package/src/domains/doctor/commands/doctor.test.ts +0 -75
  484. package/src/domains/doctor/commands/doctor.ts +0 -43
  485. package/src/domains/doctor/commands/index.ts +0 -2
  486. package/src/domains/doctor/formatters/doctor.test.ts +0 -165
  487. package/src/domains/doctor/formatters/doctor.ts +0 -136
  488. package/src/domains/doctor/formatters/index.ts +0 -2
  489. package/src/domains/doctor/index.ts +0 -9
  490. package/src/domains/doctor/mcp/index.ts +0 -2
  491. package/src/domains/doctor/mcp/specs.ts +0 -41
  492. package/src/domains/doctor/operations/checks/checkConfigFile.ts +0 -42
  493. package/src/domains/doctor/operations/checks/checkKeStore.ts +0 -38
  494. package/src/domains/doctor/operations/checks/checkMcpCommands.ts +0 -133
  495. package/src/domains/doctor/operations/checks/checkMcpConfigured.ts +0 -65
  496. package/src/domains/doctor/operations/checks/checkNodeVersion.ts +0 -25
  497. package/src/domains/doctor/operations/checks/checkPackageRefs.ts +0 -76
  498. package/src/domains/doctor/operations/checks/checkPragmaVersion.ts +0 -20
  499. package/src/domains/doctor/operations/checks/checkShellCompletions.ts +0 -42
  500. package/src/domains/doctor/operations/checks/checkSkillsSymlinked.ts +0 -64
  501. package/src/domains/doctor/operations/checks/index.ts +0 -10
  502. package/src/domains/doctor/operations/checks.test.ts +0 -307
  503. package/src/domains/doctor/operations/index.ts +0 -3
  504. package/src/domains/doctor/operations/runChecks.test.ts +0 -176
  505. package/src/domains/doctor/operations/runChecks.ts +0 -78
  506. package/src/domains/doctor/operations/types.ts +0 -42
  507. package/src/domains/graph/commands/index.ts +0 -4
  508. package/src/domains/graph/commands/inspect.test.ts +0 -94
  509. package/src/domains/graph/commands/inspect.ts +0 -63
  510. package/src/domains/graph/commands/query.test.ts +0 -94
  511. package/src/domains/graph/commands/query.ts +0 -60
  512. package/src/domains/graph/formatters/index.ts +0 -4
  513. package/src/domains/graph/formatters/inspect.ts +0 -50
  514. package/src/domains/graph/formatters/query.test.ts +0 -87
  515. package/src/domains/graph/formatters/query.ts +0 -74
  516. package/src/domains/graph/helpers/index.ts +0 -3
  517. package/src/domains/graph/helpers/resolveUri.test.ts +0 -50
  518. package/src/domains/graph/helpers/resolveUri.ts +0 -77
  519. package/src/domains/graph/index.ts +0 -22
  520. package/src/domains/graph/mcp/index.ts +0 -2
  521. package/src/domains/graph/mcp/specs.ts +0 -82
  522. package/src/domains/graph/operations/executeQuery.test.ts +0 -68
  523. package/src/domains/graph/operations/executeQuery.ts +0 -32
  524. package/src/domains/graph/operations/index.ts +0 -4
  525. package/src/domains/graph/operations/inspectUri.test.ts +0 -101
  526. package/src/domains/graph/operations/inspectUri.ts +0 -64
  527. package/src/domains/graphql/commands/build.test.ts +0 -196
  528. package/src/domains/graphql/commands/build.ts +0 -117
  529. package/src/domains/graphql/commands/check.test.ts +0 -141
  530. package/src/domains/graphql/commands/check.ts +0 -81
  531. package/src/domains/graphql/commands/index.ts +0 -5
  532. package/src/domains/graphql/commands/serve.test.ts +0 -46
  533. package/src/domains/graphql/commands/serve.ts +0 -141
  534. package/src/domains/graphql/constants.ts +0 -10
  535. package/src/domains/graphql/formatters/index.ts +0 -3
  536. package/src/domains/graphql/formatters/report.ts +0 -78
  537. package/src/domains/graphql/helpers/gatherSources.test.ts +0 -92
  538. package/src/domains/graphql/helpers/gatherSources.ts +0 -58
  539. package/src/domains/graphql/helpers/index.ts +0 -6
  540. package/src/domains/graphql/helpers/parsePrefixes.test.ts +0 -44
  541. package/src/domains/graphql/helpers/parsePrefixes.ts +0 -38
  542. package/src/domains/graphql/helpers/resolveSourceFiles.test.ts +0 -65
  543. package/src/domains/graphql/helpers/resolveSourceFiles.ts +0 -66
  544. package/src/domains/graphql/helpers/routeGraphql.test.ts +0 -43
  545. package/src/domains/graphql/helpers/routeGraphql.ts +0 -28
  546. package/src/domains/graphql/index.ts +0 -24
  547. package/src/domains/graphql/operations/compileSchema.test.ts +0 -95
  548. package/src/domains/graphql/operations/compileSchema.ts +0 -107
  549. package/src/domains/graphql/operations/createSchemaServer.test.ts +0 -50
  550. package/src/domains/graphql/operations/createSchemaServer.ts +0 -75
  551. package/src/domains/graphql/operations/ensureSchemaArtifact.test.ts +0 -167
  552. package/src/domains/graphql/operations/ensureSchemaArtifact.ts +0 -178
  553. package/src/domains/graphql/operations/index.ts +0 -17
  554. package/src/domains/graphql/types.ts +0 -29
  555. package/src/domains/info/commands/index.ts +0 -4
  556. package/src/domains/info/commands/info.test.ts +0 -88
  557. package/src/domains/info/commands/info.ts +0 -47
  558. package/src/domains/info/commands/upgrade.test.ts +0 -183
  559. package/src/domains/info/commands/upgrade.ts +0 -153
  560. package/src/domains/info/constants.test.ts +0 -22
  561. package/src/domains/info/constants.ts +0 -15
  562. package/src/domains/info/formatters/index.ts +0 -8
  563. package/src/domains/info/formatters/info.test.ts +0 -207
  564. package/src/domains/info/formatters/info.ts +0 -131
  565. package/src/domains/info/formatters/upgrade.test.ts +0 -136
  566. package/src/domains/info/formatters/upgrade.ts +0 -70
  567. package/src/domains/info/index.ts +0 -9
  568. package/src/domains/info/mcp/index.ts +0 -2
  569. package/src/domains/info/mcp/specs.ts +0 -65
  570. package/src/domains/info/operations/checkRegistryVersion.test.ts +0 -124
  571. package/src/domains/info/operations/checkRegistryVersion.ts +0 -45
  572. package/src/domains/info/operations/collectEntityCounts.test.ts +0 -156
  573. package/src/domains/info/operations/collectEntityCounts.ts +0 -123
  574. package/src/domains/info/operations/collectInfo.test.ts +0 -122
  575. package/src/domains/info/operations/collectInfo.ts +0 -94
  576. package/src/domains/info/operations/collectStoreSummary.test.ts +0 -61
  577. package/src/domains/info/operations/collectStoreSummary.ts +0 -42
  578. package/src/domains/info/operations/index.ts +0 -6
  579. package/src/domains/info/types.test-d.ts +0 -35
  580. package/src/domains/info/types.ts +0 -67
  581. package/src/domains/llm/capabilities.test.ts +0 -111
  582. package/src/domains/llm/commands/capabilities.ts +0 -37
  583. package/src/domains/llm/commands/index.ts +0 -4
  584. package/src/domains/llm/commands/llm.ts +0 -41
  585. package/src/domains/llm/data/commandReference.ts +0 -106
  586. package/src/domains/llm/data/decisionTrees.ts +0 -55
  587. package/src/domains/llm/data/index.ts +0 -6
  588. package/src/domains/llm/data/toolCatalog.ts +0 -221
  589. package/src/domains/llm/formatters/capabilities.ts +0 -50
  590. package/src/domains/llm/formatters/index.ts +0 -4
  591. package/src/domains/llm/formatters/orientation.ts +0 -57
  592. package/src/domains/llm/index.ts +0 -9
  593. package/src/domains/llm/llmCommand.test.ts +0 -101
  594. package/src/domains/llm/mcp/index.ts +0 -2
  595. package/src/domains/llm/mcp/specs.ts +0 -93
  596. package/src/domains/llm/operations/collectContext.test.ts +0 -64
  597. package/src/domains/llm/operations/collectContext.ts +0 -37
  598. package/src/domains/llm/operations/index.ts +0 -3
  599. package/src/domains/llm/types.ts +0 -72
  600. package/src/domains/modifier/commands/index.ts +0 -5
  601. package/src/domains/modifier/commands/list.test.ts +0 -57
  602. package/src/domains/modifier/commands/list.ts +0 -9
  603. package/src/domains/modifier/commands/lookup.test.ts +0 -91
  604. package/src/domains/modifier/commands/lookup.ts +0 -14
  605. package/src/domains/modifier/commands/sample.ts +0 -54
  606. package/src/domains/modifier/formatters/index.ts +0 -8
  607. package/src/domains/modifier/formatters/list.test.ts +0 -38
  608. package/src/domains/modifier/formatters/list.ts +0 -22
  609. package/src/domains/modifier/formatters/lookup.test.ts +0 -33
  610. package/src/domains/modifier/formatters/lookup.ts +0 -50
  611. package/src/domains/modifier/formatters/sample.ts +0 -15
  612. package/src/domains/modifier/index.ts +0 -27
  613. package/src/domains/modifier/mcp/index.ts +0 -2
  614. package/src/domains/modifier/mcp/specs.ts +0 -65
  615. package/src/domains/modifier/modifierConfig.ts +0 -36
  616. package/src/domains/modifier/operations/index.ts +0 -5
  617. package/src/domains/modifier/operations/list.test.ts +0 -39
  618. package/src/domains/modifier/operations/list.ts +0 -41
  619. package/src/domains/modifier/operations/lookup.test.ts +0 -37
  620. package/src/domains/modifier/operations/lookup.ts +0 -69
  621. package/src/domains/modifier/operations/sample.ts +0 -32
  622. package/src/domains/modifier/orchestration/index.ts +0 -3
  623. package/src/domains/modifier/orchestration/modifierEmptyError.test.ts +0 -26
  624. package/src/domains/modifier/orchestration/modifierEmptyError.ts +0 -15
  625. package/src/domains/modifier/orchestration/resolveModifierList.ts +0 -16
  626. package/src/domains/modifier/orchestration/resolveModifierLookup.ts +0 -33
  627. package/src/domains/modifier/stories.test.ts +0 -20
  628. package/src/domains/modifier/stories.ts +0 -86
  629. package/src/domains/modifier/types.ts +0 -5
  630. package/src/domains/ontology/commands/index.ts +0 -4
  631. package/src/domains/ontology/commands/list.test.ts +0 -84
  632. package/src/domains/ontology/commands/list.ts +0 -11
  633. package/src/domains/ontology/commands/show.test.ts +0 -179
  634. package/src/domains/ontology/commands/show.ts +0 -14
  635. package/src/domains/ontology/formatters/index.ts +0 -5
  636. package/src/domains/ontology/formatters/list.ts +0 -64
  637. package/src/domains/ontology/formatters/show.ts +0 -396
  638. package/src/domains/ontology/helpers/buildClassTree.ts +0 -89
  639. package/src/domains/ontology/helpers/completeClassNames.ts +0 -43
  640. package/src/domains/ontology/helpers/expandOntologyIris.ts +0 -79
  641. package/src/domains/ontology/helpers/findNamespace.ts +0 -23
  642. package/src/domains/ontology/helpers/index.ts +0 -21
  643. package/src/domains/ontology/helpers/queryClasses.ts +0 -66
  644. package/src/domains/ontology/helpers/queryProperties.ts +0 -90
  645. package/src/domains/ontology/helpers/queryTboxFacts.ts +0 -160
  646. package/src/domains/ontology/helpers/resolvePrefix.ts +0 -45
  647. package/src/domains/ontology/index.ts +0 -26
  648. package/src/domains/ontology/mcp/index.ts +0 -2
  649. package/src/domains/ontology/mcp/specs.ts +0 -16
  650. package/src/domains/ontology/operations/index.ts +0 -5
  651. package/src/domains/ontology/operations/listOntologies.test.ts +0 -122
  652. package/src/domains/ontology/operations/listOntologies.ts +0 -197
  653. package/src/domains/ontology/operations/showOntology.test.ts +0 -184
  654. package/src/domains/ontology/operations/showOntology.ts +0 -323
  655. package/src/domains/ontology/operations/showOntologyRaw.test.ts +0 -41
  656. package/src/domains/ontology/operations/showOntologyRaw.ts +0 -50
  657. package/src/domains/ontology/stories.test.ts +0 -36
  658. package/src/domains/ontology/stories.ts +0 -153
  659. package/src/domains/refs/commands/updateRefs.ts +0 -52
  660. package/src/domains/refs/formatters/updateRefs.ts +0 -27
  661. package/src/domains/refs/index.ts +0 -27
  662. package/src/domains/refs/operations/gitOps.test.ts +0 -155
  663. package/src/domains/refs/operations/gitOps.ts +0 -92
  664. package/src/domains/refs/operations/index.ts +0 -10
  665. package/src/domains/refs/operations/parseRef.test.ts +0 -157
  666. package/src/domains/refs/operations/parseRef.ts +0 -114
  667. package/src/domains/refs/operations/paths.test.ts +0 -98
  668. package/src/domains/refs/operations/paths.ts +0 -91
  669. package/src/domains/refs/operations/readGlobalRefs.test.ts +0 -63
  670. package/src/domains/refs/operations/readGlobalRefs.ts +0 -37
  671. package/src/domains/refs/operations/updateRefs.test.ts +0 -167
  672. package/src/domains/refs/operations/updateRefs.ts +0 -180
  673. package/src/domains/setup/commands/all.ts +0 -58
  674. package/src/domains/setup/commands/completions.ts +0 -85
  675. package/src/domains/setup/commands/entrypoints.test.ts +0 -170
  676. package/src/domains/setup/commands/index.ts +0 -7
  677. package/src/domains/setup/commands/lsp.ts +0 -49
  678. package/src/domains/setup/commands/mcp.ts +0 -119
  679. package/src/domains/setup/commands/setup.ts +0 -70
  680. package/src/domains/setup/commands/skills.test.ts +0 -68
  681. package/src/domains/setup/commands/skills.ts +0 -110
  682. package/src/domains/setup/formatters/index.ts +0 -2
  683. package/src/domains/setup/formatters/skills.test.ts +0 -103
  684. package/src/domains/setup/formatters/skills.ts +0 -112
  685. package/src/domains/setup/formatters/types.ts +0 -7
  686. package/src/domains/setup/helpers/completionScripts.test.ts +0 -58
  687. package/src/domains/setup/helpers/completionScripts.ts +0 -92
  688. package/src/domains/setup/helpers/constants.ts +0 -2
  689. package/src/domains/setup/helpers/detectShell.test.ts +0 -48
  690. package/src/domains/setup/helpers/detectShell.ts +0 -20
  691. package/src/domains/setup/helpers/index.ts +0 -12
  692. package/src/domains/setup/helpers/runSetupTask.test.ts +0 -277
  693. package/src/domains/setup/helpers/runSetupTask.ts +0 -221
  694. package/src/domains/setup/index.ts +0 -37
  695. package/src/domains/setup/operations/index.ts +0 -6
  696. package/src/domains/setup/operations/setupAll.test.ts +0 -48
  697. package/src/domains/setup/operations/setupAll.ts +0 -41
  698. package/src/domains/setup/operations/setupCompletions.test.ts +0 -94
  699. package/src/domains/setup/operations/setupCompletions.ts +0 -54
  700. package/src/domains/setup/operations/setupLsp.test.ts +0 -30
  701. package/src/domains/setup/operations/setupLsp.ts +0 -22
  702. package/src/domains/setup/operations/setupMcp.test.ts +0 -120
  703. package/src/domains/setup/operations/setupMcp.ts +0 -108
  704. package/src/domains/setup/operations/setupSkills.test.ts +0 -191
  705. package/src/domains/setup/operations/setupSkills.ts +0 -160
  706. package/src/domains/setup/types.ts +0 -18
  707. package/src/domains/shared/ToolSpec.ts +0 -49
  708. package/src/domains/shared/bootStore.bareCore.test.ts +0 -63
  709. package/src/domains/shared/bootStore.test.ts +0 -82
  710. package/src/domains/shared/bootStore.ts +0 -171
  711. package/src/domains/shared/buildQuery.ts +0 -18
  712. package/src/domains/shared/compactUri.test.ts +0 -32
  713. package/src/domains/shared/compactUri.ts +0 -21
  714. package/src/domains/shared/context.ts +0 -16
  715. package/src/domains/shared/contracts.ts +0 -164
  716. package/src/domains/shared/createInteractivePromptSession.test.ts +0 -439
  717. package/src/domains/shared/createInteractivePromptSession.ts +0 -236
  718. package/src/domains/shared/emptyErrorRecovery.test.ts +0 -106
  719. package/src/domains/shared/extractLocalName.test.ts +0 -21
  720. package/src/domains/shared/extractLocalName.ts +0 -14
  721. package/src/domains/shared/filters/buildChannelFilter.test.ts +0 -52
  722. package/src/domains/shared/filters/buildChannelFilter.ts +0 -41
  723. package/src/domains/shared/filters/buildFilterConfig.ts +0 -15
  724. package/src/domains/shared/filters/buildFilters.test.ts +0 -33
  725. package/src/domains/shared/filters/buildFilters.ts +0 -30
  726. package/src/domains/shared/filters/buildTierFilter.test.ts +0 -78
  727. package/src/domains/shared/filters/buildTierFilter.ts +0 -69
  728. package/src/domains/shared/filters/describeFilters.ts +0 -14
  729. package/src/domains/shared/filters/index.ts +0 -10
  730. package/src/domains/shared/formatters.ts +0 -103
  731. package/src/domains/shared/listTiers.ts +0 -40
  732. package/src/domains/shared/loaders/bundledLoader.test.ts +0 -248
  733. package/src/domains/shared/loaders/bundledLoader.ts +0 -254
  734. package/src/domains/shared/loaders/gitLoader.ts +0 -30
  735. package/src/domains/shared/loaders/index.ts +0 -9
  736. package/src/domains/shared/loaders/localLoader.ts +0 -71
  737. package/src/domains/shared/loaders/readPackageDir.test.ts +0 -58
  738. package/src/domains/shared/loaders/readPackageDir.ts +0 -185
  739. package/src/domains/shared/loaders/storyAssetsPlugin.test.ts +0 -84
  740. package/src/domains/shared/loaders/storyAssetsPlugin.ts +0 -46
  741. package/src/domains/shared/lookupMany.test.ts +0 -135
  742. package/src/domains/shared/lookupMany.ts +0 -101
  743. package/src/domains/shared/mergeAndParseRefs.test.ts +0 -89
  744. package/src/domains/shared/mergeAndParseRefs.ts +0 -44
  745. package/src/domains/shared/namespaces.ts +0 -26
  746. package/src/domains/shared/packages.ts +0 -20
  747. package/src/domains/shared/parseSampleCount.test.ts +0 -47
  748. package/src/domains/shared/parseSampleCount.ts +0 -45
  749. package/src/domains/shared/pickRandom.ts +0 -22
  750. package/src/domains/shared/prefixes.test.ts +0 -211
  751. package/src/domains/shared/prefixes.ts +0 -204
  752. package/src/domains/shared/renderers.ts +0 -410
  753. package/src/domains/shared/resolveConfiguredGraphs.test.ts +0 -27
  754. package/src/domains/shared/resolveConfiguredGraphs.ts +0 -41
  755. package/src/domains/shared/resolveLookupExitCode.test.ts +0 -48
  756. package/src/domains/shared/resolveLookupExitCode.ts +0 -42
  757. package/src/domains/shared/runtime.ts +0 -61
  758. package/src/domains/shared/sampleFormatters.ts +0 -47
  759. package/src/domains/shared/semanticPackage.test.ts +0 -89
  760. package/src/domains/shared/semanticPackage.ts +0 -127
  761. package/src/domains/shared/stories/compileLookupCommand.test.ts +0 -145
  762. package/src/domains/shared/stories/compileLookupCommand.ts +0 -102
  763. package/src/domains/shared/stories/compileLookupTool.test.ts +0 -105
  764. package/src/domains/shared/stories/compileLookupTool.ts +0 -96
  765. package/src/domains/shared/stories/compileReadCommand.test.ts +0 -121
  766. package/src/domains/shared/stories/compileReadCommand.ts +0 -48
  767. package/src/domains/shared/stories/compileReadTool.test.ts +0 -64
  768. package/src/domains/shared/stories/compileReadTool.ts +0 -38
  769. package/src/domains/shared/stories/condense.test.ts +0 -18
  770. package/src/domains/shared/stories/condense.ts +0 -15
  771. package/src/domains/shared/stories/index.ts +0 -20
  772. package/src/domains/shared/stories/normalizeNames.test.ts +0 -20
  773. package/src/domains/shared/stories/normalizeNames.ts +0 -22
  774. package/src/domains/shared/stories/pack/applyPackFilters.test.ts +0 -151
  775. package/src/domains/shared/stories/pack/applyPackFilters.ts +0 -111
  776. package/src/domains/shared/stories/pack/applyPackSearch.test.ts +0 -57
  777. package/src/domains/shared/stories/pack/applyPackSearch.ts +0 -41
  778. package/src/domains/shared/stories/pack/buildLookupQuery.test.ts +0 -81
  779. package/src/domains/shared/stories/pack/buildLookupQuery.ts +0 -154
  780. package/src/domains/shared/stories/pack/bundled/index.ts +0 -23
  781. package/src/domains/shared/stories/pack/bundled/standardPack.ts +0 -164
  782. package/src/domains/shared/stories/pack/bundled/tierPack.ts +0 -50
  783. package/src/domains/shared/stories/pack/collectPackStories.test.ts +0 -406
  784. package/src/domains/shared/stories/pack/collectPackStories.ts +0 -158
  785. package/src/domains/shared/stories/pack/compilePackCommands.ts +0 -50
  786. package/src/domains/shared/stories/pack/compilePackStories.test.ts +0 -751
  787. package/src/domains/shared/stories/pack/compilePackStories.ts +0 -724
  788. package/src/domains/shared/stories/pack/compilePackToolSpecs.ts +0 -55
  789. package/src/domains/shared/stories/pack/index.ts +0 -42
  790. package/src/domains/shared/stories/pack/reservedVerbs.test.ts +0 -213
  791. package/src/domains/shared/stories/pack/reservedVerbs.ts +0 -170
  792. package/src/domains/shared/stories/pack/runSelectQuery.ts +0 -31
  793. package/src/domains/shared/stories/pack/standardParity.test.ts +0 -381
  794. package/src/domains/shared/stories/pack/types.ts +0 -224
  795. package/src/domains/shared/stories/pack/validateStoryPackDefinition.test.ts +0 -742
  796. package/src/domains/shared/stories/pack/validateStoryPackDefinition.ts +0 -859
  797. package/src/domains/shared/stories/projectCliParameters.test.ts +0 -59
  798. package/src/domains/shared/stories/projectCliParameters.ts +0 -57
  799. package/src/domains/shared/stories/projectToolParams.test.ts +0 -50
  800. package/src/domains/shared/stories/projectToolParams.ts +0 -32
  801. package/src/domains/shared/stories/requirePragmaContext.test.ts +0 -23
  802. package/src/domains/shared/stories/requirePragmaContext.ts +0 -23
  803. package/src/domains/shared/stories/resolveLookupDetailed.test.ts +0 -57
  804. package/src/domains/shared/stories/resolveLookupDetailed.ts +0 -27
  805. package/src/domains/shared/stories/types.ts +0 -179
  806. package/src/domains/shared/suggestions/detectCrossDomain.test.ts +0 -43
  807. package/src/domains/shared/suggestions/detectCrossDomain.ts +0 -116
  808. package/src/domains/shared/suggestions/expandGlob.test.ts +0 -92
  809. package/src/domains/shared/suggestions/expandGlob.ts +0 -52
  810. package/src/domains/shared/suggestions/expandLookupQueries.ts +0 -57
  811. package/src/domains/shared/suggestions/index.ts +0 -7
  812. package/src/domains/shared/suggestions/listDomainNames.ts +0 -61
  813. package/src/domains/shared/suggestions/suggestNames.test.ts +0 -70
  814. package/src/domains/shared/suggestions/suggestNames.ts +0 -130
  815. package/src/domains/shared/types/block.ts +0 -107
  816. package/src/domains/shared/types/common.ts +0 -33
  817. package/src/domains/shared/types/graph.ts +0 -17
  818. package/src/domains/shared/types/index.ts +0 -46
  819. package/src/domains/shared/types/modifier.ts +0 -22
  820. package/src/domains/shared/types/ontology.ts +0 -145
  821. package/src/domains/shared/types/runtime.ts +0 -24
  822. package/src/domains/shared/types/sample.ts +0 -17
  823. package/src/domains/shared/types/standard.ts +0 -21
  824. package/src/domains/shared/types/tier.ts +0 -15
  825. package/src/domains/shared/types/token.ts +0 -30
  826. package/src/domains/skill/commands/index.ts +0 -4
  827. package/src/domains/skill/commands/list.test.ts +0 -115
  828. package/src/domains/skill/commands/list.ts +0 -11
  829. package/src/domains/skill/commands/lookup.test.ts +0 -118
  830. package/src/domains/skill/commands/lookup.ts +0 -14
  831. package/src/domains/skill/formatters/index.ts +0 -3
  832. package/src/domains/skill/formatters/list.test.ts +0 -140
  833. package/src/domains/skill/formatters/list.ts +0 -119
  834. package/src/domains/skill/formatters/lookup.test.ts +0 -46
  835. package/src/domains/skill/formatters/lookup.ts +0 -57
  836. package/src/domains/skill/formatters/types.ts +0 -8
  837. package/src/domains/skill/helpers/index.ts +0 -6
  838. package/src/domains/skill/helpers/parseFrontmatter.test.ts +0 -122
  839. package/src/domains/skill/helpers/parseFrontmatter.ts +0 -112
  840. package/src/domains/skill/helpers/resolveSkillSources.ts +0 -70
  841. package/src/domains/skill/index.ts +0 -23
  842. package/src/domains/skill/mcp/index.ts +0 -2
  843. package/src/domains/skill/mcp/specs.ts +0 -19
  844. package/src/domains/skill/operations/discover.test.ts +0 -176
  845. package/src/domains/skill/operations/discover.ts +0 -59
  846. package/src/domains/skill/operations/index.ts +0 -5
  847. package/src/domains/skill/operations/list.test.ts +0 -76
  848. package/src/domains/skill/operations/list.ts +0 -47
  849. package/src/domains/skill/operations/lookup.test.ts +0 -91
  850. package/src/domains/skill/operations/lookup.ts +0 -70
  851. package/src/domains/skill/stories.test.ts +0 -43
  852. package/src/domains/skill/stories.ts +0 -103
  853. package/src/domains/skill/types.ts +0 -33
  854. package/src/domains/token/commands/add-config.test.ts +0 -68
  855. package/src/domains/token/commands/add-config.ts +0 -62
  856. package/src/domains/token/commands/index.ts +0 -6
  857. package/src/domains/token/commands/list.test.ts +0 -82
  858. package/src/domains/token/commands/list.ts +0 -54
  859. package/src/domains/token/commands/lookup.test.ts +0 -133
  860. package/src/domains/token/commands/lookup.ts +0 -107
  861. package/src/domains/token/commands/sample.ts +0 -54
  862. package/src/domains/token/featureFlag.ts +0 -17
  863. package/src/domains/token/formatters/index.ts +0 -8
  864. package/src/domains/token/formatters/list.test.ts +0 -37
  865. package/src/domains/token/formatters/list.ts +0 -24
  866. package/src/domains/token/formatters/lookup.test.ts +0 -61
  867. package/src/domains/token/formatters/lookup.ts +0 -107
  868. package/src/domains/token/formatters/sample.ts +0 -16
  869. package/src/domains/token/index.ts +0 -45
  870. package/src/domains/token/mcp/index.ts +0 -2
  871. package/src/domains/token/mcp/specs.ts +0 -207
  872. package/src/domains/token/operations/add-config.test.ts +0 -68
  873. package/src/domains/token/operations/add-config.ts +0 -61
  874. package/src/domains/token/operations/index.ts +0 -8
  875. package/src/domains/token/operations/list.test.ts +0 -50
  876. package/src/domains/token/operations/list.ts +0 -52
  877. package/src/domains/token/operations/lookup.test.ts +0 -42
  878. package/src/domains/token/operations/lookup.ts +0 -75
  879. package/src/domains/token/operations/sample.ts +0 -32
  880. package/src/domains/token/orchestration/index.ts +0 -3
  881. package/src/domains/token/orchestration/resolveTokenList.ts +0 -17
  882. package/src/domains/token/orchestration/resolveTokenLookup.ts +0 -33
  883. package/src/domains/token/orchestration/tokenEmptyError.test.ts +0 -33
  884. package/src/domains/token/orchestration/tokenEmptyError.ts +0 -20
  885. package/src/domains/token/tokenConfig.ts +0 -38
  886. package/src/domains/token/types.ts +0 -6
  887. package/src/domains/trace/commands/clear.ts +0 -71
  888. package/src/domains/trace/commands/index.ts +0 -5
  889. package/src/domains/trace/commands/resolveTraceLimit.test.ts +0 -31
  890. package/src/domains/trace/commands/sessions.ts +0 -32
  891. package/src/domains/trace/commands/show.ts +0 -171
  892. package/src/domains/trace/formatters/index.ts +0 -9
  893. package/src/domains/trace/formatters/sessions.ts +0 -80
  894. package/src/domains/trace/formatters/show.ts +0 -122
  895. package/src/domains/trace/index.ts +0 -17
  896. package/src/domains/trace/operations/index.ts +0 -8
  897. package/src/domains/trace/operations/listSessions.test.ts +0 -55
  898. package/src/domains/trace/operations/listSessions.ts +0 -52
  899. package/src/domains/trace/operations/readTraceLog.test.ts +0 -100
  900. package/src/domains/trace/operations/readTraceLog.ts +0 -104
  901. package/src/domains/trace/tracePlugin.test.ts +0 -171
  902. package/src/domains/trace/tracePlugin.ts +0 -159
  903. package/src/domains/trace/types.ts +0 -65
  904. package/src/embedWasm.ts +0 -42
  905. package/src/error/PragmaError.test.ts +0 -121
  906. package/src/error/PragmaError.ts +0 -177
  907. package/src/error/constants.ts +0 -12
  908. package/src/error/index.ts +0 -4
  909. package/src/error/types.ts +0 -55
  910. package/src/mcp/createMcpServer.test.ts +0 -41
  911. package/src/mcp/createMcpServer.ts +0 -53
  912. package/src/mcp/error/buildRecovery.test.ts +0 -37
  913. package/src/mcp/error/buildRecovery.ts +0 -17
  914. package/src/mcp/error/index.ts +0 -12
  915. package/src/mcp/error/serializeError.test.ts +0 -121
  916. package/src/mcp/error/serializeError.ts +0 -31
  917. package/src/mcp/error/serializeErrorPayload.test.ts +0 -38
  918. package/src/mcp/error/serializeErrorPayload.ts +0 -34
  919. package/src/mcp/error/types.ts +0 -59
  920. package/src/mcp/index.ts +0 -15
  921. package/src/mcp/registerResources.test.ts +0 -566
  922. package/src/mcp/registerResources.ts +0 -9
  923. package/src/mcp/resources/buildGraphIndex.ts +0 -167
  924. package/src/mcp/resources/buildResourceList.test.ts +0 -97
  925. package/src/mcp/resources/buildResourceList.ts +0 -176
  926. package/src/mcp/resources/classifyEntity.test.ts +0 -40
  927. package/src/mcp/resources/classifyEntity.ts +0 -27
  928. package/src/mcp/resources/constants.ts +0 -105
  929. package/src/mcp/resources/displayPredicates.ts +0 -62
  930. package/src/mcp/resources/pickFirstValue.test.ts +0 -29
  931. package/src/mcp/resources/pickFirstValue.ts +0 -26
  932. package/src/mcp/resources/pickPrimaryType.test.ts +0 -41
  933. package/src/mcp/resources/pickPrimaryType.ts +0 -26
  934. package/src/mcp/resources/rankUriCompletions.test.ts +0 -52
  935. package/src/mcp/resources/rankUriCompletions.ts +0 -64
  936. package/src/mcp/resources/readEntity.ts +0 -169
  937. package/src/mcp/resources/registerResources.ts +0 -126
  938. package/src/mcp/resources/types.ts +0 -128
  939. package/src/mcp/runMcpServer.test.ts +0 -66
  940. package/src/mcp/runMcpServer.ts +0 -24
  941. package/src/mcp/tools/index.ts +0 -74
  942. package/src/mcp/tools/registerFromSpec.ts +0 -97
  943. package/src/mcp/tools/registerTools.test.ts +0 -1277
  944. package/src/mcp/types.ts +0 -66
  945. package/src/mcp/utils/estimateTokens.test.ts +0 -14
  946. package/src/mcp/utils/estimateTokens.ts +0 -9
  947. package/src/mcp/utils/index.ts +0 -11
  948. package/src/mcp/utils/wrapTool.test.ts +0 -109
  949. package/src/mcp/utils/wrapTool.ts +0 -81
  950. package/src/package-manager/constants.ts +0 -29
  951. package/src/package-manager/detectInstallSource.test.ts +0 -23
  952. package/src/package-manager/detectInstallSource.ts +0 -111
  953. package/src/package-manager/detectLocalInstall.test.ts +0 -16
  954. package/src/package-manager/detectLocalInstall.ts +0 -43
  955. package/src/package-manager/detectPackageManager.test.ts +0 -81
  956. package/src/package-manager/detectPackageManager.ts +0 -30
  957. package/src/package-manager/index.ts +0 -6
  958. package/src/package-manager/types.ts +0 -10
  959. package/src/pipeline/collectCommands.test.ts +0 -187
  960. package/src/pipeline/collectCommands.ts +0 -75
  961. package/src/pipeline/constants.ts +0 -14
  962. package/src/pipeline/createProgram.test.ts +0 -116
  963. package/src/pipeline/createProgram.ts +0 -89
  964. package/src/pipeline/firstRun.test.ts +0 -80
  965. package/src/pipeline/firstRun.ts +0 -99
  966. package/src/pipeline/formatTerminal.test.ts +0 -43
  967. package/src/pipeline/formatTerminal.ts +0 -53
  968. package/src/pipeline/index.ts +0 -22
  969. package/src/pipeline/mapExitCode.test.ts +0 -41
  970. package/src/pipeline/mapExitCode.ts +0 -12
  971. package/src/pipeline/parseGlobalFlags.test.ts +0 -193
  972. package/src/pipeline/parseGlobalFlags.ts +0 -135
  973. package/src/pipeline/renderError.test.ts +0 -151
  974. package/src/pipeline/renderError.ts +0 -129
  975. package/src/pipeline/resolveCommandKind.test.ts +0 -80
  976. package/src/pipeline/resolveCommandKind.ts +0 -82
  977. package/src/pipeline/rootHelp.test.ts +0 -87
  978. package/src/pipeline/rootHelp.ts +0 -265
  979. package/src/pipeline/runCli.orchestration.test.ts +0 -435
  980. package/src/pipeline/runCli.test.ts +0 -83
  981. package/src/pipeline/runCli.ts +0 -411
  982. package/src/pipeline/types.ts +0 -17
  983. package/src/testing/cli.ts +0 -71
  984. package/src/testing/createTestMcpClient.ts +0 -68
  985. package/src/testing/dsFixtures.ts +0 -523
  986. package/src/testing/fixtures/canonical-config.json +0 -4
  987. package/src/testing/fixtures/canonical.ttl +0 -437
  988. package/src/testing/fixtures/filtered-config.json +0 -4
  989. package/src/testing/fixtures.ts +0 -34
  990. package/src/testing/graphqlFixtures.ts +0 -72
  991. package/src/testing/helpers/assertParity.ts +0 -28
  992. package/src/testing/helpers/createTestMcpClient.ts +0 -40
  993. package/src/testing/helpers/createTestRuntime.ts +0 -67
  994. package/src/testing/index.ts +0 -22
  995. package/src/testing/integration/__snapshots__/executor-golden.test.ts.snap +0 -1207
  996. package/src/testing/integration/agent-session.test.ts +0 -148
  997. package/src/testing/integration/boot.test.ts +0 -105
  998. package/src/testing/integration/cli-user-stories.test.ts +0 -261
  999. package/src/testing/integration/cross-binary-byte-equality.test.ts +0 -129
  1000. package/src/testing/integration/edge-cases.test.ts +0 -275
  1001. package/src/testing/integration/executor-execution.test.ts +0 -103
  1002. package/src/testing/integration/executor-golden.test.ts +0 -145
  1003. package/src/testing/integration/mcp-surface.test.ts +0 -605
  1004. package/src/testing/integration/parity.test.ts +0 -596
  1005. package/src/testing/regression/0001-skill-discovery-granularity.test.ts +0 -71
  1006. package/src/testing/standardParityFixtures.ts +0 -35
  1007. package/src/testing/store.ts +0 -39
  1008. package/src/testing/storyFixtures.ts +0 -63
  1009. package/src/testing/types.ts +0 -20
  1010. package/src/tui/components/BulletList/BulletList.tsx +0 -46
  1011. package/src/tui/components/BulletList/index.ts +0 -2
  1012. package/src/tui/components/BulletList/types.ts +0 -6
  1013. package/src/tui/components/Card/Card.tsx +0 -73
  1014. package/src/tui/components/Card/index.ts +0 -1
  1015. package/src/tui/components/Card/types.ts +0 -12
  1016. package/src/tui/components/CodeBlock/CodeBlock.tsx +0 -37
  1017. package/src/tui/components/CodeBlock/index.ts +0 -2
  1018. package/src/tui/components/CodeBlock/types.ts +0 -6
  1019. package/src/tui/components/DataRow/DataRow.tsx +0 -80
  1020. package/src/tui/components/DataRow/index.ts +0 -2
  1021. package/src/tui/components/DataRow/types.ts +0 -14
  1022. package/src/tui/components/FieldRow/FieldRow.tsx +0 -24
  1023. package/src/tui/components/FieldRow/index.ts +0 -2
  1024. package/src/tui/components/FieldRow/types.ts +0 -10
  1025. package/src/tui/components/HeaderRow/HeaderRow.tsx +0 -32
  1026. package/src/tui/components/HeaderRow/index.ts +0 -2
  1027. package/src/tui/components/HeaderRow/types.ts +0 -8
  1028. package/src/tui/components/MarkdownText/MarkdownText.tsx +0 -19
  1029. package/src/tui/components/MarkdownText/index.ts +0 -2
  1030. package/src/tui/components/MarkdownText/types.ts +0 -4
  1031. package/src/tui/components/MiniTable/MiniTable.tsx +0 -82
  1032. package/src/tui/components/MiniTable/index.ts +0 -2
  1033. package/src/tui/components/MiniTable/types.ts +0 -6
  1034. package/src/tui/components/SectionRenderer/SectionRenderer.tsx +0 -91
  1035. package/src/tui/components/SectionRenderer/index.ts +0 -2
  1036. package/src/tui/components/SectionRenderer/types.ts +0 -15
  1037. package/src/tui/components/TreeView/TreeView.tsx +0 -84
  1038. package/src/tui/components/TreeView/index.ts +0 -2
  1039. package/src/tui/components/TreeView/types.ts +0 -6
  1040. package/src/tui/components/index.ts +0 -19
  1041. package/src/tui/constants.ts +0 -39
  1042. package/src/tui/createListView.ts +0 -23
  1043. package/src/tui/createLookupView.ts +0 -26
  1044. package/src/tui/helpers/computeWidths.ts +0 -53
  1045. package/src/tui/helpers/fitColumns.ts +0 -33
  1046. package/src/tui/helpers/formatMarkdown.ts +0 -19
  1047. package/src/tui/helpers/getTerminalSize.ts +0 -16
  1048. package/src/tui/helpers/index.ts +0 -6
  1049. package/src/tui/helpers/syntaxColor.ts +0 -67
  1050. package/src/tui/helpers/truncateText.ts +0 -12
  1051. package/src/tui/hooks/index.ts +0 -3
  1052. package/src/tui/hooks/types.ts +0 -7
  1053. package/src/tui/hooks/useAutoExit.ts +0 -17
  1054. package/src/tui/hooks/useTerminalSize.ts +0 -19
  1055. package/src/tui/index.ts +0 -15
  1056. package/src/tui/renderInk.tsx +0 -18
  1057. package/src/tui/types.ts +0 -12
  1058. package/src/tui/views/ListView/ListView.tsx +0 -104
  1059. package/src/tui/views/ListView/index.ts +0 -2
  1060. package/src/tui/views/ListView/types.ts +0 -14
  1061. package/src/tui/views/LookupView/LookupView.tsx +0 -244
  1062. package/src/tui/views/LookupView/index.ts +0 -2
  1063. package/src/tui/views/LookupView/types.ts +0 -16
  1064. package/src/tui/views/index.ts +0 -4
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Curated root `--help` for `pragma`.
3
+ *
4
+ * The front door is hand-curated, not auto-generated: nouns are grouped into
5
+ * task-oriented sections with real one-line summaries, and each section is
6
+ * reconciled against the *live* nouns (from the registered verbs) so a noun
7
+ * that is not built yet is dropped and an uncatalogued one still surfaces under
8
+ * "Other" rather than vanishing. Ported from the v1 root help, retargeted at
9
+ * the grammar and the v2 noun set (no `llm`/`graphql`/`trace`/`tokens`).
10
+ */
11
+
12
+ import type { VerbSpec } from "../../spec/types.js";
13
+ import {
14
+ helpColumns,
15
+ helpDim,
16
+ helpHeading,
17
+ helpTerm,
18
+ helpUsage,
19
+ } from "./helpFormat.js";
20
+
21
+ interface NounSummary {
22
+ readonly noun: string;
23
+ readonly summary: string;
24
+ }
25
+
26
+ interface HelpGroup {
27
+ readonly title: string;
28
+ readonly nouns: readonly NounSummary[];
29
+ }
30
+
31
+ /**
32
+ * Task-oriented grouping with curated summaries. Order is intentional: what
33
+ * people reach for most (exploring, generating) comes first; agent tooling
34
+ * comes last.
35
+ */
36
+ const HELP_GROUPS: readonly HelpGroup[] = [
37
+ {
38
+ title: "Explore the design system",
39
+ nouns: [
40
+ {
41
+ noun: "block",
42
+ summary: "Inspect components & patterns and their anatomy",
43
+ },
44
+ { noun: "token", summary: "Look up design tokens and their values" },
45
+ { noun: "modifier", summary: "Inspect modifiers and modifier families" },
46
+ { noun: "standard", summary: "Browse code standards and categories" },
47
+ {
48
+ noun: "ontology",
49
+ summary: "Explore the loaded ontologies (classes, properties)",
50
+ },
51
+ { noun: "tier", summary: "List the design-system tiers" },
52
+ ],
53
+ },
54
+ {
55
+ title: "Generate code",
56
+ nouns: [
57
+ { noun: "create", summary: "Scaffold components, packages, and apps" },
58
+ ],
59
+ },
60
+ {
61
+ title: "Query & serve the graph",
62
+ nouns: [
63
+ {
64
+ noun: "graph",
65
+ summary: "Run SPARQL queries or inspect a URI directly",
66
+ },
67
+ ],
68
+ },
69
+ {
70
+ title: "Set up & maintain",
71
+ nouns: [
72
+ { noun: "doctor", summary: "Check environment health" },
73
+ {
74
+ noun: "setup",
75
+ summary: "Configure MCP, skills, completions, and the LSP",
76
+ },
77
+ {
78
+ noun: "sources",
79
+ summary: "Build and refresh the local store from packages",
80
+ },
81
+ { noun: "config", summary: "Read and write pragma configuration" },
82
+ { noun: "info", summary: "Show version, config, and update status" },
83
+ {
84
+ noun: "upgrade",
85
+ summary: "Upgrade the pragma CLI to the latest version",
86
+ },
87
+ ],
88
+ },
89
+ {
90
+ title: "For AI agents",
91
+ nouns: [
92
+ {
93
+ noun: "capabilities",
94
+ summary: "Discover conventions, tools, and the discovery sequence",
95
+ },
96
+ {
97
+ noun: "colophon",
98
+ summary: "Read how pragma and the active domain are made",
99
+ },
100
+ {
101
+ noun: "skill",
102
+ summary: "Browse agent skills from design-system packages",
103
+ },
104
+ { noun: "prompt", summary: "Browse reusable prompt templates" },
105
+ { noun: "mcp", summary: "Start the MCP server over stdio" },
106
+ ],
107
+ },
108
+ ];
109
+
110
+ /** All distinct, non-hidden top-level nouns present in the registered verbs. */
111
+ function nounsFrom(verbs: readonly VerbSpec[]): Set<string> {
112
+ const nouns = new Set<string>();
113
+ for (const verb of verbs) {
114
+ if (verb.hidden) continue;
115
+ nouns.add(verb.path[0]);
116
+ }
117
+ return nouns;
118
+ }
119
+
120
+ /** The summary to show for an uncatalogued but live noun. */
121
+ function fallbackSummary(noun: string, verbs: readonly VerbSpec[]): string {
122
+ const first = verbs.find((v) => v.path[0] === noun && !v.hidden);
123
+ return first?.summary ?? `${noun} commands`;
124
+ }
125
+
126
+ /**
127
+ * Build the curated root help string.
128
+ *
129
+ * @param programName - The CLI binary name (`pragma`).
130
+ * @param description - The program description shown in the header.
131
+ * @param verbs - All registered verbs, used to derive the live noun set.
132
+ * @returns The formatted, colorized help text.
133
+ */
134
+ export function formatRootHelp(
135
+ programName: string,
136
+ description: string,
137
+ verbs: readonly VerbSpec[],
138
+ ): string {
139
+ const present = nounsFrom(verbs);
140
+ // `mcp` is served by the bin's special-case, not a projected verb, but is
141
+ // always available — surface it so the front door is complete.
142
+ present.add("mcp");
143
+ const catalogued = new Set(
144
+ HELP_GROUPS.flatMap((g) => g.nouns.map((n) => n.noun)),
145
+ );
146
+
147
+ const uncatalogued = [...present].filter((n) => !catalogued.has(n)).sort();
148
+ const groups: HelpGroup[] = [
149
+ ...HELP_GROUPS.map((g) => ({
150
+ ...g,
151
+ nouns: g.nouns.filter((n) => present.has(n.noun)),
152
+ })),
153
+ ...(uncatalogued.length > 0
154
+ ? [
155
+ {
156
+ title: "Other",
157
+ nouns: uncatalogued.map((noun) => ({
158
+ noun,
159
+ summary: fallbackSummary(noun, verbs),
160
+ })),
161
+ },
162
+ ]
163
+ : []),
164
+ ].filter((g) => g.nouns.length > 0);
165
+
166
+ // One column width across ALL groups so the noun column aligns section to
167
+ // section, not just within a section.
168
+ const nounWidth = Math.max(
169
+ ...groups.flatMap((g) => g.nouns.map((n) => n.noun.length)),
170
+ 0,
171
+ );
172
+
173
+ const lines: string[] = [
174
+ `${helpHeading(programName)} — ${description}`,
175
+ "",
176
+ helpUsage(
177
+ `${programName} ${helpTerm("<command>")} ${helpDim("[subcommand] [flags]")}`,
178
+ ),
179
+ "",
180
+ ];
181
+
182
+ for (const group of groups) {
183
+ lines.push(helpHeading(group.title));
184
+ lines.push(
185
+ ...helpColumns(
186
+ group.nouns.map((n) => [n.noun, n.summary] as const),
187
+ nounWidth,
188
+ ),
189
+ );
190
+ lines.push("");
191
+ }
192
+
193
+ // The frozen global-flags block: these doc strings MUST stay byte-consistent
194
+ // with FIXED_SURFACE.globalFlags (emitSurface.ts) — restyle the LAYOUT only,
195
+ // never these strings.
196
+ lines.push(helpHeading("Global flags"));
197
+ const flags: [string, string][] = [
198
+ ["--llm", "Condensed Markdown output for agents"],
199
+ ["--format <json|plain>", "Select output format"],
200
+ [
201
+ "--detail <level>",
202
+ "Progressive-disclosure level (summary, standard, detailed)",
203
+ ],
204
+ ["--verbose", "Diagnostic output on stderr"],
205
+ ["--help", "Show help (works on any command)"],
206
+ ["--version", "Show the CLI version"],
207
+ ];
208
+ lines.push(...helpColumns(flags));
209
+ lines.push("");
210
+
211
+ lines.push(
212
+ helpDim(
213
+ `Run \`${programName} <command> --help\` for details, or \`${programName} capabilities\` to get oriented.`,
214
+ ),
215
+ );
216
+
217
+ return lines.join("\n");
218
+ }
@@ -0,0 +1,54 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { fixtureModule } from "../../../testing/fixtures/fixtureCapability.js";
3
+ import { nounVerbMap, resolveUnknownCommand } from "./suggest.js";
4
+ import { suggestNames } from "./suggestNames.js";
5
+
6
+ const verbs = [...fixtureModule.verbs];
7
+
8
+ describe("nounVerbMap", () => {
9
+ it("maps nouns to their non-hidden verb labels", () => {
10
+ const map = nounVerbMap(verbs);
11
+ expect(map.get("widget")).toEqual(["list", "make"]);
12
+ expect([...map.keys()]).toEqual(["widget"]);
13
+ });
14
+ });
15
+
16
+ describe("resolveUnknownCommand", () => {
17
+ const map = nounVerbMap(verbs);
18
+
19
+ it("flags an unknown noun against the noun set", () => {
20
+ expect(resolveUnknownCommand(["widgt"], map)).toEqual({
21
+ token: "widgt",
22
+ candidates: ["widget"],
23
+ });
24
+ });
25
+
26
+ it("flags an unknown verb against its noun's verbs", () => {
27
+ expect(resolveUnknownCommand(["widget", "lst"], map)).toEqual({
28
+ token: "lst",
29
+ candidates: ["list", "make"],
30
+ });
31
+ });
32
+
33
+ it("resolves a valid command to undefined", () => {
34
+ expect(resolveUnknownCommand(["widget", "list"], map)).toBeUndefined();
35
+ expect(resolveUnknownCommand([], map)).toBeUndefined();
36
+ });
37
+ });
38
+
39
+ describe("suggestNames", () => {
40
+ it("ranks prefix matches ahead of edit-distance matches", () => {
41
+ expect(suggestNames("con", ["config", "connect", "block"])).toEqual([
42
+ "config",
43
+ "connect",
44
+ ]);
45
+ });
46
+
47
+ it("catches a single-character typo", () => {
48
+ expect(suggestNames("cofnig", ["config", "block"])).toEqual(["config"]);
49
+ });
50
+
51
+ it("returns nothing for an empty query", () => {
52
+ expect(suggestNames("", ["config"])).toEqual([]);
53
+ });
54
+ });
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Turn an unknown command into an actionable "Did you mean?".
3
+ *
4
+ * When Commander rejects an unrecognized noun or verb, the bin resolves the
5
+ * offending token and the set of siblings it should have matched, then raises a
6
+ * `PragmaError.unknownVerb` (its suggestions ranked by `suggestNames`) rendered
7
+ * through the shared error renderers — so the plain path gets the same `Error:`
8
+ * prefix and "Did you mean?" list as every other error. The resolution is
9
+ * data-driven — a noun→verbs map built from the grammar — so no Commander
10
+ * internals leak into the suggester.
11
+ */
12
+
13
+ import type { VerbSpec } from "../../spec/types.js";
14
+
15
+ /** An unresolved token and the sibling names to rank it against. */
16
+ export interface UnknownCommand {
17
+ readonly token: string;
18
+ readonly candidates: readonly string[];
19
+ }
20
+
21
+ /**
22
+ * Build the noun → verb-labels map from the registered verbs.
23
+ *
24
+ * Hidden verbs are excluded. A self-verb (path length 1, e.g. `["info"]`)
25
+ * contributes an entry with no sub-verbs.
26
+ *
27
+ * @param verbs - All registered verbs.
28
+ * @returns A map from noun to its verb labels (empty for self-verbs).
29
+ */
30
+ export function nounVerbMap(verbs: readonly VerbSpec[]): Map<string, string[]> {
31
+ const map = new Map<string, string[]>();
32
+ for (const verb of verbs) {
33
+ if (verb.hidden) continue;
34
+ const [noun, sub] = verb.path;
35
+ const labels = map.get(noun) ?? [];
36
+ if (sub) labels.push(sub);
37
+ map.set(noun, labels);
38
+ }
39
+ return map;
40
+ }
41
+
42
+ /**
43
+ * Locate the first token that does not resolve against the known commands.
44
+ *
45
+ * @param positionals - The stripped positional args (no flags), in order.
46
+ * @param nouns - The noun → verb-labels map from {@link nounVerbMap}.
47
+ * @returns The unresolved token with its candidates, or `undefined` when the
48
+ * args resolve cleanly.
49
+ */
50
+ export function resolveUnknownCommand(
51
+ positionals: readonly string[],
52
+ nouns: ReadonlyMap<string, readonly string[]>,
53
+ ): UnknownCommand | undefined {
54
+ const [noun, verb] = positionals;
55
+ if (noun === undefined) return undefined;
56
+
57
+ if (!nouns.has(noun)) {
58
+ return { token: noun, candidates: [...nouns.keys()] };
59
+ }
60
+
61
+ const labels = nouns.get(noun) ?? [];
62
+ if (verb !== undefined && labels.length > 0 && !labels.includes(verb)) {
63
+ return { token: verb, candidates: labels };
64
+ }
65
+
66
+ return undefined;
67
+ }
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Rank candidate names by similarity to a failed token.
3
+ *
4
+ * Ported near-verbatim from the v1 suggester: prefix matches first, then
5
+ * Damerau-Levenshtein edit-distance matches under a normalized threshold. Used
6
+ * by the unknown-command suggester to turn a typo into "Did you mean: …?".
7
+ */
8
+
9
+ /**
10
+ * Return up to {@link maxResults} candidates most similar to `query`.
11
+ *
12
+ * Exact matches are excluded — a match means the caller should have resolved it
13
+ * and never reached here.
14
+ *
15
+ * @param query - The token that failed to resolve.
16
+ * @param candidates - All known names to rank against.
17
+ * @param opts.maxResults - Max suggestions to return (default 5).
18
+ * @param opts.threshold - Max normalized edit distance (default 0.4).
19
+ * @returns Ranked suggestions, original casing preserved.
20
+ */
21
+ export function suggestNames(
22
+ query: string,
23
+ candidates: readonly string[],
24
+ opts?: { maxResults?: number; threshold?: number },
25
+ ): string[] {
26
+ if (query === "") return [];
27
+
28
+ const maxResults = opts?.maxResults ?? 5;
29
+ const threshold = opts?.threshold ?? 0.4;
30
+ const queryLower = query.toLowerCase();
31
+
32
+ type Scored = { name: string; score: number };
33
+ const scored: Scored[] = [];
34
+
35
+ for (const candidate of candidates) {
36
+ const candidateLower = candidate.toLowerCase();
37
+
38
+ if (candidateLower === queryLower) continue;
39
+
40
+ if (candidateLower.startsWith(queryLower)) {
41
+ scored.push({ name: candidate, score: 0 });
42
+ continue;
43
+ }
44
+
45
+ const distance = damerauLevenshtein(queryLower, candidateLower);
46
+ const maxLen = Math.max(queryLower.length, candidateLower.length);
47
+ const normalized = maxLen === 0 ? 0 : distance / maxLen;
48
+
49
+ if (normalized <= threshold) {
50
+ scored.push({ name: candidate, score: normalized });
51
+ }
52
+ }
53
+
54
+ scored.sort((a, b) => a.score - b.score);
55
+ return scored.slice(0, maxResults).map((s) => s.name);
56
+ }
57
+
58
+ /**
59
+ * Damerau-Levenshtein distance: insertions, deletions, substitutions, and
60
+ * adjacent transpositions.
61
+ */
62
+ function damerauLevenshtein(a: string, b: string): number {
63
+ const lenA = a.length;
64
+ const lenB = b.length;
65
+
66
+ if (lenA === 0) return lenB;
67
+ if (lenB === 0) return lenA;
68
+
69
+ const matrix: number[][] = Array.from({ length: lenA + 1 }, () =>
70
+ Array.from<number>({ length: lenB + 1 }).fill(0),
71
+ );
72
+
73
+ for (let i = 0; i <= lenA; i++) {
74
+ getRow(matrix, i)[0] = i;
75
+ }
76
+ const firstRow = getRow(matrix, 0);
77
+ for (let j = 0; j <= lenB; j++) {
78
+ firstRow[j] = j;
79
+ }
80
+
81
+ for (let i = 1; i <= lenA; i++) {
82
+ const prevRow = getRow(matrix, i - 1);
83
+ const row = getRow(matrix, i);
84
+ for (let j = 1; j <= lenB; j++) {
85
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
86
+
87
+ row[j] = Math.min(
88
+ getCell(prevRow, j) + 1, // deletion
89
+ getCell(row, j - 1) + 1, // insertion
90
+ getCell(prevRow, j - 1) + cost, // substitution
91
+ );
92
+
93
+ if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {
94
+ const prevPrevRow = getRow(matrix, i - 2);
95
+ row[j] = Math.min(
96
+ getCell(row, j),
97
+ getCell(prevPrevRow, j - 2) + cost, // transposition
98
+ );
99
+ }
100
+ }
101
+ }
102
+
103
+ return getCell(getRow(matrix, lenA), lenB);
104
+ }
105
+
106
+ /** Read a matrix row that is structurally guaranteed to exist. */
107
+ function getRow(matrix: number[][], index: number): number[] {
108
+ const row = matrix.at(index);
109
+ if (row === undefined) {
110
+ throw new Error(`matrix row ${index} is out of bounds`);
111
+ }
112
+ return row;
113
+ }
114
+
115
+ /** Read a matrix cell that is structurally guaranteed to exist. */
116
+ function getCell(row: number[], index: number): number {
117
+ const cell = row.at(index);
118
+ if (cell === undefined) {
119
+ throw new Error(`matrix cell ${index} is out of bounds`);
120
+ }
121
+ return cell;
122
+ }
@@ -0,0 +1,138 @@
1
+ import chalk from "chalk";
2
+ import { afterAll, describe, expect, it } from "vitest";
3
+ import type { VerbSpec } from "../../spec/types.js";
4
+ import { formatNounHelp, formatVerbHelp } from "./verbHelp.js";
5
+
6
+ // Help styling (helpFormat.ts) routes through chalk, whose `supports-color`
7
+ // enables color when GITHUB_ACTIONS is set — even off a TTY — so CI would paint
8
+ // ANSI into these plain goldens (locally chalk stays at level 0, which is why it
9
+ // only failed in CI). Pin the level to 0 for a deterministic, color-free render
10
+ // (the same guard colophon.render.test.ts uses). Set at module scope so the
11
+ // collection-time formatVerbHelp() call below renders plain too.
12
+ const prevChalkLevel = chalk.level;
13
+ chalk.level = 0;
14
+ afterAll(() => {
15
+ chalk.level = prevChalkLevel;
16
+ });
17
+
18
+ const passthrough = {
19
+ plain: (d: unknown) => String(d),
20
+ llm: (d: unknown) => String(d),
21
+ json: (d: unknown) => JSON.stringify(d),
22
+ };
23
+
24
+ const get: VerbSpec = {
25
+ path: ["block", "get"],
26
+ summary: "Get a block by name.",
27
+ doc: "Resolves the block and prints its anatomy.",
28
+ params: [
29
+ {
30
+ kind: "string",
31
+ name: "name",
32
+ doc: "Block name.",
33
+ positional: true,
34
+ required: true,
35
+ },
36
+ { kind: "boolean", name: "withAnatomy", doc: "Include the anatomy tree." },
37
+ ],
38
+ output: { formatters: passthrough },
39
+ examples: [{ cmd: "pragma block get Button", note: "the primary button" }],
40
+ capability: { needsStore: true, mutates: false, mcp: { expose: true } },
41
+ run: async () => null,
42
+ };
43
+
44
+ const list: VerbSpec = {
45
+ path: ["block", "list"],
46
+ summary: "List blocks.",
47
+ params: [],
48
+ output: { formatters: passthrough },
49
+ capability: { needsStore: true, mutates: false, mcp: { expose: true } },
50
+ run: async () => null,
51
+ };
52
+
53
+ /** A self-verb (`path.length === 1`) to exercise the root-pointing footer. */
54
+ const selfVerb: VerbSpec = {
55
+ path: ["doctor"],
56
+ summary: "Check environment health.",
57
+ params: [],
58
+ output: { formatters: passthrough },
59
+ capability: { needsStore: false, mutates: false, mcp: { expose: true } },
60
+ run: async () => null,
61
+ };
62
+
63
+ describe("formatVerbHelp", () => {
64
+ const help = formatVerbHelp("pragma", get);
65
+
66
+ it("renders the usage line with the positional", () => {
67
+ expect(help).toContain("Usage: pragma block get <name> [flags]");
68
+ });
69
+
70
+ it("renders summary, extended doc, the kebab flag, and examples", () => {
71
+ expect(help).toContain("Get a block by name.");
72
+ expect(help).toContain("Resolves the block and prints its anatomy.");
73
+ expect(help).toContain("--with-anatomy");
74
+ expect(help).toContain("pragma block get Button");
75
+ expect(help).toContain("the primary button");
76
+ });
77
+
78
+ it("closes a sub-verb page with a footer pointing at the noun page", () => {
79
+ expect(help).toContain(
80
+ "Run `pragma block --help` to see all block commands.",
81
+ );
82
+ });
83
+
84
+ it("closes a self-verb page with a footer pointing at the root", () => {
85
+ expect(formatVerbHelp("pragma", selfVerb)).toContain(
86
+ "Run `pragma --help` to see all commands.",
87
+ );
88
+ });
89
+
90
+ it("renders the unified verb page (restyle golden)", () => {
91
+ expect(help).toMatchInlineSnapshot(`
92
+ "Usage: pragma block get <name> [flags]
93
+
94
+ Get a block by name.
95
+
96
+ Resolves the block and prints its anatomy.
97
+
98
+ Flags
99
+ --with-anatomy Include the anatomy tree.
100
+
101
+ Examples
102
+ pragma block get Button
103
+ the primary button
104
+
105
+ Run \`pragma block --help\` to see all block commands."
106
+ `);
107
+ });
108
+ });
109
+
110
+ describe("formatNounHelp", () => {
111
+ it("lists the noun's verbs with summaries", () => {
112
+ const help = formatNounHelp("pragma", "block", [get, list]);
113
+ expect(help).toContain("Usage: pragma block <verb> [flags]");
114
+ expect(help).toContain("get");
115
+ expect(help).toContain("list");
116
+ expect(help).toContain("Get a block by name.");
117
+ });
118
+
119
+ it("renders the unified noun page (restyle golden)", () => {
120
+ expect(
121
+ formatNounHelp("pragma", "block", [get, list]),
122
+ ).toMatchInlineSnapshot(`
123
+ "Usage: pragma block <verb> [flags]
124
+
125
+ Verbs
126
+ get Get a block by name.
127
+ list List blocks.
128
+
129
+ Run \`pragma block <verb> --help\` for details on a verb."
130
+ `);
131
+ });
132
+
133
+ it("handles a noun with no verbs", () => {
134
+ expect(formatNounHelp("pragma", "ghost", [])).toBe(
135
+ 'No commands found for "ghost".',
136
+ );
137
+ });
138
+ });