@canonical/pragma-cli 0.38.0 → 0.42.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 +3 -3
- package/dist/package.json +16 -16
- package/dist/pragma.conf.js +273 -176
- package/dist/pragma.conf.js.map +1 -1
- package/dist/src/capabilities/capabilities/capabilities.verb.js +2 -0
- package/dist/src/capabilities/capabilities/capabilities.verb.js.map +1 -1
- package/dist/src/capabilities/capabilities/catalog.js +47 -51
- package/dist/src/capabilities/capabilities/catalog.js.map +1 -1
- package/dist/src/capabilities/capabilities/index.js +2 -0
- package/dist/src/capabilities/capabilities/index.js.map +1 -1
- package/dist/src/capabilities/capabilities/types.js +5 -5
- package/dist/src/capabilities/colophon/colophon.render.js +7 -4
- package/dist/src/capabilities/colophon/colophon.render.js.map +1 -1
- package/dist/src/capabilities/colophon/colophon.verb.js +1 -0
- package/dist/src/capabilities/colophon/colophon.verb.js.map +1 -1
- package/dist/src/capabilities/colophon/markdownTerminal.js.map +1 -1
- package/dist/src/capabilities/config/get.verb.js +2 -0
- package/dist/src/capabilities/config/get.verb.js.map +1 -1
- package/dist/src/capabilities/config/runField.js +2 -2
- package/dist/src/capabilities/config/runField.js.map +1 -1
- package/dist/src/capabilities/config/set.verb.js +2 -0
- package/dist/src/capabilities/config/set.verb.js.map +1 -1
- package/dist/src/capabilities/config/show.render.js.map +1 -1
- package/dist/src/capabilities/config/show.verb.js +1 -0
- package/dist/src/capabilities/config/show.verb.js.map +1 -1
- package/dist/src/capabilities/config/unset.verb.js +2 -0
- package/dist/src/capabilities/config/unset.verb.js.map +1 -1
- package/dist/src/capabilities/create/constants.js +8 -5
- package/dist/src/capabilities/create/constants.js.map +1 -1
- package/dist/src/capabilities/create/create.render.js.map +1 -1
- package/dist/src/capabilities/create/create.verb.js +36 -7
- package/dist/src/capabilities/create/create.verb.js.map +1 -1
- package/dist/src/capabilities/create/createSurface.generated.js +22 -0
- package/dist/src/capabilities/create/createSurface.generated.js.map +1 -1
- package/dist/src/capabilities/create/index.js +1 -1
- package/dist/src/capabilities/create/pickGenerator.js +1 -0
- package/dist/src/capabilities/create/pickGenerator.js.map +1 -1
- package/dist/src/capabilities/distribution.js +3 -1
- package/dist/src/capabilities/distribution.js.map +1 -1
- package/dist/src/capabilities/doctor/checks/checkPackageRefs.js +10 -2
- package/dist/src/capabilities/doctor/checks/checkPackageRefs.js.map +1 -1
- package/dist/src/capabilities/doctor/checks/targetHealth.js.map +1 -1
- package/dist/src/capabilities/doctor/doctor.verb.js +2 -0
- package/dist/src/capabilities/doctor/doctor.verb.js.map +1 -1
- package/dist/src/capabilities/graph/connect.verb.js +2 -0
- package/dist/src/capabilities/graph/connect.verb.js.map +1 -1
- package/dist/src/capabilities/graph/inspect.render.js +7 -1
- package/dist/src/capabilities/graph/inspect.render.js.map +1 -1
- package/dist/src/capabilities/graph/inspect.verb.js +2 -0
- package/dist/src/capabilities/graph/inspect.verb.js.map +1 -1
- package/dist/src/capabilities/graph/query.render.js +37 -5
- package/dist/src/capabilities/graph/query.render.js.map +1 -1
- package/dist/src/capabilities/graph/query.verb.js +2 -0
- package/dist/src/capabilities/graph/query.verb.js.map +1 -1
- package/dist/src/capabilities/graph/queryText.js +28 -0
- package/dist/src/capabilities/graph/queryText.js.map +1 -1
- package/dist/src/capabilities/graph/runConnect.js +3 -3
- package/dist/src/capabilities/graph/runConnect.js.map +1 -1
- package/dist/src/capabilities/graph/runQuery.js +8 -6
- package/dist/src/capabilities/graph/runQuery.js.map +1 -1
- package/dist/src/capabilities/info/info.verb.js +2 -0
- package/dist/src/capabilities/info/info.verb.js.map +1 -1
- package/dist/src/capabilities/meta/mcp.verb.js +1 -0
- package/dist/src/capabilities/meta/mcp.verb.js.map +1 -1
- package/dist/src/capabilities/ontology/verbs.js +7 -10
- package/dist/src/capabilities/ontology/verbs.js.map +1 -1
- package/dist/src/capabilities/prompt/verbs.js +5 -4
- package/dist/src/capabilities/prompt/verbs.js.map +1 -1
- package/dist/src/capabilities/resources/provider.js +6 -3
- package/dist/src/capabilities/resources/provider.js.map +1 -1
- package/dist/src/capabilities/setup/operations/writability.js.map +1 -1
- package/dist/src/capabilities/setup/plan.render.js.map +1 -1
- package/dist/src/capabilities/setup/setup.verb.js +13 -5
- package/dist/src/capabilities/setup/setup.verb.js.map +1 -1
- package/dist/src/capabilities/shared/calls.js +16 -0
- package/dist/src/capabilities/shared/calls.js.map +1 -0
- package/dist/src/capabilities/shared/packageManager.js.map +1 -1
- package/dist/src/capabilities/skill/discover.js.map +1 -1
- package/dist/src/capabilities/skill/render.js +7 -5
- package/dist/src/capabilities/skill/render.js.map +1 -1
- package/dist/src/capabilities/skill/verbs.js +5 -4
- package/dist/src/capabilities/skill/verbs.js.map +1 -1
- package/dist/src/capabilities/sources/collectStatus.js +6 -1
- package/dist/src/capabilities/sources/collectStatus.js.map +1 -1
- package/dist/src/capabilities/sources/index.js +4 -3
- package/dist/src/capabilities/sources/index.js.map +1 -1
- package/dist/src/capabilities/sources/reset.render.js +37 -0
- package/dist/src/capabilities/sources/reset.render.js.map +1 -0
- package/dist/src/capabilities/sources/reset.verb.js +51 -0
- package/dist/src/capabilities/sources/reset.verb.js.map +1 -0
- package/dist/src/capabilities/sources/runReset.js +59 -0
- package/dist/src/capabilities/sources/runReset.js.map +1 -0
- package/dist/src/capabilities/sources/runUpdate.js +7 -6
- package/dist/src/capabilities/sources/runUpdate.js.map +1 -1
- package/dist/src/capabilities/sources/status.render.js +24 -8
- package/dist/src/capabilities/sources/status.render.js.map +1 -1
- package/dist/src/capabilities/sources/status.verb.js +1 -0
- package/dist/src/capabilities/sources/status.verb.js.map +1 -1
- package/dist/src/capabilities/sources/update.verb.js +2 -0
- package/dist/src/capabilities/sources/update.verb.js.map +1 -1
- package/dist/src/capabilities/upgrade/upgrade.verb.js +1 -0
- package/dist/src/capabilities/upgrade/upgrade.verb.js.map +1 -1
- package/dist/src/capabilities/version/version.verb.js +1 -0
- package/dist/src/capabilities/version/version.verb.js.map +1 -1
- package/dist/src/constants.js +4 -3
- package/dist/src/constants.js.map +1 -1
- package/dist/src/kernel/completion/complete.js.map +1 -1
- package/dist/src/kernel/completion/emitScripts.js.map +1 -1
- package/dist/src/kernel/completion/parse.js.map +1 -1
- package/dist/src/kernel/completion/rank.js.map +1 -1
- package/dist/src/kernel/completion/resolve.js.map +1 -1
- package/dist/src/kernel/config/readConfig.js.map +1 -1
- package/dist/src/kernel/error/PragmaError.js.map +1 -1
- package/dist/src/kernel/error/index.js +1 -1
- package/dist/src/kernel/error/index.js.map +1 -1
- package/dist/src/kernel/error/recovery.js +24 -42
- package/dist/src/kernel/error/recovery.js.map +1 -1
- package/dist/src/kernel/packs/collect.js +123 -9
- package/dist/src/kernel/packs/collect.js.map +1 -1
- package/dist/src/kernel/packs/compile.js +74 -15
- package/dist/src/kernel/packs/compile.js.map +1 -1
- package/dist/src/kernel/packs/graphql/fetchGraphqlLookup.js +3 -3
- package/dist/src/kernel/packs/graphql/fetchGraphqlLookup.js.map +1 -1
- package/dist/src/kernel/packs/iri.js +2 -4
- package/dist/src/kernel/packs/iri.js.map +1 -1
- package/dist/src/kernel/packs/renderPack.js +90 -50
- package/dist/src/kernel/packs/renderPack.js.map +1 -1
- package/dist/src/kernel/packs/resolveEntity.js +202 -90
- package/dist/src/kernel/packs/resolveEntity.js.map +1 -1
- package/dist/src/kernel/packs/runBodies.js +89 -30
- package/dist/src/kernel/packs/runBodies.js.map +1 -1
- package/dist/src/kernel/packs/schema.js +66 -12
- package/dist/src/kernel/packs/schema.js.map +1 -1
- package/dist/src/kernel/packs/sparql/buildListQuery.js +80 -13
- package/dist/src/kernel/packs/sparql/buildListQuery.js.map +1 -1
- package/dist/src/kernel/packs/sparql/buildLookupQuery.js +41 -13
- package/dist/src/kernel/packs/sparql/buildLookupQuery.js.map +1 -1
- package/dist/src/kernel/packs/sparql/filterValues.js +32 -23
- package/dist/src/kernel/packs/sparql/filterValues.js.map +1 -1
- package/dist/src/kernel/packs/sparql/runSelect.js +3 -5
- package/dist/src/kernel/packs/sparql/runSelect.js.map +1 -1
- package/dist/src/kernel/packs/storyRules.js +31 -4
- package/dist/src/kernel/packs/storyRules.js.map +1 -1
- package/dist/src/kernel/packs/tierScope.js +3 -3
- package/dist/src/kernel/packs/tierScope.js.map +1 -1
- package/dist/src/kernel/packs/types.js +4 -0
- package/dist/src/kernel/packs/types.js.map +1 -1
- package/dist/src/kernel/project/cli/buildProgram.js +4 -0
- package/dist/src/kernel/project/cli/buildProgram.js.map +1 -1
- package/dist/src/kernel/project/cli/dispatch.js +32 -8
- package/dist/src/kernel/project/cli/dispatch.js.map +1 -1
- package/dist/src/kernel/project/cli/globalFlags.js.map +1 -1
- package/dist/src/kernel/project/cli/suggestNames.js +44 -1
- package/dist/src/kernel/project/cli/suggestNames.js.map +1 -1
- package/dist/src/kernel/project/cli/verbHelp.js +17 -18
- package/dist/src/kernel/project/cli/verbHelp.js.map +1 -1
- package/dist/src/kernel/project/mcp/buildServer.js +11 -4
- package/dist/src/kernel/project/mcp/buildServer.js.map +1 -1
- package/dist/src/kernel/project/mcp/envelope.js +3 -2
- package/dist/src/kernel/project/mcp/envelope.js.map +1 -1
- package/dist/src/kernel/project/mcp/instructions.js +101 -31
- package/dist/src/kernel/project/mcp/instructions.js.map +1 -1
- package/dist/src/kernel/project/mcp/registerVerb.js +59 -23
- package/dist/src/kernel/project/mcp/registerVerb.js.map +1 -1
- package/dist/src/kernel/render/envelope.js.map +1 -1
- package/dist/src/kernel/render/renderers.js +3 -3
- package/dist/src/kernel/render/renderers.js.map +1 -1
- package/dist/src/kernel/render/turtle.js +21 -4
- package/dist/src/kernel/render/turtle.js.map +1 -1
- package/dist/src/kernel/runtime/boot.js.map +1 -1
- package/dist/src/kernel/runtime/graphpack/build.js +54 -1
- package/dist/src/kernel/runtime/graphpack/build.js.map +1 -1
- package/dist/src/kernel/runtime/graphpack/manifest.js +14 -0
- package/dist/src/kernel/runtime/graphpack/manifest.js.map +1 -1
- package/dist/src/kernel/runtime/graphpack/read.js +3 -5
- package/dist/src/kernel/runtime/graphpack/read.js.map +1 -1
- package/dist/src/kernel/runtime/graphpack/schemas.js +1 -0
- package/dist/src/kernel/runtime/graphpack/schemas.js.map +1 -1
- package/dist/src/kernel/runtime/loadSession.js +8 -1
- package/dist/src/kernel/runtime/loadSession.js.map +1 -1
- package/dist/src/kernel/runtime/packVersion.js +75 -0
- package/dist/src/kernel/runtime/packVersion.js.map +1 -0
- package/dist/src/kernel/runtime/readEntity.js +43 -4
- package/dist/src/kernel/runtime/readEntity.js.map +1 -1
- package/dist/src/kernel/runtime/refs/resolve.js.map +1 -1
- package/dist/src/kernel/runtime/resolveSources.js +61 -9
- package/dist/src/kernel/runtime/resolveSources.js.map +1 -1
- package/dist/src/kernel/runtime/storeReadiness.js +3 -2
- package/dist/src/kernel/runtime/storeReadiness.js.map +1 -1
- package/dist/src/kernel/spec/call.js +167 -0
- package/dist/src/kernel/spec/call.js.map +1 -0
- package/dist/src/kernel/spec/emitReference.js +9 -13
- package/dist/src/kernel/spec/emitReference.js.map +1 -1
- package/dist/src/kernel/spec/emitSurface.js +8 -1
- package/dist/src/kernel/spec/emitSurface.js.map +1 -1
- package/dist/src/kernel/spec/guidance.js +63 -0
- package/dist/src/kernel/spec/guidance.js.map +1 -0
- package/dist/src/kernel/spec/wireType.js +36 -0
- package/dist/src/kernel/spec/wireType.js.map +1 -0
- package/package.json +16 -16
- package/pragma.conf.ts +294 -177
- package/src/capabilities/block.parity.test.ts +1 -1
- package/src/capabilities/callRule.test.ts +147 -0
- package/src/capabilities/capabilities/capabilities.test.ts +47 -19
- package/src/capabilities/capabilities/capabilities.verb.ts +2 -0
- package/src/capabilities/capabilities/catalog.ts +60 -55
- package/src/capabilities/capabilities/index.ts +2 -0
- package/src/capabilities/capabilities/types.ts +16 -19
- package/src/capabilities/colophon/colophon.render.ts +9 -5
- package/src/capabilities/colophon/colophon.verb.ts +1 -0
- package/src/capabilities/config/get.verb.ts +2 -0
- package/src/capabilities/config/runField.ts +3 -3
- package/src/capabilities/config/set.verb.ts +3 -0
- package/src/capabilities/config/show.verb.ts +2 -0
- package/src/capabilities/config/unset.verb.ts +2 -0
- package/src/capabilities/create/constants.ts +8 -5
- package/src/capabilities/create/create.mcp.test.ts +173 -1
- package/src/capabilities/create/create.test.ts +4 -2
- package/src/capabilities/create/create.verb.ts +45 -3
- package/src/capabilities/create/createGrammar.test.ts +41 -5
- package/src/capabilities/create/createSurface.generated.ts +22 -0
- package/src/capabilities/create/crossCli.subprocess.test.ts +53 -14
- package/src/capabilities/create/index.ts +1 -1
- package/src/capabilities/create/pickGenerator.ts +1 -0
- package/src/capabilities/create/shippedCreate.subprocess.test.ts +28 -7
- package/src/capabilities/distribution.test.ts +6 -3
- package/src/capabilities/distribution.ts +6 -0
- package/src/capabilities/doctor/checks/checkPackageRefs.ts +14 -2
- package/src/capabilities/doctor/doctor.test.ts +38 -1
- package/src/capabilities/doctor/doctor.verb.ts +2 -0
- package/src/capabilities/emptyRecovery.test.ts +5 -0
- package/src/capabilities/graph/connect.verb.ts +2 -0
- package/src/capabilities/graph/inspect.render.ts +9 -1
- package/src/capabilities/graph/inspect.test.ts +73 -0
- package/src/capabilities/graph/inspect.verb.ts +2 -0
- package/src/capabilities/graph/query.render.test.ts +35 -0
- package/src/capabilities/graph/query.render.ts +45 -7
- package/src/capabilities/graph/query.shipped.exec.test.ts +44 -0
- package/src/capabilities/graph/query.verb.ts +2 -0
- package/src/capabilities/graph/queryText.test.ts +55 -1
- package/src/capabilities/graph/queryText.ts +47 -0
- package/src/capabilities/graph/runConnect.ts +4 -5
- package/src/capabilities/graph/runQuery.ts +23 -9
- package/src/capabilities/info/info.verb.ts +2 -0
- package/src/capabilities/links.shipped.exec.test.ts +398 -0
- package/src/capabilities/listBudget.shipped.exec.test.ts +2 -2
- package/src/capabilities/listLookup.shipped.exec.test.ts +122 -13
- package/src/capabilities/listQuery.shipped.exec.test.ts +39 -16
- package/src/capabilities/lookupBudget.shipped.exec.test.ts +208 -0
- package/src/capabilities/meta/mcp.verb.ts +2 -0
- package/src/capabilities/ontology/ontology.test.ts +24 -0
- package/src/capabilities/ontology/verbs.ts +16 -12
- package/src/capabilities/prompt/verbs.ts +10 -4
- package/src/capabilities/resources/provider.ts +7 -3
- package/src/capabilities/resources/resources.test.ts +2 -1
- package/src/capabilities/setup/setup.verb.ts +16 -0
- package/src/capabilities/shared/calls.ts +20 -0
- package/src/capabilities/skill/render.ts +9 -6
- package/src/capabilities/skill/verbs.ts +8 -4
- package/src/capabilities/sources/collectStatus.ts +6 -1
- package/src/capabilities/sources/index.ts +4 -3
- package/src/capabilities/sources/reset.render.test.ts +33 -0
- package/src/capabilities/sources/reset.render.ts +43 -0
- package/src/capabilities/sources/reset.verb.ts +59 -0
- package/src/capabilities/sources/runReset.ts +65 -0
- package/src/capabilities/sources/runUpdate.ts +12 -11
- package/src/capabilities/sources/sources.test.ts +158 -3
- package/src/capabilities/sources/status.render.test.ts +63 -1
- package/src/capabilities/sources/status.render.ts +25 -8
- package/src/capabilities/sources/status.verb.ts +2 -0
- package/src/capabilities/sources/types.ts +26 -0
- package/src/capabilities/sources/update.verb.ts +3 -0
- package/src/capabilities/surface.test.ts +29 -4
- package/src/capabilities/token.parity.test.ts +3 -2
- package/src/capabilities/tokenGraph.shipped.exec.test.ts +14 -2
- package/src/capabilities/upgrade/upgrade.verb.ts +1 -0
- package/src/capabilities/variable.parity.test.ts +2 -1
- package/src/capabilities/version/version.verb.ts +1 -0
- package/src/capabilities/wireContract.test.ts +110 -0
- package/src/constants.ts +4 -3
- package/src/kernel/completion/shellDrive.test.ts +2 -2
- package/src/kernel/copy.test.ts +1 -1
- package/src/kernel/error/PragmaError.test.ts +7 -3
- package/src/kernel/error/index.ts +1 -1
- package/src/kernel/error/recovery.test.ts +52 -18
- package/src/kernel/error/recovery.ts +25 -46
- package/src/kernel/error/types.ts +1 -1
- package/src/kernel/packs/collect.test.ts +79 -0
- package/src/kernel/packs/collect.ts +151 -11
- package/src/kernel/packs/compile.test.ts +107 -10
- package/src/kernel/packs/compile.ts +100 -11
- package/src/kernel/packs/filteredEmpty.test.ts +22 -5
- package/src/kernel/packs/graphql/fetchGraphqlLookup.ts +5 -6
- package/src/kernel/packs/graphqlSource.test.ts +42 -0
- package/src/kernel/packs/iri.ts +5 -4
- package/src/kernel/packs/listNotice.test.ts +1 -1
- package/src/kernel/packs/nounLink.test.ts +385 -0
- package/src/kernel/packs/renderPack.ts +137 -57
- package/src/kernel/packs/resolveEntity.test.ts +170 -1
- package/src/kernel/packs/resolveEntity.ts +281 -101
- package/src/kernel/packs/runBodies.ts +133 -31
- package/src/kernel/packs/schema.ts +77 -12
- package/src/kernel/packs/sparql/buildListQuery.test.ts +78 -1
- package/src/kernel/packs/sparql/buildListQuery.ts +106 -16
- package/src/kernel/packs/sparql/buildLookupQuery.ts +44 -13
- package/src/kernel/packs/sparql/filterValues.test.ts +36 -4
- package/src/kernel/packs/sparql/filterValues.ts +50 -31
- package/src/kernel/packs/sparql/runSelect.ts +4 -6
- package/src/kernel/packs/storyRules.ts +37 -4
- package/src/kernel/packs/tierScope.test.ts +120 -6
- package/src/kernel/packs/tierScope.ts +5 -7
- package/src/kernel/packs/toolDescription.test.ts +59 -74
- package/src/kernel/packs/types.ts +93 -11
- package/src/kernel/project/cli/buildProgram.ts +4 -0
- package/src/kernel/project/cli/dispatch.ts +34 -8
- package/src/kernel/project/cli/suggest.test.ts +77 -0
- package/src/kernel/project/cli/suggestNames.ts +47 -1
- package/src/kernel/project/cli/verbHelp.ts +16 -19
- package/src/kernel/project/mcp/buildServer.ts +15 -4
- package/src/kernel/project/mcp/envelope.ts +3 -2
- package/src/kernel/project/mcp/instructions.ts +123 -35
- package/src/kernel/project/mcp/prompts/prompts.test.ts +136 -20
- package/src/kernel/project/mcp/registerVerb.test.ts +28 -0
- package/src/kernel/project/mcp/registerVerb.ts +67 -29
- package/src/kernel/render/__snapshots__/renderers.test.ts.snap +1 -1
- package/src/kernel/render/renderers.test.ts +2 -2
- package/src/kernel/render/renderers.ts +3 -3
- package/src/kernel/render/turtle.ts +24 -4
- package/src/kernel/runtime/graphpack/build.ts +58 -1
- package/src/kernel/runtime/graphpack/graphpack.test.ts +20 -0
- package/src/kernel/runtime/graphpack/manifest.ts +15 -0
- package/src/kernel/runtime/graphpack/read.ts +4 -6
- package/src/kernel/runtime/graphpack/schemas.ts +1 -0
- package/src/kernel/runtime/graphpack/types.ts +13 -0
- package/src/kernel/runtime/loadSession.ts +8 -1
- package/src/kernel/runtime/packVersion.test.ts +61 -0
- package/src/kernel/runtime/packVersion.ts +84 -0
- package/src/kernel/runtime/readEntity.ts +61 -6
- package/src/kernel/runtime/resolveSources.test.ts +90 -7
- package/src/kernel/runtime/resolveSources.ts +91 -10
- package/src/kernel/runtime/storeReadiness.ts +4 -4
- package/src/kernel/runtime/types.ts +12 -0
- package/src/kernel/spec/call.test.ts +95 -0
- package/src/kernel/spec/call.ts +186 -0
- package/src/kernel/spec/emitReference.ts +9 -13
- package/src/kernel/spec/emitSurface.ts +9 -1
- package/src/kernel/spec/guidance.test.ts +49 -0
- package/src/kernel/spec/guidance.ts +68 -0
- package/src/kernel/spec/index.ts +4 -0
- package/src/kernel/spec/surfaceConformance.test.ts +2 -2
- package/src/kernel/spec/types.ts +64 -7
- package/src/kernel/spec/wireType.ts +53 -0
- package/src/testing/behavioral/README.md +1 -1
- package/src/testing/behavioral/errorMatrix.mcp.test.ts +2 -1
- package/src/testing/behavioral/journeys.firstInstall.test.ts +72 -2
- package/src/testing/behavioral/parity.test.ts +40 -0
- package/src/testing/eval/__snapshots__/eval.test.ts.snap +1 -1
- package/src/testing/eval/cases/assembly.ts +4 -3
- package/src/testing/eval/cases/stable.ts +2 -3
- package/src/testing/helpers/callSchema.ts +40 -0
- package/src/testing/helpers/parity.ts +35 -2
- package/src/testing/setupCallChecking.ts +30 -0
- package/dist/src/capabilities/capabilities/hints.js +0 -223
- package/dist/src/capabilities/capabilities/hints.js.map +0 -1
- package/src/capabilities/capabilities/hints.ts +0 -266
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggestNames.js","sourceRoot":"","sources":["../../../../../src/kernel/project/cli/suggestNames.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH
|
|
1
|
+
{"version":3,"file":"suggestNames.js","sourceRoot":"","sources":["../../../../../src/kernel/project/cli/suggestNames.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,20 +7,11 @@
|
|
|
7
7
|
* body — so it stays on the fast `--help` path. Ported from the v1 cli-core
|
|
8
8
|
* `formatVerbHelp`, retargeted at the grammar.
|
|
9
9
|
*/
|
|
10
|
+
import { renderCall } from "../../spec/call.js";
|
|
11
|
+
import { exampleCall, useWhenSentence } from "../../spec/guidance.js";
|
|
10
12
|
import { kebabCase } from "../../spec/index.js";
|
|
11
13
|
import { MUTATION_FLAG_DOCS, negationFlagDoc } from "./constants.js";
|
|
12
14
|
import { helpColumns, helpDim, helpHeading, helpTerm, helpUsage, } from "./helpFormat.js";
|
|
13
|
-
/**
|
|
14
|
-
* A verb's `doc` doubles as its MCP tool description, so a pack's authored
|
|
15
|
-
* `toolDescription` may end with an MCP tool-call example — `Example:
|
|
16
|
-
* token_lookup { names: ["…"] }`. That `noun_verb {…}` syntax is MCP-transport
|
|
17
|
-
* shape, meaningless on the CLI, so the CLI projector drops the trailing example
|
|
18
|
-
* sentence; the MCP projector keeps the authored text whole. Hand-written docs
|
|
19
|
-
* carry no such example and pass through untouched.
|
|
20
|
-
*/
|
|
21
|
-
function stripToolCallExample(doc) {
|
|
22
|
-
return doc.replace(/\s*Example:\s+[a-z][a-z0-9_]*\s*\{[^{}]*\}\.?\s*$/, "");
|
|
23
|
-
}
|
|
24
15
|
/** The positional usage token for a param (`<name>` / `[name]`, `...` variadic). */
|
|
25
16
|
function positionalToken(param) {
|
|
26
17
|
const variadic = param.kind === "string[]" ? "..." : "";
|
|
@@ -57,11 +48,11 @@ export function formatVerbHelp(programName, verb) {
|
|
|
57
48
|
"",
|
|
58
49
|
verb.summary,
|
|
59
50
|
];
|
|
60
|
-
if (verb.doc)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
51
|
+
if (verb.doc)
|
|
52
|
+
lines.push("", verb.doc);
|
|
53
|
+
const question = useWhenSentence(verb);
|
|
54
|
+
if (question)
|
|
55
|
+
lines.push("", question);
|
|
65
56
|
// Every flag the command PARSES is rendered, from the same spec facts
|
|
66
57
|
// registration reads: the declared params, each default-true boolean's
|
|
67
58
|
// `--no-` negation, and — on a mutating verb — the auto-injected mutation
|
|
@@ -82,9 +73,17 @@ export function formatVerbHelp(programName, verb) {
|
|
|
82
73
|
if (flagRows.length > 0) {
|
|
83
74
|
lines.push("", helpHeading("Flags"), ...helpColumns(flagRows));
|
|
84
75
|
}
|
|
85
|
-
|
|
76
|
+
// The verb's declared example leads, spelled as a command by the same
|
|
77
|
+
// renderer that spells it as a tool call in the MCP description.
|
|
78
|
+
const declaredExample = exampleCall(verb);
|
|
79
|
+
const generated = declaredExample && renderCall(declaredExample, "cli");
|
|
80
|
+
const examples = [
|
|
81
|
+
...(generated ? [{ cmd: generated }] : []),
|
|
82
|
+
...(verb.examples ?? []).filter((example) => example.cmd !== generated),
|
|
83
|
+
];
|
|
84
|
+
if (examples.length > 0) {
|
|
86
85
|
lines.push("", helpHeading("Examples"));
|
|
87
|
-
for (const example of
|
|
86
|
+
for (const example of examples) {
|
|
88
87
|
lines.push(` ${helpTerm(example.cmd)}`);
|
|
89
88
|
if (example.note)
|
|
90
89
|
lines.push(` ${helpDim(example.note)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verbHelp.js","sourceRoot":"","sources":["../../../../../src/kernel/project/cli/verbHelp.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"verbHelp.js","sourceRoot":"","sources":["../../../../../src/kernel/project/cli/verbHelp.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
17
17
|
import { MCP_SERVER_NAME, VERSION } from "../../../constants.js";
|
|
18
18
|
import { bootRuntime } from "../../runtime/index.js";
|
|
19
|
-
import {
|
|
19
|
+
import { declareVerbs } from "../../spec/call.js";
|
|
20
|
+
import { buildInstructions, INSTRUCTIONS_MAX_CHARS } from "./instructions.js";
|
|
20
21
|
import { registerVerb } from "./registerVerb.js";
|
|
21
22
|
/**
|
|
22
23
|
* Neutral flags for the MCP runtime. Output shaping is the projector's job
|
|
@@ -44,10 +45,16 @@ const MCP_FLAGS = {
|
|
|
44
45
|
*/
|
|
45
46
|
export async function buildServer(modules, cwd = process.cwd()) {
|
|
46
47
|
const server = new McpServer({ name: MCP_SERVER_NAME, version: VERSION },
|
|
47
|
-
// Handshake orientation (sent once at initialize)
|
|
48
|
-
// conventions
|
|
49
|
-
|
|
48
|
+
// Handshake orientation (sent once at initialize): the distribution's
|
|
49
|
+
// conventions plus a question → tool index generated from the registry. It
|
|
50
|
+
// is FITTED to the length clients keep; when a project's packs push it over,
|
|
51
|
+
// the dropped index lines are noted on stderr (stdout is the JSON-RPC frame).
|
|
52
|
+
{
|
|
53
|
+
instructions: buildInstructions(modules, (dropped) => process.stderr.write(`MCP instructions: ${dropped} index line(s) did not fit ${INSTRUCTIONS_MAX_CHARS} characters and were left to the capabilities catalogue.\n`)),
|
|
54
|
+
});
|
|
50
55
|
const runtime = bootRuntime(MCP_FLAGS, cwd);
|
|
56
|
+
// Tells the call renderer which verbs exist (see `spec/call.ts`).
|
|
57
|
+
declareVerbs(modules.flatMap((module) => module.verbs));
|
|
51
58
|
for (const module of modules) {
|
|
52
59
|
for (const verb of module.verbs) {
|
|
53
60
|
if (verb.capability.mcp.expose) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildServer.js","sourceRoot":"","sources":["../../../../../src/kernel/project/mcp/buildServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"buildServer.js","sourceRoot":"","sources":["../../../../../src/kernel/project/mcp/buildServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,SAAS,GAAgB;IAC7B,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,KAAK;CACf,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAoC,EACpC,GAAG,GAAW,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE;IAC3C,sEAAsE;IACtE,2EAA2E;IAC3E,6EAA6E;IAC7E,8EAA8E;IAC9E;QACE,YAAY,EAAE,iBAAiB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qBAAqB,OAAO,8BAA8B,sBAAsB,4DAA4D,CAC7I,CACF;KACF,CACF,CAAC;IACF,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC5C,kEAAkE;IAClE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAExD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC/B,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,6EAA6E;QAC7E,0EAA0E;QAC1E,uEAAuE;QACvE,kDAAkD;QAClD,MAAM,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9D,wEAAwE;QACxE,MAAM,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* The MCP projector returns the *same* `{ ok, data, meta }` / `{ ok, error }`
|
|
5
5
|
* envelope the CLI emits under `--format json` — built by the shared
|
|
6
6
|
* `successEnvelope` / `errorEnvelope` — serialized into a single text content
|
|
7
|
-
* block (D4). Reusing the shared builders is what
|
|
8
|
-
*
|
|
7
|
+
* block (D4). Reusing the shared builders is what keeps CLI-JSON and MCP output
|
|
8
|
+
* the same envelope — equal in everything but the spelling of a next step
|
|
9
|
+
* inside `meta.notice`, which follows the surface it is printed on.
|
|
9
10
|
*/
|
|
10
11
|
import { errorEnvelope, successEnvelope } from "../../render/index.js";
|
|
11
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../../src/kernel/project/mcp/envelope.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../../src/kernel/project/mcp/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEvE;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,IAAa,EACb,IAAI,GAA4B,EAAE;IAElC,OAAO;QACL,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;SACpE;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAkB;IAC1C,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -2,43 +2,113 @@
|
|
|
2
2
|
* The MCP server `instructions` string — orientation sent ONCE in the
|
|
3
3
|
* initialize handshake (not per tool call), so agents arrive oriented.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
5
|
+
* A client may defer tools: the agent then sees only tool NAMES and this text
|
|
6
|
+
* until it searches for a tool by name, so a description it never loads cannot
|
|
7
|
+
* steer it. The instructions therefore carry a generated "question → tool"
|
|
8
|
+
* index, built from the SAME `useWhen` each verb declares for its description:
|
|
9
|
+
*
|
|
10
|
+
* - the distribution's conventions, handed over as data (`mcpOrientation` —
|
|
11
|
+
* they name its tiers and nouns, so the kernel writes none of them);
|
|
12
|
+
* - one line per read tool that is not part of a noun's list/lookup/sample
|
|
13
|
+
* trio, `tool — useWhen`;
|
|
14
|
+
* - the trio explained ONCE, with the nouns that have each verb enumerated;
|
|
15
|
+
* - the writes on one shared, plan-first line.
|
|
16
|
+
*
|
|
17
|
+
* Everything listed is derived from the registry: a new verb adds itself. Live
|
|
18
|
+
* numbers (tier/channel/entity counts) are deliberately absent — they would
|
|
19
|
+
* need a store boot at handshake.
|
|
20
|
+
*/
|
|
21
|
+
import { emitSurface, toolName } from "../../spec/index.js";
|
|
22
|
+
/**
|
|
23
|
+
* HARD ceiling on the instructions length, unlike the catalogue budget: clients
|
|
24
|
+
* cap server instructions at about 2 KB and cut the rest, so text past this is
|
|
25
|
+
* text no agent reads. Fit by tightening sentences, never by raising it.
|
|
14
26
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
27
|
+
export const INSTRUCTIONS_MAX_CHARS = 2000;
|
|
28
|
+
/** The verbs every read story compiles to; explained once rather than per noun. */
|
|
29
|
+
const TRIO = ["list", "lookup", "sample"];
|
|
30
|
+
/** How most `useWhen` clauses open; the index says it once. */
|
|
31
|
+
const ASKED = /^when asked /;
|
|
32
|
+
/** Which of the trio a verb is, or nothing for a verb that stands alone. */
|
|
33
|
+
function trioVerbOf(verb) {
|
|
34
|
+
return TRIO.find((name) => verb.path[1] === name);
|
|
35
|
+
}
|
|
19
36
|
/**
|
|
20
37
|
* Build the handshake orientation string from the live capability modules.
|
|
21
38
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
39
|
+
* The registry is not fixed — a project's packs add verbs at runtime — so the
|
|
40
|
+
* text is FITTED, not merely measured: everything that is one line whatever the
|
|
41
|
+
* registry holds comes first, the index comes last, and index lines are dropped
|
|
42
|
+
* from the end until the whole fits, the last line saying how many were dropped
|
|
43
|
+
* and where the full list is. A client would otherwise cut the tail silently.
|
|
44
|
+
*
|
|
45
|
+
* @param modules - The capability modules; the one declaring `mcpOrientation`
|
|
46
|
+
* supplies the conventions, the registry everything else.
|
|
47
|
+
* @param onTruncate - Told how many index lines did not fit, when any did not.
|
|
48
|
+
* @returns The orientation (≤ {@link INSTRUCTIONS_MAX_CHARS}); empty when no
|
|
49
|
+
* module declares one.
|
|
24
50
|
*/
|
|
25
|
-
export function buildInstructions(modules) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
51
|
+
export function buildInstructions(modules, onTruncate) {
|
|
52
|
+
const orientation = modules.find((module) => module.mcpOrientation)?.mcpOrientation;
|
|
53
|
+
if (!orientation)
|
|
54
|
+
return "";
|
|
55
|
+
const tools = modules
|
|
56
|
+
.flatMap((module) => module.verbs)
|
|
57
|
+
.filter((verb) => !verb.hidden && verb.capability.mcp.expose);
|
|
58
|
+
const reads = tools.filter((verb) => !verb.capability.mutates);
|
|
59
|
+
// The trio, once: every noun that has any of the three, marked for what it
|
|
60
|
+
// has beyond `list` — a noun is never promised a verb it lacks.
|
|
61
|
+
const has = (noun, name) => reads.some((verb) => verb.path[0] === noun && trioVerbOf(verb) === name);
|
|
62
|
+
const nouns = [
|
|
63
|
+
...new Set(reads.filter(trioVerbOf).map((verb) => verb.path[0])),
|
|
64
|
+
].map((noun) => `${noun}${has(noun, "lookup") ? "" : "†"}${has(noun, "sample") ? "*" : ""}`);
|
|
65
|
+
const writes = tools
|
|
66
|
+
.filter((verb) => verb.capability.mutates)
|
|
67
|
+
.map((verb) => toolName(verb.path))
|
|
68
|
+
.join(", ");
|
|
69
|
+
// The resource templates come from the emitted surface: the scheme is
|
|
70
|
+
// declared by the module that serves it and frozen in the covenant.
|
|
71
|
+
const templates = emitSurface(modules)
|
|
72
|
+
.mcpSurface.resources.map((template) => `\`${template}\``)
|
|
73
|
+
.join(", ");
|
|
74
|
+
const fixed = [
|
|
75
|
+
orientation.conventions.join(" "),
|
|
37
76
|
"",
|
|
38
|
-
|
|
39
|
-
|
|
77
|
+
`Per noun, <noun>_list finds entries and <noun>_lookup reads them by name († has no lookup); * also has <noun>_sample, which shows real data shapes: ${nouns.join(", ")}.`,
|
|
78
|
+
`Writes are plan-first — the first call returns a plan; repeat it with confirm: true to apply: ${writes}.`,
|
|
79
|
+
`Entity detail: read ${templates} resources.`,
|
|
40
80
|
"",
|
|
41
|
-
|
|
42
|
-
|
|
81
|
+
];
|
|
82
|
+
// The index. Verbs that read the store come first — they are the ones that
|
|
83
|
+
// answer questions about the data — so what an overflow drops is the
|
|
84
|
+
// administrative tail. A verb declaring no `useWhen` has no line to give.
|
|
85
|
+
const standalone = reads
|
|
86
|
+
.filter((verb) => !trioVerbOf(verb) && verb.useWhen)
|
|
87
|
+
.sort((a, b) => Number(b.capability.needsStore) - Number(a.capability.needsStore));
|
|
88
|
+
// Most clauses open "when asked …"; saying that once, as a heading, is what
|
|
89
|
+
// lets every question fit under the ceiling.
|
|
90
|
+
const lineFor = (verb) => `${toolName(verb.path)} — ${verb.useWhen?.replace(ASKED, "")}`;
|
|
91
|
+
const group = (heading, verbs) => verbs.length > 0 ? [heading, ...verbs.map(lineFor)] : [];
|
|
92
|
+
const index = [
|
|
93
|
+
...group("When asked:", standalone.filter((verb) => ASKED.test(verb.useWhen ?? ""))),
|
|
94
|
+
...group("Also:", standalone.filter((verb) => !ASKED.test(verb.useWhen ?? ""))),
|
|
95
|
+
];
|
|
96
|
+
// Where the full list lives: the distribution's own orientation tool.
|
|
97
|
+
const catalogue = tools.find((verb) => verb.category === "orientation");
|
|
98
|
+
const render = (kept) => {
|
|
99
|
+
const dropped = index.length - kept;
|
|
100
|
+
const more = dropped === 0
|
|
101
|
+
? []
|
|
102
|
+
: [
|
|
103
|
+
`… and ${dropped} more${catalogue ? `: call ${toolName(catalogue.path)}` : ""}.`,
|
|
104
|
+
];
|
|
105
|
+
return [...fixed, ...index.slice(0, kept), ...more].join("\n");
|
|
106
|
+
};
|
|
107
|
+
let kept = index.length;
|
|
108
|
+
while (kept > 0 && render(kept).length > INSTRUCTIONS_MAX_CHARS)
|
|
109
|
+
kept--;
|
|
110
|
+
if (kept < index.length)
|
|
111
|
+
onTruncate?.(index.length - kept);
|
|
112
|
+
return render(kept);
|
|
43
113
|
}
|
|
44
114
|
//# sourceMappingURL=instructions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../../../src/kernel/project/mcp/instructions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../../../src/kernel/project/mcp/instructions.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,9 @@ import { runPreview, runTask } from "@canonical/task/node";
|
|
|
18
18
|
import { z } from "zod";
|
|
19
19
|
import { asPragmaError } from "../../error/fromTaskError.js";
|
|
20
20
|
import { PragmaError } from "../../error/index.js";
|
|
21
|
+
import { describeTool } from "../../spec/guidance.js";
|
|
21
22
|
import { toolName } from "../../spec/index.js";
|
|
23
|
+
import { wireType } from "../../spec/wireType.js";
|
|
22
24
|
import { toolError, toolSuccess } from "./envelope.js";
|
|
23
25
|
/**
|
|
24
26
|
* Resolve the effective per-call write root for a mutating tool call.
|
|
@@ -52,9 +54,9 @@ function resolveEffectiveCwd(rawCwd, fallback) {
|
|
|
52
54
|
}
|
|
53
55
|
return rawCwd;
|
|
54
56
|
}
|
|
55
|
-
/** The
|
|
56
|
-
function
|
|
57
|
-
switch (
|
|
57
|
+
/** The zod type of ONE value of a param. */
|
|
58
|
+
function zodForItem(item) {
|
|
59
|
+
switch (item.kind) {
|
|
58
60
|
case "string":
|
|
59
61
|
return z.string();
|
|
60
62
|
case "number":
|
|
@@ -62,11 +64,26 @@ function zodForParam(param) {
|
|
|
62
64
|
case "boolean":
|
|
63
65
|
return z.boolean();
|
|
64
66
|
case "enum":
|
|
65
|
-
return z.enum(
|
|
66
|
-
case "string[]":
|
|
67
|
-
return z.array(z.string());
|
|
67
|
+
return z.enum(item.values);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* The base zod type for a param, before `.describe()`/`.optional()`, built
|
|
72
|
+
* from the param's {@link wireType} — the statement the reference prints too.
|
|
73
|
+
*
|
|
74
|
+
* A list is ADVERTISED as a plain array and a bare value is COERCED into one
|
|
75
|
+
* before validation. A preprocess rather than a `string | string[]` union on
|
|
76
|
+
* purpose: the emitted JSON Schema stays `type: "array"`, where a union emits
|
|
77
|
+
* `anyOf`, which the weaker models that most need this read badly. The run
|
|
78
|
+
* bodies already take one value or many, so nothing downstream changes.
|
|
79
|
+
*/
|
|
80
|
+
function zodForParam(param) {
|
|
81
|
+
const wire = wireType(param);
|
|
82
|
+
const item = zodForItem(wire.item);
|
|
83
|
+
if (!wire.list)
|
|
84
|
+
return item;
|
|
85
|
+
return z.preprocess((value) => (typeof value === "string" ? [value] : value), z.array(item));
|
|
86
|
+
}
|
|
70
87
|
/**
|
|
71
88
|
* Build the zod input shape for a verb's params.
|
|
72
89
|
*
|
|
@@ -139,10 +156,11 @@ function withDetail(verb, runtime, args) {
|
|
|
139
156
|
* `{"ok":true,"data":[],"meta":{}}` — and, later, could not tell an unambiguous
|
|
140
157
|
* lookup hit from one of three blocks sharing a name. Riding in `meta` keeps
|
|
141
158
|
* `data` its uniform shape while making both of those ≠ silence, and the CLI's
|
|
142
|
-
* `--format json` carries the same key
|
|
159
|
+
* `--format json` carries the same key. The sentence is the ONE place the two
|
|
160
|
+
* envelopes may differ: a next step inside it is spelled for its surface.
|
|
143
161
|
*/
|
|
144
162
|
function noticeMeta(verb, data) {
|
|
145
|
-
const notice = verb.output.formatters.notice?.(data);
|
|
163
|
+
const notice = verb.output.formatters.notice?.(data, "mcp");
|
|
146
164
|
// The seam's machine half, merged here so an agent gets the tier scope as
|
|
147
165
|
// DATA (`meta.scope`) and not only as the sentence `notice` carries. The CLI
|
|
148
166
|
// merges the same seam into the same keys (`cli/dispatch.ts#renderData`).
|
|
@@ -153,11 +171,20 @@ function noticeMeta(verb, data) {
|
|
|
153
171
|
function readHandler(verb, runtime) {
|
|
154
172
|
return async (args) => {
|
|
155
173
|
try {
|
|
156
|
-
|
|
157
|
-
await runtime.store.get()
|
|
174
|
+
const session = verb.capability.needsStore
|
|
175
|
+
? await runtime.store.get()
|
|
176
|
+
: undefined;
|
|
158
177
|
const params = paramsFromArgs(verb, args);
|
|
159
178
|
const result = await Promise.resolve(verb.run(params, withDetail(verb, runtime, args)));
|
|
160
|
-
return toolSuccess(JSON.parse(verb.output.formatters.json(result)),
|
|
179
|
+
return toolSuccess(JSON.parse(verb.output.formatters.json(result)), {
|
|
180
|
+
// The store fact this read was answered under, from the session that
|
|
181
|
+
// answered it: a pack this project built that the boot passed over
|
|
182
|
+
// because an older CLI built it. The CLI's `--format json` merges the
|
|
183
|
+
// same key from the same place (`cli/dispatch.ts#storeMeta`), so the
|
|
184
|
+
// two machine surfaces carry the same fact under the same key.
|
|
185
|
+
...(session?.ignoredPack ? { ignoredPack: session.ignoredPack } : {}),
|
|
186
|
+
...noticeMeta(verb, result),
|
|
187
|
+
});
|
|
161
188
|
}
|
|
162
189
|
catch (error) {
|
|
163
190
|
return toolError(asPragmaError(error));
|
|
@@ -269,14 +296,11 @@ function mutateHandler(verb, runtime) {
|
|
|
269
296
|
};
|
|
270
297
|
}
|
|
271
298
|
/**
|
|
272
|
-
*
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
* @param verb - The verb to expose (caller ensures `mcp.expose === true`).
|
|
276
|
-
* @param runtime - The runtime handed to the verb's `run`.
|
|
277
|
-
* @note Impure — mutates the server's tool registry.
|
|
299
|
+
* The whole input shape a verb's tool accepts: its declared params plus the
|
|
300
|
+
* arguments the projector injects. Exported so the call rule validates every
|
|
301
|
+
* example and recovery against the schema an agent's call actually meets.
|
|
278
302
|
*/
|
|
279
|
-
export function
|
|
303
|
+
export function buildToolShape(verb) {
|
|
280
304
|
const shape = buildZodSchema(verb.params);
|
|
281
305
|
// A verb with progressive disclosure gains a `detail` enum param derived from
|
|
282
306
|
// its DisclosureSpec (Risk2 — NO new VerbSpec field). The handler seeds
|
|
@@ -301,12 +325,24 @@ export function registerVerb(server, verb, runtime) {
|
|
|
301
325
|
.optional()
|
|
302
326
|
.describe("Absolute project directory to write into; defaults to the server's working directory.");
|
|
303
327
|
}
|
|
328
|
+
return shape;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Register one exposed verb as an MCP tool on the server.
|
|
332
|
+
*
|
|
333
|
+
* @param server - The MCP server to register onto.
|
|
334
|
+
* @param verb - The verb to expose (caller ensures `mcp.expose === true`).
|
|
335
|
+
* @param runtime - The runtime handed to the verb's `run`.
|
|
336
|
+
* @note Impure — mutates the server's tool registry.
|
|
337
|
+
*/
|
|
338
|
+
export function registerVerb(server, verb, runtime) {
|
|
339
|
+
const shape = buildToolShape(verb);
|
|
304
340
|
const config = {
|
|
305
|
-
//
|
|
306
|
-
// (pack `toolDescription`s compile into it
|
|
307
|
-
//
|
|
308
|
-
//
|
|
309
|
-
description: verb
|
|
341
|
+
// Generated, never typed: the question the verb answers, its richer `doc`
|
|
342
|
+
// (pack `toolDescription`s compile into it) or one-line `summary`, and one
|
|
343
|
+
// example call. Tool descriptions are NOT part of the frozen surface, so
|
|
344
|
+
// this stays covenant-safe.
|
|
345
|
+
description: describeTool(verb),
|
|
310
346
|
annotations: annotationsFor(verb),
|
|
311
347
|
};
|
|
312
348
|
if (Object.keys(shape).length > 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerVerb.js","sourceRoot":"","sources":["../../../../../src/kernel/project/mcp/registerVerb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAa,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"registerVerb.js","sourceRoot":"","sources":["../../../../../src/kernel/project/mcp/registerVerb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAa,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAiB,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;;;;;;GASG;AACH,SAAS,mBAAmB,CAAC,MAAe,EAAE,QAAgB;IAC5D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IACjE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE;YAC5C,QAAQ,EAAE,EAAE,OAAO,EAAE,6CAA6C,EAAE;SACrE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,CAAC;QACH,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE;YAC5C,QAAQ,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE;SAChE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4CAA4C;AAC5C,SAAS,UAAU,CAAC,IAAc;IAChC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,SAAS;YACZ,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QACrB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAA0C,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,WAAW,CAAC,KAAgB;IACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,CAAC,CAAC,UAAU,CACjB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACxD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CACd,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,MAA4B;IACzD,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,GAAG;YAAE,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,0EAA0E;QAC1E,qEAAqE;QACrE,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACtD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3B,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iEAAiE;AACjE,SAAS,cAAc,CAAC,IAAc;IACpC,OAAO;QACL,YAAY,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO;QACtC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS;YAC3C,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QACP,aAAa,EAAE,KAAK;KACrB,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,SAAS,cAAc,CACrB,IAAc,EACd,IAA6B;IAE7B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI;YAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,UAAU,CACjB,IAAc,EACd,OAAsB,EACtB,IAA6B;IAE7B,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IACxE,OAAO;QACL,GAAG,OAAO;QACV,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,MAAe,EAAE;KACtE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,UAAU,CAAC,IAAc,EAAE,IAAa;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAa,EAAE,KAAK,CAAC,CAAC;IACrE,0EAA0E;IAC1E,6EAA6E;IAC7E,0EAA0E;IAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAa,CAAC,CAAC;IAC3D,OAAO,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED,gEAAgE;AAChE,SAAS,WAAW,CAAC,IAAc,EAAE,OAAsB;IACzD,OAAO,KAAK,EAAE,IAA6B,EAA2B,EAAE;QACtE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU;gBACxC,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC3B,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAClC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAqB,CACtE,CAAC;YACF,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;gBAClE,qEAAqE;gBACrE,mEAAmE;gBACnE,sEAAsE;gBACtE,qEAAqE;gBACrE,+DAA+D;gBAC/D,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;aAC5B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,OAAe,EAAQ,EAAE;IAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,+EAA+E;AAC/E,SAAS,aAAa,CAAC,IAAc,EAAE,OAAsB;IAC3D,OAAO,KAAK,EAAE,IAA6B,EAA2B,EAAE;QACtE,IAAI,CAAC;YACH,2EAA2E;YAC3E,oEAAoE;YACpE,kEAAkE;YAClE,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU;gBAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,qEAAqE;YACrE,0EAA0E;YAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;YACtC,uEAAuE;YACvE,0EAA0E;YAC1E,0BAA0B;YAC1B,MAAM,WAAW,GAAuB;gBACtC,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,KAAK;gBAChB,GAAG,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI;aAC3B,CAAC;YACF,MAAM,eAAe,GAAkB;gBACrC,GAAG,OAAO;gBACV,GAAG,EAAE,YAAY;gBACjB,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;gBAClC,WAAW;aACZ,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAChC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAEN,CAC3B,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACZ,mEAAmE;gBACnE,sEAAsE;gBACtE,qEAAqE;gBACrE,gEAAgE;gBAChE,EAAE;gBACF,oEAAoE;gBACpE,uEAAuE;gBACvE,+DAA+D;gBAC/D,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC/C,IAAI,CAAC;oBACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE;wBACzC,GAAG,EAAE,WAAW,CAAC,GAAG;wBACpB,aAAa,EAAE,WAAW,CAAC,aAAa;qBACzC,CAAC,CAAC;oBACH,kEAAkE;oBAClE,2DAA2D;oBAC3D,mEAAmE;oBACnE,2DAA2D;oBAC3D,iEAAiE;oBACjE,qCAAqC;oBACrC,EAAE;oBACF,gEAAgE;oBAChE,qEAAqE;oBACrE,iEAAiE;oBACjE,mEAAmE;oBACnE,qEAAqE;oBACrE,qEAAqE;oBACrE,4DAA4D;oBAC5D,EAAE;oBACF,kEAAkE;oBAClE,oEAAoE;oBACpE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CACzC,+BAA+B,CAChC,CAAC;oBACF,MAAM,IAAI,GAAG,kBAAkB,CAC7B,OAAO,EACP,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK,IAAI,CACrC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBACtB,OAAO,WAAW,CAChB,EAAE,IAAI,EAAE,EACR,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1C,CAAC;gBACJ,CAAC;wBAAS,CAAC;oBACT,oEAAoE;oBACpE,mEAAmE;oBACnE,MAAM,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChC,CAAC;YACH,CAAC;YACD,oEAAoE;YACpE,2DAA2D;YAC3D,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;gBACpE,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC;oBAAS,CAAC;gBACT,yEAAyE;gBACzE,yEAAyE;gBACzE,0EAA0E;gBAC1E,wEAAwE;gBACxE,0EAA0E;gBAC1E,0EAA0E;gBAC1E,uEAAuE;gBACvE,0EAA0E;gBAC1E,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAc;IAC3C,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,8EAA8E;IAC9E,wEAAwE;IACxE,+EAA+E;IAC/E,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,KAAK,CAAC,MAAM,GAAG,CAAC;aACb,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAA0C,CAAC;aAChE,QAAQ,EAAE;aACV,QAAQ,CACP,iCAAiC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,CAC3G,CAAC;IACN,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5B,KAAK,CAAC,OAAO,GAAG,CAAC;aACd,OAAO,EAAE;aACT,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,oDAAoD,CAAC,CAAC;QAClE,4EAA4E;QAC5E,8EAA8E;QAC9E,8EAA8E;QAC9E,kEAAkE;QAClE,KAAK,CAAC,GAAG,GAAG,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,uFAAuF,CACxF,CAAC;IACN,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAiB,EACjB,IAAc,EACd,OAAsB;IAEtB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAEnC,MAAM,MAAM,GAIR;QACF,0EAA0E;QAC1E,2EAA2E;QAC3E,yEAAyE;QACzE,4BAA4B;QAC5B,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC;QAC/B,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC;KAClC,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IAE9D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;QACrC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;QAC9B,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE/B,MAAM,CAAC,YAAY,CACjB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EACnB,MAAM,EACN,OAAmD,CACpD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/kernel/render/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAenD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAa,EACb,
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/kernel/render/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAenD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAa,EACb,IAAI,GAA4B,EAAE;IAElC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAkB;IAC9C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -152,9 +152,9 @@ function renderHeaderRow(columns, style) {
|
|
|
152
152
|
*
|
|
153
153
|
* The SCOPE is in the heading for the same reason, and it is the more serious
|
|
154
154
|
* of the two omissions: a truncated page at least ends where it ends, while a
|
|
155
|
-
* scoped read looks exactly like a complete one. `## Block (
|
|
156
|
-
* global, apps
|
|
157
|
-
*
|
|
155
|
+
* scoped read looks exactly like a complete one. `## Block (176, tier scope:
|
|
156
|
+
* global 121, apps 39, …)` says which part of the design system the 176 are,
|
|
157
|
+
* in the words `--tier` accepts. The caller composes that text.
|
|
158
158
|
*
|
|
159
159
|
* @param items - The rows on this page.
|
|
160
160
|
* @param options - Columns and empty-state copy.
|