@canonical/pragma-cli 0.35.0 → 0.36.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 +2 -2
- package/bundled-skills/add-standard/SKILL.md +338 -0
- package/bundled-skills/adoption-a1-styles/SKILL.md +269 -0
- package/bundled-skills/adoption-a2-components/SKILL.md +291 -0
- package/bundled-skills/adoption-a3-forms/SKILL.md +260 -0
- package/bundled-skills/anatomy-author/ANATOMY_DSL_SPEC.md +406 -0
- package/bundled-skills/anatomy-author/SKILL.md +1226 -0
- package/bundled-skills/design-auditor/SKILL.md +455 -0
- package/bundled-skills/implement-component/SKILL.md +333 -0
- package/bundled-skills/specify-component/SKILL.md +331 -0
- package/bundled-skills/specify-pattern/SKILL.md +292 -0
- package/dist/package.json +16 -15
- package/dist/pragma.conf.js +236 -34
- package/dist/pragma.conf.js.map +1 -1
- package/dist/src/bin.js +1 -1
- package/dist/src/bin.js.map +1 -1
- package/dist/src/capabilities/colophon/colophon.render.js +1 -1
- package/dist/src/capabilities/colophon/colophon.render.js.map +1 -1
- package/dist/src/capabilities/create/mount.js +4 -3
- package/dist/src/capabilities/create/mount.js.map +1 -1
- package/dist/src/capabilities/doctor/checks/checkPackageRefs.js +60 -4
- package/dist/src/capabilities/doctor/checks/checkPackageRefs.js.map +1 -1
- package/dist/src/capabilities/doctor/checks/checkShellCompletions.js +8 -8
- package/dist/src/capabilities/doctor/checks/checkShellCompletions.js.map +1 -1
- package/dist/src/capabilities/doctor/checks/harnessInventory.js +195 -0
- package/dist/src/capabilities/doctor/checks/harnessInventory.js.map +1 -0
- package/dist/src/capabilities/doctor/checks/index.js +6 -6
- package/dist/src/capabilities/doctor/checks/targetHealth.js +194 -50
- package/dist/src/capabilities/doctor/checks/targetHealth.js.map +1 -1
- package/dist/src/capabilities/doctor/doctor.render.js +43 -64
- package/dist/src/capabilities/doctor/doctor.render.js.map +1 -1
- package/dist/src/capabilities/doctor/doctor.verb.js +6 -2
- package/dist/src/capabilities/doctor/doctor.verb.js.map +1 -1
- package/dist/src/capabilities/doctor/runChecks.js +14 -11
- package/dist/src/capabilities/doctor/runChecks.js.map +1 -1
- package/dist/src/capabilities/graph/query.render.js +2 -2
- package/dist/src/capabilities/graph/query.render.js.map +1 -1
- package/dist/src/capabilities/info/collectInfo.js +8 -2
- package/dist/src/capabilities/info/collectInfo.js.map +1 -1
- package/dist/src/capabilities/info/info.render.js +6 -2
- package/dist/src/capabilities/info/info.render.js.map +1 -1
- package/dist/src/capabilities/prompt/prompt.render.js +2 -2
- package/dist/src/capabilities/prompt/prompt.render.js.map +1 -1
- package/dist/src/capabilities/setup/buildPlan.js +43 -39
- package/dist/src/capabilities/setup/buildPlan.js.map +1 -1
- package/dist/src/capabilities/setup/mode.js +2 -2
- package/dist/src/capabilities/setup/operations/index.js +4 -4
- package/dist/src/capabilities/setup/operations/index.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupGenerator.js +92 -45
- package/dist/src/capabilities/setup/operations/setupGenerator.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupLsp.js +88 -36
- package/dist/src/capabilities/setup/operations/setupLsp.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupMcp.js +97 -51
- package/dist/src/capabilities/setup/operations/setupMcp.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupSkills.js +325 -47
- package/dist/src/capabilities/setup/operations/setupSkills.js.map +1 -1
- package/dist/src/capabilities/setup/plan.js.map +1 -1
- package/dist/src/capabilities/setup/plan.render.js +144 -66
- package/dist/src/capabilities/setup/plan.render.js.map +1 -1
- package/dist/src/capabilities/setup/setup.render.js +1 -1
- package/dist/src/capabilities/setup/setup.verb.js +86 -33
- package/dist/src/capabilities/setup/setup.verb.js.map +1 -1
- package/dist/src/capabilities/setup/targets.js +110 -45
- package/dist/src/capabilities/setup/targets.js.map +1 -1
- package/dist/src/capabilities/shared/index.js +6 -5
- package/dist/src/capabilities/shared/index.js.map +1 -1
- package/dist/src/capabilities/shared/packageManager.js +300 -54
- package/dist/src/capabilities/shared/packageManager.js.map +1 -1
- package/dist/src/capabilities/skill/discover.js +97 -11
- package/dist/src/capabilities/skill/discover.js.map +1 -1
- package/dist/src/capabilities/skill/render.js +2 -2
- package/dist/src/capabilities/skill/render.js.map +1 -1
- package/dist/src/capabilities/sources/installSkills.js +145 -3
- package/dist/src/capabilities/sources/installSkills.js.map +1 -1
- package/dist/src/capabilities/sources/runUpdate.js +68 -2
- package/dist/src/capabilities/sources/runUpdate.js.map +1 -1
- package/dist/src/capabilities/sources/update.verb.js +3 -3
- package/dist/src/capabilities/sources/update.verb.js.map +1 -1
- package/dist/src/capabilities/upgrade/runUpgrade.js +43 -7
- package/dist/src/capabilities/upgrade/runUpgrade.js.map +1 -1
- package/dist/src/capabilities/upgrade/upgrade.render.js +10 -2
- package/dist/src/capabilities/upgrade/upgrade.render.js.map +1 -1
- package/dist/src/constants.js +6 -1
- package/dist/src/constants.js.map +1 -1
- package/dist/src/kernel/index.js +11 -2
- package/dist/src/kernel/index.js.map +1 -1
- package/dist/src/kernel/interactivity.js +68 -0
- package/dist/src/kernel/interactivity.js.map +1 -0
- package/dist/src/kernel/packs/renderPack.js +3 -3
- package/dist/src/kernel/packs/renderPack.js.map +1 -1
- package/dist/src/kernel/packs/resolveEntity.js +63 -12
- package/dist/src/kernel/packs/resolveEntity.js.map +1 -1
- package/dist/src/kernel/packs/runBodies.js +57 -4
- package/dist/src/kernel/packs/runBodies.js.map +1 -1
- package/dist/src/kernel/packs/schema.js +54 -2
- package/dist/src/kernel/packs/schema.js.map +1 -1
- package/dist/src/kernel/packs/sparql/applyFilters.js +104 -5
- package/dist/src/kernel/packs/sparql/applyFilters.js.map +1 -1
- package/dist/src/kernel/packs/sparql/buildLookupQuery.js +306 -43
- package/dist/src/kernel/packs/sparql/buildLookupQuery.js.map +1 -1
- package/dist/src/kernel/packs/types.js.map +1 -1
- package/dist/src/kernel/project/cli/buildProgram.js +1 -1
- package/dist/src/kernel/project/cli/buildProgram.js.map +1 -1
- package/dist/src/kernel/project/cli/dispatch.js +23 -23
- package/dist/src/kernel/project/cli/dispatch.js.map +1 -1
- package/dist/src/kernel/project/cli/globalFlags.js +4 -1
- package/dist/src/kernel/project/cli/globalFlags.js.map +1 -1
- package/dist/src/kernel/project/cli/helpFormat.js +1 -2
- package/dist/src/kernel/project/cli/helpFormat.js.map +1 -1
- package/dist/src/kernel/project/cli/rootHelp.js +34 -4
- package/dist/src/kernel/project/cli/rootHelp.js.map +1 -1
- package/dist/src/kernel/project/mcp/registerVerb.js +16 -1
- package/dist/src/kernel/project/mcp/registerVerb.js.map +1 -1
- package/dist/src/kernel/render/renderers.js +1 -1
- package/dist/src/kernel/render/style.js +29 -9
- package/dist/src/kernel/render/style.js.map +1 -1
- package/dist/src/kernel/render/vocabulary.js +174 -0
- package/dist/src/kernel/render/vocabulary.js.map +1 -0
- package/dist/src/kernel/spec/emitReference.js +1 -1
- package/dist/src/kernel/spec/emitReference.js.map +1 -1
- package/package.json +16 -15
- package/pragma.conf.ts +241 -34
- package/src/bin.ts +8 -1
- package/src/capabilities/block.parity.test.ts +25 -11
- package/src/capabilities/block.shipped.exec.test.ts +282 -0
- package/src/capabilities/block.tierRank.exec.test.ts +300 -0
- package/src/capabilities/colophon/colophon.render.ts +1 -2
- package/src/capabilities/colophon/colophon.test.ts +2 -2
- package/src/capabilities/create/createGrammar.test.ts +1 -1
- package/src/capabilities/create/mount.ts +3 -3
- package/src/capabilities/distribution.parity.test.ts +4 -0
- package/src/capabilities/doctor/checks/checkPackageRefs.ts +69 -4
- package/src/capabilities/doctor/checks/checkShellCompletions.test.ts +6 -4
- package/src/capabilities/doctor/checks/checkShellCompletions.ts +8 -8
- package/src/capabilities/doctor/checks/harnessInventory.test.ts +219 -0
- package/src/capabilities/doctor/checks/harnessInventory.ts +298 -0
- package/src/capabilities/doctor/checks/index.ts +6 -6
- package/src/capabilities/doctor/checks/targetHealth.ts +229 -59
- package/src/capabilities/doctor/doctor.render.test.ts +108 -32
- package/src/capabilities/doctor/doctor.render.ts +56 -80
- package/src/capabilities/doctor/doctor.test.ts +247 -35
- package/src/capabilities/doctor/doctor.verb.ts +7 -2
- package/src/capabilities/doctor/runChecks.ts +14 -11
- package/src/capabilities/doctor/types.ts +15 -24
- package/src/capabilities/emptyRecovery.test.ts +10 -2
- package/src/capabilities/graph/query.render.ts +2 -2
- package/src/capabilities/info/collectInfo.ts +8 -1
- package/src/capabilities/info/info.render.ts +6 -2
- package/src/capabilities/info/info.test.ts +37 -1
- package/src/capabilities/info/types.ts +10 -2
- package/src/capabilities/prompt/prompt.render.ts +2 -2
- package/src/capabilities/renderVocabularySync.test.ts +82 -0
- package/src/capabilities/scopeTypeSync.test.ts +29 -15
- package/src/capabilities/setup/buildPlan.ts +45 -41
- package/src/capabilities/setup/index.ts +1 -1
- package/src/capabilities/setup/mode.ts +2 -2
- package/src/capabilities/setup/operations/index.ts +6 -1
- package/src/capabilities/setup/operations/setupGenerator.ts +144 -70
- package/src/capabilities/setup/operations/setupLsp.ts +129 -37
- package/src/capabilities/setup/operations/setupMcp.ts +132 -61
- package/src/capabilities/setup/operations/setupSkills.ts +392 -58
- package/src/capabilities/setup/plan.render.ts +171 -76
- package/src/capabilities/setup/plan.ts +17 -12
- package/src/capabilities/setup/setup.mcp.correctness.test.ts +9 -9
- package/src/capabilities/setup/setup.render.test.ts +50 -36
- package/src/capabilities/setup/setup.render.ts +1 -1
- package/src/capabilities/setup/setup.test.ts +881 -50
- package/src/capabilities/setup/setup.verb.ts +91 -33
- package/src/capabilities/setup/targets.ts +120 -52
- package/src/capabilities/setup/types.ts +10 -18
- package/src/capabilities/shared/index.ts +17 -6
- package/src/capabilities/shared/packageManager.test.ts +421 -6
- package/src/capabilities/shared/packageManager.ts +394 -59
- package/src/capabilities/skill/bundledSkills.test.ts +347 -0
- package/src/capabilities/skill/discover.ts +100 -11
- package/src/capabilities/skill/render.ts +2 -2
- package/src/capabilities/skill/skill.test.ts +17 -4
- package/src/capabilities/sources/installSkills.ts +181 -3
- package/src/capabilities/sources/runUpdate.ts +78 -2
- package/src/capabilities/sources/sources.test.ts +228 -0
- package/src/capabilities/sources/update.verb.ts +3 -3
- package/src/capabilities/surface.test.ts +2 -2
- package/src/capabilities/upgrade/runUpgrade.ts +45 -6
- package/src/capabilities/upgrade/types.ts +10 -2
- package/src/capabilities/upgrade/upgrade.render.ts +9 -2
- package/src/capabilities/upgrade/upgrade.test.ts +72 -0
- package/src/constants.ts +6 -1
- package/src/identity.test.ts +18 -5
- package/src/kernel/completion/entitySource.test.ts +15 -2
- package/src/kernel/completion/safety.test.ts +16 -9
- package/src/kernel/config/defaults.test.ts +2 -1
- package/src/kernel/index.ts +11 -2
- package/src/kernel/interactivity.test.ts +76 -0
- package/src/kernel/interactivity.ts +69 -0
- package/src/kernel/packs/compile.test.ts +92 -0
- package/src/kernel/packs/renderPack.ts +3 -3
- package/src/kernel/packs/resolveEntity.test.ts +75 -14
- package/src/kernel/packs/resolveEntity.ts +88 -24
- package/src/kernel/packs/runBodies.ts +84 -19
- package/src/kernel/packs/schema.ts +60 -4
- package/src/kernel/packs/sparql/applyFilters.ts +125 -4
- package/src/kernel/packs/sparql/buildLookupQuery.test.ts +290 -0
- package/src/kernel/packs/sparql/buildLookupQuery.ts +323 -45
- package/src/kernel/packs/toolDescription.test.ts +35 -1
- package/src/kernel/packs/types.ts +125 -2
- package/src/kernel/project/cli/buildProgram.test.ts +73 -2
- package/src/kernel/project/cli/buildProgram.ts +8 -1
- package/src/kernel/project/cli/dispatch.test.ts +5 -4
- package/src/kernel/project/cli/dispatch.ts +25 -24
- package/src/kernel/project/cli/globalFlags.ts +4 -1
- package/src/kernel/project/cli/helpFormat.ts +1 -2
- package/src/kernel/project/cli/rootHelp.ts +36 -3
- package/src/kernel/project/mcp/registerVerb.ts +20 -1
- package/src/kernel/render/renderers.ts +1 -1
- package/src/kernel/render/style.ts +32 -9
- package/src/kernel/render/vocabulary.ts +276 -0
- package/src/kernel/spec/emitReference.ts +1 -1
- package/src/kernel/spec/types.ts +35 -6
- package/src/testing/PARITY_GAPS.ts +9 -3
- package/src/testing/behavioral/docExamples.test.ts +4 -2
- package/src/testing/behavioral/errorMatrix.mcp.test.ts +110 -7
- package/src/testing/behavioral/journeys.firstInstall.test.ts +7 -2
- package/src/testing/behavioral/journeys.packageStories.test.ts +6 -3
- package/src/testing/eval/__snapshots__/eval.test.ts.snap +26 -1
- package/src/testing/eval/cases/readNouns.ts +245 -9
- package/src/testing/fixtures/blockGraph.ts +28 -13
- package/src/testing/fixtures/graph/canonical.ts +95 -12
- package/dist/src/capabilities/shared/bands.js +0 -16
- package/dist/src/capabilities/shared/bands.js.map +0 -1
- package/src/capabilities/shared/bands.ts +0 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.verb.js","sourceRoot":"","sources":["../../../../src/capabilities/doctor/doctor.verb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,GAAkD;IAChE,IAAI,EAAE,CAAC,QAAQ,CAAC;IAChB,OAAO,
|
|
1
|
+
{"version":3,"file":"doctor.verb.js","sourceRoot":"","sources":["../../../../src/capabilities/doctor/doctor.verb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,GAAkD;IAChE,IAAI,EAAE,CAAC,QAAQ,CAAC;IAChB,OAAO,EACL,8EAA8E;IAChF,2EAA2E;IAC3E,6EAA6E;IAC7E,4EAA4E;IAC5E,yDAAyD;IACzD,GAAG,EAAE,+oBAA+oB;IACppB,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;IACxC,QAAQ,EAAE;QACR,EAAE,GAAG,EAAE,GAAG,QAAQ,SAAS,EAAE;QAC7B;YACE,GAAG,EAAE,GAAG,QAAQ,uBAAuB;YACvC,IAAI,EAAE,yBAAyB;SAChC;KACF;IACD,UAAU,EAAE;QACV,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,KAAK;QACd,GAAG,EAAE;YACH,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;SAC1D;KACF;IACD,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CACxB,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;CAC7D,CAAC;AAEF,sCAAsC;AACtC,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;CAC5B,CAAC"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The `doctor` run body: the
|
|
2
|
+
* The `doctor` run body: the unscoped environment checks plus the scoped rows
|
|
3
3
|
* the setup target table derives.
|
|
4
4
|
*
|
|
5
5
|
* Two kinds of finding live in one report and they are not the same kind. The
|
|
6
6
|
* ENVIRONMENT checks — the Node version, this CLI's own version, pack refs, the
|
|
7
|
-
* store — diagnose things `setup` cannot install; they carry no
|
|
8
|
-
* their own section. The
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* store — diagnose things `setup` cannot install; they carry no scope and stay
|
|
8
|
+
* their own section. The SCOPED rows are the setup targets, in both scopes,
|
|
9
|
+
* named with the target ids verbatim and repaired by the target's own command
|
|
10
|
+
* — plus, per scope, the `harnesses` inventory row: a listing of what this
|
|
11
|
+
* machine holds and where pragma stands in it, which is the thing the targets
|
|
12
|
+
* are measured against rather than a target itself. Adding a target adds its
|
|
13
|
+
* rows here for free.
|
|
11
14
|
*
|
|
12
15
|
* Checks are started eagerly (they run concurrently) and collected in
|
|
13
16
|
* declaration order for a deterministic report. Each is guarded so a thrown
|
|
@@ -20,9 +23,9 @@ import { checkKeStore } from "./checks/checkKeStore.js";
|
|
|
20
23
|
import { checkNodeVersion } from "./checks/checkNodeVersion.js";
|
|
21
24
|
import { checkPackageRefs } from "./checks/checkPackageRefs.js";
|
|
22
25
|
import { checkPragmaVersion } from "./checks/checkPragmaVersion.js";
|
|
23
|
-
import {
|
|
26
|
+
import { scopedChecks } from "./checks/targetHealth.js";
|
|
24
27
|
/**
|
|
25
|
-
* The
|
|
28
|
+
* The unscoped environment checks, each paired with the display name used if it
|
|
26
29
|
* rejects. The fallback name matches the `name` each check returns on success,
|
|
27
30
|
* so a thrown check reports the same label and stays correlatable.
|
|
28
31
|
*/
|
|
@@ -57,12 +60,12 @@ async function guarded(name, promise) {
|
|
|
57
60
|
* @note Impure — the checks read the fs, boot the store, and detect harnesses.
|
|
58
61
|
*/
|
|
59
62
|
export async function runChecks(rt) {
|
|
60
|
-
// The
|
|
63
|
+
// The scoped rows come back as a batch (one detection pass over the table),
|
|
61
64
|
// so they are guarded as a batch: a detection that throws becomes one
|
|
62
65
|
// attributable failure instead of taking the environment section with it.
|
|
63
|
-
const [environmentResults,
|
|
66
|
+
const [environmentResults, scopedResults] = await Promise.all([
|
|
64
67
|
Promise.all(buildEnvironmentChecks(rt).map(([name, promise]) => guarded(name, promise))),
|
|
65
|
-
|
|
68
|
+
scopedChecks(rt, BIN_NAME).catch((error) => [
|
|
66
69
|
{
|
|
67
70
|
name: "setup targets",
|
|
68
71
|
status: "fail",
|
|
@@ -71,7 +74,7 @@ export async function runChecks(rt) {
|
|
|
71
74
|
},
|
|
72
75
|
]),
|
|
73
76
|
]);
|
|
74
|
-
const checks = [...environmentResults, ...
|
|
77
|
+
const checks = [...environmentResults, ...scopedResults];
|
|
75
78
|
return {
|
|
76
79
|
checks,
|
|
77
80
|
passed: checks.filter((c) => c.status === "pass").length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runChecks.js","sourceRoot":"","sources":["../../../../src/capabilities/doctor/runChecks.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"runChecks.js","sourceRoot":"","sources":["../../../../src/capabilities/doctor/runChecks.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,9 +24,9 @@ function formatTriples(triples) {
|
|
|
24
24
|
}
|
|
25
25
|
export const queryFormatters = {
|
|
26
26
|
// Zero rows/triples: plain stdout stays empty — the notice is
|
|
27
|
-
// `
|
|
27
|
+
// `notice`, routed to stderr (exit 0) by the dispatcher so a pipe
|
|
28
28
|
// reads no prose. ASK always has a result and never goes empty.
|
|
29
|
-
|
|
29
|
+
notice(result) {
|
|
30
30
|
if (result.type === "select" && result.bindings.length === 0) {
|
|
31
31
|
return "No results.";
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.render.js","sourceRoot":"","sources":["../../../../src/capabilities/graph/query.render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH;;;GAGG;AACH,SAAS,aAAa,CACpB,OAIE;IAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC;IAC/C,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,OAAO,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;IACnD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAA4B;IACtD,8DAA8D;IAC9D,
|
|
1
|
+
{"version":3,"file":"query.render.js","sourceRoot":"","sources":["../../../../src/capabilities/graph/query.render.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import { entityTotal, readPackIndex, } from "../../kernel/completion/entitySource.js";
|
|
17
17
|
import { readConfig } from "../../kernel/config/index.js";
|
|
18
18
|
import { resolveSources } from "../../kernel/runtime/resolveSources.js";
|
|
19
|
-
import { checkRegistryVersion, detectInstallSource, PRAGMA_PACKAGE, pmUpdateCommand, } from "../shared/index.js";
|
|
19
|
+
import { checkRegistryVersion, detectInstallSource, PRAGMA_PACKAGE, pmUpdateCommand, updateGuidance, } from "../shared/index.js";
|
|
20
20
|
/**
|
|
21
21
|
* Assemble the `info` data for the current runtime.
|
|
22
22
|
*
|
|
@@ -31,11 +31,16 @@ export async function collectInfo(runtime) {
|
|
|
31
31
|
const install = detectInstallSource();
|
|
32
32
|
// Update-check: unconditional (no flag exists), 3s timeout, silent-fail.
|
|
33
33
|
const registry = await checkRegistryVersion(PRAGMA_PACKAGE, config.channel);
|
|
34
|
+
// Only a GLOBAL install gets a command; every other state gets the honest
|
|
35
|
+
// guidance sentence — a confidently wrong `npm i -g` against a linked
|
|
36
|
+
// checkout would overwrite the development link.
|
|
34
37
|
const update = registry && registry.latest !== runtime.version
|
|
35
38
|
? {
|
|
36
39
|
current: runtime.version,
|
|
37
40
|
latest: registry.latest,
|
|
38
|
-
|
|
41
|
+
...(install.kind === "global"
|
|
42
|
+
? { command: pmUpdateCommand(install, PRAGMA_PACKAGE) }
|
|
43
|
+
: { guidance: updateGuidance(install) }),
|
|
39
44
|
}
|
|
40
45
|
: undefined;
|
|
41
46
|
const updateSkipped = registry === undefined;
|
|
@@ -46,6 +51,7 @@ export async function collectInfo(runtime) {
|
|
|
46
51
|
return {
|
|
47
52
|
version: runtime.version,
|
|
48
53
|
installSource: install.label,
|
|
54
|
+
installKind: install.kind,
|
|
49
55
|
...(update ? { update } : {}),
|
|
50
56
|
updateSkipped,
|
|
51
57
|
...(entities !== undefined ? { entities } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectInfo.js","sourceRoot":"","sources":["../../../../src/capabilities/info/collectInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,WAAW,EACX,aAAa,GACd,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,eAAe,
|
|
1
|
+
{"version":3,"file":"collectInfo.js","sourceRoot":"","sources":["../../../../src/capabilities/info/collectInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,9 @@ export const infoFormatters = {
|
|
|
21
21
|
}
|
|
22
22
|
lines.push("", "Config files:", ` global: ${config.globalConfigPath}${config.globalExists ? "" : " (not found)"}`, ` project: ${config.projectConfigPath ?? "(none)"}${config.projectConfigPath && !config.projectExists ? " (not found)" : ""}`);
|
|
23
23
|
if (data.update) {
|
|
24
|
-
lines.push("", `Update available: ${data.update.current} → ${data.update.latest}`,
|
|
24
|
+
lines.push("", `Update available: ${data.update.current} → ${data.update.latest}`, data.update.command
|
|
25
|
+
? ` Run: ${data.update.command}`
|
|
26
|
+
: ` ${data.update.guidance}`);
|
|
25
27
|
}
|
|
26
28
|
return lines.join("\n");
|
|
27
29
|
},
|
|
@@ -42,7 +44,9 @@ export const infoFormatters = {
|
|
|
42
44
|
lines.push(`- Entities: ${data.entities.toLocaleString()}`);
|
|
43
45
|
}
|
|
44
46
|
if (data.update) {
|
|
45
|
-
lines.push(
|
|
47
|
+
lines.push(data.update.command
|
|
48
|
+
? `- Update available: ${data.update.current} → ${data.update.latest} (\`${data.update.command}\`)`
|
|
49
|
+
: `- Update available: ${data.update.current} → ${data.update.latest} — ${data.update.guidance}`);
|
|
46
50
|
}
|
|
47
51
|
return lines.join("\n");
|
|
48
52
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.render.js","sourceRoot":"","sources":["../../../../src/capabilities/info/info.render.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"info.render.js","sourceRoot":"","sources":["../../../../src/capabilities/info/info.render.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,9 +11,9 @@ function argTokens(args) {
|
|
|
11
11
|
.join(", ");
|
|
12
12
|
}
|
|
13
13
|
export const promptListFormatters = {
|
|
14
|
-
// Zero prompts: plain stdout stays empty — the notice is `
|
|
14
|
+
// Zero prompts: plain stdout stays empty — the notice is `notice`,
|
|
15
15
|
// routed to stderr (exit 0) by the dispatcher so a pipe reads no prose.
|
|
16
|
-
|
|
16
|
+
notice: (data) => data.prompts.length === 0 ? "No prompts in the store." : undefined,
|
|
17
17
|
plain(data) {
|
|
18
18
|
if (data.prompts.length === 0)
|
|
19
19
|
return "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.render.js","sourceRoot":"","sources":["../../../../src/capabilities/prompt/prompt.render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAQ5D,oEAAoE;AACpE,SAAS,SAAS,CAAC,IAA+B;IAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvC,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAClE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAA+B;IAC9D,
|
|
1
|
+
{"version":3,"file":"prompt.render.js","sourceRoot":"","sources":["../../../../src/capabilities/prompt/prompt.render.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
* Every selected target is a visible row here, including the ones that skip.
|
|
11
11
|
*/
|
|
12
12
|
import { defaultSelected, } from "./plan.js";
|
|
13
|
-
import {
|
|
13
|
+
import { supportsScope, TARGETS, } from "./targets.js";
|
|
14
14
|
/** The failure a row's detection ended in, or `undefined` when it settled. */
|
|
15
15
|
export const detectionFailure = (row) => row.failure;
|
|
16
|
-
/** The
|
|
17
|
-
export const
|
|
16
|
+
/** The scopes a `--scope` selection runs, global before project. */
|
|
17
|
+
export const scopesForSelection = (scope) => scope === "both" ? ["global", "project"] : [scope];
|
|
18
18
|
/**
|
|
19
19
|
* The two named roots. The global root is the user's home directory (rendered
|
|
20
20
|
* `~`), the project root is the directory the invocation resolves against.
|
|
@@ -30,7 +30,7 @@ export async function resolveRoots(rt) {
|
|
|
30
30
|
/** The cause a rejected detection carries, as one line of copy. */
|
|
31
31
|
const messageOf = (reason) => reason instanceof Error ? reason.message : String(reason);
|
|
32
32
|
/**
|
|
33
|
-
* Detect every requested target in every
|
|
33
|
+
* Detect every requested target in every scope the scope runs.
|
|
34
34
|
*
|
|
35
35
|
* Detections are started together and SETTLED INDEPENDENTLY: they are
|
|
36
36
|
* independent reads, and a run-all that probed five targets serially paid for
|
|
@@ -40,53 +40,57 @@ const messageOf = (reason) => reason instanceof Error ? reason.message : String(
|
|
|
40
40
|
* unreadable config, a permission-denied directory — takes only its own row
|
|
41
41
|
* down. Awaiting them as one `Promise.all` meant the first rejection prevented
|
|
42
42
|
* a run from being built at all: none of the other targets ran, and doctor
|
|
43
|
-
* rendered no
|
|
43
|
+
* rendered no scoped rows whatsoever. The failed row carries its cause and is
|
|
44
44
|
* reported as a row, which is the same shape a failed COMPOSE already has.
|
|
45
45
|
*
|
|
46
46
|
* @param rt - The per-invocation runtime.
|
|
47
47
|
* @param ids - The targets to plan (all five for the run-all).
|
|
48
|
-
* @param scope - The resolved
|
|
49
|
-
* @returns One entry per (target,
|
|
48
|
+
* @param scope - The resolved scope selection.
|
|
49
|
+
* @returns One entry per (target, scope) the scope actually runs.
|
|
50
50
|
* @note Impure — every target's `detect` reads the real filesystem.
|
|
51
51
|
*/
|
|
52
52
|
export async function detectTargets(rt, ids, scope) {
|
|
53
53
|
const wanted = TARGETS.filter((target) => ids.includes(target.id));
|
|
54
|
-
const pairs =
|
|
55
|
-
.filter((target) =>
|
|
54
|
+
const pairs = scopesForSelection(scope).flatMap((scope) => wanted
|
|
55
|
+
.filter((target) => supportsScope(target, scope))
|
|
56
56
|
.map((target) => ({
|
|
57
57
|
target,
|
|
58
|
-
|
|
58
|
+
scope,
|
|
59
59
|
})));
|
|
60
|
-
const settled = await Promise.allSettled(pairs.map(({ target,
|
|
61
|
-
return pairs.map(({ target,
|
|
60
|
+
const settled = await Promise.allSettled(pairs.map(({ target, scope }) => target.detect(rt, scope)));
|
|
61
|
+
return pairs.map(({ target, scope }, index) => {
|
|
62
62
|
const outcome = settled[index];
|
|
63
63
|
if (outcome.status === "fulfilled") {
|
|
64
|
-
return { target,
|
|
64
|
+
return { target, scope, detection: outcome.value };
|
|
65
65
|
}
|
|
66
66
|
return {
|
|
67
67
|
target,
|
|
68
|
-
|
|
68
|
+
scope,
|
|
69
69
|
detection: undefined,
|
|
70
70
|
failure: messageOf(outcome.reason),
|
|
71
71
|
};
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
|
-
* The dim row a target gets when the SELECTED
|
|
76
|
-
* --local` still shows `completions`, saying why it is not in this run. A
|
|
77
|
-
* merely filters the run-all: the user asked for a
|
|
75
|
+
* The dim row a target gets when the SELECTED scope cannot hold it — `setup
|
|
76
|
+
* --local` still shows `completions`, saying why it is not in this run. A scope
|
|
77
|
+
* merely filters the run-all: the user asked for a scope, not for that target, so
|
|
78
78
|
* nothing errors, but nothing is silently absent either. (Asking for the
|
|
79
|
-
* impossible
|
|
79
|
+
* impossible scope on the SUB-VERB is a different thing entirely — a typed
|
|
80
80
|
* contradiction, and a usage error.)
|
|
81
|
+
*
|
|
82
|
+
* The reason names the flag that WOULD reach the target, so the row is not a
|
|
83
|
+
* dead end: a reader who wanted `completions` under `--local` is told in the
|
|
84
|
+
* same line that `--global` is where it lives.
|
|
81
85
|
*/
|
|
82
|
-
const
|
|
86
|
+
const outOfScopeRow = (target, scope) => ({
|
|
83
87
|
target: target.id,
|
|
84
|
-
|
|
88
|
+
scope,
|
|
85
89
|
action: "skip",
|
|
86
|
-
detail: "not
|
|
87
|
-
reason:
|
|
88
|
-
? "
|
|
89
|
-
: "project
|
|
90
|
+
detail: "not part of this scope",
|
|
91
|
+
reason: scope === "project"
|
|
92
|
+
? "this one is global only — run it with `--global`"
|
|
93
|
+
: "this one is per-project only — run it with `--local`",
|
|
90
94
|
selected: false,
|
|
91
95
|
});
|
|
92
96
|
/**
|
|
@@ -96,9 +100,9 @@ const outOfBandRow = (target, band) => ({
|
|
|
96
100
|
* into a `failed` outcome, so the run exits non-zero naming this target rather
|
|
97
101
|
* than reporting a clean sweep over the targets that did settle.
|
|
98
102
|
*/
|
|
99
|
-
const failedDetectionRow = (target,
|
|
103
|
+
const failedDetectionRow = (target, scope, failure) => ({
|
|
100
104
|
target: target.id,
|
|
101
|
-
|
|
105
|
+
scope,
|
|
102
106
|
action: "skip",
|
|
103
107
|
detail: "detection did not complete",
|
|
104
108
|
reason: failure,
|
|
@@ -117,44 +121,44 @@ const failedDetectionRow = (target, band, failure) => ({
|
|
|
117
121
|
*/
|
|
118
122
|
export function draftFor(hit, roots, removal) {
|
|
119
123
|
return removal
|
|
120
|
-
? hit.target.removalPlan(hit.detection, hit.
|
|
121
|
-
: hit.target.plan(hit.detection, hit.
|
|
124
|
+
? hit.target.removalPlan(hit.detection, hit.scope, roots)
|
|
125
|
+
: hit.target.plan(hit.detection, hit.scope, roots);
|
|
122
126
|
}
|
|
123
127
|
/**
|
|
124
128
|
* Project detections into plan rows.
|
|
125
129
|
*
|
|
126
|
-
* @param
|
|
130
|
+
* @param selection - The resolved scope selection (named in the header).
|
|
127
131
|
* @param roots - The two named roots every path renders relative to.
|
|
128
|
-
* @param detected - The detections, in table order per
|
|
129
|
-
* @param ids - The targets that were REQUESTED, so an out-of-
|
|
132
|
+
* @param detected - The detections, in table order per scope.
|
|
133
|
+
* @param ids - The targets that were REQUESTED, so an out-of-scope one still
|
|
130
134
|
* gets a visible row.
|
|
131
135
|
* @param removal - Build the removal plan (`--undo`) instead of the forward one.
|
|
132
136
|
* @returns The plan.
|
|
133
137
|
*/
|
|
134
|
-
export function buildPlan(
|
|
138
|
+
export function buildPlan(selection, roots, detected, ids, removal = false) {
|
|
135
139
|
const rows = [];
|
|
136
|
-
for (const
|
|
140
|
+
for (const scope of scopesForSelection(selection)) {
|
|
137
141
|
for (const target of TARGETS) {
|
|
138
142
|
if (!ids.includes(target.id))
|
|
139
143
|
continue;
|
|
140
|
-
const hit = detected.find((d) => d.target.id === target.id && d.
|
|
144
|
+
const hit = detected.find((d) => d.target.id === target.id && d.scope === scope);
|
|
141
145
|
if (hit === undefined) {
|
|
142
|
-
// Only worth a line when the target has no row in ANY selected
|
|
146
|
+
// Only worth a line when the target has no row in ANY selected scope —
|
|
143
147
|
// under `--scope both` a global-only target already appears above.
|
|
144
148
|
const elsewhere = detected.some((d) => d.target.id === target.id);
|
|
145
149
|
if (!elsewhere)
|
|
146
|
-
rows.push(
|
|
150
|
+
rows.push(outOfScopeRow(target, scope));
|
|
147
151
|
continue;
|
|
148
152
|
}
|
|
149
153
|
const failure = detectionFailure(hit);
|
|
150
154
|
if (failure !== undefined) {
|
|
151
|
-
rows.push(failedDetectionRow(target,
|
|
155
|
+
rows.push(failedDetectionRow(target, scope, failure));
|
|
152
156
|
continue;
|
|
153
157
|
}
|
|
154
158
|
const draft = draftFor(hit, roots, removal);
|
|
155
159
|
rows.push({
|
|
156
160
|
target: target.id,
|
|
157
|
-
|
|
161
|
+
scope,
|
|
158
162
|
action: draft.action,
|
|
159
163
|
detail: draft.detail,
|
|
160
164
|
...(draft.reason === undefined ? {} : { reason: draft.reason }),
|
|
@@ -163,6 +167,6 @@ export function buildPlan(scope, roots, detected, ids, removal = false) {
|
|
|
163
167
|
});
|
|
164
168
|
}
|
|
165
169
|
}
|
|
166
|
-
return { scope, roots, rows };
|
|
170
|
+
return { scope: selection, roots, rows };
|
|
167
171
|
}
|
|
168
172
|
//# sourceMappingURL=buildPlan.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildPlan.js","sourceRoot":"","sources":["../../../../src/capabilities/setup/buildPlan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EACL,eAAe,GAIhB,MAAM,WAAW,CAAC;AACnB,OAAO,EAEL,
|
|
1
|
+
{"version":3,"file":"buildPlan.js","sourceRoot":"","sources":["../../../../src/capabilities/setup/buildPlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
* who forgot `--yes` reads the hint on the very output they are capturing.
|
|
21
21
|
*
|
|
22
22
|
* An MCP tool call is programmatic consent: `transport === "mcp"` resolves as if
|
|
23
|
-
* `--yes` were passed. The
|
|
24
|
-
* global
|
|
23
|
+
* `--yes` were passed. The scope default applies there too — the tool writes the
|
|
24
|
+
* global scope unless told otherwise.
|
|
25
25
|
*/
|
|
26
26
|
/**
|
|
27
27
|
* Lift the decision inputs off a runtime. A tool call over MCP counts as `yes`.
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* The detection types are part of the surface, not an implementation leak: a
|
|
15
15
|
* detection is the value passed from the read half to the compose half and on
|
|
16
|
-
* to the plan rows, so `doctor`'s
|
|
16
|
+
* to the plan rows, so `doctor`'s scoped checks name the same records `setup`
|
|
17
17
|
* acts on. The presentation helpers travel with them for the same reason — a
|
|
18
18
|
* skip reason or an uninstall remedy is derived from one detection, and
|
|
19
19
|
* deriving it twice is how the two surfaces start disagreeing about the same
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
export { composeCompletions, composeCompletionsRemoval, detectCompletions, } from "./setupCompletions.js";
|
|
34
34
|
export { composeConfigFile, composeConfigRemoval, detectConfigFile, } from "./setupConfig.js";
|
|
35
35
|
export { buildSetupRun } from "./setupGenerator.js";
|
|
36
|
-
export { composeLsp, composeLspRemoval, detectLsp, LSP_SKIP_REMEDY, lspEditorNames, lspSkipReason, lspUninstallRemedy, } from "./setupLsp.js";
|
|
37
|
-
export { composeMcp, composeMcpRemoval, detectMcp, mcpGroupState, ownedMcpGroups, selectedGroups, } from "./setupMcp.js";
|
|
38
|
-
export { composeSkills, composeSkillsRemoval, detectSkills, ownedSkillLinks, skillsSkipReason, } from "./setupSkills.js";
|
|
36
|
+
export { composeLsp, composeLspRemoval, detectLsp, LSP_SKIP_REMEDY, lspEditorNames, lspSkipReason, lspUninstallRemedy, ownedLspEditors, } from "./setupLsp.js";
|
|
37
|
+
export { composeMcp, composeMcpRemoval, detectMcp, mcpGroupState, mcpWriteState, ownedMcpGroups, selectedGroups, } from "./setupMcp.js";
|
|
38
|
+
export { composeSkills, composeSkillsRemoval, detectSkills, ownedSkillLinks, skillsSkipReason, skillsSkipRemedy, staleSkillLinks, withinRoot, } from "./setupSkills.js";
|
|
39
39
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/capabilities/setup/operations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/capabilities/setup/operations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,UAAU,GACX,MAAM,kBAAkB,CAAC"}
|