@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
|
@@ -14,10 +14,14 @@
|
|
|
14
14
|
* facade).
|
|
15
15
|
*/
|
|
16
16
|
import { BIN_NAME } from "../../constants.js";
|
|
17
|
+
import { PragmaError } from "../error/index.js";
|
|
17
18
|
import { compactUri, DEFAULT_PREFIX_MAP } from "../render/index.js";
|
|
18
19
|
import { asVerb } from "../spec/asVerb.js";
|
|
20
|
+
import { DEFAULT_LIST_LIMIT, MAX_LIST_WINDOW } from "./paging.js";
|
|
19
21
|
import { listFormatters, lookupFormatters, sampleFormatters, } from "./renderPack.js";
|
|
20
22
|
import { MAX_SAMPLE_COUNT, MIN_SAMPLE_COUNT, sampleDefaultCount, } from "./sample.js";
|
|
23
|
+
import { storyIssues } from "./storyRules.js";
|
|
24
|
+
import { EVERY_TIER, TIER_PARAM, } from "./types.js";
|
|
21
25
|
// The run bodies pull the SPARQL/GraphQL fetch layer; they are dynamic-imported
|
|
22
26
|
// per invocation so `compilePack` (reached on the storeless --help/__complete
|
|
23
27
|
// fast path via capabilities/index) never statically loads them.
|
|
@@ -42,6 +46,7 @@ const READ_CAPABILITY = {
|
|
|
42
46
|
export function compilePack(definition, source, prefixes) {
|
|
43
47
|
const { noun } = definition;
|
|
44
48
|
const verbs = [];
|
|
49
|
+
const tierScope = definition.tierScope;
|
|
45
50
|
if (definition.list) {
|
|
46
51
|
verbs.push(compileListVerb(definition.list, {
|
|
47
52
|
noun,
|
|
@@ -50,6 +55,7 @@ export function compilePack(definition, source, prefixes) {
|
|
|
50
55
|
doc: definition.toolDescription,
|
|
51
56
|
source,
|
|
52
57
|
prefixes,
|
|
58
|
+
...(tierScope ? { tierScope } : {}),
|
|
53
59
|
}));
|
|
54
60
|
}
|
|
55
61
|
for (const verb of definition.verbs ?? []) {
|
|
@@ -60,10 +66,11 @@ export function compilePack(definition, source, prefixes) {
|
|
|
60
66
|
doc: verb.toolDescription,
|
|
61
67
|
source,
|
|
62
68
|
prefixes,
|
|
69
|
+
...(tierScope ? { tierScope } : {}),
|
|
63
70
|
}));
|
|
64
71
|
}
|
|
65
72
|
if (definition.lookup) {
|
|
66
|
-
verbs.push(compileLookupVerb(definition.lookup, noun, source, prefixes));
|
|
73
|
+
verbs.push(compileLookupVerb(definition.lookup, noun, source, prefixes, tierScope));
|
|
67
74
|
if (definition.lookup.sample) {
|
|
68
75
|
verbs.push(compileSampleVerb(definition.lookup, noun, source, prefixes));
|
|
69
76
|
}
|
|
@@ -123,12 +130,27 @@ export function compileListable(definition) {
|
|
|
123
130
|
* through here alike, so a module-level projection derived from the story
|
|
124
131
|
* (today: {@link compileListable}) cannot reach one tier and miss the other.
|
|
125
132
|
*
|
|
133
|
+
* That door is also where the COMPILABILITY rules are checked
|
|
134
|
+
* ({@link ./storyRules.storyIssues}), for the same reason. The zod grammar runs
|
|
135
|
+
* for config- and package-declared stories only, so a rule stated only there
|
|
136
|
+
* was a declaration-time refusal for a third-party author and a first-call
|
|
137
|
+
* CONFIG_ERROR for the distribution's own stories. The rules are pure string
|
|
138
|
+
* work over text the story already carries, which is what makes them affordable
|
|
139
|
+
* on this path; a story that passed zod has passed them already, so the throw
|
|
140
|
+
* below is reachable only for a story that never saw zod.
|
|
141
|
+
*
|
|
126
142
|
* @param definition - A validated pack definition.
|
|
127
143
|
* @param source - Where the definition came from, for diagnostics.
|
|
128
144
|
* @param prefixes - The merged prefix map used for display compaction.
|
|
129
145
|
* @returns The module: the compiled verbs plus the story's module-level data.
|
|
146
|
+
* @throws PragmaError CONFIG_ERROR when the definition cannot be compiled,
|
|
147
|
+
* naming the field and the rule.
|
|
130
148
|
*/
|
|
131
149
|
export function compileStoryModule(definition, source, prefixes) {
|
|
150
|
+
const issue = storyIssues(definition)[0];
|
|
151
|
+
if (issue) {
|
|
152
|
+
throw PragmaError.configError(`Invalid story in ${source.label} at ${issue.path.join(".")}: ${issue.message}`);
|
|
153
|
+
}
|
|
132
154
|
const listable = compileListable(definition);
|
|
133
155
|
return {
|
|
134
156
|
name: definition.noun,
|
|
@@ -143,6 +165,8 @@ function compileListVerb(shape, meta) {
|
|
|
143
165
|
const params = [
|
|
144
166
|
...projectFilters(shape.filters),
|
|
145
167
|
...projectSearch(shape.search),
|
|
168
|
+
...tierParams(meta.tierScope),
|
|
169
|
+
...PAGE_PARAMS,
|
|
146
170
|
];
|
|
147
171
|
const filterExample = shape.filters?.find((f) => f.values !== undefined);
|
|
148
172
|
const verb = {
|
|
@@ -169,12 +193,15 @@ function compileListVerb(shape, meta) {
|
|
|
169
193
|
{ cmd: `${BIN_NAME} ${meta.noun} ${meta.verb} --format llm` },
|
|
170
194
|
],
|
|
171
195
|
capability: READ_CAPABILITY,
|
|
172
|
-
run: (params, rt) => runBodies().then((m) => m.makeListRun(shape, {
|
|
196
|
+
run: (params, rt) => runBodies().then((m) => m.makeListRun(shape, {
|
|
197
|
+
source: meta.source,
|
|
198
|
+
...(meta.tierScope ? { tierScope: meta.tierScope } : {}),
|
|
199
|
+
})(params, rt)),
|
|
173
200
|
};
|
|
174
201
|
return asVerb(verb);
|
|
175
202
|
}
|
|
176
203
|
/** Compile the `lookup` verb (variadic names → resolved entities). */
|
|
177
|
-
function compileLookupVerb(lookup, noun, source, prefixes) {
|
|
204
|
+
function compileLookupVerb(lookup, noun, source, prefixes, tierScope) {
|
|
178
205
|
// Derive-by-default: every lookup completes its `<name>` from the pack index
|
|
179
206
|
// (empty type = any, the reader handles it), UNLESS the pack opts out
|
|
180
207
|
// (`completion.enabled:false`). `match`/`minChars` tune the derived heuristic.
|
|
@@ -206,17 +233,51 @@ function compileLookupVerb(lookup, noun, source, prefixes) {
|
|
|
206
233
|
path: [noun, "lookup"],
|
|
207
234
|
summary: lookup.description ?? `Look up ${noun} details by name, IRI, or glob.`,
|
|
208
235
|
...(lookup.toolDescription ? { doc: lookup.toolDescription } : {}),
|
|
209
|
-
params: [nameParam],
|
|
236
|
+
params: [nameParam, ...tierParams(tierScope)],
|
|
210
237
|
output: { formatters: lookupFormatters(lookup, prefixes) },
|
|
211
|
-
examples: [
|
|
238
|
+
examples: [
|
|
239
|
+
{ cmd: `${BIN_NAME} ${noun} lookup <name>` },
|
|
240
|
+
...(tierScope
|
|
241
|
+
? [
|
|
242
|
+
{
|
|
243
|
+
cmd: `${BIN_NAME} ${noun} lookup --tier all <name>`,
|
|
244
|
+
note: "every tier, not just the ones in scope",
|
|
245
|
+
},
|
|
246
|
+
]
|
|
247
|
+
: []),
|
|
248
|
+
],
|
|
212
249
|
...(lookup.disclosure
|
|
213
250
|
? { disclosure: disclosureSpec(lookup.disclosure) }
|
|
214
251
|
: {}),
|
|
215
252
|
capability: READ_CAPABILITY,
|
|
216
|
-
run: (params, rt) => runBodies().then((m) => m.makeLookupRun(lookup, noun, source, prefixes)(params, rt)),
|
|
253
|
+
run: (params, rt) => runBodies().then((m) => m.makeLookupRun(lookup, noun, source, prefixes, tierScope)(params, rt)),
|
|
217
254
|
};
|
|
218
255
|
return asVerb(verb);
|
|
219
256
|
}
|
|
257
|
+
/**
|
|
258
|
+
* The `--tier` parameter a TIERED noun's reads carry (`tier` over MCP).
|
|
259
|
+
*
|
|
260
|
+
* Kernel-added, like the page: being tiered is declared, but the argument that
|
|
261
|
+
* steers the scope is the kernel's to name — one spelling across every tiered
|
|
262
|
+
* noun, so an agent that learned `--tier` on `block list` can use it on
|
|
263
|
+
* `concept list` without asking. The help text names the default and the
|
|
264
|
+
* escape, because a scope a caller cannot see is exactly the hidden behaviour
|
|
265
|
+
* CONSTITUTION §VI rules out.
|
|
266
|
+
*
|
|
267
|
+
* Not `repeatable`: a repeated `--tier` would be two chains, and the scope is
|
|
268
|
+
* one chain. The run body refuses an array rather than quietly taking the last.
|
|
269
|
+
*/
|
|
270
|
+
function tierParams(tierScope) {
|
|
271
|
+
if (!tierScope)
|
|
272
|
+
return [];
|
|
273
|
+
return [
|
|
274
|
+
{
|
|
275
|
+
kind: "string",
|
|
276
|
+
name: TIER_PARAM,
|
|
277
|
+
doc: `Read this tier and its ancestors (default: the top-level tiers; "${EVERY_TIER}" for every tier).`,
|
|
278
|
+
},
|
|
279
|
+
];
|
|
280
|
+
}
|
|
220
281
|
/** Compile the `sample` verb (N random exemplars at the highest level). */
|
|
221
282
|
function compileSampleVerb(lookup, noun, source, prefixes) {
|
|
222
283
|
const defaultCount = sampleDefaultCount(lookup);
|
|
@@ -258,6 +319,29 @@ function disclosureSpec(disclosure) {
|
|
|
258
319
|
default: disclosure?.default ?? levels[0] ?? "summary",
|
|
259
320
|
};
|
|
260
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* The page parameters EVERY list-shaped verb carries — `list` and every extra
|
|
324
|
+
* verb alike.
|
|
325
|
+
*
|
|
326
|
+
* Not declared per story, and not declarable: a page is a property of a
|
|
327
|
+
* list-shaped read, so a story that forgot to declare one would be the one
|
|
328
|
+
* answer an agent could not bound. The default is named in the help text
|
|
329
|
+
* because a cap a caller cannot see is exactly the hidden behaviour
|
|
330
|
+
* CONSTITUTION §VI rules out — the number a caller gets when they pass nothing
|
|
331
|
+
* has to be readable in `--help`.
|
|
332
|
+
*/
|
|
333
|
+
const PAGE_PARAMS = [
|
|
334
|
+
{
|
|
335
|
+
kind: "number",
|
|
336
|
+
name: "limit",
|
|
337
|
+
doc: `Maximum rows to return, 1 to ${MAX_LIST_WINDOW} (default ${DEFAULT_LIST_LIMIT}).`,
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
kind: "string",
|
|
341
|
+
name: "after",
|
|
342
|
+
doc: "Continue from a previous page: the cursor that page reported.",
|
|
343
|
+
},
|
|
344
|
+
];
|
|
261
345
|
/** Project declared filters onto verb params (enum for a value set, else string). */
|
|
262
346
|
function projectFilters(filters) {
|
|
263
347
|
return (filters ?? []).map((filter) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../../src/kernel/packs/compile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../../src/kernel/packs/compile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The cursor a caller spends to ask for the page after this one.
|
|
3
|
+
*
|
|
4
|
+
* WHY AN OFFSET. The candidate alternative is a keyset cursor encoding the last
|
|
5
|
+
* row's ordering key, which does not drift when the store changes underneath a
|
|
6
|
+
* caller. It cannot be general, and `block list` is the counterexample: it
|
|
7
|
+
* orders by `?tierRank`, a variable its SELECT does not project, so the
|
|
8
|
+
* ordering key is not in the rows at all — and a pagination mechanism that
|
|
9
|
+
* works only for stories whose ordering keys happen to be columns is not a
|
|
10
|
+
* pagination mechanism. An offset needs nothing from the rows.
|
|
11
|
+
*
|
|
12
|
+
* The drift an offset admits is bounded by what the store is: a read-only,
|
|
13
|
+
* content-addressed pack that changes only when `sources update` rebuilds it.
|
|
14
|
+
* Between two pages of one browse there is no writer.
|
|
15
|
+
*
|
|
16
|
+
* What an offset cannot survive is the caller changing the QUESTION between
|
|
17
|
+
* pages — different filters, a different search term, another story — which is
|
|
18
|
+
* why the cursor carries a fingerprint of the read it was issued for and
|
|
19
|
+
* refuses to be spent on another. That is the failure worth catching, and the
|
|
20
|
+
* one a bare integer would have answered wrongly and in silence.
|
|
21
|
+
*
|
|
22
|
+
* The encoding is opaque on purpose: a caller who cannot read it cannot come to
|
|
23
|
+
* depend on it, so the day a story needs a keyset cursor the cursor's contents
|
|
24
|
+
* change and its contract does not.
|
|
25
|
+
*
|
|
26
|
+
* The fingerprint does not cover the OFFSET, and cannot: a cursor is a token
|
|
27
|
+
* this build issued, not a signed one, so its `o` is editable by anyone who
|
|
28
|
+
* base64-decodes it. That is why the offset is BOUNDED here as well as parsed
|
|
29
|
+
* here — an `o` of 2^53 is a legal JSON integer that the store answers with a
|
|
30
|
+
* raw parse error, so {@link ./paging.MAX_LIST_WINDOW} is checked before the
|
|
31
|
+
* number can reach a query.
|
|
32
|
+
*/
|
|
33
|
+
import { createHash } from "node:crypto";
|
|
34
|
+
import { PragmaError } from "../error/index.js";
|
|
35
|
+
import { MAX_LIST_WINDOW } from "./paging.js";
|
|
36
|
+
/** The cursor encoding's own version, so a future keyset form is tellable apart. */
|
|
37
|
+
const CURSOR_VERSION = 1;
|
|
38
|
+
/**
|
|
39
|
+
* The identity of the read a cursor belongs to — the author query and the
|
|
40
|
+
* arguments that narrow it, hashed short.
|
|
41
|
+
*
|
|
42
|
+
* Each part is LENGTH-PREFIXED rather than merely joined. A separator is only
|
|
43
|
+
* unambiguous if it cannot occur inside a part, and these parts are SPARQL
|
|
44
|
+
* text and JSON — there is no such character. Two different argument lists
|
|
45
|
+
* hashing the same would let a cursor be spent on a read it was not issued
|
|
46
|
+
* for, which is the single thing this function exists to prevent.
|
|
47
|
+
*
|
|
48
|
+
* @param parts - Everything that decides which rows the read returns.
|
|
49
|
+
* @returns A short, stable fingerprint.
|
|
50
|
+
*/
|
|
51
|
+
export function pageFingerprint(parts) {
|
|
52
|
+
const hash = createHash("sha256");
|
|
53
|
+
for (const part of parts)
|
|
54
|
+
hash.update(`${part.length}:${part}`);
|
|
55
|
+
return hash.digest("base64url").slice(0, 12);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Encode the cursor that asks for the rows after this page.
|
|
59
|
+
*
|
|
60
|
+
* @param offset - The row index the next page starts at.
|
|
61
|
+
* @param fingerprint - The read this cursor may be spent on.
|
|
62
|
+
* @returns An opaque, URL-safe token.
|
|
63
|
+
*/
|
|
64
|
+
export function encodeCursor(offset, fingerprint) {
|
|
65
|
+
const payload = JSON.stringify({
|
|
66
|
+
v: CURSOR_VERSION,
|
|
67
|
+
o: offset,
|
|
68
|
+
q: fingerprint,
|
|
69
|
+
});
|
|
70
|
+
return Buffer.from(payload, "utf8").toString("base64url");
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Read an `--after`/`after` cursor back into an offset.
|
|
74
|
+
*
|
|
75
|
+
* @param provided - The raw argument, if any.
|
|
76
|
+
* @param fingerprint - The read the cursor must have been issued for.
|
|
77
|
+
* @returns The row index to start at (0 when no cursor was given).
|
|
78
|
+
* @throws PragmaError INVALID_INPUT when the token is not a cursor this build
|
|
79
|
+
* issued, or was issued for a different read — a mismatch answered with rows
|
|
80
|
+
* would be a page of the wrong question, with nothing to show it.
|
|
81
|
+
*/
|
|
82
|
+
export function readCursor(provided, fingerprint) {
|
|
83
|
+
if (provided === undefined)
|
|
84
|
+
return 0;
|
|
85
|
+
const decoded = decodeCursor(provided);
|
|
86
|
+
if (!decoded) {
|
|
87
|
+
throw PragmaError.invalidInput("after", String(provided), {
|
|
88
|
+
recovery: {
|
|
89
|
+
message: "--after takes the cursor from a previous page of this same read; run the read without it to start from the first page.",
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (decoded.q !== fingerprint) {
|
|
94
|
+
throw PragmaError.invalidInput("after", String(provided), {
|
|
95
|
+
recovery: {
|
|
96
|
+
message: "This cursor was issued for a different read — the filters or the search term changed. Run the new read without --after to start from its first page.",
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return decoded.o;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* The cursor payload, or `undefined` for anything that is not one.
|
|
104
|
+
*
|
|
105
|
+
* The offset is checked against {@link MAX_LIST_WINDOW} here rather than at the
|
|
106
|
+
* store: an unbounded `o` is emitted straight into the generated query's
|
|
107
|
+
* `OFFSET`, where a number the engine cannot express comes back as a parse
|
|
108
|
+
* error dressed as an internal one. Refused here, a hand-edited offset is the
|
|
109
|
+
* same calm INVALID_INPUT as every other malformed cursor.
|
|
110
|
+
*/
|
|
111
|
+
function decodeCursor(provided) {
|
|
112
|
+
if (typeof provided !== "string" || provided === "")
|
|
113
|
+
return undefined;
|
|
114
|
+
let parsed;
|
|
115
|
+
try {
|
|
116
|
+
parsed = JSON.parse(Buffer.from(provided, "base64url").toString("utf8"));
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
if (typeof parsed !== "object" || parsed === null)
|
|
122
|
+
return undefined;
|
|
123
|
+
const payload = parsed;
|
|
124
|
+
if (payload.v !== CURSOR_VERSION)
|
|
125
|
+
return undefined;
|
|
126
|
+
if (!Number.isInteger(payload.o))
|
|
127
|
+
return undefined;
|
|
128
|
+
const offset = payload.o;
|
|
129
|
+
if (offset < 0 || offset > MAX_LIST_WINDOW)
|
|
130
|
+
return undefined;
|
|
131
|
+
if (typeof payload.q !== "string")
|
|
132
|
+
return undefined;
|
|
133
|
+
return { o: offset, q: payload.q };
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../../src/kernel/packs/cursor.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
*/
|
|
25
25
|
import { PragmaError } from "../../error/index.js";
|
|
26
26
|
import { activeExpands, activeFields } from "./../sparql/buildLookupQuery.js";
|
|
27
|
-
import { isNestedExpand } from "../types.js";
|
|
27
|
+
import { expandIsSparql, isNestedExpand } from "../types.js";
|
|
28
28
|
import { MAX_PAGE_SIZE, pluralize, stripVerbPrefix } from "./nameMap.js";
|
|
29
29
|
/** Local name of an IRI (`…#Thing`/`…/Thing` → `Thing`). */
|
|
30
30
|
function extractLocalName(uri) {
|
|
@@ -238,7 +238,14 @@ export function buildLookupDocument(lookup, schema, source, level) {
|
|
|
238
238
|
}
|
|
239
239
|
const selections = [
|
|
240
240
|
...activeFields(lookup, level).map((field, index) => buildScopedSelection(schema, fragmentType, (container) => buildValueSelection(container, field, `lookup.fields/sections[${index}]`, source))),
|
|
241
|
-
|
|
241
|
+
// An expand that declares the SPARQL lane is not this document's — the
|
|
242
|
+
// entity fetcher runs its sub-SELECT beside this query and merges the rows
|
|
243
|
+
// in. Skipped rather than attempted: its terms are chosen for a lane where
|
|
244
|
+
// property paths read and every defined property is reachable, and asking
|
|
245
|
+
// for them here would either drop them in silence or raise.
|
|
246
|
+
...activeExpands(lookup, level)
|
|
247
|
+
.filter((expand) => !expandIsSparql(lookup, expand))
|
|
248
|
+
.map((expand, index) => buildScopedSelection(schema, fragmentType, (container) => buildCollectionSelection(container, expand, `lookup.expand[${index}]`, source))),
|
|
242
249
|
].filter((selection) => selection !== undefined);
|
|
243
250
|
const body = selections.map((selection) => ` ${selection.text}`);
|
|
244
251
|
const text = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildLookupDocument.js","sourceRoot":"","sources":["../../../../../src/kernel/packs/graphql/buildLookupDocument.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAO9E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"buildLookupDocument.js","sourceRoot":"","sources":["../../../../../src/kernel/packs/graphql/buildLookupDocument.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The page a list-shaped verb answers with: how many rows, and where from.
|
|
3
|
+
*
|
|
4
|
+
* WHY A DEFAULT AT ALL. Before this, no list carried a cap: every declared
|
|
5
|
+
* story returned its whole population on every call, and an agent calling one
|
|
6
|
+
* speculatively paid for all of it. A default is what makes the cap real — a
|
|
7
|
+
* `--limit` nobody passes bounds nothing.
|
|
8
|
+
*
|
|
9
|
+
* WHY THIS DEFAULT. It answers to TWO constraints, and it is the largest number
|
|
10
|
+
* that satisfies both.
|
|
11
|
+
*
|
|
12
|
+
* From below: it stays above the row count of every story that already existed
|
|
13
|
+
* when the page arrived (the largest, `block list`, is 252), so no answer that
|
|
14
|
+
* was whole before the pair is truncated by it now.
|
|
15
|
+
*
|
|
16
|
+
* From above: the payload budget bounds ONE answer, and the suite that enforces
|
|
17
|
+
* it requires the largest default answer to sit under 0.8 of the ceiling —
|
|
18
|
+
* 100,000 bytes — so a ceiling nothing approaches keeps catching things and one
|
|
19
|
+
* sitting on the measurement does not flake. The fattest row any declared story
|
|
20
|
+
* serialises is `token values` at 244 bytes, so 300 rows of it is about 73 KB
|
|
21
|
+
* and the gate holds with room to spare.
|
|
22
|
+
*
|
|
23
|
+
* The first constraint alone gave 500, which is what this was, and the second
|
|
24
|
+
* retired it: the token-graph stories brought populations of 745, 1,156, 1,237
|
|
25
|
+
* and 1,746 rows, and at 500 rows `token values` measured 121,776 bytes —
|
|
26
|
+
* inside the ceiling and past the gate, with no headroom left. So the number is
|
|
27
|
+
* now derived from the budget rather than from a population that no longer
|
|
28
|
+
* bounds anything.
|
|
29
|
+
*
|
|
30
|
+
* It is still a KERNEL default and not a per-story one — a story has no
|
|
31
|
+
* page-size knob, so there is exactly one number to know, and it is written
|
|
32
|
+
* here, in the help text of every list verb, and in `BUDGETS.md` beside the
|
|
33
|
+
* payload it bounds. A per-story knob is what to reach for when one story's
|
|
34
|
+
* rows are so much fatter than the rest that one number cannot serve both;
|
|
35
|
+
* that is not true of any story today.
|
|
36
|
+
*
|
|
37
|
+
* WHY A CEILING AS WELL. The page's two integers are emitted into the query
|
|
38
|
+
* ({@link ./sparql/buildListQuery}), and the store's own `LIMIT`/`OFFSET` must
|
|
39
|
+
* fit a 32-bit integer while `Number.isInteger` admits anything up to 2^53. So
|
|
40
|
+
* `--limit 9007199254740991` — the natural "give me everything" an agent
|
|
41
|
+
* writes — used to reach the engine and come back as a raw parse error wrapped
|
|
42
|
+
* in INTERNAL_ERROR and "report this issue", from a flag whose own help invited
|
|
43
|
+
* a larger number. {@link MAX_LIST_WINDOW} is where both halves of the window
|
|
44
|
+
* are refused instead, with the typed INVALID_INPUT the rest of the pair uses
|
|
45
|
+
* and the ceiling named in the message.
|
|
46
|
+
*
|
|
47
|
+
* The cursor that carries a caller from one page to the next is
|
|
48
|
+
* {@link ./cursor}, kept apart because it hashes and this module is reached
|
|
49
|
+
* from the compiler on the storeless `--help` path. It bounds its own offset by
|
|
50
|
+
* the same ceiling, from here.
|
|
51
|
+
*/
|
|
52
|
+
import { PragmaError } from "../error/index.js";
|
|
53
|
+
/**
|
|
54
|
+
* Rows a list-shaped verb returns when the caller names no `--limit`.
|
|
55
|
+
*
|
|
56
|
+
* Derived from the payload budget and from the populations that predate the
|
|
57
|
+
* page — see the module note for both halves of the arithmetic.
|
|
58
|
+
*/
|
|
59
|
+
export const DEFAULT_LIST_LIMIT = 300;
|
|
60
|
+
/**
|
|
61
|
+
* The largest `--limit`, and the largest cursor offset, the kernel admits.
|
|
62
|
+
*
|
|
63
|
+
* NOT the engine's limit, which is an implementation detail of the pinned store
|
|
64
|
+
* and would make the refusal a fact about oxigraph. It comes from the payload
|
|
65
|
+
* budget instead, which is a fact about the answer: `BUDGETS.md`'s
|
|
66
|
+
* `LIST_PAYLOAD_BUDGET_BYTES` is 125,000, and the narrowest row a story can
|
|
67
|
+
* possibly serialise is `{}` plus its separating comma — three bytes — so no
|
|
68
|
+
* answer of more than 41,666 rows can be inside the budget whatever a story's
|
|
69
|
+
* columns are. A limit that cannot produce a legal answer is not a legal limit;
|
|
70
|
+
* rounded down to a number a message can carry, that is 40,000. It stays 22×
|
|
71
|
+
* the largest population the distribution ships (1,746) and 133× the default
|
|
72
|
+
* page, so it refuses nothing a caller could want today.
|
|
73
|
+
*
|
|
74
|
+
* The cursor's OFFSET takes the same ceiling, for a reason of its own: an offset
|
|
75
|
+
* is a count of rows already answered, and a walk that has passed 40,000 of
|
|
76
|
+
* them is walking a population more than two orders of magnitude larger than
|
|
77
|
+
* any single legal answer — the point at which the cursor to spend is a keyset
|
|
78
|
+
* cursor, which is what the encoding's `v` field exists to allow. Until such a
|
|
79
|
+
* story exists, an offset that large is a hand-built or tampered token, and one
|
|
80
|
+
* typed refusal is the honest answer to both.
|
|
81
|
+
*
|
|
82
|
+
* `listBudget.shipped.exec.test.ts` asserts the arithmetic tying this to the
|
|
83
|
+
* budget, so the two cannot drift apart in silence.
|
|
84
|
+
*/
|
|
85
|
+
export const MAX_LIST_WINDOW = 40_000;
|
|
86
|
+
/**
|
|
87
|
+
* Read the `--limit`/`limit` argument.
|
|
88
|
+
*
|
|
89
|
+
* @param provided - The raw argument, if any.
|
|
90
|
+
* @returns The requested limit, or {@link DEFAULT_LIST_LIMIT}.
|
|
91
|
+
* @throws PragmaError INVALID_INPUT for anything that is not a whole number
|
|
92
|
+
* between 1 and {@link MAX_LIST_WINDOW}. The ceiling is named in the message:
|
|
93
|
+
* a refusal that does not say what it would accept is a guessing game.
|
|
94
|
+
*/
|
|
95
|
+
export function readLimit(provided) {
|
|
96
|
+
if (provided === undefined)
|
|
97
|
+
return DEFAULT_LIST_LIMIT;
|
|
98
|
+
const value = typeof provided === "number" ? provided : Number(provided);
|
|
99
|
+
if (!Number.isInteger(value) || value < 1 || value > MAX_LIST_WINDOW) {
|
|
100
|
+
throw PragmaError.invalidInput("limit", String(provided), {
|
|
101
|
+
recovery: {
|
|
102
|
+
message: `--limit takes a whole number of rows, 1 to ${MAX_LIST_WINDOW} (default ${DEFAULT_LIST_LIMIT}).`,
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return value;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=paging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paging.js","sourceRoot":"","sources":["../../../../src/kernel/packs/paging.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,QAAiB;IACzC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,kBAAkB,CAAC;IACtD,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,eAAe,EAAE,CAAC;QACrE,MAAM,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;YACxD,QAAQ,EAAE;gBACR,OAAO,EAAE,8CAA8C,eAAe,aAAa,kBAAkB,IAAI;aAC1G;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|