@canonical/pragma-cli 0.36.0 → 0.38.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 -2
- package/bundled-skills/adoption-a1-styles/SKILL.md +24 -0
- package/bundled-skills/adoption-a2-components/SKILL.md +22 -6
- package/bundled-skills/anatomy-author/ANATOMY_DSL_SPEC.md +1397 -327
- package/bundled-skills/anatomy-author/SKILL.md +840 -137
- package/bundled-skills/design-auditor/SKILL.md +133 -9
- package/bundled-skills/implement-component/SKILL.md +192 -23
- package/bundled-skills/specify-component/SKILL.md +124 -12
- package/bundled-skills/specify-pattern/SKILL.md +47 -8
- package/dist/package.json +23 -20
- package/dist/pragma.conf.js +963 -40
- package/dist/pragma.conf.js.map +1 -1
- package/dist/src/capabilities/capabilities/catalog.js +14 -5
- package/dist/src/capabilities/capabilities/catalog.js.map +1 -1
- package/dist/src/capabilities/capabilities/hints.js +33 -5
- package/dist/src/capabilities/capabilities/hints.js.map +1 -1
- package/dist/src/capabilities/config/show.render.js +30 -2
- package/dist/src/capabilities/config/show.render.js.map +1 -1
- package/dist/src/capabilities/create/create.verb.js +2 -1
- package/dist/src/capabilities/create/create.verb.js.map +1 -1
- package/dist/src/capabilities/create/createSurface.generated.js +23 -1
- package/dist/src/capabilities/create/createSurface.generated.js.map +1 -1
- package/dist/src/capabilities/doctor/checks/checkNodeVersion.js +11 -6
- package/dist/src/capabilities/doctor/checks/checkNodeVersion.js.map +1 -1
- package/dist/src/capabilities/doctor/checks/harnessInventory.js +1 -1
- package/dist/src/capabilities/doctor/checks/harnessInventory.js.map +1 -1
- package/dist/src/capabilities/doctor/checks/isSupportedNodeVersion.js +38 -0
- package/dist/src/capabilities/doctor/checks/isSupportedNodeVersion.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/targetHealth.js +104 -14
- package/dist/src/capabilities/doctor/checks/targetHealth.js.map +1 -1
- package/dist/src/capabilities/graph/connect.render.js +101 -0
- package/dist/src/capabilities/graph/connect.render.js.map +1 -0
- package/dist/src/capabilities/graph/connect.types.js +21 -0
- package/dist/src/capabilities/graph/connect.types.js.map +1 -0
- package/dist/src/capabilities/graph/connect.verb.js +147 -0
- package/dist/src/capabilities/graph/connect.verb.js.map +1 -0
- package/dist/src/capabilities/graph/index.js +5 -3
- package/dist/src/capabilities/graph/index.js.map +1 -1
- package/dist/src/capabilities/graph/queryText.js +206 -0
- package/dist/src/capabilities/graph/queryText.js.map +1 -0
- package/dist/src/capabilities/graph/relationIndex.js +302 -0
- package/dist/src/capabilities/graph/relationIndex.js.map +1 -0
- package/dist/src/capabilities/graph/runConnect.js +456 -0
- package/dist/src/capabilities/graph/runConnect.js.map +1 -0
- package/dist/src/capabilities/graph/runQuery.js +21 -4
- package/dist/src/capabilities/graph/runQuery.js.map +1 -1
- package/dist/src/capabilities/setup/buildPlan.js +6 -2
- package/dist/src/capabilities/setup/buildPlan.js.map +1 -1
- package/dist/src/capabilities/setup/operations/index.js +7 -2
- package/dist/src/capabilities/setup/operations/index.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupCompletions.js +6 -2
- package/dist/src/capabilities/setup/operations/setupCompletions.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupConfig.js +4 -2
- package/dist/src/capabilities/setup/operations/setupConfig.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupGenerator.js +72 -14
- package/dist/src/capabilities/setup/operations/setupGenerator.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupLsp.js +372 -62
- package/dist/src/capabilities/setup/operations/setupLsp.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupMcp.js +150 -5
- package/dist/src/capabilities/setup/operations/setupMcp.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupSkills.js +4 -2
- package/dist/src/capabilities/setup/operations/setupSkills.js.map +1 -1
- package/dist/src/capabilities/setup/operations/writability.js +114 -0
- package/dist/src/capabilities/setup/operations/writability.js.map +1 -0
- package/dist/src/capabilities/setup/plan.js.map +1 -1
- package/dist/src/capabilities/setup/setup.verb.js +80 -31
- package/dist/src/capabilities/setup/setup.verb.js.map +1 -1
- package/dist/src/capabilities/setup/targets.js +124 -42
- package/dist/src/capabilities/setup/targets.js.map +1 -1
- package/dist/src/capabilities/shared/index.js +1 -1
- package/dist/src/capabilities/shared/index.js.map +1 -1
- package/dist/src/constants.js +7 -1
- package/dist/src/constants.js.map +1 -1
- package/dist/src/kernel/error/renderError.js +3 -2
- package/dist/src/kernel/error/renderError.js.map +1 -1
- package/dist/src/kernel/error/validOptions.js +41 -0
- package/dist/src/kernel/error/validOptions.js.map +1 -0
- package/dist/src/kernel/packs/compile.js +90 -6
- package/dist/src/kernel/packs/compile.js.map +1 -1
- package/dist/src/kernel/packs/cursor.js +135 -0
- package/dist/src/kernel/packs/cursor.js.map +1 -0
- package/dist/src/kernel/packs/graphql/buildLookupDocument.js +9 -2
- package/dist/src/kernel/packs/graphql/buildLookupDocument.js.map +1 -1
- package/dist/src/kernel/packs/paging.js +108 -0
- package/dist/src/kernel/packs/paging.js.map +1 -0
- package/dist/src/kernel/packs/renderPack.js +154 -5
- package/dist/src/kernel/packs/renderPack.js.map +1 -1
- package/dist/src/kernel/packs/resolveEntity.js +118 -19
- package/dist/src/kernel/packs/resolveEntity.js.map +1 -1
- package/dist/src/kernel/packs/runBodies.js +156 -18
- package/dist/src/kernel/packs/runBodies.js.map +1 -1
- package/dist/src/kernel/packs/schema.js +160 -12
- package/dist/src/kernel/packs/schema.js.map +1 -1
- package/dist/src/kernel/packs/sparql/authorQuery.js +227 -0
- package/dist/src/kernel/packs/sparql/authorQuery.js.map +1 -0
- package/dist/src/kernel/packs/sparql/buildListQuery.js +251 -0
- package/dist/src/kernel/packs/sparql/buildListQuery.js.map +1 -0
- package/dist/src/kernel/packs/sparql/buildLookupQuery.js +125 -22
- package/dist/src/kernel/packs/sparql/buildLookupQuery.js.map +1 -1
- package/dist/src/kernel/packs/sparql/filterValues.js +145 -0
- package/dist/src/kernel/packs/sparql/filterValues.js.map +1 -0
- package/dist/src/kernel/packs/sparql/index.js +24 -14
- package/dist/src/kernel/packs/sparql/index.js.map +1 -1
- package/dist/src/kernel/packs/sparql/runSelect.js +10 -4
- package/dist/src/kernel/packs/sparql/runSelect.js.map +1 -1
- package/dist/src/kernel/packs/sparql/searchTerm.js +25 -0
- package/dist/src/kernel/packs/sparql/searchTerm.js.map +1 -0
- package/dist/src/kernel/packs/storyRules.js +151 -0
- package/dist/src/kernel/packs/storyRules.js.map +1 -0
- package/dist/src/kernel/packs/tierScope.js +310 -0
- package/dist/src/kernel/packs/tierScope.js.map +1 -0
- package/dist/src/kernel/packs/types.js +80 -0
- package/dist/src/kernel/packs/types.js.map +1 -1
- package/dist/src/kernel/project/cli/buildProgram.js +10 -1
- package/dist/src/kernel/project/cli/buildProgram.js.map +1 -1
- package/dist/src/kernel/project/cli/dispatch.js +104 -3
- package/dist/src/kernel/project/cli/dispatch.js.map +1 -1
- package/dist/src/kernel/project/cli/rootHelp.js +8 -5
- package/dist/src/kernel/project/cli/rootHelp.js.map +1 -1
- package/dist/src/kernel/project/cli/suggestNames.js +31 -7
- package/dist/src/kernel/project/cli/suggestNames.js.map +1 -1
- package/dist/src/kernel/project/mcp/registerVerb.js +5 -1
- package/dist/src/kernel/project/mcp/registerVerb.js.map +1 -1
- package/dist/src/kernel/render/renderers.js +34 -2
- package/dist/src/kernel/render/renderers.js.map +1 -1
- package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js +2 -3
- package/dist/src/kernel/runtime/graphpack/embedded/pack.generated.js.map +1 -1
- package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js +1 -1
- package/dist/src/kernel/runtime/graphpack/embedded/pack.index.generated.js.map +1 -1
- package/dist/src/kernel/runtime/graphpack/embedded/pack.manifest.generated.js +4 -0
- package/dist/src/kernel/runtime/graphpack/embedded/pack.manifest.generated.js.map +1 -0
- package/dist/src/kernel/runtime/graphpack/embedded.js +13 -6
- package/dist/src/kernel/runtime/graphpack/embedded.js.map +1 -1
- package/dist/src/kernel/runtime/graphpack/read.js +17 -10
- package/dist/src/kernel/runtime/graphpack/read.js.map +1 -1
- package/dist/src/kernel/runtime/loadSession.js +3 -1
- package/dist/src/kernel/runtime/loadSession.js.map +1 -1
- package/dist/src/kernel/runtime/probe.js +1 -1
- package/dist/src/kernel/runtime/probe.js.map +1 -1
- package/dist/src/kernel/runtime/readEntity.js +19 -4
- package/dist/src/kernel/runtime/readEntity.js.map +1 -1
- package/dist/src/kernel/runtime/refs/parseRef.js +17 -1
- package/dist/src/kernel/runtime/refs/parseRef.js.map +1 -1
- package/dist/src/kernel/runtime/refs/resolve.js +38 -5
- package/dist/src/kernel/runtime/refs/resolve.js.map +1 -1
- package/dist/src/kernel/spec/emitReference.js +1 -1
- package/dist/src/kernel/spec/emitReference.js.map +1 -1
- package/package.json +23 -20
- package/pragma.conf.ts +983 -40
- package/src/capabilities/block.parity.test.ts +207 -27
- package/src/capabilities/block.shipped.exec.test.ts +156 -14
- package/src/capabilities/block.tierRank.exec.test.ts +46 -9
- package/src/capabilities/capabilities/catalog.ts +14 -5
- package/src/capabilities/capabilities/hints.ts +40 -5
- package/src/capabilities/config/collectConfigShow.test.ts +1 -0
- package/src/capabilities/config/set.test.ts +24 -25
- package/src/capabilities/config/show.render.test.ts +9 -4
- package/src/capabilities/config/show.render.ts +30 -2
- package/src/capabilities/create/byteEquality.test.ts +28 -1
- package/src/capabilities/create/create.test.ts +1 -0
- package/src/capabilities/create/create.verb.ts +2 -1
- package/src/capabilities/create/createGrammar.test.ts +4 -1
- package/src/capabilities/create/createSurface.generated.ts +23 -1
- package/src/capabilities/create/crossCli.subprocess.test.ts +10 -3
- package/src/capabilities/distribution.parity.test.ts +12 -11
- package/src/capabilities/distribution.test.ts +77 -7
- package/src/capabilities/doctor/checks/checkNodeVersion.test.ts +49 -0
- package/src/capabilities/doctor/checks/checkNodeVersion.ts +11 -7
- package/src/capabilities/doctor/checks/harnessInventory.test.ts +13 -6
- package/src/capabilities/doctor/checks/harnessInventory.ts +8 -4
- package/src/capabilities/doctor/checks/isSupportedNodeVersion.test.ts +111 -0
- package/src/capabilities/doctor/checks/isSupportedNodeVersion.ts +34 -0
- package/src/capabilities/doctor/checks/mcpCommand.test.ts +7 -1
- package/src/capabilities/doctor/checks/targetHealth.ts +114 -13
- package/src/capabilities/doctor/doctor.test.ts +327 -36
- package/src/capabilities/emptyRecovery.test.ts +84 -28
- package/src/capabilities/graph/connect.render.ts +141 -0
- package/src/capabilities/graph/connect.shipped.exec.test.ts +370 -0
- package/src/capabilities/graph/connect.test.ts +361 -0
- package/src/capabilities/graph/connect.types.ts +136 -0
- package/src/capabilities/graph/connect.verb.ts +165 -0
- package/src/capabilities/graph/index.ts +5 -3
- package/src/capabilities/graph/query.shipped.exec.test.ts +66 -0
- package/src/capabilities/graph/query.test.ts +17 -0
- package/src/capabilities/graph/queryText.test.ts +121 -0
- package/src/capabilities/graph/queryText.ts +240 -0
- package/src/capabilities/graph/relationIndex.ts +372 -0
- package/src/capabilities/graph/runConnect.ts +577 -0
- package/src/capabilities/graph/runQuery.ts +21 -6
- package/src/capabilities/lazy.test.ts +32 -2
- package/src/capabilities/listBudget.shipped.exec.test.ts +239 -0
- package/src/capabilities/listLookup.shipped.exec.test.ts +387 -0
- package/src/capabilities/listQuery.shipped.exec.test.ts +400 -0
- package/src/capabilities/resources/resources.test.ts +38 -2
- package/src/capabilities/setup/buildPlan.ts +7 -1
- package/src/capabilities/setup/operations/index.ts +14 -0
- package/src/capabilities/setup/operations/setupCompletions.ts +9 -2
- package/src/capabilities/setup/operations/setupConfig.ts +7 -2
- package/src/capabilities/setup/operations/setupGenerator.ts +93 -15
- package/src/capabilities/setup/operations/setupLsp.ts +544 -85
- package/src/capabilities/setup/operations/setupMcp.ts +212 -4
- package/src/capabilities/setup/operations/setupSkills.ts +7 -2
- package/src/capabilities/setup/operations/writability.test.ts +151 -0
- package/src/capabilities/setup/operations/writability.ts +135 -0
- package/src/capabilities/setup/plan.ts +11 -0
- package/src/capabilities/setup/setup.test.ts +992 -16
- package/src/capabilities/setup/setup.verb.ts +84 -36
- package/src/capabilities/setup/targets.ts +152 -48
- package/src/capabilities/setup/types.ts +41 -5
- package/src/capabilities/shared/index.ts +1 -0
- package/src/capabilities/sources/sources.test.ts +55 -0
- package/src/capabilities/surface.test.ts +59 -11
- package/src/capabilities/tier.parity.test.ts +2 -2
- package/src/capabilities/token.parity.test.ts +784 -0
- package/src/capabilities/tokenGraph.cli.test.ts +279 -0
- package/src/capabilities/tokenGraph.shipped.exec.test.ts +653 -0
- package/src/capabilities/variable.parity.test.ts +448 -0
- package/src/constants.ts +8 -0
- package/src/kernel/completion/shellDrive.test.ts +32 -30
- package/src/kernel/config/defaults.test.ts +21 -2
- package/src/kernel/config/readConfig.test.ts +1 -1
- package/src/kernel/error/renderError.ts +3 -2
- package/src/kernel/error/validOptions.test.ts +57 -0
- package/src/kernel/error/validOptions.ts +45 -0
- package/src/kernel/packs/collect.test.ts +2 -0
- package/src/kernel/packs/compile.test.ts +188 -15
- package/src/kernel/packs/compile.ts +109 -14
- package/src/kernel/packs/cursor.ts +135 -0
- package/src/kernel/packs/filteredEmpty.test.ts +213 -0
- package/src/kernel/packs/graphql/buildLookupDocument.ts +16 -9
- package/src/kernel/packs/graphqlSource.test.ts +152 -0
- package/src/kernel/packs/listNotice.test.ts +156 -0
- package/src/kernel/packs/paging.ts +110 -0
- package/src/kernel/packs/renderPack.ts +186 -13
- package/src/kernel/packs/resolveEntity.test.ts +62 -3
- package/src/kernel/packs/resolveEntity.ts +186 -26
- package/src/kernel/packs/runBodies.ts +196 -26
- package/src/kernel/packs/schema.ts +180 -13
- package/src/kernel/packs/sparql/authorQuery.test.ts +179 -0
- package/src/kernel/packs/sparql/authorQuery.ts +257 -0
- package/src/kernel/packs/sparql/buildListQuery.test.ts +344 -0
- package/src/kernel/packs/sparql/buildListQuery.ts +344 -0
- package/src/kernel/packs/sparql/buildLookupQuery.test.ts +138 -0
- package/src/kernel/packs/sparql/buildLookupQuery.ts +140 -20
- package/src/kernel/packs/sparql/filterValues.test.ts +86 -0
- package/src/kernel/packs/sparql/filterValues.ts +182 -0
- package/src/kernel/packs/sparql/index.ts +30 -14
- package/src/kernel/packs/sparql/runSelect.test.ts +63 -0
- package/src/kernel/packs/sparql/runSelect.ts +42 -2
- package/src/kernel/packs/sparql/searchTerm.ts +29 -0
- package/src/kernel/packs/storyRules.ts +180 -0
- package/src/kernel/packs/tierScope.test.ts +487 -0
- package/src/kernel/packs/tierScope.ts +409 -0
- package/src/kernel/packs/toolDescription.test.ts +13 -10
- package/src/kernel/packs/types.ts +311 -9
- package/src/kernel/project/cli/buildProgram.ts +17 -1
- package/src/kernel/project/cli/dispatch.test.ts +87 -0
- package/src/kernel/project/cli/dispatch.ts +114 -4
- package/src/kernel/project/cli/rootHelp.ts +8 -5
- package/src/kernel/project/cli/suggest.test.ts +35 -0
- package/src/kernel/project/cli/suggestNames.ts +34 -7
- package/src/kernel/project/mcp/registerVerb.ts +5 -1
- package/src/kernel/render/contracts.ts +2 -0
- package/src/kernel/render/prefixes.test.ts +2 -0
- package/src/kernel/render/renderers.test.ts +43 -0
- package/src/kernel/render/renderers.ts +34 -1
- package/src/kernel/runtime/graphpack/embedded/pack.generated.ts +2 -3
- package/src/kernel/runtime/graphpack/embedded/pack.index.generated.ts +1 -1
- package/src/kernel/runtime/graphpack/embedded/pack.manifest.generated.ts +3 -0
- package/src/kernel/runtime/graphpack/embedded.ts +14 -6
- package/src/kernel/runtime/graphpack/graphpack.test.ts +31 -5
- package/src/kernel/runtime/graphpack/read.ts +17 -13
- package/src/kernel/runtime/loadSession.ts +3 -1
- package/src/kernel/runtime/probe.ts +1 -1
- package/src/kernel/runtime/readEntity.ts +19 -4
- package/src/kernel/runtime/refs/parseRef.test.ts +49 -1
- package/src/kernel/runtime/refs/parseRef.ts +25 -1
- package/src/kernel/runtime/refs/resolve.ts +39 -5
- package/src/kernel/runtime/types.ts +30 -0
- package/src/kernel/spec/emitReference.ts +1 -1
- package/src/kernel/spec/surfaceConformance.test.ts +2 -2
- package/src/kernel/spec/types.ts +17 -0
- package/src/testing/PARITY_GAPS.ts +4 -4
- package/src/testing/behavioral/agentSession.mcp.test.ts +43 -39
- package/src/testing/behavioral/completion.test.ts +7 -6
- package/src/testing/behavioral/disclosure.test.ts +39 -37
- package/src/testing/behavioral/errorMatrix.mcp.test.ts +82 -64
- package/src/testing/behavioral/errorMatrix.storeless.test.ts +11 -10
- package/src/testing/behavioral/journeys.cli.test.ts +71 -32
- package/src/testing/behavioral/journeys.defaultPack.test.ts +6 -4
- package/src/testing/behavioral/journeys.firstInstall.test.ts +70 -5
- package/src/testing/behavioral/journeys.mcpLifecycle.mcp.test.ts +4 -3
- package/src/testing/behavioral/journeys.packageStories.test.ts +2 -1
- package/src/testing/behavioral/mcpSurface.test.ts +28 -25
- package/src/testing/behavioral/parity.test.ts +25 -23
- package/src/testing/eval/__snapshots__/eval.test.ts.snap +20 -0
- package/src/testing/eval/cases/effectful.ts +7 -1
- package/src/testing/eval/cases/readNouns.ts +100 -11
- package/src/testing/fixtures/blockGraph.ts +89 -5
- package/src/testing/fixtures/connectGraph.ts +159 -0
- package/src/testing/fixtures/graph/canonical.ts +128 -32
- package/src/testing/helpers/fsProbe.ts +88 -0
- package/src/testing/helpers/runCli.test.ts +44 -0
- package/src/testing/helpers/runCli.ts +27 -3
- package/src/testing/perf/budgets.test.ts +3 -1
- package/src/testing/perf/budgets.ts +138 -54
- package/dist/src/kernel/packs/sparql/applyFilters.js +0 -167
- package/dist/src/kernel/packs/sparql/applyFilters.js.map +0 -1
- package/dist/src/kernel/packs/sparql/applySearch.js +0 -25
- package/dist/src/kernel/packs/sparql/applySearch.js.map +0 -1
- package/src/kernel/packs/sparql/applyFilters.ts +0 -203
- package/src/kernel/packs/sparql/applySearch.ts +0 -33
|
@@ -83,36 +83,66 @@ describe("surface conformance — capabilities ⊆ covenant (PROTECTED)", () =>
|
|
|
83
83
|
"sample",
|
|
84
84
|
]);
|
|
85
85
|
// `token` is purely declarative since L-OPEN-9 removed `add-config`: the
|
|
86
|
-
//
|
|
86
|
+
// read verbs its story compiles, and no mutation. The two extra
|
|
87
|
+
// list-shaped verbs sit between `list` and `lookup` because that is the
|
|
88
|
+
// order the compiler emits them in — `list`, then each declared verb, then
|
|
89
|
+
// `lookup`, then `sample`.
|
|
87
90
|
expect(emitted.nouns.token?.verbs.map((v) => v.v)).toEqual([
|
|
88
91
|
"list",
|
|
92
|
+
"values",
|
|
93
|
+
"consumers",
|
|
89
94
|
"lookup",
|
|
90
95
|
"sample",
|
|
91
96
|
]);
|
|
92
|
-
//
|
|
93
|
-
//
|
|
97
|
+
// `variable` is the same shape over the platform stratum, with one extra
|
|
98
|
+
// verb rather than two.
|
|
99
|
+
expect(emitted.nouns.variable?.verbs.map((v) => v.v)).toEqual([
|
|
100
|
+
"list",
|
|
101
|
+
"chain",
|
|
102
|
+
"lookup",
|
|
103
|
+
"sample",
|
|
104
|
+
]);
|
|
105
|
+
// block list declares no filters of its own, and the three flags it
|
|
106
|
+
// carries are all the KERNEL's: `--tier` because the block story declares
|
|
107
|
+
// a tier hierarchy (so every read of it is scoped), and the page's two,
|
|
108
|
+
// which every list-shaped verb gets whether its story declares anything or
|
|
109
|
+
// not. `--tier` leads them because params are emitted in `verb.params`
|
|
110
|
+
// order and the scope is resolved before the page is cut.
|
|
94
111
|
expect(emitted.nouns.block?.verbs).toEqual([
|
|
95
112
|
{
|
|
96
113
|
v: "list",
|
|
114
|
+
flags: ["--tier", "--limit", "--after"],
|
|
97
115
|
needsStore: true,
|
|
98
116
|
mcp: "block_list",
|
|
99
117
|
},
|
|
100
118
|
{
|
|
101
119
|
v: "lookup",
|
|
102
120
|
args: ["<name...>"],
|
|
121
|
+
flags: ["--tier"],
|
|
103
122
|
needsStore: true,
|
|
104
123
|
mcp: "block_lookup",
|
|
105
124
|
},
|
|
125
|
+
// `sample` carries NO `--tier`: a sample is a shape probe drawn at the
|
|
126
|
+
// highest level, and which tier a specimen sits in is not its shape.
|
|
106
127
|
{ v: "sample", needsStore: true, mcp: "block_sample" },
|
|
107
128
|
]);
|
|
108
129
|
// The tier lookup is the story's compiled lookup (L-OPEN-9), so it emits
|
|
109
|
-
// the variadic `<name...>` positional every pack lookup emits
|
|
130
|
+
// the variadic `<name...>` positional every pack lookup emits — and NO
|
|
131
|
+
// `--tier`, because a tier carries no tier of its own and this is the
|
|
132
|
+
// surface that publishes the names `--tier` accepts.
|
|
110
133
|
expect(emitted.nouns.tier?.verbs).toContainEqual({
|
|
111
134
|
v: "lookup",
|
|
112
135
|
args: ["<name...>"],
|
|
113
136
|
needsStore: true,
|
|
114
137
|
mcp: "tier_lookup",
|
|
115
138
|
});
|
|
139
|
+
// The scope reaches every tiered noun, not just the flagship one, and
|
|
140
|
+
// reaches it on both halves of the two-step grammar.
|
|
141
|
+
for (const noun of ["modifier", "concept"]) {
|
|
142
|
+
const verbs = emitted.nouns[noun]?.verbs ?? [];
|
|
143
|
+
expect(verbs.find((v) => v.v === "list")?.flags).toContain("--tier");
|
|
144
|
+
expect(verbs.find((v) => v.v === "lookup")?.flags).toEqual(["--tier"]);
|
|
145
|
+
}
|
|
116
146
|
});
|
|
117
147
|
|
|
118
148
|
it("emits the authored read nouns (ontology TBox, storeless skill, graph inspect)", () => {
|
|
@@ -133,8 +163,18 @@ describe("surface conformance — capabilities ⊆ covenant (PROTECTED)", () =>
|
|
|
133
163
|
{ v: "list", mcp: "skill_list" },
|
|
134
164
|
{ v: "lookup", args: ["<name>"], mcp: "skill_lookup" },
|
|
135
165
|
]);
|
|
136
|
-
// graph
|
|
166
|
+
// graph carries the three store-wide reads: one entity's neighbourhood
|
|
167
|
+
// (`inspect`), the SPARQL escape hatch (`query`, PR6), and the relation
|
|
168
|
+
// paths between two entities (`connect`) — a verb rather than a declared
|
|
169
|
+
// story because the pack grammar can mint only ONE required positional.
|
|
137
170
|
expect(emitted.nouns.graph?.verbs).toEqual([
|
|
171
|
+
{
|
|
172
|
+
v: "connect",
|
|
173
|
+
args: ["<a>", "<b>"],
|
|
174
|
+
flags: ["--hops", "--paths"],
|
|
175
|
+
needsStore: true,
|
|
176
|
+
mcp: "graph_connect",
|
|
177
|
+
},
|
|
138
178
|
{
|
|
139
179
|
v: "inspect",
|
|
140
180
|
args: ["<uri>"],
|
|
@@ -192,10 +232,18 @@ describe("surface conformance — capabilities ⊆ covenant (PROTECTED)", () =>
|
|
|
192
232
|
{
|
|
193
233
|
v: "application",
|
|
194
234
|
args: ["[app-path]"],
|
|
195
|
-
//
|
|
196
|
-
// reachable explicit form (only `--no-`
|
|
197
|
-
// guard rejected), so the projection no longer carries
|
|
198
|
-
|
|
235
|
+
// router is GONE: an always-on fact, not a prompt — it had no
|
|
236
|
+
// reachable explicit form (only a `--no-` spelling the generator's own
|
|
237
|
+
// guard rejected), so the projection no longer carries it. `rendering`
|
|
238
|
+
// is the SSR axis' replacement (L-CIS-3): a select, so it is spelled as
|
|
239
|
+
// a value and never as a negation.
|
|
240
|
+
flags: [
|
|
241
|
+
"--no-forms",
|
|
242
|
+
"--intl",
|
|
243
|
+
"--rendering",
|
|
244
|
+
"--relay",
|
|
245
|
+
"--no-run-install",
|
|
246
|
+
],
|
|
199
247
|
mutates: true,
|
|
200
248
|
mcp: "create_application",
|
|
201
249
|
},
|
|
@@ -330,14 +378,14 @@ describe("surface COMPLETE — emitted == covenant (PROTECTED)", () => {
|
|
|
330
378
|
// The CLOSING direction: assertConforms already proves emitted ⊆ covenant;
|
|
331
379
|
// this proves covenant ⊆ emitted, so together the tool sets are EQUAL — the
|
|
332
380
|
// surface-complete milestone. After PR7, every covenant tool is realized.
|
|
333
|
-
it("emits every covenant tool (all
|
|
381
|
+
it("emits every covenant tool (all 49) — set equality with the covenant", () => {
|
|
334
382
|
const emittedTools = new Set(emitted.mcpSurface.tools);
|
|
335
383
|
const missing = golden.mcpSurface.tools.filter((t) => !emittedTools.has(t));
|
|
336
384
|
expect(missing).toEqual([]);
|
|
337
385
|
expect([...emitted.mcpSurface.tools].sort()).toEqual(
|
|
338
386
|
[...golden.mcpSurface.tools].sort(),
|
|
339
387
|
);
|
|
340
|
-
expect(emitted.mcpSurface.tools).toHaveLength(
|
|
388
|
+
expect(emitted.mcpSurface.tools).toHaveLength(49);
|
|
341
389
|
});
|
|
342
390
|
|
|
343
391
|
// The covenant edit: the non-tool MCP surface is frozen too.
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import { afterAll, beforeAll, describe, expect, it } from "vitest";
|
|
15
15
|
import { compilePack } from "../kernel/packs/compile.js";
|
|
16
16
|
import type { LookupOutput } from "../kernel/packs/resolveEntity.js";
|
|
17
|
-
import type {
|
|
17
|
+
import type { PackPage } from "../kernel/packs/types.js";
|
|
18
18
|
import { verbKey } from "../kernel/packs/uniqueness.js";
|
|
19
19
|
import { DEFAULT_PREFIX_MAP } from "../kernel/render/prefixes.js";
|
|
20
20
|
import type { PragmaRuntime } from "../kernel/runtime/types.js";
|
|
@@ -80,7 +80,7 @@ function blockNames(entity: Record<string, unknown>): string[] {
|
|
|
80
80
|
|
|
81
81
|
describe("tier list parity", () => {
|
|
82
82
|
it("lists every tier, name-ordered, with the uniform row shape", async () => {
|
|
83
|
-
const rows = (await verb("list").run({}, rt)) as
|
|
83
|
+
const rows = ((await verb("list").run({}, rt)) as PackPage).rows;
|
|
84
84
|
expect(rows.map((r) => r.name)).toEqual(["apps", "apps/lxd", "global"]);
|
|
85
85
|
for (const row of rows) {
|
|
86
86
|
expect(row.uri).toBeTruthy();
|