@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,195 @@
1
+ /**
2
+ * Assembly-level eval cases (PR7 nouns) — the orientation surface `capabilities`
3
+ * + `instructions` + native prompts add ABOVE per-noun tools.
4
+ *
5
+ * These run over the shared `env.mcp` (the live catalog), so they cost no fixture
6
+ * boot: the catalog, the tool descriptions, the instructions, and the handshake
7
+ * capabilities are all storeless. The NL-intent ("prompt") cases assert that an
8
+ * agent following the annotated catalog would reach the right tool — the payoff
9
+ * of the orientation surface. Data-backed prompt/graph cases live in
10
+ * `cases/effectful.ts`. R2: no noun list is hard-coded — the catalog is read live.
11
+ */
12
+
13
+ import assert from "node:assert/strict";
14
+ import { capabilities } from "../../../capabilities/index.js";
15
+ import { emitSurface } from "../../../kernel/spec/emitSurface.js";
16
+ import type { EvalCase } from "../harness.js";
17
+
18
+ /** Assert an intent maps to a tool by checking that tool's advertised description. */
19
+ function assertIntentTool(
20
+ tools: { name: string; description?: string }[],
21
+ tool: string,
22
+ pattern: RegExp,
23
+ ): void {
24
+ const found = tools.find((t) => t.name === tool);
25
+ assert.ok(found, `expected a \`${tool}\` tool in the catalog`);
26
+ assert.match(String(found?.description ?? ""), pattern);
27
+ }
28
+
29
+ export const assemblyEvalCases: readonly EvalCase[] = [
30
+ {
31
+ id: "tool-capabilities-annotates-every-live-tool",
32
+ kind: "tool",
33
+ input:
34
+ "the `capabilities` tool catalogs EVERY live tool, each with a non-empty use_when hint.",
35
+ async expect({ mcp }) {
36
+ const result = await mcp.callTool("capabilities");
37
+ const data = result.data as {
38
+ tools: { name: string; use_when: string }[];
39
+ };
40
+ const live = (await mcp.listTools()).map((t) => t.name).sort();
41
+ assert.deepEqual(
42
+ data.tools.map((t) => t.name).sort(),
43
+ live,
44
+ "capabilities catalog must cover exactly the live tool set",
45
+ );
46
+ for (const tool of data.tools) {
47
+ assert.ok(
48
+ tool.use_when.length > 0,
49
+ `tool ${tool.name} has an empty use_when`,
50
+ );
51
+ }
52
+ },
53
+ },
54
+ {
55
+ id: "content-capabilities-counts-derived-from-categories",
56
+ kind: "content",
57
+ input:
58
+ "the capabilities counts are derived (total == tools.length; category sizes sum to total; orientation=1, diagnostic=2).",
59
+ async expect({ mcp }) {
60
+ const result = await mcp.callTool("capabilities");
61
+ const data = result.data as {
62
+ tools: unknown[];
63
+ counts: {
64
+ total: number;
65
+ read: number;
66
+ write: number;
67
+ orientation: number;
68
+ diagnostic: number;
69
+ };
70
+ };
71
+ const { counts } = data;
72
+ assert.equal(counts.total, data.tools.length);
73
+ assert.equal(
74
+ counts.read + counts.write + counts.orientation + counts.diagnostic,
75
+ counts.total,
76
+ );
77
+ assert.equal(counts.orientation, 1);
78
+ assert.equal(counts.diagnostic, 2);
79
+ },
80
+ },
81
+ {
82
+ id: "content-capabilities-selfconsistent-with-emitsurface",
83
+ kind: "content",
84
+ input:
85
+ "the capabilities catalog tool set equals emitSurface(capabilities).mcpSurface.tools (grammar self-consistency).",
86
+ async expect({ mcp }) {
87
+ const result = await mcp.callTool("capabilities");
88
+ const data = result.data as { tools: { name: string }[] };
89
+ assert.deepEqual(
90
+ data.tools.map((t) => t.name).sort(),
91
+ [...emitSurface(capabilities).mcpSurface.tools].sort(),
92
+ );
93
+ },
94
+ },
95
+ {
96
+ id: "content-instructions-present-and-mentions-discovery",
97
+ kind: "content",
98
+ input:
99
+ "the server sends handshake instructions that mention `capabilities` and the discovery flow.",
100
+ async expect({ mcp }) {
101
+ const instructions = mcp.instructions();
102
+ assert.ok(instructions, "expected server instructions at initialize");
103
+ assert.match(String(instructions), /capabilities/);
104
+ assert.match(String(instructions).toLowerCase(), /discovery/);
105
+ },
106
+ },
107
+ {
108
+ id: "content-handshake-advertises-tools-resources-prompts",
109
+ kind: "content",
110
+ input:
111
+ "the initialize handshake advertises the tools, resources, AND prompts capabilities.",
112
+ async expect({ mcp }) {
113
+ const caps = mcp.serverCapabilities();
114
+ assert.ok(caps?.tools, "expected a tools capability");
115
+ assert.ok(caps?.resources, "expected a resources capability");
116
+ assert.ok(caps?.prompts, "expected a prompts capability");
117
+ },
118
+ },
119
+ {
120
+ id: "content-capabilities-covers-listtools",
121
+ kind: "content",
122
+ input:
123
+ "every tool the server lists appears in the capabilities catalog (no live tool is invisible to orientation).",
124
+ async expect({ mcp }) {
125
+ const result = await mcp.callTool("capabilities");
126
+ const cataloged = new Set(
127
+ (result.data as { tools: { name: string }[] }).tools.map((t) => t.name),
128
+ );
129
+ for (const tool of await mcp.listTools()) {
130
+ assert.ok(
131
+ cataloged.has(tool.name),
132
+ `tool ${tool.name} is not in the capabilities catalog`,
133
+ );
134
+ }
135
+ },
136
+ },
137
+ {
138
+ id: "prompt-scaffold-maps-to-create-component",
139
+ kind: "prompt",
140
+ input: '"Scaffold a new component" should map to `create_component`.',
141
+ async expect({ mcp }) {
142
+ assertIntentTool(await mcp.listTools(), "create_component", /component/i);
143
+ },
144
+ },
145
+ {
146
+ id: "prompt-environment-maps-to-doctor",
147
+ kind: "prompt",
148
+ input: '"What is wrong with my environment?" should map to `doctor`.',
149
+ async expect({ mcp }) {
150
+ assertIntentTool(
151
+ await mcp.listTools(),
152
+ "doctor",
153
+ /diagnos|environment|health/i,
154
+ );
155
+ },
156
+ },
157
+ {
158
+ id: "prompt-sparql-maps-to-graph-query",
159
+ kind: "prompt",
160
+ input: '"Run an arbitrary SPARQL query" should map to `graph_query`.',
161
+ async expect({ mcp }) {
162
+ assertIntentTool(await mcp.listTools(), "graph_query", /sparql/i);
163
+ },
164
+ },
165
+ {
166
+ id: "prompt-set-tier-maps-to-config-tier",
167
+ kind: "prompt",
168
+ input: '"Set the active tier" should map to `config_tier`.',
169
+ async expect({ mcp }) {
170
+ assertIntentTool(await mcp.listTools(), "config_tier", /tier/i);
171
+ },
172
+ },
173
+ {
174
+ id: "prompt-tokens-config-maps-to-token-add-config",
175
+ kind: "prompt",
176
+ input:
177
+ '"Generate a terrazzo tokens config" should map to `token_add-config`.',
178
+ async expect({ mcp }) {
179
+ assertIntentTool(
180
+ await mcp.listTools(),
181
+ "token_add-config",
182
+ /token|terrazzo/i,
183
+ );
184
+ },
185
+ },
186
+ {
187
+ id: "prompt-browse-prompts-maps-to-prompt-list",
188
+ kind: "prompt",
189
+ input:
190
+ '"Browse the available workflow prompts" should map to `prompt_list`.',
191
+ async expect({ mcp }) {
192
+ assertIntentTool(await mcp.listTools(), "prompt_list", /prompt/i);
193
+ },
194
+ },
195
+ ];
@@ -0,0 +1,245 @@
1
+ /**
2
+ * Effectful eval cases (PR6 + PR7 nouns): the SPARQL escape hatch, the plan-first
3
+ * mutations, the diagnostic self-verb, and the store-backed prompt content.
4
+ *
5
+ * Storeless cases (plan-first previews, doctor shape, invalid-query) run over the
6
+ * shared `env.mcp` (no fixture cost). Data-backed cases build their OWN canonical
7
+ * fixture (the `cases/readNouns.ts` pattern), so they stay independent of the
8
+ * shared env. Anchor VALUES come from the canonical fixture this package controls;
9
+ * noun/tool names are read from the live surface (R2).
10
+ */
11
+
12
+ import assert from "node:assert/strict";
13
+ import { capabilities } from "../../../capabilities/index.js";
14
+ import {
15
+ ALL_VISIBLE_CONFIG,
16
+ CANONICAL_CONFIG,
17
+ CANONICAL_TTL,
18
+ } from "../../fixtures/graph/canonical.js";
19
+ import { bootFixtureRuntime } from "../../helpers/fixtureGraph.js";
20
+ import { projectMcp } from "../../helpers/projectMcp.js";
21
+ import type { EvalCase } from "../harness.js";
22
+
23
+ /** Run one case's body against a fresh canonical fixture, always disposing. */
24
+ async function withCanonicalFixture(
25
+ config: typeof CANONICAL_CONFIG | typeof ALL_VISIBLE_CONFIG,
26
+ body: (mcp: Awaited<ReturnType<typeof projectMcp>>) => Promise<void>,
27
+ ): Promise<void> {
28
+ const fixture = await bootFixtureRuntime({ ttl: CANONICAL_TTL, config });
29
+ try {
30
+ const mcp = await projectMcp(capabilities, fixture.cwd);
31
+ try {
32
+ await body(mcp);
33
+ } finally {
34
+ await mcp.cleanup();
35
+ }
36
+ } finally {
37
+ await fixture.dispose();
38
+ }
39
+ }
40
+
41
+ export const effectfulEvalCases: readonly EvalCase[] = [
42
+ {
43
+ id: "tool-graph-query-counts-components",
44
+ kind: "tool",
45
+ input:
46
+ "graph_query (the real PR6 verb, closing graph-query-deferred) counts exactly 4 ds:Component individuals in the canonical graph.",
47
+ async expect() {
48
+ await withCanonicalFixture(ALL_VISIBLE_CONFIG, async (mcp) => {
49
+ const result = await mcp.callTool("graph_query", {
50
+ sparql: "SELECT (COUNT(*) AS ?c) WHERE { ?comp a ds:Component }",
51
+ });
52
+ assert.equal(result.ok, true);
53
+ // graph_query returns the serialized QueryResult ({ type, bindings, … }).
54
+ const data = result.data as { bindings: { c: string }[] };
55
+ assert.equal(Number(data.bindings[0]?.c), 4);
56
+ });
57
+ },
58
+ },
59
+ {
60
+ id: "tool-graph-query-invalid-is-invalid-input",
61
+ kind: "tool",
62
+ input:
63
+ "graph_query with a syntax error returns INVALID_INPUT (exit-2 class), not a crash.",
64
+ async expect({ mcp }) {
65
+ const result = await mcp.callTool("graph_query", {
66
+ sparql: "NOT VALID SPARQL {{{",
67
+ });
68
+ assert.equal(result.ok, false);
69
+ assert.equal((result.error as { code: string }).code, "INVALID_INPUT");
70
+ },
71
+ },
72
+ {
73
+ id: "tool-config-tier-is-plan-first",
74
+ kind: "tool",
75
+ input:
76
+ "config_tier without `confirm` returns a plan (planOnly) and writes nothing — the uniform plan-first mutation contract.",
77
+ async expect({ mcp }) {
78
+ const result = await mcp.callTool("config_tier", { path: "apps/lxd" });
79
+ assert.equal(result.ok, true);
80
+ const meta = result.meta as { planOnly?: boolean };
81
+ assert.equal(meta.planOnly, true);
82
+ },
83
+ },
84
+ {
85
+ id: "tool-doctor-reports-check-tallies",
86
+ kind: "tool",
87
+ input:
88
+ "doctor returns a { checks, passed, failed, skipped } diagnostic report where the tallies sum to the checks.",
89
+ async expect({ mcp }) {
90
+ const result = await mcp.callTool("doctor");
91
+ assert.equal(result.ok, true);
92
+ const data = result.data as {
93
+ checks: unknown[];
94
+ passed: number;
95
+ failed: number;
96
+ skipped: number;
97
+ };
98
+ assert.ok(Array.isArray(data.checks), "expected a checks array");
99
+ assert.equal(
100
+ data.passed + data.failed + data.skipped,
101
+ data.checks.length,
102
+ );
103
+ },
104
+ },
105
+ {
106
+ id: "tool-upgrade-is-plan-first",
107
+ kind: "tool",
108
+ input:
109
+ "upgrade without `confirm` returns a plan (planOnly) — the CLI self-upgrade never runs on a discovery call.",
110
+ async expect({ mcp }) {
111
+ const result = await mcp.callTool("upgrade");
112
+ assert.equal(result.ok, true);
113
+ const meta = result.meta as { planOnly?: boolean };
114
+ assert.equal(meta.planOnly, true);
115
+ },
116
+ },
117
+ {
118
+ id: "tool-prompt-list-resolves-authored-prompts",
119
+ kind: "tool",
120
+ input:
121
+ "prompt_list (needsStore) resolves the authored ds:Prompt entities, each carrying its arguments.",
122
+ async expect() {
123
+ await withCanonicalFixture(CANONICAL_CONFIG, async (mcp) => {
124
+ const result = await mcp.callTool("prompt_list");
125
+ const data = result.data as { prompts: { name: string }[] };
126
+ assert.ok(
127
+ data.prompts.some((p) => p.name === "build-a-block"),
128
+ "expected the build-a-block prompt",
129
+ );
130
+ });
131
+ },
132
+ },
133
+ {
134
+ id: "content-native-prompts-list-nonempty",
135
+ kind: "content",
136
+ input:
137
+ "the native MCP prompts/list is non-empty over a graph with ds:Prompt entities, each with a description.",
138
+ async expect() {
139
+ await withCanonicalFixture(CANONICAL_CONFIG, async (mcp) => {
140
+ const prompts = await mcp.listPrompts();
141
+ assert.ok(prompts.length > 0, "expected native prompts");
142
+ for (const prompt of prompts) {
143
+ assert.ok(
144
+ prompt.description,
145
+ `prompt ${prompt.name} lacks a description`,
146
+ );
147
+ }
148
+ });
149
+ },
150
+ },
151
+ {
152
+ id: "content-native-prompt-get-fills-arguments",
153
+ kind: "content",
154
+ input:
155
+ "prompts/get materializes the body store-backed and substitutes {{arg}} placeholders.",
156
+ async expect() {
157
+ await withCanonicalFixture(CANONICAL_CONFIG, async (mcp) => {
158
+ const result = await mcp.getPrompt("build-a-block", {
159
+ blockName: "Button",
160
+ });
161
+ const first = result.messages[0] as {
162
+ content: { text: string };
163
+ };
164
+ assert.match(first.content.text, /Button/);
165
+ assert.ok(!first.content.text.includes("{{blockName}}"));
166
+ });
167
+ },
168
+ },
169
+ {
170
+ id: "tool-token-add-config-is-plan-first",
171
+ kind: "tool",
172
+ input:
173
+ "token_add-config (needsStore mutation) without `confirm` returns a plan naming tokens.config.mjs and writes nothing.",
174
+ async expect() {
175
+ await withCanonicalFixture(CANONICAL_CONFIG, async (mcp) => {
176
+ const result = await mcp.callTool("token_add-config");
177
+ assert.equal(result.ok, true);
178
+ const meta = result.meta as { planOnly?: boolean };
179
+ assert.equal(meta.planOnly, true);
180
+ const data = result.data as { plan: string[] };
181
+ assert.match(data.plan.join("\n"), /tokens\.config\.mjs/);
182
+ });
183
+ },
184
+ },
185
+ {
186
+ id: "tool-tier-lookup-lists-scoped-blocks",
187
+ kind: "tool",
188
+ input:
189
+ "tier_lookup {name:apps/lxd} resolves the tier and lists the blocks scoped to it (LXD Panel).",
190
+ async expect() {
191
+ await withCanonicalFixture(ALL_VISIBLE_CONFIG, async (mcp) => {
192
+ const result = await mcp.callTool("tier_lookup", { name: "apps/lxd" });
193
+ assert.equal(result.ok, true);
194
+ const data = result.data as { name: string; blocks: string[] };
195
+ assert.equal(data.name, "apps/lxd");
196
+ assert.ok(data.blocks.includes("LXD Panel"));
197
+ });
198
+ },
199
+ },
200
+ {
201
+ id: "tool-block-sample-returns-exemplars",
202
+ kind: "tool",
203
+ input:
204
+ "block_sample (the no-argument PR7 sample) returns complete block exemplars for shape discovery.",
205
+ async expect() {
206
+ await withCanonicalFixture(ALL_VISIBLE_CONFIG, async (mcp) => {
207
+ const result = await mcp.callTool("block_sample");
208
+ assert.equal(result.ok, true);
209
+ const data = result.data as { samples: unknown[]; totalCount: number };
210
+ assert.ok(data.samples.length > 0, "expected at least one exemplar");
211
+ assert.ok(data.totalCount >= data.samples.length);
212
+ });
213
+ },
214
+ },
215
+ {
216
+ id: "tool-modifier-sample-returns-exemplars",
217
+ kind: "tool",
218
+ input:
219
+ "modifier_sample (the no-argument PR7 sample) returns complete modifier exemplars for shape discovery.",
220
+ async expect() {
221
+ await withCanonicalFixture(ALL_VISIBLE_CONFIG, async (mcp) => {
222
+ const result = await mcp.callTool("modifier_sample");
223
+ assert.equal(result.ok, true);
224
+ const data = result.data as { samples: unknown[]; totalCount: number };
225
+ assert.ok(data.samples.length > 0, "expected at least one exemplar");
226
+ assert.ok(data.totalCount >= data.samples.length);
227
+ });
228
+ },
229
+ },
230
+ {
231
+ id: "tool-token-sample-returns-exemplars",
232
+ kind: "tool",
233
+ input:
234
+ "token_sample (the no-argument PR7 sample) returns complete token exemplars for shape discovery.",
235
+ async expect() {
236
+ await withCanonicalFixture(ALL_VISIBLE_CONFIG, async (mcp) => {
237
+ const result = await mcp.callTool("token_sample");
238
+ assert.equal(result.ok, true);
239
+ const data = result.data as { samples: unknown[]; totalCount: number };
240
+ assert.ok(data.samples.length > 0, "expected at least one exemplar");
241
+ assert.ok(data.totalCount >= data.samples.length);
242
+ });
243
+ },
244
+ },
245
+ ];
@@ -0,0 +1,232 @@
1
+ /**
2
+ * Read-noun eval seed cases (commit 4) — extends `cases/stable.ts` once PR3's
3
+ * read nouns are live. Representative, NOT exhaustive (PR7 populates the full
4
+ * MCP eval matrix); each case builds its OWN fixture via `bootFixtureRuntime`
5
+ * so it stays independent of `eval.test.ts`'s shared env.
6
+ *
7
+ * Anchor VALUES (Button, `importance`->`primary`, `code/function/purity`, 4
8
+ * components) come from the ported canonical fixture graph
9
+ * (`testing/fixtures/graph/canonical.ts`), which THIS package controls — not
10
+ * from PR3's noun/verb/tool SET, which is read from the live surface
11
+ * elsewhere (`liveReadSurface.ts`) per R2.
12
+ */
13
+
14
+ import assert from "node:assert/strict";
15
+ import { capabilities } from "../../../capabilities/index.js";
16
+ import {
17
+ ALL_VISIBLE_CONFIG,
18
+ CANONICAL_CONFIG,
19
+ CANONICAL_TTL,
20
+ } from "../../fixtures/graph/canonical.js";
21
+ import { bootFixtureRuntime } from "../../helpers/fixtureGraph.js";
22
+ import { projectMcp } from "../../helpers/projectMcp.js";
23
+ import type { EvalCase } from "../harness.js";
24
+
25
+ /** Run one case's body against a fresh canonical fixture, always disposing. */
26
+ async function withCanonicalFixture(
27
+ config: typeof CANONICAL_CONFIG | typeof ALL_VISIBLE_CONFIG,
28
+ body: (mcp: Awaited<ReturnType<typeof projectMcp>>) => Promise<void>,
29
+ ): Promise<void> {
30
+ const fixture = await bootFixtureRuntime({ ttl: CANONICAL_TTL, config });
31
+ try {
32
+ const mcp = await projectMcp(capabilities, fixture.cwd);
33
+ try {
34
+ await body(mcp);
35
+ } finally {
36
+ await mcp.cleanup();
37
+ }
38
+ } finally {
39
+ await fixture.dispose();
40
+ }
41
+ }
42
+
43
+ export const readNounEvalCases: readonly EvalCase[] = [
44
+ {
45
+ id: "tool-block-lookup-button-has-modifier-families",
46
+ kind: "tool",
47
+ input:
48
+ "block_lookup {name:[Button]} resolves name===Button and carries modifierFamilies.",
49
+ async expect() {
50
+ await withCanonicalFixture(ALL_VISIBLE_CONFIG, async (mcp) => {
51
+ const result = await mcp.callTool("block_lookup", { name: ["Button"] });
52
+ assert.equal(result.ok, true);
53
+ const entity = (result.data as { results: Record<string, unknown>[] })
54
+ .results[0];
55
+ assert.equal(entity?.name, "Button");
56
+ assert.ok(
57
+ Array.isArray(entity?.modifierFamilies) &&
58
+ (entity.modifierFamilies as unknown[]).length > 0,
59
+ "expected a non-empty modifierFamilies array",
60
+ );
61
+ });
62
+ },
63
+ },
64
+ {
65
+ id: "tool-standard-lookup-has-dos-and-donts",
66
+ kind: "tool",
67
+ input:
68
+ "standard_lookup {name:[react/component/props], detail:detailed} has non-empty dos and donts.",
69
+ async expect() {
70
+ await withCanonicalFixture(CANONICAL_CONFIG, async (mcp) => {
71
+ const result = await mcp.callTool("standard_lookup", {
72
+ name: ["react/component/props"],
73
+ detail: "detailed",
74
+ });
75
+ assert.equal(result.ok, true);
76
+ const entity = (result.data as { results: Record<string, unknown>[] })
77
+ .results[0];
78
+ assert.ok(
79
+ (entity?.dos as unknown[])?.length > 0,
80
+ "expected non-empty dos",
81
+ );
82
+ assert.ok(
83
+ (entity?.donts as unknown[])?.length > 0,
84
+ "expected non-empty donts",
85
+ );
86
+ });
87
+ },
88
+ },
89
+ {
90
+ id: "content-canonical-graph-has-4-components",
91
+ kind: "content",
92
+ input:
93
+ "the canonical fixture graph carries exactly 4 ds:Component individuals, including Button and Beta Widget.",
94
+ async expect() {
95
+ await withCanonicalFixture(ALL_VISIBLE_CONFIG, async (mcp) => {
96
+ const result = await mcp.callTool("block_list", { allTiers: true });
97
+ const names = (result.data as { name: string }[])
98
+ .map((r) => r.name)
99
+ .sort();
100
+ assert.deepEqual(names, [
101
+ "Beta Widget",
102
+ "Button",
103
+ "LXD Panel",
104
+ "Modal",
105
+ ]);
106
+ });
107
+ },
108
+ },
109
+ {
110
+ id: "content-code-function-purity-description-mentions-pure",
111
+ kind: "content",
112
+ input: "the code/function/purity standard's description contains 'pure'.",
113
+ async expect() {
114
+ await withCanonicalFixture(CANONICAL_CONFIG, async (mcp) => {
115
+ const result = await mcp.callTool("standard_lookup", {
116
+ name: ["code/function/purity"],
117
+ });
118
+ const entity = (result.data as { results: Record<string, unknown>[] })
119
+ .results[0];
120
+ assert.match(String(entity?.description ?? ""), /pure/i);
121
+ });
122
+ },
123
+ },
124
+ {
125
+ id: "content-importance-family-includes-primary",
126
+ kind: "content",
127
+ input: "the modifier family `importance` includes the value `primary`.",
128
+ async expect() {
129
+ await withCanonicalFixture(CANONICAL_CONFIG, async (mcp) => {
130
+ const result = await mcp.callTool("modifier_lookup", {
131
+ name: ["importance"],
132
+ });
133
+ const entity = (result.data as { results: Record<string, unknown>[] })
134
+ .results[0];
135
+ const values = (entity?.values as { name: string }[] | undefined)?.map(
136
+ (v) => v.name,
137
+ );
138
+ assert.ok(
139
+ values?.includes("primary"),
140
+ `expected "primary" in ${values}`,
141
+ );
142
+ });
143
+ },
144
+ },
145
+ {
146
+ id: "content-standard-list-length-equals-category-count-sum",
147
+ kind: "content",
148
+ input:
149
+ "standard_list length equals the sum of standard_categories counts (the cross-surface count-parity invariant).",
150
+ async expect() {
151
+ await withCanonicalFixture(CANONICAL_CONFIG, async (mcp) => {
152
+ const list = await mcp.callTool("standard_list");
153
+ const categories = await mcp.callTool("standard_categories");
154
+ const listLength = (list.data as unknown[]).length;
155
+ const categorySum = (categories.data as { count: string }[]).reduce(
156
+ (sum, row) => sum + Number(row.count),
157
+ 0,
158
+ );
159
+ assert.ok(
160
+ listLength > 0,
161
+ "standard_list must be non-empty for the count-parity invariant to be meaningful",
162
+ );
163
+ assert.equal(listLength, categorySum);
164
+ });
165
+ },
166
+ },
167
+ {
168
+ id: "content-normal-channel-drops-beta-only-block",
169
+ kind: "content",
170
+ input:
171
+ "the normal channel (CANONICAL_CONFIG) excludes the beta-only block; the prerelease channel (ALL_VISIBLE_CONFIG) includes it.",
172
+ async expect() {
173
+ await withCanonicalFixture(CANONICAL_CONFIG, async (mcp) => {
174
+ const normal = await mcp.callTool("block_list", { allTiers: true });
175
+ const normalNames = (normal.data as { name: string }[]).map(
176
+ (r) => r.name,
177
+ );
178
+ assert.ok(!normalNames.includes("Beta Widget"));
179
+ });
180
+ await withCanonicalFixture(ALL_VISIBLE_CONFIG, async (mcp) => {
181
+ const prerelease = await mcp.callTool("block_list", { allTiers: true });
182
+ const prereleaseNames = (prerelease.data as { name: string }[]).map(
183
+ (r) => r.name,
184
+ );
185
+ assert.ok(prereleaseNames.includes("Beta Widget"));
186
+ });
187
+ },
188
+ },
189
+ {
190
+ id: "disclosure-block-lookup-detailed-adds-anatomy",
191
+ kind: "disclosure",
192
+ input:
193
+ "block_lookup {name:[Button], detail:summary} omits anatomyDsl; {detail:detailed} includes it.",
194
+ async expect() {
195
+ await withCanonicalFixture(ALL_VISIBLE_CONFIG, async (mcp) => {
196
+ const summary = await mcp.callTool("block_lookup", {
197
+ name: ["Button"],
198
+ detail: "summary",
199
+ });
200
+ const detailed = await mcp.callTool("block_lookup", {
201
+ name: ["Button"],
202
+ detail: "detailed",
203
+ });
204
+ const summaryEntity = (
205
+ summary.data as { results: Record<string, unknown>[] }
206
+ ).results[0];
207
+ const detailedEntity = (
208
+ detailed.data as { results: Record<string, unknown>[] }
209
+ ).results[0];
210
+ assert.equal(summaryEntity?.anatomyDsl, undefined);
211
+ assert.equal(
212
+ detailedEntity?.anatomyDsl,
213
+ "root: button; children: label, icon",
214
+ );
215
+ });
216
+ },
217
+ },
218
+ {
219
+ id: "prompt-block-question-maps-to-block-lookup",
220
+ kind: "prompt",
221
+ input:
222
+ '"What is the anatomy of the Button component?" should map to `block_lookup`.',
223
+ async expect() {
224
+ await withCanonicalFixture(CANONICAL_CONFIG, async (mcp) => {
225
+ const tools = await mcp.listTools();
226
+ const blockLookup = tools.find((t) => t.name === "block_lookup");
227
+ assert.ok(blockLookup, "expected a block_lookup tool in the catalog");
228
+ assert.match(String(blockLookup?.description ?? ""), /block/i);
229
+ });
230
+ },
231
+ },
232
+ ];