@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
|
@@ -11,13 +11,35 @@
|
|
|
11
11
|
import { BIN_NAME, RECOVERY_CLI_PREFIX } from "../../constants.js";
|
|
12
12
|
import { compactUri } from "../render/index.js";
|
|
13
13
|
import { renderListEmptyNotice, renderListLlm, renderListPlain, renderLookupLlm, renderLookupPlain, } from "../render/renderers.js";
|
|
14
|
+
import { kebabCase } from "../spec/index.js";
|
|
15
|
+
import { EVERY_TIER, } from "./types.js";
|
|
14
16
|
/**
|
|
15
17
|
* The default empty-state hint when a pack authors no `emptyRecovery`: an empty
|
|
16
18
|
* list on a BUILT store (a cold store would have failed with STORE_UNAVAILABLE
|
|
17
19
|
* first) means "nothing matched", so point at both possible fixes.
|
|
18
20
|
*/
|
|
19
21
|
const DEFAULT_EMPTY_HINT = `Either nothing matched — try a wider filter — or the store has nothing in it yet: build it with \`${BIN_NAME} sources update\`.`;
|
|
20
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* Build the list formatters for a list-shaped verb (list or an extra verb).
|
|
24
|
+
*
|
|
25
|
+
* Every mode renders the page's ROWS, so the three output contracts are exactly
|
|
26
|
+
* what they were before a list carried a page: `plain` a table, `llm` its
|
|
27
|
+
* frozen condensed form, `json` the bare array. What the page adds rides the
|
|
28
|
+
* `notice` seam — the channel that already exists for what the data cannot say
|
|
29
|
+
* about itself, and which both machine surfaces project into `meta.notice`.
|
|
30
|
+
*
|
|
31
|
+
* EVERY format says it, though, because a truncation nobody is told about is a
|
|
32
|
+
* wrong answer in any dialect. The seam alone did not reach `llm`: the
|
|
33
|
+
* dispatcher routes a notice to stderr in `plain` and into `meta.notice` in
|
|
34
|
+
* `json`, but the `llm` branch renders the body and nothing else — and `llm`
|
|
35
|
+
* is what an agent (or any piped invocation, which auto-detects it) actually
|
|
36
|
+
* reads. So the condensed form carries the sentence in its own body, as a final
|
|
37
|
+
* line, and its heading admits the page is a page.
|
|
38
|
+
*
|
|
39
|
+
* A page that is the whole answer says nothing, which is why declaring the
|
|
40
|
+
* default page size above every story's population left every existing answer
|
|
41
|
+
* untouched, notice included.
|
|
42
|
+
*/
|
|
21
43
|
export function listFormatters(shape, meta) {
|
|
22
44
|
const columns = shape.columns.map((column) => ({
|
|
23
45
|
key: column.field,
|
|
@@ -39,14 +61,120 @@ export function listFormatters(shape, meta) {
|
|
|
39
61
|
emptyHint,
|
|
40
62
|
};
|
|
41
63
|
return {
|
|
42
|
-
plain: (
|
|
43
|
-
llm: (
|
|
44
|
-
|
|
64
|
+
plain: (page, context) => renderListPlain(page.rows, options, context),
|
|
65
|
+
llm: (page) => {
|
|
66
|
+
const body = renderListLlm(page.rows, emptyCopy(page, meta, options), {
|
|
67
|
+
more: page.nextAfter !== undefined,
|
|
68
|
+
...(scopeText(page) === undefined
|
|
69
|
+
? {}
|
|
70
|
+
: { scope: scopeText(page) }),
|
|
71
|
+
});
|
|
72
|
+
const notice = listNotice(page, meta);
|
|
73
|
+
return notice ? `${body}\n\n${notice}` : body;
|
|
74
|
+
},
|
|
75
|
+
json: (page) => JSON.stringify(page.rows, null, 2),
|
|
45
76
|
// Zero rows: the dispatcher routes this to stderr (exit 0) so the plain
|
|
46
77
|
// stdout stream stays pure data; llm/json keep their own empty shapes.
|
|
47
|
-
notice: (
|
|
78
|
+
notice: (page) => page.rows.length === 0
|
|
79
|
+
? joinNotices([
|
|
80
|
+
renderListEmptyNotice(emptyCopy(page, meta, options)),
|
|
81
|
+
scopeNotice(page),
|
|
82
|
+
])
|
|
83
|
+
: listNotice(page, meta),
|
|
84
|
+
// The scope rides the envelope as DATA as well as prose: an agent deciding
|
|
85
|
+
// whether to widen the read should not have to parse a sentence to learn
|
|
86
|
+
// which tiers it got.
|
|
87
|
+
meta: (page) => (page.scope ? { scope: page.scope } : undefined),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/** The tier scope in the words `--tier` accepts, or nothing when unscoped. */
|
|
91
|
+
function scopeText(page) {
|
|
92
|
+
return page.scope ? page.scope.tiers.join(", ") : undefined;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* What a SCOPED page says for itself: which tiers it answered from, and the
|
|
96
|
+
* argument that widens it.
|
|
97
|
+
*
|
|
98
|
+
* The plain table has no heading to carry it (a plain list is columns a pipe
|
|
99
|
+
* reads as records), so the sentence is the plain surface's whole account of
|
|
100
|
+
* the scope — and the notice seam is where this package already puts what the
|
|
101
|
+
* data cannot say about itself.
|
|
102
|
+
*/
|
|
103
|
+
function scopeNotice(page) {
|
|
104
|
+
const scope = scopeText(page);
|
|
105
|
+
if (scope === undefined)
|
|
106
|
+
return undefined;
|
|
107
|
+
return (`Tier scope: ${scope}. ` +
|
|
108
|
+
`Pass \`--tier <name>\` for one tier and its ancestors, or \`--tier ${EVERY_TIER}\` for every tier.`);
|
|
109
|
+
}
|
|
110
|
+
/** The page's notices, in the order a reader needs them: scope, then paging. */
|
|
111
|
+
function listNotice(page, meta) {
|
|
112
|
+
return joinNotices([scopeNotice(page), pageNotice(page, meta)]);
|
|
113
|
+
}
|
|
114
|
+
/** Join what a page has to say into one notice, dropping what it has not. */
|
|
115
|
+
function joinNotices(notices) {
|
|
116
|
+
const present = notices.filter((notice) => Boolean(notice));
|
|
117
|
+
return present.length === 0 ? undefined : present.join(" ");
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* The empty-state copy this page deserves.
|
|
121
|
+
*
|
|
122
|
+
* Two facts can empty a list and zero rows cannot tell them apart: nothing was
|
|
123
|
+
* there, or a filter missed what was. Both are worth saying and they are not
|
|
124
|
+
* exclusive, so a filtered empty page says both — the kernel's own sentence
|
|
125
|
+
* names the arguments the caller typed, and the story's `emptyRecovery` follows
|
|
126
|
+
* it on the next line, exactly as it does on an unfiltered page.
|
|
127
|
+
*
|
|
128
|
+
* It did not, briefly: a filtered empty page reported only the narrowing,
|
|
129
|
+
* because the recoveries of the day asserted an empty store ("No token symbols
|
|
130
|
+
* in the store … run `pragma sources update`") and so told a reader with 745
|
|
131
|
+
* symbols in it to rebuild for nothing. That is a WORDING defect, and it is
|
|
132
|
+
* fixed where it lives — a story's recovery is now written to hold whether the
|
|
133
|
+
* population is empty or a filter missed a populated one, or the story declares
|
|
134
|
+
* none. Suppressing it here cost more than it saved: `token consumers --symbol
|
|
135
|
+
* color.text` narrows a table that records no bindings at all, and "No token
|
|
136
|
+
* matches `--symbol color.text`." on its own read as a mistyped symbol while
|
|
137
|
+
* withholding the one account of the emptiness that verb has.
|
|
138
|
+
*
|
|
139
|
+
* @param page - The rendered page (its rows and the filters that cut them).
|
|
140
|
+
* @param meta - The noun, for the sentence.
|
|
141
|
+
* @param base - The story's own empty copy.
|
|
142
|
+
* @returns `base` unchanged, or `base` with the filter-shaped message — the
|
|
143
|
+
* story's own hint is kept either way.
|
|
144
|
+
*/
|
|
145
|
+
function emptyCopy(page, meta, base) {
|
|
146
|
+
const applied = page.filters ?? [];
|
|
147
|
+
if (page.rows.length > 0 || applied.length === 0)
|
|
148
|
+
return base;
|
|
149
|
+
return {
|
|
150
|
+
...base,
|
|
151
|
+
emptyMessage: `No ${meta.noun} matches ${listFilters(applied)}.`,
|
|
48
152
|
};
|
|
49
153
|
}
|
|
154
|
+
/** The filters in force, as flags a reader can edit: `\`--kind input\`` … */
|
|
155
|
+
function listFilters(applied) {
|
|
156
|
+
const flags = applied.map((filter) => `\`--${kebabCase(filter.param)} ${filter.value}\``);
|
|
157
|
+
const last = flags.at(-1);
|
|
158
|
+
return flags.length === 1
|
|
159
|
+
? last
|
|
160
|
+
: `${flags.slice(0, -1).join(", ")} and ${last}`;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* What a truncated page says for itself: that it is one, and the exact argument
|
|
164
|
+
* that fetches the next.
|
|
165
|
+
*
|
|
166
|
+
* The cursor is printed rather than described. An opaque token a caller has to
|
|
167
|
+
* be told how to obtain is a token they will guess at, and the two surfaces
|
|
168
|
+
* that carry this are read by agents — so the sentence contains the flag, the
|
|
169
|
+
* value, and the tool parameter, ready to copy.
|
|
170
|
+
*/
|
|
171
|
+
function pageNotice(page, meta) {
|
|
172
|
+
if (page.nextAfter === undefined)
|
|
173
|
+
return undefined;
|
|
174
|
+
return (`Showing ${page.rows.length} ${meta.noun} entries, and more exist. ` +
|
|
175
|
+
`For the next page pass \`--after ${page.nextAfter}\` ` +
|
|
176
|
+
`(\`after\` over MCP), or raise \`--limit\` (currently ${page.limit}).`);
|
|
177
|
+
}
|
|
50
178
|
/** Build the shared per-entity render options for a lookup (reused by sample). */
|
|
51
179
|
export function lookupOptions(lookup, prefixes) {
|
|
52
180
|
const fields = (lookup.fields ?? []).map((field) => ({
|
|
@@ -57,12 +185,14 @@ export function lookupOptions(lookup, prefixes) {
|
|
|
57
185
|
key: section.name,
|
|
58
186
|
heading: section.label ?? section.name,
|
|
59
187
|
kind: section.kind ?? "field",
|
|
188
|
+
...(section.note ? { note: section.note } : {}),
|
|
60
189
|
}));
|
|
61
190
|
const expandSections = (lookup.expand ?? []).map((expand) => ({
|
|
62
191
|
key: expand.name,
|
|
63
192
|
heading: expand.heading ?? expand.name,
|
|
64
193
|
kind: expand.kind ?? "list",
|
|
65
194
|
...(expand.showWhenEmpty ? { showWhenEmpty: true } : {}),
|
|
195
|
+
...(expand.note ? { note: expand.note } : {}),
|
|
66
196
|
}));
|
|
67
197
|
return {
|
|
68
198
|
// An entity reached by IRI need not carry a `by` value, so the IRI is a
|
|
@@ -104,9 +234,28 @@ export function sampleFormatters(lookup, noun, prefixes) {
|
|
|
104
234
|
json: (data) => JSON.stringify(data, null, 2),
|
|
105
235
|
};
|
|
106
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* What a lookup answered from OUTSIDE the tier scope says for itself.
|
|
239
|
+
*
|
|
240
|
+
* One line per name, and it is in the BODY rather than on the notice seam: the
|
|
241
|
+
* answer it explains is on stdout, and a reader piping `block lookup back-link`
|
|
242
|
+
* would otherwise see a block from a tier they are not reading with no way to
|
|
243
|
+
* tell from the output why. The machine surfaces carry the same fact
|
|
244
|
+
* structurally (`outOfScope` rides the payload), so this is one fact in two
|
|
245
|
+
* registers, not two facts.
|
|
246
|
+
*/
|
|
247
|
+
function scopeFallbackLines(output, mode) {
|
|
248
|
+
const bullet = mode === "llm" ? "- " : "";
|
|
249
|
+
return (output.outOfScope ?? []).map((answer) => `${bullet}No "${answer.query}" in the tier scope (${answer.scope}) — ` +
|
|
250
|
+
`answering from ${answer.tiers.join(", ")}. ` +
|
|
251
|
+
`Pass \`--tier ${EVERY_TIER}\` for every tier.`);
|
|
252
|
+
}
|
|
107
253
|
/** Render each result entity, appending a compact note for any error entries. */
|
|
108
254
|
function renderOutput(output, render, mode = "plain") {
|
|
109
255
|
const bodies = output.results.map(render);
|
|
256
|
+
const fallback = scopeFallbackLines(output, mode);
|
|
257
|
+
if (fallback.length > 0)
|
|
258
|
+
bodies.push(fallback.join("\n"));
|
|
110
259
|
if (output.errors.length > 0) {
|
|
111
260
|
const bullet = mode === "llm" ? "- " : " ";
|
|
112
261
|
const lines = output.errors.map((error) => `${bullet}${error.query}: ${error.message}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderPack.js","sourceRoot":"","sources":["../../../../src/kernel/packs/renderPack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAQnE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"renderPack.js","sourceRoot":"","sources":["../../../../src/kernel/packs/renderPack.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,14 +26,15 @@ import { activeExpands } from "./disclosure.js";
|
|
|
26
26
|
import { expandGlob, isGlobPattern } from "./glob.js";
|
|
27
27
|
import { fetchGraphqlLookup } from "./graphql/fetchGraphqlLookup.js";
|
|
28
28
|
import { isEmbeddableIri, resolveUri } from "./iri.js";
|
|
29
|
-
import { buildExpandQuery, buildIriResolveQuery, buildLookupByIriQuery, buildLookupIrisQuery, buildLookupNamesQuery, buildLookupQuery, buildNameResolveQuery, } from "./sparql/buildLookupQuery.js";
|
|
29
|
+
import { buildExpandQuery, buildIriResolveQuery, buildLookupByIriQuery, buildLookupIrisQuery, buildLookupNamesQuery, buildLookupQuery, buildNameResolveQuery, SCOPE_TIER_VARIABLE, } from "./sparql/buildLookupQuery.js";
|
|
30
30
|
import { runSelect } from "./sparql/runSelect.js";
|
|
31
|
+
import { expandIsSparql, } from "./types.js";
|
|
31
32
|
/**
|
|
32
33
|
* Resolve a batch of lookup queries, collecting per-query failures.
|
|
33
34
|
*
|
|
34
35
|
* @throws PragmaError INVALID_INPUT when the batch is empty.
|
|
35
36
|
*/
|
|
36
|
-
export async function resolveLookup(rt, lookup, noun, queries, source, prefixes, level) {
|
|
37
|
+
export async function resolveLookup(rt, lookup, noun, queries, source, prefixes, level, scope) {
|
|
37
38
|
if (queries.length === 0) {
|
|
38
39
|
throw PragmaError.invalidInput("names", "(empty)", {
|
|
39
40
|
recovery: cliRecovery(`${noun} list`, `List available ${noun} entries.`, {
|
|
@@ -47,13 +48,16 @@ export async function resolveLookup(rt, lookup, noun, queries, source, prefixes,
|
|
|
47
48
|
const expanded = await expandQueries(rt, lookup, noun, source, queries, prefixes);
|
|
48
49
|
const results = [];
|
|
49
50
|
const errors = [...expanded.globErrors];
|
|
50
|
-
const
|
|
51
|
+
const outOfScope = [];
|
|
52
|
+
const settled = await Promise.allSettled(expanded.names.map((query) => lookupOne(rt, lookup, noun, query, source, prefixes, level, scope)));
|
|
51
53
|
for (const [index, outcome] of settled.entries()) {
|
|
52
54
|
const query = expanded.names[index];
|
|
53
55
|
if (query === undefined)
|
|
54
56
|
continue;
|
|
55
57
|
if (outcome.status === "fulfilled") {
|
|
56
|
-
results.push(...outcome.value);
|
|
58
|
+
results.push(...outcome.value.entities);
|
|
59
|
+
if (outcome.value.outOfScope)
|
|
60
|
+
outOfScope.push(outcome.value.outOfScope);
|
|
57
61
|
continue;
|
|
58
62
|
}
|
|
59
63
|
const error = outcome.reason;
|
|
@@ -75,7 +79,11 @@ export async function resolveLookup(rt, lookup, noun, queries, source, prefixes,
|
|
|
75
79
|
});
|
|
76
80
|
}
|
|
77
81
|
}
|
|
78
|
-
return {
|
|
82
|
+
return {
|
|
83
|
+
results,
|
|
84
|
+
errors,
|
|
85
|
+
...(outOfScope.length > 0 ? { outOfScope } : {}),
|
|
86
|
+
};
|
|
79
87
|
}
|
|
80
88
|
/**
|
|
81
89
|
* Expand glob queries against the population their own shape addresses;
|
|
@@ -154,11 +162,11 @@ async function expandQueries(rt, lookup, noun, source, queries, prefixes) {
|
|
|
154
162
|
* that has always been true and `LIMIT 1` merely hid it. Without the collapse
|
|
155
163
|
* one entity would report itself as several.
|
|
156
164
|
*/
|
|
157
|
-
async function lookupOne(rt, lookup, noun, query, source, prefixes, level) {
|
|
165
|
+
async function lookupOne(rt, lookup, noun, query, source, prefixes, level, scope) {
|
|
158
166
|
const graphqlSourced = lookup.source === "graphql";
|
|
159
|
-
const rows = await runSelect(rt, buildResolveQuery(lookup, query, prefixes, level), source);
|
|
160
|
-
const
|
|
161
|
-
if (
|
|
167
|
+
const rows = await runSelect(rt, buildResolveQuery(lookup, query, prefixes, level, scope), source);
|
|
168
|
+
const resolved = firstRowPerEntity(rows);
|
|
169
|
+
if (resolved.length === 0) {
|
|
162
170
|
const candidates = await listEntityNames(rt, lookup, source);
|
|
163
171
|
throw PragmaError.notFound(noun, query, {
|
|
164
172
|
suggestions: suggestNames(query, candidates),
|
|
@@ -170,22 +178,109 @@ async function lookupOne(rt, lookup, noun, query, source, prefixes, level) {
|
|
|
170
178
|
}),
|
|
171
179
|
});
|
|
172
180
|
}
|
|
181
|
+
const chosen = applyScope(resolved, query, scope);
|
|
182
|
+
const bases = chosen.rows.map(withoutScopeVariable);
|
|
183
|
+
const fallback = chosen.outOfScope ? { outOfScope: chosen.outOfScope } : {};
|
|
173
184
|
if (graphqlSourced) {
|
|
174
|
-
|
|
185
|
+
const fetched = await Promise.all(bases.map((base) => fetchGraphqlLookup(rt, lookup, String(base.uri), base.name ?? query,
|
|
175
186
|
// The GraphQL lane's only use of the source is CONFIG_ERROR
|
|
176
187
|
// attribution, which is right for any origin — so it takes the label,
|
|
177
188
|
// not provenance.
|
|
178
189
|
source.label, prefixes, level)));
|
|
190
|
+
// A graphql lookup may still declare SPARQL-lane expands (see
|
|
191
|
+
// `PackExpand.source`), and they are fetched HERE rather than inside the
|
|
192
|
+
// GraphQL lane: one entity, two lanes, merged on the way out. The document
|
|
193
|
+
// generator skips exactly what this loop claims, so no expand is fetched
|
|
194
|
+
// twice and none is dropped.
|
|
195
|
+
const entities = await Promise.all(fetched.map(async (entity) => addSparqlExpands(rt, lookup, entity, source, level)));
|
|
196
|
+
return { entities, ...fallback };
|
|
179
197
|
}
|
|
180
198
|
const entities = [];
|
|
181
199
|
for (const base of bases) {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
200
|
+
entities.push(await addSparqlExpands(rt, lookup, { ...base }, source, level));
|
|
201
|
+
}
|
|
202
|
+
return { entities, ...fallback };
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Narrow a resolve to the tier scope — or, when the scope holds none of what
|
|
206
|
+
* the name reached, answer from outside it and say so.
|
|
207
|
+
*
|
|
208
|
+
* THE FALLBACK IS THE POINT, and it is why the scope is not a `FILTER` in the
|
|
209
|
+
* resolve query. A scoped filter would turn `block lookup back-link` — an LXD
|
|
210
|
+
* component, out of the default scope — into ENTITY_NOT_FOUND with suggestions,
|
|
211
|
+
* i.e. into "no such block" about a block the store holds and `block list
|
|
212
|
+
* --tier apps_lxd` prints. A name a reader typed is evidence they mean
|
|
213
|
+
* something; the scope decides WHICH of several it means, never whether it
|
|
214
|
+
* exists.
|
|
215
|
+
*
|
|
216
|
+
* An entity with no tier at all is treated as IN scope. It cannot be placed, so
|
|
217
|
+
* it cannot be placed outside — and being unplaceable is not grounds for being
|
|
218
|
+
* unfindable.
|
|
219
|
+
*/
|
|
220
|
+
function applyScope(rows, query, scope) {
|
|
221
|
+
if (!scope)
|
|
222
|
+
return { rows };
|
|
223
|
+
const inScope = new Set(scope.tiers);
|
|
224
|
+
const kept = rows.filter((row) => {
|
|
225
|
+
const tier = row[SCOPE_TIER_VARIABLE];
|
|
226
|
+
return tier === undefined || tier === "" || inScope.has(tier);
|
|
227
|
+
});
|
|
228
|
+
if (kept.length > 0)
|
|
229
|
+
return { rows: kept };
|
|
230
|
+
const tiers = [
|
|
231
|
+
...new Set(rows
|
|
232
|
+
.map((row) => row[SCOPE_TIER_VARIABLE] ?? "")
|
|
233
|
+
.filter((tier) => tier !== "")
|
|
234
|
+
.map(scopeTierName)),
|
|
235
|
+
];
|
|
236
|
+
return { rows, outOfScope: { query, tiers, scope: scope.label } };
|
|
237
|
+
}
|
|
238
|
+
/** A tier IRI as the scope reports it: the local name `--tier` accepts. */
|
|
239
|
+
function scopeTierName(iri) {
|
|
240
|
+
return iri.replace(/^.*[#/]/, "");
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Drop the kernel's scope variable from a resolved row.
|
|
244
|
+
*
|
|
245
|
+
* The sparql-sourced lane spreads its resolve row straight into the entity it
|
|
246
|
+
* answers with, so a variable the kernel added for its own decision would land
|
|
247
|
+
* in `--format json` as a field the story never declared.
|
|
248
|
+
*/
|
|
249
|
+
function withoutScopeVariable(row) {
|
|
250
|
+
if (!(SCOPE_TIER_VARIABLE in row))
|
|
251
|
+
return row;
|
|
252
|
+
const { [SCOPE_TIER_VARIABLE]: _tier, ...rest } = row;
|
|
253
|
+
return rest;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Fetch every SPARQL-lane expand active at this level onto one entity.
|
|
257
|
+
*
|
|
258
|
+
* The lane test is the expand's, not the lookup's, so this serves both callers:
|
|
259
|
+
* on a sparql lookup every expand is one of these, and on a graphql lookup only
|
|
260
|
+
* those that opted out of the document.
|
|
261
|
+
*
|
|
262
|
+
* @param rt - The runtime (store + query facade).
|
|
263
|
+
* @param lookup - The validated lookup declaration.
|
|
264
|
+
* @param entity - The entity to add child arrays to (mutated and returned).
|
|
265
|
+
* @param source - Pack source, for error attribution.
|
|
266
|
+
* @param level - Active canonical disclosure level.
|
|
267
|
+
* @returns The same entity, with one array per fetched expand.
|
|
268
|
+
* @note Impure — queries the store, once per expand.
|
|
269
|
+
*/
|
|
270
|
+
async function addSparqlExpands(rt, lookup, entity, source, level) {
|
|
271
|
+
for (const expand of activeExpands(lookup, level)) {
|
|
272
|
+
if (!expandIsSparql(lookup, expand))
|
|
273
|
+
continue;
|
|
274
|
+
entity[expand.name] = (await runSelect(rt, buildExpandQuery(expand, String(entity.uri), lookup), source,
|
|
275
|
+
// A section whose vocabulary this store does not bind renders EMPTY
|
|
276
|
+
// rather than taking the whole entity down with it — see
|
|
277
|
+
// `RunSelectOptions.degradeOnUnboundPrefix`. The block lookup's tokens
|
|
278
|
+
// read the anatomy DSL's style key and state, which a store built
|
|
279
|
+
// without that pack does not bind, and every other section of that
|
|
280
|
+
// block is still perfectly answerable.
|
|
281
|
+
{ degradeOnUnboundPrefix: true }));
|
|
187
282
|
}
|
|
188
|
-
return
|
|
283
|
+
return entity;
|
|
189
284
|
}
|
|
190
285
|
/** Collapse a ranked resolve to one row per entity, keeping the best-ranked. */
|
|
191
286
|
function firstRowPerEntity(rows) {
|
|
@@ -208,13 +303,17 @@ function firstRowPerEntity(rows) {
|
|
|
208
303
|
* its fields in the same SELECT, so both of its queries carry the level-gated
|
|
209
304
|
* projection.
|
|
210
305
|
*/
|
|
211
|
-
function buildResolveQuery(lookup, query, prefixes, level) {
|
|
306
|
+
function buildResolveQuery(lookup, query, prefixes, level, scope) {
|
|
212
307
|
const graphqlSourced = lookup.source === "graphql";
|
|
213
308
|
if (!looksLikeIri(query)) {
|
|
214
309
|
return graphqlSourced
|
|
215
|
-
? buildNameResolveQuery(lookup, query)
|
|
216
|
-
: buildLookupQuery(lookup, query, level);
|
|
310
|
+
? buildNameResolveQuery(lookup, query, scope?.via)
|
|
311
|
+
: buildLookupQuery(lookup, query, level, scope?.via);
|
|
217
312
|
}
|
|
313
|
+
// An IRI-ADDRESSED form is never scoped, and that is not an omission. An IRI
|
|
314
|
+
// reaches exactly one entity, so there is nothing for a scope to choose
|
|
315
|
+
// between — the whole job the scope does. A caller who pastes
|
|
316
|
+
// `ds:apps_lxd.component.back_link` has already said which tier they mean.
|
|
218
317
|
const resolved = resolveUri(query, prefixes);
|
|
219
318
|
if (!isEmbeddableIri(resolved)) {
|
|
220
319
|
throw PragmaError.invalidInput("name", query, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveEntity.js","sourceRoot":"","sources":["../../../../src/kernel/packs/resolveEntity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolveEntity.js","sourceRoot":"","sources":["../../../../src/kernel/packs/resolveEntity.ts"],"names":[],"mappings":"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"}
|