@canonical/pragma-cli 0.34.0 → 0.36.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/bundled-skills/add-standard/SKILL.md +338 -0
- package/bundled-skills/adoption-a1-styles/SKILL.md +269 -0
- package/bundled-skills/adoption-a2-components/SKILL.md +291 -0
- package/bundled-skills/adoption-a3-forms/SKILL.md +260 -0
- package/bundled-skills/anatomy-author/ANATOMY_DSL_SPEC.md +406 -0
- package/bundled-skills/anatomy-author/SKILL.md +1226 -0
- package/bundled-skills/design-auditor/SKILL.md +455 -0
- package/bundled-skills/implement-component/SKILL.md +333 -0
- package/bundled-skills/specify-component/SKILL.md +331 -0
- package/bundled-skills/specify-pattern/SKILL.md +292 -0
- package/dist/.build-ok +0 -0
- package/dist/package.json +84 -0
- package/dist/pragma.conf.js +1016 -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 +294 -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 +148 -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/harnessInventory.js +195 -0
- package/dist/src/capabilities/doctor/checks/harnessInventory.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 +349 -0
- package/dist/src/capabilities/doctor/checks/targetHealth.js.map +1 -0
- package/dist/src/capabilities/doctor/doctor.render.js +164 -0
- package/dist/src/capabilities/doctor/doctor.render.js.map +1 -0
- package/dist/src/capabilities/doctor/doctor.verb.js +49 -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 +86 -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 +72 -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 +57 -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 +172 -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 +390 -0
- package/dist/src/capabilities/setup/operations/setupGenerator.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupLsp.js +329 -0
- package/dist/src/capabilities/setup/operations/setupLsp.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupMcp.js +253 -0
- package/dist/src/capabilities/setup/operations/setupMcp.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupSkills.js +594 -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 +271 -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 +387 -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 +328 -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/index.js +27 -0
- package/dist/src/capabilities/shared/index.js.map +1 -0
- package/dist/src/capabilities/shared/packageManager.js +349 -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 +281 -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 +309 -0
- package/dist/src/capabilities/sources/installSkills.js.map +1 -0
- package/dist/src/capabilities/sources/runUpdate.js +460 -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 +135 -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 +52 -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 +87 -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 +34 -0
- package/dist/src/kernel/index.js.map +1 -0
- package/dist/src/kernel/interactivity.js +68 -0
- package/dist/src/kernel/interactivity.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 +274 -0
- package/dist/src/kernel/packs/resolveEntity.js.map +1 -0
- package/dist/src/kernel/packs/runBodies.js +140 -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 +421 -0
- package/dist/src/kernel/packs/schema.js.map +1 -0
- package/dist/src/kernel/packs/sparql/applyFilters.js +167 -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 +480 -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 +219 -0
- package/dist/src/kernel/project/cli/globalFlags.js.map +1 -0
- package/dist/src/kernel/project/cli/helpFormat.js +58 -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 +227 -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 +315 -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 +105 -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/vocabulary.js +174 -0
- package/dist/src/kernel/render/vocabulary.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 +22 -23
- package/pragma.conf.ts +486 -90
- package/src/bin.ts +274 -82
- package/src/capabilities/block.parity.test.ts +29 -12
- package/src/capabilities/block.shipped.exec.test.ts +282 -0
- package/src/capabilities/block.tierRank.exec.test.ts +300 -0
- package/src/capabilities/capabilities/capabilities.render.ts +1 -1
- package/src/capabilities/capabilities/capabilities.verb.ts +1 -1
- package/src/capabilities/capabilities/catalog.ts +3 -3
- package/src/capabilities/capabilities/hints.ts +32 -7
- package/src/capabilities/capabilities/index.ts +1 -1
- package/src/capabilities/colophon/collectColophon.ts +35 -24
- package/src/capabilities/colophon/colophon.render.ts +24 -1
- package/src/capabilities/colophon/colophon.test.ts +42 -21
- package/src/capabilities/colophon/colophon.verb.ts +4 -4
- package/src/capabilities/config/collectConfigShow.test.ts +1 -0
- package/src/capabilities/config/collectConfigShow.ts +3 -3
- package/src/capabilities/config/field.render.ts +4 -5
- package/src/capabilities/config/fields.ts +17 -10
- 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 +8 -7
- package/src/capabilities/config/show.render.ts +1 -1
- package/src/capabilities/config/show.verb.ts +9 -6
- package/src/capabilities/config/types.ts +18 -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 +25 -11
- package/src/capabilities/create/cliProjection.ts +227 -0
- package/src/capabilities/create/constants.ts +36 -61
- package/src/capabilities/create/create.mcp.test.ts +89 -5
- package/src/capabilities/create/create.render.ts +71 -7
- package/src/capabilities/create/create.test.ts +433 -219
- package/src/capabilities/create/create.verb.ts +297 -328
- 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 +7 -4
- 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 +23 -35
- package/src/capabilities/create/shippedCreate.subprocess.test.ts +164 -0
- package/src/capabilities/create/types.ts +20 -0
- package/src/capabilities/distribution.parity.test.ts +4 -0
- package/src/capabilities/distribution.test.ts +3 -1
- package/src/capabilities/distribution.ts +10 -15
- package/src/capabilities/doctor/checks/checkKeStore.ts +7 -5
- package/src/capabilities/doctor/checks/checkPackageRefs.ts +75 -8
- package/src/capabilities/doctor/checks/checkPragmaVersion.ts +2 -2
- package/src/capabilities/doctor/checks/checkShellCompletions.test.ts +76 -29
- package/src/capabilities/doctor/checks/checkShellCompletions.ts +63 -17
- package/src/capabilities/doctor/checks/harnessInventory.test.ts +219 -0
- package/src/capabilities/doctor/checks/harnessInventory.ts +298 -0
- 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 +444 -0
- package/src/capabilities/doctor/doctor.render.test.ts +125 -38
- package/src/capabilities/doctor/doctor.render.ts +74 -74
- package/src/capabilities/doctor/doctor.test.ts +338 -37
- package/src/capabilities/doctor/doctor.verb.ts +8 -3
- package/src/capabilities/doctor/runChecks.ts +65 -63
- package/src/capabilities/doctor/types.ts +22 -15
- package/src/capabilities/emptyRecovery.test.ts +21 -8
- 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 -6
- package/src/capabilities/graph/query.render.ts +15 -3
- package/src/capabilities/graph/query.verb.ts +3 -3
- package/src/capabilities/graph/runQuery.ts +2 -3
- package/src/capabilities/index.ts +3 -1
- package/src/capabilities/info/collectInfo.ts +13 -5
- package/src/capabilities/info/info.render.ts +7 -3
- package/src/capabilities/info/info.test.ts +37 -1
- package/src/capabilities/info/info.verb.ts +1 -1
- package/src/capabilities/info/types.ts +10 -2
- package/src/capabilities/lazy.test.ts +32 -0
- 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 +27 -68
- package/src/capabilities/prompt/index.ts +2 -2
- package/src/capabilities/prompt/prompt.render.ts +6 -2
- package/src/capabilities/prompt/types.ts +1 -1
- package/src/capabilities/prompt/verbs.ts +4 -5
- package/src/capabilities/reference.test.ts +63 -0
- package/src/capabilities/renderVocabularySync.test.ts +82 -0
- package/src/capabilities/resources/provider.ts +342 -85
- package/src/capabilities/resources/resources.test.ts +355 -59
- package/src/capabilities/scopeTypeSync.test.ts +29 -15
- package/src/capabilities/setup/buildPlan.ts +240 -0
- package/src/capabilities/setup/index.ts +7 -7
- package/src/capabilities/setup/mode.ts +74 -0
- package/src/capabilities/setup/operations/index.ts +79 -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 +478 -334
- package/src/capabilities/setup/operations/setupLsp.ts +420 -67
- package/src/capabilities/setup/operations/setupMcp.ts +238 -127
- package/src/capabilities/setup/operations/setupSkills.ts +667 -105
- package/src/capabilities/setup/plan.render.ts +336 -0
- package/src/capabilities/setup/plan.ts +241 -0
- package/src/capabilities/setup/setup.mcp.correctness.test.ts +432 -0
- package/src/capabilities/setup/setup.render.test.ts +297 -75
- package/src/capabilities/setup/setup.render.ts +45 -77
- package/src/capabilities/setup/setup.test.ts +1819 -225
- package/src/capabilities/setup/setup.verb.ts +288 -78
- package/src/capabilities/setup/shell.test.ts +86 -0
- package/src/capabilities/setup/shell.ts +137 -11
- package/src/capabilities/setup/targets.ts +435 -0
- package/src/capabilities/setup/types.ts +23 -70
- package/src/capabilities/shared/assertExecOk.ts +68 -10
- package/src/capabilities/shared/index.ts +43 -0
- package/src/capabilities/shared/packageManager.test.ts +470 -0
- package/src/capabilities/shared/packageManager.ts +425 -34
- package/src/capabilities/skill/bundledSkills.test.ts +347 -0
- package/src/capabilities/skill/discover.ts +131 -10
- package/src/capabilities/skill/index.ts +1 -1
- package/src/capabilities/skill/render.ts +10 -9
- package/src/capabilities/skill/skill.test.ts +22 -7
- package/src/capabilities/skill/verbs.ts +3 -4
- package/src/capabilities/sources/collectStatus.ts +7 -2
- package/src/capabilities/sources/index.ts +1 -1
- package/src/capabilities/sources/installSkills.ts +265 -10
- package/src/capabilities/sources/runUpdate.ts +131 -23
- package/src/capabilities/sources/sources.test.ts +382 -2
- package/src/capabilities/sources/status.render.ts +1 -1
- package/src/capabilities/sources/status.verb.ts +1 -1
- package/src/capabilities/sources/update.render.ts +1 -1
- package/src/capabilities/sources/update.verb.ts +4 -4
- package/src/capabilities/surface.test.ts +136 -19
- package/src/capabilities/upgrade/runUpgrade.ts +53 -14
- package/src/capabilities/upgrade/types.ts +10 -2
- package/src/capabilities/upgrade/upgrade.render.ts +13 -7
- package/src/capabilities/upgrade/upgrade.test.ts +75 -3
- package/src/capabilities/upgrade/upgrade.verb.ts +1 -1
- 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.ts +36 -1
- package/src/identity.test.ts +57 -29
- package/src/kernel/completion/__snapshots__/emitScripts.test.ts.snap +15 -13
- package/src/kernel/completion/complete.test.ts +12 -2
- package/src/kernel/completion/complete.ts +1 -1
- package/src/kernel/completion/emitScripts.ts +1 -1
- package/src/kernel/completion/entitySource.test.ts +16 -3
- package/src/kernel/completion/entitySource.ts +21 -8
- package/src/kernel/completion/model.test.ts +164 -12
- package/src/kernel/completion/model.ts +94 -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 +50 -35
- package/src/kernel/completion/shellDrive.test.ts +28 -9
- package/src/kernel/completion/templates/bash.ts +7 -2
- package/src/kernel/completion/templates/index.ts +23 -0
- package/src/kernel/completion/types.ts +7 -0
- package/src/kernel/config/defaults.test.ts +27 -3
- package/src/kernel/config/defaults.ts +4 -3
- package/src/kernel/config/evaluateProjectConfig.ts +31 -8
- package/src/kernel/config/firstRun.test.ts +44 -38
- package/src/kernel/config/firstRun.ts +24 -88
- package/src/kernel/config/index.ts +1 -1
- package/src/kernel/config/readConfig.test.ts +6 -3
- package/src/kernel/config/readConfig.ts +1 -1
- package/src/kernel/config/schema.ts +3 -1
- package/src/kernel/config/types.ts +3 -1
- package/src/kernel/copy.test.ts +34 -4
- package/src/kernel/copy.ts +54 -0
- package/src/kernel/error/PragmaError.test.ts +5 -2
- package/src/kernel/error/PragmaError.ts +4 -2
- package/src/kernel/error/constants.ts +7 -5
- package/src/kernel/error/fromTaskError.ts +28 -6
- package/src/kernel/error/recovery.ts +14 -0
- package/src/kernel/error/renderError.ts +42 -1
- package/src/kernel/error/types.ts +21 -1
- package/src/kernel/index.ts +35 -0
- package/src/kernel/interactivity.test.ts +76 -0
- package/src/kernel/interactivity.ts +69 -0
- package/src/kernel/packs/collect.ts +12 -16
- package/src/kernel/packs/compile.test.ts +222 -1
- package/src/kernel/packs/compile.ts +93 -3
- package/src/kernel/packs/disclosure.ts +2 -2
- package/src/kernel/packs/graphql/buildLookupDocument.ts +1 -1
- package/src/kernel/packs/graphql/fetchGraphqlLookup.ts +3 -4
- package/src/kernel/packs/graphql/index.ts +20 -0
- package/src/kernel/packs/index.ts +40 -0
- package/src/kernel/packs/iri.test.ts +73 -0
- package/src/kernel/packs/iri.ts +66 -14
- package/src/kernel/packs/renderPack.ts +25 -6
- package/src/kernel/packs/resolveEntity.test.ts +274 -0
- package/src/kernel/packs/resolveEntity.ts +200 -42
- package/src/kernel/packs/runBodies.ts +86 -22
- package/src/kernel/packs/sample.ts +1 -1
- package/src/kernel/packs/schema.ts +78 -5
- package/src/kernel/packs/sparql/applyFilters.ts +136 -16
- package/src/kernel/packs/sparql/buildLookupQuery.test.ts +290 -0
- package/src/kernel/packs/sparql/buildLookupQuery.ts +367 -17
- package/src/kernel/packs/sparql/index.ts +37 -0
- package/src/kernel/packs/sparql/runSelect.test.ts +1 -1
- package/src/kernel/packs/sparql/runSelect.ts +3 -4
- package/src/kernel/packs/toolDescription.test.ts +77 -4
- package/src/kernel/packs/types.ts +136 -0
- package/src/kernel/packs/uniqueness.ts +1 -1
- package/src/kernel/project/cli/buildProgram.test.ts +218 -12
- package/src/kernel/project/cli/buildProgram.ts +84 -18
- package/src/kernel/project/cli/constants.ts +34 -0
- package/src/kernel/project/cli/dispatch.test.ts +160 -2
- package/src/kernel/project/cli/dispatch.ts +226 -45
- 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 +134 -31
- package/src/kernel/project/cli/helpFormat.ts +14 -2
- package/src/kernel/project/cli/rootHelp.ts +74 -12
- 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 +7 -4
- package/src/kernel/project/mcp/envelope.ts +2 -2
- package/src/kernel/project/mcp/instructions.ts +2 -2
- package/src/kernel/project/mcp/mcpError.ts +1 -1
- package/src/kernel/project/mcp/parity.test.ts +5 -2
- package/src/kernel/project/mcp/prompts/index.ts +37 -0
- package/src/kernel/project/mcp/prompts/source.ts +2 -2
- package/src/kernel/project/mcp/registerVerb.ts +55 -10
- package/src/kernel/project/mcp/serve.ts +2 -2
- package/src/kernel/render/__snapshots__/renderers.test.ts.snap +7 -4
- package/src/kernel/render/contracts.ts +21 -0
- package/src/kernel/render/envelope.ts +2 -3
- package/src/kernel/render/formatters.ts +1 -1
- package/src/kernel/render/renderers.test.ts +243 -6
- package/src/kernel/render/renderers.ts +222 -20
- package/src/kernel/render/style.test.ts +75 -24
- package/src/kernel/render/style.ts +59 -6
- package/src/kernel/render/turtle.ts +222 -0
- package/src/kernel/render/vocabulary.ts +276 -0
- package/src/kernel/runtime/graphpack/buildIndex.ts +1 -1
- package/src/kernel/runtime/graphpack/embedded/pack.generated.ts +3 -3
- package/src/kernel/runtime/graphpack/embedded/pack.index.generated.ts +1 -1
- package/src/kernel/runtime/graphpack/embedded.ts +3 -3
- package/src/kernel/runtime/graphpack/manifest.ts +1 -1
- package/src/kernel/runtime/graphpack/read.ts +1 -2
- package/src/kernel/runtime/loadSession.ts +1 -1
- package/src/kernel/runtime/probe.ts +6 -6
- package/src/kernel/runtime/readEntity.ts +472 -28
- package/src/kernel/runtime/refs/index.ts +39 -0
- package/src/kernel/runtime/refs/parseRef.ts +2 -2
- package/src/kernel/runtime/refs/resolve.ts +4 -4
- package/src/kernel/runtime/storeReadiness.ts +1 -2
- package/src/kernel/runtime/types.ts +15 -1
- package/src/kernel/runtime/wasmEmbed.test.ts +37 -39
- package/src/kernel/spec/emitReference.ts +105 -30
- package/src/kernel/spec/emitSurface.ts +48 -6
- package/src/kernel/spec/surfaceConformance.test.ts +4 -2
- package/src/kernel/spec/types.ts +277 -4
- package/src/testing/PARITY_GAPS.ts +9 -3
- package/src/testing/behavioral/docExamples.test.ts +16 -0
- package/src/testing/behavioral/errorMatrix.mcp.test.ts +112 -9
- package/src/testing/behavioral/firstRun.e2e.test.ts +24 -24
- package/src/testing/behavioral/journeys.cli.test.ts +1 -1
- package/src/testing/behavioral/journeys.defaultPack.test.ts +7 -7
- package/src/testing/behavioral/journeys.firstInstall.test.ts +7 -2
- 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.packageStories.test.ts +10 -7
- package/src/testing/behavioral/mcpServe.e2e.test.ts +57 -2
- package/src/testing/behavioral/mcpSurface.test.ts +1 -1
- package/src/testing/behavioral/rootCli.e2e.test.ts +26 -2
- package/src/testing/eval/__snapshots__/eval.test.ts.snap +26 -1
- package/src/testing/eval/cases/effectful.ts +3 -2
- package/src/testing/eval/cases/readNouns.ts +245 -9
- package/src/testing/fixtures/blockGraph.ts +104 -10
- package/src/testing/fixtures/graph/canonical.ts +182 -13
- package/src/testing/fixtures/graph/defaultPack.ts +1 -1
- package/src/testing/helpers/blankCanonicalRanges.ts +36 -0
- package/src/testing/helpers/projectMcp.ts +32 -6
- package/src/testing/helpers/runCli.ts +35 -18
- package/src/testing/perf/budgets.test.ts +20 -9
- package/src/testing/perf/budgets.ts +58 -9
- package/src/testing/perf/codegen.test.ts +126 -0
- package/src/testing/perf/globalSetup.test.ts +286 -0
- package/src/testing/perf/globalSetup.ts +505 -23
- 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/dist/pragma +0 -0
- package/src/capabilities/create/compiledCreate.subprocess.test.ts +0 -189
- package/src/capabilities/create/templates.embedded.generated.ts +0 -28
- package/src/capabilities/doctor/checks/checkConfigFile.ts +0 -42
- package/src/capabilities/doctor/checks/checkMcpCommands.ts +0 -114
- package/src/capabilities/doctor/checks/checkMcpConfigured.ts +0 -68
- package/src/capabilities/doctor/checks/checkSkillsSymlinked.ts +0 -61
- package/src/capabilities/doctor/checks/deriveBand.test.ts +0 -42
- package/src/capabilities/doctor/checks/deriveBand.ts +0 -28
- package/src/capabilities/shared/bands.ts +0 -16
- package/src/kernel/config/__snapshots__/firstRun.test.ts.snap +0 -11
|
@@ -8,19 +8,23 @@
|
|
|
8
8
|
* name or absolute IRI addresses the subject exactly.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
BIN_NAME,
|
|
13
|
+
DEFAULT_DETAIL_LEVEL,
|
|
14
|
+
DETAIL_LEVELS,
|
|
15
|
+
} from "../../constants.js";
|
|
16
|
+
import type { PragmaRuntime } from "../../kernel/runtime/index.js";
|
|
12
17
|
import type { InspectResult } from "../../kernel/runtime/readEntity.js";
|
|
13
18
|
import { readEntity } from "../../kernel/runtime/readEntity.js";
|
|
14
|
-
import type { PragmaRuntime } from "../../kernel/runtime/types.js";
|
|
15
19
|
import { asVerb } from "../../kernel/spec/asVerb.js";
|
|
16
|
-
import type { VerbSpec } from "../../kernel/spec/
|
|
20
|
+
import type { VerbSpec } from "../../kernel/spec/index.js";
|
|
17
21
|
import { inspectFormatters } from "./inspect.render.js";
|
|
18
22
|
|
|
19
23
|
const inspectVerb: VerbSpec<Record<string, unknown>, InspectResult> = {
|
|
20
24
|
path: ["graph", "inspect"],
|
|
21
25
|
summary:
|
|
22
26
|
"Show every triple where a URI is the subject, grouped by predicate.",
|
|
23
|
-
doc: "Inspect one entity: all predicate/object pairs asserted on the subject. Address it by prefixed name (ds:button) or absolute IRI.",
|
|
27
|
+
doc: "Inspect one entity: all predicate/object pairs asserted on the subject. Address it by prefixed name (ds:global.component.button) or absolute IRI.",
|
|
24
28
|
params: [
|
|
25
29
|
{
|
|
26
30
|
kind: "string",
|
|
@@ -32,9 +36,17 @@ const inspectVerb: VerbSpec<Record<string, unknown>, InspectResult> = {
|
|
|
32
36
|
},
|
|
33
37
|
],
|
|
34
38
|
output: { formatters: inspectFormatters },
|
|
39
|
+
// The read is BOUNDED by disclosure — inbound exemplars and literal previews
|
|
40
|
+
// both widen with the level — so the verb must declare the ladder it honours.
|
|
41
|
+
// Without this the CLI `--detail` flag has nothing to validate against and the
|
|
42
|
+
// MCP projector injects no `detail` argument at all, so the documented knob
|
|
43
|
+
// was one an agent could not actually reach.
|
|
44
|
+
disclosure: { levels: [...DETAIL_LEVELS], default: DEFAULT_DETAIL_LEVEL },
|
|
35
45
|
examples: [
|
|
36
|
-
{ cmd: `${BIN_NAME} graph inspect ds:button` },
|
|
37
|
-
{
|
|
46
|
+
{ cmd: `${BIN_NAME} graph inspect ds:global.component.button` },
|
|
47
|
+
{
|
|
48
|
+
cmd: `${BIN_NAME} graph inspect https://ds.canonical.com/global.component.button`,
|
|
49
|
+
},
|
|
38
50
|
],
|
|
39
51
|
capability: {
|
|
40
52
|
needsStore: true,
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* - json: the serialized {@link QueryResult}.
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import type { Formatters } from "../../kernel/spec/
|
|
12
|
+
import type { Formatters } from "../../kernel/spec/index.js";
|
|
13
13
|
|
|
14
14
|
// Inline `import("…")` type (no `from`) — keeps the ke types off the static
|
|
15
15
|
// import graph the lazy-dispatch probe walks (see query.verb.ts).
|
|
@@ -36,9 +36,21 @@ function formatTriples(
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
export const queryFormatters: Formatters<QueryResult> = {
|
|
39
|
+
// Zero rows/triples: plain stdout stays empty — the notice is
|
|
40
|
+
// `notice`, routed to stderr (exit 0) by the dispatcher so a pipe
|
|
41
|
+
// reads no prose. ASK always has a result and never goes empty.
|
|
42
|
+
notice(result) {
|
|
43
|
+
if (result.type === "select" && result.bindings.length === 0) {
|
|
44
|
+
return "No results.";
|
|
45
|
+
}
|
|
46
|
+
if (result.type === "construct" && result.triples.length === 0) {
|
|
47
|
+
return "No triples.";
|
|
48
|
+
}
|
|
49
|
+
return undefined;
|
|
50
|
+
},
|
|
39
51
|
plain(result) {
|
|
40
52
|
if (result.type === "select") {
|
|
41
|
-
if (result.bindings.length === 0) return "
|
|
53
|
+
if (result.bindings.length === 0) return "";
|
|
42
54
|
const cols = Object.keys(result.bindings[0] ?? {});
|
|
43
55
|
const rows = result.bindings.map((b) =>
|
|
44
56
|
cols.map((c) => b[c] ?? "").join("\t"),
|
|
@@ -48,7 +60,7 @@ export const queryFormatters: Formatters<QueryResult> = {
|
|
|
48
60
|
if (result.type === "ask") {
|
|
49
61
|
return `ASK: ${String(result.result)}`;
|
|
50
62
|
}
|
|
51
|
-
return formatTriples(result.triples);
|
|
63
|
+
return result.triples.length === 0 ? "" : formatTriples(result.triples);
|
|
52
64
|
},
|
|
53
65
|
|
|
54
66
|
llm(result) {
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import { BIN_NAME } from "../../constants.js";
|
|
13
|
-
import type { PragmaRuntime } from "../../kernel/runtime/
|
|
13
|
+
import type { PragmaRuntime } from "../../kernel/runtime/index.js";
|
|
14
14
|
import { asVerb } from "../../kernel/spec/asVerb.js";
|
|
15
|
-
import type { VerbSpec } from "../../kernel/spec/
|
|
15
|
+
import type { VerbSpec } from "../../kernel/spec/index.js";
|
|
16
16
|
import { queryFormatters } from "./query.render.js";
|
|
17
17
|
|
|
18
18
|
// Inline `import("…")` type (no `from`) so the ke types stay OFF the static
|
|
@@ -40,7 +40,7 @@ const queryVerb: VerbSpec<Record<string, unknown>, QueryResult> = {
|
|
|
40
40
|
note: "list every component subject",
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
|
-
cmd: `${BIN_NAME} graph query "ASK { ds
|
|
43
|
+
cmd: `${BIN_NAME} graph query "ASK { <https://ds.canonical.com/global.component.button> a ds:Component }" --format json`,
|
|
44
44
|
},
|
|
45
45
|
],
|
|
46
46
|
capability: {
|
|
@@ -10,9 +10,8 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import type { QueryResult } from "@canonical/ke";
|
|
13
|
-
import { PragmaError } from "../../kernel/error/
|
|
14
|
-
import {
|
|
15
|
-
import type { PragmaRuntime } from "../../kernel/runtime/types.js";
|
|
13
|
+
import { cliRecovery, PragmaError } from "../../kernel/error/index.js";
|
|
14
|
+
import type { PragmaRuntime } from "../../kernel/runtime/index.js";
|
|
16
15
|
|
|
17
16
|
/**
|
|
18
17
|
* Execute a raw SPARQL query against the booted store.
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* `--help`/`__complete` fast paths stay free of the config reader and zod.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import type { CapabilityModule } from "../kernel/spec/
|
|
17
|
+
import type { CapabilityModule } from "../kernel/spec/index.js";
|
|
18
18
|
import { capabilitiesModule } from "./capabilities/index.js";
|
|
19
19
|
import { colophonModule } from "./colophon/index.js";
|
|
20
20
|
import { configModule } from "./config/index.js";
|
|
@@ -30,10 +30,12 @@ import { setupModule } from "./setup/index.js";
|
|
|
30
30
|
import { skillModule } from "./skill/index.js";
|
|
31
31
|
import { sourcesModule } from "./sources/index.js";
|
|
32
32
|
import { upgradeModule } from "./upgrade/index.js";
|
|
33
|
+
import { versionModule } from "./version/index.js";
|
|
33
34
|
|
|
34
35
|
/** The modules with hand-written code, in authoring order. */
|
|
35
36
|
const authored: readonly CapabilityModule[] = [
|
|
36
37
|
infoModule,
|
|
38
|
+
versionModule,
|
|
37
39
|
configModule,
|
|
38
40
|
createModule,
|
|
39
41
|
sourcesModule,
|
|
@@ -18,14 +18,16 @@ import {
|
|
|
18
18
|
entityTotal,
|
|
19
19
|
readPackIndex,
|
|
20
20
|
} from "../../kernel/completion/entitySource.js";
|
|
21
|
-
import { readConfig } from "../../kernel/config/
|
|
21
|
+
import { readConfig } from "../../kernel/config/index.js";
|
|
22
|
+
import type { PragmaRuntime } from "../../kernel/runtime/index.js";
|
|
22
23
|
import { resolveSources } from "../../kernel/runtime/resolveSources.js";
|
|
23
|
-
import type { PragmaRuntime } from "../../kernel/runtime/types.js";
|
|
24
24
|
import {
|
|
25
|
+
checkRegistryVersion,
|
|
25
26
|
detectInstallSource,
|
|
27
|
+
PRAGMA_PACKAGE,
|
|
26
28
|
pmUpdateCommand,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
updateGuidance,
|
|
30
|
+
} from "../shared/index.js";
|
|
29
31
|
import type { InfoData, InfoUpdate } from "./types.js";
|
|
30
32
|
|
|
31
33
|
/**
|
|
@@ -43,12 +45,17 @@ export async function collectInfo(runtime: PragmaRuntime): Promise<InfoData> {
|
|
|
43
45
|
|
|
44
46
|
// Update-check: unconditional (no flag exists), 3s timeout, silent-fail.
|
|
45
47
|
const registry = await checkRegistryVersion(PRAGMA_PACKAGE, config.channel);
|
|
48
|
+
// Only a GLOBAL install gets a command; every other state gets the honest
|
|
49
|
+
// guidance sentence — a confidently wrong `npm i -g` against a linked
|
|
50
|
+
// checkout would overwrite the development link.
|
|
46
51
|
const update: InfoUpdate | undefined =
|
|
47
52
|
registry && registry.latest !== runtime.version
|
|
48
53
|
? {
|
|
49
54
|
current: runtime.version,
|
|
50
55
|
latest: registry.latest,
|
|
51
|
-
|
|
56
|
+
...(install.kind === "global"
|
|
57
|
+
? { command: pmUpdateCommand(install, PRAGMA_PACKAGE) }
|
|
58
|
+
: { guidance: updateGuidance(install) }),
|
|
52
59
|
}
|
|
53
60
|
: undefined;
|
|
54
61
|
const updateSkipped = registry === undefined;
|
|
@@ -61,6 +68,7 @@ export async function collectInfo(runtime: PragmaRuntime): Promise<InfoData> {
|
|
|
61
68
|
return {
|
|
62
69
|
version: runtime.version,
|
|
63
70
|
installSource: install.label,
|
|
71
|
+
installKind: install.kind,
|
|
64
72
|
...(update ? { update } : {}),
|
|
65
73
|
updateSkipped,
|
|
66
74
|
...(entities !== undefined ? { entities } : {}),
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import { BIN_NAME } from "../../constants.js";
|
|
6
6
|
import type { ConfigOrigin } from "../../kernel/config/types.js";
|
|
7
|
-
import type { Formatters } from "../../kernel/spec/
|
|
7
|
+
import type { Formatters } from "../../kernel/spec/index.js";
|
|
8
8
|
import type { InfoData } from "./types.js";
|
|
9
9
|
|
|
10
10
|
/** A `[layer]` marker for values a config file supplied (blank for defaults). */
|
|
@@ -37,7 +37,9 @@ export const infoFormatters: Formatters<InfoData> = {
|
|
|
37
37
|
lines.push(
|
|
38
38
|
"",
|
|
39
39
|
`Update available: ${data.update.current} → ${data.update.latest}`,
|
|
40
|
-
|
|
40
|
+
data.update.command
|
|
41
|
+
? ` Run: ${data.update.command}`
|
|
42
|
+
: ` ${data.update.guidance}`,
|
|
41
43
|
);
|
|
42
44
|
}
|
|
43
45
|
return lines.join("\n");
|
|
@@ -61,7 +63,9 @@ export const infoFormatters: Formatters<InfoData> = {
|
|
|
61
63
|
}
|
|
62
64
|
if (data.update) {
|
|
63
65
|
lines.push(
|
|
64
|
-
|
|
66
|
+
data.update.command
|
|
67
|
+
? `- Update available: ${data.update.current} → ${data.update.latest} (\`${data.update.command}\`)`
|
|
68
|
+
: `- Update available: ${data.update.current} → ${data.update.latest} — ${data.update.guidance}`,
|
|
65
69
|
);
|
|
66
70
|
}
|
|
67
71
|
return lines.join("\n");
|
|
@@ -17,9 +17,26 @@ import { bootRuntime } from "../../kernel/runtime/boot.js";
|
|
|
17
17
|
import type { GlobalFlags, PragmaRuntime } from "../../kernel/runtime/types.js";
|
|
18
18
|
import type { VerbSpec } from "../../kernel/spec/types.js";
|
|
19
19
|
import { projectMcp } from "../../testing/helpers/projectMcp.js";
|
|
20
|
+
import type { InstallSource } from "../shared/index.js";
|
|
20
21
|
import { infoModule } from "./index.js";
|
|
21
22
|
import type { InfoData } from "./types.js";
|
|
22
23
|
|
|
24
|
+
// Pin the install-source detection: the real detector reads THIS process
|
|
25
|
+
// (whose entry is a source checkout — an honest `unknown`), and these tests
|
|
26
|
+
// are about the enrichment around it, not the detection itself (covered by
|
|
27
|
+
// `shared/packageManager.test.ts`). The holder lets a case retarget it.
|
|
28
|
+
const detection = vi.hoisted(() => ({ install: undefined as unknown }));
|
|
29
|
+
vi.mock("../shared/index.js", async (importOriginal) => ({
|
|
30
|
+
...(await importOriginal<object>()),
|
|
31
|
+
detectInstallSource: () => detection.install,
|
|
32
|
+
}));
|
|
33
|
+
|
|
34
|
+
const GLOBAL_NPM: InstallSource = {
|
|
35
|
+
kind: "global",
|
|
36
|
+
pm: "npm",
|
|
37
|
+
label: "npm (global)",
|
|
38
|
+
};
|
|
39
|
+
|
|
23
40
|
const infoVerb = infoModule.verbs[0] as VerbSpec;
|
|
24
41
|
const FLAGS_JSON: GlobalFlags = {
|
|
25
42
|
llm: false,
|
|
@@ -54,6 +71,7 @@ let prevXdg: string | undefined;
|
|
|
54
71
|
beforeEach(() => {
|
|
55
72
|
prevXdg = process.env.XDG_CONFIG_HOME;
|
|
56
73
|
process.env.XDG_CONFIG_HOME = tmpCwd();
|
|
74
|
+
detection.install = GLOBAL_NPM;
|
|
57
75
|
});
|
|
58
76
|
afterEach(() => {
|
|
59
77
|
process.env.XDG_CONFIG_HOME = prevXdg;
|
|
@@ -74,12 +92,30 @@ describe("info — update-check enrichment", () => {
|
|
|
74
92
|
const data = await collect(rt);
|
|
75
93
|
|
|
76
94
|
expect(data.update).toMatchObject({ current: VERSION, latest: "99.0.0" });
|
|
77
|
-
expect(data.update?.command).
|
|
95
|
+
expect(data.update?.command).toBe("npm i -g @canonical/pragma-cli");
|
|
96
|
+
expect(data.installSource).toBe("npm (global)");
|
|
97
|
+
expect(data.installKind).toBe("global");
|
|
78
98
|
expect(data.updateSkipped).toBe(false);
|
|
79
99
|
// The storeless invariant: the enrichment must NOT boot the store.
|
|
80
100
|
expect(rt.store.booted).toBe(false);
|
|
81
101
|
});
|
|
82
102
|
|
|
103
|
+
it("a LINKED install gets guidance, never a command (would clobber the link)", async () => {
|
|
104
|
+
detection.install = {
|
|
105
|
+
kind: "linked",
|
|
106
|
+
pm: "npm",
|
|
107
|
+
target: "/home/u/code/pragma/packages/cli/pragma",
|
|
108
|
+
label: "npm link (development checkout)",
|
|
109
|
+
} satisfies InstallSource;
|
|
110
|
+
stubRegistry("99.0.0");
|
|
111
|
+
const data = await collect(bootRuntime(FLAGS_JSON, tmpCwd()));
|
|
112
|
+
|
|
113
|
+
expect(data.installKind).toBe("linked");
|
|
114
|
+
expect(data.installSource).toBe("npm link (development checkout)");
|
|
115
|
+
expect(data.update?.command).toBeUndefined();
|
|
116
|
+
expect(data.update?.guidance).toMatch(/development checkout/i);
|
|
117
|
+
});
|
|
118
|
+
|
|
83
119
|
it("marks `updateSkipped` when the registry is unreachable", async () => {
|
|
84
120
|
stubRegistry("offline");
|
|
85
121
|
const data = await collect(bootRuntime(FLAGS_JSON, tmpCwd()));
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
import { BIN_NAME } from "../../constants.js";
|
|
10
10
|
import { asVerb } from "../../kernel/spec/asVerb.js";
|
|
11
|
-
import type { CapabilityModule, VerbSpec } from "../../kernel/spec/
|
|
11
|
+
import type { CapabilityModule, VerbSpec } from "../../kernel/spec/index.js";
|
|
12
12
|
import { infoFormatters } from "./info.render.js";
|
|
13
13
|
import type { InfoData } from "./types.js";
|
|
14
14
|
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import type { ConfigOrigins } from "../../kernel/config/types.js";
|
|
6
|
+
import type { InstallKind } from "../../kernel/render/vocabulary.js";
|
|
6
7
|
|
|
7
8
|
/** The config summary `info` reports — resolved values plus provenance. */
|
|
8
9
|
export interface InfoConfig {
|
|
@@ -20,8 +21,12 @@ export interface InfoConfig {
|
|
|
20
21
|
export interface InfoUpdate {
|
|
21
22
|
readonly current: string;
|
|
22
23
|
readonly latest: string;
|
|
23
|
-
/** The package-manager command that would apply the update
|
|
24
|
-
|
|
24
|
+
/** The package-manager command that would apply the update — only for a
|
|
25
|
+
* GLOBAL install; every other state carries {@link guidance} instead. */
|
|
26
|
+
readonly command?: string;
|
|
27
|
+
/** The honest sentence for an install with no sanctioned update command
|
|
28
|
+
* (linked / ephemeral / workspace / unknown). */
|
|
29
|
+
readonly guidance?: string;
|
|
25
30
|
}
|
|
26
31
|
|
|
27
32
|
/**
|
|
@@ -31,7 +36,10 @@ export interface InfoUpdate {
|
|
|
31
36
|
*/
|
|
32
37
|
export interface InfoData {
|
|
33
38
|
readonly version: string;
|
|
39
|
+
/** The install-source display label (e.g. `npm (global)`). */
|
|
34
40
|
readonly installSource: string;
|
|
41
|
+
/** The install-source state the label renders. */
|
|
42
|
+
readonly installKind: InstallKind;
|
|
35
43
|
/** Set when a newer CLI release is available on the active channel. */
|
|
36
44
|
readonly update?: InfoUpdate;
|
|
37
45
|
/** True when the registry could not be reached (the update-check was skipped). */
|
|
@@ -140,6 +140,38 @@ describe("lazy dispatch — module-graph probe (PROTECTED)", () => {
|
|
|
140
140
|
}
|
|
141
141
|
});
|
|
142
142
|
|
|
143
|
+
// The create surface's registration machinery — summon-core's projection
|
|
144
|
+
// helpers, its Commander adapter, and Commander itself — must stay behind
|
|
145
|
+
// the mount's dynamic import: `--help` and `__complete` both import this
|
|
146
|
+
// barrel and neither registers a single create command, so an eager edge
|
|
147
|
+
// here taxes every fast-path spawn for work only a dispatched `create`
|
|
148
|
+
// invocation performs. The registered flag/positional spellings the fast
|
|
149
|
+
// paths DO need (completion tokens, reference syntax) are baked into
|
|
150
|
+
// `createSurface.generated.ts` at build time, so nothing on this graph has
|
|
151
|
+
// to call the projection to learn them. Type-only imports are allowed —
|
|
152
|
+
// they are erased — which is why this walks import STATEMENTS rather than
|
|
153
|
+
// grepping for the specifier.
|
|
154
|
+
it("capabilities/index pulls no summon-core projection, adapter, or commander value import (PROTECTED)", () => {
|
|
155
|
+
const banned = [/^@canonical\/summon-core\/projection/, /^commander$/];
|
|
156
|
+
const graph = staticImportGraph(resolve(here, "index.ts"));
|
|
157
|
+
const pkgRoot = resolve(here, "..", "..");
|
|
158
|
+
// Anchored to line start so the word "import" inside a docblock cannot
|
|
159
|
+
// open a match that swallows prose down to the next real specifier.
|
|
160
|
+
const importRe = /^import\s+([^;]*?)from\s*["']([^"']+)["']/gm;
|
|
161
|
+
const offenders: string[] = [];
|
|
162
|
+
for (const file of graph) {
|
|
163
|
+
const source = readFileSync(file, "utf-8");
|
|
164
|
+
for (const match of source.matchAll(importRe)) {
|
|
165
|
+
const clause = match[1] as string;
|
|
166
|
+
const specifier = match[2] as string;
|
|
167
|
+
if (!banned.some((re) => re.test(specifier))) continue;
|
|
168
|
+
if (/^type\s/.test(clause.trim())) continue;
|
|
169
|
+
offenders.push(`${relative(pkgRoot, file)} → ${specifier}`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
expect(offenders).toEqual([]);
|
|
173
|
+
});
|
|
174
|
+
|
|
143
175
|
it("NO module on that graph statically imports zod (PROTECTED)", () => {
|
|
144
176
|
// This used to pin an exact set of one — `graphpack/types.ts`, reached via
|
|
145
177
|
// `resolveSources` → `packIsComplete` → `readManifest` → `manifestSchema
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Storeless: the entity tier reads the index off disk, never booting the store.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import type { VerbSpec } from "../../kernel/spec/
|
|
13
|
+
import type { VerbSpec } from "../../kernel/spec/index.js";
|
|
14
14
|
|
|
15
15
|
/** The `__complete` verb spec. */
|
|
16
16
|
export const completeVerb: VerbSpec<Record<string, unknown>, string[]> = {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { asVerb } from "../../kernel/spec/asVerb.js";
|
|
7
|
-
import type { CapabilityModule } from "../../kernel/spec/
|
|
7
|
+
import type { CapabilityModule } from "../../kernel/spec/index.js";
|
|
8
8
|
import { completeVerb } from "./complete.verb.js";
|
|
9
9
|
import { mcpVerb } from "./mcp.verb.js";
|
|
10
10
|
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* `mcp serve` — the MCP server entry point.
|
|
3
3
|
*
|
|
4
|
-
* The server is not an agent tool, so it is withheld from MCP with a reason
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* a
|
|
4
|
+
* The server is not an agent tool, so it is withheld from MCP with a reason —
|
|
5
|
+
* but it IS a command, and it is spelled like one: a noun and a verb, the same
|
|
6
|
+
* shape as every other pair in the grammar, so it completes, appears in help,
|
|
7
|
+
* and answers `--help` without a special case. The bin still short-circuits
|
|
8
|
+
* the exact `pragma mcp serve` invocation before flag parsing and first-run,
|
|
9
|
+
* because the server's stdout carries JSON-RPC and nothing else may reach it;
|
|
10
|
+
* this spec's lazy `run` is that same serve, for any tier that dispatches it.
|
|
8
11
|
*/
|
|
9
12
|
|
|
10
|
-
import type { VerbSpec } from "../../kernel/spec/
|
|
13
|
+
import type { VerbSpec } from "../../kernel/spec/index.js";
|
|
11
14
|
|
|
12
15
|
/** The `mcp` verb spec. */
|
|
13
16
|
export const mcpVerb: VerbSpec<Record<string, unknown>, void> = {
|
|
14
|
-
path: ["mcp"],
|
|
17
|
+
path: ["mcp", "serve"],
|
|
15
18
|
summary: "Start the MCP server over stdio.",
|
|
16
|
-
hidden: true,
|
|
17
19
|
params: [],
|
|
18
20
|
output: {
|
|
19
21
|
formatters: {
|
|
@@ -2,18 +2,22 @@
|
|
|
2
2
|
* The `ontology` capability module — schema (TBox) inspection.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import type { CapabilityModule } from "../../kernel/spec/
|
|
6
|
-
import {
|
|
7
|
-
ontologyListVerb,
|
|
8
|
-
ontologyLookupVerb,
|
|
9
|
-
ontologyShowVerb,
|
|
10
|
-
} from "./verbs.js";
|
|
5
|
+
import type { CapabilityModule } from "../../kernel/spec/index.js";
|
|
6
|
+
import { ontologyListVerb, ontologyLookupVerb } from "./verbs.js";
|
|
11
7
|
|
|
12
|
-
/**
|
|
13
|
-
* The `ontology` capability module (`list`, `lookup`, and the deprecated `show`
|
|
14
|
-
* alias — AV-228 B1).
|
|
15
|
-
*/
|
|
8
|
+
/** The `ontology` capability module (`list` and the `lookup` by-name read). */
|
|
16
9
|
export const ontologyModule: CapabilityModule = {
|
|
17
10
|
name: "ontology",
|
|
18
|
-
verbs: [ontologyListVerb, ontologyLookupVerb
|
|
11
|
+
verbs: [ontologyListVerb, ontologyLookupVerb],
|
|
12
|
+
/**
|
|
13
|
+
* The ONE hand-declared listing in the distribution. Every other module is
|
|
14
|
+
* story-compiled and has its slice DERIVED from the types its lookup already
|
|
15
|
+
* names; this noun addresses the schema itself, which no `type` filter
|
|
16
|
+
* expresses — the whole TBox is the answer, so it is stated once, here.
|
|
17
|
+
*
|
|
18
|
+
* `0.5` puts the schema below the story collections (weight 1) it explains
|
|
19
|
+
* and above nothing else: an agent orienting itself wants the collections
|
|
20
|
+
* first, then the vocabulary they are described in.
|
|
21
|
+
*/
|
|
22
|
+
mcpListable: { sources: [{ box: "tbox", as: "entities", weight: 0.5 }] },
|
|
19
23
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Ontology inspection (list +
|
|
2
|
+
* Ontology inspection (list + lookup) over the block fixture graph.
|
|
3
3
|
*
|
|
4
4
|
* Asserts the TBox exception: namespaces are grouped with class/property counts,
|
|
5
5
|
* a namespace's class hierarchy carries per-class instance counts from the pack
|
|
@@ -32,10 +32,6 @@ const listVerb = ontologyModule.verbs.find(
|
|
|
32
32
|
const lookupVerb = ontologyModule.verbs.find(
|
|
33
33
|
(v) => verbKey(v.path) === "ontology lookup",
|
|
34
34
|
) as VerbSpec;
|
|
35
|
-
const showVerb = ontologyModule.verbs.find(
|
|
36
|
-
(v) => verbKey(v.path) === "ontology show",
|
|
37
|
-
) as VerbSpec;
|
|
38
|
-
|
|
39
35
|
let rt: PragmaRuntime;
|
|
40
36
|
beforeAll(async () => {
|
|
41
37
|
({ rt } = await buildFixtureRuntime({
|
|
@@ -132,36 +128,11 @@ describe("ontology lookup (primary by-name read)", () => {
|
|
|
132
128
|
});
|
|
133
129
|
});
|
|
134
130
|
|
|
135
|
-
describe("
|
|
136
|
-
|
|
137
|
-
expect(showVerb.summary.toLowerCase()).toContain("deprecated");
|
|
138
|
-
expect(showVerb.summary).toContain("ontology lookup");
|
|
139
|
-
});
|
|
140
|
-
|
|
141
|
-
it("shares the lookup handler — same payload for the same input", async () => {
|
|
142
|
-
const viaLookup = (await lookupVerb.run(
|
|
143
|
-
{ prefix: "ds", properties: true },
|
|
144
|
-
rt,
|
|
145
|
-
)) as OntologyShowData;
|
|
146
|
-
const viaShow = (await showVerb.run(
|
|
147
|
-
{ prefix: "ds", properties: true },
|
|
148
|
-
rt,
|
|
149
|
-
)) as OntologyShowData;
|
|
150
|
-
expect(viaShow).toEqual(viaLookup);
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
it("still rejects an unknown prefix (the alias is a full, callable verb)", async () => {
|
|
154
|
-
await expect(showVerb.run({ prefix: "nope" }, rt)).rejects.toThrow(
|
|
155
|
-
/prefix/i,
|
|
156
|
-
);
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
describe("ontology_show honours detail over MCP (B5)", () => {
|
|
161
|
-
// The CLI B5 cases above seed `globalFlags.detail` and call `showVerb.run`
|
|
131
|
+
describe("ontology_lookup honours detail over MCP (B5)", () => {
|
|
132
|
+
// The CLI B5 cases above seed `globalFlags.detail` and call `lookupVerb.run`
|
|
162
133
|
// directly. Over MCP there are NO global flags — the ONLY detail channel is
|
|
163
134
|
// the per-tool `detail` param the projector injects from the VerbSpec
|
|
164
|
-
// disclosure. Under an AMBIENT config `detail: standard`,
|
|
135
|
+
// disclosure. Under an AMBIENT config `detail: standard`, a by-name read
|
|
165
136
|
// with no declared disclosure would force the properties section with no
|
|
166
137
|
// per-call escape (the AV-228 MCP-opt-out asymmetry `block`/`standard` lack);
|
|
167
138
|
// declaring disclosure lights the param up, so an agent can ask for
|
|
@@ -184,15 +155,6 @@ describe("ontology_show honours detail over MCP (B5)", () => {
|
|
|
184
155
|
await fixture.dispose();
|
|
185
156
|
});
|
|
186
157
|
|
|
187
|
-
it("injects a detail param onto the ontology_show tool (symmetric with block/standard)", async () => {
|
|
188
|
-
const tools = await mcp.listTools();
|
|
189
|
-
const show = tools.find((t) => t.name === "ontology_show");
|
|
190
|
-
const schema = show?.inputSchema as {
|
|
191
|
-
properties?: Record<string, unknown>;
|
|
192
|
-
};
|
|
193
|
-
expect(schema.properties?.detail).toBeDefined();
|
|
194
|
-
});
|
|
195
|
-
|
|
196
158
|
it("exposes the primary ontology_lookup tool with the same injected detail param (AV-228 B1)", async () => {
|
|
197
159
|
const tools = await mcp.listTools();
|
|
198
160
|
const lookup = tools.find((t) => t.name === "ontology_lookup");
|
|
@@ -217,25 +179,14 @@ describe("ontology_show honours detail over MCP (B5)", () => {
|
|
|
217
179
|
it("honours the ambient detail=standard config when no per-call detail is set", async () => {
|
|
218
180
|
// Proves the ambient level really is standard, so the summary case below is
|
|
219
181
|
// a genuine per-call override rather than merely the spec default.
|
|
220
|
-
const result = await mcp.callTool("
|
|
182
|
+
const result = await mcp.callTool("ontology_lookup", { prefix: "ds" });
|
|
221
183
|
expect(result.ok).toBe(true);
|
|
222
184
|
const data = result.data as { properties: unknown[] };
|
|
223
185
|
expect(data.properties.length).toBeGreaterThan(0);
|
|
224
186
|
});
|
|
225
187
|
|
|
226
|
-
it("a per-call detail=summary returns classes-only despite the ambient standard", async () => {
|
|
227
|
-
const result = await mcp.callTool("ontology_show", {
|
|
228
|
-
prefix: "ds",
|
|
229
|
-
detail: "summary",
|
|
230
|
-
});
|
|
231
|
-
expect(result.ok).toBe(true);
|
|
232
|
-
const data = result.data as { classes: unknown[]; properties: unknown[] };
|
|
233
|
-
expect(data.classes.length).toBeGreaterThan(0);
|
|
234
|
-
expect(data.properties).toEqual([]);
|
|
235
|
-
});
|
|
236
|
-
|
|
237
188
|
it("an explicit detail=detailed overrides upward to include properties", async () => {
|
|
238
|
-
const result = await mcp.callTool("
|
|
189
|
+
const result = await mcp.callTool("ontology_lookup", {
|
|
239
190
|
prefix: "ds",
|
|
240
191
|
detail: "detailed",
|
|
241
192
|
});
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* result never depends on which vocabulary prefixes the store injected.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type { PragmaRuntime } from "../../kernel/runtime/
|
|
10
|
+
import type { PragmaRuntime } from "../../kernel/runtime/index.js";
|
|
11
11
|
|
|
12
12
|
const OWL = "http://www.w3.org/2002/07/owl#";
|
|
13
13
|
const RDFS = "http://www.w3.org/2000/01/rdf-schema#";
|
|
@@ -40,7 +40,7 @@ export interface OntologyProperty {
|
|
|
40
40
|
readonly type: "object" | "datatype";
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
/** The `ontology
|
|
43
|
+
/** The `ontology lookup` payload — the detailed view plus render options. */
|
|
44
44
|
export interface OntologyShowData {
|
|
45
45
|
readonly prefix: string;
|
|
46
46
|
readonly namespace: string;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Formatters for `ontology list` and `ontology
|
|
2
|
+
* Formatters for `ontology list` and `ontology lookup`.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import { compactUri } from "../../kernel/render/
|
|
6
|
-
import {
|
|
7
|
-
import type { Formatters } from "../../kernel/spec/types.js";
|
|
5
|
+
import { compactUri, DEFAULT_PREFIX_MAP } from "../../kernel/render/index.js";
|
|
6
|
+
import type { Formatters } from "../../kernel/spec/index.js";
|
|
8
7
|
import type {
|
|
9
8
|
OntologyClass,
|
|
10
9
|
OntologyProperty,
|