@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
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { ISSUES_URL } from "../../constants.js";
|
|
2
|
+
/**
|
|
3
|
+
* Structured error for all pragma operations.
|
|
4
|
+
*
|
|
5
|
+
* Carries a machine-readable {@link ErrorCode}, optional recovery hints, and
|
|
6
|
+
* contextual metadata (suggestions, valid options, active filters) so the CLI
|
|
7
|
+
* and MCP projectors can render one actionable diagnostic from one throw. The
|
|
8
|
+
* effect seam reads throw these directly; mutations surface `TaskError`s that
|
|
9
|
+
* the dispatcher wraps.
|
|
10
|
+
*/
|
|
11
|
+
class PragmaError extends Error {
|
|
12
|
+
/** Machine-readable error classification. */
|
|
13
|
+
code;
|
|
14
|
+
/** Entity that triggered the error (type + name), if applicable. */
|
|
15
|
+
entity;
|
|
16
|
+
/** Fuzzy-matched alternative names the user may have intended. */
|
|
17
|
+
suggestions;
|
|
18
|
+
/** Structured recovery hint with optional CLI command or MCP tool call. */
|
|
19
|
+
recovery;
|
|
20
|
+
/** Active filters at the time of the error, for diagnostic context. */
|
|
21
|
+
filters;
|
|
22
|
+
/** Enumerated valid options when input was rejected. */
|
|
23
|
+
validOptions;
|
|
24
|
+
/**
|
|
25
|
+
* @param data - Structured error payload.
|
|
26
|
+
*/
|
|
27
|
+
constructor(data) {
|
|
28
|
+
super(data.message);
|
|
29
|
+
this.name = "PragmaError";
|
|
30
|
+
this.code = data.code;
|
|
31
|
+
this.entity = data.entity;
|
|
32
|
+
this.suggestions = data.suggestions ?? [];
|
|
33
|
+
this.recovery = data.recovery;
|
|
34
|
+
this.filters = data.filters;
|
|
35
|
+
this.validOptions = data.validOptions;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Factory: entity not found by name.
|
|
39
|
+
*
|
|
40
|
+
* @param entityType - Kind of entity (e.g. `"block"`, `"token"`).
|
|
41
|
+
* @param entityName - Name the user supplied.
|
|
42
|
+
* @param opts - Optional suggestions and recovery hint.
|
|
43
|
+
* @returns PragmaError with code `ENTITY_NOT_FOUND`.
|
|
44
|
+
*/
|
|
45
|
+
static notFound(entityType, entityName, opts = {}) {
|
|
46
|
+
return new PragmaError({
|
|
47
|
+
code: "ENTITY_NOT_FOUND",
|
|
48
|
+
message: `${entityType} "${entityName}" not found.`,
|
|
49
|
+
entity: { type: entityType, name: entityName },
|
|
50
|
+
suggestions: opts.suggestions,
|
|
51
|
+
recovery: opts.recovery,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Factory: query returned zero results.
|
|
56
|
+
*
|
|
57
|
+
* @param entityType - Kind of entity being listed.
|
|
58
|
+
* @param opts - Optional message, active filters, and recovery hint.
|
|
59
|
+
* @returns PragmaError with code `EMPTY_RESULTS`.
|
|
60
|
+
*/
|
|
61
|
+
static emptyResults(entityType, opts = {}) {
|
|
62
|
+
return new PragmaError({
|
|
63
|
+
code: "EMPTY_RESULTS",
|
|
64
|
+
message: opts.message ?? `No ${entityType}s found.`,
|
|
65
|
+
filters: opts.filters,
|
|
66
|
+
recovery: opts.recovery,
|
|
67
|
+
validOptions: opts.validOptions,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Factory: user-supplied input is invalid.
|
|
72
|
+
*
|
|
73
|
+
* @param field - Name of the invalid field or argument.
|
|
74
|
+
* @param value - The rejected value.
|
|
75
|
+
* @param opts - Optional valid alternatives and recovery hint.
|
|
76
|
+
* @returns PragmaError with code `INVALID_INPUT`.
|
|
77
|
+
*/
|
|
78
|
+
static invalidInput(field, value, opts = {}) {
|
|
79
|
+
return new PragmaError({
|
|
80
|
+
code: "INVALID_INPUT",
|
|
81
|
+
message: `Invalid ${field} "${value}".`,
|
|
82
|
+
validOptions: opts.validOptions,
|
|
83
|
+
recovery: opts.recovery,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Factory: an unknown noun/verb was entered.
|
|
88
|
+
*
|
|
89
|
+
* @param verb - The unrecognized command token.
|
|
90
|
+
* @param opts - Optional suggestions and recovery hint.
|
|
91
|
+
* @returns PragmaError with code `UNKNOWN_VERB`.
|
|
92
|
+
*/
|
|
93
|
+
static unknownVerb(verb, opts = {}) {
|
|
94
|
+
return new PragmaError({
|
|
95
|
+
code: "UNKNOWN_VERB",
|
|
96
|
+
message: `Unknown command "${verb}".`,
|
|
97
|
+
suggestions: opts.suggestions,
|
|
98
|
+
recovery: opts.recovery,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Factory: the knowledge-engine store could not be reached.
|
|
103
|
+
*
|
|
104
|
+
* Its own exit code (3) so scripts can distinguish an unavailable store from
|
|
105
|
+
* an ordinary runtime failure.
|
|
106
|
+
*
|
|
107
|
+
* @param reason - Human-readable failure description.
|
|
108
|
+
* @param opts - Optional recovery hint.
|
|
109
|
+
* @returns PragmaError with code `STORE_UNAVAILABLE`.
|
|
110
|
+
*/
|
|
111
|
+
static storeUnavailable(reason, opts = {}) {
|
|
112
|
+
return new PragmaError({
|
|
113
|
+
code: "STORE_UNAVAILABLE",
|
|
114
|
+
message: `Store unavailable. ${reason}`,
|
|
115
|
+
recovery: opts.recovery,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Factory: configuration file is invalid or contains bad values.
|
|
120
|
+
*
|
|
121
|
+
* @param reason - Human-readable description of the config problem.
|
|
122
|
+
* @param opts - Optional valid alternatives and recovery hint.
|
|
123
|
+
* @returns PragmaError with code `CONFIG_ERROR`.
|
|
124
|
+
*/
|
|
125
|
+
static configError(reason, opts = {}) {
|
|
126
|
+
return new PragmaError({
|
|
127
|
+
code: "CONFIG_ERROR",
|
|
128
|
+
message: reason,
|
|
129
|
+
validOptions: opts.validOptions,
|
|
130
|
+
recovery: opts.recovery,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Factory: unexpected internal failure (a bug).
|
|
135
|
+
*
|
|
136
|
+
* @param reason - Description of the internal error.
|
|
137
|
+
* @returns PragmaError with code `INTERNAL_ERROR` and a report-this hint
|
|
138
|
+
* naming the issue tracker.
|
|
139
|
+
*/
|
|
140
|
+
static internalError(reason) {
|
|
141
|
+
return new PragmaError({
|
|
142
|
+
code: "INTERNAL_ERROR",
|
|
143
|
+
message: `Internal error: ${reason}`,
|
|
144
|
+
recovery: { message: `Report this issue at ${ISSUES_URL}.` },
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
export { PragmaError };
|
|
149
|
+
//# sourceMappingURL=PragmaError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PragmaError.js","sourceRoot":"","sources":["../../../../src/kernel/error/PragmaError.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The closed set of pragma error codes.
|
|
3
|
+
*
|
|
4
|
+
* Every {@link PragmaError} carries one of these; the CLI projector maps each
|
|
5
|
+
* to a process exit code and the covenant freezes the exit-code table. Ported
|
|
6
|
+
* from the v1 error kernel with two additions for the v2 exit model:
|
|
7
|
+
* `STORE_UNAVAILABLE` (its own exit code, D2) and `UNKNOWN_VERB` (the usage
|
|
8
|
+
* class the unknown-command suggester resolves to). A store failure is either
|
|
9
|
+
* `STORE_UNAVAILABLE` (can't reach it) or a plain `INTERNAL_ERROR`, so no
|
|
10
|
+
* distinct `STORE_ERROR` code is carried.
|
|
11
|
+
*/
|
|
12
|
+
/** All recognized pragma error codes as a const tuple. */
|
|
13
|
+
const ERROR_CODES = [
|
|
14
|
+
"ENTITY_NOT_FOUND",
|
|
15
|
+
"EMPTY_RESULTS",
|
|
16
|
+
"INVALID_INPUT",
|
|
17
|
+
// RESERVED: declared and exit-mapped (usage, exit 2) for forward-compat and
|
|
18
|
+
// advertised in the covenant, but not yet raised by any site. Reserved for a
|
|
19
|
+
// future ambiguous glob/lookup match (a name resolving to several entities);
|
|
20
|
+
// until then no factory exists, so it cannot be raised by accident.
|
|
21
|
+
"AMBIGUOUS_INPUT",
|
|
22
|
+
"UNKNOWN_VERB",
|
|
23
|
+
"STORE_UNAVAILABLE",
|
|
24
|
+
"CONFIG_ERROR",
|
|
25
|
+
"INTERNAL_ERROR",
|
|
26
|
+
// A runtime condition that is NOT a bug and NOT a usage mistake, so it must
|
|
27
|
+
// NOT collapse to INTERNAL_ERROR's "report this issue": a capability
|
|
28
|
+
// genuinely unavailable in this environment (`create` refusing when its
|
|
29
|
+
// lazily-imported generator runtime cannot be loaded at all — the
|
|
30
|
+
// module-not-found backstop in `capabilities/create/create.verb.ts`, which
|
|
31
|
+
// means the `@canonical/summon-*` dependencies could not be resolved, i.e. a
|
|
32
|
+
// broken or pruned install; every declared generator otherwise runs
|
|
33
|
+
// everywhere), OR an external command
|
|
34
|
+
// that RAN and failed for a fixable environment reason (a denied global
|
|
35
|
+
// `npm i -g`, a network/registry failure — see `shared/assertExecOk`). Both
|
|
36
|
+
// carry an actionable recovery and map to the generic runtime exit 1.
|
|
37
|
+
"UNSUPPORTED",
|
|
38
|
+
];
|
|
39
|
+
export { ERROR_CODES };
|
|
40
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/kernel/error/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0DAA0D;AAC1D,MAAM,WAAW,GAAG;IAClB,kBAAkB;IAClB,eAAe;IACf,eAAe;IACf,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,oEAAoE;IACpE,iBAAiB;IACjB,cAAc;IACd,mBAAmB;IACnB,cAAc;IACd,gBAAgB;IAChB,4EAA4E;IAC5E,qEAAqE;IACrE,wEAAwE;IACxE,kEAAkE;IAClE,2EAA2E;IAC3E,6EAA6E;IAC7E,oEAAoE;IACpE,sCAAsC;IACtC,wEAAwE;IACxE,4EAA4E;IAC5E,sEAAsE;IACtE,aAAa;CACL,CAAC;AAEX,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridge task-interpreter / summon-core error codes to the pragma boundary.
|
|
3
|
+
*
|
|
4
|
+
* A mutating verb's Task can fail with a code raised by summon-core's `execute`:
|
|
5
|
+
* `GENERATOR_CANCELLED` when an attended-TTY user DECLINES the confirm gate, and
|
|
6
|
+
* `MISSING_REQUIRED_ANSWER` / `GENERATOR_INVALID_ANSWER` for absent or invalid
|
|
7
|
+
* non-interactive answers. `runTask` rethrows these as a `TaskExecutionError`
|
|
8
|
+
* carrying `.code`. Without a bridge the CLI/MCP boundary collapses every
|
|
9
|
+
* non-`PragmaError` to INTERNAL_ERROR + "report this issue" — telling a
|
|
10
|
+
* user to file a bug for cancelling their own scaffold.
|
|
11
|
+
*
|
|
12
|
+
* The codes are matched as STRING LITERALS, never imported from summon-core, so
|
|
13
|
+
* the kernel keeps summon-core out of its static import graph (the lazy-React /
|
|
14
|
+
* lazy-summon discipline that is the whole reason `create` dynamic-imports it).
|
|
15
|
+
*/
|
|
16
|
+
import { PragmaError } from "./PragmaError.js";
|
|
17
|
+
/** summon-core's task-error code for a run declined at the confirm gate. */
|
|
18
|
+
const GENERATOR_CANCELLED = "GENERATOR_CANCELLED";
|
|
19
|
+
/** The interpreter's task-error code for a run aborted mid-flight (SIGINT). */
|
|
20
|
+
const TASK_INTERRUPTED = "TASK_INTERRUPTED";
|
|
21
|
+
/** summon-core task-error codes for absent/invalid non-interactive answers. */
|
|
22
|
+
const ANSWER_USAGE_CODES = new Set([
|
|
23
|
+
"MISSING_REQUIRED_ANSWER",
|
|
24
|
+
"GENERATOR_INVALID_ANSWER",
|
|
25
|
+
]);
|
|
26
|
+
/** The clean, non-scary line shown when a user cancels at the confirm gate. */
|
|
27
|
+
export const CANCELLED_MESSAGE = "Cancelled.";
|
|
28
|
+
/** Read a task-interpreter error code off a thrown value, if it carries one. */
|
|
29
|
+
function taskErrorCode(error) {
|
|
30
|
+
if (error && typeof error === "object" && "code" in error) {
|
|
31
|
+
const { code } = error;
|
|
32
|
+
if (typeof code === "string")
|
|
33
|
+
return code;
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* True when the throw is an attended user DECLINING the interactive confirm
|
|
39
|
+
* gate — a deliberate choice, not a failure. The boundary renders this as a
|
|
40
|
+
* clean cancellation (a plain message, success exit), never INTERNAL_ERROR.
|
|
41
|
+
*/
|
|
42
|
+
export function isCancellation(error) {
|
|
43
|
+
return taskErrorCode(error) === GENERATOR_CANCELLED;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* True when the throw is the interpreter aborting a run mid-flight — a SIGINT
|
|
47
|
+
* on a `--yes`/CI run, or an in-wizard Ctrl-C DURING execution (which aborts
|
|
48
|
+
* the run's controller). Distinct from {@link isCancellation}: a cancel is a
|
|
49
|
+
* clean user decline (exit 0), an interruption stopped work already underway
|
|
50
|
+
* (exit 130, UNIX 128+SIGINT). The boundary renders both with the same clean
|
|
51
|
+
* "Cancelled." line — neither is a bug to report — but with different exit
|
|
52
|
+
* codes.
|
|
53
|
+
*/
|
|
54
|
+
export function isInterruption(error) {
|
|
55
|
+
return taskErrorCode(error) === TASK_INTERRUPTED;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The {@link PragmaError} a task failure CARRIES, if any. A task-layer failure
|
|
59
|
+
* raised through the failure channel (`failPragma` — so an enclosing `recover`
|
|
60
|
+
* such as setup's per-step isolation can catch it, which a synchronous throw
|
|
61
|
+
* bypasses) stores the original PragmaError as the TaskError's `cause`;
|
|
62
|
+
* `runTask` then wraps that TaskError in a `TaskExecutionError` whose
|
|
63
|
+
* `taskError` carries it. Walk both wrappers (bounded — the shapes nest at
|
|
64
|
+
* most a few levels) so the boundary recovers the ORIGINAL error with its
|
|
65
|
+
* code, message, and recovery intact.
|
|
66
|
+
*/
|
|
67
|
+
function carriedPragmaError(error) {
|
|
68
|
+
let current = error;
|
|
69
|
+
for (let depth = 0; depth < 4 && current !== undefined; depth += 1) {
|
|
70
|
+
if (current instanceof PragmaError)
|
|
71
|
+
return current;
|
|
72
|
+
const record = current;
|
|
73
|
+
current = record?.taskError ?? record?.cause;
|
|
74
|
+
}
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Coerce a thrown value into a {@link PragmaError} for the CLI/MCP boundary,
|
|
79
|
+
* bridging summon-core task-error codes: a `PragmaError` (direct, or carried
|
|
80
|
+
* through the task failure channel as a TaskError `cause`) passes through
|
|
81
|
+
* unchanged; absent/invalid non-interactive answers become INVALID_INPUT (a
|
|
82
|
+
* usage error, exit 2); everything else stays INTERNAL_ERROR. Cancellation is
|
|
83
|
+
* handled separately by {@link isCancellation} as a clean, non-error outcome.
|
|
84
|
+
*/
|
|
85
|
+
export function asPragmaError(error) {
|
|
86
|
+
const carried = carriedPragmaError(error);
|
|
87
|
+
if (carried !== undefined)
|
|
88
|
+
return carried;
|
|
89
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
90
|
+
const code = taskErrorCode(error);
|
|
91
|
+
if (code !== undefined && ANSWER_USAGE_CODES.has(code)) {
|
|
92
|
+
return new PragmaError({ code: "INVALID_INPUT", message });
|
|
93
|
+
}
|
|
94
|
+
return PragmaError.internalError(message);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=fromTaskError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fromTaskError.js","sourceRoot":"","sources":["../../../../src/kernel/error/fromTaskError.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,4EAA4E;AAC5E,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAElD,+EAA+E;AAC/E,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C,+EAA+E;AAC/E,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAS;IACzC,yBAAyB;IACzB,0BAA0B;CAC3B,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAE9C,gFAAgF;AAChF,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,KAA0B,CAAC;QAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,aAAa,CAAC,KAAK,CAAC,KAAK,mBAAmB,CAAC;AACtD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,aAAa,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC;AACnD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,OAAO,GAAY,KAAK,CAAC;IAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,OAAO,KAAK,SAAS,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACnE,IAAI,OAAO,YAAY,WAAW;YAAE,OAAO,OAAO,CAAC;QACnD,MAAM,MAAM,GAAG,OAA0D,CAAC;QAC1E,OAAO,GAAG,MAAM,EAAE,SAAS,IAAI,MAAM,EAAE,KAAK,CAAC;IAC/C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC1C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,SAAS,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error kernel barrel — the structured error model and its renderers.
|
|
3
|
+
*
|
|
4
|
+
* The projectors import `PragmaError` and the renderers from here; the
|
|
5
|
+
* recovery invariant and the serializer are exported for the seams that build
|
|
6
|
+
* and marshal errors.
|
|
7
|
+
*/
|
|
8
|
+
export { ERROR_CODES } from "./constants.js";
|
|
9
|
+
export { PragmaError } from "./PragmaError.js";
|
|
10
|
+
export { cliRecovery } from "./recovery.js";
|
|
11
|
+
export { renderErrorJson, renderErrorLlm, renderErrorPlain, } from "./renderError.js";
|
|
12
|
+
export { serializeError } from "./serialize.js";
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/kernel/error/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The recovery-string invariant (D5).
|
|
3
|
+
*
|
|
4
|
+
* A `recovery.cli` hint quotes a command the installed binary answers to, so it
|
|
5
|
+
* must begin with {@link RECOVERY_CLI_PREFIX} — the distribution's own `name`
|
|
6
|
+
* plus a space. {@link cliRecovery} takes the command SUFFIX and prepends the
|
|
7
|
+
* prefix itself, so a hint that names the wrong binary is unwritable rather
|
|
8
|
+
* than merely detected. That is why there is no assertion here: an assertion
|
|
9
|
+
* over a string the caller composed from the prefix cannot fail, and the hints
|
|
10
|
+
* that were actually wrong were raw `cli:` object literals that never reached
|
|
11
|
+
* this function at all. `kernel/copy.test.ts` covers those, at the position.
|
|
12
|
+
*
|
|
13
|
+
* A THIRD authoring route is also legal and reached by NEITHER guard: a `cli`
|
|
14
|
+
* DERIVED from the program's own name at the call site. One site does this —
|
|
15
|
+
* the create mount (`capabilities/create/mount.ts`,
|
|
16
|
+
* `[...detail.chain, suggestion].join(" ")`), whose `chain[0]` is the root
|
|
17
|
+
* Commander program's name, `BIN_NAME` by wiring. It bypasses
|
|
18
|
+
* {@link cliRecovery}, and the position rule is structurally blind to it (it
|
|
19
|
+
* flags QUOTED literals containing the distribution's name, never a computed
|
|
20
|
+
* expression) — so D5 holds there by derivation, and the derivation is pinned
|
|
21
|
+
* where the value surfaces: `createGrammar.test.ts` COMPOSES its expected
|
|
22
|
+
* `cli` from {@link RECOVERY_CLI_PREFIX}, so a renamed root program reddens
|
|
23
|
+
* the cell naming the constant. (A separate `startsWith` assertion cannot
|
|
24
|
+
* pin it — behind an exact pin of the same value it has no reachable
|
|
25
|
+
* failing input.)
|
|
26
|
+
*
|
|
27
|
+
* `kernel/packs/schema.ts` holds a user-authored pack's `emptyRecovery.cli` to
|
|
28
|
+
* the same shape from the other side — it must NOT carry a prefix, because the
|
|
29
|
+
* consuming distribution's renderer supplies one.
|
|
30
|
+
*/
|
|
31
|
+
import { RECOVERY_CLI_PREFIX } from "../../constants.js";
|
|
32
|
+
/**
|
|
33
|
+
* Build a {@link Recovery} whose `cli` command carries the distribution's own
|
|
34
|
+
* prefix, optionally pairing it with an MCP tool an agent can call.
|
|
35
|
+
*
|
|
36
|
+
* A recovery may need to speak to BOTH surfaces: the `cli` string guides a human,
|
|
37
|
+
* while `mcp` names the tool an agent invokes (an agent cannot run a shell
|
|
38
|
+
* command). The single human `message` is shared by both.
|
|
39
|
+
*
|
|
40
|
+
* @param command - The recovery command WITHOUT the binary name (`sources update`).
|
|
41
|
+
* @param message - Human-readable guidance shown alongside the command.
|
|
42
|
+
* @param mcp - The MCP tool (and optional params) an agent calls to recover.
|
|
43
|
+
* @returns A recovery hint whose `cli` names this distribution's binary.
|
|
44
|
+
*/
|
|
45
|
+
export function cliRecovery(command, message, mcp) {
|
|
46
|
+
return {
|
|
47
|
+
message,
|
|
48
|
+
cli: `${RECOVERY_CLI_PREFIX}${command}`,
|
|
49
|
+
...(mcp ? { mcp } : {}),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../../../src/kernel/error/recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CACzB,OAAe,EACf,OAAe,EACf,GAAqB;IAErB,OAAO;QACL,OAAO;QACP,GAAG,EAAE,GAAG,mBAAmB,GAAG,OAAO,EAAE;QACvC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render a {@link PragmaError} for each output surface.
|
|
3
|
+
*
|
|
4
|
+
* Plain text targets a human terminal (stderr), condensed Markdown targets an
|
|
5
|
+
* agent reading `--format llm`, and JSON emits the `{ ok: false, error }` envelope —
|
|
6
|
+
* the same failure shape the MCP projector returns, so agents see one contract
|
|
7
|
+
* whichever transport they use.
|
|
8
|
+
*/
|
|
9
|
+
import { serializeError } from "./serialize.js";
|
|
10
|
+
/**
|
|
11
|
+
* Render a {@link PragmaError} as human-readable plain text for the terminal.
|
|
12
|
+
*
|
|
13
|
+
* @param error - The structured error to render.
|
|
14
|
+
* @returns Multi-line plain text string.
|
|
15
|
+
*/
|
|
16
|
+
function renderErrorPlain(error) {
|
|
17
|
+
const lines = [`Error: ${error.message}`];
|
|
18
|
+
if (error.suggestions.length > 0) {
|
|
19
|
+
lines.push("", "Did you mean?");
|
|
20
|
+
for (const suggestion of error.suggestions) {
|
|
21
|
+
lines.push(` - ${suggestion}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (error.filters) {
|
|
25
|
+
lines.push("", "Active filters:");
|
|
26
|
+
for (const [key, value] of Object.entries(error.filters)) {
|
|
27
|
+
lines.push(` ${key}: ${value}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (error.validOptions && error.validOptions.length > 0) {
|
|
31
|
+
lines.push("", `Valid options: ${error.validOptions.join(", ")}`);
|
|
32
|
+
}
|
|
33
|
+
if (error.recovery) {
|
|
34
|
+
lines.push("");
|
|
35
|
+
// Keep the human guidance AND the runnable command — dropping the message
|
|
36
|
+
// when a `cli` is present loses the WHY (e.g. "Build the local store …").
|
|
37
|
+
lines.push(error.recovery.cli
|
|
38
|
+
? `${error.recovery.message} Run \`${error.recovery.cli}\``
|
|
39
|
+
: error.recovery.message);
|
|
40
|
+
}
|
|
41
|
+
return lines.join("\n");
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Render a {@link PragmaError} as condensed Markdown for agent consumption.
|
|
45
|
+
*
|
|
46
|
+
* @param error - The structured error to render.
|
|
47
|
+
* @returns Markdown-formatted string.
|
|
48
|
+
*/
|
|
49
|
+
function renderErrorLlm(error) {
|
|
50
|
+
const lines = [`## Error: ${error.code}`, error.message];
|
|
51
|
+
if (error.suggestions.length > 0) {
|
|
52
|
+
lines.push(`Suggestions: ${error.suggestions.join(", ")}`);
|
|
53
|
+
}
|
|
54
|
+
if (error.filters) {
|
|
55
|
+
const filterParts = Object.entries(error.filters)
|
|
56
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
57
|
+
.join(", ");
|
|
58
|
+
lines.push(`Filters: ${filterParts}`);
|
|
59
|
+
}
|
|
60
|
+
if (error.validOptions && error.validOptions.length > 0) {
|
|
61
|
+
lines.push(`Valid options: ${error.validOptions.join(", ")}`);
|
|
62
|
+
}
|
|
63
|
+
if (error.recovery) {
|
|
64
|
+
// Keep both the guidance and the runnable command (message was dropped when
|
|
65
|
+
// a `cli` was present).
|
|
66
|
+
lines.push(error.recovery.cli
|
|
67
|
+
? `Recovery: ${error.recovery.message} \`${error.recovery.cli}\``
|
|
68
|
+
: `Recovery: ${error.recovery.message}`);
|
|
69
|
+
}
|
|
70
|
+
return lines.join("\n");
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Render a {@link PragmaError} as the `{ ok: false, error }` JSON envelope.
|
|
74
|
+
*
|
|
75
|
+
* @param error - The structured error to render.
|
|
76
|
+
* @returns Serialized failure envelope, identical to the MCP error envelope.
|
|
77
|
+
*/
|
|
78
|
+
function renderErrorJson(error) {
|
|
79
|
+
return JSON.stringify({ ok: false, error: serializeError(error) });
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Render an error for an EXPLICITLY requested machine format, or decline.
|
|
83
|
+
*
|
|
84
|
+
* The ONE machine-format envelope decision for the usage-error surfaces —
|
|
85
|
+
* `handleProgramError`'s Commander parse failures (the unknown-command arm
|
|
86
|
+
* included), the create mount's projection usage-error writer, and
|
|
87
|
+
* `writeRefusal`: an explicit `--format json` renders the failure envelope,
|
|
88
|
+
* an explicit `--format llm` the condensed Markdown form, and anything else
|
|
89
|
+
* returns `undefined` so the caller keeps its raw default bytes.
|
|
90
|
+
* Auto-detected llm is excluded by construction — `parseGlobalFlags` leaves
|
|
91
|
+
* `format` at `"plain"` under auto-detection and records `autoLlm`
|
|
92
|
+
* separately — so an inferred output mode can never move the default
|
|
93
|
+
* (cross-CLI parity) bytes. Hoisted so the gate and the renderer pick exist
|
|
94
|
+
* ONCE instead of drifting per call site (they had already split: sites
|
|
95
|
+
* gated on json only vs json|llm, and `--format llm` enveloped some members
|
|
96
|
+
* of the usage-error class while siblings stayed raw). Deliberately NOT
|
|
97
|
+
* routed through here: the always-render sites with no raw arm to arbitrate
|
|
98
|
+
* — `renderStartupError`, bin.ts's bad-`--format` rejection,
|
|
99
|
+
* `handleProgramError`'s non-Commander fallthrough, and dispatch's
|
|
100
|
+
* `renderError` (which deliberately includes autoLlm for run errors) — each
|
|
101
|
+
* picks a PragmaError renderer directly.
|
|
102
|
+
*
|
|
103
|
+
* @param error - The structured error to render.
|
|
104
|
+
* @param format - The parsed global `--format` value.
|
|
105
|
+
* @returns The rendered string for `json`/`llm`; `undefined` for `plain`.
|
|
106
|
+
*/
|
|
107
|
+
function renderErrorForFormat(error, format) {
|
|
108
|
+
if (format === "json")
|
|
109
|
+
return renderErrorJson(error);
|
|
110
|
+
if (format === "llm")
|
|
111
|
+
return renderErrorLlm(error);
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
export { renderErrorForFormat, renderErrorJson, renderErrorLlm, renderErrorPlain, };
|
|
115
|
+
//# sourceMappingURL=renderError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderError.js","sourceRoot":"","sources":["../../../../src/kernel/error/renderError.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serialize a {@link PragmaError} into the covenant's error payload.
|
|
3
|
+
*
|
|
4
|
+
* The payload is the `error` field of the `{ ok: false, error }` envelope and
|
|
5
|
+
* is shared verbatim by the CLI (`--format json`) and MCP projectors, so both
|
|
6
|
+
* emit byte-identical error output. Optional fields are omitted rather than set
|
|
7
|
+
* to `undefined`, keeping the JSON minimal and stable.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Project a {@link PragmaError} onto the frozen {@link ErrorPayload} shape.
|
|
11
|
+
*
|
|
12
|
+
* @param error - The structured error to serialize.
|
|
13
|
+
* @returns The payload embedded under `error` in the failure envelope.
|
|
14
|
+
*/
|
|
15
|
+
export function serializeError(error) {
|
|
16
|
+
return {
|
|
17
|
+
code: error.code,
|
|
18
|
+
message: error.message,
|
|
19
|
+
...(error.suggestions.length > 0 && { suggestions: error.suggestions }),
|
|
20
|
+
...(error.recovery && { recovery: error.recovery }),
|
|
21
|
+
...(error.validOptions && { validOptions: error.validOptions }),
|
|
22
|
+
...(error.filters && { filters: error.filters }),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../../src/kernel/error/serialize.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAkB;IAC/C,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QACvE,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnD,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;QAC/D,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;KACjD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error type definitions for the pragma error system.
|
|
3
|
+
*
|
|
4
|
+
* Separated from the {@link PragmaError} class so consumers that only need the
|
|
5
|
+
* shapes (renderers, the MCP envelope, the exit-code mapper) can import types
|
|
6
|
+
* without pulling in the class or its factories.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/kernel/error/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The kernel's own top-level declarations — the small set of facts that belong
|
|
3
|
+
* to no sub-domain because every sub-domain may need them.
|
|
4
|
+
*
|
|
5
|
+
* This is NOT a facade over the kernel. `kernel/` is a namespace of domains,
|
|
6
|
+
* each of which keeps its own barrel (`config/`, `render/`, `runtime/`,
|
|
7
|
+
* `packs/`, `error/`, `spec/`, `completion/`, `project/…`); a consumer wanting
|
|
8
|
+
* one of those imports that domain's barrel, not this one. What lives here is
|
|
9
|
+
* only what sits directly in `kernel/`, and the bar for putting a file there
|
|
10
|
+
* is high: it must be a declaration the kernel makes about itself rather than
|
|
11
|
+
* a step in any one pipeline.
|
|
12
|
+
*
|
|
13
|
+
* Today that is the declared vocabulary and the interactivity vocabulary. The
|
|
14
|
+
* latter (`interactivity.ts`) names the questions about attended streams — is
|
|
15
|
+
* stdout captured, may we prompt, may we color (that third one lives with the
|
|
16
|
+
* styler, for the dependency reason its docblock records) — which render,
|
|
17
|
+
* dispatch and flag parsing each used to answer with their own inline probe.
|
|
18
|
+
* They are different questions over different streams, and the names are what
|
|
19
|
+
* keeps them from being flattened into one flag.
|
|
20
|
+
*
|
|
21
|
+
* The declared vocabulary is the distribution's mapping from the roles the
|
|
22
|
+
* CLI knows (a prompt, a resource) onto the RDF terms that actually
|
|
23
|
+
* carry them in the active graph. It is parsed once at module load and read
|
|
24
|
+
* from the prompt capability, the MCP prompt source, and the pack index
|
|
25
|
+
* builder, none of which owns it and any of which would otherwise hardcode
|
|
26
|
+
* someone else's IRIs.
|
|
27
|
+
*
|
|
28
|
+
* The copy-gate rule table (`copy.ts`) deliberately stays off this barrel. It
|
|
29
|
+
* is reviewed data consumed by its own test and by nothing else at runtime;
|
|
30
|
+
* exporting it here would advertise a runtime API the gate does not have.
|
|
31
|
+
*/
|
|
32
|
+
export { canPrompt, stdoutIsCaptured } from "./interactivity.js";
|
|
33
|
+
export { VOCABULARY } from "./vocabulary.js";
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kernel/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The interactivity vocabulary — three named questions over three streams.
|
|
3
|
+
*
|
|
4
|
+
* Every one of these used to be spelled inline as a bare `process.<stream>
|
|
5
|
+
* .isTTY === true` at the site that needed it, in four places, and the
|
|
6
|
+
* spellings did not agree — because they are NOT the same question. Naming them
|
|
7
|
+
* is the point: the names are what stop the next reader from "simplifying"
|
|
8
|
+
* three probes into one flag.
|
|
9
|
+
*
|
|
10
|
+
* - {@link stdoutIsCaptured} reads **stdout**. It governs OUTPUT SHAPE: whether
|
|
11
|
+
* a consumer is piping the data stream somewhere (the shape an agent
|
|
12
|
+
* captures), which is what AUTO-INFERS the condensed `llm` default. Capture
|
|
13
|
+
* is the inference, not the gate: what drops the root-help wordmark is the
|
|
14
|
+
* resulting shape — `llm` or `json` — so an explicit `--format plain` through
|
|
15
|
+
* a pipe is captured and keeps the art, while `--format llm` on an attended
|
|
16
|
+
* terminal is not captured and drops it. Explicit format beats inference, in
|
|
17
|
+
* both directions.
|
|
18
|
+
* - {@link canPrompt} reads **stdin AND stderr** — never stdout. The step
|
|
19
|
+
* sequence renders to stderr and reads stdin, so `<verb> 2>/dev/null` is
|
|
20
|
+
* non-interactive while `<verb> | cat` is not. Gating this one on stdout
|
|
21
|
+
* would mount an invisible render that then blocks on stdin.
|
|
22
|
+
* - `canColor` (`render/style.ts`) reads **stdout** plus chalk's own color
|
|
23
|
+
* level, so piped, redirected and MCP output stays byte-stable even where
|
|
24
|
+
* `supports-color` fires off a TTY. It is the one question of the three that
|
|
25
|
+
* lives with the styler rather than here, because it needs `chalk` and this
|
|
26
|
+
* module is imported by global-flag parsing — which runs before `--version`
|
|
27
|
+
* answers, on a path that must load nothing it does not use. It still asks
|
|
28
|
+
* its stdout half through {@link stdoutIsCaptured}, so the three stay one
|
|
29
|
+
* vocabulary.
|
|
30
|
+
*
|
|
31
|
+
* The distinction is not academic: an agent running a mutating verb with its
|
|
32
|
+
* stdout captured but a terminal still attached is CAPTURED and PROMPTABLE at
|
|
33
|
+
* the same time. Answering either question with the other's probe would either
|
|
34
|
+
* hang a pipeline or refuse a human.
|
|
35
|
+
*
|
|
36
|
+
* These are the only sanctioned readers of `process.*.isTTY` outside a test.
|
|
37
|
+
* Each is a plain function rather than a module-load constant because a test
|
|
38
|
+
* assigns the streams' `isTTY` per case, and a constant would freeze the first
|
|
39
|
+
* value the process ever saw.
|
|
40
|
+
*/
|
|
41
|
+
/**
|
|
42
|
+
* Whether stdout is going somewhere other than an attended terminal — piped,
|
|
43
|
+
* redirected, or read by a parent process.
|
|
44
|
+
*
|
|
45
|
+
* The OUTPUT-SHAPE question, and stdout's alone: it says nothing about whether
|
|
46
|
+
* a human is available to answer a prompt (see {@link canPrompt}).
|
|
47
|
+
*
|
|
48
|
+
* @returns True when stdout is not a TTY.
|
|
49
|
+
* @note Impure — reads `process.stdout.isTTY`.
|
|
50
|
+
*/
|
|
51
|
+
export function stdoutIsCaptured() {
|
|
52
|
+
return process.stdout.isTTY !== true;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Whether this invocation may ask the user a question: stdin AND stderr are
|
|
56
|
+
* both attended terminals.
|
|
57
|
+
*
|
|
58
|
+
* THE interactivity gate (H3). One exported fact, so the kernel's interaction
|
|
59
|
+
* context and a mounted subtree's own decision can never disagree about what
|
|
60
|
+
* "a TTY" means. Deliberately blind to stdout — see the module docblock.
|
|
61
|
+
*
|
|
62
|
+
* @returns True when a prompt can be both drawn and answered.
|
|
63
|
+
* @note Impure — reads `process.stdin.isTTY` and `process.stderr.isTTY`.
|
|
64
|
+
*/
|
|
65
|
+
export function canPrompt() {
|
|
66
|
+
return process.stdin.isTTY === true && process.stderr.isTTY === true;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=interactivity.js.map
|