@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
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* envelope, exit codes, budgets, ...). Hidden verbs are excluded.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import { BIN_NAME, PROJECT_CONFIG_FILENAME } from "../../constants.js";
|
|
11
12
|
import type { CapabilityModule, ParamSpec, VerbSpec } from "./types.js";
|
|
12
13
|
|
|
13
14
|
/** kebab-case a camelCase param name for its flag form (`allTiers` -> `all-tiers`). */
|
|
@@ -74,18 +75,26 @@ export interface EmittedSurface {
|
|
|
74
75
|
*/
|
|
75
76
|
export const FIXED_SURFACE = {
|
|
76
77
|
bins: {
|
|
77
|
-
|
|
78
|
+
[BIN_NAME]: `${BIN_NAME} CLI and MCP server host (stdio)`,
|
|
78
79
|
},
|
|
79
80
|
globalFlags: [
|
|
80
81
|
{
|
|
81
82
|
flag: "--format <plain|llm|json>",
|
|
82
83
|
doc: "Select output format (llm = condensed Markdown for agents)",
|
|
83
84
|
},
|
|
84
|
-
{ flag: "--verbose", doc: "Diagnostic output on stderr" },
|
|
85
|
+
{ flag: "--verbose", doc: "Diagnostic output on stderr (sources update)" },
|
|
85
86
|
{
|
|
86
87
|
flag: "--detail <level>",
|
|
87
88
|
doc: "Progressive-disclosure level (summary, standard, detailed)",
|
|
88
89
|
},
|
|
90
|
+
{
|
|
91
|
+
flag: "--no-headers",
|
|
92
|
+
doc: "Hide the table header row in plain output",
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
flag: "--quiet",
|
|
96
|
+
doc: "Suppress success and progress output (errors still print)",
|
|
97
|
+
},
|
|
89
98
|
],
|
|
90
99
|
detailLevels: ["summary", "standard", "detailed"],
|
|
91
100
|
envelope: {
|
|
@@ -122,14 +131,17 @@ export const FIXED_SURFACE = {
|
|
|
122
131
|
paramSource: "ParamSpec.complete",
|
|
123
132
|
},
|
|
124
133
|
configFiles: {
|
|
125
|
-
project:
|
|
126
|
-
global:
|
|
127
|
-
|
|
134
|
+
project: `${PROJECT_CONFIG_FILENAME} (evaluated, content-hash cached)`,
|
|
135
|
+
global: `$XDG_CONFIG_HOME/${BIN_NAME}/config.json`,
|
|
136
|
+
// Named `configCache` because that is what it is: the evaluated project
|
|
137
|
+
// config's content-addressed cache. It was called `lock` for a project lock
|
|
138
|
+
// file that no longer exists.
|
|
139
|
+
configCache: `$XDG_STATE_HOME/${BIN_NAME}/config-cache/<sha256>.json`,
|
|
128
140
|
defaults: "built-in defaults.ts",
|
|
129
141
|
},
|
|
130
142
|
budgets: {
|
|
131
143
|
$comment:
|
|
132
|
-
"help/complete are
|
|
144
|
+
"help/complete/warmStoreVerb are designed aspirations; the ENFORCED ceilings (budgets.test.ts) are 130ms help / 100ms complete / 500ms warmStoreVerb, each derived from measurement on the build hardware and recorded in BUDGETS.md. Designed-aspiration vs enforced-measured. warmStoreVerb joined this list when the embedded pack became the distribution's real graph rather than a sample, which puts the reference box's projected p95 over the designed 300ms; BUDGETS.md carries the arithmetic.",
|
|
133
145
|
help: "<50ms",
|
|
134
146
|
complete: "<50ms",
|
|
135
147
|
projectConfigLoad: "<10ms",
|
|
@@ -147,8 +159,30 @@ function positionalToken(param: ParamSpec): string {
|
|
|
147
159
|
: `[${param.name}${variadic}]`;
|
|
148
160
|
}
|
|
149
161
|
|
|
150
|
-
/**
|
|
151
|
-
|
|
162
|
+
/**
|
|
163
|
+
* Project one verb into its surface entry, omitting default/falsy fields.
|
|
164
|
+
*
|
|
165
|
+
* `flagTokens` is a MOUNTED verb's registered spelling per param name — the
|
|
166
|
+
* same `ReferenceCliSyntax.flagTokens` seam the reference emitter consumes,
|
|
167
|
+
* supplied by the module's `cliProjection` and derived there from
|
|
168
|
+
* `buildOptionInfo` (the single flag-shape authority both binaries register
|
|
169
|
+
* from; a default-`true` confirm registers ONLY its `--no-<kebab>` form).
|
|
170
|
+
* Without it the token derives from the param name — the kernel convention,
|
|
171
|
+
* sound for kernel-registered verbs where B9 ADDS the `--no-` negation
|
|
172
|
+
* beside the positive form; false for a mounted noun, where kebab-casing
|
|
173
|
+
* wrote seven covenant tokens the CLI rejects (`--with-styles`, `--ssr`, …).
|
|
174
|
+
*
|
|
175
|
+
* `positionalTokens` is the same seam's registered POSITIONAL spelling per
|
|
176
|
+
* param name (`componentPath` → `[component-path]` — the token the usage
|
|
177
|
+
* line and the Args tables print), preferred for `args` exactly as
|
|
178
|
+
* `flagTokens` is for `flags`; a param absent there keeps the kernel
|
|
179
|
+
* `<name>`/`[name]` derivation.
|
|
180
|
+
*/
|
|
181
|
+
export function emitVerb(
|
|
182
|
+
verb: VerbSpec,
|
|
183
|
+
flagTokens?: Readonly<Record<string, string>>,
|
|
184
|
+
positionalTokens?: Readonly<Record<string, string>>,
|
|
185
|
+
): EmittedVerb {
|
|
152
186
|
const positionals = verb.params.filter((p) => p.positional);
|
|
153
187
|
const flags = verb.params.filter((p) => !p.positional);
|
|
154
188
|
|
|
@@ -161,9 +195,14 @@ export function emitVerb(verb: VerbSpec): EmittedVerb {
|
|
|
161
195
|
mcp?: string | false;
|
|
162
196
|
} = { v: verbLabel(verb.path) };
|
|
163
197
|
|
|
164
|
-
if (positionals.length > 0)
|
|
198
|
+
if (positionals.length > 0)
|
|
199
|
+
entry.args = positionals.map(
|
|
200
|
+
(p) => positionalTokens?.[p.name] ?? positionalToken(p),
|
|
201
|
+
);
|
|
165
202
|
if (flags.length > 0)
|
|
166
|
-
entry.flags = flags.map(
|
|
203
|
+
entry.flags = flags.map(
|
|
204
|
+
(p) => flagTokens?.[p.name] ?? `--${kebabCase(p.name)}`,
|
|
205
|
+
);
|
|
167
206
|
if (verb.capability.mutates) entry.mutates = true;
|
|
168
207
|
if (verb.capability.needsStore) entry.needsStore = true;
|
|
169
208
|
entry.mcp = verb.capability.mcp.expose ? toolName(verb.path) : false;
|
|
@@ -191,7 +230,14 @@ export function emitSurface(
|
|
|
191
230
|
const noun = verb.path[0];
|
|
192
231
|
const bucket = nouns[noun] ?? { verbs: [] };
|
|
193
232
|
nouns[noun] = bucket;
|
|
194
|
-
|
|
233
|
+
// A mounted verb's covenant flags AND args are its REGISTERED
|
|
234
|
+
// spellings, from the module's own syntax seam (see emitVerb) — the
|
|
235
|
+
// covenant must name tokens the CLI parses (`--no-with-styles`,
|
|
236
|
+
// `[component-path]`), not camelCase param names its help never prints.
|
|
237
|
+
const syntax = module.cliProjection?.referenceSyntax?.(verb.path);
|
|
238
|
+
bucket.verbs.push(
|
|
239
|
+
emitVerb(verb, syntax?.flagTokens, syntax?.positionalTokens),
|
|
240
|
+
);
|
|
195
241
|
if (verb.capability.mcp.expose) tools.push(toolName(verb.path));
|
|
196
242
|
}
|
|
197
243
|
// Non-tool MCP surfaces (module hooks, NOT verbs): the resource template ids
|
|
@@ -84,11 +84,13 @@ describe("surface conformance (PROTECTED)", () => {
|
|
|
84
84
|
);
|
|
85
85
|
});
|
|
86
86
|
|
|
87
|
-
it("freezes exactly
|
|
88
|
-
expect(golden.mcpSurface.tools).toHaveLength(
|
|
87
|
+
it("freezes exactly 42 designed MCP tools including info, the config family, colophon", () => {
|
|
88
|
+
expect(golden.mcpSurface.tools).toHaveLength(42);
|
|
89
89
|
expect(golden.mcpSurface.tools).toContain("info");
|
|
90
90
|
expect(golden.mcpSurface.tools).toContain("config_show");
|
|
91
|
+
expect(golden.mcpSurface.tools).toContain("config_get");
|
|
91
92
|
expect(golden.mcpSurface.tools).toContain("config_set");
|
|
93
|
+
expect(golden.mcpSurface.tools).toContain("config_unset");
|
|
92
94
|
expect(golden.mcpSurface.tools).toContain("colophon");
|
|
93
95
|
});
|
|
94
96
|
});
|
|
@@ -36,6 +36,14 @@ export interface Covenant {
|
|
|
36
36
|
readonly resources?: readonly string[];
|
|
37
37
|
readonly prompts?: boolean;
|
|
38
38
|
readonly instructions?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* The wire-identity RULE (L-PR6 covenant extension): `serverInfo` projects
|
|
41
|
+
* from the distribution, stated as placeholders rather than live values so
|
|
42
|
+
* the covenant does not churn per release. Documentation for conformance —
|
|
43
|
+
* `assertConforms` does not deep-check it; `surface.test.ts` pins the rule
|
|
44
|
+
* text and the live handshake, `identity.test.ts` pins it from a fork.
|
|
45
|
+
*/
|
|
46
|
+
readonly serverInfo?: { readonly name: string; readonly version: string };
|
|
39
47
|
};
|
|
40
48
|
readonly [section: string]: unknown;
|
|
41
49
|
}
|
package/src/kernel/spec/types.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* other param is a kebab-cased flag.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
import type { Task } from "@canonical/task";
|
|
14
|
+
import type { Effect, Task } from "@canonical/task";
|
|
15
15
|
import type { PragmaRuntime } from "../runtime/types.js";
|
|
16
16
|
|
|
17
17
|
/** MCP tool annotations mirrored onto exposed verbs. */
|
|
@@ -42,19 +42,28 @@ export type Capability = {
|
|
|
42
42
|
* `__complete` never boots the graph, so every source is disk-readable: the
|
|
43
43
|
* precomputed pack index, the filesystem, or the prefix table.
|
|
44
44
|
*/
|
|
45
|
-
export type CompletionFrom =
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
45
|
+
export type CompletionFrom = "index" | "skills" | "prefixes";
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Which of an index entity's name-bearing fields a param completes against.
|
|
49
|
+
* The kernel knows no entity families — a family is a `type` filter plus the
|
|
50
|
+
* field that family is addressed by, both declared at the verb.
|
|
51
|
+
*/
|
|
52
|
+
export type CompletionField = "name" | "label" | "altNames";
|
|
53
|
+
|
|
54
|
+
/** A reference to one name source: where from, and which field of it. */
|
|
53
55
|
export interface CompletionSourceRef {
|
|
54
56
|
/** Which storeless source to read candidate names from. */
|
|
55
57
|
readonly from: CompletionFrom;
|
|
56
58
|
/** Prefixed type filter — meaningful only for `from: "index"` (empty = any). */
|
|
57
59
|
readonly type?: string;
|
|
60
|
+
/**
|
|
61
|
+
* Which field the candidates come from — `from: "index"` only, default
|
|
62
|
+
* `"name"`. Declare the field the verb's lookup MATCHES on: `label` and
|
|
63
|
+
* `altNames` are optional index enrichment, and an entity carrying neither
|
|
64
|
+
* contributes no candidate rather than a token the lookup would refuse.
|
|
65
|
+
*/
|
|
66
|
+
readonly field?: CompletionField;
|
|
58
67
|
}
|
|
59
68
|
|
|
60
69
|
/** How a partial word is matched against candidate names. */
|
|
@@ -102,6 +111,14 @@ export type ParamSpec =
|
|
|
102
111
|
default?: unknown;
|
|
103
112
|
positional?: boolean;
|
|
104
113
|
complete?: ParamComplete;
|
|
114
|
+
/**
|
|
115
|
+
* A repeatable flag ACCUMULATES: `--category css --category git` is
|
|
116
|
+
* the union, never last-wins (repetition is the sanctioned multi-value
|
|
117
|
+
* form, and silently dropping all but the last value is data loss).
|
|
118
|
+
* CLI-side only: the MCP arg schema keeps its scalar shape, and the
|
|
119
|
+
* run body accepts one value or many.
|
|
120
|
+
*/
|
|
121
|
+
repeatable?: true;
|
|
105
122
|
}
|
|
106
123
|
| {
|
|
107
124
|
kind: "enum";
|
|
@@ -112,6 +129,8 @@ export type ParamSpec =
|
|
|
112
129
|
default?: string;
|
|
113
130
|
positional?: boolean;
|
|
114
131
|
complete?: ParamComplete;
|
|
132
|
+
/** See the string variant — repeated occurrences accumulate. */
|
|
133
|
+
repeatable?: true;
|
|
115
134
|
}
|
|
116
135
|
| {
|
|
117
136
|
kind: "string[]";
|
|
@@ -122,11 +141,28 @@ export type ParamSpec =
|
|
|
122
141
|
complete?: ParamComplete;
|
|
123
142
|
};
|
|
124
143
|
|
|
125
|
-
/**
|
|
144
|
+
/**
|
|
145
|
+
* The three output modes every verb must render.
|
|
146
|
+
*
|
|
147
|
+
* `plain` takes an optional {@link RenderContext} — the dispatcher's
|
|
148
|
+
* presentation facts (`--no-headers`, whether stdout is a terminal). Only
|
|
149
|
+
* list-shaped formatters read it; `llm` (the byte-frozen agent contract) and
|
|
150
|
+
* `json` (the envelope) never see it.
|
|
151
|
+
*
|
|
152
|
+
* `emptyNotice` is the empty-state seam: when the data amounts to zero
|
|
153
|
+
* records, return the calm notice — the dispatcher routes it to STDERR with
|
|
154
|
+
* exit 0, keeping the stdout data stream free of human sentences a pipe
|
|
155
|
+
* would read as records. Return `undefined` (or omit the member) for data
|
|
156
|
+
* that has content; only the plain mode routes it.
|
|
157
|
+
*/
|
|
126
158
|
export interface Formatters<T> {
|
|
127
|
-
readonly plain: (
|
|
159
|
+
readonly plain: (
|
|
160
|
+
d: T,
|
|
161
|
+
context?: import("../render/contracts.js").RenderContext,
|
|
162
|
+
) => string;
|
|
128
163
|
readonly llm: (d: T) => string;
|
|
129
164
|
readonly json: (d: T) => string;
|
|
165
|
+
readonly emptyNotice?: (d: T) => string | undefined;
|
|
130
166
|
}
|
|
131
167
|
|
|
132
168
|
/** A usage example shown in verb help. */
|
|
@@ -153,7 +189,8 @@ export interface ErrorSpec {
|
|
|
153
189
|
* `run` is the effect seam — a read returns `Promise<R>`; a mutation returns a
|
|
154
190
|
* `Task<R>` the dispatcher interprets under the node / dry-run interpreters. A
|
|
155
191
|
* mutation that needs async setup before its effects are known (e.g.
|
|
156
|
-
* `sources update` resolves and builds before
|
|
192
|
+
* `sources update` resolves and builds before pointing the project at the pack)
|
|
193
|
+
* actually returns a
|
|
157
194
|
* `Promise<Task<R>>`, which the dispatcher and MCP handler both `await` into a
|
|
158
195
|
* `Task<R>` before interpreting. That third shape is presented through the
|
|
159
196
|
* `Task<R>` arm by a cast at the one call site (`update.verb.ts`): adding a
|
|
@@ -166,7 +203,38 @@ export interface VerbSpec<P = Record<string, unknown>, R = unknown> {
|
|
|
166
203
|
readonly summary: string;
|
|
167
204
|
readonly doc?: string;
|
|
168
205
|
readonly params: readonly ParamSpec[];
|
|
169
|
-
readonly output: {
|
|
206
|
+
readonly output: {
|
|
207
|
+
schema?: unknown;
|
|
208
|
+
formatters: Formatters<R>;
|
|
209
|
+
/**
|
|
210
|
+
* OPTIONAL dry-run seam. A `--dry-run` normally renders the raw effect
|
|
211
|
+
* dump — one `describeEffect` bullet per effect, absolute paths repeated
|
|
212
|
+
* per line, interpreter internals included — which is debug material, not a
|
|
213
|
+
* preview a user was meant to read. A verb that has stashed structured plan
|
|
214
|
+
* data on the runtime (`PragmaRuntime.planData`) can render that instead.
|
|
215
|
+
*
|
|
216
|
+
* ABSENT BY DEFAULT, and absent is exactly today's render: a verb that does
|
|
217
|
+
* not declare this is untouched. The honest preview still runs underneath
|
|
218
|
+
* either way, so a dry run still fails exactly when the run would.
|
|
219
|
+
*
|
|
220
|
+
* The previewed `effects` and the run's verbosity arrive BESIDE the stashed
|
|
221
|
+
* data, because a plan is not always known before the Task runs: `setup`
|
|
222
|
+
* computes its target table up front and renders that, while `create` has
|
|
223
|
+
* nothing to stash — its plan IS the effects the generator produced, which
|
|
224
|
+
* only exist once the preview interpreter has walked the Task. One seam
|
|
225
|
+
* serves both by handing the renderer everything the branch knows.
|
|
226
|
+
*
|
|
227
|
+
* MAY be async: a renderer whose formatting rules live in another package
|
|
228
|
+
* loads them behind a dynamic `import()` rather than putting them on the
|
|
229
|
+
* capabilities barrel's static graph, which every `--help` and
|
|
230
|
+
* `__complete` spawn pays for. The kernel awaits whatever it returns.
|
|
231
|
+
*/
|
|
232
|
+
formatPlan?: (
|
|
233
|
+
planData: unknown,
|
|
234
|
+
effects: readonly Effect[],
|
|
235
|
+
verbose: boolean,
|
|
236
|
+
) => string | Promise<string>;
|
|
237
|
+
};
|
|
170
238
|
readonly examples?: readonly Example[];
|
|
171
239
|
readonly disclosure?: DisclosureSpec;
|
|
172
240
|
readonly capability: Capability;
|
|
@@ -175,6 +243,52 @@ export interface VerbSpec<P = Record<string, unknown>, R = unknown> {
|
|
|
175
243
|
readonly hidden?: boolean;
|
|
176
244
|
}
|
|
177
245
|
|
|
246
|
+
/**
|
|
247
|
+
* One slice of the index a module contributes to the MCP resource listing.
|
|
248
|
+
*
|
|
249
|
+
* Deliberately the vocabulary of {@link CompletionSourceRef} — a listing and a
|
|
250
|
+
* completion address the same index by the same three facts (which type, which
|
|
251
|
+
* box, what to yield), and a second vocabulary for that would be a second
|
|
252
|
+
* writing of one decision. The only source a listing can read is the index, so
|
|
253
|
+
* `from` is implied and absent.
|
|
254
|
+
*/
|
|
255
|
+
export interface McpListableRef {
|
|
256
|
+
/** Prefixed type filter (e.g. `ds:Component`) — empty = any type. */
|
|
257
|
+
readonly type?: string;
|
|
258
|
+
/** Restrict to schema (`tbox`) or individuals (`abox`); empty = both. */
|
|
259
|
+
readonly box?: "tbox" | "abox";
|
|
260
|
+
/**
|
|
261
|
+
* What the slice yields: `"collection"` lists ONE entry — the class entry
|
|
262
|
+
* for {@link type}, carrying its instance count — while `"entities"` lists
|
|
263
|
+
* every matching entity. Default `"entities"`.
|
|
264
|
+
*/
|
|
265
|
+
readonly as?: "collection" | "entities";
|
|
266
|
+
/**
|
|
267
|
+
* Relative importance, 0–1 (default 1). Feeds MCP `annotations.priority` on
|
|
268
|
+
* the listed resource AND breaks ties in URI-completion ranking, so the two
|
|
269
|
+
* judgements about what matters most are ONE declaration rather than two
|
|
270
|
+
* constants in the kernel.
|
|
271
|
+
*/
|
|
272
|
+
readonly weight?: number;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* A module's declared contribution to the MCP resource listing.
|
|
277
|
+
*
|
|
278
|
+
* The listing is the UNION of every module's slices. It exists because
|
|
279
|
+
* `resources/list` has no working pagination in the SDK (the high-level
|
|
280
|
+
* `McpServer` list handler ignores `request.params.cursor` and never returns
|
|
281
|
+
* `nextCursor`), so the listing is curated rather than paged: every byte it
|
|
282
|
+
* spends on connect is context the agent cannot spend on the task.
|
|
283
|
+
*
|
|
284
|
+
* DERIVED wherever the module is compiled from a read story — a story already
|
|
285
|
+
* declares the type set it addresses (`PackLookup.type`/`types`), so its
|
|
286
|
+
* listing is read off that declaration, never authored a second time.
|
|
287
|
+
*/
|
|
288
|
+
export interface McpListable {
|
|
289
|
+
readonly sources: readonly McpListableRef[];
|
|
290
|
+
}
|
|
291
|
+
|
|
178
292
|
/**
|
|
179
293
|
* An MCP resource provider — the ONE non-tool projection a module may add.
|
|
180
294
|
*
|
|
@@ -182,11 +296,16 @@ export interface VerbSpec<P = Record<string, unknown>, R = unknown> {
|
|
|
182
296
|
* autocomplete are storeless over the pack index; a read is store-backed and
|
|
183
297
|
* shares the CLI's entity reader). Resources are NOT tools, so they never enter
|
|
184
298
|
* the emitted tool surface; the projector calls this per module that declares it.
|
|
299
|
+
*
|
|
300
|
+
* `register` receives the WHOLE effective module set, not just its own module:
|
|
301
|
+
* the listing a provider installs is the union of every module's
|
|
302
|
+
* {@link McpListable}, which no single module can see.
|
|
185
303
|
*/
|
|
186
304
|
export interface McpResourceProvider {
|
|
187
305
|
readonly register: (
|
|
188
306
|
server: import("@modelcontextprotocol/sdk/server/mcp.js").McpServer,
|
|
189
307
|
rt: PragmaRuntime,
|
|
308
|
+
modules: readonly CapabilityModule[],
|
|
190
309
|
) => void;
|
|
191
310
|
/**
|
|
192
311
|
* A static declaration of the resource template ids this provider installs
|
|
@@ -214,6 +333,132 @@ export interface McpPromptProvider {
|
|
|
214
333
|
) => Promise<void> | void;
|
|
215
334
|
}
|
|
216
335
|
|
|
336
|
+
/** A flag a mounted subcommand offers to completion (full `--token`). */
|
|
337
|
+
export interface CompletionChildFlag {
|
|
338
|
+
/** The full flag token (`--no-with-styles`). */
|
|
339
|
+
readonly flag: string;
|
|
340
|
+
/** Whether the flag consumes a value. */
|
|
341
|
+
readonly takesValue: boolean;
|
|
342
|
+
/** Closed value set for the flag's value, when one exists. */
|
|
343
|
+
readonly values?: readonly string[];
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/** A positional slot a mounted subcommand offers to completion. */
|
|
347
|
+
export interface CompletionChildPositional {
|
|
348
|
+
/** The slot name (diagnostics only). */
|
|
349
|
+
readonly name: string;
|
|
350
|
+
/** Whether the positional is required. */
|
|
351
|
+
readonly required: boolean;
|
|
352
|
+
/** Closed value set (e.g. tree segments), when one exists. */
|
|
353
|
+
readonly values?: readonly string[];
|
|
354
|
+
/** True when the slot completes file paths natively. */
|
|
355
|
+
readonly files?: boolean;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* The completion surface of one MOUNTED command node: its flags, its
|
|
360
|
+
* positional slots, and any deeper segment children — static data (it must
|
|
361
|
+
* pass the completion safety allowlist), never live module state.
|
|
362
|
+
*/
|
|
363
|
+
export interface CompletionChildSpec {
|
|
364
|
+
/** The command token at this node. */
|
|
365
|
+
readonly label: string;
|
|
366
|
+
/** Flags offered at this node. */
|
|
367
|
+
readonly flags: readonly CompletionChildFlag[];
|
|
368
|
+
/** Positional slots at this node, in order. */
|
|
369
|
+
readonly positionals: readonly CompletionChildPositional[];
|
|
370
|
+
/** Deeper segment children (each with its own flags/positionals/children). */
|
|
371
|
+
readonly children?: readonly CompletionChildSpec[];
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* The REGISTERED CLI spelling of one mounted verb — the single syntax seam
|
|
376
|
+
* every kernel emitter and gate consumes: the reference emitter (usage line
|
|
377
|
+
* + Args/Flags tables), `emitSurface` (the covenant's mounted-noun flag and
|
|
378
|
+
* positional tokens, L-CIS-2), and the `docExamples` gate's valid-token
|
|
379
|
+
* vocabulary. A mounted tree may register a different surface than the
|
|
380
|
+
* binding-level params suggest (tree segments as subcommands, a
|
|
381
|
+
* default-true boolean registered only as its `--no-` form), and all three
|
|
382
|
+
* surfaces must print what the CLI actually accepts — the module supplies
|
|
383
|
+
* it, the kernel renders it.
|
|
384
|
+
*/
|
|
385
|
+
export interface ReferenceCliSyntax {
|
|
386
|
+
/**
|
|
387
|
+
* The usage line after the bin name (e.g.
|
|
388
|
+
* `create application react [app-path] [options]`) — real tree segments,
|
|
389
|
+
* the registered positional token.
|
|
390
|
+
*/
|
|
391
|
+
readonly usage: string;
|
|
392
|
+
/**
|
|
393
|
+
* The registered flag token per binding-level param name (e.g.
|
|
394
|
+
* `withStyles` → `--no-with-styles`). A param absent here renders with the
|
|
395
|
+
* default `--<kebab-name>` derivation.
|
|
396
|
+
*/
|
|
397
|
+
readonly flagTokens: Readonly<Record<string, string>>;
|
|
398
|
+
/**
|
|
399
|
+
* The registered positional token per binding-level param name (e.g.
|
|
400
|
+
* `componentPath` → `[component-path]`) — the SAME token the usage line
|
|
401
|
+
* carries, so the Arguments table never contradicts its own synopsis. A
|
|
402
|
+
* param absent here renders with the default `<name>`/`[name]` derivation.
|
|
403
|
+
*/
|
|
404
|
+
readonly positionalTokens?: Readonly<Record<string, string>>;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/** What the program hands a module mounting its own subtree. */
|
|
408
|
+
export interface CliMountHost {
|
|
409
|
+
/** Global flags for this invocation (closed over by mounted actions). */
|
|
410
|
+
readonly globalFlags: import("../runtime/types.js").GlobalFlags;
|
|
411
|
+
/** The binary name (for messages the mounted tree prints). */
|
|
412
|
+
readonly programName: string;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* A module-level CLI projection hook (precedented by `mcpResources`/
|
|
417
|
+
* `mcpPrompts`/`colophon` — module metadata, NOT a `VerbSpec` field, zero
|
|
418
|
+
* covenant impact): the module MOUNTS its noun's subtree onto the Commander
|
|
419
|
+
* parent itself, instead of the generic per-verb attachment. The module's
|
|
420
|
+
* verbs remain the binding-level grammar (surface, MCP, reference,
|
|
421
|
+
* completion labels); the mount owns everything beneath the noun.
|
|
422
|
+
*/
|
|
423
|
+
export interface CliProjection {
|
|
424
|
+
/**
|
|
425
|
+
* Load the mount's registration machinery, when it is deferred. The
|
|
426
|
+
* projection hook rides the capabilities barrel, which `--help` and
|
|
427
|
+
* `__complete` import on every spawn — so a mount whose registration needs
|
|
428
|
+
* heavy modules (a Commander adapter, shared decision logic) keeps them
|
|
429
|
+
* behind this async step instead of a static import, and only the one
|
|
430
|
+
* caller that actually builds the command tree (the bin, before
|
|
431
|
+
* `buildProgram`) awaits it. {@link mount} stays synchronous and throws
|
|
432
|
+
* when invoked unprepared, so a future caller cannot silently skip the
|
|
433
|
+
* step.
|
|
434
|
+
*/
|
|
435
|
+
readonly prepare?: () => Promise<void>;
|
|
436
|
+
/** Populate this module's noun parent with its subcommands. */
|
|
437
|
+
readonly mount: (
|
|
438
|
+
parent: import("commander").Command,
|
|
439
|
+
host: CliMountHost,
|
|
440
|
+
) => void;
|
|
441
|
+
/**
|
|
442
|
+
* The completion surface of the mounted tree, keyed by verb label —
|
|
443
|
+
* static data the completion model attaches as segment children.
|
|
444
|
+
*/
|
|
445
|
+
readonly completionChildren: () => Readonly<
|
|
446
|
+
Record<string, CompletionChildSpec>
|
|
447
|
+
>;
|
|
448
|
+
/** Markdown inserted under the noun's heading in the generated reference. */
|
|
449
|
+
readonly referenceIntro?: string;
|
|
450
|
+
/**
|
|
451
|
+
* The registered CLI syntax for one of the noun's binding verbs — the
|
|
452
|
+
* MOUNTED spelling the reference must print (usage line with tree
|
|
453
|
+
* segments, flag tokens the CLI actually registers) instead of deriving
|
|
454
|
+
* tokens from binding-level param names the mounted tree may not register.
|
|
455
|
+
* Return `undefined` to keep the default rendering for that verb.
|
|
456
|
+
*/
|
|
457
|
+
readonly referenceSyntax?: (
|
|
458
|
+
verbPath: VerbSpec["path"],
|
|
459
|
+
) => ReferenceCliSyntax | undefined;
|
|
460
|
+
}
|
|
461
|
+
|
|
217
462
|
/** A capability module: a named bundle of verbs with optional boot/resources/prompts hooks. */
|
|
218
463
|
export interface CapabilityModule {
|
|
219
464
|
readonly name: string;
|
|
@@ -225,9 +470,28 @@ export interface CapabilityModule {
|
|
|
225
470
|
* it has zero covenant impact.
|
|
226
471
|
*/
|
|
227
472
|
readonly colophon?: string;
|
|
473
|
+
/**
|
|
474
|
+
* This module was compiled — wholly or in part — from a declared read story,
|
|
475
|
+
* so a story in the user's own CONFIG for the same noun REPLACES it. Authored
|
|
476
|
+
* modules (config, ontology, doctor, …) carry no story and can never be
|
|
477
|
+
* replaced; neither can any shipped noun be replaced by a PACKAGE story (see
|
|
478
|
+
* `kernel/packs/collect.validateStories`). Set where a story is compiled
|
|
479
|
+
* (`capabilities/distribution.ts` and the three composite nouns), read once,
|
|
480
|
+
* by `kernel/packs/collect.assembleEffectiveModules`.
|
|
481
|
+
*/
|
|
482
|
+
readonly story?: true;
|
|
228
483
|
readonly boot?: (rt: PragmaRuntime) => void;
|
|
229
484
|
/** An optional MCP resource surface (NOT a VerbSpec field — a module hook). */
|
|
230
485
|
readonly mcpResources?: McpResourceProvider;
|
|
486
|
+
/**
|
|
487
|
+
* The slices of the index this module contributes to the MCP resource
|
|
488
|
+
* listing (NOT a VerbSpec field — a module hook, like `mcpResources`). A
|
|
489
|
+
* story-compiled module gets it DERIVED from its lookup's declared types;
|
|
490
|
+
* only an authored module declares it by hand.
|
|
491
|
+
*/
|
|
492
|
+
readonly mcpListable?: McpListable;
|
|
231
493
|
/** An optional MCP prompt surface (NOT a VerbSpec field — a module hook). */
|
|
232
494
|
readonly mcpPrompts?: McpPromptProvider;
|
|
495
|
+
/** An optional CLI mount for the module's noun (NOT a VerbSpec field). */
|
|
496
|
+
readonly cliProjection?: CliProjection;
|
|
233
497
|
}
|
|
@@ -17,8 +17,9 @@ const fn = z.custom<(...args: unknown[]) => unknown>(
|
|
|
17
17
|
);
|
|
18
18
|
|
|
19
19
|
const completionSourceRefSchema = z.object({
|
|
20
|
-
from: z.enum(["index", "skills", "
|
|
20
|
+
from: z.enum(["index", "skills", "prefixes"]),
|
|
21
21
|
type: z.string().optional(),
|
|
22
|
+
field: z.enum(["name", "label", "altNames"]).optional(),
|
|
22
23
|
});
|
|
23
24
|
|
|
24
25
|
const paramCompleteSchema = z.union([
|