@canonical/pragma-cli 0.33.0 → 0.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +153 -30
- package/dist/.build-ok +0 -0
- package/dist/package.json +83 -0
- package/dist/pragma.conf.js +814 -0
- package/dist/pragma.conf.js.map +1 -0
- package/dist/src/bin.js +356 -0
- package/dist/src/bin.js.map +1 -0
- package/dist/src/capabilities/capabilities/capabilities.render.js +70 -0
- package/dist/src/capabilities/capabilities/capabilities.render.js.map +1 -0
- package/dist/src/capabilities/capabilities/capabilities.verb.js +59 -0
- package/dist/src/capabilities/capabilities/capabilities.verb.js.map +1 -0
- package/dist/src/capabilities/capabilities/catalog.js +130 -0
- package/dist/src/capabilities/capabilities/catalog.js.map +1 -0
- package/dist/src/capabilities/capabilities/hints.js +195 -0
- package/dist/src/capabilities/capabilities/hints.js.map +1 -0
- package/dist/src/capabilities/capabilities/index.js +11 -0
- package/dist/src/capabilities/capabilities/index.js.map +1 -0
- package/dist/src/capabilities/capabilities/types.js +11 -0
- package/dist/src/capabilities/capabilities/types.js.map +1 -0
- package/dist/src/capabilities/colophon/collectColophon.js +83 -0
- package/dist/src/capabilities/colophon/collectColophon.js.map +1 -0
- package/dist/src/capabilities/colophon/colophon.render.js +59 -0
- package/dist/src/capabilities/colophon/colophon.render.js.map +1 -0
- package/dist/src/capabilities/colophon/colophon.verb.js +43 -0
- package/dist/src/capabilities/colophon/colophon.verb.js.map +1 -0
- package/dist/src/capabilities/colophon/index.js +5 -0
- package/dist/src/capabilities/colophon/index.js.map +1 -0
- package/dist/src/capabilities/colophon/markdownTerminal.js +90 -0
- package/dist/src/capabilities/colophon/markdownTerminal.js.map +1 -0
- package/dist/src/capabilities/colophon/types.js +10 -0
- package/dist/src/capabilities/colophon/types.js.map +1 -0
- package/dist/src/capabilities/config/collectConfigShow.js +59 -0
- package/dist/src/capabilities/config/collectConfigShow.js.map +1 -0
- package/dist/src/capabilities/config/field.render.js +22 -0
- package/dist/src/capabilities/config/field.render.js.map +1 -0
- package/dist/src/capabilities/config/fields.js +46 -0
- package/dist/src/capabilities/config/fields.js.map +1 -0
- package/dist/src/capabilities/config/get.verb.js +61 -0
- package/dist/src/capabilities/config/get.verb.js.map +1 -0
- package/dist/src/capabilities/config/index.js +5 -0
- package/dist/src/capabilities/config/index.js.map +1 -0
- package/dist/src/capabilities/config/runField.js +59 -0
- package/dist/src/capabilities/config/runField.js.map +1 -0
- package/dist/src/capabilities/config/runGet.js +28 -0
- package/dist/src/capabilities/config/runGet.js.map +1 -0
- package/dist/src/capabilities/config/runSet.js +53 -0
- package/dist/src/capabilities/config/runSet.js.map +1 -0
- package/dist/src/capabilities/config/set.verb.js +66 -0
- package/dist/src/capabilities/config/set.verb.js.map +1 -0
- package/dist/src/capabilities/config/show.render.js +84 -0
- package/dist/src/capabilities/config/show.render.js.map +1 -0
- package/dist/src/capabilities/config/show.verb.js +44 -0
- package/dist/src/capabilities/config/show.verb.js.map +1 -0
- package/dist/src/capabilities/config/types.js +5 -0
- package/dist/src/capabilities/config/types.js.map +1 -0
- package/dist/src/capabilities/config/unset.verb.js +49 -0
- package/dist/src/capabilities/config/unset.verb.js.map +1 -0
- package/dist/src/capabilities/create/cliProjection.js +195 -0
- package/dist/src/capabilities/create/cliProjection.js.map +1 -0
- package/dist/src/capabilities/create/constants.js +47 -0
- package/dist/src/capabilities/create/constants.js.map +1 -0
- package/dist/src/capabilities/create/create.render.js +100 -0
- package/dist/src/capabilities/create/create.render.js.map +1 -0
- package/dist/src/capabilities/create/create.verb.js +438 -0
- package/dist/src/capabilities/create/create.verb.js.map +1 -0
- package/dist/src/capabilities/create/createHelp.js +47 -0
- package/dist/src/capabilities/create/createHelp.js.map +1 -0
- package/dist/src/capabilities/create/createSurface.generated.js +394 -0
- package/dist/src/capabilities/create/createSurface.generated.js.map +1 -0
- package/dist/src/capabilities/create/generatorToVerbSpec.js +106 -0
- package/dist/src/capabilities/create/generatorToVerbSpec.js.map +1 -0
- package/dist/src/capabilities/create/index.js +18 -0
- package/dist/src/capabilities/create/index.js.map +1 -0
- package/dist/src/capabilities/create/messages.js +16 -0
- package/dist/src/capabilities/create/messages.js.map +1 -0
- package/dist/src/capabilities/create/mount.js +293 -0
- package/dist/src/capabilities/create/mount.js.map +1 -0
- package/dist/src/capabilities/create/pathJail.js +65 -0
- package/dist/src/capabilities/create/pathJail.js.map +1 -0
- package/dist/src/capabilities/create/pickGenerator.js +53 -0
- package/dist/src/capabilities/create/pickGenerator.js.map +1 -0
- package/dist/src/capabilities/create/types.js +2 -0
- package/dist/src/capabilities/create/types.js.map +1 -0
- package/dist/src/capabilities/distribution.js +40 -0
- package/dist/src/capabilities/distribution.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/checkKeStore.js +40 -0
- package/dist/src/capabilities/doctor/checks/checkKeStore.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/checkNodeVersion.js +21 -0
- package/dist/src/capabilities/doctor/checks/checkNodeVersion.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/checkPackageRefs.js +92 -0
- package/dist/src/capabilities/doctor/checks/checkPackageRefs.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/checkPragmaVersion.js +19 -0
- package/dist/src/capabilities/doctor/checks/checkPragmaVersion.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/checkShellCompletions.js +199 -0
- package/dist/src/capabilities/doctor/checks/checkShellCompletions.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/index.js +27 -0
- package/dist/src/capabilities/doctor/checks/index.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/mcpCommand.js +57 -0
- package/dist/src/capabilities/doctor/checks/mcpCommand.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/targetHealth.js +205 -0
- package/dist/src/capabilities/doctor/checks/targetHealth.js.map +1 -0
- package/dist/src/capabilities/doctor/doctor.render.js +185 -0
- package/dist/src/capabilities/doctor/doctor.render.js.map +1 -0
- package/dist/src/capabilities/doctor/doctor.verb.js +45 -0
- package/dist/src/capabilities/doctor/doctor.verb.js.map +1 -0
- package/dist/src/capabilities/doctor/index.js +5 -0
- package/dist/src/capabilities/doctor/index.js.map +1 -0
- package/dist/src/capabilities/doctor/runChecks.js +83 -0
- package/dist/src/capabilities/doctor/runChecks.js.map +1 -0
- package/dist/src/capabilities/doctor/types.js +5 -0
- package/dist/src/capabilities/doctor/types.js.map +1 -0
- package/dist/src/capabilities/graph/index.js +19 -0
- package/dist/src/capabilities/graph/index.js.map +1 -0
- package/dist/src/capabilities/graph/inspect.render.js +76 -0
- package/dist/src/capabilities/graph/inspect.render.js.map +1 -0
- package/dist/src/capabilities/graph/inspect.verb.js +53 -0
- package/dist/src/capabilities/graph/inspect.verb.js.map +1 -0
- package/dist/src/capabilities/graph/query.render.js +73 -0
- package/dist/src/capabilities/graph/query.render.js.map +1 -0
- package/dist/src/capabilities/graph/query.verb.js +49 -0
- package/dist/src/capabilities/graph/query.verb.js.map +1 -0
- package/dist/src/capabilities/graph/runQuery.js +41 -0
- package/dist/src/capabilities/graph/runQuery.js.map +1 -0
- package/dist/src/capabilities/index.js +56 -0
- package/dist/src/capabilities/index.js.map +1 -0
- package/dist/src/capabilities/info/collectInfo.js +66 -0
- package/dist/src/capabilities/info/collectInfo.js.map +1 -0
- package/dist/src/capabilities/info/index.js +5 -0
- package/dist/src/capabilities/info/index.js.map +1 -0
- package/dist/src/capabilities/info/info.render.js +53 -0
- package/dist/src/capabilities/info/info.render.js.map +1 -0
- package/dist/src/capabilities/info/info.verb.js +42 -0
- package/dist/src/capabilities/info/info.verb.js.map +1 -0
- package/dist/src/capabilities/info/types.js +5 -0
- package/dist/src/capabilities/info/types.js.map +1 -0
- package/dist/src/capabilities/meta/complete.verb.js +43 -0
- package/dist/src/capabilities/meta/complete.verb.js.map +1 -0
- package/dist/src/capabilities/meta/index.js +13 -0
- package/dist/src/capabilities/meta/index.js.map +1 -0
- package/dist/src/capabilities/meta/mcp.verb.js +34 -0
- package/dist/src/capabilities/meta/mcp.verb.js.map +1 -0
- package/dist/src/capabilities/ontology/index.js +21 -0
- package/dist/src/capabilities/ontology/index.js.map +1 -0
- package/dist/src/capabilities/ontology/queries.js +123 -0
- package/dist/src/capabilities/ontology/queries.js.map +1 -0
- package/dist/src/capabilities/ontology/render.js +66 -0
- package/dist/src/capabilities/ontology/render.js.map +1 -0
- package/dist/src/capabilities/ontology/verbs.js +181 -0
- package/dist/src/capabilities/ontology/verbs.js.map +1 -0
- package/dist/src/capabilities/prompt/index.js +16 -0
- package/dist/src/capabilities/prompt/index.js.map +1 -0
- package/dist/src/capabilities/prompt/prompt.render.js +78 -0
- package/dist/src/capabilities/prompt/prompt.render.js.map +1 -0
- package/dist/src/capabilities/prompt/types.js +10 -0
- package/dist/src/capabilities/prompt/types.js.map +1 -0
- package/dist/src/capabilities/prompt/verbs.js +93 -0
- package/dist/src/capabilities/prompt/verbs.js.map +1 -0
- package/dist/src/capabilities/resources/index.js +10 -0
- package/dist/src/capabilities/resources/index.js.map +1 -0
- package/dist/src/capabilities/resources/provider.js +423 -0
- package/dist/src/capabilities/resources/provider.js.map +1 -0
- package/dist/src/capabilities/setup/buildPlan.js +168 -0
- package/dist/src/capabilities/setup/buildPlan.js.map +1 -0
- package/dist/src/capabilities/setup/index.js +5 -0
- package/dist/src/capabilities/setup/index.js.map +1 -0
- package/dist/src/capabilities/setup/mode.js +53 -0
- package/dist/src/capabilities/setup/mode.js.map +1 -0
- package/dist/src/capabilities/setup/operations/index.js +39 -0
- package/dist/src/capabilities/setup/operations/index.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupCompletions.js +160 -0
- package/dist/src/capabilities/setup/operations/setupCompletions.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupConfig.js +101 -0
- package/dist/src/capabilities/setup/operations/setupConfig.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupGenerator.js +343 -0
- package/dist/src/capabilities/setup/operations/setupGenerator.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupLsp.js +277 -0
- package/dist/src/capabilities/setup/operations/setupLsp.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupMcp.js +207 -0
- package/dist/src/capabilities/setup/operations/setupMcp.js.map +1 -0
- package/dist/src/capabilities/setup/operations/setupSkills.js +316 -0
- package/dist/src/capabilities/setup/operations/setupSkills.js.map +1 -0
- package/dist/src/capabilities/setup/plan.js +128 -0
- package/dist/src/capabilities/setup/plan.js.map +1 -0
- package/dist/src/capabilities/setup/plan.render.js +193 -0
- package/dist/src/capabilities/setup/plan.render.js.map +1 -0
- package/dist/src/capabilities/setup/setup.render.js +54 -0
- package/dist/src/capabilities/setup/setup.render.js.map +1 -0
- package/dist/src/capabilities/setup/setup.verb.js +334 -0
- package/dist/src/capabilities/setup/setup.verb.js.map +1 -0
- package/dist/src/capabilities/setup/shell.js +196 -0
- package/dist/src/capabilities/setup/shell.js.map +1 -0
- package/dist/src/capabilities/setup/targets.js +263 -0
- package/dist/src/capabilities/setup/targets.js.map +1 -0
- package/dist/src/capabilities/setup/types.js +5 -0
- package/dist/src/capabilities/setup/types.js.map +1 -0
- package/dist/src/capabilities/shared/assertExecOk.js +137 -0
- package/dist/src/capabilities/shared/assertExecOk.js.map +1 -0
- package/dist/src/capabilities/shared/bands.js +16 -0
- package/dist/src/capabilities/shared/bands.js.map +1 -0
- package/dist/src/capabilities/shared/index.js +26 -0
- package/dist/src/capabilities/shared/index.js.map +1 -0
- package/dist/src/capabilities/shared/packageManager.js +103 -0
- package/dist/src/capabilities/shared/packageManager.js.map +1 -0
- package/dist/src/capabilities/shared/registry.js +55 -0
- package/dist/src/capabilities/shared/registry.js.map +1 -0
- package/dist/src/capabilities/skill/discover.js +195 -0
- package/dist/src/capabilities/skill/discover.js.map +1 -0
- package/dist/src/capabilities/skill/index.js +10 -0
- package/dist/src/capabilities/skill/index.js.map +1 -0
- package/dist/src/capabilities/skill/render.js +49 -0
- package/dist/src/capabilities/skill/render.js.map +1 -0
- package/dist/src/capabilities/skill/verbs.js +83 -0
- package/dist/src/capabilities/skill/verbs.js.map +1 -0
- package/dist/src/capabilities/sources/collectStatus.js +103 -0
- package/dist/src/capabilities/sources/collectStatus.js.map +1 -0
- package/dist/src/capabilities/sources/index.js +13 -0
- package/dist/src/capabilities/sources/index.js.map +1 -0
- package/dist/src/capabilities/sources/installSkills.js +167 -0
- package/dist/src/capabilities/sources/installSkills.js.map +1 -0
- package/dist/src/capabilities/sources/runUpdate.js +394 -0
- package/dist/src/capabilities/sources/runUpdate.js.map +1 -0
- package/dist/src/capabilities/sources/status.render.js +64 -0
- package/dist/src/capabilities/sources/status.render.js.map +1 -0
- package/dist/src/capabilities/sources/status.verb.js +40 -0
- package/dist/src/capabilities/sources/status.verb.js.map +1 -0
- package/dist/src/capabilities/sources/types.js +6 -0
- package/dist/src/capabilities/sources/types.js.map +1 -0
- package/dist/src/capabilities/sources/update.render.js +34 -0
- package/dist/src/capabilities/sources/update.render.js.map +1 -0
- package/dist/src/capabilities/sources/update.verb.js +55 -0
- package/dist/src/capabilities/sources/update.verb.js.map +1 -0
- package/dist/src/capabilities/upgrade/index.js +5 -0
- package/dist/src/capabilities/upgrade/index.js.map +1 -0
- package/dist/src/capabilities/upgrade/runUpgrade.js +99 -0
- package/dist/src/capabilities/upgrade/runUpgrade.js.map +1 -0
- package/dist/src/capabilities/upgrade/types.js +5 -0
- package/dist/src/capabilities/upgrade/types.js.map +1 -0
- package/dist/src/capabilities/upgrade/upgrade.render.js +44 -0
- package/dist/src/capabilities/upgrade/upgrade.render.js.map +1 -0
- package/dist/src/capabilities/upgrade/upgrade.verb.js +52 -0
- package/dist/src/capabilities/upgrade/upgrade.verb.js.map +1 -0
- package/dist/src/capabilities/version/index.js +10 -0
- package/dist/src/capabilities/version/index.js.map +1 -0
- package/dist/src/capabilities/version/version.verb.js +36 -0
- package/dist/src/capabilities/version/version.verb.js.map +1 -0
- package/dist/src/constants.js +82 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/index.js +12 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/kernel/completion/complete.js +66 -0
- package/dist/src/kernel/completion/complete.js.map +1 -0
- package/dist/src/kernel/completion/emitScripts.js +92 -0
- package/dist/src/kernel/completion/emitScripts.js.map +1 -0
- package/dist/src/kernel/completion/entitySource.js +285 -0
- package/dist/src/kernel/completion/entitySource.js.map +1 -0
- package/dist/src/kernel/completion/index.js +14 -0
- package/dist/src/kernel/completion/index.js.map +1 -0
- package/dist/src/kernel/completion/model.js +301 -0
- package/dist/src/kernel/completion/model.js.map +1 -0
- package/dist/src/kernel/completion/parse.js +253 -0
- package/dist/src/kernel/completion/parse.js.map +1 -0
- package/dist/src/kernel/completion/rank.js +101 -0
- package/dist/src/kernel/completion/rank.js.map +1 -0
- package/dist/src/kernel/completion/resolve.js +100 -0
- package/dist/src/kernel/completion/resolve.js.map +1 -0
- package/dist/src/kernel/completion/templates/bash.js +209 -0
- package/dist/src/kernel/completion/templates/bash.js.map +1 -0
- package/dist/src/kernel/completion/templates/fish.js +214 -0
- package/dist/src/kernel/completion/templates/fish.js.map +1 -0
- package/dist/src/kernel/completion/templates/index.js +23 -0
- package/dist/src/kernel/completion/templates/index.js.map +1 -0
- package/dist/src/kernel/completion/templates/shared.js +98 -0
- package/dist/src/kernel/completion/templates/shared.js.map +1 -0
- package/dist/src/kernel/completion/templates/zsh.js +201 -0
- package/dist/src/kernel/completion/templates/zsh.js.map +1 -0
- package/dist/src/kernel/completion/types.js +13 -0
- package/dist/src/kernel/completion/types.js.map +1 -0
- package/dist/src/kernel/config/defaults.js +17 -0
- package/dist/src/kernel/config/defaults.js.map +1 -0
- package/dist/src/kernel/config/evaluateProjectConfig.js +126 -0
- package/dist/src/kernel/config/evaluateProjectConfig.js.map +1 -0
- package/dist/src/kernel/config/findProjectConfig.js +43 -0
- package/dist/src/kernel/config/findProjectConfig.js.map +1 -0
- package/dist/src/kernel/config/firstRun.js +34 -0
- package/dist/src/kernel/config/firstRun.js.map +1 -0
- package/dist/src/kernel/config/globalConfig.js +79 -0
- package/dist/src/kernel/config/globalConfig.js.map +1 -0
- package/dist/src/kernel/config/index.js +16 -0
- package/dist/src/kernel/config/index.js.map +1 -0
- package/dist/src/kernel/config/paths.js +35 -0
- package/dist/src/kernel/config/paths.js.map +1 -0
- package/dist/src/kernel/config/readConfig.js +78 -0
- package/dist/src/kernel/config/readConfig.js.map +1 -0
- package/dist/src/kernel/config/schema.js +130 -0
- package/dist/src/kernel/config/schema.js.map +1 -0
- package/dist/src/kernel/config/types.js +19 -0
- package/dist/src/kernel/config/types.js.map +1 -0
- package/dist/src/kernel/config/writeConfigField.js +59 -0
- package/dist/src/kernel/config/writeConfigField.js.map +1 -0
- package/dist/src/kernel/copy.js +43 -0
- package/dist/src/kernel/copy.js.map +1 -0
- package/dist/src/kernel/error/PragmaError.js +149 -0
- package/dist/src/kernel/error/PragmaError.js.map +1 -0
- package/dist/src/kernel/error/constants.js +40 -0
- package/dist/src/kernel/error/constants.js.map +1 -0
- package/dist/src/kernel/error/fromTaskError.js +96 -0
- package/dist/src/kernel/error/fromTaskError.js.map +1 -0
- package/dist/src/kernel/error/index.js +13 -0
- package/dist/src/kernel/error/index.js.map +1 -0
- package/dist/src/kernel/error/recovery.js +52 -0
- package/dist/src/kernel/error/recovery.js.map +1 -0
- package/dist/src/kernel/error/renderError.js +115 -0
- package/dist/src/kernel/error/renderError.js.map +1 -0
- package/dist/src/kernel/error/serialize.js +25 -0
- package/dist/src/kernel/error/serialize.js.map +1 -0
- package/dist/src/kernel/error/types.js +9 -0
- package/dist/src/kernel/error/types.js.map +1 -0
- package/dist/src/kernel/index.js +25 -0
- package/dist/src/kernel/index.js.map +1 -0
- package/dist/src/kernel/packs/collect.js +187 -0
- package/dist/src/kernel/packs/collect.js.map +1 -0
- package/dist/src/kernel/packs/compile.js +304 -0
- package/dist/src/kernel/packs/compile.js.map +1 -0
- package/dist/src/kernel/packs/disclosure.js +76 -0
- package/dist/src/kernel/packs/disclosure.js.map +1 -0
- package/dist/src/kernel/packs/glob.js +38 -0
- package/dist/src/kernel/packs/glob.js.map +1 -0
- package/dist/src/kernel/packs/graphql/buildLookupDocument.js +258 -0
- package/dist/src/kernel/packs/graphql/buildLookupDocument.js.map +1 -0
- package/dist/src/kernel/packs/graphql/fetchGraphqlLookup.js +157 -0
- package/dist/src/kernel/packs/graphql/fetchGraphqlLookup.js.map +1 -0
- package/dist/src/kernel/packs/graphql/index.js +20 -0
- package/dist/src/kernel/packs/graphql/index.js.map +1 -0
- package/dist/src/kernel/packs/graphql/nameMap.js +63 -0
- package/dist/src/kernel/packs/graphql/nameMap.js.map +1 -0
- package/dist/src/kernel/packs/index.js +34 -0
- package/dist/src/kernel/packs/index.js.map +1 -0
- package/dist/src/kernel/packs/iri.js +110 -0
- package/dist/src/kernel/packs/iri.js.map +1 -0
- package/dist/src/kernel/packs/renderPack.js +129 -0
- package/dist/src/kernel/packs/renderPack.js.map +1 -0
- package/dist/src/kernel/packs/resolveEntity.js +223 -0
- package/dist/src/kernel/packs/resolveEntity.js.map +1 -0
- package/dist/src/kernel/packs/runBodies.js +87 -0
- package/dist/src/kernel/packs/runBodies.js.map +1 -0
- package/dist/src/kernel/packs/sample.js +56 -0
- package/dist/src/kernel/packs/sample.js.map +1 -0
- package/dist/src/kernel/packs/schema.js +369 -0
- package/dist/src/kernel/packs/schema.js.map +1 -0
- package/dist/src/kernel/packs/sparql/applyFilters.js +68 -0
- package/dist/src/kernel/packs/sparql/applyFilters.js.map +1 -0
- package/dist/src/kernel/packs/sparql/applySearch.js +25 -0
- package/dist/src/kernel/packs/sparql/applySearch.js.map +1 -0
- package/dist/src/kernel/packs/sparql/buildLookupQuery.js +217 -0
- package/dist/src/kernel/packs/sparql/buildLookupQuery.js.map +1 -0
- package/dist/src/kernel/packs/sparql/escape.js +21 -0
- package/dist/src/kernel/packs/sparql/escape.js.map +1 -0
- package/dist/src/kernel/packs/sparql/index.js +31 -0
- package/dist/src/kernel/packs/sparql/index.js.map +1 -0
- package/dist/src/kernel/packs/sparql/runSelect.js +101 -0
- package/dist/src/kernel/packs/sparql/runSelect.js.map +1 -0
- package/dist/src/kernel/packs/types.js +30 -0
- package/dist/src/kernel/packs/types.js.map +1 -0
- package/dist/src/kernel/packs/uniqueness.js +30 -0
- package/dist/src/kernel/packs/uniqueness.js.map +1 -0
- package/dist/src/kernel/project/cli/buildProgram.js +263 -0
- package/dist/src/kernel/project/cli/buildProgram.js.map +1 -0
- package/dist/src/kernel/project/cli/constants.js +27 -0
- package/dist/src/kernel/project/cli/constants.js.map +1 -0
- package/dist/src/kernel/project/cli/dispatch.js +420 -0
- package/dist/src/kernel/project/cli/dispatch.js.map +1 -0
- package/dist/src/kernel/project/cli/exitCodes.js +66 -0
- package/dist/src/kernel/project/cli/exitCodes.js.map +1 -0
- package/dist/src/kernel/project/cli/globalFlags.js +216 -0
- package/dist/src/kernel/project/cli/globalFlags.js.map +1 -0
- package/dist/src/kernel/project/cli/helpFormat.js +59 -0
- package/dist/src/kernel/project/cli/helpFormat.js.map +1 -0
- package/dist/src/kernel/project/cli/index.js +14 -0
- package/dist/src/kernel/project/cli/index.js.map +1 -0
- package/dist/src/kernel/project/cli/rootHelp.js +197 -0
- package/dist/src/kernel/project/cli/rootHelp.js.map +1 -0
- package/dist/src/kernel/project/cli/suggest.js +75 -0
- package/dist/src/kernel/project/cli/suggest.js.map +1 -0
- package/dist/src/kernel/project/cli/suggestNames.js +96 -0
- package/dist/src/kernel/project/cli/suggestNames.js.map +1 -0
- package/dist/src/kernel/project/cli/verbHelp.js +131 -0
- package/dist/src/kernel/project/cli/verbHelp.js.map +1 -0
- package/dist/src/kernel/project/mcp/buildServer.js +67 -0
- package/dist/src/kernel/project/mcp/buildServer.js.map +1 -0
- package/dist/src/kernel/project/mcp/envelope.js +37 -0
- package/dist/src/kernel/project/mcp/envelope.js.map +1 -0
- package/dist/src/kernel/project/mcp/index.js +8 -0
- package/dist/src/kernel/project/mcp/index.js.map +1 -0
- package/dist/src/kernel/project/mcp/instructions.js +44 -0
- package/dist/src/kernel/project/mcp/instructions.js.map +1 -0
- package/dist/src/kernel/project/mcp/mcpError.js +42 -0
- package/dist/src/kernel/project/mcp/mcpError.js.map +1 -0
- package/dist/src/kernel/project/mcp/prompts/index.js +36 -0
- package/dist/src/kernel/project/mcp/prompts/index.js.map +1 -0
- package/dist/src/kernel/project/mcp/prompts/provider.js +98 -0
- package/dist/src/kernel/project/mcp/prompts/provider.js.map +1 -0
- package/dist/src/kernel/project/mcp/prompts/source.js +154 -0
- package/dist/src/kernel/project/mcp/prompts/source.js.map +1 -0
- package/dist/src/kernel/project/mcp/registerVerb.js +300 -0
- package/dist/src/kernel/project/mcp/registerVerb.js.map +1 -0
- package/dist/src/kernel/project/mcp/serve.js +35 -0
- package/dist/src/kernel/project/mcp/serve.js.map +1 -0
- package/dist/src/kernel/render/compactUri.js +24 -0
- package/dist/src/kernel/render/compactUri.js.map +1 -0
- package/dist/src/kernel/render/contracts.js +10 -0
- package/dist/src/kernel/render/contracts.js.map +1 -0
- package/dist/src/kernel/render/disclosure.js +34 -0
- package/dist/src/kernel/render/disclosure.js.map +1 -0
- package/dist/src/kernel/render/envelope.js +30 -0
- package/dist/src/kernel/render/envelope.js.map +1 -0
- package/dist/src/kernel/render/formatters.js +27 -0
- package/dist/src/kernel/render/formatters.js.map +1 -0
- package/dist/src/kernel/render/index.js +15 -0
- package/dist/src/kernel/render/index.js.map +1 -0
- package/dist/src/kernel/render/prefixes.js +46 -0
- package/dist/src/kernel/render/prefixes.js.map +1 -0
- package/dist/src/kernel/render/renderers.js +468 -0
- package/dist/src/kernel/render/renderers.js.map +1 -0
- package/dist/src/kernel/render/style.js +85 -0
- package/dist/src/kernel/render/style.js.map +1 -0
- package/dist/src/kernel/render/turtle.js +194 -0
- package/dist/src/kernel/render/turtle.js.map +1 -0
- package/dist/src/kernel/render/writeStdout.js +43 -0
- package/dist/src/kernel/render/writeStdout.js.map +1 -0
- package/dist/src/kernel/runtime/boot.js +49 -0
- package/dist/src/kernel/runtime/boot.js.map +1 -0
- package/dist/src/kernel/runtime/facade.js +39 -0
- package/dist/src/kernel/runtime/facade.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/build.js +122 -0
- package/dist/src/kernel/runtime/graphpack/build.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/buildIndex.js +303 -0
- package/dist/src/kernel/runtime/graphpack/buildIndex.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js +6 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js +4 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.stories.generated.js +4 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.stories.generated.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/embedded.js +82 -0
- package/dist/src/kernel/runtime/graphpack/embedded.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/hash.js +38 -0
- package/dist/src/kernel/runtime/graphpack/hash.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/index.js +11 -0
- package/dist/src/kernel/runtime/graphpack/index.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/manifest.js +145 -0
- package/dist/src/kernel/runtime/graphpack/manifest.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/read.js +92 -0
- package/dist/src/kernel/runtime/graphpack/read.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/schemas.js +70 -0
- package/dist/src/kernel/runtime/graphpack/schemas.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/stories.js +68 -0
- package/dist/src/kernel/runtime/graphpack/stories.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/types.js +55 -0
- package/dist/src/kernel/runtime/graphpack/types.js.map +1 -0
- package/dist/src/kernel/runtime/index.js +8 -0
- package/dist/src/kernel/runtime/index.js.map +1 -0
- package/dist/src/kernel/runtime/loadSession.js +34 -0
- package/dist/src/kernel/runtime/loadSession.js.map +1 -0
- package/dist/src/kernel/runtime/paths.js +78 -0
- package/dist/src/kernel/runtime/paths.js.map +1 -0
- package/dist/src/kernel/runtime/probe.js +37 -0
- package/dist/src/kernel/runtime/probe.js.map +1 -0
- package/dist/src/kernel/runtime/readEntity.js +363 -0
- package/dist/src/kernel/runtime/readEntity.js.map +1 -0
- package/dist/src/kernel/runtime/refs/gitOps.js +65 -0
- package/dist/src/kernel/runtime/refs/gitOps.js.map +1 -0
- package/dist/src/kernel/runtime/refs/index.js +29 -0
- package/dist/src/kernel/runtime/refs/index.js.map +1 -0
- package/dist/src/kernel/runtime/refs/parseRef.js +70 -0
- package/dist/src/kernel/runtime/refs/parseRef.js.map +1 -0
- package/dist/src/kernel/runtime/refs/resolve.js +332 -0
- package/dist/src/kernel/runtime/refs/resolve.js.map +1 -0
- package/dist/src/kernel/runtime/resolveSources.js +62 -0
- package/dist/src/kernel/runtime/resolveSources.js.map +1 -0
- package/dist/src/kernel/runtime/store.js +75 -0
- package/dist/src/kernel/runtime/store.js.map +1 -0
- package/dist/src/kernel/runtime/storeReadiness.js +51 -0
- package/dist/src/kernel/runtime/storeReadiness.js.map +1 -0
- package/dist/src/kernel/runtime/types.js +11 -0
- package/dist/src/kernel/runtime/types.js.map +1 -0
- package/dist/src/kernel/spec/asVerb.js +21 -0
- package/dist/src/kernel/spec/asVerb.js.map +1 -0
- package/dist/src/kernel/spec/emitReference.js +578 -0
- package/dist/src/kernel/spec/emitReference.js.map +1 -0
- package/dist/src/kernel/spec/emitSurface.js +202 -0
- package/dist/src/kernel/spec/emitSurface.js.map +1 -0
- package/dist/src/kernel/spec/index.js +11 -0
- package/dist/src/kernel/spec/index.js.map +1 -0
- package/dist/src/kernel/spec/surfaceConformance.js +103 -0
- package/dist/src/kernel/spec/surfaceConformance.js.map +1 -0
- package/dist/src/kernel/spec/types.js +14 -0
- package/dist/src/kernel/spec/types.js.map +1 -0
- package/dist/src/kernel/spec/validate.js +110 -0
- package/dist/src/kernel/spec/validate.js.map +1 -0
- package/dist/src/kernel/vocabulary.js +97 -0
- package/dist/src/kernel/vocabulary.js.map +1 -0
- package/dist/src/types.js +11 -0
- package/dist/src/types.js.map +1 -0
- package/package.json +25 -24
- package/pragma.conf.ts +853 -0
- package/src/bin.ts +276 -82
- package/src/capabilities/block.parity.test.ts +253 -0
- package/src/capabilities/capabilities/capabilities.render.ts +4 -3
- package/src/capabilities/capabilities/capabilities.verb.ts +32 -14
- package/src/capabilities/capabilities/catalog.ts +20 -12
- package/src/capabilities/capabilities/hints.ts +43 -24
- package/src/capabilities/capabilities/index.ts +1 -1
- package/src/capabilities/colophon/collectColophon.ts +50 -24
- package/src/capabilities/colophon/colophon.render.ts +25 -1
- package/src/capabilities/colophon/colophon.test.ts +42 -21
- package/src/capabilities/colophon/colophon.verb.ts +9 -5
- package/src/capabilities/colophon/types.ts +16 -7
- package/src/capabilities/config/collectConfigShow.test.ts +58 -0
- package/src/capabilities/config/collectConfigShow.ts +43 -6
- package/src/capabilities/config/field.render.ts +4 -5
- package/src/capabilities/config/fields.ts +17 -37
- package/src/capabilities/config/get.verb.ts +70 -0
- package/src/capabilities/config/getUnset.test.ts +264 -0
- package/src/capabilities/config/index.ts +5 -1
- package/src/capabilities/config/runField.ts +40 -22
- package/src/capabilities/config/runGet.ts +34 -0
- package/src/capabilities/config/runSet.ts +35 -9
- package/src/capabilities/config/set.test.ts +48 -14
- package/src/capabilities/config/set.verb.ts +14 -9
- package/src/capabilities/config/show.render.test.ts +77 -5
- package/src/capabilities/config/show.render.ts +8 -13
- package/src/capabilities/config/show.verb.ts +13 -9
- package/src/capabilities/config/types.ts +26 -4
- package/src/capabilities/config/unset.verb.ts +58 -0
- package/src/capabilities/create/byteEquality.subprocess.test.ts +2 -3
- package/src/capabilities/create/byteEquality.test.ts +95 -103
- package/src/capabilities/create/cliProjection.ts +227 -0
- package/src/capabilities/create/constants.ts +50 -0
- package/src/capabilities/create/create.mcp.test.ts +91 -7
- package/src/capabilities/create/create.render.ts +71 -7
- package/src/capabilities/create/create.test.ts +523 -162
- package/src/capabilities/create/create.verb.ts +361 -321
- package/src/capabilities/create/createGrammar.test.ts +865 -0
- package/src/capabilities/create/createHelp.ts +71 -0
- package/src/capabilities/create/createSurface.generated.ts +400 -0
- package/src/capabilities/create/crossCli.subprocess.test.ts +745 -0
- package/src/capabilities/create/cwdJail.test.ts +24 -5
- package/src/capabilities/create/generatorToVerbSpec.test.ts +186 -0
- package/src/capabilities/create/generatorToVerbSpec.ts +13 -11
- package/src/capabilities/create/index.ts +9 -14
- package/src/capabilities/create/messages.ts +18 -0
- package/src/capabilities/create/mount.ts +391 -0
- package/src/capabilities/create/pathJail.test.ts +90 -0
- package/src/capabilities/create/pathJail.ts +8 -5
- package/src/capabilities/create/pickGenerator.ts +40 -46
- package/src/capabilities/create/shippedCreate.subprocess.test.ts +164 -0
- package/src/capabilities/create/types.ts +29 -5
- package/src/capabilities/{standard/parity.test.ts → distribution.parity.test.ts} +24 -14
- package/src/capabilities/distribution.test.ts +122 -0
- package/src/capabilities/distribution.ts +54 -0
- package/src/capabilities/doctor/checks/checkKeStore.ts +9 -7
- package/src/capabilities/doctor/checks/checkPackageRefs.ts +82 -46
- package/src/capabilities/doctor/checks/checkPragmaVersion.ts +5 -4
- package/src/capabilities/doctor/checks/checkShellCompletions.test.ts +125 -30
- package/src/capabilities/doctor/checks/checkShellCompletions.ts +113 -27
- package/src/capabilities/doctor/checks/index.ts +27 -0
- package/src/capabilities/doctor/checks/mcpCommand.test.ts +100 -0
- package/src/capabilities/doctor/checks/mcpCommand.ts +69 -0
- package/src/capabilities/doctor/checks/targetHealth.ts +274 -0
- package/src/capabilities/doctor/doctor.render.test.ts +24 -13
- package/src/capabilities/doctor/doctor.render.ts +45 -20
- package/src/capabilities/doctor/doctor.test.ts +158 -40
- package/src/capabilities/doctor/doctor.verb.ts +9 -5
- package/src/capabilities/doctor/runChecks.ts +65 -66
- package/src/capabilities/doctor/types.ts +21 -5
- package/src/capabilities/emptyRecovery.test.ts +44 -22
- package/src/capabilities/graph/examples.exec.test.ts +107 -0
- package/src/capabilities/graph/index.ts +1 -1
- package/src/capabilities/graph/inspect.render.ts +70 -22
- package/src/capabilities/graph/inspect.test.ts +260 -5
- package/src/capabilities/graph/inspect.verb.ts +18 -5
- package/src/capabilities/graph/query.render.ts +15 -3
- package/src/capabilities/graph/query.verb.ts +5 -4
- package/src/capabilities/graph/runQuery.ts +9 -7
- package/src/capabilities/index.ts +25 -19
- package/src/capabilities/info/collectInfo.ts +15 -10
- package/src/capabilities/info/info.render.ts +4 -3
- package/src/capabilities/info/info.verb.ts +4 -3
- package/src/capabilities/lazy.test.ts +125 -2
- package/src/capabilities/meta/complete.verb.ts +1 -1
- package/src/capabilities/meta/index.ts +1 -1
- package/src/capabilities/meta/mcp.verb.ts +10 -8
- package/src/capabilities/ontology/index.ts +15 -11
- package/src/capabilities/ontology/ontology.test.ts +6 -55
- package/src/capabilities/ontology/queries.ts +2 -2
- package/src/capabilities/ontology/render.ts +3 -4
- package/src/capabilities/ontology/verbs.ts +42 -83
- package/src/capabilities/prompt/index.ts +2 -2
- package/src/capabilities/prompt/prompt.render.ts +6 -2
- package/src/capabilities/prompt/prompt.test.ts +12 -6
- package/src/capabilities/prompt/types.ts +1 -1
- package/src/capabilities/prompt/verbs.ts +26 -14
- package/src/capabilities/reference.test.ts +63 -0
- package/src/capabilities/resources/provider.ts +367 -91
- package/src/capabilities/resources/resources.test.ts +411 -59
- package/src/capabilities/setup/buildPlan.ts +236 -0
- package/src/capabilities/setup/index.ts +7 -7
- package/src/capabilities/setup/mode.ts +74 -0
- package/src/capabilities/setup/operations/index.ts +74 -0
- package/src/capabilities/setup/operations/setupCompletions.ts +97 -24
- package/src/capabilities/setup/operations/setupConfig.ts +124 -0
- package/src/capabilities/setup/operations/setupGenerator.ts +397 -320
- package/src/capabilities/setup/operations/setupLsp.ts +329 -68
- package/src/capabilities/setup/operations/setupMcp.ts +137 -97
- package/src/capabilities/setup/operations/setupSkills.ts +336 -108
- package/src/capabilities/setup/plan.render.ts +241 -0
- package/src/capabilities/setup/plan.ts +236 -0
- package/src/capabilities/setup/setup.mcp.correctness.test.ts +432 -0
- package/src/capabilities/setup/setup.render.test.ts +281 -73
- package/src/capabilities/setup/setup.render.ts +45 -77
- package/src/capabilities/setup/setup.test.ts +972 -209
- package/src/capabilities/setup/setup.verb.ts +233 -74
- package/src/capabilities/setup/shell.test.ts +86 -0
- package/src/capabilities/setup/shell.ts +166 -14
- package/src/capabilities/setup/targets.ts +367 -0
- package/src/capabilities/setup/types.ts +18 -57
- package/src/capabilities/shared/assertExecOk.ts +68 -10
- package/src/capabilities/shared/index.ts +32 -0
- package/src/capabilities/shared/packageManager.test.ts +55 -0
- package/src/capabilities/shared/packageManager.ts +62 -6
- package/src/capabilities/skill/discover.ts +47 -9
- package/src/capabilities/skill/index.ts +1 -1
- package/src/capabilities/skill/render.ts +14 -14
- package/src/capabilities/skill/skill.test.ts +7 -5
- package/src/capabilities/skill/verbs.ts +9 -10
- package/src/capabilities/sources/collectStatus.ts +61 -51
- package/src/capabilities/sources/index.ts +2 -2
- package/src/capabilities/sources/installSkills.ts +86 -9
- package/src/capabilities/sources/runUpdate.ts +164 -141
- package/src/capabilities/sources/sources.test.ts +265 -119
- package/src/capabilities/sources/status.render.test.ts +53 -24
- package/src/capabilities/sources/status.render.ts +25 -30
- package/src/capabilities/sources/status.verb.ts +16 -9
- package/src/capabilities/sources/types.ts +18 -25
- package/src/capabilities/sources/update.render.ts +10 -3
- package/src/capabilities/sources/update.verb.ts +13 -24
- package/src/capabilities/surface.test.ts +165 -25
- package/src/capabilities/tier.parity.test.ts +144 -0
- package/src/capabilities/upgrade/runUpgrade.ts +8 -8
- package/src/capabilities/upgrade/upgrade.render.ts +4 -5
- package/src/capabilities/upgrade/upgrade.test.ts +3 -3
- package/src/capabilities/upgrade/upgrade.verb.ts +8 -4
- package/src/capabilities/version/index.ts +12 -0
- package/src/capabilities/version/version.test.ts +66 -0
- package/src/capabilities/version/version.verb.ts +39 -0
- package/src/constants.test.ts +8 -6
- package/src/constants.ts +78 -22
- package/src/identity.test.ts +348 -0
- package/src/index.ts +2 -2
- package/src/kernel/completion/__snapshots__/emitScripts.test.ts.snap +20 -15
- package/src/kernel/completion/complete.test.ts +12 -2
- package/src/kernel/completion/complete.ts +1 -1
- package/src/kernel/completion/emitScripts.test.ts +1 -1
- package/src/kernel/completion/emitScripts.ts +5 -3
- package/src/kernel/completion/entitySource.test.ts +185 -41
- package/src/kernel/completion/entitySource.ts +133 -110
- package/src/kernel/completion/model.test.ts +165 -13
- package/src/kernel/completion/model.ts +105 -14
- package/src/kernel/completion/parse.test.ts +4 -7
- package/src/kernel/completion/parse.ts +15 -0
- package/src/kernel/completion/resolve.test.ts +0 -1
- package/src/kernel/completion/safety.test.ts +104 -50
- package/src/kernel/completion/shellDrive.test.ts +611 -0
- package/src/kernel/completion/templates/bash.ts +7 -2
- package/src/kernel/completion/templates/fish.ts +28 -6
- package/src/kernel/completion/templates/index.ts +23 -0
- package/src/kernel/completion/types.ts +10 -3
- package/src/kernel/config/defaults.test.ts +108 -0
- package/src/kernel/config/defaults.ts +13 -23
- package/src/kernel/config/evaluateProjectConfig.ts +33 -11
- package/src/kernel/config/findProjectConfig.ts +4 -3
- package/src/kernel/config/firstRun.test.ts +44 -38
- package/src/kernel/config/firstRun.ts +24 -81
- package/src/kernel/config/globalConfig.ts +2 -2
- package/src/kernel/config/index.ts +5 -6
- package/src/kernel/config/paths.ts +17 -17
- package/src/kernel/config/readConfig.test.ts +246 -7
- package/src/kernel/config/readConfig.ts +8 -8
- package/src/kernel/config/schema.test.ts +50 -0
- package/src/kernel/config/schema.ts +100 -11
- package/src/kernel/config/types.ts +75 -19
- package/src/kernel/copy.test.ts +483 -0
- package/src/kernel/copy.ts +54 -0
- package/src/kernel/error/PragmaError.test.ts +6 -3
- package/src/kernel/error/PragmaError.ts +4 -2
- package/src/kernel/error/constants.ts +7 -4
- package/src/kernel/error/fromTaskError.ts +28 -6
- package/src/kernel/error/index.ts +1 -1
- package/src/kernel/error/recovery.test.ts +22 -45
- package/src/kernel/error/recovery.ts +36 -27
- package/src/kernel/error/renderError.ts +42 -1
- package/src/kernel/error/types.ts +25 -4
- package/src/kernel/index.ts +26 -0
- package/src/kernel/packs/collect.test.ts +195 -11
- package/src/kernel/packs/collect.ts +212 -61
- package/src/kernel/packs/compile.test.ts +293 -8
- package/src/kernel/packs/compile.ts +108 -15
- package/src/kernel/packs/disclosure.test.ts +5 -2
- package/src/kernel/packs/disclosure.ts +2 -2
- package/src/kernel/packs/graphql/buildLookupDocument.ts +1 -1
- package/src/kernel/packs/graphql/fetchGraphqlLookup.ts +13 -13
- package/src/kernel/packs/graphql/index.ts +20 -0
- package/src/kernel/packs/graphqlSource.test.ts +6 -3
- package/src/kernel/packs/index.ts +40 -0
- package/src/kernel/packs/iri.test.ts +73 -0
- package/src/kernel/packs/iri.ts +70 -20
- package/src/kernel/packs/renderPack.ts +28 -7
- package/src/kernel/packs/resolveEntity.test.ts +213 -0
- package/src/kernel/packs/resolveEntity.ts +132 -34
- package/src/kernel/packs/runBodies.ts +16 -16
- package/src/kernel/packs/sample.ts +1 -1
- package/src/kernel/packs/schema.ts +114 -11
- package/src/kernel/packs/sparql/applyFilters.ts +16 -17
- package/src/kernel/packs/sparql/buildLookupQuery.ts +75 -3
- package/src/kernel/packs/sparql/index.ts +37 -0
- package/src/kernel/packs/sparql/runSelect.test.ts +104 -10
- package/src/kernel/packs/sparql/runSelect.ts +75 -37
- package/src/kernel/packs/toolDescription.test.ts +52 -5
- package/src/kernel/packs/types.ts +52 -4
- package/src/kernel/packs/uniqueness.ts +5 -5
- package/src/kernel/project/cli/buildProgram.test.ts +157 -17
- package/src/kernel/project/cli/buildProgram.ts +77 -18
- package/src/kernel/project/cli/constants.ts +34 -0
- package/src/kernel/project/cli/dispatch.test.ts +227 -3
- package/src/kernel/project/cli/dispatch.ts +250 -48
- package/src/kernel/project/cli/exitCodes.ts +1 -1
- package/src/kernel/project/cli/globalFlags.test.ts +117 -1
- package/src/kernel/project/cli/globalFlags.ts +130 -30
- package/src/kernel/project/cli/helpFormat.ts +14 -1
- package/src/kernel/project/cli/rootHelp.ts +140 -111
- package/src/kernel/project/cli/suggest.test.ts +33 -1
- package/src/kernel/project/cli/suggest.ts +25 -1
- package/src/kernel/project/cli/verbHelp.test.ts +30 -0
- package/src/kernel/project/cli/verbHelp.ts +23 -7
- package/src/kernel/project/mcp/buildServer.ts +18 -10
- package/src/kernel/project/mcp/envelope.ts +2 -2
- package/src/kernel/project/mcp/instructions.ts +12 -7
- package/src/kernel/project/mcp/mcpError.ts +1 -1
- package/src/kernel/project/mcp/parity.test.ts +42 -1
- package/src/kernel/project/mcp/prompts/index.ts +37 -0
- package/src/kernel/project/mcp/prompts/prompts.test.ts +120 -5
- package/src/kernel/project/mcp/prompts/provider.ts +22 -8
- package/src/kernel/project/mcp/prompts/source.ts +69 -68
- package/src/kernel/project/mcp/registerVerb.ts +56 -11
- package/src/kernel/project/mcp/serve.ts +13 -5
- package/src/kernel/project/mcp/toolDescriptions.test.ts +6 -2
- package/src/kernel/render/__snapshots__/renderers.test.ts.snap +7 -4
- package/src/kernel/render/contracts.ts +21 -0
- package/src/kernel/render/disclosure.ts +4 -2
- package/src/kernel/render/envelope.ts +2 -3
- package/src/kernel/render/formatters.ts +1 -1
- package/src/kernel/render/prefixes.test.ts +36 -0
- package/src/kernel/render/prefixes.ts +40 -13
- package/src/kernel/render/renderers.test.ts +244 -7
- package/src/kernel/render/renderers.ts +222 -20
- package/src/kernel/render/style.test.ts +75 -24
- package/src/kernel/render/style.ts +31 -1
- package/src/kernel/render/turtle.ts +222 -0
- package/src/kernel/runtime/graphpack/build.ts +29 -3
- package/src/kernel/runtime/graphpack/buildIndex.test.ts +46 -0
- package/src/kernel/runtime/graphpack/buildIndex.ts +53 -18
- package/src/kernel/runtime/graphpack/embedded/pack.generated.ts +5 -5
- package/src/kernel/runtime/graphpack/embedded/pack.index.generated.ts +3 -3
- package/src/kernel/runtime/graphpack/embedded/pack.stories.generated.ts +3 -0
- package/src/kernel/runtime/graphpack/embedded.ts +39 -13
- package/src/kernel/runtime/graphpack/graphpack.test.ts +205 -5
- package/src/kernel/runtime/graphpack/hash.ts +3 -2
- package/src/kernel/runtime/graphpack/index.ts +1 -1
- package/src/kernel/runtime/graphpack/manifest.ts +114 -12
- package/src/kernel/runtime/graphpack/read.ts +5 -11
- package/src/kernel/runtime/graphpack/schemas.ts +74 -0
- package/src/kernel/runtime/graphpack/stories.ts +84 -0
- package/src/kernel/runtime/graphpack/types.ts +61 -48
- package/src/kernel/runtime/loadSession.ts +1 -1
- package/src/kernel/runtime/paths.ts +64 -15
- package/src/kernel/runtime/probe.test.ts +8 -4
- package/src/kernel/runtime/probe.ts +6 -6
- package/src/kernel/runtime/readEntity.ts +477 -32
- package/src/kernel/runtime/refs/gitOps.ts +1 -19
- package/src/kernel/runtime/refs/index.ts +39 -0
- package/src/kernel/runtime/refs/parseRef.ts +8 -8
- package/src/kernel/runtime/refs/resolve.ts +82 -66
- package/src/kernel/runtime/resolveSources.test.ts +63 -24
- package/src/kernel/runtime/resolveSources.ts +36 -25
- package/src/kernel/runtime/storeReadiness.ts +10 -10
- package/src/kernel/runtime/storeless.test.ts +1 -1
- package/src/kernel/runtime/types.ts +15 -1
- package/src/kernel/runtime/wasmEmbed.test.ts +56 -55
- package/src/kernel/spec/emitReference.test.ts +3 -3
- package/src/kernel/spec/emitReference.ts +242 -34
- package/src/kernel/spec/emitSurface.ts +57 -11
- package/src/kernel/spec/surfaceConformance.test.ts +4 -2
- package/src/kernel/spec/surfaceConformance.ts +8 -0
- package/src/kernel/spec/types.ts +277 -13
- package/src/kernel/spec/validate.ts +2 -1
- package/src/kernel/vocabulary.test.ts +164 -0
- package/src/kernel/vocabulary.ts +146 -0
- package/src/testing/PARITY_GAPS.ts +8 -2
- package/src/testing/behavioral/README.md +3 -3
- package/src/testing/behavioral/completion.test.ts +19 -6
- package/src/testing/behavioral/docExamples.test.ts +14 -0
- package/src/testing/behavioral/errorMatrix.mcp.test.ts +6 -5
- package/src/testing/behavioral/errorMatrix.storeless.test.ts +1 -1
- package/src/testing/behavioral/exitCodes.e2e.test.ts +6 -5
- package/src/testing/behavioral/firstRun.e2e.test.ts +24 -24
- package/src/testing/behavioral/harness.foundation.test.ts +14 -5
- package/src/testing/behavioral/journeys.cli.test.ts +117 -76
- package/src/testing/behavioral/journeys.defaultPack.test.ts +88 -182
- package/src/testing/behavioral/journeys.firstInstall.test.ts +167 -0
- package/src/testing/behavioral/journeys.implementation.test.ts +206 -0
- package/src/testing/behavioral/journeys.interactiveTty.e2e.test.ts +2 -2
- package/src/testing/behavioral/journeys.mcpLifecycle.mcp.test.ts +9 -6
- package/src/testing/behavioral/journeys.packageStories.test.ts +188 -0
- package/src/testing/behavioral/liveReadSurface.ts +4 -3
- package/src/testing/behavioral/mcpServe.e2e.test.ts +57 -2
- package/src/testing/behavioral/mcpSurface.test.ts +10 -5
- package/src/testing/behavioral/rootCli.e2e.test.ts +26 -2
- package/src/testing/behavioral/staleCommands.test.ts +10 -0
- package/src/testing/eval/__snapshots__/eval.test.ts.snap +7 -7
- package/src/testing/eval/cases/assembly.ts +13 -6
- package/src/testing/eval/cases/effectful.ts +28 -15
- package/src/testing/eval/cases/readNouns.ts +22 -20
- package/src/testing/eval/cases/stable.ts +5 -1
- package/src/testing/eval/eval.test.ts +7 -1
- package/src/testing/fixtures/blockGraph.ts +79 -0
- package/src/testing/fixtures/fixtureCapability.ts +45 -1
- package/src/testing/fixtures/graph/canonical.ts +94 -5
- package/src/testing/fixtures/graph/defaultPack.ts +7 -6
- package/src/testing/fixtures/graph/owlExport.ts +7 -5
- package/src/testing/helpers/blankCanonicalRanges.ts +36 -0
- package/src/testing/helpers/fixtureGraph.ts +33 -16
- package/src/testing/helpers/packRuntime.ts +2 -3
- package/src/testing/helpers/projectCli.ts +2 -1
- package/src/testing/helpers/projectMcp.ts +38 -6
- package/src/testing/helpers/runCli.ts +35 -18
- package/src/testing/perf/budgets.test.ts +24 -9
- package/src/testing/perf/budgets.ts +76 -12
- package/src/testing/perf/codegen.test.ts +126 -0
- package/src/testing/perf/globalSetup.test.ts +286 -0
- package/src/testing/perf/globalSetup.ts +611 -14
- package/src/testing/perf/measure.test.ts +38 -0
- package/src/testing/perf/measure.ts +23 -4
- package/src/testing/setupXdgIsolation.ts +81 -21
- package/src/testing/tempRoot.globalSetup.ts +122 -0
- package/src/types.ts +2 -2
- package/dist/pragma +0 -0
- package/src/capabilities/block/blockList.test.ts +0 -79
- package/src/capabilities/block/blockList.verb.ts +0 -163
- package/src/capabilities/block/index.ts +0 -25
- package/src/capabilities/block/pack.ts +0 -166
- package/src/capabilities/block/parity.test.ts +0 -187
- package/src/capabilities/block/tierChain.ts +0 -78
- package/src/capabilities/colophon/pragmaColophon.ts +0 -66
- package/src/capabilities/create/compiledCreate.subprocess.test.ts +0 -152
- package/src/capabilities/create/templates.embedded.generated.ts +0 -53
- package/src/capabilities/doctor/checks/checkConfigFile.ts +0 -41
- package/src/capabilities/doctor/checks/checkMcpCommands.ts +0 -114
- package/src/capabilities/doctor/checks/checkMcpConfigured.ts +0 -67
- package/src/capabilities/doctor/checks/checkSkillsSymlinked.ts +0 -60
- package/src/capabilities/doctor/checks/deriveBand.test.ts +0 -42
- package/src/capabilities/doctor/checks/deriveBand.ts +0 -28
- package/src/capabilities/modifier/index.ts +0 -15
- package/src/capabilities/modifier/pack.ts +0 -64
- package/src/capabilities/standard/index.ts +0 -18
- package/src/capabilities/standard/pack.ts +0 -128
- package/src/capabilities/tier/index.ts +0 -19
- package/src/capabilities/tier/lookup.render.test.ts +0 -72
- package/src/capabilities/tier/lookup.render.ts +0 -59
- package/src/capabilities/tier/lookup.test.ts +0 -83
- package/src/capabilities/tier/lookup.verb.ts +0 -44
- package/src/capabilities/tier/pack.ts +0 -28
- package/src/capabilities/tier/runLookup.ts +0 -87
- package/src/capabilities/token/addConfig.render.ts +0 -27
- package/src/capabilities/token/addConfig.test.ts +0 -62
- package/src/capabilities/token/addConfig.verb.ts +0 -40
- package/src/capabilities/token/index.ts +0 -19
- package/src/capabilities/token/pack.ts +0 -58
- package/src/capabilities/token/runAddConfig.ts +0 -95
- package/src/kernel/completion/bashDrive.test.ts +0 -73
- package/src/kernel/config/__snapshots__/firstRun.test.ts.snap +0 -11
- package/src/kernel/runtime/graphpack/embedded/sample.ttl +0 -39
- package/src/kernel/runtime/lock.ts +0 -90
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
// biome-ignore-all lint/suspicious/noTemplateCurlyInString: zsh parameter expansions, not JS templates
|
|
2
|
+
/**
|
|
3
|
+
* The zsh completion script (static tier). Requires zsh >= 5.
|
|
4
|
+
*
|
|
5
|
+
* Deliberately a `compadd`-table script, NOT `_arguments` — `_arguments`
|
|
6
|
+
* would interpolate param docs into its spec strings, an injection surface
|
|
7
|
+
* the grammar must never open. Structure is inlined as literal `compadd --`
|
|
8
|
+
* arguments (the `--` guard keeps dash-leading candidates data); files go
|
|
9
|
+
* through `_files`; only `{kind:"names"}` contexts exec the CLI, ingesting
|
|
10
|
+
* `pragma __complete` output via the newline-split `${(f)...}` expansion —
|
|
11
|
+
* candidates are never word-split or evaluated. That exec is gated by
|
|
12
|
+
* `minChars`. No `eval`, no backticks.
|
|
13
|
+
*/
|
|
14
|
+
import { globalFlagNames, globalValueFlags, hasOwnFlags, nounNames, offeredFlagNames, rootFlagNames, valueFlagNames, verbViews, wordList, } from "./shared.js";
|
|
15
|
+
/** A shell-safe function-name base for the bin (`pragma` -> `_pragma`). */
|
|
16
|
+
function fnBase(binName) {
|
|
17
|
+
return `_${binName.replace(/[^A-Za-z0-9_]/g, "_")}`;
|
|
18
|
+
}
|
|
19
|
+
/** The zsh action completing a value source, or undefined for `none`. */
|
|
20
|
+
function sourceAction(source, fn) {
|
|
21
|
+
switch (source.kind) {
|
|
22
|
+
case "values":
|
|
23
|
+
return `compadd -- ${wordList(source.values, "zsh values")}`;
|
|
24
|
+
case "files":
|
|
25
|
+
return "_files";
|
|
26
|
+
case "names":
|
|
27
|
+
return `${fn}_dynamic`;
|
|
28
|
+
case "none":
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/** The `noun/verb/--flag` case arms answering flag-value contexts. */
|
|
33
|
+
function flagValueArms(model, fn) {
|
|
34
|
+
const arms = [];
|
|
35
|
+
for (const view of verbViews(model)) {
|
|
36
|
+
for (const flag of view.verb.flags) {
|
|
37
|
+
if (!flag.takesValue)
|
|
38
|
+
continue;
|
|
39
|
+
const action = sourceAction(flag.source, fn);
|
|
40
|
+
arms.push(` ${view.key}/${flag.flag}) ${action === undefined ? "return 0" : `${action}; return 0`} ;;`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return arms;
|
|
44
|
+
}
|
|
45
|
+
/** The global `--flag` case arms (e.g. --format, --detail values). */
|
|
46
|
+
function globalValueArms(model, fn) {
|
|
47
|
+
return globalValueFlags(model).flatMap((flag) => {
|
|
48
|
+
const action = sourceAction(flag.source, fn);
|
|
49
|
+
return action === undefined
|
|
50
|
+
? []
|
|
51
|
+
: [` ${flag.flag}) ${action}; return 0 ;;`];
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/** The `noun/verb` case arms offering per-verb flag names. */
|
|
55
|
+
function flagNameArms(model) {
|
|
56
|
+
return verbViews(model)
|
|
57
|
+
.filter(hasOwnFlags)
|
|
58
|
+
.map((view) => ` ${view.key}) compadd -- ${wordList(offeredFlagNames(model, view), "zsh flags")}; return 0 ;;`);
|
|
59
|
+
}
|
|
60
|
+
/** The `noun` case arms offering sub-verb labels. */
|
|
61
|
+
function verbArms(model) {
|
|
62
|
+
return model.nouns
|
|
63
|
+
.filter((entry) => entry.verbs.length > 0)
|
|
64
|
+
.map((entry) => ` ${entry.noun}) compadd -- ${wordList(entry.verbs.map((verb) => verb.label), "zsh verbs")}; return 0 ;;`);
|
|
65
|
+
}
|
|
66
|
+
/** The positional case arm for one view, or undefined when it offers nothing. */
|
|
67
|
+
function positionalArm(model, view, fn) {
|
|
68
|
+
const slots = [];
|
|
69
|
+
view.verb.positionals.forEach((positional, index) => {
|
|
70
|
+
const action = sourceAction(positional.source, fn);
|
|
71
|
+
if (action === undefined)
|
|
72
|
+
return;
|
|
73
|
+
const last = index === view.verb.positionals.length - 1;
|
|
74
|
+
const pattern = positional.variadic && last ? "*" : String(index);
|
|
75
|
+
slots.push(` ${pattern}) ${action} ;;`);
|
|
76
|
+
});
|
|
77
|
+
if (slots.length === 0)
|
|
78
|
+
return undefined;
|
|
79
|
+
return [
|
|
80
|
+
` ${view.key})`,
|
|
81
|
+
` ${fn}_pos ${view.skipWords} "${wordList(valueFlagNames(model, view), "zsh value flags")}"`,
|
|
82
|
+
' case "$POS" in',
|
|
83
|
+
...slots,
|
|
84
|
+
" esac",
|
|
85
|
+
" ;;",
|
|
86
|
+
].join("\n");
|
|
87
|
+
}
|
|
88
|
+
/** Wrap case arms in a `case` statement, or nothing when there are no arms. */
|
|
89
|
+
function caseBlock(subject, arms, indent) {
|
|
90
|
+
if (arms.length === 0)
|
|
91
|
+
return [];
|
|
92
|
+
return [`${indent}case ${subject} in`, ...arms, `${indent}esac`];
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Render the zsh completion script.
|
|
96
|
+
*
|
|
97
|
+
* @param model - The completion model.
|
|
98
|
+
* @param binName - The binary to complete (function names derive from it).
|
|
99
|
+
* @param minChars - Minimum typed chars before a name source execs `__complete`.
|
|
100
|
+
* @returns The script text.
|
|
101
|
+
*/
|
|
102
|
+
export function zshScript(model, binName, minChars) {
|
|
103
|
+
const fn = fnBase(binName);
|
|
104
|
+
const positionalArms = verbViews(model).flatMap((view) => {
|
|
105
|
+
const arm = positionalArm(model, view, fn);
|
|
106
|
+
return arm === undefined ? [] : [arm];
|
|
107
|
+
});
|
|
108
|
+
const globalValueSkips = globalValueFlags(model)
|
|
109
|
+
.map((flag) => flag.flag)
|
|
110
|
+
.join("|");
|
|
111
|
+
const verbSection = verbArms(model).length === 0
|
|
112
|
+
? []
|
|
113
|
+
: [
|
|
114
|
+
"",
|
|
115
|
+
" # verbs",
|
|
116
|
+
' if [[ -z "$verb" ]]; then',
|
|
117
|
+
...caseBlock('"$noun"', verbArms(model), " "),
|
|
118
|
+
" fi",
|
|
119
|
+
];
|
|
120
|
+
const lines = [
|
|
121
|
+
`#compdef ${binName}`,
|
|
122
|
+
`# ${binName} zsh completion (static tier) — generated by \`${binName} setup completions\`. Do not edit.`,
|
|
123
|
+
"# Structure (nouns, verbs, flags, enum values) is inlined and never execs;",
|
|
124
|
+
`# entity arguments call \`${binName} __complete\` (storeless, never-throw);`,
|
|
125
|
+
"# file arguments use _files. Requires zsh >= 5.",
|
|
126
|
+
`${fn}_dynamic() {`,
|
|
127
|
+
...(minChars > 0 ? [` (( \${#cur} >= ${minChars} )) || return 0`] : []),
|
|
128
|
+
" local -a _matches",
|
|
129
|
+
` _matches=("\${(f)$(${binName} __complete -- "\${(@)words[2,CURRENT]}" 2>/dev/null)}")`,
|
|
130
|
+
' (( ${#_matches[@]} == 1 )) && [[ -z "${_matches[1]}" ]] && return 0',
|
|
131
|
+
' compadd -- "${_matches[@]}"',
|
|
132
|
+
"}",
|
|
133
|
+
`${fn}_pos() {`,
|
|
134
|
+
' local skip="$1" vflags=" $2 " w',
|
|
135
|
+
" local -i i",
|
|
136
|
+
" POS=0",
|
|
137
|
+
" for ((i = 2; i < CURRENT; i++)); do",
|
|
138
|
+
' w="${words[i]}"',
|
|
139
|
+
' case "$w" in',
|
|
140
|
+
' -*) [[ "$vflags" == *" $w "* ]] && ((i++)) ;;',
|
|
141
|
+
" *) if (( skip > 0 )); then (( skip-- )); else (( POS++ )); fi ;;",
|
|
142
|
+
" esac",
|
|
143
|
+
" done",
|
|
144
|
+
"}",
|
|
145
|
+
`${fn}() {`,
|
|
146
|
+
" local cur prev noun verb w",
|
|
147
|
+
" local -i i POS",
|
|
148
|
+
' cur="${words[CURRENT]}"',
|
|
149
|
+
' prev="${words[CURRENT-1]}"',
|
|
150
|
+
" # Split an inline --flag=value word so the value routes as a flag value",
|
|
151
|
+
" # (mirrors parse.ts). zsh keeps `--flag=value` as one word, so recover",
|
|
152
|
+
" # $prev=flag and $cur=value before the flag-value cases below.",
|
|
153
|
+
' if [[ "$cur" == --*=* ]]; then',
|
|
154
|
+
' prev="${cur%%=*}"',
|
|
155
|
+
' cur="${cur#*=}"',
|
|
156
|
+
" fi",
|
|
157
|
+
' noun="" verb="" POS=0',
|
|
158
|
+
" for ((i = 2; i < CURRENT; i++)); do",
|
|
159
|
+
' w="${words[i]}"',
|
|
160
|
+
' case "$w" in',
|
|
161
|
+
` ${globalValueSkips}) ((i++)) ;;`,
|
|
162
|
+
" -*) ;;",
|
|
163
|
+
" *)",
|
|
164
|
+
' if [[ -z "$noun" ]]; then noun="$w"',
|
|
165
|
+
' elif [[ -z "$verb" ]]; then verb="$w"',
|
|
166
|
+
" fi",
|
|
167
|
+
" ;;",
|
|
168
|
+
" esac",
|
|
169
|
+
" done",
|
|
170
|
+
"",
|
|
171
|
+
" # flag values (verb-scoped, then global)",
|
|
172
|
+
...caseBlock('"$noun/$verb/$prev"', flagValueArms(model, fn), " "),
|
|
173
|
+
...caseBlock('"$prev"', globalValueArms(model, fn), " "),
|
|
174
|
+
"",
|
|
175
|
+
" # flag names",
|
|
176
|
+
' if [[ "$cur" == -* ]]; then',
|
|
177
|
+
...caseBlock('"$noun/$verb"', flagNameArms(model), " "),
|
|
178
|
+
' if [[ -z "$noun" ]]; then',
|
|
179
|
+
` compadd -- ${wordList(rootFlagNames(model), "zsh root flags")}`,
|
|
180
|
+
" else",
|
|
181
|
+
` compadd -- ${wordList(globalFlagNames(model), "zsh global flags")}`,
|
|
182
|
+
" fi",
|
|
183
|
+
" return 0",
|
|
184
|
+
" fi",
|
|
185
|
+
"",
|
|
186
|
+
" # nouns",
|
|
187
|
+
' if [[ -z "$noun" ]]; then',
|
|
188
|
+
` compadd -- ${wordList(nounNames(model), "zsh nouns")}`,
|
|
189
|
+
" return 0",
|
|
190
|
+
" fi",
|
|
191
|
+
...verbSection,
|
|
192
|
+
"",
|
|
193
|
+
" # positionals",
|
|
194
|
+
...caseBlock('"$noun/$verb"', positionalArms, " "),
|
|
195
|
+
"}",
|
|
196
|
+
`${fn} "$@"`,
|
|
197
|
+
"",
|
|
198
|
+
];
|
|
199
|
+
return lines.join("\n");
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=zsh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zsh.js","sourceRoot":"","sources":["../../../../../src/kernel/completion/templates/zsh.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shapes of the completion engine — the model both tiers share, the parsed
|
|
3
|
+
* request the `__complete` resolver answers, and the dynamic-tier seam.
|
|
4
|
+
*
|
|
5
|
+
* The model is derived from the capability modules (the specs), NOT parsed
|
|
6
|
+
* from `surface.v2.json`: the emitted surface deliberately omits enum values,
|
|
7
|
+
* param kinds, and the `complete` field, and the grammar must not grow for a
|
|
8
|
+
* projection. Agreement with the covenant is transitive — the projection
|
|
9
|
+
* agreement test pins the model's noun/verb/flag sets to `emitSurface`, which
|
|
10
|
+
* conformance pins to the golden.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/kernel/completion/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in configuration defaults — the validated distribution config.
|
|
3
|
+
*
|
|
4
|
+
* The lowest config layer is the distribution's own `pragma.conf.ts` (package
|
|
5
|
+
* root), STATICALLY imported so it travels with the emitted modules (no fs read
|
|
6
|
+
* — `evaluateProjectConfig` stats/imports from disk, which is right for a
|
|
7
|
+
* consumer's config and wrong for the distribution's own) and validated through
|
|
8
|
+
* the same `parseRawConfig` as every
|
|
9
|
+
* other layer. Statically imported by `readConfig` (itself dynamic-imported,
|
|
10
|
+
* off the `--help`/`__complete` fast path) and by its own test, so the eager
|
|
11
|
+
* validation and the zod import here add nothing to the storeless surfaces —
|
|
12
|
+
* the lazy.test.ts module-graph probe covers that boundary.
|
|
13
|
+
*/
|
|
14
|
+
import rawConfig from "../../../pragma.conf.js";
|
|
15
|
+
import { parseRawConfig } from "./schema.js";
|
|
16
|
+
export default parseRawConfig(rawConfig, "pragma.conf.ts");
|
|
17
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../../src/kernel/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAe,cAAc,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evaluate `pragma.config.ts` with an invalidating cache (D7).
|
|
3
|
+
*
|
|
4
|
+
* The project config is real TypeScript — evaluated via the runtime's native
|
|
5
|
+
* dynamic import of the file's `default` export. Because evaluation is the cost,
|
|
6
|
+
* the validated (JSON-serializable) result is cached under
|
|
7
|
+
* `$XDG_STATE_HOME/pragma/config-cache/<key>.json`. Warm path: derive key →
|
|
8
|
+
* cache hit → `JSON.parse` (sub-ms). Cold path: import → validate → write cache.
|
|
9
|
+
*
|
|
10
|
+
* The cache key is `sha256(path + entry-mtime + VERSION)`, NOT a hash of the
|
|
11
|
+
* entry file's bytes. This means:
|
|
12
|
+
* - editing the entry file bumps its mtime → new key → re-evaluation, in every
|
|
13
|
+
* process (the byte-hash scheme missed nothing here, but see the limitation);
|
|
14
|
+
* - a pragma upgrade bumps VERSION → new key → re-evaluation (a new binary must
|
|
15
|
+
* never serve a config the old one cached).
|
|
16
|
+
*
|
|
17
|
+
* LIMITATION (accepted, per the review fold): a *transitively*-imported file
|
|
18
|
+
* (e.g. `./pkgs.ts`) edited without touching the entry's mtime is not detected
|
|
19
|
+
* across processes. The fix that would catch it — bundling the config and keying
|
|
20
|
+
* on the bundle hash — would blow the warm-load budget on every load. Touch the
|
|
21
|
+
* entry (or bump VERSION) to force a rebuild.
|
|
22
|
+
*
|
|
23
|
+
* THE CONFIG IS THE CONSUMER'S OWN TYPESCRIPT, and this is the one place the
|
|
24
|
+
* distribution executes code it did not author. `pragma` ships on a `node`
|
|
25
|
+
* shebang, so that import is served by node's type STRIPPING — which erases
|
|
26
|
+
* annotations and refuses syntax that would need real emit (`enum`, `namespace`,
|
|
27
|
+
* parameter properties). Those are rejected with `ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX`,
|
|
28
|
+
* which {@link evaluateProjectConfig} names specifically rather than letting it
|
|
29
|
+
* arrive as an anonymous load failure. The `engines` floor (node >= 22.18) is what
|
|
30
|
+
* makes stripping default-on — and the range excludes 23.0-23.5, which satisfy
|
|
31
|
+
* a bare `>=22.18` but predate the 23.x line's own default-on release (23.6).
|
|
32
|
+
*/
|
|
33
|
+
import { createHash } from "node:crypto";
|
|
34
|
+
import { mkdirSync, readFileSync, renameSync, statSync, writeFileSync, } from "node:fs";
|
|
35
|
+
import { join } from "node:path";
|
|
36
|
+
import { pathToFileURL } from "node:url";
|
|
37
|
+
import { PROJECT_CONFIG_FILENAME, VERSION } from "../../constants.js";
|
|
38
|
+
import { PragmaError } from "../error/index.js";
|
|
39
|
+
import { configCacheDir } from "./paths.js";
|
|
40
|
+
import { parseRawConfig } from "./schema.js";
|
|
41
|
+
/** The cache file path for a given key. */
|
|
42
|
+
function cachePathFor(key) {
|
|
43
|
+
return join(configCacheDir(), `${key}.json`);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The cache key for a project-config file: `sha256(path + mtime + VERSION)`.
|
|
47
|
+
* Cheap to compute (a `stat`, not a full read) and threaded onto the import URL
|
|
48
|
+
* below so a long-lived process re-evaluates when the key changes.
|
|
49
|
+
*/
|
|
50
|
+
function cacheKey(path) {
|
|
51
|
+
const { mtimeMs } = statSync(path);
|
|
52
|
+
return createHash("sha256")
|
|
53
|
+
.update(`${path}\u0000${mtimeMs}\u0000${VERSION}`)
|
|
54
|
+
.digest("hex");
|
|
55
|
+
}
|
|
56
|
+
/** Best-effort atomic write of the validated config to the cache. */
|
|
57
|
+
function writeCache(cachePath, config) {
|
|
58
|
+
try {
|
|
59
|
+
mkdirSync(configCacheDir(), { recursive: true });
|
|
60
|
+
const tempPath = `${cachePath}.tmp`;
|
|
61
|
+
writeFileSync(tempPath, JSON.stringify(config));
|
|
62
|
+
renameSync(tempPath, cachePath);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// A read-only or racing cache is non-fatal — evaluation still returns.
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Evaluate a project config file, serving a warm cache hit when possible.
|
|
70
|
+
*
|
|
71
|
+
* @param path - Absolute path to `pragma.config.{ts,js}`.
|
|
72
|
+
* @returns The validated raw config the file declares.
|
|
73
|
+
* @throws PragmaError with code `CONFIG_ERROR` when the evaluated shape is bad.
|
|
74
|
+
* @note Impure — reads the file, may import it, and writes the cache.
|
|
75
|
+
*/
|
|
76
|
+
export async function evaluateProjectConfig(path) {
|
|
77
|
+
const key = cacheKey(path);
|
|
78
|
+
const cachePath = cachePathFor(key);
|
|
79
|
+
try {
|
|
80
|
+
return JSON.parse(readFileSync(cachePath, "utf-8"));
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// Cache miss — evaluate below.
|
|
84
|
+
}
|
|
85
|
+
// Cache-bust the dynamic import with the key so a long-lived process (the
|
|
86
|
+
// `mcp` server, which re-reads config per tool call) picks up an edited entry
|
|
87
|
+
// instead of a previously imported module. Node honours the query; under Bun
|
|
88
|
+
// the module cache is path-keyed and ignores it, but a fresh process always
|
|
89
|
+
// re-reads, so cross-process correctness holds regardless.
|
|
90
|
+
const url = `${pathToFileURL(path).href}?v=${key}`;
|
|
91
|
+
// Evaluating real TypeScript can throw for reasons `parseRawConfig` never sees:
|
|
92
|
+
// a syntax error, a bad import, or a top-level throw in the config module. Left
|
|
93
|
+
// unwrapped, that raw throw collapses to INTERNAL_ERROR ("report this
|
|
94
|
+
// issue") on EVERY command that reads config. Name it: a CONFIG_ERROR that
|
|
95
|
+
// identifies the offending file and the underlying reason.
|
|
96
|
+
let module;
|
|
97
|
+
try {
|
|
98
|
+
module = (await import(url));
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
if (error instanceof PragmaError)
|
|
102
|
+
throw error;
|
|
103
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
104
|
+
// Node strips types rather than compiling them, so a config using syntax that
|
|
105
|
+
// needs real emit fails here with a message naming neither the constraint nor
|
|
106
|
+
// the fix. Say both — this is a supported config that simply must be written
|
|
107
|
+
// in erasable TypeScript, and the author has no other way to learn that.
|
|
108
|
+
const { code } = (error ?? {});
|
|
109
|
+
if (code === "ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX") {
|
|
110
|
+
throw PragmaError.configError(`Your ${PROJECT_CONFIG_FILENAME} uses TypeScript syntax that cannot be erased: ${reason}`, {
|
|
111
|
+
recovery: {
|
|
112
|
+
message: `Rewrite it in erasable TypeScript — types, interfaces and \`satisfies\` are fine; \`enum\`, \`namespace\` and constructor parameter properties are not. A plain object literal with a \`default\` export always works.`,
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
throw PragmaError.configError(`Cannot load project config ${path}: ${reason}`, {
|
|
117
|
+
recovery: {
|
|
118
|
+
message: `Fix the error in your ${PROJECT_CONFIG_FILENAME} (it must evaluate to a default export), then try again.`,
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
const config = parseRawConfig(module.default, path);
|
|
123
|
+
writeCache(cachePath, config);
|
|
124
|
+
return config;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=evaluateProjectConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluateProjectConfig.js","sourceRoot":"","sources":["../../../../src/kernel/config/evaluateProjectConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Locate the nearest project config by walking up from `cwd`.
|
|
3
|
+
*
|
|
4
|
+
* Looks for `<bin>.config.ts` (or, as a compiled-binary fallback,
|
|
5
|
+
* `<bin>.config.js`) at or above `cwd`. The walk is bounded: it stops after
|
|
6
|
+
* the first directory containing `.git` (the repo root), after the home
|
|
7
|
+
* directory, and at the filesystem root — a config outside the repo or home
|
|
8
|
+
* never leaks in. Ported from the v1 `findProjectConfigPath`.
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync } from "node:fs";
|
|
11
|
+
import { homedir } from "node:os";
|
|
12
|
+
import { dirname, join, resolve } from "node:path";
|
|
13
|
+
import { BIN_NAME, PROJECT_CONFIG_FILENAME } from "../../constants.js";
|
|
14
|
+
/** Candidate project-config filenames, in preference order. */
|
|
15
|
+
const CANDIDATES = [PROJECT_CONFIG_FILENAME, `${BIN_NAME}.config.js`];
|
|
16
|
+
/**
|
|
17
|
+
* Find the nearest project config file at or above `cwd`.
|
|
18
|
+
*
|
|
19
|
+
* @param cwd - Directory to start the walk from.
|
|
20
|
+
* @returns The absolute path of the nearest config, or `undefined`.
|
|
21
|
+
* @note Impure — probes the filesystem while walking up.
|
|
22
|
+
*/
|
|
23
|
+
export function findProjectConfig(cwd) {
|
|
24
|
+
const home = homedir();
|
|
25
|
+
let dir = resolve(cwd);
|
|
26
|
+
while (true) {
|
|
27
|
+
for (const name of CANDIDATES) {
|
|
28
|
+
const candidate = join(dir, name);
|
|
29
|
+
if (existsSync(candidate)) {
|
|
30
|
+
return candidate;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (existsSync(join(dir, ".git")) || dir === home) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
const parent = dirname(dir);
|
|
37
|
+
if (parent === dir) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
dir = parent;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=findProjectConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findProjectConfig.js","sourceRoot":"","sources":["../../../../src/kernel/config/findProjectConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,+DAA+D;AAC/D,MAAM,UAAU,GAAG,CAAC,uBAAuB,EAAE,GAAG,QAAQ,YAAY,CAAU,CAAC;AAE/E;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAEvB,OAAO,IAAI,EAAE,CAAC;QACZ,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAClD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The setup hint — the read-only replacement for first-run seeding.
|
|
3
|
+
*
|
|
4
|
+
* Onboarding used to WRITE. A pipeline step ran before dispatch on every
|
|
5
|
+
* non-help invocation and created `$XDG_CONFIG_HOME/<bin>/config.json`, so
|
|
6
|
+
* `skill list` — a read — mutated the machine before the user had consented to
|
|
7
|
+
* anything, and a banner interleaved itself into the output of runs that were
|
|
8
|
+
* mutating something else entirely. The config layers already treat the missing
|
|
9
|
+
* file as "every field at its built-in default", so the write bought nothing.
|
|
10
|
+
*
|
|
11
|
+
* Seeding is now a setup target, created inside a consented run. What is left
|
|
12
|
+
* here is a STATELESS hint: shown when the global config file is absent, on
|
|
13
|
+
* read-only surfaces only. There is no marker file — a marker is itself a
|
|
14
|
+
* pre-consent write, which is the exact defect being removed — because the
|
|
15
|
+
* presence of the config IS the state.
|
|
16
|
+
*/
|
|
17
|
+
import { existsSync } from "node:fs";
|
|
18
|
+
import { BIN_NAME, ISSUES_URL } from "../../constants.js";
|
|
19
|
+
import { globalConfigPath } from "./paths.js";
|
|
20
|
+
/**
|
|
21
|
+
* The hint lines for a machine that has not been set up, or none when it has.
|
|
22
|
+
*
|
|
23
|
+
* @returns The lines to print, or an empty array.
|
|
24
|
+
* @note Impure — probes the global config path.
|
|
25
|
+
*/
|
|
26
|
+
export function setupHintLines() {
|
|
27
|
+
if (existsSync(globalConfigPath()))
|
|
28
|
+
return [];
|
|
29
|
+
return [
|
|
30
|
+
`${BIN_NAME} is pre-release — report issues at ${ISSUES_URL}.`,
|
|
31
|
+
`Run \`${BIN_NAME} setup\` to configure this machine.`,
|
|
32
|
+
];
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=firstRun.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firstRun.js","sourceRoot":"","sources":["../../../../src/kernel/config/firstRun.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9C,OAAO;QACL,GAAG,QAAQ,sCAAsC,UAAU,GAAG;QAC9D,SAAS,QAAQ,qCAAqC;KACvD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read the global machine config: `$XDG_CONFIG_HOME/pragma/config.json`.
|
|
3
|
+
*
|
|
4
|
+
* The global layer holds cross-project machine state (channel, detail, tier).
|
|
5
|
+
* A missing or empty file contributes no values — the layer simply
|
|
6
|
+
* does not participate in the merge. A *malformed* file (a torn write) must
|
|
7
|
+
* never brick every command (the old loud `CONFIG_ERROR` throw) nor be silently
|
|
8
|
+
* discarded (writeConfigField's old reset-to-`{}`): it is backed up to a
|
|
9
|
+
* timestamped sibling, reset to defaults, and a warning is written to stderr.
|
|
10
|
+
* A structurally *invalid* shape (valid JSON, wrong types) is still a real,
|
|
11
|
+
* fixable user error and surfaces as `CONFIG_ERROR` via {@link parseRawConfig}.
|
|
12
|
+
*/
|
|
13
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
14
|
+
import { globalConfigPath } from "./paths.js";
|
|
15
|
+
import { parseRawConfig } from "./schema.js";
|
|
16
|
+
/**
|
|
17
|
+
* The timestamped sibling path a corrupt config is backed up to before it is
|
|
18
|
+
* reset — shared by the read (this module) and write (writeConfigField) paths
|
|
19
|
+
* so both name the backup identically.
|
|
20
|
+
*
|
|
21
|
+
* @param path - The config file path being recovered.
|
|
22
|
+
* @returns `<path>.corrupt-<ISO timestamp>`.
|
|
23
|
+
*/
|
|
24
|
+
export function corruptBackupPath(path) {
|
|
25
|
+
const stamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
26
|
+
return `${path}.corrupt-${stamp}`;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Recover from a corrupt (unparseable) global config: back the file up, reset it
|
|
30
|
+
* to defaults, and warn on stderr. Best-effort — a read-only config dir degrades
|
|
31
|
+
* to defaults without a backup but still warns. Never throws.
|
|
32
|
+
*
|
|
33
|
+
* @param path - The corrupt config file path.
|
|
34
|
+
* @param raw - Its unparseable contents, preserved in the backup.
|
|
35
|
+
* @note Impure — writes the backup + reset file and to stderr.
|
|
36
|
+
*/
|
|
37
|
+
function recoverCorruptGlobalConfig(path, raw) {
|
|
38
|
+
const backup = corruptBackupPath(path);
|
|
39
|
+
try {
|
|
40
|
+
writeFileSync(backup, raw);
|
|
41
|
+
writeFileSync(path, "{}\n");
|
|
42
|
+
process.stderr.write(`Warning: ${path} is not valid JSON. Backed it up to ${backup} and reset it to defaults.\n`);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
process.stderr.write(`Warning: ${path} is not valid JSON; using built-in defaults.\n`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Read and validate the global config file.
|
|
50
|
+
*
|
|
51
|
+
* @returns The declared values, whether the file exists, and its path.
|
|
52
|
+
* @throws PragmaError with code `CONFIG_ERROR` when the JSON is valid but its
|
|
53
|
+
* shape is not (malformed JSON is recovered, not thrown).
|
|
54
|
+
* @note Impure — reads the filesystem (and may recover a corrupt file).
|
|
55
|
+
*/
|
|
56
|
+
export function readGlobalConfig() {
|
|
57
|
+
const path = globalConfigPath();
|
|
58
|
+
let raw;
|
|
59
|
+
try {
|
|
60
|
+
raw = readFileSync(path, "utf-8");
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return { values: {}, exists: false, path };
|
|
64
|
+
}
|
|
65
|
+
const trimmed = raw.trim();
|
|
66
|
+
if (trimmed === "") {
|
|
67
|
+
return { values: {}, exists: true, path };
|
|
68
|
+
}
|
|
69
|
+
let parsed;
|
|
70
|
+
try {
|
|
71
|
+
parsed = JSON.parse(trimmed);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
recoverCorruptGlobalConfig(path, raw);
|
|
75
|
+
return { values: {}, exists: true, path };
|
|
76
|
+
}
|
|
77
|
+
return { values: parseRawConfig(parsed, path), exists: true, path };
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=globalConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalConfig.js","sourceRoot":"","sources":["../../../../src/kernel/config/globalConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAU7C;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO,GAAG,IAAI,YAAY,KAAK,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,0BAA0B,CAAC,IAAY,EAAE,GAAW;IAC3D,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,YAAY,IAAI,uCAAuC,MAAM,8BAA8B,CAC5F,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,YAAY,IAAI,gDAAgD,CACjE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config kernel barrel — layered TS-evaluated configuration.
|
|
3
|
+
*
|
|
4
|
+
* `schema.ts` (zod) is intentionally not re-exported here: it is imported
|
|
5
|
+
* directly and lazily by the readers, keeping this barrel — and any storeless
|
|
6
|
+
* consumer — off the zod fast path. `defaults` is likewise not re-exported:
|
|
7
|
+
* it statically imports the distribution config and the validating schema.
|
|
8
|
+
*/
|
|
9
|
+
export { evaluateProjectConfig } from "./evaluateProjectConfig.js";
|
|
10
|
+
export { findProjectConfig } from "./findProjectConfig.js";
|
|
11
|
+
export { setupHintLines } from "./firstRun.js";
|
|
12
|
+
export { readGlobalConfig } from "./globalConfig.js";
|
|
13
|
+
export { configCacheDir, configDir, globalConfigPath, stateDir, } from "./paths.js";
|
|
14
|
+
export { readConfig } from "./readConfig.js";
|
|
15
|
+
export { writeConfigField } from "./writeConfigField.js";
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/kernel/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,QAAQ,GACT,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAa7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* XDG base-directory resolution for config and state.
|
|
3
|
+
*
|
|
4
|
+
* Every directory is namespaced by the distribution's own {@link BIN_NAME}, so a
|
|
5
|
+
* fork stores its state beside this one instead of colliding in it — the
|
|
6
|
+
* greeting that quotes the resolved path then names one program, not two. Config
|
|
7
|
+
* (the global JSON) lives under `$XDG_CONFIG_HOME/<bin>`; the evaluated
|
|
8
|
+
* project-config cache lives under `$XDG_STATE_HOME/<bin>/config-cache`. The
|
|
9
|
+
* store layer's cache root (`$XDG_CACHE_HOME/<bin>`) is resolved by
|
|
10
|
+
* `kernel/runtime/paths.ts` instead — it must stay leaf-clean for the storeless
|
|
11
|
+
* fast path. Tests point these env vars at per-run temp directories (see
|
|
12
|
+
* setupXdgIsolation) so they never touch the developer's real state.
|
|
13
|
+
*/
|
|
14
|
+
import { homedir } from "node:os";
|
|
15
|
+
import { join } from "node:path";
|
|
16
|
+
import { BIN_NAME } from "../../constants.js";
|
|
17
|
+
/** `$XDG_CONFIG_HOME/<bin>` (default `~/.config/<bin>`). */
|
|
18
|
+
export function configDir() {
|
|
19
|
+
const base = process.env.XDG_CONFIG_HOME ?? join(homedir(), ".config");
|
|
20
|
+
return join(base, BIN_NAME);
|
|
21
|
+
}
|
|
22
|
+
/** `$XDG_STATE_HOME/<bin>` (default `~/.local/state/<bin>`). */
|
|
23
|
+
export function stateDir() {
|
|
24
|
+
const base = process.env.XDG_STATE_HOME ?? join(homedir(), ".local", "state");
|
|
25
|
+
return join(base, BIN_NAME);
|
|
26
|
+
}
|
|
27
|
+
/** The global config file: `$XDG_CONFIG_HOME/<bin>/config.json`. */
|
|
28
|
+
export function globalConfigPath() {
|
|
29
|
+
return join(configDir(), "config.json");
|
|
30
|
+
}
|
|
31
|
+
/** The evaluated-project-config cache dir: `$XDG_STATE_HOME/<bin>/config-cache`. */
|
|
32
|
+
export function configCacheDir() {
|
|
33
|
+
return join(stateDir(), "config-cache");
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../../src/kernel/config/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,4DAA4D;AAC5D,MAAM,UAAU,SAAS;IACvB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACvE,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,QAAQ;IACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9E,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAC;AAC1C,CAAC"}
|