@canonical/pragma-cli 0.33.0 → 0.35.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.
- package/README.md +153 -30
- package/dist/.build-ok +0 -0
- package/dist/package.json +83 -0
- package/dist/pragma.conf.js +814 -0
- package/dist/pragma.conf.js.map +1 -0
- package/dist/src/bin.js +356 -0
- package/dist/src/bin.js.map +1 -0
- package/dist/src/capabilities/capabilities/capabilities.render.js +70 -0
- package/dist/src/capabilities/capabilities/capabilities.render.js.map +1 -0
- package/dist/src/capabilities/capabilities/capabilities.verb.js +59 -0
- package/dist/src/capabilities/capabilities/capabilities.verb.js.map +1 -0
- package/dist/src/capabilities/capabilities/catalog.js +130 -0
- package/dist/src/capabilities/capabilities/catalog.js.map +1 -0
- package/dist/src/capabilities/capabilities/hints.js +195 -0
- package/dist/src/capabilities/capabilities/hints.js.map +1 -0
- package/dist/src/capabilities/capabilities/index.js +11 -0
- package/dist/src/capabilities/capabilities/index.js.map +1 -0
- package/dist/src/capabilities/capabilities/types.js +11 -0
- package/dist/src/capabilities/capabilities/types.js.map +1 -0
- package/dist/src/capabilities/colophon/collectColophon.js +83 -0
- package/dist/src/capabilities/colophon/collectColophon.js.map +1 -0
- package/dist/src/capabilities/colophon/colophon.render.js +59 -0
- package/dist/src/capabilities/colophon/colophon.render.js.map +1 -0
- package/dist/src/capabilities/colophon/colophon.verb.js +43 -0
- package/dist/src/capabilities/colophon/colophon.verb.js.map +1 -0
- package/dist/src/capabilities/colophon/index.js +5 -0
- package/dist/src/capabilities/colophon/index.js.map +1 -0
- package/dist/src/capabilities/colophon/markdownTerminal.js +90 -0
- package/dist/src/capabilities/colophon/markdownTerminal.js.map +1 -0
- package/dist/src/capabilities/colophon/types.js +10 -0
- package/dist/src/capabilities/colophon/types.js.map +1 -0
- package/dist/src/capabilities/config/collectConfigShow.js +59 -0
- package/dist/src/capabilities/config/collectConfigShow.js.map +1 -0
- package/dist/src/capabilities/config/field.render.js +22 -0
- package/dist/src/capabilities/config/field.render.js.map +1 -0
- package/dist/src/capabilities/config/fields.js +46 -0
- package/dist/src/capabilities/config/fields.js.map +1 -0
- package/dist/src/capabilities/config/get.verb.js +61 -0
- package/dist/src/capabilities/config/get.verb.js.map +1 -0
- package/dist/src/capabilities/config/index.js +5 -0
- package/dist/src/capabilities/config/index.js.map +1 -0
- package/dist/src/capabilities/config/runField.js +59 -0
- package/dist/src/capabilities/config/runField.js.map +1 -0
- package/dist/src/capabilities/config/runGet.js +28 -0
- package/dist/src/capabilities/config/runGet.js.map +1 -0
- package/dist/src/capabilities/config/runSet.js +53 -0
- package/dist/src/capabilities/config/runSet.js.map +1 -0
- package/dist/src/capabilities/config/set.verb.js +66 -0
- package/dist/src/capabilities/config/set.verb.js.map +1 -0
- package/dist/src/capabilities/config/show.render.js +84 -0
- package/dist/src/capabilities/config/show.render.js.map +1 -0
- package/dist/src/capabilities/config/show.verb.js +44 -0
- package/dist/src/capabilities/config/show.verb.js.map +1 -0
- package/dist/src/capabilities/config/types.js +5 -0
- package/dist/src/capabilities/config/types.js.map +1 -0
- package/dist/src/capabilities/config/unset.verb.js +49 -0
- package/dist/src/capabilities/config/unset.verb.js.map +1 -0
- package/dist/src/capabilities/create/cliProjection.js +195 -0
- package/dist/src/capabilities/create/cliProjection.js.map +1 -0
- package/dist/src/capabilities/create/constants.js +47 -0
- package/dist/src/capabilities/create/constants.js.map +1 -0
- package/dist/src/capabilities/create/create.render.js +100 -0
- package/dist/src/capabilities/create/create.render.js.map +1 -0
- package/dist/src/capabilities/create/create.verb.js +438 -0
- package/dist/src/capabilities/create/create.verb.js.map +1 -0
- package/dist/src/capabilities/create/createHelp.js +47 -0
- package/dist/src/capabilities/create/createHelp.js.map +1 -0
- package/dist/src/capabilities/create/createSurface.generated.js +394 -0
- package/dist/src/capabilities/create/createSurface.generated.js.map +1 -0
- package/dist/src/capabilities/create/generatorToVerbSpec.js +106 -0
- package/dist/src/capabilities/create/generatorToVerbSpec.js.map +1 -0
- package/dist/src/capabilities/create/index.js +18 -0
- package/dist/src/capabilities/create/index.js.map +1 -0
- package/dist/src/capabilities/create/messages.js +16 -0
- package/dist/src/capabilities/create/messages.js.map +1 -0
- package/dist/src/capabilities/create/mount.js +293 -0
- package/dist/src/capabilities/create/mount.js.map +1 -0
- package/dist/src/capabilities/create/pathJail.js +65 -0
- package/dist/src/capabilities/create/pathJail.js.map +1 -0
- package/dist/src/capabilities/create/pickGenerator.js +53 -0
- package/dist/src/capabilities/create/pickGenerator.js.map +1 -0
- package/dist/src/capabilities/create/types.js +2 -0
- package/dist/src/capabilities/create/types.js.map +1 -0
- package/dist/src/capabilities/distribution.js +40 -0
- package/dist/src/capabilities/distribution.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/checkKeStore.js +40 -0
- package/dist/src/capabilities/doctor/checks/checkKeStore.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/checkNodeVersion.js +21 -0
- package/dist/src/capabilities/doctor/checks/checkNodeVersion.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/checkPackageRefs.js +92 -0
- package/dist/src/capabilities/doctor/checks/checkPackageRefs.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/checkPragmaVersion.js +19 -0
- package/dist/src/capabilities/doctor/checks/checkPragmaVersion.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/checkShellCompletions.js +199 -0
- package/dist/src/capabilities/doctor/checks/checkShellCompletions.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/index.js +27 -0
- package/dist/src/capabilities/doctor/checks/index.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/mcpCommand.js +57 -0
- package/dist/src/capabilities/doctor/checks/mcpCommand.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/targetHealth.js +205 -0
- package/dist/src/capabilities/doctor/checks/targetHealth.js.map +1 -0
- package/dist/src/capabilities/doctor/doctor.render.js +185 -0
- package/dist/src/capabilities/doctor/doctor.render.js.map +1 -0
- package/dist/src/capabilities/doctor/doctor.verb.js +45 -0
- package/dist/src/capabilities/doctor/doctor.verb.js.map +1 -0
- package/dist/src/capabilities/doctor/index.js +5 -0
- package/dist/src/capabilities/doctor/index.js.map +1 -0
- package/dist/src/capabilities/doctor/runChecks.js +83 -0
- package/dist/src/capabilities/doctor/runChecks.js.map +1 -0
- package/dist/src/capabilities/doctor/types.js +5 -0
- package/dist/src/capabilities/doctor/types.js.map +1 -0
- package/dist/src/capabilities/graph/index.js +19 -0
- package/dist/src/capabilities/graph/index.js.map +1 -0
- package/dist/src/capabilities/graph/inspect.render.js +76 -0
- package/dist/src/capabilities/graph/inspect.render.js.map +1 -0
- package/dist/src/capabilities/graph/inspect.verb.js +53 -0
- package/dist/src/capabilities/graph/inspect.verb.js.map +1 -0
- package/dist/src/capabilities/graph/query.render.js +73 -0
- package/dist/src/capabilities/graph/query.render.js.map +1 -0
- package/dist/src/capabilities/graph/query.verb.js +49 -0
- package/dist/src/capabilities/graph/query.verb.js.map +1 -0
- package/dist/src/capabilities/graph/runQuery.js +41 -0
- package/dist/src/capabilities/graph/runQuery.js.map +1 -0
- package/dist/src/capabilities/index.js +56 -0
- package/dist/src/capabilities/index.js.map +1 -0
- package/dist/src/capabilities/info/collectInfo.js +66 -0
- package/dist/src/capabilities/info/collectInfo.js.map +1 -0
- package/dist/src/capabilities/info/index.js +5 -0
- package/dist/src/capabilities/info/index.js.map +1 -0
- package/dist/src/capabilities/info/info.render.js +53 -0
- package/dist/src/capabilities/info/info.render.js.map +1 -0
- package/dist/src/capabilities/info/info.verb.js +42 -0
- package/dist/src/capabilities/info/info.verb.js.map +1 -0
- package/dist/src/capabilities/info/types.js +5 -0
- package/dist/src/capabilities/info/types.js.map +1 -0
- package/dist/src/capabilities/meta/complete.verb.js +43 -0
- package/dist/src/capabilities/meta/complete.verb.js.map +1 -0
- package/dist/src/capabilities/meta/index.js +13 -0
- package/dist/src/capabilities/meta/index.js.map +1 -0
- package/dist/src/capabilities/meta/mcp.verb.js +34 -0
- package/dist/src/capabilities/meta/mcp.verb.js.map +1 -0
- package/dist/src/capabilities/ontology/index.js +21 -0
- package/dist/src/capabilities/ontology/index.js.map +1 -0
- package/dist/src/capabilities/ontology/queries.js +123 -0
- package/dist/src/capabilities/ontology/queries.js.map +1 -0
- package/dist/src/capabilities/ontology/render.js +66 -0
- package/dist/src/capabilities/ontology/render.js.map +1 -0
- package/dist/src/capabilities/ontology/verbs.js +181 -0
- package/dist/src/capabilities/ontology/verbs.js.map +1 -0
- package/dist/src/capabilities/prompt/index.js +16 -0
- package/dist/src/capabilities/prompt/index.js.map +1 -0
- package/dist/src/capabilities/prompt/prompt.render.js +78 -0
- package/dist/src/capabilities/prompt/prompt.render.js.map +1 -0
- package/dist/src/capabilities/prompt/types.js +10 -0
- package/dist/src/capabilities/prompt/types.js.map +1 -0
- package/dist/src/capabilities/prompt/verbs.js +93 -0
- package/dist/src/capabilities/prompt/verbs.js.map +1 -0
- package/dist/src/capabilities/resources/index.js +10 -0
- package/dist/src/capabilities/resources/index.js.map +1 -0
- package/dist/src/capabilities/resources/provider.js +423 -0
- package/dist/src/capabilities/resources/provider.js.map +1 -0
- package/dist/src/capabilities/setup/buildPlan.js +168 -0
- package/dist/src/capabilities/setup/buildPlan.js.map +1 -0
- package/dist/src/capabilities/setup/index.js +5 -0
- package/dist/src/capabilities/setup/index.js.map +1 -0
- package/dist/src/capabilities/setup/mode.js +53 -0
- package/dist/src/capabilities/setup/mode.js.map +1 -0
- package/dist/src/capabilities/setup/operations/index.js +39 -0
- package/dist/src/capabilities/setup/operations/index.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupCompletions.js +160 -0
- package/dist/src/capabilities/setup/operations/setupCompletions.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupConfig.js +101 -0
- package/dist/src/capabilities/setup/operations/setupConfig.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupGenerator.js +343 -0
- package/dist/src/capabilities/setup/operations/setupGenerator.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupLsp.js +277 -0
- package/dist/src/capabilities/setup/operations/setupLsp.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupMcp.js +207 -0
- package/dist/src/capabilities/setup/operations/setupMcp.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupSkills.js +316 -0
- package/dist/src/capabilities/setup/operations/setupSkills.js.map +1 -0
- package/dist/src/capabilities/setup/plan.js +128 -0
- package/dist/src/capabilities/setup/plan.js.map +1 -0
- package/dist/src/capabilities/setup/plan.render.js +193 -0
- package/dist/src/capabilities/setup/plan.render.js.map +1 -0
- package/dist/src/capabilities/setup/setup.render.js +54 -0
- package/dist/src/capabilities/setup/setup.render.js.map +1 -0
- package/dist/src/capabilities/setup/setup.verb.js +334 -0
- package/dist/src/capabilities/setup/setup.verb.js.map +1 -0
- package/dist/src/capabilities/setup/shell.js +196 -0
- package/dist/src/capabilities/setup/shell.js.map +1 -0
- package/dist/src/capabilities/setup/targets.js +263 -0
- package/dist/src/capabilities/setup/targets.js.map +1 -0
- package/dist/src/capabilities/setup/types.js +5 -0
- package/dist/src/capabilities/setup/types.js.map +1 -0
- package/dist/src/capabilities/shared/assertExecOk.js +137 -0
- package/dist/src/capabilities/shared/assertExecOk.js.map +1 -0
- package/dist/src/capabilities/shared/bands.js +16 -0
- package/dist/src/capabilities/shared/bands.js.map +1 -0
- package/dist/src/capabilities/shared/index.js +26 -0
- package/dist/src/capabilities/shared/index.js.map +1 -0
- package/dist/src/capabilities/shared/packageManager.js +103 -0
- package/dist/src/capabilities/shared/packageManager.js.map +1 -0
- package/dist/src/capabilities/shared/registry.js +55 -0
- package/dist/src/capabilities/shared/registry.js.map +1 -0
- package/dist/src/capabilities/skill/discover.js +195 -0
- package/dist/src/capabilities/skill/discover.js.map +1 -0
- package/dist/src/capabilities/skill/index.js +10 -0
- package/dist/src/capabilities/skill/index.js.map +1 -0
- package/dist/src/capabilities/skill/render.js +49 -0
- package/dist/src/capabilities/skill/render.js.map +1 -0
- package/dist/src/capabilities/skill/verbs.js +83 -0
- package/dist/src/capabilities/skill/verbs.js.map +1 -0
- package/dist/src/capabilities/sources/collectStatus.js +103 -0
- package/dist/src/capabilities/sources/collectStatus.js.map +1 -0
- package/dist/src/capabilities/sources/index.js +13 -0
- package/dist/src/capabilities/sources/index.js.map +1 -0
- package/dist/src/capabilities/sources/installSkills.js +167 -0
- package/dist/src/capabilities/sources/installSkills.js.map +1 -0
- package/dist/src/capabilities/sources/runUpdate.js +394 -0
- package/dist/src/capabilities/sources/runUpdate.js.map +1 -0
- package/dist/src/capabilities/sources/status.render.js +64 -0
- package/dist/src/capabilities/sources/status.render.js.map +1 -0
- package/dist/src/capabilities/sources/status.verb.js +40 -0
- package/dist/src/capabilities/sources/status.verb.js.map +1 -0
- package/dist/src/capabilities/sources/types.js +6 -0
- package/dist/src/capabilities/sources/types.js.map +1 -0
- package/dist/src/capabilities/sources/update.render.js +34 -0
- package/dist/src/capabilities/sources/update.render.js.map +1 -0
- package/dist/src/capabilities/sources/update.verb.js +55 -0
- package/dist/src/capabilities/sources/update.verb.js.map +1 -0
- package/dist/src/capabilities/upgrade/index.js +5 -0
- package/dist/src/capabilities/upgrade/index.js.map +1 -0
- package/dist/src/capabilities/upgrade/runUpgrade.js +99 -0
- package/dist/src/capabilities/upgrade/runUpgrade.js.map +1 -0
- package/dist/src/capabilities/upgrade/types.js +5 -0
- package/dist/src/capabilities/upgrade/types.js.map +1 -0
- package/dist/src/capabilities/upgrade/upgrade.render.js +44 -0
- package/dist/src/capabilities/upgrade/upgrade.render.js.map +1 -0
- package/dist/src/capabilities/upgrade/upgrade.verb.js +52 -0
- package/dist/src/capabilities/upgrade/upgrade.verb.js.map +1 -0
- package/dist/src/capabilities/version/index.js +10 -0
- package/dist/src/capabilities/version/index.js.map +1 -0
- package/dist/src/capabilities/version/version.verb.js +36 -0
- package/dist/src/capabilities/version/version.verb.js.map +1 -0
- package/dist/src/constants.js +82 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/index.js +12 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/kernel/completion/complete.js +66 -0
- package/dist/src/kernel/completion/complete.js.map +1 -0
- package/dist/src/kernel/completion/emitScripts.js +92 -0
- package/dist/src/kernel/completion/emitScripts.js.map +1 -0
- package/dist/src/kernel/completion/entitySource.js +285 -0
- package/dist/src/kernel/completion/entitySource.js.map +1 -0
- package/dist/src/kernel/completion/index.js +14 -0
- package/dist/src/kernel/completion/index.js.map +1 -0
- package/dist/src/kernel/completion/model.js +301 -0
- package/dist/src/kernel/completion/model.js.map +1 -0
- package/dist/src/kernel/completion/parse.js +253 -0
- package/dist/src/kernel/completion/parse.js.map +1 -0
- package/dist/src/kernel/completion/rank.js +101 -0
- package/dist/src/kernel/completion/rank.js.map +1 -0
- package/dist/src/kernel/completion/resolve.js +100 -0
- package/dist/src/kernel/completion/resolve.js.map +1 -0
- package/dist/src/kernel/completion/templates/bash.js +209 -0
- package/dist/src/kernel/completion/templates/bash.js.map +1 -0
- package/dist/src/kernel/completion/templates/fish.js +214 -0
- package/dist/src/kernel/completion/templates/fish.js.map +1 -0
- package/dist/src/kernel/completion/templates/index.js +23 -0
- package/dist/src/kernel/completion/templates/index.js.map +1 -0
- package/dist/src/kernel/completion/templates/shared.js +98 -0
- package/dist/src/kernel/completion/templates/shared.js.map +1 -0
- package/dist/src/kernel/completion/templates/zsh.js +201 -0
- package/dist/src/kernel/completion/templates/zsh.js.map +1 -0
- package/dist/src/kernel/completion/types.js +13 -0
- package/dist/src/kernel/completion/types.js.map +1 -0
- package/dist/src/kernel/config/defaults.js +17 -0
- package/dist/src/kernel/config/defaults.js.map +1 -0
- package/dist/src/kernel/config/evaluateProjectConfig.js +126 -0
- package/dist/src/kernel/config/evaluateProjectConfig.js.map +1 -0
- package/dist/src/kernel/config/findProjectConfig.js +43 -0
- package/dist/src/kernel/config/findProjectConfig.js.map +1 -0
- package/dist/src/kernel/config/firstRun.js +34 -0
- package/dist/src/kernel/config/firstRun.js.map +1 -0
- package/dist/src/kernel/config/globalConfig.js +79 -0
- package/dist/src/kernel/config/globalConfig.js.map +1 -0
- package/dist/src/kernel/config/index.js +16 -0
- package/dist/src/kernel/config/index.js.map +1 -0
- package/dist/src/kernel/config/paths.js +35 -0
- package/dist/src/kernel/config/paths.js.map +1 -0
- package/dist/src/kernel/config/readConfig.js +78 -0
- package/dist/src/kernel/config/readConfig.js.map +1 -0
- package/dist/src/kernel/config/schema.js +130 -0
- package/dist/src/kernel/config/schema.js.map +1 -0
- package/dist/src/kernel/config/types.js +19 -0
- package/dist/src/kernel/config/types.js.map +1 -0
- package/dist/src/kernel/config/writeConfigField.js +59 -0
- package/dist/src/kernel/config/writeConfigField.js.map +1 -0
- package/dist/src/kernel/copy.js +43 -0
- package/dist/src/kernel/copy.js.map +1 -0
- package/dist/src/kernel/error/PragmaError.js +149 -0
- package/dist/src/kernel/error/PragmaError.js.map +1 -0
- package/dist/src/kernel/error/constants.js +40 -0
- package/dist/src/kernel/error/constants.js.map +1 -0
- package/dist/src/kernel/error/fromTaskError.js +96 -0
- package/dist/src/kernel/error/fromTaskError.js.map +1 -0
- package/dist/src/kernel/error/index.js +13 -0
- package/dist/src/kernel/error/index.js.map +1 -0
- package/dist/src/kernel/error/recovery.js +52 -0
- package/dist/src/kernel/error/recovery.js.map +1 -0
- package/dist/src/kernel/error/renderError.js +115 -0
- package/dist/src/kernel/error/renderError.js.map +1 -0
- package/dist/src/kernel/error/serialize.js +25 -0
- package/dist/src/kernel/error/serialize.js.map +1 -0
- package/dist/src/kernel/error/types.js +9 -0
- package/dist/src/kernel/error/types.js.map +1 -0
- package/dist/src/kernel/index.js +25 -0
- package/dist/src/kernel/index.js.map +1 -0
- package/dist/src/kernel/packs/collect.js +187 -0
- package/dist/src/kernel/packs/collect.js.map +1 -0
- package/dist/src/kernel/packs/compile.js +304 -0
- package/dist/src/kernel/packs/compile.js.map +1 -0
- package/dist/src/kernel/packs/disclosure.js +76 -0
- package/dist/src/kernel/packs/disclosure.js.map +1 -0
- package/dist/src/kernel/packs/glob.js +38 -0
- package/dist/src/kernel/packs/glob.js.map +1 -0
- package/dist/src/kernel/packs/graphql/buildLookupDocument.js +258 -0
- package/dist/src/kernel/packs/graphql/buildLookupDocument.js.map +1 -0
- package/dist/src/kernel/packs/graphql/fetchGraphqlLookup.js +157 -0
- package/dist/src/kernel/packs/graphql/fetchGraphqlLookup.js.map +1 -0
- package/dist/src/kernel/packs/graphql/index.js +20 -0
- package/dist/src/kernel/packs/graphql/index.js.map +1 -0
- package/dist/src/kernel/packs/graphql/nameMap.js +63 -0
- package/dist/src/kernel/packs/graphql/nameMap.js.map +1 -0
- package/dist/src/kernel/packs/index.js +34 -0
- package/dist/src/kernel/packs/index.js.map +1 -0
- package/dist/src/kernel/packs/iri.js +110 -0
- package/dist/src/kernel/packs/iri.js.map +1 -0
- package/dist/src/kernel/packs/renderPack.js +129 -0
- package/dist/src/kernel/packs/renderPack.js.map +1 -0
- package/dist/src/kernel/packs/resolveEntity.js +223 -0
- package/dist/src/kernel/packs/resolveEntity.js.map +1 -0
- package/dist/src/kernel/packs/runBodies.js +87 -0
- package/dist/src/kernel/packs/runBodies.js.map +1 -0
- package/dist/src/kernel/packs/sample.js +56 -0
- package/dist/src/kernel/packs/sample.js.map +1 -0
- package/dist/src/kernel/packs/schema.js +369 -0
- package/dist/src/kernel/packs/schema.js.map +1 -0
- package/dist/src/kernel/packs/sparql/applyFilters.js +68 -0
- package/dist/src/kernel/packs/sparql/applyFilters.js.map +1 -0
- package/dist/src/kernel/packs/sparql/applySearch.js +25 -0
- package/dist/src/kernel/packs/sparql/applySearch.js.map +1 -0
- package/dist/src/kernel/packs/sparql/buildLookupQuery.js +217 -0
- package/dist/src/kernel/packs/sparql/buildLookupQuery.js.map +1 -0
- package/dist/src/kernel/packs/sparql/escape.js +21 -0
- package/dist/src/kernel/packs/sparql/escape.js.map +1 -0
- package/dist/src/kernel/packs/sparql/index.js +31 -0
- package/dist/src/kernel/packs/sparql/index.js.map +1 -0
- package/dist/src/kernel/packs/sparql/runSelect.js +101 -0
- package/dist/src/kernel/packs/sparql/runSelect.js.map +1 -0
- package/dist/src/kernel/packs/types.js +30 -0
- package/dist/src/kernel/packs/types.js.map +1 -0
- package/dist/src/kernel/packs/uniqueness.js +30 -0
- package/dist/src/kernel/packs/uniqueness.js.map +1 -0
- package/dist/src/kernel/project/cli/buildProgram.js +263 -0
- package/dist/src/kernel/project/cli/buildProgram.js.map +1 -0
- package/dist/src/kernel/project/cli/constants.js +27 -0
- package/dist/src/kernel/project/cli/constants.js.map +1 -0
- package/dist/src/kernel/project/cli/dispatch.js +420 -0
- package/dist/src/kernel/project/cli/dispatch.js.map +1 -0
- package/dist/src/kernel/project/cli/exitCodes.js +66 -0
- package/dist/src/kernel/project/cli/exitCodes.js.map +1 -0
- package/dist/src/kernel/project/cli/globalFlags.js +216 -0
- package/dist/src/kernel/project/cli/globalFlags.js.map +1 -0
- package/dist/src/kernel/project/cli/helpFormat.js +59 -0
- package/dist/src/kernel/project/cli/helpFormat.js.map +1 -0
- package/dist/src/kernel/project/cli/index.js +14 -0
- package/dist/src/kernel/project/cli/index.js.map +1 -0
- package/dist/src/kernel/project/cli/rootHelp.js +197 -0
- package/dist/src/kernel/project/cli/rootHelp.js.map +1 -0
- package/dist/src/kernel/project/cli/suggest.js +75 -0
- package/dist/src/kernel/project/cli/suggest.js.map +1 -0
- package/dist/src/kernel/project/cli/suggestNames.js +96 -0
- package/dist/src/kernel/project/cli/suggestNames.js.map +1 -0
- package/dist/src/kernel/project/cli/verbHelp.js +131 -0
- package/dist/src/kernel/project/cli/verbHelp.js.map +1 -0
- package/dist/src/kernel/project/mcp/buildServer.js +67 -0
- package/dist/src/kernel/project/mcp/buildServer.js.map +1 -0
- package/dist/src/kernel/project/mcp/envelope.js +37 -0
- package/dist/src/kernel/project/mcp/envelope.js.map +1 -0
- package/dist/src/kernel/project/mcp/index.js +8 -0
- package/dist/src/kernel/project/mcp/index.js.map +1 -0
- package/dist/src/kernel/project/mcp/instructions.js +44 -0
- package/dist/src/kernel/project/mcp/instructions.js.map +1 -0
- package/dist/src/kernel/project/mcp/mcpError.js +42 -0
- package/dist/src/kernel/project/mcp/mcpError.js.map +1 -0
- package/dist/src/kernel/project/mcp/prompts/index.js +36 -0
- package/dist/src/kernel/project/mcp/prompts/index.js.map +1 -0
- package/dist/src/kernel/project/mcp/prompts/provider.js +98 -0
- package/dist/src/kernel/project/mcp/prompts/provider.js.map +1 -0
- package/dist/src/kernel/project/mcp/prompts/source.js +154 -0
- package/dist/src/kernel/project/mcp/prompts/source.js.map +1 -0
- package/dist/src/kernel/project/mcp/registerVerb.js +300 -0
- package/dist/src/kernel/project/mcp/registerVerb.js.map +1 -0
- package/dist/src/kernel/project/mcp/serve.js +35 -0
- package/dist/src/kernel/project/mcp/serve.js.map +1 -0
- package/dist/src/kernel/render/compactUri.js +24 -0
- package/dist/src/kernel/render/compactUri.js.map +1 -0
- package/dist/src/kernel/render/contracts.js +10 -0
- package/dist/src/kernel/render/contracts.js.map +1 -0
- package/dist/src/kernel/render/disclosure.js +34 -0
- package/dist/src/kernel/render/disclosure.js.map +1 -0
- package/dist/src/kernel/render/envelope.js +30 -0
- package/dist/src/kernel/render/envelope.js.map +1 -0
- package/dist/src/kernel/render/formatters.js +27 -0
- package/dist/src/kernel/render/formatters.js.map +1 -0
- package/dist/src/kernel/render/index.js +15 -0
- package/dist/src/kernel/render/index.js.map +1 -0
- package/dist/src/kernel/render/prefixes.js +46 -0
- package/dist/src/kernel/render/prefixes.js.map +1 -0
- package/dist/src/kernel/render/renderers.js +468 -0
- package/dist/src/kernel/render/renderers.js.map +1 -0
- package/dist/src/kernel/render/style.js +85 -0
- package/dist/src/kernel/render/style.js.map +1 -0
- package/dist/src/kernel/render/turtle.js +194 -0
- package/dist/src/kernel/render/turtle.js.map +1 -0
- package/dist/src/kernel/render/writeStdout.js +43 -0
- package/dist/src/kernel/render/writeStdout.js.map +1 -0
- package/dist/src/kernel/runtime/boot.js +49 -0
- package/dist/src/kernel/runtime/boot.js.map +1 -0
- package/dist/src/kernel/runtime/facade.js +39 -0
- package/dist/src/kernel/runtime/facade.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/build.js +122 -0
- package/dist/src/kernel/runtime/graphpack/build.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/buildIndex.js +303 -0
- package/dist/src/kernel/runtime/graphpack/buildIndex.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js +6 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js +4 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.stories.generated.js +4 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.stories.generated.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/embedded.js +82 -0
- package/dist/src/kernel/runtime/graphpack/embedded.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/hash.js +38 -0
- package/dist/src/kernel/runtime/graphpack/hash.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/index.js +11 -0
- package/dist/src/kernel/runtime/graphpack/index.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/manifest.js +145 -0
- package/dist/src/kernel/runtime/graphpack/manifest.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/read.js +92 -0
- package/dist/src/kernel/runtime/graphpack/read.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/schemas.js +70 -0
- package/dist/src/kernel/runtime/graphpack/schemas.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/stories.js +68 -0
- package/dist/src/kernel/runtime/graphpack/stories.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/types.js +55 -0
- package/dist/src/kernel/runtime/graphpack/types.js.map +1 -0
- package/dist/src/kernel/runtime/index.js +8 -0
- package/dist/src/kernel/runtime/index.js.map +1 -0
- package/dist/src/kernel/runtime/loadSession.js +34 -0
- package/dist/src/kernel/runtime/loadSession.js.map +1 -0
- package/dist/src/kernel/runtime/paths.js +78 -0
- package/dist/src/kernel/runtime/paths.js.map +1 -0
- package/dist/src/kernel/runtime/probe.js +37 -0
- package/dist/src/kernel/runtime/probe.js.map +1 -0
- package/dist/src/kernel/runtime/readEntity.js +363 -0
- package/dist/src/kernel/runtime/readEntity.js.map +1 -0
- package/dist/src/kernel/runtime/refs/gitOps.js +65 -0
- package/dist/src/kernel/runtime/refs/gitOps.js.map +1 -0
- package/dist/src/kernel/runtime/refs/index.js +29 -0
- package/dist/src/kernel/runtime/refs/index.js.map +1 -0
- package/dist/src/kernel/runtime/refs/parseRef.js +70 -0
- package/dist/src/kernel/runtime/refs/parseRef.js.map +1 -0
- package/dist/src/kernel/runtime/refs/resolve.js +332 -0
- package/dist/src/kernel/runtime/refs/resolve.js.map +1 -0
- package/dist/src/kernel/runtime/resolveSources.js +62 -0
- package/dist/src/kernel/runtime/resolveSources.js.map +1 -0
- package/dist/src/kernel/runtime/store.js +75 -0
- package/dist/src/kernel/runtime/store.js.map +1 -0
- package/dist/src/kernel/runtime/storeReadiness.js +51 -0
- package/dist/src/kernel/runtime/storeReadiness.js.map +1 -0
- package/dist/src/kernel/runtime/types.js +11 -0
- package/dist/src/kernel/runtime/types.js.map +1 -0
- package/dist/src/kernel/spec/asVerb.js +21 -0
- package/dist/src/kernel/spec/asVerb.js.map +1 -0
- package/dist/src/kernel/spec/emitReference.js +578 -0
- package/dist/src/kernel/spec/emitReference.js.map +1 -0
- package/dist/src/kernel/spec/emitSurface.js +202 -0
- package/dist/src/kernel/spec/emitSurface.js.map +1 -0
- package/dist/src/kernel/spec/index.js +11 -0
- package/dist/src/kernel/spec/index.js.map +1 -0
- package/dist/src/kernel/spec/surfaceConformance.js +103 -0
- package/dist/src/kernel/spec/surfaceConformance.js.map +1 -0
- package/dist/src/kernel/spec/types.js +14 -0
- package/dist/src/kernel/spec/types.js.map +1 -0
- package/dist/src/kernel/spec/validate.js +110 -0
- package/dist/src/kernel/spec/validate.js.map +1 -0
- package/dist/src/kernel/vocabulary.js +97 -0
- package/dist/src/kernel/vocabulary.js.map +1 -0
- package/dist/src/types.js +11 -0
- package/dist/src/types.js.map +1 -0
- package/package.json +25 -24
- package/pragma.conf.ts +853 -0
- package/src/bin.ts +276 -82
- package/src/capabilities/block.parity.test.ts +253 -0
- package/src/capabilities/capabilities/capabilities.render.ts +4 -3
- package/src/capabilities/capabilities/capabilities.verb.ts +32 -14
- package/src/capabilities/capabilities/catalog.ts +20 -12
- package/src/capabilities/capabilities/hints.ts +43 -24
- package/src/capabilities/capabilities/index.ts +1 -1
- package/src/capabilities/colophon/collectColophon.ts +50 -24
- package/src/capabilities/colophon/colophon.render.ts +25 -1
- package/src/capabilities/colophon/colophon.test.ts +42 -21
- package/src/capabilities/colophon/colophon.verb.ts +9 -5
- package/src/capabilities/colophon/types.ts +16 -7
- package/src/capabilities/config/collectConfigShow.test.ts +58 -0
- package/src/capabilities/config/collectConfigShow.ts +43 -6
- package/src/capabilities/config/field.render.ts +4 -5
- package/src/capabilities/config/fields.ts +17 -37
- package/src/capabilities/config/get.verb.ts +70 -0
- package/src/capabilities/config/getUnset.test.ts +264 -0
- package/src/capabilities/config/index.ts +5 -1
- package/src/capabilities/config/runField.ts +40 -22
- package/src/capabilities/config/runGet.ts +34 -0
- package/src/capabilities/config/runSet.ts +35 -9
- package/src/capabilities/config/set.test.ts +48 -14
- package/src/capabilities/config/set.verb.ts +14 -9
- package/src/capabilities/config/show.render.test.ts +77 -5
- package/src/capabilities/config/show.render.ts +8 -13
- package/src/capabilities/config/show.verb.ts +13 -9
- package/src/capabilities/config/types.ts +26 -4
- package/src/capabilities/config/unset.verb.ts +58 -0
- package/src/capabilities/create/byteEquality.subprocess.test.ts +2 -3
- package/src/capabilities/create/byteEquality.test.ts +95 -103
- package/src/capabilities/create/cliProjection.ts +227 -0
- package/src/capabilities/create/constants.ts +50 -0
- package/src/capabilities/create/create.mcp.test.ts +91 -7
- package/src/capabilities/create/create.render.ts +71 -7
- package/src/capabilities/create/create.test.ts +523 -162
- package/src/capabilities/create/create.verb.ts +361 -321
- package/src/capabilities/create/createGrammar.test.ts +865 -0
- package/src/capabilities/create/createHelp.ts +71 -0
- package/src/capabilities/create/createSurface.generated.ts +400 -0
- package/src/capabilities/create/crossCli.subprocess.test.ts +745 -0
- package/src/capabilities/create/cwdJail.test.ts +24 -5
- package/src/capabilities/create/generatorToVerbSpec.test.ts +186 -0
- package/src/capabilities/create/generatorToVerbSpec.ts +13 -11
- package/src/capabilities/create/index.ts +9 -14
- package/src/capabilities/create/messages.ts +18 -0
- package/src/capabilities/create/mount.ts +391 -0
- package/src/capabilities/create/pathJail.test.ts +90 -0
- package/src/capabilities/create/pathJail.ts +8 -5
- package/src/capabilities/create/pickGenerator.ts +40 -46
- package/src/capabilities/create/shippedCreate.subprocess.test.ts +164 -0
- package/src/capabilities/create/types.ts +29 -5
- package/src/capabilities/{standard/parity.test.ts → distribution.parity.test.ts} +24 -14
- package/src/capabilities/distribution.test.ts +122 -0
- package/src/capabilities/distribution.ts +54 -0
- package/src/capabilities/doctor/checks/checkKeStore.ts +9 -7
- package/src/capabilities/doctor/checks/checkPackageRefs.ts +82 -46
- package/src/capabilities/doctor/checks/checkPragmaVersion.ts +5 -4
- package/src/capabilities/doctor/checks/checkShellCompletions.test.ts +125 -30
- package/src/capabilities/doctor/checks/checkShellCompletions.ts +113 -27
- package/src/capabilities/doctor/checks/index.ts +27 -0
- package/src/capabilities/doctor/checks/mcpCommand.test.ts +100 -0
- package/src/capabilities/doctor/checks/mcpCommand.ts +69 -0
- package/src/capabilities/doctor/checks/targetHealth.ts +274 -0
- package/src/capabilities/doctor/doctor.render.test.ts +24 -13
- package/src/capabilities/doctor/doctor.render.ts +45 -20
- package/src/capabilities/doctor/doctor.test.ts +158 -40
- package/src/capabilities/doctor/doctor.verb.ts +9 -5
- package/src/capabilities/doctor/runChecks.ts +65 -66
- package/src/capabilities/doctor/types.ts +21 -5
- package/src/capabilities/emptyRecovery.test.ts +44 -22
- package/src/capabilities/graph/examples.exec.test.ts +107 -0
- package/src/capabilities/graph/index.ts +1 -1
- package/src/capabilities/graph/inspect.render.ts +70 -22
- package/src/capabilities/graph/inspect.test.ts +260 -5
- package/src/capabilities/graph/inspect.verb.ts +18 -5
- package/src/capabilities/graph/query.render.ts +15 -3
- package/src/capabilities/graph/query.verb.ts +5 -4
- package/src/capabilities/graph/runQuery.ts +9 -7
- package/src/capabilities/index.ts +25 -19
- package/src/capabilities/info/collectInfo.ts +15 -10
- package/src/capabilities/info/info.render.ts +4 -3
- package/src/capabilities/info/info.verb.ts +4 -3
- package/src/capabilities/lazy.test.ts +125 -2
- package/src/capabilities/meta/complete.verb.ts +1 -1
- package/src/capabilities/meta/index.ts +1 -1
- package/src/capabilities/meta/mcp.verb.ts +10 -8
- package/src/capabilities/ontology/index.ts +15 -11
- package/src/capabilities/ontology/ontology.test.ts +6 -55
- package/src/capabilities/ontology/queries.ts +2 -2
- package/src/capabilities/ontology/render.ts +3 -4
- package/src/capabilities/ontology/verbs.ts +42 -83
- package/src/capabilities/prompt/index.ts +2 -2
- package/src/capabilities/prompt/prompt.render.ts +6 -2
- package/src/capabilities/prompt/prompt.test.ts +12 -6
- package/src/capabilities/prompt/types.ts +1 -1
- package/src/capabilities/prompt/verbs.ts +26 -14
- package/src/capabilities/reference.test.ts +63 -0
- package/src/capabilities/resources/provider.ts +367 -91
- package/src/capabilities/resources/resources.test.ts +411 -59
- package/src/capabilities/setup/buildPlan.ts +236 -0
- package/src/capabilities/setup/index.ts +7 -7
- package/src/capabilities/setup/mode.ts +74 -0
- package/src/capabilities/setup/operations/index.ts +74 -0
- package/src/capabilities/setup/operations/setupCompletions.ts +97 -24
- package/src/capabilities/setup/operations/setupConfig.ts +124 -0
- package/src/capabilities/setup/operations/setupGenerator.ts +397 -320
- package/src/capabilities/setup/operations/setupLsp.ts +329 -68
- package/src/capabilities/setup/operations/setupMcp.ts +137 -97
- package/src/capabilities/setup/operations/setupSkills.ts +336 -108
- package/src/capabilities/setup/plan.render.ts +241 -0
- package/src/capabilities/setup/plan.ts +236 -0
- package/src/capabilities/setup/setup.mcp.correctness.test.ts +432 -0
- package/src/capabilities/setup/setup.render.test.ts +281 -73
- package/src/capabilities/setup/setup.render.ts +45 -77
- package/src/capabilities/setup/setup.test.ts +972 -209
- package/src/capabilities/setup/setup.verb.ts +233 -74
- package/src/capabilities/setup/shell.test.ts +86 -0
- package/src/capabilities/setup/shell.ts +166 -14
- package/src/capabilities/setup/targets.ts +367 -0
- package/src/capabilities/setup/types.ts +18 -57
- package/src/capabilities/shared/assertExecOk.ts +68 -10
- package/src/capabilities/shared/index.ts +32 -0
- package/src/capabilities/shared/packageManager.test.ts +55 -0
- package/src/capabilities/shared/packageManager.ts +62 -6
- package/src/capabilities/skill/discover.ts +47 -9
- package/src/capabilities/skill/index.ts +1 -1
- package/src/capabilities/skill/render.ts +14 -14
- package/src/capabilities/skill/skill.test.ts +7 -5
- package/src/capabilities/skill/verbs.ts +9 -10
- package/src/capabilities/sources/collectStatus.ts +61 -51
- package/src/capabilities/sources/index.ts +2 -2
- package/src/capabilities/sources/installSkills.ts +86 -9
- package/src/capabilities/sources/runUpdate.ts +164 -141
- package/src/capabilities/sources/sources.test.ts +265 -119
- package/src/capabilities/sources/status.render.test.ts +53 -24
- package/src/capabilities/sources/status.render.ts +25 -30
- package/src/capabilities/sources/status.verb.ts +16 -9
- package/src/capabilities/sources/types.ts +18 -25
- package/src/capabilities/sources/update.render.ts +10 -3
- package/src/capabilities/sources/update.verb.ts +13 -24
- package/src/capabilities/surface.test.ts +165 -25
- package/src/capabilities/tier.parity.test.ts +144 -0
- package/src/capabilities/upgrade/runUpgrade.ts +8 -8
- package/src/capabilities/upgrade/upgrade.render.ts +4 -5
- package/src/capabilities/upgrade/upgrade.test.ts +3 -3
- package/src/capabilities/upgrade/upgrade.verb.ts +8 -4
- package/src/capabilities/version/index.ts +12 -0
- package/src/capabilities/version/version.test.ts +66 -0
- package/src/capabilities/version/version.verb.ts +39 -0
- package/src/constants.test.ts +8 -6
- package/src/constants.ts +78 -22
- package/src/identity.test.ts +348 -0
- package/src/index.ts +2 -2
- package/src/kernel/completion/__snapshots__/emitScripts.test.ts.snap +20 -15
- package/src/kernel/completion/complete.test.ts +12 -2
- package/src/kernel/completion/complete.ts +1 -1
- package/src/kernel/completion/emitScripts.test.ts +1 -1
- package/src/kernel/completion/emitScripts.ts +5 -3
- package/src/kernel/completion/entitySource.test.ts +185 -41
- package/src/kernel/completion/entitySource.ts +133 -110
- package/src/kernel/completion/model.test.ts +165 -13
- package/src/kernel/completion/model.ts +105 -14
- package/src/kernel/completion/parse.test.ts +4 -7
- package/src/kernel/completion/parse.ts +15 -0
- package/src/kernel/completion/resolve.test.ts +0 -1
- package/src/kernel/completion/safety.test.ts +104 -50
- package/src/kernel/completion/shellDrive.test.ts +611 -0
- package/src/kernel/completion/templates/bash.ts +7 -2
- package/src/kernel/completion/templates/fish.ts +28 -6
- package/src/kernel/completion/templates/index.ts +23 -0
- package/src/kernel/completion/types.ts +10 -3
- package/src/kernel/config/defaults.test.ts +108 -0
- package/src/kernel/config/defaults.ts +13 -23
- package/src/kernel/config/evaluateProjectConfig.ts +33 -11
- package/src/kernel/config/findProjectConfig.ts +4 -3
- package/src/kernel/config/firstRun.test.ts +44 -38
- package/src/kernel/config/firstRun.ts +24 -81
- package/src/kernel/config/globalConfig.ts +2 -2
- package/src/kernel/config/index.ts +5 -6
- package/src/kernel/config/paths.ts +17 -17
- package/src/kernel/config/readConfig.test.ts +246 -7
- package/src/kernel/config/readConfig.ts +8 -8
- package/src/kernel/config/schema.test.ts +50 -0
- package/src/kernel/config/schema.ts +100 -11
- package/src/kernel/config/types.ts +75 -19
- package/src/kernel/copy.test.ts +483 -0
- package/src/kernel/copy.ts +54 -0
- package/src/kernel/error/PragmaError.test.ts +6 -3
- package/src/kernel/error/PragmaError.ts +4 -2
- package/src/kernel/error/constants.ts +7 -4
- package/src/kernel/error/fromTaskError.ts +28 -6
- package/src/kernel/error/index.ts +1 -1
- package/src/kernel/error/recovery.test.ts +22 -45
- package/src/kernel/error/recovery.ts +36 -27
- package/src/kernel/error/renderError.ts +42 -1
- package/src/kernel/error/types.ts +25 -4
- package/src/kernel/index.ts +26 -0
- package/src/kernel/packs/collect.test.ts +195 -11
- package/src/kernel/packs/collect.ts +212 -61
- package/src/kernel/packs/compile.test.ts +293 -8
- package/src/kernel/packs/compile.ts +108 -15
- package/src/kernel/packs/disclosure.test.ts +5 -2
- package/src/kernel/packs/disclosure.ts +2 -2
- package/src/kernel/packs/graphql/buildLookupDocument.ts +1 -1
- package/src/kernel/packs/graphql/fetchGraphqlLookup.ts +13 -13
- package/src/kernel/packs/graphql/index.ts +20 -0
- package/src/kernel/packs/graphqlSource.test.ts +6 -3
- package/src/kernel/packs/index.ts +40 -0
- package/src/kernel/packs/iri.test.ts +73 -0
- package/src/kernel/packs/iri.ts +70 -20
- package/src/kernel/packs/renderPack.ts +28 -7
- package/src/kernel/packs/resolveEntity.test.ts +213 -0
- package/src/kernel/packs/resolveEntity.ts +132 -34
- package/src/kernel/packs/runBodies.ts +16 -16
- package/src/kernel/packs/sample.ts +1 -1
- package/src/kernel/packs/schema.ts +114 -11
- package/src/kernel/packs/sparql/applyFilters.ts +16 -17
- package/src/kernel/packs/sparql/buildLookupQuery.ts +75 -3
- package/src/kernel/packs/sparql/index.ts +37 -0
- package/src/kernel/packs/sparql/runSelect.test.ts +104 -10
- package/src/kernel/packs/sparql/runSelect.ts +75 -37
- package/src/kernel/packs/toolDescription.test.ts +52 -5
- package/src/kernel/packs/types.ts +52 -4
- package/src/kernel/packs/uniqueness.ts +5 -5
- package/src/kernel/project/cli/buildProgram.test.ts +157 -17
- package/src/kernel/project/cli/buildProgram.ts +77 -18
- package/src/kernel/project/cli/constants.ts +34 -0
- package/src/kernel/project/cli/dispatch.test.ts +227 -3
- package/src/kernel/project/cli/dispatch.ts +250 -48
- package/src/kernel/project/cli/exitCodes.ts +1 -1
- package/src/kernel/project/cli/globalFlags.test.ts +117 -1
- package/src/kernel/project/cli/globalFlags.ts +130 -30
- package/src/kernel/project/cli/helpFormat.ts +14 -1
- package/src/kernel/project/cli/rootHelp.ts +140 -111
- package/src/kernel/project/cli/suggest.test.ts +33 -1
- package/src/kernel/project/cli/suggest.ts +25 -1
- package/src/kernel/project/cli/verbHelp.test.ts +30 -0
- package/src/kernel/project/cli/verbHelp.ts +23 -7
- package/src/kernel/project/mcp/buildServer.ts +18 -10
- package/src/kernel/project/mcp/envelope.ts +2 -2
- package/src/kernel/project/mcp/instructions.ts +12 -7
- package/src/kernel/project/mcp/mcpError.ts +1 -1
- package/src/kernel/project/mcp/parity.test.ts +42 -1
- package/src/kernel/project/mcp/prompts/index.ts +37 -0
- package/src/kernel/project/mcp/prompts/prompts.test.ts +120 -5
- package/src/kernel/project/mcp/prompts/provider.ts +22 -8
- package/src/kernel/project/mcp/prompts/source.ts +69 -68
- package/src/kernel/project/mcp/registerVerb.ts +56 -11
- package/src/kernel/project/mcp/serve.ts +13 -5
- package/src/kernel/project/mcp/toolDescriptions.test.ts +6 -2
- package/src/kernel/render/__snapshots__/renderers.test.ts.snap +7 -4
- package/src/kernel/render/contracts.ts +21 -0
- package/src/kernel/render/disclosure.ts +4 -2
- package/src/kernel/render/envelope.ts +2 -3
- package/src/kernel/render/formatters.ts +1 -1
- package/src/kernel/render/prefixes.test.ts +36 -0
- package/src/kernel/render/prefixes.ts +40 -13
- package/src/kernel/render/renderers.test.ts +244 -7
- package/src/kernel/render/renderers.ts +222 -20
- package/src/kernel/render/style.test.ts +75 -24
- package/src/kernel/render/style.ts +31 -1
- package/src/kernel/render/turtle.ts +222 -0
- package/src/kernel/runtime/graphpack/build.ts +29 -3
- package/src/kernel/runtime/graphpack/buildIndex.test.ts +46 -0
- package/src/kernel/runtime/graphpack/buildIndex.ts +53 -18
- package/src/kernel/runtime/graphpack/embedded/pack.generated.ts +5 -5
- package/src/kernel/runtime/graphpack/embedded/pack.index.generated.ts +3 -3
- package/src/kernel/runtime/graphpack/embedded/pack.stories.generated.ts +3 -0
- package/src/kernel/runtime/graphpack/embedded.ts +39 -13
- package/src/kernel/runtime/graphpack/graphpack.test.ts +205 -5
- package/src/kernel/runtime/graphpack/hash.ts +3 -2
- package/src/kernel/runtime/graphpack/index.ts +1 -1
- package/src/kernel/runtime/graphpack/manifest.ts +114 -12
- package/src/kernel/runtime/graphpack/read.ts +5 -11
- package/src/kernel/runtime/graphpack/schemas.ts +74 -0
- package/src/kernel/runtime/graphpack/stories.ts +84 -0
- package/src/kernel/runtime/graphpack/types.ts +61 -48
- package/src/kernel/runtime/loadSession.ts +1 -1
- package/src/kernel/runtime/paths.ts +64 -15
- package/src/kernel/runtime/probe.test.ts +8 -4
- package/src/kernel/runtime/probe.ts +6 -6
- package/src/kernel/runtime/readEntity.ts +477 -32
- package/src/kernel/runtime/refs/gitOps.ts +1 -19
- package/src/kernel/runtime/refs/index.ts +39 -0
- package/src/kernel/runtime/refs/parseRef.ts +8 -8
- package/src/kernel/runtime/refs/resolve.ts +82 -66
- package/src/kernel/runtime/resolveSources.test.ts +63 -24
- package/src/kernel/runtime/resolveSources.ts +36 -25
- package/src/kernel/runtime/storeReadiness.ts +10 -10
- package/src/kernel/runtime/storeless.test.ts +1 -1
- package/src/kernel/runtime/types.ts +15 -1
- package/src/kernel/runtime/wasmEmbed.test.ts +56 -55
- package/src/kernel/spec/emitReference.test.ts +3 -3
- package/src/kernel/spec/emitReference.ts +242 -34
- package/src/kernel/spec/emitSurface.ts +57 -11
- package/src/kernel/spec/surfaceConformance.test.ts +4 -2
- package/src/kernel/spec/surfaceConformance.ts +8 -0
- package/src/kernel/spec/types.ts +277 -13
- package/src/kernel/spec/validate.ts +2 -1
- package/src/kernel/vocabulary.test.ts +164 -0
- package/src/kernel/vocabulary.ts +146 -0
- package/src/testing/PARITY_GAPS.ts +8 -2
- package/src/testing/behavioral/README.md +3 -3
- package/src/testing/behavioral/completion.test.ts +19 -6
- package/src/testing/behavioral/docExamples.test.ts +14 -0
- package/src/testing/behavioral/errorMatrix.mcp.test.ts +6 -5
- package/src/testing/behavioral/errorMatrix.storeless.test.ts +1 -1
- package/src/testing/behavioral/exitCodes.e2e.test.ts +6 -5
- package/src/testing/behavioral/firstRun.e2e.test.ts +24 -24
- package/src/testing/behavioral/harness.foundation.test.ts +14 -5
- package/src/testing/behavioral/journeys.cli.test.ts +117 -76
- package/src/testing/behavioral/journeys.defaultPack.test.ts +88 -182
- package/src/testing/behavioral/journeys.firstInstall.test.ts +167 -0
- package/src/testing/behavioral/journeys.implementation.test.ts +206 -0
- package/src/testing/behavioral/journeys.interactiveTty.e2e.test.ts +2 -2
- package/src/testing/behavioral/journeys.mcpLifecycle.mcp.test.ts +9 -6
- package/src/testing/behavioral/journeys.packageStories.test.ts +188 -0
- package/src/testing/behavioral/liveReadSurface.ts +4 -3
- package/src/testing/behavioral/mcpServe.e2e.test.ts +57 -2
- package/src/testing/behavioral/mcpSurface.test.ts +10 -5
- package/src/testing/behavioral/rootCli.e2e.test.ts +26 -2
- package/src/testing/behavioral/staleCommands.test.ts +10 -0
- package/src/testing/eval/__snapshots__/eval.test.ts.snap +7 -7
- package/src/testing/eval/cases/assembly.ts +13 -6
- package/src/testing/eval/cases/effectful.ts +28 -15
- package/src/testing/eval/cases/readNouns.ts +22 -20
- package/src/testing/eval/cases/stable.ts +5 -1
- package/src/testing/eval/eval.test.ts +7 -1
- package/src/testing/fixtures/blockGraph.ts +79 -0
- package/src/testing/fixtures/fixtureCapability.ts +45 -1
- package/src/testing/fixtures/graph/canonical.ts +94 -5
- package/src/testing/fixtures/graph/defaultPack.ts +7 -6
- package/src/testing/fixtures/graph/owlExport.ts +7 -5
- package/src/testing/helpers/blankCanonicalRanges.ts +36 -0
- package/src/testing/helpers/fixtureGraph.ts +33 -16
- package/src/testing/helpers/packRuntime.ts +2 -3
- package/src/testing/helpers/projectCli.ts +2 -1
- package/src/testing/helpers/projectMcp.ts +38 -6
- package/src/testing/helpers/runCli.ts +35 -18
- package/src/testing/perf/budgets.test.ts +24 -9
- package/src/testing/perf/budgets.ts +76 -12
- package/src/testing/perf/codegen.test.ts +126 -0
- package/src/testing/perf/globalSetup.test.ts +286 -0
- package/src/testing/perf/globalSetup.ts +611 -14
- package/src/testing/perf/measure.test.ts +38 -0
- package/src/testing/perf/measure.ts +23 -4
- package/src/testing/setupXdgIsolation.ts +81 -21
- package/src/testing/tempRoot.globalSetup.ts +122 -0
- package/src/types.ts +2 -2
- package/dist/pragma +0 -0
- package/src/capabilities/block/blockList.test.ts +0 -79
- package/src/capabilities/block/blockList.verb.ts +0 -163
- package/src/capabilities/block/index.ts +0 -25
- package/src/capabilities/block/pack.ts +0 -166
- package/src/capabilities/block/parity.test.ts +0 -187
- package/src/capabilities/block/tierChain.ts +0 -78
- package/src/capabilities/colophon/pragmaColophon.ts +0 -66
- package/src/capabilities/create/compiledCreate.subprocess.test.ts +0 -152
- package/src/capabilities/create/templates.embedded.generated.ts +0 -53
- package/src/capabilities/doctor/checks/checkConfigFile.ts +0 -41
- package/src/capabilities/doctor/checks/checkMcpCommands.ts +0 -114
- package/src/capabilities/doctor/checks/checkMcpConfigured.ts +0 -67
- package/src/capabilities/doctor/checks/checkSkillsSymlinked.ts +0 -60
- package/src/capabilities/doctor/checks/deriveBand.test.ts +0 -42
- package/src/capabilities/doctor/checks/deriveBand.ts +0 -28
- package/src/capabilities/modifier/index.ts +0 -15
- package/src/capabilities/modifier/pack.ts +0 -64
- package/src/capabilities/standard/index.ts +0 -18
- package/src/capabilities/standard/pack.ts +0 -128
- package/src/capabilities/tier/index.ts +0 -19
- package/src/capabilities/tier/lookup.render.test.ts +0 -72
- package/src/capabilities/tier/lookup.render.ts +0 -59
- package/src/capabilities/tier/lookup.test.ts +0 -83
- package/src/capabilities/tier/lookup.verb.ts +0 -44
- package/src/capabilities/tier/pack.ts +0 -28
- package/src/capabilities/tier/runLookup.ts +0 -87
- package/src/capabilities/token/addConfig.render.ts +0 -27
- package/src/capabilities/token/addConfig.test.ts +0 -62
- package/src/capabilities/token/addConfig.verb.ts +0 -40
- package/src/capabilities/token/index.ts +0 -19
- package/src/capabilities/token/pack.ts +0 -58
- package/src/capabilities/token/runAddConfig.ts +0 -95
- package/src/kernel/completion/bashDrive.test.ts +0 -73
- package/src/kernel/config/__snapshots__/firstRun.test.ts.snap +0 -11
- package/src/kernel/runtime/graphpack/embedded/sample.ttl +0 -39
- package/src/kernel/runtime/lock.ts +0 -90
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block-noun semantic parity (PROTECTED) — the `block` story `pragma.conf.ts`
|
|
3
|
+
* declares, over the shared block fixture graph (the standard-noun pattern).
|
|
4
|
+
*
|
|
5
|
+
* The `block` noun has no hand-written code left (L-OPEN-9): `list` and
|
|
6
|
+
* `lookup` both compile from the declared story, so parity is asserted directly
|
|
7
|
+
* against the graph. Two halves:
|
|
8
|
+
*
|
|
9
|
+
* - `block list` — the UNFILTERED list. Every block in the store, whatever the
|
|
10
|
+
* tier or channel, including the UNTIERED subcomponent the old hand-written
|
|
11
|
+
* query's required `ds:tier` join dropped (A2, formerly reachable only under
|
|
12
|
+
* `--all-tiers`). The row shape the hand-written verb built in TypeScript —
|
|
13
|
+
* the name fallback, the lowercased type, the tier's local name — is now
|
|
14
|
+
* derived IN SPARQL by `BIND`/`COALESCE`, and this file is what holds those
|
|
15
|
+
* BINDs to the shapes the old `blockList.verb.ts` produced.
|
|
16
|
+
* - `block lookup` — unchanged GraphQL content parity, moved here from the
|
|
17
|
+
* deleted `capabilities/block/parity.test.ts`. Button and Modal resolve with
|
|
18
|
+
* the same content a direct SPARQL oracle returns (summary, guidance,
|
|
19
|
+
* anatomy, tier, modifier families with values, properties, subcomponents).
|
|
20
|
+
* The fixture DECLARES whenToUse/whenNotToUse (which the live graph superseded
|
|
21
|
+
* with ds:usage), so those sections are exercised here.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import { afterAll, beforeAll, describe, expect, it } from "vitest";
|
|
25
|
+
import type { LookupOutput } from "../kernel/packs/resolveEntity.js";
|
|
26
|
+
import type { PackRow } from "../kernel/packs/types.js";
|
|
27
|
+
import { verbKey } from "../kernel/packs/uniqueness.js";
|
|
28
|
+
import type { PragmaRuntime } from "../kernel/runtime/types.js";
|
|
29
|
+
import type { VerbSpec } from "../kernel/spec/types.js";
|
|
30
|
+
import { BLOCK_PREFIXES, BLOCK_TTL } from "../testing/fixtures/blockGraph.js";
|
|
31
|
+
import { buildFixtureRuntime } from "../testing/helpers/packRuntime.js";
|
|
32
|
+
import { storyModules } from "./distribution.js";
|
|
33
|
+
|
|
34
|
+
const blockModule = storyModules.get("block");
|
|
35
|
+
if (!blockModule) {
|
|
36
|
+
throw new Error('pragma.conf.ts declares no story for "block"');
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const DS = "https://ds.canonical.com/";
|
|
40
|
+
|
|
41
|
+
const verb = (label: string): VerbSpec =>
|
|
42
|
+
blockModule.verbs.find(
|
|
43
|
+
(v) => verbKey(v.path) === `block ${label}`,
|
|
44
|
+
) as VerbSpec;
|
|
45
|
+
|
|
46
|
+
let rt: PragmaRuntime;
|
|
47
|
+
|
|
48
|
+
beforeAll(async () => {
|
|
49
|
+
({ rt } = await buildFixtureRuntime({
|
|
50
|
+
ttl: BLOCK_TTL,
|
|
51
|
+
prefixes: BLOCK_PREFIXES,
|
|
52
|
+
detail: "detailed",
|
|
53
|
+
}));
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
afterAll(async () => {
|
|
57
|
+
(await rt.store.get()).store.dispose();
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
async function lookup(name: string): Promise<Record<string, unknown>> {
|
|
61
|
+
const out = (await verb("lookup").run({ name: [name] }, rt)) as LookupOutput;
|
|
62
|
+
expect(out.errors).toEqual([]);
|
|
63
|
+
return out.results.at(0) as Record<string, unknown>;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
describe("block list parity — the declared, unfiltered list", () => {
|
|
67
|
+
it("lists EVERY block, including the untiered subcomponent (A2)", async () => {
|
|
68
|
+
// `ds:button.icon` is a `ds:Subcomponent` with NO `ds:tier`. The
|
|
69
|
+
// hand-written query inner-joined `?c ds:tier ?t` in its default view and
|
|
70
|
+
// surfaced it only under `--all-tiers`; the declared query's OPTIONAL join
|
|
71
|
+
// means there is no view it can fall out of.
|
|
72
|
+
const rows = (await verb("list").run({}, rt)) as PackRow[];
|
|
73
|
+
expect(rows.map((row) => row.name)).toEqual([
|
|
74
|
+
"Button",
|
|
75
|
+
"Button Icon",
|
|
76
|
+
"Modal",
|
|
77
|
+
]);
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it("derives the summary row shape in SPARQL, matching the old hand-built row", async () => {
|
|
81
|
+
const rows = (await verb("list").run({}, rt)) as PackRow[];
|
|
82
|
+
const byName = new Map(rows.map((row) => [row.name, row]));
|
|
83
|
+
const button = byName.get("Button");
|
|
84
|
+
// `type`: the LOWERCASED local name of the matched class — the BIND that
|
|
85
|
+
// replaced `normalizeType`.
|
|
86
|
+
expect(button?.type).toBe("component");
|
|
87
|
+
expect(byName.get("Button Icon")?.type).toBe("subcomponent");
|
|
88
|
+
// `tier`: the tier IRI's local name — the BIND that replaced `localName`.
|
|
89
|
+
expect(button?.tier).toBe("global");
|
|
90
|
+
expect(button?.uri).toBe(`${DS}button`);
|
|
91
|
+
// GROUP_CONCAT of the family names (order-independent).
|
|
92
|
+
expect(String(button?.modifiers).split(", ").sort()).toEqual([
|
|
93
|
+
"density",
|
|
94
|
+
"importance",
|
|
95
|
+
]);
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it("an untiered block simply carries no tier — it is not dropped or blanked", async () => {
|
|
99
|
+
const rows = (await verb("list").run({}, rt)) as PackRow[];
|
|
100
|
+
const icon = rows.find((row) => row.name === "Button Icon");
|
|
101
|
+
expect(icon).toBeDefined();
|
|
102
|
+
expect(icon?.tier).toBeUndefined();
|
|
103
|
+
expect(icon?.uri).toBe(`${DS}button.icon`);
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
it("is CONFIG-INDEPENDENT: a configured tier and channel change nothing", async () => {
|
|
107
|
+
// The signed-off consequence of L-OPEN-9, pinned at the verb: the run body
|
|
108
|
+
// never reads `loadConfig()`, so the same rows come back under any scope.
|
|
109
|
+
const scoped = {
|
|
110
|
+
...rt,
|
|
111
|
+
loadConfig: async () => ({
|
|
112
|
+
...(await rt.loadConfig()),
|
|
113
|
+
config: {
|
|
114
|
+
...(await rt.loadConfig()).config,
|
|
115
|
+
tier: "apps/lxd",
|
|
116
|
+
channel: "experimental" as const,
|
|
117
|
+
},
|
|
118
|
+
}),
|
|
119
|
+
} as PragmaRuntime;
|
|
120
|
+
const scopedRows = (await verb("list").run({}, scoped)) as PackRow[];
|
|
121
|
+
const plainRows = (await verb("list").run({}, rt)) as PackRow[];
|
|
122
|
+
expect(scopedRows).toEqual(plainRows);
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it("zero rows is a calm empty list, not an error (the declared-family semantics)", async () => {
|
|
126
|
+
// D10-A, measured: `makeListRun` returns `[]` and never throws on
|
|
127
|
+
// emptiness — identical exit-code behaviour to the hand-written verb, which
|
|
128
|
+
// also returned an empty array. Only the empty MESSAGE changed (the pack's
|
|
129
|
+
// `emptyRecovery` replaces the `--all-tiers` hint that no longer exists).
|
|
130
|
+
const { rt: emptyRt } = await buildFixtureRuntime({
|
|
131
|
+
ttl: `
|
|
132
|
+
@prefix ds: <${DS}> .
|
|
133
|
+
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
134
|
+
ds:Component a owl:Class .
|
|
135
|
+
`,
|
|
136
|
+
prefixes: BLOCK_PREFIXES,
|
|
137
|
+
});
|
|
138
|
+
try {
|
|
139
|
+
const rows = (await verb("list").run({}, emptyRt)) as PackRow[];
|
|
140
|
+
expect(rows).toEqual([]);
|
|
141
|
+
// The same semantics, on the empty-state seam: the calm message + its
|
|
142
|
+
// runnable hint now reach the user via stderr (`emptyNotice`), keeping
|
|
143
|
+
// plain stdout pure data.
|
|
144
|
+
const notice = verb("list").output.formatters.emptyNotice?.(rows);
|
|
145
|
+
expect(notice).toContain("No blocks in the store.");
|
|
146
|
+
expect(notice).toContain("pragma sources update");
|
|
147
|
+
} finally {
|
|
148
|
+
(await emptyRt.store.get()).store.dispose();
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
describe("block lookup — Button content parity (GraphQL, detailed)", () => {
|
|
154
|
+
it("resolves the full Button spec with content matching the SPARQL oracle", async () => {
|
|
155
|
+
const button = await lookup("Button");
|
|
156
|
+
expect(button.uri).toBe(`${DS}button`);
|
|
157
|
+
expect(button.name).toBe("Button");
|
|
158
|
+
expect(button.tier).toBe(`${DS}global`);
|
|
159
|
+
|
|
160
|
+
// Guidance + anatomy sections — each cross-checked against the graph.
|
|
161
|
+
expect(button.summary).toBe(await oracle(`${DS}button`, "ds:summary"));
|
|
162
|
+
expect(button.whenToUse).toBe(await oracle(`${DS}button`, "ds:whenToUse"));
|
|
163
|
+
expect(button.whenNotToUse).toBe(
|
|
164
|
+
await oracle(`${DS}button`, "ds:whenNotToUse"),
|
|
165
|
+
);
|
|
166
|
+
expect(button.guidelines).toBe(
|
|
167
|
+
await oracle(`${DS}button`, "ds:guidelines"),
|
|
168
|
+
);
|
|
169
|
+
expect(button.anatomyDsl).toBe(
|
|
170
|
+
await oracle(`${DS}button`, "ds:anatomyDsl"),
|
|
171
|
+
);
|
|
172
|
+
expect(button.figmaLink).toBe(await oracle(`${DS}button`, "ds:figmaLink"));
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
it("resolves the nested modifier families with values (inverse union)", async () => {
|
|
176
|
+
const button = await lookup("Button");
|
|
177
|
+
const families = button.modifierFamilies as {
|
|
178
|
+
name: string;
|
|
179
|
+
values?: string[];
|
|
180
|
+
}[];
|
|
181
|
+
expect(families.map((f) => f.name).sort()).toEqual([
|
|
182
|
+
"density",
|
|
183
|
+
"importance",
|
|
184
|
+
]);
|
|
185
|
+
const importance = families.find((f) => f.name === "importance");
|
|
186
|
+
expect(importance?.values?.sort()).toEqual(["primary", "secondary"]);
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
it("resolves properties and the subtype-scoped subcomponents identity field", async () => {
|
|
190
|
+
const button = await lookup("Button");
|
|
191
|
+
expect(button.properties).toEqual([
|
|
192
|
+
{ name: "disabled", type: "boolean", optional: "true" },
|
|
193
|
+
]);
|
|
194
|
+
expect(button.subcomponents).toEqual([
|
|
195
|
+
{ name: "Button Icon", uri: `${DS}button.icon` },
|
|
196
|
+
]);
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
it("renders every declared section in the llm output", async () => {
|
|
200
|
+
const out = (await verb("lookup").run({ name: ["Button"] }, rt)) as never;
|
|
201
|
+
const llm = verb("lookup").output.formatters.llm(out);
|
|
202
|
+
expect(llm).toContain("## Button");
|
|
203
|
+
expect(llm).toContain("### When to use");
|
|
204
|
+
expect(llm).toContain("### Anatomy (DSL)");
|
|
205
|
+
expect(llm).toContain("### Modifier Families");
|
|
206
|
+
expect(llm).toContain("primary");
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
describe("block lookup — Modal content parity (GraphQL, detailed)", () => {
|
|
211
|
+
it("resolves the full Modal spec (a different block, same document engine)", async () => {
|
|
212
|
+
const modal = await lookup("Modal");
|
|
213
|
+
expect(modal.uri).toBe(`${DS}modal`);
|
|
214
|
+
expect(modal.name).toBe("Modal");
|
|
215
|
+
expect(modal.summary).toBe(await oracle(`${DS}modal`, "ds:summary"));
|
|
216
|
+
expect(modal.whenToUse).toBe(await oracle(`${DS}modal`, "ds:whenToUse"));
|
|
217
|
+
const families = modal.modifierFamilies as {
|
|
218
|
+
name: string;
|
|
219
|
+
values?: string[];
|
|
220
|
+
}[];
|
|
221
|
+
expect(families.map((f) => f.name)).toEqual(["size"]);
|
|
222
|
+
expect(families[0]?.values?.sort()).toEqual(["large", "small"]);
|
|
223
|
+
expect(modal.properties).toEqual([
|
|
224
|
+
{ name: "open", type: "boolean", optional: "false" },
|
|
225
|
+
]);
|
|
226
|
+
// Modal has no subcomponents — the subtype-scoped selection is simply absent.
|
|
227
|
+
expect(modal.subcomponents).toEqual([]);
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
describe("block lookup — disclosure trims to the base view at summary", () => {
|
|
232
|
+
it("summary keeps name/tier/summary and drops the detailed sections/expands", async () => {
|
|
233
|
+
const out = (await verb("lookup").run(
|
|
234
|
+
{ name: ["Button"] },
|
|
235
|
+
{ ...rt, globalFlags: { ...rt.globalFlags, detail: "summary" } },
|
|
236
|
+
)) as LookupOutput;
|
|
237
|
+
const button = out.results.at(0) as Record<string, unknown>;
|
|
238
|
+
expect(button.name).toBe("Button");
|
|
239
|
+
expect(button.summary).toBeDefined();
|
|
240
|
+
expect(button.whenToUse).toBeUndefined();
|
|
241
|
+
expect(button.anatomyDsl).toBeUndefined();
|
|
242
|
+
expect(button.modifierFamilies).toBeUndefined();
|
|
243
|
+
expect(button.figmaLink).toBeUndefined();
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
|
|
247
|
+
/** Oracle: a single scalar from the graph, queried directly. */
|
|
248
|
+
async function oracle(subject: string, predicate: string): Promise<string> {
|
|
249
|
+
const result = await rt.query.sparql(
|
|
250
|
+
`SELECT ?v WHERE { <${subject}> ${predicate} ?v }`,
|
|
251
|
+
);
|
|
252
|
+
return result.type === "select" ? (result.bindings[0]?.v ?? "") : "";
|
|
253
|
+
}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* (what the MCP tool returns through the envelope).
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import
|
|
9
|
+
import { BIN_NAME } from "../../constants.js";
|
|
10
|
+
import type { Formatters } from "../../kernel/spec/index.js";
|
|
10
11
|
import type { CapabilitiesData, ToolCategory } from "./types.js";
|
|
11
12
|
|
|
12
13
|
/** Category display order for grouped tool listings. */
|
|
@@ -19,7 +20,7 @@ const CATEGORY_ORDER: readonly ToolCategory[] = [
|
|
|
19
20
|
|
|
20
21
|
export const capabilitiesFormatters: Formatters<CapabilitiesData> = {
|
|
21
22
|
plain(data) {
|
|
22
|
-
const lines: string[] = [
|
|
23
|
+
const lines: string[] = [`${BIN_NAME} v${data.version}`, ""];
|
|
23
24
|
|
|
24
25
|
lines.push("Conventions");
|
|
25
26
|
lines.push(` ${data.conventions.system}`);
|
|
@@ -53,7 +54,7 @@ export const capabilitiesFormatters: Formatters<CapabilitiesData> = {
|
|
|
53
54
|
},
|
|
54
55
|
|
|
55
56
|
llm(data) {
|
|
56
|
-
const lines: string[] = [`#
|
|
57
|
+
const lines: string[] = [`# ${BIN_NAME} v${data.version}`, ""];
|
|
57
58
|
|
|
58
59
|
lines.push("## Conventions");
|
|
59
60
|
lines.push(`- ${data.conventions.system}`);
|
|
@@ -7,27 +7,38 @@
|
|
|
7
7
|
* counts) is deliberately DROPPED here (it would require a store boot at
|
|
8
8
|
* orientation) and lives in `info` / `config show` / `sources status` instead.
|
|
9
9
|
*
|
|
10
|
-
* `run` is a lazy thunk that dynamic-imports the catalog
|
|
11
|
-
* registry barrel, so building the command tree
|
|
12
|
-
* the `--help`/`__complete` fast path, and the
|
|
13
|
-
* (`store.booted` stays false — the storeless-spy
|
|
10
|
+
* `run` is a lazy thunk that dynamic-imports the catalog, the capability
|
|
11
|
+
* registry barrel and the dispatch-time merge, so building the command tree
|
|
12
|
+
* never pulls the derivation onto the `--help`/`__complete` fast path, and the
|
|
13
|
+
* tool never boots the store (`store.booted` stays false — the storeless-spy
|
|
14
|
+
* invariant).
|
|
15
|
+
*
|
|
16
|
+
* It reports the EFFECTIVE modules, not the static registry: the MCP server
|
|
17
|
+
* registers its tools from the same merge, so a catalog built from the static
|
|
18
|
+
* set would omit exactly the config- and package-declared nouns `tools/list`
|
|
19
|
+
* advertises — the hand-maintained drift this catalog exists to end. With no
|
|
20
|
+
* declared stories the merge returns the registry by identity, so the payload is
|
|
21
|
+
* unchanged.
|
|
14
22
|
*/
|
|
15
23
|
|
|
24
|
+
import { BIN_NAME } from "../../constants.js";
|
|
16
25
|
import { asVerb } from "../../kernel/spec/asVerb.js";
|
|
17
|
-
import type { VerbSpec } from "../../kernel/spec/
|
|
26
|
+
import type { VerbSpec } from "../../kernel/spec/index.js";
|
|
18
27
|
import { capabilitiesFormatters } from "./capabilities.render.js";
|
|
19
28
|
import type { CapabilitiesData } from "./types.js";
|
|
20
29
|
|
|
21
30
|
const capabilitiesVerb: VerbSpec<Record<string, unknown>, CapabilitiesData> = {
|
|
22
31
|
path: ["capabilities"],
|
|
23
|
-
summary:
|
|
24
|
-
"Discover pragma conventions, the annotated tool catalog, and the discovery sequence.",
|
|
32
|
+
summary: `Discover ${BIN_NAME} conventions, the annotated tool catalog, and the discovery sequence.`,
|
|
25
33
|
doc: "Storeless orientation for agents. Returns the conventions (KG / tier-channel / SPARQL model), a four-stage discovery sequence, and every live tool with a behavioural use_when hint and category — all derived from the live grammar, so it never drifts. Call it first at session start.",
|
|
26
34
|
params: [],
|
|
27
35
|
output: { formatters: capabilitiesFormatters },
|
|
28
36
|
examples: [
|
|
29
|
-
{ cmd:
|
|
30
|
-
{
|
|
37
|
+
{ cmd: `${BIN_NAME} capabilities`, note: "the annotated tool catalog" },
|
|
38
|
+
{
|
|
39
|
+
cmd: `${BIN_NAME} capabilities --format json`,
|
|
40
|
+
note: "the structured map",
|
|
41
|
+
},
|
|
31
42
|
],
|
|
32
43
|
capability: {
|
|
33
44
|
needsStore: false,
|
|
@@ -37,11 +48,18 @@ const capabilitiesVerb: VerbSpec<Record<string, unknown>, CapabilitiesData> = {
|
|
|
37
48
|
annotations: { readOnlyHint: true, openWorldHint: false },
|
|
38
49
|
},
|
|
39
50
|
},
|
|
40
|
-
run: (_params,
|
|
41
|
-
|
|
42
|
-
(
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
run: async (_params, runtime) => {
|
|
52
|
+
const [catalog, registry, collect] = await Promise.all([
|
|
53
|
+
import("./catalog.js"),
|
|
54
|
+
import("../index.js"),
|
|
55
|
+
import("../../kernel/packs/collect.js"),
|
|
56
|
+
]);
|
|
57
|
+
const { modules } = await collect.loadEffectiveModules(
|
|
58
|
+
registry.capabilities,
|
|
59
|
+
runtime.cwd,
|
|
60
|
+
);
|
|
61
|
+
return catalog.buildCapabilitiesData(modules);
|
|
62
|
+
},
|
|
45
63
|
};
|
|
46
64
|
|
|
47
65
|
/** The `capabilities` verb, widened for registry composition. */
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
* orientation from the SAME source and the two can never diverge.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { VERSION } from "../../constants.js";
|
|
18
|
-
import {
|
|
19
|
-
import
|
|
17
|
+
import { BIN_NAME, PROGRAM_DESCRIPTION, VERSION } from "../../constants.js";
|
|
18
|
+
import type { CapabilityModule } from "../../kernel/spec/index.js";
|
|
19
|
+
import { emitSurface } from "../../kernel/spec/index.js";
|
|
20
20
|
import { TOOL_HINTS } from "./hints.js";
|
|
21
21
|
import type {
|
|
22
22
|
CapabilitiesData,
|
|
@@ -26,18 +26,26 @@ import type {
|
|
|
26
26
|
} from "./types.js";
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
|
-
* The four orientation conventions
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
29
|
+
* The four orientation conventions, and the single source both the
|
|
30
|
+
* `capabilities` tool and the MCP handshake read, so the two cannot contradict
|
|
31
|
+
* each other. `system` projects the distribution's identity rather than naming
|
|
32
|
+
* a domain — the live tool catalog the same handshake carries already says
|
|
33
|
+
* which nouns exist. `querying` is verbatim from the old shell (the SPARQL
|
|
34
|
+
* model is still accurate for v2); `model` stopped claiming reads are
|
|
35
|
+
* tier/channel-SCOPED when the hand-written filtering was removed (L-OPEN-9)
|
|
36
|
+
* — the hierarchy is graph data now, not a query gate; `mutations` is new in
|
|
37
|
+
* v2, surfacing the plan-first/confirm gate.
|
|
33
38
|
*/
|
|
34
39
|
export const CONVENTIONS = {
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
// `help` is authored as a bare phrase (`--help` renders it as one), so the
|
|
41
|
+
// self-description trails in parentheses rather than after a period this
|
|
42
|
+
// string would have to add — a fork writing "Explore the recipe graph."
|
|
43
|
+
// otherwise reads "recipe graph.. A CLI and MCP server…".
|
|
44
|
+
system: `${BIN_NAME} — ${PROGRAM_DESCRIPTION} (a CLI and MCP server over a knowledge graph).`,
|
|
37
45
|
model:
|
|
38
|
-
"
|
|
46
|
+
"The graph models a tier hierarchy (e.g. global > apps > apps/lxd) and release channels (normal, experimental, prerelease) as DATA on each entity. Reads are unscoped — every list shows everything; filter by inspecting an entity's tier/release fields or with graph_query.",
|
|
39
47
|
querying:
|
|
40
|
-
"All queries run against an RDF triple store. Prefixed IRIs (e.g.
|
|
48
|
+
"All queries run against an RDF triple store. Prefixed IRIs (e.g. prefix:name) identify entities. Use ontology_list to discover the active namespaces.",
|
|
41
49
|
mutations:
|
|
42
50
|
"Mutating tools are plan-first: call once WITHOUT confirm to get a plan (meta.planOnly, no writes), then repeat the call with confirm: true to execute.",
|
|
43
51
|
} as const;
|
|
@@ -83,7 +91,7 @@ export function buildDiscoverySequence(
|
|
|
83
91
|
stage: 2,
|
|
84
92
|
tool: "sources_status",
|
|
85
93
|
purpose:
|
|
86
|
-
"
|
|
94
|
+
"See which pack is answering. A fresh install answers reads from the snapshot shipped with the CLI and needs no build; only an `unavailable` status requires sources_update (confirm: true), which is a project that declared its own packs and has not built them.",
|
|
87
95
|
},
|
|
88
96
|
{
|
|
89
97
|
stage: 3,
|
|
@@ -8,10 +8,11 @@
|
|
|
8
8
|
*
|
|
9
9
|
* `use_when` strings for the surviving tools are ported verbatim from the old
|
|
10
10
|
* shell's `domains/llm/data/toolCatalog.ts`; the net-new v2 tools (config_set,
|
|
11
|
-
* graph_query, setup, upgrade, doctor, capabilities, prompt_*,
|
|
12
|
-
*
|
|
11
|
+
* graph_query, setup, upgrade, doctor, capabilities, prompt_*, sources_*,
|
|
12
|
+
* tier_lookup, create_*) are authored here.
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
+
import { BIN_NAME } from "../../constants.js";
|
|
15
16
|
import type { ToolHint } from "./types.js";
|
|
16
17
|
|
|
17
18
|
/**
|
|
@@ -36,14 +37,14 @@ export const TOOL_HINTS: Record<string, ToolHint> = {
|
|
|
36
37
|
},
|
|
37
38
|
info: {
|
|
38
39
|
category: "diagnostic",
|
|
39
|
-
use_when:
|
|
40
|
+
use_when: `Checking ${BIN_NAME} version, configuration summary, and store state`,
|
|
40
41
|
},
|
|
41
42
|
|
|
42
43
|
// — Read ——————————————————————————————————————————————————————————————————
|
|
43
44
|
block_list: {
|
|
44
45
|
category: "read",
|
|
45
46
|
use_when:
|
|
46
|
-
"Browsing
|
|
47
|
+
"Browsing all components, patterns, layouts, and subcomponents in the store",
|
|
47
48
|
},
|
|
48
49
|
block_lookup: {
|
|
49
50
|
category: "read",
|
|
@@ -58,11 +59,17 @@ export const TOOL_HINTS: Record<string, ToolHint> = {
|
|
|
58
59
|
colophon: {
|
|
59
60
|
category: "read",
|
|
60
61
|
use_when:
|
|
61
|
-
"Understanding how
|
|
62
|
+
"Understanding how the active domain is built — its declared colophon, for onboarding or a demo",
|
|
63
|
+
},
|
|
64
|
+
config_get: {
|
|
65
|
+
category: "read",
|
|
66
|
+
use_when:
|
|
67
|
+
"Reading ONE config field's effective value and the layer it came from — the single-value form of config_show",
|
|
62
68
|
},
|
|
63
69
|
config_show: {
|
|
64
70
|
category: "read",
|
|
65
|
-
use_when:
|
|
71
|
+
use_when:
|
|
72
|
+
"Checking the active configuration (tier, channel, detail) and which layer set each field",
|
|
66
73
|
},
|
|
67
74
|
graph_inspect: {
|
|
68
75
|
category: "read",
|
|
@@ -98,15 +105,9 @@ export const TOOL_HINTS: Record<string, ToolHint> = {
|
|
|
98
105
|
use_when:
|
|
99
106
|
"Exploring the full schema of a namespace by name — classes, properties, and hierarchy",
|
|
100
107
|
},
|
|
101
|
-
ontology_show: {
|
|
102
|
-
category: "read",
|
|
103
|
-
use_when:
|
|
104
|
-
"Deprecated alias of ontology_lookup — exploring a namespace's schema (prefer ontology_lookup)",
|
|
105
|
-
},
|
|
106
108
|
prompt_list: {
|
|
107
109
|
category: "read",
|
|
108
|
-
use_when:
|
|
109
|
-
"Browsing the workflow prompt templates the design-system graph offers",
|
|
110
|
+
use_when: "Browsing the workflow prompt templates the active graph offers",
|
|
110
111
|
},
|
|
111
112
|
prompt_lookup: {
|
|
112
113
|
category: "read",
|
|
@@ -115,7 +116,7 @@ export const TOOL_HINTS: Record<string, ToolHint> = {
|
|
|
115
116
|
},
|
|
116
117
|
skill_list: {
|
|
117
118
|
category: "read",
|
|
118
|
-
use_when: "Discovering agent skills provided by installed
|
|
119
|
+
use_when: "Discovering agent skills provided by installed packs",
|
|
119
120
|
},
|
|
120
121
|
skill_lookup: {
|
|
121
122
|
category: "read",
|
|
@@ -141,6 +142,25 @@ export const TOOL_HINTS: Record<string, ToolHint> = {
|
|
|
141
142
|
category: "read",
|
|
142
143
|
use_when: "Discovering which standard categories exist before filtering",
|
|
143
144
|
},
|
|
145
|
+
concept_list: {
|
|
146
|
+
category: "read",
|
|
147
|
+
use_when:
|
|
148
|
+
"Browsing long-form design-system concepts (foundations, how-to guides, decision guides)",
|
|
149
|
+
},
|
|
150
|
+
concept_lookup: {
|
|
151
|
+
category: "read",
|
|
152
|
+
use_when: "Reading a concept's full Markdown documentation by name or IRI",
|
|
153
|
+
},
|
|
154
|
+
implementation_list: {
|
|
155
|
+
category: "read",
|
|
156
|
+
use_when:
|
|
157
|
+
"Finding which library implements a block, on which platform, and where its source lives",
|
|
158
|
+
},
|
|
159
|
+
implementation_libraries: {
|
|
160
|
+
category: "read",
|
|
161
|
+
use_when:
|
|
162
|
+
"Discovering which implementation libraries exist, and how much of the design system each covers",
|
|
163
|
+
},
|
|
144
164
|
standard_sample: {
|
|
145
165
|
category: "read",
|
|
146
166
|
use_when:
|
|
@@ -176,10 +196,14 @@ export const TOOL_HINTS: Record<string, ToolHint> = {
|
|
|
176
196
|
use_when:
|
|
177
197
|
"Setting any config field by name — tier, channel, or detail (e.g. `config set tier apps/lxd`)",
|
|
178
198
|
},
|
|
179
|
-
|
|
199
|
+
config_unset: {
|
|
180
200
|
category: "write",
|
|
181
201
|
use_when:
|
|
182
|
-
|
|
202
|
+
'Clearing a config field so the built-in default applies again — no value means "remove", this tool does',
|
|
203
|
+
},
|
|
204
|
+
create_component: {
|
|
205
|
+
category: "write",
|
|
206
|
+
use_when: "Scaffolding a new component (React, Svelte, or Lit)",
|
|
183
207
|
},
|
|
184
208
|
create_package: {
|
|
185
209
|
category: "write",
|
|
@@ -193,20 +217,15 @@ export const TOOL_HINTS: Record<string, ToolHint> = {
|
|
|
193
217
|
},
|
|
194
218
|
setup: {
|
|
195
219
|
category: "write",
|
|
196
|
-
use_when:
|
|
197
|
-
"Installing pragma's shell completions, MCP config, skills, and LSP into the environment",
|
|
220
|
+
use_when: `Installing ${BIN_NAME}'s shell completions, MCP config, skills, and LSP into the environment`,
|
|
198
221
|
},
|
|
199
222
|
sources_update: {
|
|
200
223
|
category: "write",
|
|
201
224
|
use_when:
|
|
202
|
-
"Building or refreshing the knowledge-graph pack from the configured
|
|
203
|
-
},
|
|
204
|
-
"token_add-config": {
|
|
205
|
-
category: "write",
|
|
206
|
-
use_when: "Generating a tokens.config.mjs for the terrazzo token pipeline",
|
|
225
|
+
"Building or refreshing the knowledge-graph pack from the configured packs",
|
|
207
226
|
},
|
|
208
227
|
upgrade: {
|
|
209
228
|
category: "write",
|
|
210
|
-
use_when:
|
|
229
|
+
use_when: `Upgrading the ${BIN_NAME} CLI itself to the latest release`,
|
|
211
230
|
},
|
|
212
231
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* that replaces the retired `llm` tool.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { CapabilityModule } from "../../kernel/spec/
|
|
6
|
+
import type { CapabilityModule } from "../../kernel/spec/index.js";
|
|
7
7
|
import { capabilitiesSelfVerb } from "./capabilities.verb.js";
|
|
8
8
|
|
|
9
9
|
/** The `capabilities` capability module (a single storeless self-verb). */
|