@canonical/pragma-cli 0.31.0 → 0.33.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 (1091) hide show
  1. package/README.md +35 -421
  2. package/dist/pragma +0 -0
  3. package/package.json +28 -42
  4. package/src/bin.ts +292 -11
  5. package/src/capabilities/block/blockList.test.ts +79 -0
  6. package/src/capabilities/block/blockList.verb.ts +163 -0
  7. package/src/capabilities/block/index.ts +25 -0
  8. package/src/capabilities/block/pack.ts +166 -0
  9. package/src/capabilities/block/parity.test.ts +187 -0
  10. package/src/capabilities/block/tierChain.ts +78 -0
  11. package/src/capabilities/capabilities/capabilities.render.ts +89 -0
  12. package/src/capabilities/capabilities/capabilities.test.ts +140 -0
  13. package/src/capabilities/capabilities/capabilities.verb.ts +48 -0
  14. package/src/capabilities/capabilities/catalog.ts +148 -0
  15. package/src/capabilities/capabilities/hints.ts +212 -0
  16. package/src/capabilities/capabilities/index.ts +13 -0
  17. package/src/capabilities/capabilities/types.ts +60 -0
  18. package/src/capabilities/colophon/collectColophon.ts +68 -0
  19. package/src/capabilities/colophon/colophon.render.test.ts +114 -0
  20. package/src/capabilities/colophon/colophon.render.ts +47 -0
  21. package/src/capabilities/colophon/colophon.test.ts +241 -0
  22. package/src/capabilities/colophon/colophon.verb.ts +44 -0
  23. package/src/capabilities/colophon/index.ts +6 -0
  24. package/src/capabilities/colophon/markdownTerminal.test.ts +50 -0
  25. package/src/capabilities/colophon/markdownTerminal.ts +104 -0
  26. package/src/capabilities/colophon/pragmaColophon.ts +66 -0
  27. package/src/capabilities/colophon/types.ts +29 -0
  28. package/src/capabilities/config/collectConfigShow.ts +32 -0
  29. package/src/capabilities/config/field.render.ts +28 -0
  30. package/src/capabilities/config/fields.ts +81 -0
  31. package/src/capabilities/config/index.ts +6 -0
  32. package/src/capabilities/config/runField.ts +59 -0
  33. package/src/capabilities/config/runSet.ts +38 -0
  34. package/src/capabilities/config/set.test.ts +207 -0
  35. package/src/capabilities/config/set.verb.ts +70 -0
  36. package/src/capabilities/config/show.render.test.ts +65 -0
  37. package/src/capabilities/config/show.render.ts +107 -0
  38. package/src/capabilities/config/show.verb.ts +45 -0
  39. package/src/capabilities/config/types.ts +27 -0
  40. package/src/capabilities/create/byteEquality.subprocess.test.ts +88 -0
  41. package/src/capabilities/create/byteEquality.test.ts +225 -0
  42. package/src/capabilities/create/compiledCreate.subprocess.test.ts +152 -0
  43. package/src/capabilities/create/create.mcp.test.ts +139 -0
  44. package/src/capabilities/create/create.render.ts +50 -0
  45. package/src/capabilities/create/create.test.ts +432 -0
  46. package/src/capabilities/create/create.verb.ts +493 -0
  47. package/src/capabilities/create/cwdJail.test.ts +129 -0
  48. package/src/capabilities/create/generatorToVerbSpec.ts +111 -0
  49. package/src/capabilities/create/index.ts +25 -0
  50. package/src/capabilities/create/pathJail.ts +73 -0
  51. package/src/capabilities/create/pickGenerator.ts +63 -0
  52. package/src/capabilities/create/templates.embedded.generated.ts +53 -0
  53. package/src/capabilities/create/types.ts +8 -0
  54. package/src/capabilities/doctor/checks/checkConfigFile.ts +41 -0
  55. package/src/capabilities/doctor/checks/checkKeStore.ts +39 -0
  56. package/src/capabilities/doctor/checks/checkMcpCommands.ts +114 -0
  57. package/src/capabilities/doctor/checks/checkMcpConfigured.ts +67 -0
  58. package/src/capabilities/doctor/checks/checkNodeVersion.ts +25 -0
  59. package/src/capabilities/doctor/checks/checkPackageRefs.ts +73 -0
  60. package/src/capabilities/doctor/checks/checkPragmaVersion.ts +22 -0
  61. package/src/capabilities/doctor/checks/checkShellCompletions.test.ts +111 -0
  62. package/src/capabilities/doctor/checks/checkShellCompletions.ts +131 -0
  63. package/src/capabilities/doctor/checks/checkSkillsSymlinked.ts +60 -0
  64. package/src/capabilities/doctor/checks/deriveBand.test.ts +42 -0
  65. package/src/capabilities/doctor/checks/deriveBand.ts +28 -0
  66. package/src/capabilities/doctor/doctor.render.test.ts +170 -0
  67. package/src/capabilities/doctor/doctor.render.ts +198 -0
  68. package/src/capabilities/doctor/doctor.test.ts +209 -0
  69. package/src/capabilities/doctor/doctor.verb.ts +46 -0
  70. package/src/capabilities/doctor/index.ts +6 -0
  71. package/src/capabilities/doctor/runChecks.ts +100 -0
  72. package/src/capabilities/doctor/types.ts +56 -0
  73. package/src/capabilities/emptyRecovery.test.ts +112 -0
  74. package/src/capabilities/graph/index.ts +21 -0
  75. package/src/capabilities/graph/inspect.render.ts +38 -0
  76. package/src/capabilities/graph/inspect.test.ts +80 -0
  77. package/src/capabilities/graph/inspect.verb.ts +51 -0
  78. package/src/capabilities/graph/query.render.ts +77 -0
  79. package/src/capabilities/graph/query.test.ts +156 -0
  80. package/src/capabilities/graph/query.verb.ts +58 -0
  81. package/src/capabilities/graph/runQuery.ts +49 -0
  82. package/src/capabilities/index.ts +54 -0
  83. package/src/capabilities/info/collectInfo.ts +76 -0
  84. package/src/capabilities/info/index.ts +6 -0
  85. package/src/capabilities/info/info.render.ts +72 -0
  86. package/src/capabilities/info/info.test.ts +127 -0
  87. package/src/capabilities/info/info.verb.ts +46 -0
  88. package/src/capabilities/info/types.ts +42 -0
  89. package/src/capabilities/lazy.test.ts +89 -0
  90. package/src/capabilities/meta/complete.verb.ts +52 -0
  91. package/src/capabilities/meta/index.ts +15 -0
  92. package/src/capabilities/meta/mcp.verb.ts +35 -0
  93. package/src/capabilities/modifier/index.ts +15 -0
  94. package/src/capabilities/modifier/pack.ts +64 -0
  95. package/src/capabilities/ontology/index.ts +19 -0
  96. package/src/capabilities/ontology/ontology.test.ts +246 -0
  97. package/src/capabilities/ontology/queries.ts +197 -0
  98. package/src/capabilities/ontology/render.ts +87 -0
  99. package/src/capabilities/ontology/verbs.ts +269 -0
  100. package/src/capabilities/prompt/index.ts +18 -0
  101. package/src/capabilities/prompt/prompt.render.test.ts +94 -0
  102. package/src/capabilities/prompt/prompt.render.ts +87 -0
  103. package/src/capabilities/prompt/prompt.test.ts +180 -0
  104. package/src/capabilities/prompt/types.ts +30 -0
  105. package/src/capabilities/prompt/verbs.ts +93 -0
  106. package/src/capabilities/reference.test.ts +32 -0
  107. package/src/capabilities/resources/index.ts +15 -0
  108. package/src/capabilities/resources/provider.ts +245 -0
  109. package/src/capabilities/resources/resources.test.ts +213 -0
  110. package/src/capabilities/roundtrip.test.ts +107 -0
  111. package/src/capabilities/scopeTypeSync.test.ts +37 -0
  112. package/src/capabilities/setup/index.ts +12 -0
  113. package/src/capabilities/setup/operations/setupCompletions.ts +141 -0
  114. package/src/capabilities/setup/operations/setupGenerator.ts +403 -0
  115. package/src/capabilities/setup/operations/setupLsp.ts +105 -0
  116. package/src/capabilities/setup/operations/setupMcp.ts +262 -0
  117. package/src/capabilities/setup/operations/setupSkills.ts +205 -0
  118. package/src/capabilities/setup/setup.render.test.ts +109 -0
  119. package/src/capabilities/setup/setup.render.ts +96 -0
  120. package/src/capabilities/setup/setup.test.ts +702 -0
  121. package/src/capabilities/setup/setup.verb.ts +261 -0
  122. package/src/capabilities/setup/shell.ts +85 -0
  123. package/src/capabilities/setup/types.ts +99 -0
  124. package/src/capabilities/shared/assertExecOk.ts +106 -0
  125. package/src/capabilities/shared/bands.ts +16 -0
  126. package/src/capabilities/shared/packageManager.ts +62 -0
  127. package/src/capabilities/shared/registry.ts +70 -0
  128. package/src/capabilities/skill/discover.ts +178 -0
  129. package/src/capabilities/skill/index.ts +12 -0
  130. package/src/capabilities/skill/render.ts +60 -0
  131. package/src/capabilities/skill/skill.test.ts +142 -0
  132. package/src/capabilities/skill/verbs.ts +100 -0
  133. package/src/capabilities/sources/collectStatus.ts +102 -0
  134. package/src/capabilities/sources/index.ts +15 -0
  135. package/src/capabilities/sources/installSkills.ts +124 -0
  136. package/src/capabilities/sources/runUpdate.ts +464 -0
  137. package/src/capabilities/sources/sources.test.ts +828 -0
  138. package/src/capabilities/sources/status.render.test.ts +65 -0
  139. package/src/capabilities/sources/status.render.ts +83 -0
  140. package/src/capabilities/sources/status.verb.ts +42 -0
  141. package/src/capabilities/sources/types.ts +51 -0
  142. package/src/capabilities/sources/update.render.ts +35 -0
  143. package/src/capabilities/sources/update.verb.ts +76 -0
  144. package/src/capabilities/standard/index.ts +18 -0
  145. package/src/capabilities/standard/pack.ts +128 -0
  146. package/src/capabilities/standard/parity.test.ts +208 -0
  147. package/src/capabilities/surface.test.ts +233 -0
  148. package/src/capabilities/tier/index.ts +19 -0
  149. package/src/capabilities/tier/lookup.render.test.ts +72 -0
  150. package/src/capabilities/tier/lookup.render.ts +59 -0
  151. package/src/capabilities/tier/lookup.test.ts +83 -0
  152. package/src/capabilities/tier/lookup.verb.ts +44 -0
  153. package/src/capabilities/tier/pack.ts +28 -0
  154. package/src/capabilities/tier/runLookup.ts +87 -0
  155. package/src/capabilities/token/addConfig.render.ts +27 -0
  156. package/src/capabilities/token/addConfig.test.ts +62 -0
  157. package/src/capabilities/token/addConfig.verb.ts +40 -0
  158. package/src/capabilities/token/index.ts +19 -0
  159. package/src/capabilities/token/pack.ts +58 -0
  160. package/src/capabilities/token/runAddConfig.ts +95 -0
  161. package/src/capabilities/upgrade/index.ts +6 -0
  162. package/src/capabilities/upgrade/runUpgrade.ts +119 -0
  163. package/src/capabilities/upgrade/types.ts +21 -0
  164. package/src/capabilities/upgrade/upgrade.render.ts +55 -0
  165. package/src/capabilities/upgrade/upgrade.test.ts +372 -0
  166. package/src/capabilities/upgrade/upgrade.verb.ts +56 -0
  167. package/src/constants.test.ts +33 -0
  168. package/src/constants.ts +38 -70
  169. package/src/index.ts +27 -122
  170. package/src/kernel/completion/__snapshots__/emitScripts.test.ts.snap +339 -0
  171. package/src/kernel/completion/bashDrive.test.ts +73 -0
  172. package/src/kernel/completion/complete.test.ts +99 -0
  173. package/src/kernel/completion/complete.ts +77 -0
  174. package/src/kernel/completion/emitScripts.test.ts +173 -0
  175. package/src/kernel/completion/emitScripts.ts +122 -0
  176. package/src/kernel/completion/entitySource.test.ts +198 -0
  177. package/src/kernel/completion/entitySource.ts +277 -0
  178. package/src/kernel/completion/index.ts +42 -0
  179. package/src/kernel/completion/model.test.ts +405 -0
  180. package/src/kernel/completion/model.ts +258 -0
  181. package/src/kernel/completion/parse.test.ts +336 -0
  182. package/src/kernel/completion/parse.ts +294 -0
  183. package/src/kernel/completion/rank.test.ts +100 -0
  184. package/src/kernel/completion/rank.ts +118 -0
  185. package/src/kernel/completion/resolve.test.ts +204 -0
  186. package/src/kernel/completion/resolve.ts +133 -0
  187. package/src/kernel/completion/safety.test.ts +374 -0
  188. package/src/kernel/completion/templates/bash.ts +249 -0
  189. package/src/kernel/completion/templates/fish.ts +245 -0
  190. package/src/kernel/completion/templates/shared.ts +134 -0
  191. package/src/kernel/completion/templates/zsh.ts +246 -0
  192. package/src/kernel/completion/types.ts +153 -0
  193. package/src/kernel/config/__snapshots__/firstRun.test.ts.snap +11 -0
  194. package/src/kernel/config/defaults.ts +28 -0
  195. package/src/kernel/config/evaluateProjectConfig.ts +119 -0
  196. package/src/kernel/config/findProjectConfig.ts +45 -0
  197. package/src/kernel/config/firstRun.test.ts +60 -0
  198. package/src/kernel/config/firstRun.ts +91 -0
  199. package/src/kernel/config/globalConfig.ts +94 -0
  200. package/src/kernel/config/index.ts +35 -0
  201. package/src/kernel/config/paths.ts +39 -0
  202. package/src/kernel/config/readConfig.test.ts +245 -0
  203. package/src/kernel/config/readConfig.ts +94 -0
  204. package/src/kernel/config/schema.ts +56 -0
  205. package/src/kernel/config/types.ts +106 -0
  206. package/src/kernel/config/writeConfigField.ts +82 -0
  207. package/src/kernel/error/PragmaError.test.ts +119 -0
  208. package/src/kernel/error/PragmaError.ts +182 -0
  209. package/src/kernel/error/constants.ts +38 -0
  210. package/src/kernel/error/fromTaskError.test.ts +83 -0
  211. package/src/kernel/error/fromTaskError.ts +80 -0
  212. package/src/kernel/error/index.ts +23 -0
  213. package/src/kernel/error/recovery.test.ts +60 -0
  214. package/src/kernel/error/recovery.ts +49 -0
  215. package/src/kernel/error/renderError.ts +101 -0
  216. package/src/kernel/error/serialize.ts +28 -0
  217. package/src/kernel/error/types.ts +62 -0
  218. package/src/kernel/packs/collect.test.ts +138 -0
  219. package/src/kernel/packs/collect.ts +108 -0
  220. package/src/kernel/packs/compile.test.ts +229 -0
  221. package/src/kernel/packs/compile.ts +315 -0
  222. package/src/kernel/packs/disclosure.test.ts +200 -0
  223. package/src/kernel/packs/disclosure.ts +98 -0
  224. package/src/kernel/packs/glob.ts +39 -0
  225. package/src/kernel/packs/graphql/buildLookupDocument.ts +397 -0
  226. package/src/kernel/packs/graphql/fetchGraphqlLookup.ts +217 -0
  227. package/src/kernel/packs/graphql/nameMap.ts +67 -0
  228. package/src/kernel/packs/graphqlSource.test.ts +383 -0
  229. package/src/kernel/packs/iri.ts +78 -0
  230. package/src/kernel/packs/renderPack.ts +196 -0
  231. package/src/kernel/packs/resolveEntity.ts +232 -0
  232. package/src/kernel/packs/runBodies.ts +157 -0
  233. package/src/kernel/packs/sample.ts +60 -0
  234. package/src/kernel/packs/schema.ts +328 -0
  235. package/src/kernel/packs/sparql/applyFilters.ts +83 -0
  236. package/src/kernel/packs/sparql/applySearch.ts +33 -0
  237. package/src/kernel/packs/sparql/buildLookupQuery.ts +180 -0
  238. package/src/kernel/packs/sparql/escape.ts +22 -0
  239. package/src/kernel/packs/sparql/runSelect.test.ts +80 -0
  240. package/src/kernel/packs/sparql/runSelect.ts +84 -0
  241. package/src/kernel/packs/toolDescription.test.ts +81 -0
  242. package/src/kernel/packs/types.ts +337 -0
  243. package/src/kernel/packs/uniqueness.ts +35 -0
  244. package/src/kernel/project/cli/buildProgram.test.ts +431 -0
  245. package/src/kernel/project/cli/buildProgram.ts +291 -0
  246. package/src/kernel/project/cli/dispatch.test.ts +288 -0
  247. package/src/kernel/project/cli/dispatch.ts +334 -0
  248. package/src/kernel/project/cli/exitCodes.test.ts +59 -0
  249. package/src/kernel/project/cli/exitCodes.ts +68 -0
  250. package/src/kernel/project/cli/globalFlags.test.ts +107 -0
  251. package/src/kernel/project/cli/globalFlags.ts +149 -0
  252. package/src/kernel/project/cli/helpFormat.ts +58 -0
  253. package/src/kernel/project/cli/index.ts +21 -0
  254. package/src/kernel/project/cli/interactionSeam.test.ts +99 -0
  255. package/src/kernel/project/cli/rootHelp.ts +220 -0
  256. package/src/kernel/project/cli/suggest.test.ts +54 -0
  257. package/src/kernel/project/cli/suggest.ts +67 -0
  258. package/src/kernel/project/cli/suggestNames.ts +122 -0
  259. package/src/kernel/project/cli/verbHelp.test.ts +138 -0
  260. package/src/kernel/project/cli/verbHelp.ts +144 -0
  261. package/src/kernel/project/mcp/buildServer.ts +70 -0
  262. package/src/kernel/project/mcp/envelope.ts +44 -0
  263. package/src/kernel/project/mcp/index.ts +8 -0
  264. package/src/kernel/project/mcp/instructions.ts +48 -0
  265. package/src/kernel/project/mcp/mcpError.ts +52 -0
  266. package/src/kernel/project/mcp/parity.test.ts +72 -0
  267. package/src/kernel/project/mcp/prompts/prompts.test.ts +104 -0
  268. package/src/kernel/project/mcp/prompts/provider.ts +104 -0
  269. package/src/kernel/project/mcp/prompts/source.ts +194 -0
  270. package/src/kernel/project/mcp/registerVerb.test.ts +238 -0
  271. package/src/kernel/project/mcp/registerVerb.ts +296 -0
  272. package/src/kernel/project/mcp/serve.ts +34 -0
  273. package/src/kernel/project/mcp/toolDescriptions.test.ts +80 -0
  274. package/src/kernel/render/__snapshots__/renderers.test.ts.snap +127 -0
  275. package/src/kernel/render/compactUri.ts +25 -0
  276. package/src/kernel/render/contracts.ts +72 -0
  277. package/src/kernel/render/disclosure.ts +44 -0
  278. package/src/kernel/render/envelope.ts +50 -0
  279. package/src/kernel/render/formatters.ts +31 -0
  280. package/src/kernel/render/index.ts +30 -0
  281. package/src/kernel/render/prefixes.ts +21 -0
  282. package/src/kernel/render/renderers.test.ts +205 -0
  283. package/src/kernel/render/renderers.ts +447 -0
  284. package/src/kernel/render/style.test.ts +31 -0
  285. package/src/kernel/render/style.ts +74 -0
  286. package/src/kernel/render/writeStdout.test.ts +43 -0
  287. package/src/kernel/render/writeStdout.ts +49 -0
  288. package/src/kernel/runtime/boot.test.ts +69 -0
  289. package/src/kernel/runtime/boot.ts +59 -0
  290. package/src/kernel/runtime/facade.test.ts +125 -0
  291. package/src/kernel/runtime/facade.ts +47 -0
  292. package/src/kernel/runtime/graphpack/build.ts +176 -0
  293. package/src/kernel/runtime/graphpack/buildIndex.test.ts +103 -0
  294. package/src/kernel/runtime/graphpack/buildIndex.ts +317 -0
  295. package/src/kernel/runtime/graphpack/embedded/pack.generated.ts +5 -0
  296. package/src/kernel/runtime/graphpack/embedded/pack.index.generated.ts +3 -0
  297. package/src/kernel/runtime/graphpack/embedded/sample.ttl +39 -0
  298. package/src/kernel/runtime/graphpack/embedded.ts +70 -0
  299. package/src/kernel/runtime/graphpack/graphpack.test.ts +221 -0
  300. package/src/kernel/runtime/graphpack/hash.ts +46 -0
  301. package/src/kernel/runtime/graphpack/index.ts +21 -0
  302. package/src/kernel/runtime/graphpack/manifest.ts +55 -0
  303. package/src/kernel/runtime/graphpack/read.ts +117 -0
  304. package/src/kernel/runtime/graphpack/types.ts +125 -0
  305. package/src/kernel/runtime/index.ts +15 -0
  306. package/src/kernel/runtime/loadSession.ts +48 -0
  307. package/src/kernel/runtime/lock.ts +90 -0
  308. package/src/kernel/runtime/paths.ts +37 -0
  309. package/src/kernel/runtime/probe.test.ts +16 -0
  310. package/src/kernel/runtime/probe.ts +39 -0
  311. package/src/kernel/runtime/readEntity.ts +83 -0
  312. package/src/kernel/runtime/refs/gitOps.ts +88 -0
  313. package/src/kernel/runtime/refs/parseRef.test.ts +34 -0
  314. package/src/kernel/runtime/refs/parseRef.ts +103 -0
  315. package/src/kernel/runtime/refs/resolve.ts +380 -0
  316. package/src/kernel/runtime/resolveSources.test.ts +154 -0
  317. package/src/kernel/runtime/resolveSources.ts +66 -0
  318. package/src/kernel/runtime/store.test.ts +94 -0
  319. package/src/kernel/runtime/store.ts +90 -0
  320. package/src/kernel/runtime/storeReadiness.ts +61 -0
  321. package/src/kernel/runtime/storeless.test.ts +86 -0
  322. package/src/kernel/runtime/types.ts +210 -0
  323. package/src/kernel/runtime/wasmEmbed.test.ts +144 -0
  324. package/src/kernel/spec/asVerb.ts +23 -0
  325. package/src/kernel/spec/emitReference.test.ts +196 -0
  326. package/src/kernel/spec/emitReference.ts +491 -0
  327. package/src/kernel/spec/emitSurface.test.ts +65 -0
  328. package/src/kernel/spec/emitSurface.ts +225 -0
  329. package/src/kernel/spec/index.ts +36 -0
  330. package/src/kernel/spec/surfaceConformance.test.ts +94 -0
  331. package/src/kernel/spec/surfaceConformance.ts +135 -0
  332. package/src/kernel/spec/types.ts +233 -0
  333. package/src/kernel/spec/validate.test.ts +81 -0
  334. package/src/kernel/spec/validate.ts +125 -0
  335. package/src/testing/PARITY_GAPS.test.ts +32 -0
  336. package/src/testing/PARITY_GAPS.ts +179 -0
  337. package/src/testing/behavioral/README.md +164 -0
  338. package/src/testing/behavioral/agentSession.mcp.test.ts +160 -0
  339. package/src/testing/behavioral/autoLlm.e2e.test.ts +54 -0
  340. package/src/testing/behavioral/completion.test.ts +132 -0
  341. package/src/testing/behavioral/disclosure.test.ts +115 -0
  342. package/src/testing/behavioral/docExamples.test.ts +283 -0
  343. package/src/testing/behavioral/errorMatrix.mcp.test.ts +120 -0
  344. package/src/testing/behavioral/errorMatrix.storeless.test.ts +124 -0
  345. package/src/testing/behavioral/exitCodes.e2e.test.ts +53 -0
  346. package/src/testing/behavioral/firstRun.e2e.test.ts +40 -0
  347. package/src/testing/behavioral/harness.foundation.test.ts +136 -0
  348. package/src/testing/behavioral/journeys.cli.test.ts +131 -0
  349. package/src/testing/behavioral/journeys.defaultPack.test.ts +571 -0
  350. package/src/testing/behavioral/journeys.interactiveTty.e2e.test.ts +66 -0
  351. package/src/testing/behavioral/journeys.livePack.e2e.test.ts +129 -0
  352. package/src/testing/behavioral/journeys.mcpLifecycle.mcp.test.ts +176 -0
  353. package/src/testing/behavioral/liveReadSurface.ts +80 -0
  354. package/src/testing/behavioral/mcpServe.e2e.test.ts +21 -0
  355. package/src/testing/behavioral/mcpSurface.test.ts +139 -0
  356. package/src/testing/behavioral/parity.test.ts +224 -0
  357. package/src/testing/behavioral/rootCli.e2e.test.ts +62 -0
  358. package/src/testing/behavioral/staleCommands.test.ts +76 -0
  359. package/src/testing/eval/__snapshots__/eval.test.ts.snap +201 -0
  360. package/src/testing/eval/cases/assembly.ts +195 -0
  361. package/src/testing/eval/cases/effectful.ts +248 -0
  362. package/src/testing/eval/cases/readNouns.ts +235 -0
  363. package/src/testing/eval/cases/stable.ts +163 -0
  364. package/src/testing/eval/eval.test.ts +74 -0
  365. package/src/testing/eval/harness.ts +91 -0
  366. package/src/testing/eval/report.ts +58 -0
  367. package/src/testing/fixtures/blockGraph.ts +112 -0
  368. package/src/testing/fixtures/completionFixture.ts +239 -0
  369. package/src/testing/fixtures/fixtureCapability.ts +331 -0
  370. package/src/testing/fixtures/graph/canonical.ts +184 -0
  371. package/src/testing/fixtures/graph/defaultPack.ts +178 -0
  372. package/src/testing/fixtures/graph/owlExport.ts +95 -0
  373. package/src/testing/fixtures/packs/recipe.ts +78 -0
  374. package/src/testing/helpers/extractSnippets.ts +29 -0
  375. package/src/testing/helpers/fixtureGraph.ts +148 -0
  376. package/src/testing/helpers/golden.ts +45 -0
  377. package/src/testing/helpers/packRuntime.ts +118 -0
  378. package/src/testing/helpers/parity.ts +86 -0
  379. package/src/testing/helpers/projectCli.ts +35 -0
  380. package/src/testing/helpers/projectMcp.ts +145 -0
  381. package/src/testing/helpers/runCli.ts +128 -0
  382. package/src/testing/perf/budgets.test.ts +164 -0
  383. package/src/testing/perf/budgets.ts +37 -0
  384. package/src/testing/perf/globalSetup.ts +30 -0
  385. package/src/testing/perf/measure.ts +97 -0
  386. package/src/testing/setupXdgIsolation.ts +13 -12
  387. package/src/types.ts +42 -0
  388. package/src/bin.test.ts +0 -54
  389. package/src/compile-validation.runner.ts +0 -137
  390. package/src/compile-validation.ts +0 -191
  391. package/src/completions/computeSocketPath.test.ts +0 -26
  392. package/src/completions/computeSocketPath.ts +0 -16
  393. package/src/completions/constants.ts +0 -25
  394. package/src/completions/handleQuery.test.ts +0 -125
  395. package/src/completions/handleQuery.ts +0 -49
  396. package/src/completions/index.ts +0 -14
  397. package/src/completions/queryCompletions.test.ts +0 -105
  398. package/src/completions/queryCompletions.ts +0 -75
  399. package/src/completions/querySocket.test.ts +0 -101
  400. package/src/completions/querySocket.ts +0 -71
  401. package/src/completions/startCompletionsServer.test.ts +0 -74
  402. package/src/completions/startCompletionsServer.ts +0 -75
  403. package/src/completions/startCompletionsServer.unit.test.ts +0 -131
  404. package/src/completions/waitForSocket.test.ts +0 -27
  405. package/src/completions/waitForSocket.ts +0 -27
  406. package/src/config/configExists.ts +0 -14
  407. package/src/config/defaultConfig.test.ts +0 -33
  408. package/src/config/defaultConfig.ts +0 -59
  409. package/src/config/defaults.json +0 -17
  410. package/src/config/findProjectConfigPath.test.ts +0 -53
  411. package/src/config/findProjectConfigPath.ts +0 -36
  412. package/src/config/index.ts +0 -21
  413. package/src/config/mergeConfigFileUpdate.ts +0 -58
  414. package/src/config/parseConfigValues.ts +0 -217
  415. package/src/config/readConfig.test.ts +0 -395
  416. package/src/config/readConfig.ts +0 -21
  417. package/src/config/readConfigLayers.test.ts +0 -109
  418. package/src/config/readConfigLayers.ts +0 -118
  419. package/src/config/resolveConfigPath.test.ts +0 -20
  420. package/src/config/resolveConfigPath.ts +0 -11
  421. package/src/config/resolveGlobalConfigPath.ts +0 -13
  422. package/src/config/resolveWriteConfigPath.test.ts +0 -53
  423. package/src/config/resolveWriteConfigPath.ts +0 -31
  424. package/src/config/types.ts +0 -128
  425. package/src/config/writeConfig.ts +0 -37
  426. package/src/domains/block/blockConfig.ts +0 -97
  427. package/src/domains/block/commands/index.ts +0 -5
  428. package/src/domains/block/commands/list.test.ts +0 -111
  429. package/src/domains/block/commands/list.ts +0 -11
  430. package/src/domains/block/commands/lookup.test.ts +0 -187
  431. package/src/domains/block/commands/lookup.ts +0 -14
  432. package/src/domains/block/commands/sample.ts +0 -56
  433. package/src/domains/block/formatters/index.ts +0 -5
  434. package/src/domains/block/formatters/list.test.ts +0 -107
  435. package/src/domains/block/formatters/list.ts +0 -50
  436. package/src/domains/block/formatters/lookup.test.ts +0 -318
  437. package/src/domains/block/formatters/lookup.ts +0 -149
  438. package/src/domains/block/formatters/sample.ts +0 -21
  439. package/src/domains/block/formatters/types.ts +0 -16
  440. package/src/domains/block/helpers/index.ts +0 -4
  441. package/src/domains/block/helpers/resolveAspects.test.ts +0 -64
  442. package/src/domains/block/helpers/resolveAspects.ts +0 -35
  443. package/src/domains/block/index.ts +0 -25
  444. package/src/domains/block/mcp/index.ts +0 -2
  445. package/src/domains/block/mcp/specs.ts +0 -67
  446. package/src/domains/block/operations/index.ts +0 -5
  447. package/src/domains/block/operations/list.test.ts +0 -80
  448. package/src/domains/block/operations/list.ts +0 -72
  449. package/src/domains/block/operations/lookup.test.ts +0 -129
  450. package/src/domains/block/operations/lookup.ts +0 -446
  451. package/src/domains/block/operations/sample.ts +0 -41
  452. package/src/domains/block/orchestration/blockEmptyError.test.ts +0 -26
  453. package/src/domains/block/orchestration/blockEmptyError.ts +0 -19
  454. package/src/domains/block/orchestration/buildBlockFilters.ts +0 -12
  455. package/src/domains/block/orchestration/enrichBlocks.ts +0 -44
  456. package/src/domains/block/orchestration/index.ts +0 -5
  457. package/src/domains/block/orchestration/resolveBlockList.ts +0 -39
  458. package/src/domains/block/orchestration/resolveBlockLookup.ts +0 -35
  459. package/src/domains/block/stories.test.ts +0 -28
  460. package/src/domains/block/stories.ts +0 -260
  461. package/src/domains/block/types.ts +0 -30
  462. package/src/domains/config/commands/channel.test.ts +0 -128
  463. package/src/domains/config/commands/channel.ts +0 -99
  464. package/src/domains/config/commands/configScope.ts +0 -46
  465. package/src/domains/config/commands/framework.test.ts +0 -119
  466. package/src/domains/config/commands/framework.ts +0 -103
  467. package/src/domains/config/commands/index.ts +0 -6
  468. package/src/domains/config/commands/show.test.ts +0 -61
  469. package/src/domains/config/commands/show.ts +0 -11
  470. package/src/domains/config/commands/tier.test.ts +0 -102
  471. package/src/domains/config/commands/tier.ts +0 -97
  472. package/src/domains/config/commands/trace.test.ts +0 -165
  473. package/src/domains/config/commands/trace.ts +0 -83
  474. package/src/domains/config/formatters/channel.test.ts +0 -70
  475. package/src/domains/config/formatters/channel.ts +0 -37
  476. package/src/domains/config/formatters/framework.ts +0 -37
  477. package/src/domains/config/formatters/index.ts +0 -6
  478. package/src/domains/config/formatters/show.test.ts +0 -153
  479. package/src/domains/config/formatters/show.ts +0 -89
  480. package/src/domains/config/formatters/tier.test.ts +0 -86
  481. package/src/domains/config/formatters/tier.ts +0 -48
  482. package/src/domains/config/formatters/trace.ts +0 -28
  483. package/src/domains/config/index.ts +0 -36
  484. package/src/domains/config/mcp/index.ts +0 -2
  485. package/src/domains/config/mcp/specs.ts +0 -100
  486. package/src/domains/config/operations/index.ts +0 -6
  487. package/src/domains/config/operations/show.test.ts +0 -78
  488. package/src/domains/config/operations/show.ts +0 -48
  489. package/src/domains/config/operations/types.ts +0 -20
  490. package/src/domains/config/operations/validateChannel.test.ts +0 -36
  491. package/src/domains/config/operations/validateChannel.ts +0 -24
  492. package/src/domains/config/operations/validateFramework.ts +0 -24
  493. package/src/domains/config/operations/validateTier.test.ts +0 -65
  494. package/src/domains/config/operations/validateTier.ts +0 -43
  495. package/src/domains/config/stories.ts +0 -42
  496. package/src/domains/config/tasks/index.ts +0 -6
  497. package/src/domains/config/tasks/setChannel.ts +0 -21
  498. package/src/domains/config/tasks/setFramework.ts +0 -21
  499. package/src/domains/config/tasks/setTier.ts +0 -20
  500. package/src/domains/config/tasks/setTrace.ts +0 -20
  501. package/src/domains/config/tasks/writeConfigField.ts +0 -41
  502. package/src/domains/create/generatorPack/bundled.ts +0 -49
  503. package/src/domains/create/generatorPack/compileGeneratorPack.test.ts +0 -159
  504. package/src/domains/create/generatorPack/compileGeneratorPack.ts +0 -312
  505. package/src/domains/create/index.ts +0 -21
  506. package/src/domains/create/mcp/index.ts +0 -2
  507. package/src/domains/create/mcp/specs.ts +0 -13
  508. package/src/domains/create/renderGeneratorUi.test.ts +0 -103
  509. package/src/domains/create/renderGeneratorUi.ts +0 -65
  510. package/src/domains/doctor/commands/doctor.test.ts +0 -75
  511. package/src/domains/doctor/commands/doctor.ts +0 -43
  512. package/src/domains/doctor/commands/index.ts +0 -2
  513. package/src/domains/doctor/formatters/doctor.test.ts +0 -165
  514. package/src/domains/doctor/formatters/doctor.ts +0 -136
  515. package/src/domains/doctor/formatters/index.ts +0 -2
  516. package/src/domains/doctor/index.ts +0 -9
  517. package/src/domains/doctor/mcp/index.ts +0 -2
  518. package/src/domains/doctor/mcp/specs.ts +0 -41
  519. package/src/domains/doctor/operations/checks/checkConfigFile.ts +0 -42
  520. package/src/domains/doctor/operations/checks/checkKeStore.ts +0 -38
  521. package/src/domains/doctor/operations/checks/checkMcpCommands.ts +0 -133
  522. package/src/domains/doctor/operations/checks/checkMcpConfigured.ts +0 -65
  523. package/src/domains/doctor/operations/checks/checkNodeVersion.ts +0 -25
  524. package/src/domains/doctor/operations/checks/checkPackageRefs.ts +0 -76
  525. package/src/domains/doctor/operations/checks/checkPragmaVersion.ts +0 -20
  526. package/src/domains/doctor/operations/checks/checkShellCompletions.ts +0 -42
  527. package/src/domains/doctor/operations/checks/checkSkillsSymlinked.ts +0 -64
  528. package/src/domains/doctor/operations/checks/index.ts +0 -10
  529. package/src/domains/doctor/operations/checks.test.ts +0 -307
  530. package/src/domains/doctor/operations/index.ts +0 -3
  531. package/src/domains/doctor/operations/runChecks.test.ts +0 -176
  532. package/src/domains/doctor/operations/runChecks.ts +0 -78
  533. package/src/domains/doctor/operations/types.ts +0 -42
  534. package/src/domains/graph/commands/index.ts +0 -4
  535. package/src/domains/graph/commands/inspect.test.ts +0 -94
  536. package/src/domains/graph/commands/inspect.ts +0 -63
  537. package/src/domains/graph/commands/query.test.ts +0 -94
  538. package/src/domains/graph/commands/query.ts +0 -60
  539. package/src/domains/graph/formatters/index.ts +0 -4
  540. package/src/domains/graph/formatters/inspect.ts +0 -50
  541. package/src/domains/graph/formatters/query.test.ts +0 -87
  542. package/src/domains/graph/formatters/query.ts +0 -74
  543. package/src/domains/graph/helpers/index.ts +0 -3
  544. package/src/domains/graph/helpers/resolveUri.test.ts +0 -50
  545. package/src/domains/graph/helpers/resolveUri.ts +0 -77
  546. package/src/domains/graph/index.ts +0 -22
  547. package/src/domains/graph/mcp/index.ts +0 -2
  548. package/src/domains/graph/mcp/specs.ts +0 -82
  549. package/src/domains/graph/operations/executeQuery.test.ts +0 -68
  550. package/src/domains/graph/operations/executeQuery.ts +0 -32
  551. package/src/domains/graph/operations/index.ts +0 -4
  552. package/src/domains/graph/operations/inspectUri.test.ts +0 -101
  553. package/src/domains/graph/operations/inspectUri.ts +0 -64
  554. package/src/domains/graphql/commands/build.test.ts +0 -196
  555. package/src/domains/graphql/commands/build.ts +0 -117
  556. package/src/domains/graphql/commands/check.test.ts +0 -141
  557. package/src/domains/graphql/commands/check.ts +0 -81
  558. package/src/domains/graphql/commands/index.ts +0 -5
  559. package/src/domains/graphql/commands/serve.test.ts +0 -46
  560. package/src/domains/graphql/commands/serve.ts +0 -141
  561. package/src/domains/graphql/constants.ts +0 -10
  562. package/src/domains/graphql/formatters/index.ts +0 -3
  563. package/src/domains/graphql/formatters/report.ts +0 -78
  564. package/src/domains/graphql/helpers/gatherSources.test.ts +0 -92
  565. package/src/domains/graphql/helpers/gatherSources.ts +0 -58
  566. package/src/domains/graphql/helpers/index.ts +0 -6
  567. package/src/domains/graphql/helpers/parsePrefixes.test.ts +0 -44
  568. package/src/domains/graphql/helpers/parsePrefixes.ts +0 -38
  569. package/src/domains/graphql/helpers/resolveSourceFiles.test.ts +0 -65
  570. package/src/domains/graphql/helpers/resolveSourceFiles.ts +0 -66
  571. package/src/domains/graphql/helpers/routeGraphql.test.ts +0 -43
  572. package/src/domains/graphql/helpers/routeGraphql.ts +0 -28
  573. package/src/domains/graphql/index.ts +0 -24
  574. package/src/domains/graphql/operations/compileSchema.test.ts +0 -95
  575. package/src/domains/graphql/operations/compileSchema.ts +0 -107
  576. package/src/domains/graphql/operations/createSchemaServer.test.ts +0 -50
  577. package/src/domains/graphql/operations/createSchemaServer.ts +0 -75
  578. package/src/domains/graphql/operations/ensureSchemaArtifact.test.ts +0 -167
  579. package/src/domains/graphql/operations/ensureSchemaArtifact.ts +0 -178
  580. package/src/domains/graphql/operations/index.ts +0 -17
  581. package/src/domains/graphql/types.ts +0 -29
  582. package/src/domains/info/commands/index.ts +0 -4
  583. package/src/domains/info/commands/info.test.ts +0 -88
  584. package/src/domains/info/commands/info.ts +0 -47
  585. package/src/domains/info/commands/upgrade.test.ts +0 -183
  586. package/src/domains/info/commands/upgrade.ts +0 -153
  587. package/src/domains/info/constants.test.ts +0 -22
  588. package/src/domains/info/constants.ts +0 -15
  589. package/src/domains/info/formatters/index.ts +0 -8
  590. package/src/domains/info/formatters/info.test.ts +0 -207
  591. package/src/domains/info/formatters/info.ts +0 -131
  592. package/src/domains/info/formatters/upgrade.test.ts +0 -136
  593. package/src/domains/info/formatters/upgrade.ts +0 -70
  594. package/src/domains/info/index.ts +0 -9
  595. package/src/domains/info/mcp/index.ts +0 -2
  596. package/src/domains/info/mcp/specs.ts +0 -65
  597. package/src/domains/info/operations/checkRegistryVersion.test.ts +0 -124
  598. package/src/domains/info/operations/checkRegistryVersion.ts +0 -45
  599. package/src/domains/info/operations/collectEntityCounts.test.ts +0 -156
  600. package/src/domains/info/operations/collectEntityCounts.ts +0 -123
  601. package/src/domains/info/operations/collectInfo.test.ts +0 -122
  602. package/src/domains/info/operations/collectInfo.ts +0 -94
  603. package/src/domains/info/operations/collectStoreSummary.test.ts +0 -61
  604. package/src/domains/info/operations/collectStoreSummary.ts +0 -42
  605. package/src/domains/info/operations/index.ts +0 -6
  606. package/src/domains/info/types.test-d.ts +0 -35
  607. package/src/domains/info/types.ts +0 -67
  608. package/src/domains/llm/capabilities.test.ts +0 -111
  609. package/src/domains/llm/commands/capabilities.ts +0 -37
  610. package/src/domains/llm/commands/index.ts +0 -4
  611. package/src/domains/llm/commands/llm.ts +0 -41
  612. package/src/domains/llm/data/commandReference.ts +0 -106
  613. package/src/domains/llm/data/decisionTrees.ts +0 -55
  614. package/src/domains/llm/data/index.ts +0 -6
  615. package/src/domains/llm/data/toolCatalog.ts +0 -221
  616. package/src/domains/llm/formatters/capabilities.ts +0 -50
  617. package/src/domains/llm/formatters/index.ts +0 -4
  618. package/src/domains/llm/formatters/orientation.ts +0 -57
  619. package/src/domains/llm/index.ts +0 -9
  620. package/src/domains/llm/llmCommand.test.ts +0 -101
  621. package/src/domains/llm/mcp/index.ts +0 -2
  622. package/src/domains/llm/mcp/specs.ts +0 -93
  623. package/src/domains/llm/operations/collectContext.test.ts +0 -64
  624. package/src/domains/llm/operations/collectContext.ts +0 -37
  625. package/src/domains/llm/operations/index.ts +0 -3
  626. package/src/domains/llm/types.ts +0 -72
  627. package/src/domains/modifier/commands/index.ts +0 -5
  628. package/src/domains/modifier/commands/list.test.ts +0 -57
  629. package/src/domains/modifier/commands/list.ts +0 -9
  630. package/src/domains/modifier/commands/lookup.test.ts +0 -91
  631. package/src/domains/modifier/commands/lookup.ts +0 -14
  632. package/src/domains/modifier/commands/sample.ts +0 -54
  633. package/src/domains/modifier/formatters/index.ts +0 -8
  634. package/src/domains/modifier/formatters/list.test.ts +0 -38
  635. package/src/domains/modifier/formatters/list.ts +0 -22
  636. package/src/domains/modifier/formatters/lookup.test.ts +0 -33
  637. package/src/domains/modifier/formatters/lookup.ts +0 -50
  638. package/src/domains/modifier/formatters/sample.ts +0 -15
  639. package/src/domains/modifier/index.ts +0 -27
  640. package/src/domains/modifier/mcp/index.ts +0 -2
  641. package/src/domains/modifier/mcp/specs.ts +0 -65
  642. package/src/domains/modifier/modifierConfig.ts +0 -36
  643. package/src/domains/modifier/operations/index.ts +0 -5
  644. package/src/domains/modifier/operations/list.test.ts +0 -39
  645. package/src/domains/modifier/operations/list.ts +0 -41
  646. package/src/domains/modifier/operations/lookup.test.ts +0 -37
  647. package/src/domains/modifier/operations/lookup.ts +0 -69
  648. package/src/domains/modifier/operations/sample.ts +0 -32
  649. package/src/domains/modifier/orchestration/index.ts +0 -3
  650. package/src/domains/modifier/orchestration/modifierEmptyError.test.ts +0 -26
  651. package/src/domains/modifier/orchestration/modifierEmptyError.ts +0 -15
  652. package/src/domains/modifier/orchestration/resolveModifierList.ts +0 -16
  653. package/src/domains/modifier/orchestration/resolveModifierLookup.ts +0 -33
  654. package/src/domains/modifier/stories.test.ts +0 -20
  655. package/src/domains/modifier/stories.ts +0 -86
  656. package/src/domains/modifier/types.ts +0 -5
  657. package/src/domains/ontology/commands/index.ts +0 -4
  658. package/src/domains/ontology/commands/list.test.ts +0 -84
  659. package/src/domains/ontology/commands/list.ts +0 -11
  660. package/src/domains/ontology/commands/show.test.ts +0 -179
  661. package/src/domains/ontology/commands/show.ts +0 -14
  662. package/src/domains/ontology/formatters/index.ts +0 -5
  663. package/src/domains/ontology/formatters/list.ts +0 -64
  664. package/src/domains/ontology/formatters/show.ts +0 -396
  665. package/src/domains/ontology/helpers/buildClassTree.ts +0 -89
  666. package/src/domains/ontology/helpers/completeClassNames.ts +0 -43
  667. package/src/domains/ontology/helpers/expandOntologyIris.ts +0 -79
  668. package/src/domains/ontology/helpers/findNamespace.ts +0 -23
  669. package/src/domains/ontology/helpers/index.ts +0 -21
  670. package/src/domains/ontology/helpers/queryClasses.ts +0 -66
  671. package/src/domains/ontology/helpers/queryProperties.ts +0 -90
  672. package/src/domains/ontology/helpers/queryTboxFacts.ts +0 -160
  673. package/src/domains/ontology/helpers/resolvePrefix.ts +0 -45
  674. package/src/domains/ontology/index.ts +0 -26
  675. package/src/domains/ontology/mcp/index.ts +0 -2
  676. package/src/domains/ontology/mcp/specs.ts +0 -16
  677. package/src/domains/ontology/operations/index.ts +0 -5
  678. package/src/domains/ontology/operations/listOntologies.test.ts +0 -122
  679. package/src/domains/ontology/operations/listOntologies.ts +0 -197
  680. package/src/domains/ontology/operations/showOntology.test.ts +0 -184
  681. package/src/domains/ontology/operations/showOntology.ts +0 -323
  682. package/src/domains/ontology/operations/showOntologyRaw.test.ts +0 -41
  683. package/src/domains/ontology/operations/showOntologyRaw.ts +0 -50
  684. package/src/domains/ontology/stories.test.ts +0 -36
  685. package/src/domains/ontology/stories.ts +0 -153
  686. package/src/domains/refs/commands/updateRefs.ts +0 -52
  687. package/src/domains/refs/formatters/updateRefs.ts +0 -27
  688. package/src/domains/refs/index.ts +0 -27
  689. package/src/domains/refs/operations/gitOps.test.ts +0 -155
  690. package/src/domains/refs/operations/gitOps.ts +0 -92
  691. package/src/domains/refs/operations/index.ts +0 -10
  692. package/src/domains/refs/operations/parseRef.test.ts +0 -157
  693. package/src/domains/refs/operations/parseRef.ts +0 -114
  694. package/src/domains/refs/operations/paths.test.ts +0 -98
  695. package/src/domains/refs/operations/paths.ts +0 -91
  696. package/src/domains/refs/operations/readGlobalRefs.test.ts +0 -63
  697. package/src/domains/refs/operations/readGlobalRefs.ts +0 -37
  698. package/src/domains/refs/operations/updateRefs.test.ts +0 -167
  699. package/src/domains/refs/operations/updateRefs.ts +0 -180
  700. package/src/domains/setup/commands/all.ts +0 -58
  701. package/src/domains/setup/commands/completions.ts +0 -85
  702. package/src/domains/setup/commands/entrypoints.test.ts +0 -170
  703. package/src/domains/setup/commands/index.ts +0 -7
  704. package/src/domains/setup/commands/lsp.ts +0 -49
  705. package/src/domains/setup/commands/mcp.ts +0 -119
  706. package/src/domains/setup/commands/setup.ts +0 -70
  707. package/src/domains/setup/commands/skills.test.ts +0 -68
  708. package/src/domains/setup/commands/skills.ts +0 -110
  709. package/src/domains/setup/formatters/index.ts +0 -2
  710. package/src/domains/setup/formatters/skills.test.ts +0 -103
  711. package/src/domains/setup/formatters/skills.ts +0 -112
  712. package/src/domains/setup/formatters/types.ts +0 -7
  713. package/src/domains/setup/helpers/completionScripts.test.ts +0 -58
  714. package/src/domains/setup/helpers/completionScripts.ts +0 -92
  715. package/src/domains/setup/helpers/constants.ts +0 -2
  716. package/src/domains/setup/helpers/detectShell.test.ts +0 -48
  717. package/src/domains/setup/helpers/detectShell.ts +0 -20
  718. package/src/domains/setup/helpers/index.ts +0 -12
  719. package/src/domains/setup/helpers/runSetupTask.test.ts +0 -277
  720. package/src/domains/setup/helpers/runSetupTask.ts +0 -221
  721. package/src/domains/setup/index.ts +0 -37
  722. package/src/domains/setup/operations/index.ts +0 -6
  723. package/src/domains/setup/operations/setupAll.test.ts +0 -48
  724. package/src/domains/setup/operations/setupAll.ts +0 -41
  725. package/src/domains/setup/operations/setupCompletions.test.ts +0 -94
  726. package/src/domains/setup/operations/setupCompletions.ts +0 -54
  727. package/src/domains/setup/operations/setupLsp.test.ts +0 -30
  728. package/src/domains/setup/operations/setupLsp.ts +0 -22
  729. package/src/domains/setup/operations/setupMcp.test.ts +0 -120
  730. package/src/domains/setup/operations/setupMcp.ts +0 -108
  731. package/src/domains/setup/operations/setupSkills.test.ts +0 -191
  732. package/src/domains/setup/operations/setupSkills.ts +0 -160
  733. package/src/domains/setup/types.ts +0 -18
  734. package/src/domains/shared/ToolSpec.ts +0 -49
  735. package/src/domains/shared/bootStore.bareCore.test.ts +0 -63
  736. package/src/domains/shared/bootStore.test.ts +0 -82
  737. package/src/domains/shared/bootStore.ts +0 -171
  738. package/src/domains/shared/buildQuery.ts +0 -18
  739. package/src/domains/shared/compactUri.test.ts +0 -32
  740. package/src/domains/shared/compactUri.ts +0 -21
  741. package/src/domains/shared/context.ts +0 -16
  742. package/src/domains/shared/contracts.ts +0 -164
  743. package/src/domains/shared/createInteractivePromptSession.test.ts +0 -439
  744. package/src/domains/shared/createInteractivePromptSession.ts +0 -236
  745. package/src/domains/shared/emptyErrorRecovery.test.ts +0 -106
  746. package/src/domains/shared/extractLocalName.test.ts +0 -21
  747. package/src/domains/shared/extractLocalName.ts +0 -14
  748. package/src/domains/shared/filters/buildChannelFilter.test.ts +0 -52
  749. package/src/domains/shared/filters/buildChannelFilter.ts +0 -41
  750. package/src/domains/shared/filters/buildFilterConfig.ts +0 -15
  751. package/src/domains/shared/filters/buildFilters.test.ts +0 -33
  752. package/src/domains/shared/filters/buildFilters.ts +0 -30
  753. package/src/domains/shared/filters/buildTierFilter.test.ts +0 -78
  754. package/src/domains/shared/filters/buildTierFilter.ts +0 -69
  755. package/src/domains/shared/filters/describeFilters.ts +0 -14
  756. package/src/domains/shared/filters/index.ts +0 -10
  757. package/src/domains/shared/formatters.ts +0 -103
  758. package/src/domains/shared/listTiers.ts +0 -40
  759. package/src/domains/shared/loaders/bundledLoader.test.ts +0 -248
  760. package/src/domains/shared/loaders/bundledLoader.ts +0 -254
  761. package/src/domains/shared/loaders/gitLoader.ts +0 -30
  762. package/src/domains/shared/loaders/index.ts +0 -9
  763. package/src/domains/shared/loaders/localLoader.ts +0 -71
  764. package/src/domains/shared/loaders/readPackageDir.test.ts +0 -58
  765. package/src/domains/shared/loaders/readPackageDir.ts +0 -185
  766. package/src/domains/shared/loaders/storyAssetsPlugin.test.ts +0 -84
  767. package/src/domains/shared/loaders/storyAssetsPlugin.ts +0 -46
  768. package/src/domains/shared/lookupMany.test.ts +0 -135
  769. package/src/domains/shared/lookupMany.ts +0 -101
  770. package/src/domains/shared/mergeAndParseRefs.test.ts +0 -89
  771. package/src/domains/shared/mergeAndParseRefs.ts +0 -44
  772. package/src/domains/shared/namespaces.ts +0 -26
  773. package/src/domains/shared/packages.ts +0 -20
  774. package/src/domains/shared/parseSampleCount.test.ts +0 -47
  775. package/src/domains/shared/parseSampleCount.ts +0 -45
  776. package/src/domains/shared/pickRandom.ts +0 -22
  777. package/src/domains/shared/prefixes.test.ts +0 -211
  778. package/src/domains/shared/prefixes.ts +0 -204
  779. package/src/domains/shared/renderers.ts +0 -410
  780. package/src/domains/shared/resolveConfiguredGraphs.test.ts +0 -27
  781. package/src/domains/shared/resolveConfiguredGraphs.ts +0 -41
  782. package/src/domains/shared/resolveLookupExitCode.test.ts +0 -48
  783. package/src/domains/shared/resolveLookupExitCode.ts +0 -42
  784. package/src/domains/shared/runtime.ts +0 -61
  785. package/src/domains/shared/sampleFormatters.ts +0 -47
  786. package/src/domains/shared/semanticPackage.test.ts +0 -89
  787. package/src/domains/shared/semanticPackage.ts +0 -127
  788. package/src/domains/shared/stories/compileLookupCommand.test.ts +0 -145
  789. package/src/domains/shared/stories/compileLookupCommand.ts +0 -102
  790. package/src/domains/shared/stories/compileLookupTool.test.ts +0 -105
  791. package/src/domains/shared/stories/compileLookupTool.ts +0 -96
  792. package/src/domains/shared/stories/compileReadCommand.test.ts +0 -121
  793. package/src/domains/shared/stories/compileReadCommand.ts +0 -48
  794. package/src/domains/shared/stories/compileReadTool.test.ts +0 -64
  795. package/src/domains/shared/stories/compileReadTool.ts +0 -38
  796. package/src/domains/shared/stories/condense.test.ts +0 -18
  797. package/src/domains/shared/stories/condense.ts +0 -15
  798. package/src/domains/shared/stories/index.ts +0 -20
  799. package/src/domains/shared/stories/normalizeNames.test.ts +0 -20
  800. package/src/domains/shared/stories/normalizeNames.ts +0 -22
  801. package/src/domains/shared/stories/pack/applyPackFilters.test.ts +0 -151
  802. package/src/domains/shared/stories/pack/applyPackFilters.ts +0 -111
  803. package/src/domains/shared/stories/pack/applyPackSearch.test.ts +0 -57
  804. package/src/domains/shared/stories/pack/applyPackSearch.ts +0 -41
  805. package/src/domains/shared/stories/pack/buildLookupQuery.test.ts +0 -81
  806. package/src/domains/shared/stories/pack/buildLookupQuery.ts +0 -154
  807. package/src/domains/shared/stories/pack/bundled/index.ts +0 -23
  808. package/src/domains/shared/stories/pack/bundled/standardPack.ts +0 -164
  809. package/src/domains/shared/stories/pack/bundled/tierPack.ts +0 -50
  810. package/src/domains/shared/stories/pack/collectPackStories.test.ts +0 -406
  811. package/src/domains/shared/stories/pack/collectPackStories.ts +0 -158
  812. package/src/domains/shared/stories/pack/compilePackCommands.ts +0 -50
  813. package/src/domains/shared/stories/pack/compilePackStories.test.ts +0 -751
  814. package/src/domains/shared/stories/pack/compilePackStories.ts +0 -724
  815. package/src/domains/shared/stories/pack/compilePackToolSpecs.ts +0 -55
  816. package/src/domains/shared/stories/pack/index.ts +0 -42
  817. package/src/domains/shared/stories/pack/reservedVerbs.test.ts +0 -213
  818. package/src/domains/shared/stories/pack/reservedVerbs.ts +0 -170
  819. package/src/domains/shared/stories/pack/runSelectQuery.ts +0 -31
  820. package/src/domains/shared/stories/pack/standardParity.test.ts +0 -381
  821. package/src/domains/shared/stories/pack/types.ts +0 -224
  822. package/src/domains/shared/stories/pack/validateStoryPackDefinition.test.ts +0 -742
  823. package/src/domains/shared/stories/pack/validateStoryPackDefinition.ts +0 -859
  824. package/src/domains/shared/stories/projectCliParameters.test.ts +0 -59
  825. package/src/domains/shared/stories/projectCliParameters.ts +0 -57
  826. package/src/domains/shared/stories/projectToolParams.test.ts +0 -50
  827. package/src/domains/shared/stories/projectToolParams.ts +0 -32
  828. package/src/domains/shared/stories/requirePragmaContext.test.ts +0 -23
  829. package/src/domains/shared/stories/requirePragmaContext.ts +0 -23
  830. package/src/domains/shared/stories/resolveLookupDetailed.test.ts +0 -57
  831. package/src/domains/shared/stories/resolveLookupDetailed.ts +0 -27
  832. package/src/domains/shared/stories/types.ts +0 -179
  833. package/src/domains/shared/suggestions/detectCrossDomain.test.ts +0 -43
  834. package/src/domains/shared/suggestions/detectCrossDomain.ts +0 -116
  835. package/src/domains/shared/suggestions/expandGlob.test.ts +0 -92
  836. package/src/domains/shared/suggestions/expandGlob.ts +0 -52
  837. package/src/domains/shared/suggestions/expandLookupQueries.ts +0 -57
  838. package/src/domains/shared/suggestions/index.ts +0 -7
  839. package/src/domains/shared/suggestions/listDomainNames.ts +0 -61
  840. package/src/domains/shared/suggestions/suggestNames.test.ts +0 -70
  841. package/src/domains/shared/suggestions/suggestNames.ts +0 -130
  842. package/src/domains/shared/types/block.ts +0 -107
  843. package/src/domains/shared/types/common.ts +0 -33
  844. package/src/domains/shared/types/graph.ts +0 -17
  845. package/src/domains/shared/types/index.ts +0 -46
  846. package/src/domains/shared/types/modifier.ts +0 -22
  847. package/src/domains/shared/types/ontology.ts +0 -145
  848. package/src/domains/shared/types/runtime.ts +0 -24
  849. package/src/domains/shared/types/sample.ts +0 -17
  850. package/src/domains/shared/types/standard.ts +0 -21
  851. package/src/domains/shared/types/tier.ts +0 -15
  852. package/src/domains/shared/types/token.ts +0 -30
  853. package/src/domains/skill/commands/index.ts +0 -4
  854. package/src/domains/skill/commands/list.test.ts +0 -115
  855. package/src/domains/skill/commands/list.ts +0 -11
  856. package/src/domains/skill/commands/lookup.test.ts +0 -118
  857. package/src/domains/skill/commands/lookup.ts +0 -14
  858. package/src/domains/skill/formatters/index.ts +0 -3
  859. package/src/domains/skill/formatters/list.test.ts +0 -140
  860. package/src/domains/skill/formatters/list.ts +0 -119
  861. package/src/domains/skill/formatters/lookup.test.ts +0 -46
  862. package/src/domains/skill/formatters/lookup.ts +0 -57
  863. package/src/domains/skill/formatters/types.ts +0 -8
  864. package/src/domains/skill/helpers/index.ts +0 -6
  865. package/src/domains/skill/helpers/parseFrontmatter.test.ts +0 -122
  866. package/src/domains/skill/helpers/parseFrontmatter.ts +0 -112
  867. package/src/domains/skill/helpers/resolveSkillSources.ts +0 -70
  868. package/src/domains/skill/index.ts +0 -23
  869. package/src/domains/skill/mcp/index.ts +0 -2
  870. package/src/domains/skill/mcp/specs.ts +0 -19
  871. package/src/domains/skill/operations/discover.test.ts +0 -176
  872. package/src/domains/skill/operations/discover.ts +0 -59
  873. package/src/domains/skill/operations/index.ts +0 -5
  874. package/src/domains/skill/operations/list.test.ts +0 -76
  875. package/src/domains/skill/operations/list.ts +0 -47
  876. package/src/domains/skill/operations/lookup.test.ts +0 -91
  877. package/src/domains/skill/operations/lookup.ts +0 -70
  878. package/src/domains/skill/stories.test.ts +0 -43
  879. package/src/domains/skill/stories.ts +0 -103
  880. package/src/domains/skill/types.ts +0 -33
  881. package/src/domains/token/commands/add-config.test.ts +0 -68
  882. package/src/domains/token/commands/add-config.ts +0 -62
  883. package/src/domains/token/commands/index.ts +0 -6
  884. package/src/domains/token/commands/list.test.ts +0 -82
  885. package/src/domains/token/commands/list.ts +0 -54
  886. package/src/domains/token/commands/lookup.test.ts +0 -133
  887. package/src/domains/token/commands/lookup.ts +0 -107
  888. package/src/domains/token/commands/sample.ts +0 -54
  889. package/src/domains/token/featureFlag.ts +0 -17
  890. package/src/domains/token/formatters/index.ts +0 -8
  891. package/src/domains/token/formatters/list.test.ts +0 -37
  892. package/src/domains/token/formatters/list.ts +0 -24
  893. package/src/domains/token/formatters/lookup.test.ts +0 -61
  894. package/src/domains/token/formatters/lookup.ts +0 -107
  895. package/src/domains/token/formatters/sample.ts +0 -16
  896. package/src/domains/token/index.ts +0 -45
  897. package/src/domains/token/mcp/index.ts +0 -2
  898. package/src/domains/token/mcp/specs.ts +0 -207
  899. package/src/domains/token/operations/add-config.test.ts +0 -68
  900. package/src/domains/token/operations/add-config.ts +0 -61
  901. package/src/domains/token/operations/index.ts +0 -8
  902. package/src/domains/token/operations/list.test.ts +0 -50
  903. package/src/domains/token/operations/list.ts +0 -52
  904. package/src/domains/token/operations/lookup.test.ts +0 -42
  905. package/src/domains/token/operations/lookup.ts +0 -75
  906. package/src/domains/token/operations/sample.ts +0 -32
  907. package/src/domains/token/orchestration/index.ts +0 -3
  908. package/src/domains/token/orchestration/resolveTokenList.ts +0 -17
  909. package/src/domains/token/orchestration/resolveTokenLookup.ts +0 -33
  910. package/src/domains/token/orchestration/tokenEmptyError.test.ts +0 -33
  911. package/src/domains/token/orchestration/tokenEmptyError.ts +0 -20
  912. package/src/domains/token/tokenConfig.ts +0 -38
  913. package/src/domains/token/types.ts +0 -6
  914. package/src/domains/trace/commands/clear.ts +0 -71
  915. package/src/domains/trace/commands/index.ts +0 -5
  916. package/src/domains/trace/commands/resolveTraceLimit.test.ts +0 -31
  917. package/src/domains/trace/commands/sessions.ts +0 -32
  918. package/src/domains/trace/commands/show.ts +0 -171
  919. package/src/domains/trace/formatters/index.ts +0 -9
  920. package/src/domains/trace/formatters/sessions.ts +0 -80
  921. package/src/domains/trace/formatters/show.ts +0 -122
  922. package/src/domains/trace/index.ts +0 -17
  923. package/src/domains/trace/operations/index.ts +0 -8
  924. package/src/domains/trace/operations/listSessions.test.ts +0 -55
  925. package/src/domains/trace/operations/listSessions.ts +0 -52
  926. package/src/domains/trace/operations/readTraceLog.test.ts +0 -100
  927. package/src/domains/trace/operations/readTraceLog.ts +0 -104
  928. package/src/domains/trace/tracePlugin.test.ts +0 -171
  929. package/src/domains/trace/tracePlugin.ts +0 -159
  930. package/src/domains/trace/types.ts +0 -65
  931. package/src/embedWasm.ts +0 -42
  932. package/src/error/PragmaError.test.ts +0 -121
  933. package/src/error/PragmaError.ts +0 -177
  934. package/src/error/constants.ts +0 -12
  935. package/src/error/index.ts +0 -4
  936. package/src/error/types.ts +0 -55
  937. package/src/mcp/createMcpServer.test.ts +0 -41
  938. package/src/mcp/createMcpServer.ts +0 -53
  939. package/src/mcp/error/buildRecovery.test.ts +0 -37
  940. package/src/mcp/error/buildRecovery.ts +0 -17
  941. package/src/mcp/error/index.ts +0 -12
  942. package/src/mcp/error/serializeError.test.ts +0 -121
  943. package/src/mcp/error/serializeError.ts +0 -31
  944. package/src/mcp/error/serializeErrorPayload.test.ts +0 -38
  945. package/src/mcp/error/serializeErrorPayload.ts +0 -34
  946. package/src/mcp/error/types.ts +0 -59
  947. package/src/mcp/index.ts +0 -15
  948. package/src/mcp/registerResources.test.ts +0 -566
  949. package/src/mcp/registerResources.ts +0 -9
  950. package/src/mcp/resources/buildGraphIndex.ts +0 -167
  951. package/src/mcp/resources/buildResourceList.test.ts +0 -97
  952. package/src/mcp/resources/buildResourceList.ts +0 -176
  953. package/src/mcp/resources/classifyEntity.test.ts +0 -40
  954. package/src/mcp/resources/classifyEntity.ts +0 -27
  955. package/src/mcp/resources/constants.ts +0 -105
  956. package/src/mcp/resources/displayPredicates.ts +0 -62
  957. package/src/mcp/resources/pickFirstValue.test.ts +0 -29
  958. package/src/mcp/resources/pickFirstValue.ts +0 -26
  959. package/src/mcp/resources/pickPrimaryType.test.ts +0 -41
  960. package/src/mcp/resources/pickPrimaryType.ts +0 -26
  961. package/src/mcp/resources/rankUriCompletions.test.ts +0 -52
  962. package/src/mcp/resources/rankUriCompletions.ts +0 -64
  963. package/src/mcp/resources/readEntity.ts +0 -169
  964. package/src/mcp/resources/registerResources.ts +0 -126
  965. package/src/mcp/resources/types.ts +0 -128
  966. package/src/mcp/runMcpServer.test.ts +0 -66
  967. package/src/mcp/runMcpServer.ts +0 -24
  968. package/src/mcp/tools/index.ts +0 -74
  969. package/src/mcp/tools/registerFromSpec.ts +0 -97
  970. package/src/mcp/tools/registerTools.test.ts +0 -1277
  971. package/src/mcp/types.ts +0 -66
  972. package/src/mcp/utils/estimateTokens.test.ts +0 -14
  973. package/src/mcp/utils/estimateTokens.ts +0 -9
  974. package/src/mcp/utils/index.ts +0 -11
  975. package/src/mcp/utils/wrapTool.test.ts +0 -109
  976. package/src/mcp/utils/wrapTool.ts +0 -81
  977. package/src/package-manager/constants.ts +0 -29
  978. package/src/package-manager/detectInstallSource.test.ts +0 -23
  979. package/src/package-manager/detectInstallSource.ts +0 -111
  980. package/src/package-manager/detectLocalInstall.test.ts +0 -16
  981. package/src/package-manager/detectLocalInstall.ts +0 -43
  982. package/src/package-manager/detectPackageManager.test.ts +0 -81
  983. package/src/package-manager/detectPackageManager.ts +0 -30
  984. package/src/package-manager/index.ts +0 -6
  985. package/src/package-manager/types.ts +0 -10
  986. package/src/pipeline/collectCommands.test.ts +0 -187
  987. package/src/pipeline/collectCommands.ts +0 -75
  988. package/src/pipeline/constants.ts +0 -14
  989. package/src/pipeline/createProgram.test.ts +0 -116
  990. package/src/pipeline/createProgram.ts +0 -89
  991. package/src/pipeline/firstRun.test.ts +0 -80
  992. package/src/pipeline/firstRun.ts +0 -99
  993. package/src/pipeline/formatTerminal.test.ts +0 -43
  994. package/src/pipeline/formatTerminal.ts +0 -53
  995. package/src/pipeline/index.ts +0 -22
  996. package/src/pipeline/mapExitCode.test.ts +0 -41
  997. package/src/pipeline/mapExitCode.ts +0 -12
  998. package/src/pipeline/parseGlobalFlags.test.ts +0 -193
  999. package/src/pipeline/parseGlobalFlags.ts +0 -135
  1000. package/src/pipeline/renderError.test.ts +0 -151
  1001. package/src/pipeline/renderError.ts +0 -129
  1002. package/src/pipeline/resolveCommandKind.test.ts +0 -80
  1003. package/src/pipeline/resolveCommandKind.ts +0 -82
  1004. package/src/pipeline/rootHelp.test.ts +0 -87
  1005. package/src/pipeline/rootHelp.ts +0 -265
  1006. package/src/pipeline/runCli.orchestration.test.ts +0 -435
  1007. package/src/pipeline/runCli.test.ts +0 -83
  1008. package/src/pipeline/runCli.ts +0 -411
  1009. package/src/pipeline/types.ts +0 -17
  1010. package/src/testing/cli.ts +0 -71
  1011. package/src/testing/createTestMcpClient.ts +0 -68
  1012. package/src/testing/dsFixtures.ts +0 -523
  1013. package/src/testing/fixtures/canonical-config.json +0 -4
  1014. package/src/testing/fixtures/canonical.ttl +0 -437
  1015. package/src/testing/fixtures/filtered-config.json +0 -4
  1016. package/src/testing/fixtures.ts +0 -34
  1017. package/src/testing/graphqlFixtures.ts +0 -72
  1018. package/src/testing/helpers/assertParity.ts +0 -28
  1019. package/src/testing/helpers/createTestMcpClient.ts +0 -40
  1020. package/src/testing/helpers/createTestRuntime.ts +0 -67
  1021. package/src/testing/index.ts +0 -22
  1022. package/src/testing/integration/__snapshots__/executor-golden.test.ts.snap +0 -1207
  1023. package/src/testing/integration/agent-session.test.ts +0 -148
  1024. package/src/testing/integration/boot.test.ts +0 -105
  1025. package/src/testing/integration/cli-user-stories.test.ts +0 -261
  1026. package/src/testing/integration/cross-binary-byte-equality.test.ts +0 -129
  1027. package/src/testing/integration/edge-cases.test.ts +0 -275
  1028. package/src/testing/integration/executor-execution.test.ts +0 -103
  1029. package/src/testing/integration/executor-golden.test.ts +0 -145
  1030. package/src/testing/integration/mcp-surface.test.ts +0 -605
  1031. package/src/testing/integration/parity.test.ts +0 -596
  1032. package/src/testing/regression/0001-skill-discovery-granularity.test.ts +0 -71
  1033. package/src/testing/standardParityFixtures.ts +0 -35
  1034. package/src/testing/store.ts +0 -39
  1035. package/src/testing/storyFixtures.ts +0 -63
  1036. package/src/testing/types.ts +0 -20
  1037. package/src/tui/components/BulletList/BulletList.tsx +0 -46
  1038. package/src/tui/components/BulletList/index.ts +0 -2
  1039. package/src/tui/components/BulletList/types.ts +0 -6
  1040. package/src/tui/components/Card/Card.tsx +0 -73
  1041. package/src/tui/components/Card/index.ts +0 -1
  1042. package/src/tui/components/Card/types.ts +0 -12
  1043. package/src/tui/components/CodeBlock/CodeBlock.tsx +0 -37
  1044. package/src/tui/components/CodeBlock/index.ts +0 -2
  1045. package/src/tui/components/CodeBlock/types.ts +0 -6
  1046. package/src/tui/components/DataRow/DataRow.tsx +0 -80
  1047. package/src/tui/components/DataRow/index.ts +0 -2
  1048. package/src/tui/components/DataRow/types.ts +0 -14
  1049. package/src/tui/components/FieldRow/FieldRow.tsx +0 -24
  1050. package/src/tui/components/FieldRow/index.ts +0 -2
  1051. package/src/tui/components/FieldRow/types.ts +0 -10
  1052. package/src/tui/components/HeaderRow/HeaderRow.tsx +0 -32
  1053. package/src/tui/components/HeaderRow/index.ts +0 -2
  1054. package/src/tui/components/HeaderRow/types.ts +0 -8
  1055. package/src/tui/components/MarkdownText/MarkdownText.tsx +0 -19
  1056. package/src/tui/components/MarkdownText/index.ts +0 -2
  1057. package/src/tui/components/MarkdownText/types.ts +0 -4
  1058. package/src/tui/components/MiniTable/MiniTable.tsx +0 -82
  1059. package/src/tui/components/MiniTable/index.ts +0 -2
  1060. package/src/tui/components/MiniTable/types.ts +0 -6
  1061. package/src/tui/components/SectionRenderer/SectionRenderer.tsx +0 -91
  1062. package/src/tui/components/SectionRenderer/index.ts +0 -2
  1063. package/src/tui/components/SectionRenderer/types.ts +0 -15
  1064. package/src/tui/components/TreeView/TreeView.tsx +0 -84
  1065. package/src/tui/components/TreeView/index.ts +0 -2
  1066. package/src/tui/components/TreeView/types.ts +0 -6
  1067. package/src/tui/components/index.ts +0 -19
  1068. package/src/tui/constants.ts +0 -39
  1069. package/src/tui/createListView.ts +0 -23
  1070. package/src/tui/createLookupView.ts +0 -26
  1071. package/src/tui/helpers/computeWidths.ts +0 -53
  1072. package/src/tui/helpers/fitColumns.ts +0 -33
  1073. package/src/tui/helpers/formatMarkdown.ts +0 -19
  1074. package/src/tui/helpers/getTerminalSize.ts +0 -16
  1075. package/src/tui/helpers/index.ts +0 -6
  1076. package/src/tui/helpers/syntaxColor.ts +0 -67
  1077. package/src/tui/helpers/truncateText.ts +0 -12
  1078. package/src/tui/hooks/index.ts +0 -3
  1079. package/src/tui/hooks/types.ts +0 -7
  1080. package/src/tui/hooks/useAutoExit.ts +0 -17
  1081. package/src/tui/hooks/useTerminalSize.ts +0 -19
  1082. package/src/tui/index.ts +0 -15
  1083. package/src/tui/renderInk.tsx +0 -18
  1084. package/src/tui/types.ts +0 -12
  1085. package/src/tui/views/ListView/ListView.tsx +0 -104
  1086. package/src/tui/views/ListView/index.ts +0 -2
  1087. package/src/tui/views/ListView/types.ts +0 -14
  1088. package/src/tui/views/LookupView/LookupView.tsx +0 -244
  1089. package/src/tui/views/LookupView/index.ts +0 -2
  1090. package/src/tui/views/LookupView/types.ts +0 -16
  1091. package/src/tui/views/index.ts +0 -4
@@ -1,167 +0,0 @@
1
- import type { Store } from "@canonical/ke";
2
- import findNamespace from "../../domains/ontology/helpers/findNamespace.js";
3
- import { buildQuery } from "../../domains/shared/buildQuery.js";
4
- import compactUri from "../../domains/shared/compactUri.js";
5
- import extractLocalName from "../../domains/shared/extractLocalName.js";
6
- import classifyEntity from "./classifyEntity.js";
7
- import { RDF_TYPE } from "./constants.js";
8
- import {
9
- collectDescriptionPredicates,
10
- collectLabelPredicates,
11
- resolveDescriptionPredicates,
12
- resolveLabelPredicates,
13
- } from "./displayPredicates.js";
14
- import pickFirstValue from "./pickFirstValue.js";
15
- import pickPrimaryType from "./pickPrimaryType.js";
16
- import type { GraphEntity, GraphIndex } from "./types.js";
17
-
18
- /** A per-subject map of predicate URI → asserted lexical values. */
19
- type ValuesBySubject = Map<string, Map<string, string[]>>;
20
-
21
- /** Wrap full URIs as a SPARQL `VALUES` list body. */
22
- function toValuesList(uris: readonly string[]): string {
23
- return [...new Set(uris)].map((uri) => `<${uri}>`).join(" ");
24
- }
25
-
26
- /**
27
- * Run one `?s ?p ?v` bulk query restricted to the given predicates and
28
- * collect values per named-node subject. Blank-node subjects are skipped —
29
- * they are never listed as resources.
30
- *
31
- * @note Queries ke store
32
- */
33
- async function fetchValuesBySubject(
34
- store: Store,
35
- predicates: readonly string[],
36
- ): Promise<ValuesBySubject> {
37
- const bySubject: ValuesBySubject = new Map();
38
- if (predicates.length === 0) return bySubject;
39
-
40
- const result = await store.query(
41
- buildQuery(
42
- `SELECT ?s ?p ?v WHERE { ?s ?p ?v . VALUES ?p { ${toValuesList(predicates)} } }`,
43
- ),
44
- );
45
- if (result.type !== "select") return bySubject;
46
-
47
- for (const term of result.termBindings) {
48
- if (term.s?.termType !== "NamedNode") continue;
49
- const subject = term.s.value;
50
- const predicate = term.p?.value ?? "";
51
- const value = term.v?.value ?? "";
52
- const byPredicate = bySubject.get(subject) ?? new Map<string, string[]>();
53
- const values = byPredicate.get(predicate) ?? [];
54
- values.push(value);
55
- byPredicate.set(predicate, values);
56
- bySubject.set(subject, byPredicate);
57
- }
58
- return bySubject;
59
- }
60
-
61
- /**
62
- * Build the in-memory graph index used by listing, autocomplete, and reads.
63
- *
64
- * Replaces the former per-subject label/type/description queries with three
65
- * bulk queries — one for types, one for labels, one for descriptions — joined
66
- * in memory. Only typed named-node subjects are indexed; untyped subjects and
67
- * blank nodes are reachable via `graph_query` but are not listed as resources.
68
- *
69
- * @param store - The ke store to query.
70
- * @param prefixes - The store's merged prefix map.
71
- * @returns The classified entities plus label and instance-count lookups.
72
- *
73
- * @note Queries ke store
74
- */
75
- export default async function buildGraphIndex(
76
- store: Store,
77
- prefixes: Readonly<Record<string, string>>,
78
- ): Promise<GraphIndex> {
79
- const prefixEntries = Object.entries(prefixes);
80
-
81
- const [typesResult, labelValues, descriptionValues] = await Promise.all([
82
- store.query(buildQuery(`SELECT ?s ?type WHERE { ?s <${RDF_TYPE}> ?type }`)),
83
- fetchValuesBySubject(store, collectLabelPredicates()),
84
- fetchValuesBySubject(store, collectDescriptionPredicates()),
85
- ]);
86
-
87
- const typesBySubject = new Map<string, string[]>();
88
- const instanceCountByType = new Map<string, number>();
89
- if (typesResult.type === "select") {
90
- for (const term of typesResult.termBindings) {
91
- if (term.s?.termType !== "NamedNode") continue;
92
- const subject = term.s.value;
93
- const typeUri = term.type?.value ?? "";
94
- const types = typesBySubject.get(subject) ?? [];
95
- types.push(typeUri);
96
- typesBySubject.set(subject, types);
97
- instanceCountByType.set(
98
- typeUri,
99
- (instanceCountByType.get(typeUri) ?? 0) + 1,
100
- );
101
- }
102
- }
103
-
104
- // Phase 1: resolve every subject's label and description so that a class
105
- // label is available before any individual that references it is built.
106
- interface ResolvedSubject {
107
- readonly subject: string;
108
- readonly fullTypes: string[];
109
- readonly box: GraphEntity["box"];
110
- readonly category: GraphEntity["category"];
111
- readonly label: string | null;
112
- readonly description: string | null;
113
- }
114
-
115
- const labelByUri = new Map<string, string>();
116
- const resolved: ResolvedSubject[] = [];
117
-
118
- for (const [subject, fullTypes] of typesBySubject) {
119
- const classification = classifyEntity(fullTypes);
120
- if (classification === null) continue;
121
-
122
- const prefix = findNamespace(subject, prefixEntries)?.prefix;
123
- const label = pickFirstValue(
124
- labelValues.get(subject) ?? new Map(),
125
- resolveLabelPredicates(prefix),
126
- );
127
- const description = pickFirstValue(
128
- descriptionValues.get(subject) ?? new Map(),
129
- resolveDescriptionPredicates(prefix),
130
- );
131
- if (label !== null) labelByUri.set(subject, label);
132
-
133
- resolved.push({
134
- subject,
135
- fullTypes,
136
- box: classification.box,
137
- category: classification.category,
138
- label,
139
- description,
140
- });
141
- }
142
-
143
- // Phase 2: build entities, resolving each individual's grouping label from
144
- // the now-complete label lookup.
145
- const entities: GraphEntity[] = resolved.map((r) => {
146
- const primaryTypeFull =
147
- r.category === "individual" ? pickPrimaryType(r.fullTypes) : null;
148
- return {
149
- uri: r.subject,
150
- prefixed: compactUri(r.subject, prefixes),
151
- box: r.box,
152
- category: r.category,
153
- types: r.fullTypes.map((t) => compactUri(t, prefixes)),
154
- primaryType:
155
- primaryTypeFull === null ? null : compactUri(primaryTypeFull, prefixes),
156
- primaryTypeLabel:
157
- primaryTypeFull === null
158
- ? null
159
- : (labelByUri.get(primaryTypeFull) ??
160
- extractLocalName(primaryTypeFull)),
161
- label: r.label,
162
- description: r.description,
163
- };
164
- });
165
-
166
- return { entities, labelByUri, instanceCountByType };
167
- }
@@ -1,97 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import buildResourceList from "./buildResourceList.js";
3
- import { ABOX_PER_CLASS_LIMIT } from "./constants.js";
4
- import type { GraphEntity, GraphIndex } from "./types.js";
5
-
6
- const gadgetClass: GraphEntity = {
7
- uri: "https://ds.canonical.com/Gadget",
8
- prefixed: "ds:Gadget",
9
- box: "tbox",
10
- category: "class",
11
- types: ["owl:Class"],
12
- primaryType: null,
13
- primaryTypeLabel: null,
14
- label: "Gadget",
15
- description: null,
16
- };
17
-
18
- const nameProperty: GraphEntity = {
19
- uri: "https://ds.canonical.com/name",
20
- prefixed: "ds:name",
21
- box: "tbox",
22
- category: "property",
23
- types: ["owl:DatatypeProperty"],
24
- primaryType: null,
25
- primaryTypeLabel: null,
26
- label: null,
27
- description: null,
28
- };
29
-
30
- function makeIndividual(n: number): GraphEntity {
31
- return {
32
- uri: `https://ds.canonical.com/w${n}`,
33
- prefixed: `ds:w${n}`,
34
- box: "abox",
35
- category: "individual",
36
- types: ["ds:Gadget"],
37
- primaryType: "ds:Gadget",
38
- primaryTypeLabel: "Gadget",
39
- label: `Widget ${n}`,
40
- description: null,
41
- };
42
- }
43
-
44
- function makeIndex(entities: GraphEntity[]): GraphIndex {
45
- return { entities, labelByUri: new Map(), instanceCountByType: new Map() };
46
- }
47
-
48
- function boxOf(resource: { _meta: Record<string, unknown> }): unknown {
49
- return resource._meta["pragma/box"];
50
- }
51
-
52
- describe("buildResourceList", () => {
53
- it("orders all TBox schema before any ABox individual", () => {
54
- const index = makeIndex([makeIndividual(0), nameProperty, gadgetClass]);
55
- const boxes = buildResourceList(index).resources.map(boxOf);
56
- expect(boxes.slice(0, 2)).toEqual(["tbox", "tbox"]);
57
- expect(boxes.at(-1)).toBe("abox");
58
- });
59
-
60
- it("caps individuals per class and records the dropped remainder", () => {
61
- const overflow = ABOX_PER_CLASS_LIMIT + 7;
62
- const individuals = Array.from({ length: overflow }, (_, i) =>
63
- makeIndividual(i),
64
- );
65
- const { resources, truncation } = buildResourceList(
66
- makeIndex([gadgetClass, ...individuals]),
67
- );
68
-
69
- const shown = resources.filter((r) => boxOf(r) === "abox");
70
- expect(shown).toHaveLength(ABOX_PER_CLASS_LIMIT);
71
- expect(truncation.totalDropped).toBe(7);
72
- expect(truncation.droppedByType.get("ds:Gadget")).toBe(7);
73
-
74
- const cls = resources.find((r) => r.uri === "ds:Gadget");
75
- expect(cls?._meta["pragma/instanceCount"]).toBe(overflow);
76
- expect(cls?._meta["pragma/instancesShown"]).toBe(ABOX_PER_CLASS_LIMIT);
77
- expect(cls?._meta["pragma/truncated"]).toBe(true);
78
- });
79
-
80
- it("reports no truncation when under the cap", () => {
81
- const { truncation } = buildResourceList(
82
- makeIndex([gadgetClass, makeIndividual(0)]),
83
- );
84
- expect(truncation.totalDropped).toBe(0);
85
- });
86
-
87
- it("assigns higher annotation priority to classes than individuals", () => {
88
- const { resources } = buildResourceList(
89
- makeIndex([gadgetClass, makeIndividual(0)]),
90
- );
91
- const cls = resources.find((r) => r.uri === "ds:Gadget");
92
- const individual = resources.find((r) => r.uri === "ds:w0");
93
- expect(cls?.annotations.priority).toBeGreaterThan(
94
- individual?.annotations.priority ?? 1,
95
- );
96
- });
97
- });
@@ -1,176 +0,0 @@
1
- import extractLocalName from "../../domains/shared/extractLocalName.js";
2
- import {
3
- ABOX_PER_CLASS_LIMIT,
4
- ABOX_TOTAL_LIMIT,
5
- CLASS_PRIORITY,
6
- INDIVIDUAL_PRIORITY,
7
- NAME_SEPARATOR,
8
- PROPERTY_PRIORITY,
9
- RESOURCE_META_KEYS,
10
- } from "./constants.js";
11
- import type {
12
- GraphEntity,
13
- GraphIndex,
14
- ListedResource,
15
- ResourceListing,
16
- } from "./types.js";
17
-
18
- /** Longest description surfaced in a listing entry before truncation. */
19
- const DESCRIPTION_MAX = 120;
20
-
21
- /** Human-facing display name for an entity: its label, else its local name. */
22
- function toDisplayName(entity: GraphEntity): string {
23
- return entity.label ?? extractLocalName(entity.uri);
24
- }
25
-
26
- /** Truncate a description to a listing-friendly length. */
27
- function toShortDescription(text: string): string {
28
- return text.length > DESCRIPTION_MAX
29
- ? `${text.slice(0, DESCRIPTION_MAX - 3)}...`
30
- : text;
31
- }
32
-
33
- /** Sort entities by display name for stable, legible ordering. */
34
- function byDisplayName(a: GraphEntity, b: GraphEntity): number {
35
- return toDisplayName(a).localeCompare(toDisplayName(b));
36
- }
37
-
38
- /** Build the listing entry for a TBox class, carrying its individual counts. */
39
- function toClassResource(
40
- entity: GraphEntity,
41
- instanceCount: number,
42
- instancesShown: number,
43
- ): ListedResource {
44
- const truncated = instancesShown < instanceCount;
45
- const description = truncated
46
- ? `Schema class · showing ${instancesShown} of ${instanceCount} individuals; use autocomplete or graph_query for the rest`
47
- : `Schema class · ${instanceCount} individual${instanceCount === 1 ? "" : "s"}`;
48
- return {
49
- uri: entity.prefixed,
50
- name: `Class${NAME_SEPARATOR}${toDisplayName(entity)}`,
51
- description,
52
- mimeType: "application/json",
53
- annotations: { audience: ["assistant"], priority: CLASS_PRIORITY },
54
- _meta: {
55
- [RESOURCE_META_KEYS.box]: "tbox",
56
- [RESOURCE_META_KEYS.category]: "class",
57
- [RESOURCE_META_KEYS.instanceCount]: instanceCount,
58
- [RESOURCE_META_KEYS.instancesShown]: instancesShown,
59
- [RESOURCE_META_KEYS.truncated]: truncated,
60
- },
61
- };
62
- }
63
-
64
- /** Build the listing entry for a TBox property. */
65
- function toPropertyResource(entity: GraphEntity): ListedResource {
66
- const construct = entity.types.find((t) => t.endsWith("Property"));
67
- const description = construct
68
- ? `Schema property · ${construct}`
69
- : "Schema property";
70
- return {
71
- uri: entity.prefixed,
72
- name: `Property${NAME_SEPARATOR}${toDisplayName(entity)}`,
73
- description,
74
- mimeType: "application/json",
75
- annotations: { audience: ["assistant"], priority: PROPERTY_PRIORITY },
76
- _meta: {
77
- [RESOURCE_META_KEYS.box]: "tbox",
78
- [RESOURCE_META_KEYS.category]: "property",
79
- },
80
- };
81
- }
82
-
83
- /** Build the listing entry for an ABox individual, grouped under its class. */
84
- function toIndividualResource(entity: GraphEntity): ListedResource {
85
- const group = entity.primaryTypeLabel ?? "Individual";
86
- const summary = entity.description
87
- ? toShortDescription(entity.description)
88
- : null;
89
- const description = summary ? `${group}${NAME_SEPARATOR}${summary}` : group;
90
- return {
91
- uri: entity.prefixed,
92
- name: `${group}${NAME_SEPARATOR}${toDisplayName(entity)}`,
93
- description,
94
- mimeType: "application/json",
95
- annotations: { audience: ["assistant"], priority: INDIVIDUAL_PRIORITY },
96
- _meta: {
97
- [RESOURCE_META_KEYS.box]: "abox",
98
- [RESOURCE_META_KEYS.category]: "individual",
99
- [RESOURCE_META_KEYS.type]: entity.primaryType ?? null,
100
- },
101
- };
102
- }
103
-
104
- /**
105
- * Build the ordered, categorized, capped MCP resource listing from the index.
106
- *
107
- * TBox schema comes first and in full (classes, then properties) so a consumer
108
- * sees the schema without scrolling past every instance. ABox individuals
109
- * follow, grouped by class and sorted, capped per class ({@link
110
- * ABOX_PER_CLASS_LIMIT}) and overall ({@link ABOX_TOTAL_LIMIT}). Dropped
111
- * individuals are reported in the returned {@link ResourceListing.truncation}
112
- * and reflected in each class entry's count metadata — never silently lost.
113
- *
114
- * @param index - The graph index of classified subjects.
115
- * @returns The resource entries and a summary of any capping.
116
- */
117
- export default function buildResourceList(index: GraphIndex): ResourceListing {
118
- const classes = index.entities
119
- .filter((e) => e.category === "class")
120
- .sort(byDisplayName);
121
- const properties = index.entities
122
- .filter((e) => e.category === "property")
123
- .sort(byDisplayName);
124
- const individuals = index.entities.filter((e) => e.category === "individual");
125
-
126
- const groups = new Map<string, GraphEntity[]>();
127
- for (const individual of individuals) {
128
- const key = individual.primaryType ?? "";
129
- const bucket = groups.get(key) ?? [];
130
- bucket.push(individual);
131
- groups.set(key, bucket);
132
- }
133
-
134
- const orderedKeys = [...groups.keys()].sort((a, b) => a.localeCompare(b));
135
- const shownByType = new Map<string, number>();
136
- const droppedByType = new Map<string, number>();
137
- const individualResources: ListedResource[] = [];
138
- let totalShown = 0;
139
-
140
- for (const key of orderedKeys) {
141
- const bucket = (groups.get(key) ?? []).sort(byDisplayName);
142
- let groupShown = 0;
143
- for (const individual of bucket) {
144
- const atGlobalCap = totalShown >= ABOX_TOTAL_LIMIT;
145
- const atClassCap = groupShown >= ABOX_PER_CLASS_LIMIT;
146
- if (atGlobalCap || atClassCap) {
147
- droppedByType.set(key, (droppedByType.get(key) ?? 0) + 1);
148
- continue;
149
- }
150
- individualResources.push(toIndividualResource(individual));
151
- groupShown += 1;
152
- totalShown += 1;
153
- }
154
- shownByType.set(key, groupShown);
155
- }
156
-
157
- const classResources = classes.map((entity) =>
158
- toClassResource(
159
- entity,
160
- (shownByType.get(entity.prefixed) ?? 0) +
161
- (droppedByType.get(entity.prefixed) ?? 0),
162
- shownByType.get(entity.prefixed) ?? 0,
163
- ),
164
- );
165
-
166
- const totalDropped = [...droppedByType.values()].reduce((a, b) => a + b, 0);
167
-
168
- return {
169
- resources: [
170
- ...classResources,
171
- ...properties.map(toPropertyResource),
172
- ...individualResources,
173
- ],
174
- truncation: { totalDropped, droppedByType },
175
- };
176
- }
@@ -1,40 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import classifyEntity from "./classifyEntity.js";
3
-
4
- const OWL_CLASS = "http://www.w3.org/2002/07/owl#Class";
5
- const OWL_OBJECT_PROPERTY = "http://www.w3.org/2002/07/owl#ObjectProperty";
6
- const DS_COMPONENT = "https://ds.canonical.com/Component";
7
-
8
- describe("classifyEntity", () => {
9
- it("classifies owl:Class as tbox/class", () => {
10
- expect(classifyEntity([OWL_CLASS])).toEqual({
11
- box: "tbox",
12
- category: "class",
13
- });
14
- });
15
-
16
- it("classifies a property construct as tbox/property", () => {
17
- expect(classifyEntity([OWL_OBJECT_PROPERTY])).toEqual({
18
- box: "tbox",
19
- category: "property",
20
- });
21
- });
22
-
23
- it("classifies a domain-typed subject as abox/individual", () => {
24
- expect(classifyEntity([DS_COMPONENT])).toEqual({
25
- box: "abox",
26
- category: "individual",
27
- });
28
- });
29
-
30
- it("prefers schema when a subject is punned as both class and instance", () => {
31
- expect(classifyEntity([DS_COMPONENT, OWL_CLASS])).toEqual({
32
- box: "tbox",
33
- category: "class",
34
- });
35
- });
36
-
37
- it("returns null for an untyped subject", () => {
38
- expect(classifyEntity([])).toBeNull();
39
- });
40
- });
@@ -1,27 +0,0 @@
1
- import { CLASS_TYPE_URIS, PROPERTY_TYPE_URIS } from "./constants.js";
2
- import type { EntityBox, EntityCategory } from "./types.js";
3
-
4
- /**
5
- * Classify a subject into its box and category from its `rdf:type` values.
6
- *
7
- * Schema constructs win over instance-hood: a subject typed as both a class
8
- * and something else is a class, so the schema is never buried among
9
- * individuals. A subject with any non-schema type is an individual; a subject
10
- * with no type at all returns `null` (the caller decides how to surface it).
11
- *
12
- * @param typeUris - Full `rdf:type` object URIs asserted for the subject.
13
- * @returns The box and category, or `null` when the subject has no type.
14
- */
15
- export default function classifyEntity(
16
- typeUris: readonly string[],
17
- ): { box: EntityBox; category: EntityCategory } | null {
18
- const hasClassType = typeUris.some((t) => CLASS_TYPE_URIS.includes(t));
19
- if (hasClassType) return { box: "tbox", category: "class" };
20
-
21
- const hasPropertyType = typeUris.some((t) => PROPERTY_TYPE_URIS.includes(t));
22
- if (hasPropertyType) return { box: "tbox", category: "property" };
23
-
24
- if (typeUris.length > 0) return { box: "abox", category: "individual" };
25
-
26
- return null;
27
- }
@@ -1,105 +0,0 @@
1
- /**
2
- * Constants for the MCP resource surface.
3
- *
4
- * Collects the RDF/RDFS/OWL term URIs, the label/description fallback
5
- * chains that let foreign ontologies (no `PROPERTY_MAP` entry) still
6
- * resolve human names, the listing/completion caps, and the client-facing
7
- * annotation priorities and `_meta` keys used to distinguish TBox schema
8
- * from ABox individuals.
9
- */
10
-
11
- import { PREFIX_MAP } from "../../domains/shared/prefixes.js";
12
-
13
- const RDF_NS = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
14
- const DCTERMS_NS = "http://purl.org/dc/terms/";
15
- const SCHEMA_NS = "http://schema.org/";
16
-
17
- /** `rdf:type` predicate URI. */
18
- export const RDF_TYPE = `${RDF_NS}type`;
19
- /** `rdfs:subClassOf` predicate URI. */
20
- export const RDFS_SUBCLASS_OF = `${PREFIX_MAP.rdfs}subClassOf`;
21
- /** `rdfs:domain` predicate URI. */
22
- export const RDFS_DOMAIN = `${PREFIX_MAP.rdfs}domain`;
23
- /** `rdfs:range` predicate URI. */
24
- export const RDFS_RANGE = `${PREFIX_MAP.rdfs}range`;
25
-
26
- /** Class-declaring `rdf:type` objects (TBox class constructs). */
27
- export const CLASS_TYPE_URIS: readonly string[] = [
28
- `${PREFIX_MAP.owl}Class`,
29
- `${PREFIX_MAP.rdfs}Class`,
30
- ];
31
-
32
- /** Property-declaring `rdf:type` objects (TBox property constructs). */
33
- export const PROPERTY_TYPE_URIS: readonly string[] = [
34
- `${PREFIX_MAP.owl}ObjectProperty`,
35
- `${PREFIX_MAP.owl}DatatypeProperty`,
36
- `${PREFIX_MAP.owl}AnnotationProperty`,
37
- `${RDF_NS}Property`,
38
- ];
39
-
40
- /**
41
- * `rdf:type` objects that never make a meaningful grouping or `instanceOf`
42
- * pointer for an individual: the schema-construct meta-types plus the
43
- * top/individual meta-types (`owl:NamedIndividual`, `owl:Thing`,
44
- * `rdfs:Resource`). An individual typed `[ds:Component, owl:NamedIndividual]`
45
- * must group under `ds:Component`, so these are filtered out before a
46
- * primary type is chosen.
47
- */
48
- export const NON_GROUPING_TYPE_URIS: readonly string[] = [
49
- ...CLASS_TYPE_URIS,
50
- ...PROPERTY_TYPE_URIS,
51
- `${PREFIX_MAP.owl}NamedIndividual`,
52
- `${PREFIX_MAP.owl}Thing`,
53
- `${PREFIX_MAP.rdfs}Resource`,
54
- ];
55
-
56
- /**
57
- * Generic label predicates tried after a namespace's `PROPERTY_MAP` label,
58
- * in priority order. Lets foreign ontologies resolve a name.
59
- */
60
- export const LABEL_FALLBACK_URIS: readonly string[] = [
61
- `${PREFIX_MAP.rdfs}label`,
62
- `${PREFIX_MAP.skos}prefLabel`,
63
- `${DCTERMS_NS}title`,
64
- `${SCHEMA_NS}name`,
65
- ];
66
-
67
- /**
68
- * Generic description predicates tried after a namespace's `PROPERTY_MAP`
69
- * description, in priority order.
70
- */
71
- export const DESCRIPTION_FALLBACK_URIS: readonly string[] = [
72
- `${PREFIX_MAP.rdfs}comment`,
73
- `${DCTERMS_NS}description`,
74
- `${SCHEMA_NS}description`,
75
- `${PREFIX_MAP.skos}definition`,
76
- ];
77
-
78
- /** Maximum individuals listed per class before the remainder is capped. */
79
- export const ABOX_PER_CLASS_LIMIT = 25;
80
-
81
- /** Hard ceiling on total individuals across all classes in one listing. */
82
- export const ABOX_TOTAL_LIMIT = 300;
83
-
84
- /** Maximum ranked suggestions returned from URI autocomplete. */
85
- export const COMPLETION_LIMIT = 50;
86
-
87
- /** Annotation `priority` for TBox classes (highest — schema first). */
88
- export const CLASS_PRIORITY = 1;
89
- /** Annotation `priority` for TBox properties. */
90
- export const PROPERTY_PRIORITY = 0.9;
91
- /** Annotation `priority` for ABox individuals (lowest). */
92
- export const INDIVIDUAL_PRIORITY = 0.5;
93
-
94
- /** Separator between the category tag and the entity label in resource names. */
95
- export const NAME_SEPARATOR = " · ";
96
-
97
- /** Namespaced `_meta` keys carrying structured box/category metadata. */
98
- export const RESOURCE_META_KEYS = {
99
- box: "pragma/box",
100
- category: "pragma/category",
101
- type: "pragma/type",
102
- instanceCount: "pragma/instanceCount",
103
- instancesShown: "pragma/instancesShown",
104
- truncated: "pragma/truncated",
105
- } as const;
@@ -1,62 +0,0 @@
1
- /**
2
- * Label and description predicate chains for display-value resolution.
3
- *
4
- * Two concerns share this file because they are one policy: how a subject's
5
- * human name and blurb are found. `resolve*` builds the per-subject priority
6
- * order (namespace-specific `PROPERTY_MAP` predicate first, then the generic
7
- * fallback chain); `collect*` builds the flat union used to bulk-query every
8
- * candidate predicate at once. Keeping them together keeps the fallback
9
- * ordering and the bulk query in lockstep.
10
- */
11
-
12
- import { PROPERTY_MAP } from "../../constants.js";
13
- import { DESCRIPTION_FALLBACK_URIS, LABEL_FALLBACK_URIS } from "./constants.js";
14
-
15
- /** Narrow away `undefined` while preserving the string type. */
16
- function isPresent(value: string | undefined): value is string {
17
- return value !== undefined;
18
- }
19
-
20
- /**
21
- * Ordered label predicates for a subject: its namespace's `PROPERTY_MAP`
22
- * label first, then the generic chain so foreign namespaces still resolve.
23
- *
24
- * @param prefix - The subject's namespace prefix, or `undefined` if foreign.
25
- */
26
- export function resolveLabelPredicates(prefix: string | undefined): string[] {
27
- const specific = prefix ? PROPERTY_MAP[prefix]?.label : undefined;
28
- return [...new Set([specific, ...LABEL_FALLBACK_URIS].filter(isPresent))];
29
- }
30
-
31
- /**
32
- * Ordered description predicates for a subject: its namespace's `PROPERTY_MAP`
33
- * description then definition, then the generic chain.
34
- *
35
- * @param prefix - The subject's namespace prefix, or `undefined` if foreign.
36
- */
37
- export function resolveDescriptionPredicates(
38
- prefix: string | undefined,
39
- ): string[] {
40
- const map = prefix ? PROPERTY_MAP[prefix] : undefined;
41
- return [
42
- ...new Set(
43
- [map?.description, map?.definition, ...DESCRIPTION_FALLBACK_URIS].filter(
44
- isPresent,
45
- ),
46
- ),
47
- ];
48
- }
49
-
50
- /** Every label predicate any namespace might use, for one bulk query. */
51
- export function collectLabelPredicates(): string[] {
52
- const fromMap = Object.values(PROPERTY_MAP).map((m) => m.label);
53
- return [...new Set([...fromMap, ...LABEL_FALLBACK_URIS])];
54
- }
55
-
56
- /** Every description predicate any namespace might use, for one bulk query. */
57
- export function collectDescriptionPredicates(): string[] {
58
- const fromMap = Object.values(PROPERTY_MAP).flatMap((m) =>
59
- [m.description, m.definition].filter(isPresent),
60
- );
61
- return [...new Set([...fromMap, ...DESCRIPTION_FALLBACK_URIS])];
62
- }