@canonical/pragma-cli 0.30.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 (1083) hide show
  1. package/dist/pragma +0 -0
  2. package/package.json +27 -40
  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 -68
  157. package/src/index.ts +27 -134
  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 +17 -5
  359. package/src/types.ts +42 -0
  360. package/README.md +0 -429
  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 -18
  367. package/src/completions/handleQuery.test.ts +0 -93
  368. package/src/completions/handleQuery.ts +0 -30
  369. package/src/completions/index.ts +0 -14
  370. package/src/completions/queryCompletions.test.ts +0 -100
  371. package/src/completions/queryCompletions.ts +0 -61
  372. package/src/completions/querySocket.test.ts +0 -70
  373. package/src/completions/querySocket.ts +0 -44
  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 -215
  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 -107
  391. package/src/config/readConfigLayers.ts +0 -115
  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 -121
  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 -55
  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 -41
  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 -254
  434. package/src/domains/block/types.ts +0 -30
  435. package/src/domains/config/commands/channel.test.ts +0 -112
  436. package/src/domains/config/commands/channel.ts +0 -86
  437. package/src/domains/config/commands/configScope.ts +0 -46
  438. package/src/domains/config/commands/framework.test.ts +0 -105
  439. package/src/domains/config/commands/framework.ts +0 -91
  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 -95
  444. package/src/domains/config/commands/tier.ts +0 -84
  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 -56
  467. package/src/domains/config/operations/validateTier.ts +0 -35
  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/commands/component.test.ts +0 -166
  476. package/src/domains/create/commands/component.ts +0 -123
  477. package/src/domains/create/commands/index.ts +0 -3
  478. package/src/domains/create/commands/package.test.ts +0 -35
  479. package/src/domains/create/commands/package.ts +0 -21
  480. package/src/domains/create/generators.ts +0 -8
  481. package/src/domains/create/index.ts +0 -15
  482. package/src/domains/create/mcp/index.ts +0 -2
  483. package/src/domains/create/mcp/specs.ts +0 -168
  484. package/src/domains/doctor/commands/doctor.test.ts +0 -75
  485. package/src/domains/doctor/commands/doctor.ts +0 -43
  486. package/src/domains/doctor/commands/index.ts +0 -2
  487. package/src/domains/doctor/formatters/doctor.test.ts +0 -117
  488. package/src/domains/doctor/formatters/doctor.ts +0 -84
  489. package/src/domains/doctor/formatters/index.ts +0 -2
  490. package/src/domains/doctor/index.ts +0 -9
  491. package/src/domains/doctor/mcp/index.ts +0 -2
  492. package/src/domains/doctor/mcp/specs.ts +0 -41
  493. package/src/domains/doctor/operations/checks/checkConfigFile.ts +0 -42
  494. package/src/domains/doctor/operations/checks/checkKeStore.ts +0 -38
  495. package/src/domains/doctor/operations/checks/checkMcpCommands.ts +0 -130
  496. package/src/domains/doctor/operations/checks/checkMcpConfigured.ts +0 -65
  497. package/src/domains/doctor/operations/checks/checkNodeVersion.ts +0 -25
  498. package/src/domains/doctor/operations/checks/checkPackageRefs.ts +0 -58
  499. package/src/domains/doctor/operations/checks/checkPragmaVersion.ts +0 -20
  500. package/src/domains/doctor/operations/checks/checkShellCompletions.ts +0 -42
  501. package/src/domains/doctor/operations/checks/checkSkillsSymlinked.ts +0 -64
  502. package/src/domains/doctor/operations/checks/index.ts +0 -10
  503. package/src/domains/doctor/operations/checks.test.ts +0 -305
  504. package/src/domains/doctor/operations/index.ts +0 -3
  505. package/src/domains/doctor/operations/runChecks.test.ts +0 -176
  506. package/src/domains/doctor/operations/runChecks.ts +0 -78
  507. package/src/domains/doctor/operations/types.ts +0 -20
  508. package/src/domains/graph/commands/index.ts +0 -4
  509. package/src/domains/graph/commands/inspect.test.ts +0 -94
  510. package/src/domains/graph/commands/inspect.ts +0 -63
  511. package/src/domains/graph/commands/query.test.ts +0 -92
  512. package/src/domains/graph/commands/query.ts +0 -60
  513. package/src/domains/graph/formatters/index.ts +0 -4
  514. package/src/domains/graph/formatters/inspect.ts +0 -50
  515. package/src/domains/graph/formatters/query.ts +0 -37
  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 -40
  533. package/src/domains/graphql/commands/serve.ts +0 -131
  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 -56
  543. package/src/domains/graphql/helpers/resolveSourceFiles.ts +0 -45
  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/index.ts +0 -12
  552. package/src/domains/graphql/types.ts +0 -29
  553. package/src/domains/info/commands/index.ts +0 -4
  554. package/src/domains/info/commands/info.test.ts +0 -88
  555. package/src/domains/info/commands/info.ts +0 -47
  556. package/src/domains/info/commands/upgrade.test.ts +0 -183
  557. package/src/domains/info/commands/upgrade.ts +0 -153
  558. package/src/domains/info/constants.test.ts +0 -22
  559. package/src/domains/info/constants.ts +0 -15
  560. package/src/domains/info/formatters/index.ts +0 -8
  561. package/src/domains/info/formatters/info.test.ts +0 -207
  562. package/src/domains/info/formatters/info.ts +0 -131
  563. package/src/domains/info/formatters/upgrade.test.ts +0 -133
  564. package/src/domains/info/formatters/upgrade.ts +0 -68
  565. package/src/domains/info/index.ts +0 -9
  566. package/src/domains/info/mcp/index.ts +0 -2
  567. package/src/domains/info/mcp/specs.ts +0 -65
  568. package/src/domains/info/operations/checkRegistryVersion.test.ts +0 -124
  569. package/src/domains/info/operations/checkRegistryVersion.ts +0 -45
  570. package/src/domains/info/operations/collectInfo.test.ts +0 -122
  571. package/src/domains/info/operations/collectInfo.ts +0 -94
  572. package/src/domains/info/operations/collectStoreSummary.test.ts +0 -61
  573. package/src/domains/info/operations/collectStoreSummary.ts +0 -42
  574. package/src/domains/info/operations/index.ts +0 -5
  575. package/src/domains/info/types.test-d.ts +0 -35
  576. package/src/domains/info/types.ts +0 -54
  577. package/src/domains/llm/capabilities.test.ts +0 -91
  578. package/src/domains/llm/commands/capabilities.ts +0 -28
  579. package/src/domains/llm/commands/index.ts +0 -4
  580. package/src/domains/llm/commands/llm.ts +0 -37
  581. package/src/domains/llm/data/commandReference.ts +0 -97
  582. package/src/domains/llm/data/decisionTrees.ts +0 -50
  583. package/src/domains/llm/data/index.ts +0 -6
  584. package/src/domains/llm/data/toolCatalog.ts +0 -190
  585. package/src/domains/llm/formatters/capabilities.ts +0 -50
  586. package/src/domains/llm/formatters/index.ts +0 -4
  587. package/src/domains/llm/formatters/orientation.ts +0 -53
  588. package/src/domains/llm/index.ts +0 -9
  589. package/src/domains/llm/llmCommand.test.ts +0 -93
  590. package/src/domains/llm/mcp/index.ts +0 -2
  591. package/src/domains/llm/mcp/specs.ts +0 -94
  592. package/src/domains/llm/operations/collectContext.ts +0 -47
  593. package/src/domains/llm/operations/index.ts +0 -3
  594. package/src/domains/llm/types.ts +0 -72
  595. package/src/domains/modifier/commands/index.ts +0 -5
  596. package/src/domains/modifier/commands/list.test.ts +0 -57
  597. package/src/domains/modifier/commands/list.ts +0 -9
  598. package/src/domains/modifier/commands/lookup.test.ts +0 -91
  599. package/src/domains/modifier/commands/lookup.ts +0 -14
  600. package/src/domains/modifier/commands/sample.ts +0 -53
  601. package/src/domains/modifier/formatters/index.ts +0 -8
  602. package/src/domains/modifier/formatters/list.test.ts +0 -38
  603. package/src/domains/modifier/formatters/list.ts +0 -22
  604. package/src/domains/modifier/formatters/lookup.test.ts +0 -33
  605. package/src/domains/modifier/formatters/lookup.ts +0 -50
  606. package/src/domains/modifier/formatters/sample.ts +0 -15
  607. package/src/domains/modifier/index.ts +0 -27
  608. package/src/domains/modifier/mcp/index.ts +0 -2
  609. package/src/domains/modifier/mcp/specs.ts +0 -65
  610. package/src/domains/modifier/modifierConfig.ts +0 -36
  611. package/src/domains/modifier/operations/index.ts +0 -5
  612. package/src/domains/modifier/operations/list.test.ts +0 -39
  613. package/src/domains/modifier/operations/list.ts +0 -41
  614. package/src/domains/modifier/operations/lookup.test.ts +0 -37
  615. package/src/domains/modifier/operations/lookup.ts +0 -67
  616. package/src/domains/modifier/operations/sample.ts +0 -32
  617. package/src/domains/modifier/orchestration/index.ts +0 -3
  618. package/src/domains/modifier/orchestration/modifierEmptyError.test.ts +0 -26
  619. package/src/domains/modifier/orchestration/modifierEmptyError.ts +0 -15
  620. package/src/domains/modifier/orchestration/resolveModifierList.ts +0 -16
  621. package/src/domains/modifier/orchestration/resolveModifierLookup.ts +0 -33
  622. package/src/domains/modifier/stories.test.ts +0 -20
  623. package/src/domains/modifier/stories.ts +0 -77
  624. package/src/domains/modifier/types.ts +0 -5
  625. package/src/domains/ontology/commands/index.ts +0 -4
  626. package/src/domains/ontology/commands/list.test.ts +0 -82
  627. package/src/domains/ontology/commands/list.ts +0 -11
  628. package/src/domains/ontology/commands/show.test.ts +0 -103
  629. package/src/domains/ontology/commands/show.ts +0 -14
  630. package/src/domains/ontology/formatters/index.ts +0 -4
  631. package/src/domains/ontology/formatters/list.ts +0 -39
  632. package/src/domains/ontology/formatters/show.ts +0 -105
  633. package/src/domains/ontology/helpers/findNamespace.ts +0 -23
  634. package/src/domains/ontology/helpers/index.ts +0 -7
  635. package/src/domains/ontology/helpers/queryClasses.ts +0 -50
  636. package/src/domains/ontology/helpers/queryProperties.ts +0 -57
  637. package/src/domains/ontology/helpers/resolvePrefix.ts +0 -45
  638. package/src/domains/ontology/index.ts +0 -26
  639. package/src/domains/ontology/mcp/index.ts +0 -2
  640. package/src/domains/ontology/mcp/specs.ts +0 -16
  641. package/src/domains/ontology/operations/index.ts +0 -5
  642. package/src/domains/ontology/operations/listOntologies.test.ts +0 -45
  643. package/src/domains/ontology/operations/listOntologies.ts +0 -101
  644. package/src/domains/ontology/operations/showOntology.test.ts +0 -65
  645. package/src/domains/ontology/operations/showOntology.ts +0 -41
  646. package/src/domains/ontology/operations/showOntologyRaw.test.ts +0 -39
  647. package/src/domains/ontology/operations/showOntologyRaw.ts +0 -50
  648. package/src/domains/ontology/stories.test.ts +0 -36
  649. package/src/domains/ontology/stories.ts +0 -108
  650. package/src/domains/refs/commands/updateRefs.ts +0 -52
  651. package/src/domains/refs/formatters/updateRefs.ts +0 -27
  652. package/src/domains/refs/index.ts +0 -27
  653. package/src/domains/refs/operations/gitOps.test.ts +0 -155
  654. package/src/domains/refs/operations/gitOps.ts +0 -92
  655. package/src/domains/refs/operations/index.ts +0 -10
  656. package/src/domains/refs/operations/parseRef.test.ts +0 -157
  657. package/src/domains/refs/operations/parseRef.ts +0 -114
  658. package/src/domains/refs/operations/paths.test.ts +0 -98
  659. package/src/domains/refs/operations/paths.ts +0 -91
  660. package/src/domains/refs/operations/readGlobalRefs.test.ts +0 -63
  661. package/src/domains/refs/operations/readGlobalRefs.ts +0 -37
  662. package/src/domains/refs/operations/updateRefs.test.ts +0 -167
  663. package/src/domains/refs/operations/updateRefs.ts +0 -181
  664. package/src/domains/setup/commands/all.ts +0 -58
  665. package/src/domains/setup/commands/completions.ts +0 -85
  666. package/src/domains/setup/commands/entrypoints.test.ts +0 -170
  667. package/src/domains/setup/commands/index.ts +0 -6
  668. package/src/domains/setup/commands/lsp.ts +0 -49
  669. package/src/domains/setup/commands/mcp.ts +0 -119
  670. package/src/domains/setup/commands/skills.test.ts +0 -68
  671. package/src/domains/setup/commands/skills.ts +0 -110
  672. package/src/domains/setup/formatters/index.ts +0 -2
  673. package/src/domains/setup/formatters/skills.test.ts +0 -103
  674. package/src/domains/setup/formatters/skills.ts +0 -112
  675. package/src/domains/setup/formatters/types.ts +0 -7
  676. package/src/domains/setup/helpers/completionScripts.test.ts +0 -58
  677. package/src/domains/setup/helpers/completionScripts.ts +0 -92
  678. package/src/domains/setup/helpers/constants.ts +0 -2
  679. package/src/domains/setup/helpers/detectShell.test.ts +0 -48
  680. package/src/domains/setup/helpers/detectShell.ts +0 -20
  681. package/src/domains/setup/helpers/index.ts +0 -12
  682. package/src/domains/setup/helpers/runSetupTask.test.ts +0 -277
  683. package/src/domains/setup/helpers/runSetupTask.ts +0 -221
  684. package/src/domains/setup/index.ts +0 -33
  685. package/src/domains/setup/operations/index.ts +0 -6
  686. package/src/domains/setup/operations/setupAll.test.ts +0 -48
  687. package/src/domains/setup/operations/setupAll.ts +0 -41
  688. package/src/domains/setup/operations/setupCompletions.test.ts +0 -94
  689. package/src/domains/setup/operations/setupCompletions.ts +0 -54
  690. package/src/domains/setup/operations/setupLsp.test.ts +0 -29
  691. package/src/domains/setup/operations/setupLsp.ts +0 -17
  692. package/src/domains/setup/operations/setupMcp.test.ts +0 -120
  693. package/src/domains/setup/operations/setupMcp.ts +0 -108
  694. package/src/domains/setup/operations/setupSkills.test.ts +0 -191
  695. package/src/domains/setup/operations/setupSkills.ts +0 -160
  696. package/src/domains/setup/types.ts +0 -18
  697. package/src/domains/shared/ToolSpec.ts +0 -49
  698. package/src/domains/shared/bootStore.ts +0 -135
  699. package/src/domains/shared/buildQuery.ts +0 -18
  700. package/src/domains/shared/compactUri.test.ts +0 -32
  701. package/src/domains/shared/compactUri.ts +0 -21
  702. package/src/domains/shared/context.ts +0 -16
  703. package/src/domains/shared/contracts.ts +0 -164
  704. package/src/domains/shared/createInteractivePromptSession.test.ts +0 -439
  705. package/src/domains/shared/createInteractivePromptSession.ts +0 -236
  706. package/src/domains/shared/emptyErrorRecovery.test.ts +0 -109
  707. package/src/domains/shared/extractLocalName.test.ts +0 -21
  708. package/src/domains/shared/extractLocalName.ts +0 -14
  709. package/src/domains/shared/filters/buildChannelFilter.test.ts +0 -52
  710. package/src/domains/shared/filters/buildChannelFilter.ts +0 -41
  711. package/src/domains/shared/filters/buildFilterConfig.ts +0 -15
  712. package/src/domains/shared/filters/buildFilters.test.ts +0 -33
  713. package/src/domains/shared/filters/buildFilters.ts +0 -30
  714. package/src/domains/shared/filters/buildTierFilter.test.ts +0 -78
  715. package/src/domains/shared/filters/buildTierFilter.ts +0 -69
  716. package/src/domains/shared/filters/describeFilters.ts +0 -14
  717. package/src/domains/shared/filters/index.ts +0 -10
  718. package/src/domains/shared/formatters.ts +0 -82
  719. package/src/domains/shared/loaders/bundledLoader.test.ts +0 -248
  720. package/src/domains/shared/loaders/bundledLoader.ts +0 -206
  721. package/src/domains/shared/loaders/gitLoader.ts +0 -31
  722. package/src/domains/shared/loaders/index.ts +0 -9
  723. package/src/domains/shared/loaders/localLoader.ts +0 -87
  724. package/src/domains/shared/loaders/readPackageDir.ts +0 -147
  725. package/src/domains/shared/loaders/storyAssetsPlugin.test.ts +0 -84
  726. package/src/domains/shared/loaders/storyAssetsPlugin.ts +0 -46
  727. package/src/domains/shared/lookupMany.test.ts +0 -120
  728. package/src/domains/shared/lookupMany.ts +0 -85
  729. package/src/domains/shared/mergeAndParseRefs.test.ts +0 -89
  730. package/src/domains/shared/mergeAndParseRefs.ts +0 -44
  731. package/src/domains/shared/namespaces.ts +0 -18
  732. package/src/domains/shared/packages.ts +0 -20
  733. package/src/domains/shared/pickRandom.ts +0 -22
  734. package/src/domains/shared/prefixes.ts +0 -37
  735. package/src/domains/shared/renderers.ts +0 -410
  736. package/src/domains/shared/resolveConfiguredGraphs.test.ts +0 -27
  737. package/src/domains/shared/resolveConfiguredGraphs.ts +0 -41
  738. package/src/domains/shared/runtime.ts +0 -61
  739. package/src/domains/shared/sampleFormatters.ts +0 -47
  740. package/src/domains/shared/semanticPackage.ts +0 -112
  741. package/src/domains/shared/stories/compileLookupCommand.test.ts +0 -145
  742. package/src/domains/shared/stories/compileLookupCommand.ts +0 -100
  743. package/src/domains/shared/stories/compileLookupTool.test.ts +0 -105
  744. package/src/domains/shared/stories/compileLookupTool.ts +0 -96
  745. package/src/domains/shared/stories/compileReadCommand.test.ts +0 -121
  746. package/src/domains/shared/stories/compileReadCommand.ts +0 -48
  747. package/src/domains/shared/stories/compileReadTool.test.ts +0 -64
  748. package/src/domains/shared/stories/compileReadTool.ts +0 -38
  749. package/src/domains/shared/stories/condense.test.ts +0 -18
  750. package/src/domains/shared/stories/condense.ts +0 -15
  751. package/src/domains/shared/stories/index.ts +0 -20
  752. package/src/domains/shared/stories/normalizeNames.test.ts +0 -20
  753. package/src/domains/shared/stories/normalizeNames.ts +0 -22
  754. package/src/domains/shared/stories/pack/applyPackFilters.test.ts +0 -102
  755. package/src/domains/shared/stories/pack/applyPackFilters.ts +0 -76
  756. package/src/domains/shared/stories/pack/buildLookupQuery.test.ts +0 -51
  757. package/src/domains/shared/stories/pack/buildLookupQuery.ts +0 -80
  758. package/src/domains/shared/stories/pack/collectPackStories.test.ts +0 -108
  759. package/src/domains/shared/stories/pack/collectPackStories.ts +0 -76
  760. package/src/domains/shared/stories/pack/compilePackCommands.ts +0 -40
  761. package/src/domains/shared/stories/pack/compilePackStories.test.ts +0 -146
  762. package/src/domains/shared/stories/pack/compilePackStories.ts +0 -253
  763. package/src/domains/shared/stories/pack/compilePackToolSpecs.ts +0 -43
  764. package/src/domains/shared/stories/pack/index.ts +0 -28
  765. package/src/domains/shared/stories/pack/runSelectQuery.ts +0 -31
  766. package/src/domains/shared/stories/pack/standardParity.test.ts +0 -308
  767. package/src/domains/shared/stories/pack/types.ts +0 -104
  768. package/src/domains/shared/stories/pack/validateStoryPackDefinition.test.ts +0 -240
  769. package/src/domains/shared/stories/pack/validateStoryPackDefinition.ts +0 -408
  770. package/src/domains/shared/stories/projectCliParameters.test.ts +0 -59
  771. package/src/domains/shared/stories/projectCliParameters.ts +0 -57
  772. package/src/domains/shared/stories/projectToolParams.test.ts +0 -50
  773. package/src/domains/shared/stories/projectToolParams.ts +0 -32
  774. package/src/domains/shared/stories/requirePragmaContext.test.ts +0 -23
  775. package/src/domains/shared/stories/requirePragmaContext.ts +0 -23
  776. package/src/domains/shared/stories/resolveLookupDetailed.test.ts +0 -57
  777. package/src/domains/shared/stories/resolveLookupDetailed.ts +0 -27
  778. package/src/domains/shared/stories/types.ts +0 -171
  779. package/src/domains/shared/suggestions/detectCrossDomain.test.ts +0 -43
  780. package/src/domains/shared/suggestions/detectCrossDomain.ts +0 -116
  781. package/src/domains/shared/suggestions/expandGlob.test.ts +0 -92
  782. package/src/domains/shared/suggestions/expandGlob.ts +0 -52
  783. package/src/domains/shared/suggestions/expandLookupQueries.ts +0 -57
  784. package/src/domains/shared/suggestions/index.ts +0 -7
  785. package/src/domains/shared/suggestions/listDomainNames.ts +0 -61
  786. package/src/domains/shared/suggestions/suggestNames.test.ts +0 -70
  787. package/src/domains/shared/suggestions/suggestNames.ts +0 -130
  788. package/src/domains/shared/types/block.ts +0 -107
  789. package/src/domains/shared/types/common.ts +0 -33
  790. package/src/domains/shared/types/graph.ts +0 -17
  791. package/src/domains/shared/types/index.ts +0 -50
  792. package/src/domains/shared/types/modifier.ts +0 -22
  793. package/src/domains/shared/types/ontology.ts +0 -50
  794. package/src/domains/shared/types/runtime.ts +0 -24
  795. package/src/domains/shared/types/sample.ts +0 -17
  796. package/src/domains/shared/types/standard.ts +0 -64
  797. package/src/domains/shared/types/tier.ts +0 -15
  798. package/src/domains/shared/types/token.ts +0 -30
  799. package/src/domains/skill/commands/index.ts +0 -4
  800. package/src/domains/skill/commands/list.test.ts +0 -115
  801. package/src/domains/skill/commands/list.ts +0 -11
  802. package/src/domains/skill/commands/lookup.test.ts +0 -118
  803. package/src/domains/skill/commands/lookup.ts +0 -14
  804. package/src/domains/skill/formatters/index.ts +0 -3
  805. package/src/domains/skill/formatters/list.test.ts +0 -140
  806. package/src/domains/skill/formatters/list.ts +0 -119
  807. package/src/domains/skill/formatters/lookup.test.ts +0 -46
  808. package/src/domains/skill/formatters/lookup.ts +0 -57
  809. package/src/domains/skill/formatters/types.ts +0 -8
  810. package/src/domains/skill/helpers/index.ts +0 -6
  811. package/src/domains/skill/helpers/parseFrontmatter.test.ts +0 -122
  812. package/src/domains/skill/helpers/parseFrontmatter.ts +0 -112
  813. package/src/domains/skill/helpers/resolveSkillSources.ts +0 -70
  814. package/src/domains/skill/index.ts +0 -23
  815. package/src/domains/skill/mcp/index.ts +0 -2
  816. package/src/domains/skill/mcp/specs.ts +0 -19
  817. package/src/domains/skill/operations/discover.test.ts +0 -176
  818. package/src/domains/skill/operations/discover.ts +0 -59
  819. package/src/domains/skill/operations/index.ts +0 -5
  820. package/src/domains/skill/operations/list.test.ts +0 -76
  821. package/src/domains/skill/operations/list.ts +0 -47
  822. package/src/domains/skill/operations/lookup.test.ts +0 -91
  823. package/src/domains/skill/operations/lookup.ts +0 -70
  824. package/src/domains/skill/stories.test.ts +0 -43
  825. package/src/domains/skill/stories.ts +0 -103
  826. package/src/domains/skill/types.ts +0 -33
  827. package/src/domains/standard/commands/categories.test.ts +0 -70
  828. package/src/domains/standard/commands/categories.ts +0 -48
  829. package/src/domains/standard/commands/index.ts +0 -6
  830. package/src/domains/standard/commands/list.test.ts +0 -105
  831. package/src/domains/standard/commands/list.ts +0 -11
  832. package/src/domains/standard/commands/lookup.test.ts +0 -135
  833. package/src/domains/standard/commands/lookup.ts +0 -14
  834. package/src/domains/standard/commands/sample.ts +0 -57
  835. package/src/domains/standard/formatters/categories.test.ts +0 -44
  836. package/src/domains/standard/formatters/categories.ts +0 -38
  837. package/src/domains/standard/formatters/index.ts +0 -10
  838. package/src/domains/standard/formatters/list.test.ts +0 -169
  839. package/src/domains/standard/formatters/list.ts +0 -184
  840. package/src/domains/standard/formatters/lookup.test.ts +0 -95
  841. package/src/domains/standard/formatters/lookup.ts +0 -101
  842. package/src/domains/standard/formatters/sample.ts +0 -15
  843. package/src/domains/standard/formatters/types.ts +0 -31
  844. package/src/domains/standard/index.ts +0 -40
  845. package/src/domains/standard/mcp/index.ts +0 -2
  846. package/src/domains/standard/mcp/specs.ts +0 -89
  847. package/src/domains/standard/operations/categories.test.ts +0 -61
  848. package/src/domains/standard/operations/categories.ts +0 -38
  849. package/src/domains/standard/operations/index.ts +0 -6
  850. package/src/domains/standard/operations/list.test.ts +0 -75
  851. package/src/domains/standard/operations/list.ts +0 -64
  852. package/src/domains/standard/operations/lookup.test.ts +0 -58
  853. package/src/domains/standard/operations/lookup.ts +0 -151
  854. package/src/domains/standard/operations/sample.ts +0 -35
  855. package/src/domains/standard/orchestration/buildStandardFilters.ts +0 -11
  856. package/src/domains/standard/orchestration/index.ts +0 -4
  857. package/src/domains/standard/orchestration/resolveStandardList.ts +0 -45
  858. package/src/domains/standard/orchestration/resolveStandardLookup.ts +0 -33
  859. package/src/domains/standard/orchestration/standardEmptyError.test.ts +0 -33
  860. package/src/domains/standard/orchestration/standardEmptyError.ts +0 -29
  861. package/src/domains/standard/standardConfig.ts +0 -42
  862. package/src/domains/standard/stories.test.ts +0 -24
  863. package/src/domains/standard/stories.ts +0 -151
  864. package/src/domains/standard/types.ts +0 -15
  865. package/src/domains/tier/commands/index.ts +0 -3
  866. package/src/domains/tier/commands/list.test.ts +0 -67
  867. package/src/domains/tier/commands/list.ts +0 -9
  868. package/src/domains/tier/formatters/index.ts +0 -3
  869. package/src/domains/tier/formatters/list.test.ts +0 -33
  870. package/src/domains/tier/formatters/list.ts +0 -45
  871. package/src/domains/tier/index.ts +0 -17
  872. package/src/domains/tier/mcp/index.ts +0 -2
  873. package/src/domains/tier/mcp/specs.ts +0 -12
  874. package/src/domains/tier/operations/index.ts +0 -3
  875. package/src/domains/tier/operations/list.test.ts +0 -32
  876. package/src/domains/tier/operations/list.ts +0 -33
  877. package/src/domains/tier/stories.test.ts +0 -22
  878. package/src/domains/tier/stories.ts +0 -52
  879. package/src/domains/token/commands/add-config.test.ts +0 -68
  880. package/src/domains/token/commands/add-config.ts +0 -62
  881. package/src/domains/token/commands/index.ts +0 -6
  882. package/src/domains/token/commands/list.test.ts +0 -82
  883. package/src/domains/token/commands/list.ts +0 -54
  884. package/src/domains/token/commands/lookup.test.ts +0 -125
  885. package/src/domains/token/commands/lookup.ts +0 -95
  886. package/src/domains/token/commands/sample.ts +0 -53
  887. package/src/domains/token/formatters/index.ts +0 -8
  888. package/src/domains/token/formatters/list.test.ts +0 -37
  889. package/src/domains/token/formatters/list.ts +0 -24
  890. package/src/domains/token/formatters/lookup.test.ts +0 -61
  891. package/src/domains/token/formatters/lookup.ts +0 -107
  892. package/src/domains/token/formatters/sample.ts +0 -16
  893. package/src/domains/token/index.ts +0 -40
  894. package/src/domains/token/mcp/index.ts +0 -2
  895. package/src/domains/token/mcp/specs.ts +0 -195
  896. package/src/domains/token/operations/add-config.test.ts +0 -68
  897. package/src/domains/token/operations/add-config.ts +0 -61
  898. package/src/domains/token/operations/index.ts +0 -8
  899. package/src/domains/token/operations/list.test.ts +0 -50
  900. package/src/domains/token/operations/list.ts +0 -52
  901. package/src/domains/token/operations/lookup.test.ts +0 -42
  902. package/src/domains/token/operations/lookup.ts +0 -75
  903. package/src/domains/token/operations/sample.ts +0 -32
  904. package/src/domains/token/orchestration/index.ts +0 -3
  905. package/src/domains/token/orchestration/resolveTokenList.ts +0 -17
  906. package/src/domains/token/orchestration/resolveTokenLookup.ts +0 -33
  907. package/src/domains/token/orchestration/tokenEmptyError.test.ts +0 -33
  908. package/src/domains/token/orchestration/tokenEmptyError.ts +0 -20
  909. package/src/domains/token/tokenConfig.ts +0 -38
  910. package/src/domains/token/types.ts +0 -6
  911. package/src/domains/trace/commands/clear.ts +0 -71
  912. package/src/domains/trace/commands/index.ts +0 -5
  913. package/src/domains/trace/commands/sessions.ts +0 -32
  914. package/src/domains/trace/commands/show.ts +0 -145
  915. package/src/domains/trace/formatters/index.ts +0 -9
  916. package/src/domains/trace/formatters/sessions.ts +0 -80
  917. package/src/domains/trace/formatters/show.ts +0 -122
  918. package/src/domains/trace/index.ts +0 -17
  919. package/src/domains/trace/operations/index.ts +0 -8
  920. package/src/domains/trace/operations/listSessions.test.ts +0 -55
  921. package/src/domains/trace/operations/listSessions.ts +0 -52
  922. package/src/domains/trace/operations/readTraceLog.test.ts +0 -100
  923. package/src/domains/trace/operations/readTraceLog.ts +0 -104
  924. package/src/domains/trace/tracePlugin.test.ts +0 -171
  925. package/src/domains/trace/tracePlugin.ts +0 -159
  926. package/src/domains/trace/types.ts +0 -65
  927. package/src/embedWasm.ts +0 -42
  928. package/src/error/PragmaError.test.ts +0 -121
  929. package/src/error/PragmaError.ts +0 -177
  930. package/src/error/constants.ts +0 -12
  931. package/src/error/index.ts +0 -4
  932. package/src/error/types.ts +0 -55
  933. package/src/mcp/createMcpServer.test.ts +0 -41
  934. package/src/mcp/createMcpServer.ts +0 -53
  935. package/src/mcp/error/buildRecovery.test.ts +0 -37
  936. package/src/mcp/error/buildRecovery.ts +0 -17
  937. package/src/mcp/error/index.ts +0 -12
  938. package/src/mcp/error/serializeError.test.ts +0 -121
  939. package/src/mcp/error/serializeError.ts +0 -31
  940. package/src/mcp/error/serializeErrorPayload.test.ts +0 -38
  941. package/src/mcp/error/serializeErrorPayload.ts +0 -34
  942. package/src/mcp/error/types.ts +0 -59
  943. package/src/mcp/index.ts +0 -15
  944. package/src/mcp/registerResources.test.ts +0 -566
  945. package/src/mcp/registerResources.ts +0 -9
  946. package/src/mcp/resources/buildGraphIndex.ts +0 -167
  947. package/src/mcp/resources/buildResourceList.test.ts +0 -97
  948. package/src/mcp/resources/buildResourceList.ts +0 -176
  949. package/src/mcp/resources/classifyEntity.test.ts +0 -40
  950. package/src/mcp/resources/classifyEntity.ts +0 -27
  951. package/src/mcp/resources/constants.ts +0 -105
  952. package/src/mcp/resources/displayPredicates.ts +0 -62
  953. package/src/mcp/resources/pickFirstValue.test.ts +0 -29
  954. package/src/mcp/resources/pickFirstValue.ts +0 -26
  955. package/src/mcp/resources/pickPrimaryType.test.ts +0 -41
  956. package/src/mcp/resources/pickPrimaryType.ts +0 -26
  957. package/src/mcp/resources/rankUriCompletions.test.ts +0 -52
  958. package/src/mcp/resources/rankUriCompletions.ts +0 -64
  959. package/src/mcp/resources/readEntity.ts +0 -169
  960. package/src/mcp/resources/registerResources.ts +0 -126
  961. package/src/mcp/resources/types.ts +0 -128
  962. package/src/mcp/runMcpServer.test.ts +0 -66
  963. package/src/mcp/runMcpServer.ts +0 -24
  964. package/src/mcp/tools/index.ts +0 -66
  965. package/src/mcp/tools/registerFromSpec.ts +0 -97
  966. package/src/mcp/tools/registerTools.test.ts +0 -1201
  967. package/src/mcp/types.ts +0 -66
  968. package/src/mcp/utils/estimateTokens.test.ts +0 -14
  969. package/src/mcp/utils/estimateTokens.ts +0 -9
  970. package/src/mcp/utils/index.ts +0 -11
  971. package/src/mcp/utils/wrapTool.test.ts +0 -109
  972. package/src/mcp/utils/wrapTool.ts +0 -81
  973. package/src/package-manager/constants.ts +0 -29
  974. package/src/package-manager/detectInstallSource.test.ts +0 -23
  975. package/src/package-manager/detectInstallSource.ts +0 -111
  976. package/src/package-manager/detectLocalInstall.test.ts +0 -16
  977. package/src/package-manager/detectLocalInstall.ts +0 -43
  978. package/src/package-manager/detectPackageManager.test.ts +0 -81
  979. package/src/package-manager/detectPackageManager.ts +0 -30
  980. package/src/package-manager/index.ts +0 -6
  981. package/src/package-manager/types.ts +0 -10
  982. package/src/pipeline/collectCommands.test.ts +0 -37
  983. package/src/pipeline/collectCommands.ts +0 -60
  984. package/src/pipeline/constants.ts +0 -14
  985. package/src/pipeline/createProgram.test.ts +0 -112
  986. package/src/pipeline/createProgram.ts +0 -89
  987. package/src/pipeline/formatTerminal.test.ts +0 -43
  988. package/src/pipeline/formatTerminal.ts +0 -53
  989. package/src/pipeline/index.ts +0 -22
  990. package/src/pipeline/mapExitCode.test.ts +0 -41
  991. package/src/pipeline/mapExitCode.ts +0 -12
  992. package/src/pipeline/parseGlobalFlags.test.ts +0 -92
  993. package/src/pipeline/parseGlobalFlags.ts +0 -46
  994. package/src/pipeline/renderError.test.ts +0 -151
  995. package/src/pipeline/renderError.ts +0 -129
  996. package/src/pipeline/resolveCommandKind.test.ts +0 -68
  997. package/src/pipeline/resolveCommandKind.ts +0 -78
  998. package/src/pipeline/runCli.orchestration.test.ts +0 -419
  999. package/src/pipeline/runCli.test.ts +0 -70
  1000. package/src/pipeline/runCli.ts +0 -268
  1001. package/src/pipeline/types.ts +0 -17
  1002. package/src/testing/cli.ts +0 -43
  1003. package/src/testing/createTestMcpClient.ts +0 -68
  1004. package/src/testing/dsFixtures.ts +0 -506
  1005. package/src/testing/fixtures/canonical-config.json +0 -4
  1006. package/src/testing/fixtures/canonical.ttl +0 -437
  1007. package/src/testing/fixtures/filtered-config.json +0 -4
  1008. package/src/testing/fixtures.ts +0 -34
  1009. package/src/testing/graphqlFixtures.ts +0 -72
  1010. package/src/testing/helpers/assertParity.ts +0 -28
  1011. package/src/testing/helpers/createTestMcpClient.ts +0 -40
  1012. package/src/testing/helpers/createTestRuntime.ts +0 -67
  1013. package/src/testing/index.ts +0 -25
  1014. package/src/testing/integration/__snapshots__/executor-golden.test.ts.snap +0 -1207
  1015. package/src/testing/integration/agent-session.test.ts +0 -148
  1016. package/src/testing/integration/boot.test.ts +0 -105
  1017. package/src/testing/integration/cli-user-stories.test.ts +0 -198
  1018. package/src/testing/integration/cross-binary-byte-equality.test.ts +0 -129
  1019. package/src/testing/integration/edge-cases.test.ts +0 -263
  1020. package/src/testing/integration/executor-execution.test.ts +0 -101
  1021. package/src/testing/integration/executor-golden.test.ts +0 -145
  1022. package/src/testing/integration/mcp-surface.test.ts +0 -580
  1023. package/src/testing/integration/parity.test.ts +0 -547
  1024. package/src/testing/regression/0001-skill-discovery-granularity.test.ts +0 -71
  1025. package/src/testing/standardParityFixtures.ts +0 -92
  1026. package/src/testing/store.ts +0 -39
  1027. package/src/testing/storyFixtures.ts +0 -63
  1028. package/src/testing/types.ts +0 -20
  1029. package/src/tui/components/BulletList/BulletList.tsx +0 -46
  1030. package/src/tui/components/BulletList/index.ts +0 -2
  1031. package/src/tui/components/BulletList/types.ts +0 -6
  1032. package/src/tui/components/Card/Card.tsx +0 -73
  1033. package/src/tui/components/Card/index.ts +0 -1
  1034. package/src/tui/components/Card/types.ts +0 -12
  1035. package/src/tui/components/CodeBlock/CodeBlock.tsx +0 -37
  1036. package/src/tui/components/CodeBlock/index.ts +0 -2
  1037. package/src/tui/components/CodeBlock/types.ts +0 -6
  1038. package/src/tui/components/DataRow/DataRow.tsx +0 -80
  1039. package/src/tui/components/DataRow/index.ts +0 -2
  1040. package/src/tui/components/DataRow/types.ts +0 -14
  1041. package/src/tui/components/FieldRow/FieldRow.tsx +0 -24
  1042. package/src/tui/components/FieldRow/index.ts +0 -2
  1043. package/src/tui/components/FieldRow/types.ts +0 -10
  1044. package/src/tui/components/HeaderRow/HeaderRow.tsx +0 -32
  1045. package/src/tui/components/HeaderRow/index.ts +0 -2
  1046. package/src/tui/components/HeaderRow/types.ts +0 -8
  1047. package/src/tui/components/MarkdownText/MarkdownText.tsx +0 -19
  1048. package/src/tui/components/MarkdownText/index.ts +0 -2
  1049. package/src/tui/components/MarkdownText/types.ts +0 -4
  1050. package/src/tui/components/MiniTable/MiniTable.tsx +0 -82
  1051. package/src/tui/components/MiniTable/index.ts +0 -2
  1052. package/src/tui/components/MiniTable/types.ts +0 -6
  1053. package/src/tui/components/SectionRenderer/SectionRenderer.tsx +0 -91
  1054. package/src/tui/components/SectionRenderer/index.ts +0 -2
  1055. package/src/tui/components/SectionRenderer/types.ts +0 -15
  1056. package/src/tui/components/TreeView/TreeView.tsx +0 -84
  1057. package/src/tui/components/TreeView/index.ts +0 -2
  1058. package/src/tui/components/TreeView/types.ts +0 -6
  1059. package/src/tui/components/index.ts +0 -19
  1060. package/src/tui/constants.ts +0 -39
  1061. package/src/tui/createListView.ts +0 -23
  1062. package/src/tui/createLookupView.ts +0 -26
  1063. package/src/tui/helpers/computeWidths.ts +0 -53
  1064. package/src/tui/helpers/fitColumns.ts +0 -33
  1065. package/src/tui/helpers/formatMarkdown.ts +0 -19
  1066. package/src/tui/helpers/getTerminalSize.ts +0 -16
  1067. package/src/tui/helpers/index.ts +0 -6
  1068. package/src/tui/helpers/syntaxColor.ts +0 -67
  1069. package/src/tui/helpers/truncateText.ts +0 -12
  1070. package/src/tui/hooks/index.ts +0 -3
  1071. package/src/tui/hooks/types.ts +0 -7
  1072. package/src/tui/hooks/useAutoExit.ts +0 -17
  1073. package/src/tui/hooks/useTerminalSize.ts +0 -19
  1074. package/src/tui/index.ts +0 -15
  1075. package/src/tui/renderInk.tsx +0 -18
  1076. package/src/tui/types.ts +0 -12
  1077. package/src/tui/views/ListView/ListView.tsx +0 -104
  1078. package/src/tui/views/ListView/index.ts +0 -2
  1079. package/src/tui/views/ListView/types.ts +0 -14
  1080. package/src/tui/views/LookupView/LookupView.tsx +0 -244
  1081. package/src/tui/views/LookupView/index.ts +0 -2
  1082. package/src/tui/views/LookupView/types.ts +0 -16
  1083. package/src/tui/views/index.ts +0 -4
@@ -0,0 +1,101 @@
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 `--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
+
10
+ import type { PragmaError } from "./PragmaError.js";
11
+ import { serializeError } from "./serialize.js";
12
+
13
+ /**
14
+ * Render a {@link PragmaError} as human-readable plain text for the terminal.
15
+ *
16
+ * @param error - The structured error to render.
17
+ * @returns Multi-line plain text string.
18
+ */
19
+ function renderErrorPlain(error: PragmaError): string {
20
+ const lines: string[] = [`Error: ${error.message}`];
21
+
22
+ if (error.suggestions.length > 0) {
23
+ lines.push("", "Did you mean?");
24
+ for (const suggestion of error.suggestions) {
25
+ lines.push(` - ${suggestion}`);
26
+ }
27
+ }
28
+
29
+ if (error.filters) {
30
+ lines.push("", "Active filters:");
31
+ for (const [key, value] of Object.entries(error.filters)) {
32
+ lines.push(` ${key}: ${value}`);
33
+ }
34
+ }
35
+
36
+ if (error.validOptions && error.validOptions.length > 0) {
37
+ lines.push("", `Valid options: ${error.validOptions.join(", ")}`);
38
+ }
39
+
40
+ if (error.recovery) {
41
+ lines.push("");
42
+ // Keep the human guidance AND the runnable command — dropping the message
43
+ // when a `cli` is present loses the WHY (e.g. "Build the local store …").
44
+ lines.push(
45
+ error.recovery.cli
46
+ ? `${error.recovery.message} Run \`${error.recovery.cli}\``
47
+ : error.recovery.message,
48
+ );
49
+ }
50
+
51
+ return lines.join("\n");
52
+ }
53
+
54
+ /**
55
+ * Render a {@link PragmaError} as condensed Markdown for agent consumption.
56
+ *
57
+ * @param error - The structured error to render.
58
+ * @returns Markdown-formatted string.
59
+ */
60
+ function renderErrorLlm(error: PragmaError): string {
61
+ const lines: string[] = [`## Error: ${error.code}`, error.message];
62
+
63
+ if (error.suggestions.length > 0) {
64
+ lines.push(`Suggestions: ${error.suggestions.join(", ")}`);
65
+ }
66
+
67
+ if (error.filters) {
68
+ const filterParts = Object.entries(error.filters)
69
+ .map(([key, value]) => `${key}=${value}`)
70
+ .join(", ");
71
+ lines.push(`Filters: ${filterParts}`);
72
+ }
73
+
74
+ if (error.validOptions && error.validOptions.length > 0) {
75
+ lines.push(`Valid options: ${error.validOptions.join(", ")}`);
76
+ }
77
+
78
+ if (error.recovery) {
79
+ // Keep both the guidance and the runnable command (message was dropped when
80
+ // a `cli` was present).
81
+ lines.push(
82
+ error.recovery.cli
83
+ ? `Recovery: ${error.recovery.message} \`${error.recovery.cli}\``
84
+ : `Recovery: ${error.recovery.message}`,
85
+ );
86
+ }
87
+
88
+ return lines.join("\n");
89
+ }
90
+
91
+ /**
92
+ * Render a {@link PragmaError} as the `{ ok: false, error }` JSON envelope.
93
+ *
94
+ * @param error - The structured error to render.
95
+ * @returns Serialized failure envelope, identical to the MCP error envelope.
96
+ */
97
+ function renderErrorJson(error: PragmaError): string {
98
+ return JSON.stringify({ ok: false, error: serializeError(error) });
99
+ }
100
+
101
+ export { renderErrorJson, renderErrorLlm, renderErrorPlain };
@@ -0,0 +1,28 @@
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
+ import type { PragmaError } from "./PragmaError.js";
11
+ import type { ErrorPayload } from "./types.js";
12
+
13
+ /**
14
+ * Project a {@link PragmaError} onto the frozen {@link ErrorPayload} shape.
15
+ *
16
+ * @param error - The structured error to serialize.
17
+ * @returns The payload embedded under `error` in the failure envelope.
18
+ */
19
+ export function serializeError(error: PragmaError): ErrorPayload {
20
+ return {
21
+ code: error.code,
22
+ message: error.message,
23
+ ...(error.suggestions.length > 0 && { suggestions: error.suggestions }),
24
+ ...(error.recovery && { recovery: error.recovery }),
25
+ ...(error.validOptions && { validOptions: error.validOptions }),
26
+ ...(error.filters && { filters: error.filters }),
27
+ };
28
+ }
@@ -0,0 +1,62 @@
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
+
9
+ import type { ERROR_CODES } from "./constants.js";
10
+
11
+ /** Union of all recognized error code literals. */
12
+ type ErrorCode = (typeof ERROR_CODES)[number];
13
+
14
+ /**
15
+ * Structured recovery hint attached to a {@link PragmaError}.
16
+ *
17
+ * `cli` — when present — is the exact command the user can run to recover; it
18
+ * always begins with the literal `pragma ` prefix (D5), enforced by
19
+ * {@link assertRecoveryCli}.
20
+ */
21
+ interface Recovery {
22
+ /** Human-readable recovery guidance. */
23
+ message: string;
24
+ /** CLI command the user can run to recover (starts with `pragma `). */
25
+ cli?: string;
26
+ /** MCP tool invocation an agent can call to recover. */
27
+ mcp?: { tool: string; params?: Record<string, unknown> };
28
+ }
29
+
30
+ /** Raw data payload used to construct a {@link PragmaError}. */
31
+ interface PragmaErrorData {
32
+ /** Machine-readable error classification. */
33
+ code: ErrorCode;
34
+ /** Human-readable error message. */
35
+ message: string;
36
+ /** Entity that triggered the error, if applicable. */
37
+ entity?: { type: string; name: string };
38
+ /** Fuzzy-matched alternative names. */
39
+ suggestions?: string[];
40
+ /** Recovery hint for CLI and MCP adapters. */
41
+ recovery?: Recovery;
42
+ /** Active filters at the time of the error. */
43
+ filters?: Record<string, string>;
44
+ /** Enumerated valid options when input was rejected. */
45
+ validOptions?: string[];
46
+ }
47
+
48
+ /**
49
+ * The serialized error payload embedded in the `{ ok: false, error }`
50
+ * envelope — the exact shape the surface covenant freezes. Optional fields
51
+ * are omitted (never `undefined`) so CLI-JSON and MCP output are byte-equal.
52
+ */
53
+ interface ErrorPayload {
54
+ readonly code: ErrorCode;
55
+ readonly message: string;
56
+ readonly suggestions?: readonly string[];
57
+ readonly recovery?: Recovery;
58
+ readonly validOptions?: readonly string[];
59
+ readonly filters?: Record<string, string>;
60
+ }
61
+
62
+ export type { ErrorCode, ErrorPayload, PragmaErrorData, Recovery };
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Dynamic pack precedence + uniqueness (PROTECTED).
3
+ *
4
+ * Default config ⇒ effective == static (the golden holds, no config read cost on
5
+ * the fast path). A config story overrides a bundled-pack noun or introduces a
6
+ * new one; a story claiming a non-pack authored noun, a duplicate noun, or any
7
+ * surviving `(noun, verb)` collision is rejected.
8
+ */
9
+
10
+ import { describe, expect, it } from "vitest";
11
+ import type { ConfigLayers } from "../config/types.js";
12
+ import type { CapabilityModule, VerbSpec } from "../spec/types.js";
13
+ import { assembleEffectiveModules } from "./collect.js";
14
+ import { assertUniqueVerbs } from "./uniqueness.js";
15
+
16
+ /** A trivial storeless verb for a fake authored module. */
17
+ function fakeVerb(noun: string, verb?: string): VerbSpec {
18
+ return {
19
+ path: verb ? [noun, verb] : [noun],
20
+ summary: `${noun} ${verb ?? ""}`.trim(),
21
+ params: [],
22
+ output: {
23
+ formatters: { plain: () => "", llm: () => "", json: () => "{}" },
24
+ },
25
+ capability: {
26
+ needsStore: false,
27
+ mutates: false,
28
+ mcp: { expose: false, reason: "fake" },
29
+ },
30
+ run: async () => ({}),
31
+ };
32
+ }
33
+
34
+ const STATIC: CapabilityModule[] = [
35
+ { name: "config", verbs: [fakeVerb("config", "show")] },
36
+ { name: "standard", verbs: [fakeVerb("standard", "list")] },
37
+ ];
38
+
39
+ function layers(stories: unknown[]): ConfigLayers {
40
+ return {
41
+ config: { channel: "normal", stories },
42
+ origins: {
43
+ tier: "default",
44
+ channel: "default",
45
+ detail: "default",
46
+ packages: "default",
47
+ stories: stories.length > 0 ? "project" : "default",
48
+ prefixes: "default",
49
+ prompts: "default",
50
+ },
51
+ global: { path: "", exists: false },
52
+ project: { exists: false },
53
+ };
54
+ }
55
+
56
+ const validPack = (noun: string) => ({
57
+ noun,
58
+ list: {
59
+ query: "SELECT ?uri WHERE { ?uri a ex:Thing }",
60
+ columns: [{ field: "uri" }],
61
+ },
62
+ });
63
+
64
+ describe("assembleEffectiveModules (PROTECTED)", () => {
65
+ it("default config (no stories) returns the static modules unchanged", () => {
66
+ expect(assembleEffectiveModules(STATIC, layers([]))).toBe(STATIC);
67
+ });
68
+
69
+ it("a config story overrides a bundled-pack noun", () => {
70
+ const effective = assembleEffectiveModules(
71
+ STATIC,
72
+ layers([validPack("standard")]),
73
+ );
74
+ const standard = effective.find((m) => m.name === "standard");
75
+ // The bundled `standard` module was replaced by the config pack (source
76
+ // "config"); it still owns exactly `standard list`.
77
+ expect(standard?.verbs.map((v) => v.path.join(" "))).toEqual([
78
+ "standard list",
79
+ ]);
80
+ expect(effective.filter((m) => m.name === "standard")).toHaveLength(1);
81
+ });
82
+
83
+ it("a config story introduces a new noun", () => {
84
+ const effective = assembleEffectiveModules(
85
+ STATIC,
86
+ layers([validPack("recipe")]),
87
+ );
88
+ expect(effective.map((m) => m.name).sort()).toEqual([
89
+ "config",
90
+ "recipe",
91
+ "standard",
92
+ ]);
93
+ });
94
+
95
+ it("carries a config story's colophon onto its module (for `pragma colophon`)", () => {
96
+ const effective = assembleEffectiveModules(
97
+ STATIC,
98
+ layers([{ ...validPack("recipe"), colophon: "How recipes are made." }]),
99
+ );
100
+ const recipe = effective.find((m) => m.name === "recipe");
101
+ expect(recipe?.colophon).toBe("How recipes are made.");
102
+ // A story without a colophon carries `undefined` (the field is optional).
103
+ const plain = assembleEffectiveModules(STATIC, layers([validPack("stew")]));
104
+ expect(plain.find((m) => m.name === "stew")?.colophon).toBeUndefined();
105
+ });
106
+
107
+ it("rejects a story claiming a non-pack authored noun", () => {
108
+ expect(() =>
109
+ assembleEffectiveModules(STATIC, layers([validPack("config")])),
110
+ ).toThrow(/built-in command/);
111
+ });
112
+
113
+ it("rejects a duplicate story noun", () => {
114
+ expect(() =>
115
+ assembleEffectiveModules(
116
+ STATIC,
117
+ layers([validPack("recipe"), validPack("recipe")]),
118
+ ),
119
+ ).toThrow(/Duplicate/);
120
+ });
121
+
122
+ it("rejects an invalid story pack (via the zod validator)", () => {
123
+ expect(() =>
124
+ assembleEffectiveModules(STATIC, layers([{ noun: "Bad Noun" }])),
125
+ ).toThrow(/Invalid story/);
126
+ });
127
+ });
128
+
129
+ describe("assertUniqueVerbs (PROTECTED)", () => {
130
+ it("passes disjoint verbs and catches a collision", () => {
131
+ expect(() =>
132
+ assertUniqueVerbs([fakeVerb("a", "list"), fakeVerb("b", "list")]),
133
+ ).not.toThrow();
134
+ expect(() =>
135
+ assertUniqueVerbs([fakeVerb("a", "list"), fakeVerb("a", "list")]),
136
+ ).toThrow(/duplicate command "a list"/);
137
+ });
138
+ });
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Assemble the EFFECTIVE capability modules at dispatch.
3
+ *
4
+ * The `--help`/`__complete` fast paths use the STATIC capabilities (bundled +
5
+ * authored) only. When a real command runs and the project config declares
6
+ * `stories`, this merges them in: a config story overrides a bundled-pack noun
7
+ * (replacing that module) or introduces a new noun; a config story that claims a
8
+ * non-pack authored noun (config, ontology, …) is a hard error, and any
9
+ * surviving `(noun, verb)` collision is caught by uniqueness.
10
+ *
11
+ * Precedence is config > package > bundled. Package-shipped stories are a future
12
+ * source (the new kernel does not yet discover package `stories/*.json`); the
13
+ * seam is here so wiring them later is additive.
14
+ *
15
+ * zod is reached only through {@link parsePackDefinition} (lazy) — this module
16
+ * is imported at dispatch, never on the fast path, so validating config stories
17
+ * costs nothing on `--help`/`__complete`.
18
+ */
19
+
20
+ import type { ConfigLayers } from "../config/types.js";
21
+ import { PragmaError } from "../error/PragmaError.js";
22
+ import type { CapabilityModule } from "../spec/types.js";
23
+ import { compilePack } from "./compile.js";
24
+ import { parsePackDefinition } from "./schema.js";
25
+ import type { PackDefinition } from "./types.js";
26
+ import { assertUniqueVerbs } from "./uniqueness.js";
27
+
28
+ /** The bundled-pack nouns a config/package story may override. */
29
+ export const BUNDLED_PACK_NOUNS: readonly string[] = [
30
+ "standard",
31
+ "tier",
32
+ "modifier",
33
+ "token",
34
+ "block",
35
+ ];
36
+
37
+ /**
38
+ * Merge dynamic (config-declared) story packs into the static capabilities.
39
+ *
40
+ * @param staticModules - The static capabilities (bundled + authored).
41
+ * @param layers - The resolved config layers (its `config.stories`, `prefixes`).
42
+ * @returns The effective modules, uniqueness-checked.
43
+ * @throws PragmaError CONFIG_ERROR on an invalid story, a story claiming a
44
+ * non-pack authored noun, or a duplicate story noun.
45
+ */
46
+ export function assembleEffectiveModules(
47
+ staticModules: readonly CapabilityModule[],
48
+ layers: ConfigLayers,
49
+ ): readonly CapabilityModule[] {
50
+ const stories = layers.config.stories ?? [];
51
+ if (stories.length === 0) return staticModules;
52
+
53
+ const prefixes = layers.config.prefixes ?? {};
54
+ const overridable = new Set(BUNDLED_PACK_NOUNS);
55
+ const staticNouns = new Set(staticModules.map((module) => module.name));
56
+
57
+ const seen = new Set<string>();
58
+ const dynamic: CapabilityModule[] = [];
59
+ for (const raw of stories) {
60
+ const definition: PackDefinition = parsePackDefinition(raw, "config");
61
+ if (seen.has(definition.noun)) {
62
+ throw PragmaError.configError(
63
+ `Duplicate story noun "${definition.noun}" in config.`,
64
+ );
65
+ }
66
+ if (staticNouns.has(definition.noun) && !overridable.has(definition.noun)) {
67
+ throw PragmaError.configError(
68
+ `Story noun "${definition.noun}" collides with a built-in command.`,
69
+ );
70
+ }
71
+ seen.add(definition.noun);
72
+ dynamic.push({
73
+ name: definition.noun,
74
+ verbs: compilePack(definition, "config", prefixes),
75
+ colophon: definition.colophon,
76
+ });
77
+ }
78
+
79
+ // Drop the bundled module for any noun a config story overrides, then append
80
+ // the dynamic modules.
81
+ const kept = staticModules.filter((module) => !seen.has(module.name));
82
+ const effective = [...kept, ...dynamic];
83
+ assertUniqueVerbs(effective.flatMap((module) => [...module.verbs]));
84
+ return effective;
85
+ }
86
+
87
+ /**
88
+ * Load the effective modules for a real invocation: read the layered config and
89
+ * merge its story packs into the static capabilities.
90
+ *
91
+ * Reached only at DISPATCH (real command / MCP serve), never on the
92
+ * `--help`/`__complete` fast path, so the config read and zod validation never
93
+ * cost the storeless paths. The config reader is dynamic-imported to keep even
94
+ * this module's static graph free of it.
95
+ *
96
+ * @param staticModules - The static capabilities (bundled + authored).
97
+ * @param cwd - The directory to resolve project config against.
98
+ * @returns The effective modules (static when no config stories are declared).
99
+ * @note Impure — reads the project/global config.
100
+ */
101
+ export async function loadEffectiveModules(
102
+ staticModules: readonly CapabilityModule[],
103
+ cwd: string,
104
+ ): Promise<readonly CapabilityModule[]> {
105
+ const { readConfig } = await import("../config/readConfig.js");
106
+ const layers = await readConfig(cwd);
107
+ return assembleEffectiveModules(staticModules, layers);
108
+ }
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Compiler invariants (PROTECTED) — the single pack compiler.
3
+ *
4
+ * Closes fork F3: one grammar, one compiler. Asserts the round-trip
5
+ * (validate∘serialize is identity), the projected verb shapes and
6
+ * `(noun, verb)` uniqueness (storeless), and the SPARQL fetch path end to end
7
+ * against a fixture store (list filter/search, lookup by name, sample).
8
+ */
9
+
10
+ import { afterAll, beforeAll, describe, expect, it } from "vitest";
11
+ import { buildFixtureRuntime } from "../../testing/helpers/packRuntime.js";
12
+ import type { PragmaRuntime } from "../runtime/types.js";
13
+ import { compilePack } from "./compile.js";
14
+ import type { LookupOutput } from "./resolveEntity.js";
15
+ import { parsePackDefinition } from "./schema.js";
16
+ import type { PackDefinition, PackRow } from "./types.js";
17
+ import { assertUniqueVerbs, verbKey } from "./uniqueness.js";
18
+
19
+ const PREFIXES = {
20
+ ex: "https://example.org/widgets#",
21
+ owl: "http://www.w3.org/2002/07/owl#",
22
+ rdfs: "http://www.w3.org/2000/01/rdf-schema#",
23
+ xsd: "http://www.w3.org/2001/XMLSchema#",
24
+ };
25
+
26
+ const TTL = `
27
+ @prefix ex: <https://example.org/widgets#> .
28
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
29
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
30
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
31
+
32
+ ex:Widget a owl:Class .
33
+ ex:name a owl:DatatypeProperty ; rdfs:domain ex:Widget ; rdfs:range xsd:string .
34
+ ex:kind a owl:DatatypeProperty ; rdfs:domain ex:Widget ; rdfs:range xsd:string .
35
+ ex:description a owl:DatatypeProperty ; rdfs:domain ex:Widget ; rdfs:range xsd:string .
36
+ ex:hasPart a owl:ObjectProperty ; rdfs:domain ex:Widget ; rdfs:range ex:Widget .
37
+
38
+ ex:button a ex:Widget ; ex:name "Button" ; ex:kind "input" ;
39
+ ex:description "A button." ; ex:hasPart ex:label .
40
+ ex:label a ex:Widget ; ex:name "Label" ; ex:kind "display" ;
41
+ ex:description "A label." .
42
+ `;
43
+
44
+ /** A SPARQL-sourced fixture pack exercising list, filter, search, lookup, sample. */
45
+ const WIDGET_PACK: PackDefinition = {
46
+ noun: "widget",
47
+ description: "List widgets.",
48
+ list: {
49
+ query: [
50
+ "SELECT ?uri ?name ?kind WHERE {",
51
+ " ?uri a ex:Widget ; ex:name ?name .",
52
+ " OPTIONAL { ?uri ex:kind ?kind }",
53
+ "} ORDER BY ?name",
54
+ ].join("\n"),
55
+ columns: [
56
+ { field: "uri", label: "IRI" },
57
+ { field: "name", label: "Name" },
58
+ { field: "kind", label: "Kind" },
59
+ ],
60
+ filters: [
61
+ { param: "kind", variable: "kind", values: ["input", "display"] },
62
+ ],
63
+ search: { variables: ["name"] },
64
+ },
65
+ lookup: {
66
+ source: "sparql",
67
+ by: "ex:name",
68
+ type: "ex:Widget",
69
+ fields: [
70
+ { name: "description", property: "ex:description", level: "standard" },
71
+ ],
72
+ expand: [
73
+ {
74
+ name: "parts",
75
+ heading: "Parts",
76
+ relation: "ex:hasPart",
77
+ level: "detailed",
78
+ select: [{ name: "name", property: "ex:name" }],
79
+ },
80
+ ],
81
+ disclosure: {
82
+ levels: ["summary", "standard", "detailed"],
83
+ default: "summary",
84
+ },
85
+ sample: true,
86
+ },
87
+ };
88
+
89
+ describe("pack compiler — round-trip + shape (PROTECTED, storeless)", () => {
90
+ it("validate∘serialize is identity (JSON round-trips to the same pack)", () => {
91
+ const raw: unknown = JSON.parse(JSON.stringify(WIDGET_PACK));
92
+ expect(parsePackDefinition(raw, "test:widget")).toEqual(WIDGET_PACK);
93
+ });
94
+
95
+ it("projects list, lookup, and sample verbs with unique keys", () => {
96
+ const verbs = compilePack(WIDGET_PACK, "bundled:widget", PREFIXES);
97
+ expect(verbs.map((v) => verbKey(v.path))).toEqual([
98
+ "widget list",
99
+ "widget lookup",
100
+ "widget sample",
101
+ ]);
102
+ expect(() => assertUniqueVerbs(verbs)).not.toThrow();
103
+ });
104
+
105
+ it("projects list filters as params (enum) + a search flag", () => {
106
+ const [list] = compilePack(WIDGET_PACK, "bundled:widget", PREFIXES);
107
+ expect(list?.params.map((p) => p.name)).toEqual(["kind", "search"]);
108
+ const kind = list?.params.find((p) => p.name === "kind");
109
+ expect(kind?.kind).toBe("enum");
110
+ expect(list?.capability.needsStore).toBe(true);
111
+ expect(list?.capability.mcp.expose).toBe(true);
112
+ });
113
+
114
+ it("projects the lookup as a variadic name-completing positional + disclosure", () => {
115
+ const verbs = compilePack(WIDGET_PACK, "bundled:widget", PREFIXES);
116
+ const lookup = verbs.find((v) => verbKey(v.path) === "widget lookup");
117
+ const name = lookup?.params.at(0);
118
+ expect(name?.kind).toBe("string[]");
119
+ expect(name?.positional).toBe(true);
120
+ expect(name?.complete).toEqual({
121
+ kind: "names",
122
+ source: { from: "index", type: "ex:Widget" },
123
+ });
124
+ expect(lookup?.disclosure).toEqual({
125
+ levels: ["summary", "standard", "detailed"],
126
+ default: "summary",
127
+ });
128
+ });
129
+
130
+ it("honors the pack completion override (opt-out + tune)", () => {
131
+ const baseLookup = WIDGET_PACK.lookup as NonNullable<
132
+ PackDefinition["lookup"]
133
+ >;
134
+ const nameParam = (def: PackDefinition) =>
135
+ compilePack(def, "bundled:widget", PREFIXES)
136
+ .find((v) => verbKey(v.path) === "widget lookup")
137
+ ?.params.at(0);
138
+
139
+ // enabled:false opts the family out of completion entirely.
140
+ expect(
141
+ nameParam({
142
+ ...WIDGET_PACK,
143
+ lookup: { ...baseLookup, completion: { enabled: false } },
144
+ })?.complete,
145
+ ).toBeUndefined();
146
+
147
+ // match/minChars tune the derived index heuristic.
148
+ expect(
149
+ nameParam({
150
+ ...WIDGET_PACK,
151
+ lookup: {
152
+ ...baseLookup,
153
+ completion: { match: "prefix", minChars: 3 },
154
+ },
155
+ })?.complete,
156
+ ).toEqual({
157
+ kind: "names",
158
+ source: { from: "index", type: "ex:Widget" },
159
+ match: "prefix",
160
+ minChars: 3,
161
+ });
162
+ });
163
+ });
164
+
165
+ describe("pack compiler — SPARQL fetch path (PROTECTED)", () => {
166
+ let rt: PragmaRuntime;
167
+
168
+ beforeAll(async () => {
169
+ ({ rt } = await buildFixtureRuntime({
170
+ ttl: TTL,
171
+ prefixes: PREFIXES,
172
+ detail: "detailed",
173
+ }));
174
+ });
175
+
176
+ afterAll(async () => {
177
+ (await rt.store.get()).store.dispose();
178
+ });
179
+
180
+ const run = <R>(verbLabel: string, params: Record<string, unknown>) => {
181
+ const verb = compilePack(WIDGET_PACK, "bundled:widget", PREFIXES).find(
182
+ (v) => verbKey(v.path) === `widget ${verbLabel}`,
183
+ );
184
+ if (!verb) throw new Error(`no widget ${verbLabel}`);
185
+ return verb.run(params, rt) as Promise<R>;
186
+ };
187
+
188
+ it("lists rows in the uniform pack shape", async () => {
189
+ const rows = await run<PackRow[]>("list", {});
190
+ expect(rows.map((r) => r.name)).toEqual(["Button", "Label"]);
191
+ expect(rows[0]?.uri).toBe("https://example.org/widgets#button");
192
+ });
193
+
194
+ it("filters by an enum value (post-query row predicate)", async () => {
195
+ const rows = await run<PackRow[]>("list", { kind: "input" });
196
+ expect(rows.map((r) => r.name)).toEqual(["Button"]);
197
+ });
198
+
199
+ it("searches case-insensitively", async () => {
200
+ const rows = await run<PackRow[]>("list", { search: "lab" });
201
+ expect(rows.map((r) => r.name)).toEqual(["Label"]);
202
+ });
203
+
204
+ it("looks up an entity by name with its fields and expands (detailed)", async () => {
205
+ const output = await run<LookupOutput>("lookup", { name: ["Button"] });
206
+ expect(output.errors).toEqual([]);
207
+ const entity = output.results.at(0);
208
+ expect(entity?.name).toBe("Button");
209
+ expect(entity?.description).toBe("A button.");
210
+ expect(entity?.parts).toEqual([{ name: "Label" }]);
211
+ });
212
+
213
+ it("resolves a name case-insensitively and reports misses with suggestions", async () => {
214
+ const hit = await run<LookupOutput>("lookup", { name: ["bUTTON"] });
215
+ expect(hit.results.at(0)?.name).toBe("Button");
216
+ await expect(
217
+ run<LookupOutput>("lookup", { name: ["Buton"] }),
218
+ ).rejects.toThrow(/not found/i);
219
+ });
220
+
221
+ it("samples N full exemplars with the population size", async () => {
222
+ const data = await run<{ samples: PackRow[]; totalCount: number }>(
223
+ "sample",
224
+ { count: "2" },
225
+ );
226
+ expect(data.samples).toHaveLength(2);
227
+ expect(data.totalCount).toBe(2);
228
+ });
229
+ });