@canonical/pragma-cli 0.35.0 → 0.37.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 +24 -20
- package/dist/pragma.conf.js +266 -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/capabilities/hints.js +1 -1
- package/dist/src/capabilities/capabilities/hints.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/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/create/mount.js +4 -3
- package/dist/src/capabilities/create/mount.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/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/isSupportedNodeVersion.js +38 -0
- package/dist/src/capabilities/doctor/checks/isSupportedNodeVersion.js.map +1 -0
- 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/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 +156 -58
- package/dist/src/capabilities/setup/operations/setupGenerator.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupLsp.js +136 -38
- package/dist/src/capabilities/setup/operations/setupLsp.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupMcp.js +101 -52
- package/dist/src/capabilities/setup/operations/setupMcp.js.map +1 -1
- package/dist/src/capabilities/setup/operations/setupSkills.js +329 -49
- 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 +165 -63
- package/dist/src/capabilities/setup/setup.verb.js.map +1 -1
- package/dist/src/capabilities/setup/targets.js +122 -51
- package/dist/src/capabilities/setup/targets.js.map +1 -1
- package/dist/src/capabilities/shared/index.js +7 -6
- 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 +13 -2
- 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 +310 -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 +46 -24
- 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 +42 -9
- 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/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 +14 -9
- 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/refs/parseRef.js +17 -1
- package/dist/src/kernel/runtime/refs/parseRef.js.map +1 -1
- package/dist/src/kernel/runtime/refs/resolve.js +9 -3
- 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 +24 -20
- package/pragma.conf.ts +272 -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/capabilities/hints.ts +1 -1
- package/src/capabilities/colophon/colophon.render.ts +1 -2
- package/src/capabilities/colophon/colophon.test.ts +2 -2
- package/src/capabilities/config/collectConfigShow.test.ts +1 -0
- 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 +5 -2
- package/src/capabilities/create/createSurface.generated.ts +23 -1
- package/src/capabilities/create/crossCli.subprocess.test.ts +10 -3
- package/src/capabilities/create/mount.ts +3 -3
- package/src/capabilities/distribution.parity.test.ts +4 -0
- package/src/capabilities/doctor/checks/checkNodeVersion.test.ts +49 -0
- package/src/capabilities/doctor/checks/checkNodeVersion.ts +11 -7
- 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/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 +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/lazy.test.ts +26 -2
- package/src/capabilities/listLookup.shipped.exec.test.ts +340 -0
- package/src/capabilities/prompt/prompt.render.ts +2 -2
- package/src/capabilities/renderVocabularySync.test.ts +82 -0
- package/src/capabilities/resources/resources.test.ts +38 -2
- 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/setupCompletions.ts +9 -2
- package/src/capabilities/setup/operations/setupConfig.ts +7 -2
- package/src/capabilities/setup/operations/setupGenerator.ts +227 -84
- package/src/capabilities/setup/operations/setupLsp.ts +203 -38
- package/src/capabilities/setup/operations/setupMcp.ts +139 -62
- package/src/capabilities/setup/operations/setupSkills.ts +399 -60
- 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 +1126 -50
- package/src/capabilities/setup/setup.verb.ts +174 -68
- package/src/capabilities/setup/targets.ts +138 -60
- package/src/capabilities/setup/types.ts +10 -18
- package/src/capabilities/shared/index.ts +18 -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 +14 -6
- 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 +14 -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 +19 -3
- package/src/kernel/config/readConfig.test.ts +1 -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 +327 -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 +48 -25
- 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 +44 -8
- package/src/kernel/project/mcp/registerVerb.ts +20 -1
- package/src/kernel/render/prefixes.test.ts +2 -0
- 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/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 +14 -12
- package/src/kernel/runtime/loadSession.ts +3 -1
- package/src/kernel/runtime/probe.ts +1 -1
- 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 +9 -3
- package/src/kernel/runtime/types.ts +17 -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/src/testing/helpers/runCli.test.ts +44 -0
- package/src/testing/helpers/runCli.ts +27 -3
- 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
|
@@ -25,8 +25,13 @@
|
|
|
25
25
|
* Decisions run against REAL fs here so the update's `--dry-run` plan is
|
|
26
26
|
* accurate; the composed Task performs only the symlink/delete effects.
|
|
27
27
|
*/
|
|
28
|
-
import { existsSync, lstatSync, readdirSync, readlinkSync } from "node:fs";
|
|
28
|
+
import { existsSync, lstatSync, readdirSync, readlinkSync, statSync, } from "node:fs";
|
|
29
29
|
import { basename, join, resolve } from "node:path";
|
|
30
|
+
// The ownership test, imported rather than reimplemented: `setup skills` and
|
|
31
|
+
// this module must not be able to disagree about which links belong to pragma.
|
|
32
|
+
// `setupSkills.ts` reaches `@canonical/harnesses` only through a DYNAMIC
|
|
33
|
+
// import, so this edge adds no static one (`capabilities/lazy.test.ts`).
|
|
34
|
+
import { withinAnyRoot } from "../setup/operations/setupSkills.js";
|
|
30
35
|
import { installedSkillsDir } from "../skill/discover.js";
|
|
31
36
|
/** Classify a link path: absent, our-or-another symlink, or a real entry. */
|
|
32
37
|
function linkState(linkPath) {
|
|
@@ -61,7 +66,11 @@ function packageSkillDirs(root) {
|
|
|
61
66
|
for (const name of names) {
|
|
62
67
|
const dir = join(skillsDir, name);
|
|
63
68
|
try {
|
|
64
|
-
|
|
69
|
+
// `stat`, not `lstat`: a package that ships `skills/<name>` as a SYMLINK
|
|
70
|
+
// — the ordinary pnpm / monorepo / `file:` layout — contributed nothing
|
|
71
|
+
// at all, silently, because `lstat` reports the link and not the
|
|
72
|
+
// directory behind it. Discovery uses `stat`; so does this now.
|
|
73
|
+
if (statSync(dir).isDirectory() && existsSync(join(dir, "SKILL.md"))) {
|
|
65
74
|
out.push(dir);
|
|
66
75
|
}
|
|
67
76
|
}
|
|
@@ -142,9 +151,15 @@ export function planSkillInstall(resolved) {
|
|
|
142
151
|
seen.add(folderName);
|
|
143
152
|
const linkPath = resolve(dest, folderName);
|
|
144
153
|
const state = linkState(linkPath);
|
|
154
|
+
// Already correct means the link RESOLVES to the skill dir, not that its
|
|
155
|
+
// raw `readlink` string equals an absolute path. A relative link was
|
|
156
|
+
// therefore never "already correct": it was torn down and rebuilt on
|
|
157
|
+
// every single update, and the sibling planner reported it as drift.
|
|
158
|
+
const resolvesToSkill = state.kind === "symlink" &&
|
|
159
|
+
resolve(dest, state.target) === resolve(skillDir);
|
|
145
160
|
const action = state.kind === "absent"
|
|
146
161
|
? "created"
|
|
147
|
-
:
|
|
162
|
+
: resolvesToSkill
|
|
148
163
|
? "skipped"
|
|
149
164
|
: state.kind === "symlink"
|
|
150
165
|
? "replaced"
|
|
@@ -164,4 +179,131 @@ export function planSkillInstall(resolved) {
|
|
|
164
179
|
actions.push(...planStaleLinkPrunes(dest, seen));
|
|
165
180
|
return actions;
|
|
166
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Plan the CONVERGE-ONLY refresh of the global scope's harness skill links.
|
|
184
|
+
*
|
|
185
|
+
* The reported bug lives here. `sources update` installed and pruned layer 1
|
|
186
|
+
* and stopped, so a new pack skill reached no harness directory until the user
|
|
187
|
+
* separately ran `setup skills`, and a dropped one left its layer-2 link
|
|
188
|
+
* dangling with nothing that would ever clear it. This closes the loop, under
|
|
189
|
+
* two rules that are the entire safety argument:
|
|
190
|
+
*
|
|
191
|
+
* 1. CONVERGE-ONLY. `dirs` are directories that already exist — this function
|
|
192
|
+
* never creates one, and the caller composes no `mkdir`. A `sources update`
|
|
193
|
+
* that materialised `~/.claude/skills` would be litter, and would silently
|
|
194
|
+
* opt the user into linking they never asked for.
|
|
195
|
+
* 2. OWNERSHIP, by the SAME test `setup skills` uses. A path is this command's
|
|
196
|
+
* to touch only when it holds a symlink resolving INSIDE one of the global
|
|
197
|
+
* scope's roots (`withinAnyRoot`, a pure path-SEGMENT test that reads nothing
|
|
198
|
+
* — so it still answers correctly after the layer-1 target is gone, which is
|
|
199
|
+
* exactly the stale case). A real directory is a hand-installed skill; a
|
|
200
|
+
* symlink pointing anywhere else is the user's own; a `<root>-backup/foo`
|
|
201
|
+
* sibling is not "inside" despite sharing a string prefix. None is removed.
|
|
202
|
+
*
|
|
203
|
+
* THE SET, NOT JUST THE INSTALLED ROOT, and that is what keeps precedence
|
|
204
|
+
* true one layer up. A harness link left pointing at the BUNDLED snapshot
|
|
205
|
+
* for a skill this update has just installed for real is owned, so it is
|
|
206
|
+
* `replaced` onto the installed copy. Tested against the installed root
|
|
207
|
+
* alone it read as "someone else's link" and was skipped — and the user who
|
|
208
|
+
* deliberately ran `sources update` would have kept running the shipped copy.
|
|
209
|
+
*
|
|
210
|
+
* The plan is derived from the layer-1 plan rather than from a filesystem
|
|
211
|
+
* re-read, because at planning time the layer-1 writes have not happened yet:
|
|
212
|
+
* `surviving` is the post-update truth, and reading the disk would see the
|
|
213
|
+
* pre-update state. That is also why a surviving name always targets
|
|
214
|
+
* `roots[0]`: layer 1 is about to hold it, whether or not it does now.
|
|
215
|
+
*
|
|
216
|
+
* A RETIRED NAME IS NOT AUTOMATICALLY DEBRIS any more. The fallback roots
|
|
217
|
+
* (today: the bundled snapshot) are NOT written by this update, so their
|
|
218
|
+
* contents ARE readable at plan time — and a skill the packages dropped that
|
|
219
|
+
* the shipped snapshot still carries is still discoverable, still listed by
|
|
220
|
+
* `skill list`, and so still belongs in the harness directory. Such a link is
|
|
221
|
+
* RETARGETED onto the surviving root rather than pruned; only a name no root
|
|
222
|
+
* provides at all is deleted.
|
|
223
|
+
*
|
|
224
|
+
* @param dirs - The EXISTING global link directories.
|
|
225
|
+
* @param roots - The global scope's source roots in PRECEDENCE order.
|
|
226
|
+
* `roots[0]` is the installed root (layer 1) every surviving name targets;
|
|
227
|
+
* the rest are fallbacks a retired name may still resolve in. The whole set
|
|
228
|
+
* is the ownership set.
|
|
229
|
+
* @param surviving - Folder names layer 1 will hold after this update.
|
|
230
|
+
* @param retired - Folder names layer 1 is pruning in this update.
|
|
231
|
+
* @returns The layer-2 actions, for the plan and its effects.
|
|
232
|
+
* @note Impure — lstats each candidate link path, and stats the fallback roots
|
|
233
|
+
* for each retired name.
|
|
234
|
+
*/
|
|
235
|
+
export function planHarnessSkillLinks(dirs, roots, surviving, retired) {
|
|
236
|
+
const dest = resolve(roots[0]);
|
|
237
|
+
/** The first FALLBACK root that still holds `folderName`, if any. */
|
|
238
|
+
const fallback = (folderName) => roots
|
|
239
|
+
.slice(1)
|
|
240
|
+
.map((root) => resolve(root, folderName))
|
|
241
|
+
.find((candidate) => existsSync(candidate));
|
|
242
|
+
const out = [];
|
|
243
|
+
for (const { dir, name } of dirs) {
|
|
244
|
+
for (const folderName of surviving) {
|
|
245
|
+
const linkPath = resolve(dir, folderName);
|
|
246
|
+
const target = resolve(dest, folderName);
|
|
247
|
+
const state = linkState(linkPath);
|
|
248
|
+
if (state.kind === "other")
|
|
249
|
+
continue; // A hand-placed entry — never ours.
|
|
250
|
+
if (state.kind === "absent") {
|
|
251
|
+
out.push({
|
|
252
|
+
target,
|
|
253
|
+
linkPath,
|
|
254
|
+
action: "created",
|
|
255
|
+
folderName,
|
|
256
|
+
dirName: name,
|
|
257
|
+
});
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
if (resolve(dir, state.target) === target)
|
|
261
|
+
continue; // Already correct.
|
|
262
|
+
// A symlink pointing outside every scope root is the user's own link into
|
|
263
|
+
// their own checkout. Unplanned does not make it ours to replace.
|
|
264
|
+
if (!withinAnyRoot(roots, linkPath, state.target))
|
|
265
|
+
continue;
|
|
266
|
+
out.push({
|
|
267
|
+
target,
|
|
268
|
+
linkPath,
|
|
269
|
+
action: "replaced",
|
|
270
|
+
folderName,
|
|
271
|
+
dirName: name,
|
|
272
|
+
previousTarget: state.target,
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
for (const folderName of retired) {
|
|
276
|
+
const linkPath = resolve(dir, folderName);
|
|
277
|
+
const state = linkState(linkPath);
|
|
278
|
+
if (state.kind !== "symlink")
|
|
279
|
+
continue;
|
|
280
|
+
if (!withinAnyRoot(roots, linkPath, state.target))
|
|
281
|
+
continue;
|
|
282
|
+
const surviving = fallback(folderName);
|
|
283
|
+
if (surviving !== undefined) {
|
|
284
|
+
// Dropped upstream, still shipped: retarget rather than delete. Already
|
|
285
|
+
// correct is nothing to do.
|
|
286
|
+
if (resolve(dir, state.target) === surviving)
|
|
287
|
+
continue;
|
|
288
|
+
out.push({
|
|
289
|
+
target: surviving,
|
|
290
|
+
linkPath,
|
|
291
|
+
action: "replaced",
|
|
292
|
+
folderName,
|
|
293
|
+
dirName: name,
|
|
294
|
+
previousTarget: state.target,
|
|
295
|
+
});
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
out.push({
|
|
299
|
+
target: resolve(dir, state.target),
|
|
300
|
+
linkPath,
|
|
301
|
+
action: "pruned",
|
|
302
|
+
folderName,
|
|
303
|
+
dirName: name,
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
return out;
|
|
308
|
+
}
|
|
167
309
|
//# sourceMappingURL=installSkills.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installSkills.js","sourceRoot":"","sources":["../../../../src/capabilities/sources/installSkills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"installSkills.js","sourceRoot":"","sources":["../../../../src/capabilities/sources/installSkills.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,8 +30,12 @@ import { cliRecovery, PragmaError } from "../../kernel/error/index.js";
|
|
|
30
30
|
import { buildPack } from "../../kernel/runtime/graphpack/build.js";
|
|
31
31
|
import { activePackPath, readActivePack } from "../../kernel/runtime/paths.js";
|
|
32
32
|
import { detectPrefixClashes, harvestPrefixes, parsePackDeclaration, redactUrl, resolvePackage, } from "../../kernel/runtime/refs/index.js";
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
// The global scope's EXISTING link directories, from the module that owns the
|
|
34
|
+
// scope covenant — so `sources update` cannot drift away from what
|
|
35
|
+
// `setup skills --global` links, or widen the scope on its own.
|
|
36
|
+
import { existingGlobalSkillDirs } from "../setup/operations/setupSkills.js";
|
|
37
|
+
import { globalSkillRoots, installedSkillsDir } from "../skill/discover.js";
|
|
38
|
+
import { planHarnessSkillLinks, planSkillInstall } from "./installSkills.js";
|
|
35
39
|
/** Generic-core prefixes; config `prefixes` merge over them (config wins). */
|
|
36
40
|
const CORE_PREFIXES = {
|
|
37
41
|
rdf: "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
|
|
@@ -263,6 +267,37 @@ export async function buildUpdateTask(runtime, skipInvalid = false) {
|
|
|
263
267
|
report?.(`Installing ${skillLinks.length} skill(s)`);
|
|
264
268
|
if (staleLinks.length > 0)
|
|
265
269
|
report?.(`Removing ${staleLinks.length} skill link(s) no longer provided by any package`);
|
|
270
|
+
// Converge the GLOBAL scope (layer 2). Layer 1 above is the installed root;
|
|
271
|
+
// the harness directories link AT it, and until now nothing here touched
|
|
272
|
+
// them — a new pack skill reached no harness directory until the user
|
|
273
|
+
// separately ran `setup skills`, and a dropped one left a dangling link that
|
|
274
|
+
// nothing would ever clear. That two-step was the reported bug.
|
|
275
|
+
//
|
|
276
|
+
// CONVERGE-ONLY, and this is a policy line, not an optimisation:
|
|
277
|
+
// `existingGlobalSkillDirs` returns only directories that ALREADY EXIST, and
|
|
278
|
+
// nothing below composes a `mkdir`. `sources update` is `mcp: {expose:true}`
|
|
279
|
+
// with `mutates: true` and `needsNetwork: true`, so creating directories here
|
|
280
|
+
// would mean an agent, over MCP, after a network fetch, conjuring
|
|
281
|
+
// `~/.claude/skills` into being and opting the user into linking they never
|
|
282
|
+
// asked for. Refresh what is there; never bring a directory into existence.
|
|
283
|
+
//
|
|
284
|
+
// Ownership is the SAME `withinAnyRoot` test `setup skills` applies, over the
|
|
285
|
+
// SAME root set (`globalSkillRoots`), so a real directory, a still-resolving
|
|
286
|
+
// link into the user's own checkout, and a `<root>-backup/foo` sibling are all
|
|
287
|
+
// left exactly as found — while a link still pointing at the BUNDLED snapshot
|
|
288
|
+
// for a skill this update just installed is ours, and is moved onto it.
|
|
289
|
+
const harnessPlan = planHarnessSkillLinks(await existingGlobalSkillDirs(runtime.cwd), globalSkillRoots(), skillPlan
|
|
290
|
+
.filter((link) => link.action !== "pruned")
|
|
291
|
+
.map((link) => link.folderName), staleLinks.map((link) => link.folderName));
|
|
292
|
+
const harnessLinks = harnessPlan.filter((link) => link.action !== "pruned");
|
|
293
|
+
const harnessStale = harnessPlan.filter((link) => link.action === "pruned");
|
|
294
|
+
if (harnessLinks.length > 0)
|
|
295
|
+
report?.(`Linking ${harnessLinks.length} skill(s) into your harness folders`);
|
|
296
|
+
if (harnessStale.length > 0)
|
|
297
|
+
report?.(`Removing ${harnessStale.length} stale harness skill link(s)`);
|
|
298
|
+
if (verbose)
|
|
299
|
+
for (const link of harnessPlan)
|
|
300
|
+
report?.(` ${link.action} ${link.folderName} in ${link.dirName}`);
|
|
266
301
|
report?.(`Pointing ${runtime.cwd} at pack ${built.contentHash.slice(0, 12)}`);
|
|
267
302
|
return gen(function* () {
|
|
268
303
|
yield* $(writeFile(path, built.contentHash, { undo }));
|
|
@@ -293,6 +328,37 @@ export async function buildUpdateTask(runtime, skipInvalid = false) {
|
|
|
293
328
|
}),
|
|
294
329
|
}));
|
|
295
330
|
}
|
|
331
|
+
// Layer 2, in the same Task and so under the same `--undo`. Still no
|
|
332
|
+
// `mkdir`: every directory here was proven to exist at plan time, and
|
|
333
|
+
// creating one is the thing converge-only exists to forbid.
|
|
334
|
+
for (const link of harnessLinks) {
|
|
335
|
+
// A `created` link undoes by deletion — absent IS the state it replaced.
|
|
336
|
+
// A `replaced` one does not: the path held a link, and the delete above
|
|
337
|
+
// carries no undo of its own, so deleting what the symlink created would
|
|
338
|
+
// leave the path ABSENT rather than pointing where it pointed before.
|
|
339
|
+
// Its undo is therefore the same delete-then-relink shape the prunes
|
|
340
|
+
// below use, against the target detection recorded — and it clears the
|
|
341
|
+
// path first because undo collection MOCKS forward effects, so the link
|
|
342
|
+
// may still be there and `fs.symlink` refuses an existing path.
|
|
343
|
+
const previous = link.previousTarget;
|
|
344
|
+
const undoLink = link.action === "replaced" && previous !== undefined
|
|
345
|
+
? gen(function* () {
|
|
346
|
+
yield* $(deleteFile(link.linkPath));
|
|
347
|
+
yield* $(symlink(previous, link.linkPath));
|
|
348
|
+
})
|
|
349
|
+
: deleteFile(link.linkPath);
|
|
350
|
+
if (link.action === "replaced")
|
|
351
|
+
yield* $(deleteFile(link.linkPath));
|
|
352
|
+
yield* $(symlink(link.target, link.linkPath, { undo: undoLink }));
|
|
353
|
+
}
|
|
354
|
+
for (const stale of harnessStale) {
|
|
355
|
+
yield* $(deleteFile(stale.linkPath, {
|
|
356
|
+
undo: gen(function* () {
|
|
357
|
+
yield* $(deleteFile(stale.linkPath));
|
|
358
|
+
yield* $(symlink(stale.target, stale.linkPath));
|
|
359
|
+
}),
|
|
360
|
+
}));
|
|
361
|
+
}
|
|
296
362
|
return data;
|
|
297
363
|
});
|
|
298
364
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runUpdate.js","sourceRoot":"","sources":["../../../../src/capabilities/sources/runUpdate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runUpdate.js","sourceRoot":"","sources":["../../../../src/capabilities/sources/runUpdate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,CAAC,EACD,UAAU,EACV,GAAG,EACH,IAAI,EACJ,KAAK,EACL,OAAO,EAEP,SAAS,GACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACvE,sEAAsE;AACtE,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,wBAAwB;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/E,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EAEpB,SAAS,EACT,cAAc,GACf,MAAM,oCAAoC,CAAC;AAC5C,8EAA8E;AAC9E,mEAAmE;AACnE,gEAAgE;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG7E,8EAA8E;AAC9E,MAAM,aAAa,GAAqC;IACtD,GAAG,EAAE,6CAA6C;IAClD,IAAI,EAAE,uCAAuC;IAC7C,GAAG,EAAE,gCAAgC;IACrC,GAAG,EAAE,mCAAmC;IACxC,IAAI,EAAE,sCAAsC;IAC5C,EAAE,EAAE,6BAA6B;IACjC,OAAO,EAAE,2BAA2B;CACrC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA+C,EAC/C,cAA4D;IAE5D,OAAO;QACL,GAAG,aAAa;QAChB,GAAG,eAAe,CAAC,MAAM,CAAC;QAC1B,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,eAAe,CAC5B,OAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAsB;QAC9B,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,IAAI,EAAE,GAAG,CAAC,GAAG;YACb,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO,GAAG,CAAC,QAAQ,CAAC;QAClB,KAAK,CAAC,CAAC,CAAC,CACN,IAAI,CACF,IAAI,CAAC,MAAM,GAAG,CAAC;YACb,CAAC,CAAC,qBAAqB,IAAI,CAAC,MAAM,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzF,CAAC,CAAC,6DAA6D,CAClE,CACF,CAAC;QACF,2EAA2E;QAC3E,sEAAsE;QACtE,KAAK,CAAC,CAAC,CAAC,CACN,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,6BAA6B,CAAC,CACtE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAsB,EACtB,WAAW,GAAG,KAAK;IAEnB,IAAI,OAAO,CAAC,QAAQ,EAAE,OAAO;QAAE,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;IAE/D,8EAA8E;IAC9E,6EAA6E;IAC7E,iEAAiE;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;IAE5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAE9C,MAAM,QAAQ,GACZ,EAAE,CAAC;IACL,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,CAAC,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;SACrD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtD,0EAA0E;IAC1E,yEAAyE;IACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEvD,6EAA6E;IAC7E,mEAAmE;IACnE,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAC9E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,WAAW,CAAC,WAAW,CAC3B,OAAO,CAAC,MAAM,KAAK,CAAC;YAClB,CAAC,CAAC,+HAA+H;YACjI,CAAC,CAAC,OAAO,OAAO,CAAC,MAAM,sHAAsH,EAC/I;YACE,QAAQ,EAAE,WAAW,CACnB,0BAA0B,EAC1B,wEAAwE,CACzE;SACF,CACF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEnE,6EAA6E;IAC7E,yEAAyE;IACzE,6EAA6E;IAC7E,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,EAAE,CACN,WAAW,KAAK,CAAC,KAAK,sDAAsD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iEAAiE,CACrK,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,uBAAuB,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC;IAC3D,IAAI,OAAO;QAAE,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,MAAM,EAAE,CAAC,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QACpB,MAAM,EAAE,CAAC,YAAY,OAAO,CAAC,MAAM,0BAA0B,CAAC,CAAC;IAEjE,8EAA8E;IAC9E,oEAAoE;IACpE,8EAA8E;IAC9E,4EAA4E;IAC5E,0EAA0E;IAC1E,4BAA4B;IAC5B,4EAA4E;IAC5E,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAC/E,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,SAAS,GACb,QAAQ;SACL,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACX,GAAG,CAAC,IAAI,KAAK,MAAM;QACjB,CAAC,CAAC,GAAG,CAAC,IAAI;QACV,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAC9C;SACA,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC;IAC9B,IAAI,KAA4C,CAAC;IACjD,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE;YAC9B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,OAAO;YAChB,SAAS;YACT,QAAQ;YACR,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,WAAW;YAAE,MAAM,MAAM,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,0EAA0E;QAC1E,wEAAwE;QACxE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,MAAM,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,KAAK,MAAM,KAAK,IAAI,GAAG;YACrB,MAAM,EAAE,CAAC,4BAA4B,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,MAAM,EAAE,CACN,WAAW,GAAG,CAAC,MAAM,qCAAqC,YAAY,CAAC,MAAM,OAAO,MAAM,CAAC,MAAM,EAAE,CACpG,CAAC;QACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAC3B,MAAM,WAAW,CAAC,WAAW,CAC3B,eAAe,MAAM,CAAC,MAAM,yDAAyD,EACrF;gBACE,QAAQ,EAAE,WAAW,CACnB,0BAA0B,EAC1B,wCAAwC,CACzC;aACF,CACF,CAAC;QACJ,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,SAAS,CAAC,YAAY,EAAE;gBACpC,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,OAAO;gBAChB,SAAS;gBACT,wEAAwE;gBACxE,6CAA6C;gBAC7C,QAAQ,EAAE,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACjE,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACtB,MAAM,MAAM,wBAAwB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,MAAM,EAAE,CACN,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,UAAU,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAC/E,CAAC;IAEF,wEAAwE;IACxE,+EAA+E;IAC/E,8EAA8E;IAC9E,uEAAuE;IACvE,4EAA4E;IAC5E,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,WAAW,CAAC,WAAW,CAC3B,gHAAgH,EAChH;YACE,QAAQ,EAAE,WAAW,CACnB,0BAA0B,EAC1B,wEAAwE,CACzE;SACF,CACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,IAAI,GAAsB;QAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM;YAC/B,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM;SAC/B,CAAC,CAAC;KACJ,CAAC;IAEF,MAAM,IAAI,GACR,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE1E,yEAAyE;IACzE,8EAA8E;IAC9E,2EAA2E;IAC3E,4EAA4E;IAC5E,0EAA0E;IAC1E,wEAAwE;IACxE,EAAE;IACF,6EAA6E;IAC7E,wEAAwE;IACxE,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CACjC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAClE,CAAC;IACF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IACxE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QACvB,MAAM,EAAE,CAAC,cAAc,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC;IACvD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QACvB,MAAM,EAAE,CACN,YAAY,UAAU,CAAC,MAAM,kDAAkD,CAChF,CAAC;IAEJ,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,6EAA6E;IAC7E,gEAAgE;IAChE,EAAE;IACF,iEAAiE;IACjE,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,kEAAkE;IAClE,4EAA4E;IAC5E,4EAA4E;IAC5E,EAAE;IACF,8EAA8E;IAC9E,6EAA6E;IAC7E,+EAA+E;IAC/E,8EAA8E;IAC9E,wEAAwE;IACxE,MAAM,WAAW,GAAG,qBAAqB,CACvC,MAAM,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,EAC1C,gBAAgB,EAAE,EAClB,SAAS;SACN,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;SAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EACjC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAC1C,CAAC;IACF,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAC5E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;QACzB,MAAM,EAAE,CACN,WAAW,YAAY,CAAC,MAAM,qCAAqC,CACpE,CAAC;IACJ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;QACzB,MAAM,EAAE,CAAC,YAAY,YAAY,CAAC,MAAM,8BAA8B,CAAC,CAAC;IAC1E,IAAI,OAAO;QACT,KAAK,MAAM,IAAI,IAAI,WAAW;YAC5B,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvE,MAAM,EAAE,CAAC,YAAY,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9E,OAAO,GAAG,CAAC,QAAQ,CAAC;QAClB,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU;oBAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpE,KAAK,CAAC,CAAC,CAAC,CACN,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE;oBAClC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;iBAChC,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QACD,yEAAyE;QACzE,sDAAsD;QACtD,EAAE;QACF,4EAA4E;QAC5E,6EAA6E;QAC7E,2EAA2E;QAC3E,yEAAyE;QACzE,sEAAsE;QACtE,qDAAqD;QACrD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,KAAK,CAAC,CAAC,CAAC,CACN,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACzB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;oBACjB,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACrC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAClD,CAAC,CAAC;aACH,CAAC,CACH,CAAC;QACJ,CAAC;QACD,qEAAqE;QACrE,sEAAsE;QACtE,4DAA4D;QAC5D,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,yEAAyE;YACzE,wEAAwE;YACxE,yEAAyE;YACzE,sEAAsE;YACtE,qEAAqE;YACrE,uEAAuE;YACvE,wEAAwE;YACxE,gEAAgE;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;YACrC,MAAM,QAAQ,GACZ,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,QAAQ,KAAK,SAAS;gBAClD,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACX,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACpC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC7C,CAAC,CAAC;gBACJ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU;gBAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,KAAK,CAAC,CAAC,CAAC,CACN,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACzB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;oBACjB,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACrC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAClD,CAAC,CAAC;aACH,CAAC,CACH,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6EAA6E;AAC7E,SAAS,eAAe,CAAC,GAAe;IACtC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,KAAK;YACR,OAAO,WAAW,GAAG,CAAC,GAAG,SAAS,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,KAAK,MAAM;YACT,OAAO,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC;QAC/C,KAAK,KAAK;YACR,OAAO,aAAa,GAAG,CAAC,GAAG,EAAE,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAc,EACd,MAAsE;IAEtE,IAAI,KAAK,YAAY,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,aAAa,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,OAAO,EAAE,OAAO,IAAI,aAAa,CAAC;IACjD,MAAM,KAAK,GAAG,OAAO;QACnB,CAAC,CAAC,gBAAgB,OAAO,CAAC,IAAI,oBAAoB;QAClD,CAAC,CAAC,mDAAmD,CAAC;IACxD,OAAO,WAAW,CAAC,WAAW,CAAC,GAAG,KAAK,KAAK,MAAM,EAAE,EAAE;QACpD,QAAQ,EAAE,WAAW,CACnB,0BAA0B,EAC1B,0HAA0H,CAC3H;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,gBAAgB,CAC7B,MAAsE;IAEtE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC;gBAC9B,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;aACxD,CAAC,CAAC;YACH,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,iBAAiB,CAC9B,MAAsE;IAEtE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,GAAG,GAAwC,EAAE,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC;gBAC9B,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;aACxD,CAAC,CAAC;YACH,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -17,12 +17,12 @@ import { updateFormatters } from "./update.render.js";
|
|
|
17
17
|
export const updateVerb = {
|
|
18
18
|
path: ["sources", "update"],
|
|
19
19
|
summary: "Resolve configured packs and build the local store from them.",
|
|
20
|
-
doc: "Resolves each configured pack (git
|
|
20
|
+
doc: "Resolves each configured pack (git, file, or npm) and builds one local pack from them, which every later run reads without touching the network. Put a commit SHA in a pack source ref to pin it to that revision.",
|
|
21
21
|
params: [
|
|
22
22
|
{
|
|
23
23
|
kind: "boolean",
|
|
24
24
|
name: "skipInvalid",
|
|
25
|
-
doc: "
|
|
25
|
+
doc: "Build from the sources that parse, warning about each one that does not, instead of failing the whole update.",
|
|
26
26
|
},
|
|
27
27
|
],
|
|
28
28
|
output: { formatters: updateFormatters },
|
|
@@ -30,7 +30,7 @@ export const updateVerb = {
|
|
|
30
30
|
{ cmd: `${BIN_NAME} sources update`, note: "resolve and build" },
|
|
31
31
|
{
|
|
32
32
|
cmd: `${BIN_NAME} sources update --skip-invalid`,
|
|
33
|
-
note: "build from the
|
|
33
|
+
note: "build from the sources that parse, and name the ones dropped",
|
|
34
34
|
},
|
|
35
35
|
],
|
|
36
36
|
capability: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.verb.js","sourceRoot":"","sources":["../../../../src/capabilities/sources/update.verb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAGnB;IACF,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC3B,OAAO,EAAE,+DAA+D;IACxE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"update.verb.js","sourceRoot":"","sources":["../../../../src/capabilities/sources/update.verb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAGnB;IACF,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC3B,OAAO,EAAE,+DAA+D;IACxE,GAAG,EAAE,oNAAoN;IACzN,MAAM,EAAE;QACN;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,+GAA+G;SACrH;KACF;IACD,MAAM,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;IACxC,QAAQ,EAAE;QACR,EAAE,GAAG,EAAE,GAAG,QAAQ,iBAAiB,EAAE,IAAI,EAAE,mBAAmB,EAAE;QAChE;YACE,GAAG,EAAE,GAAG,QAAQ,gCAAgC;YAChD,IAAI,EAAE,8DAA8D;SACrE;KACF;IACD,UAAU,EAAE;QACV,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,IAAI;QAClB,GAAG,EAAE;YACH,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;SAC1D;KACF;IACD,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,2EAA2E;IAC3E,4EAA4E;IAC5E,+EAA+E;IAC/E,6EAA6E;IAC7E,6CAA6C;IAC7C,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACvB,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,CACvB;CAC1C,CAAC"}
|
|
@@ -13,6 +13,11 @@
|
|
|
13
13
|
* by `assertExecOk` as an actionable UNSUPPORTED (exit 1) — the interpreter
|
|
14
14
|
* RESOLVES on a nonzero exit, so the check is the consumer's job.
|
|
15
15
|
* - offline / already-latest carry NO exec — a real run just returns the status.
|
|
16
|
+
* - a non-global install (linked / ephemeral / workspace / unknown) also
|
|
17
|
+
* carries NO exec even when an update exists: there is no command pragma may
|
|
18
|
+
* run for it, so the task reports the delta plus the state's guidance and
|
|
19
|
+
* mutates nothing. `pmUpdateCommand` only accepts the global arm, so this is
|
|
20
|
+
* enforced by the types, not by convention.
|
|
16
21
|
*
|
|
17
22
|
* The whole registry read is preview-safe, so no `mutation.preview` gating is
|
|
18
23
|
* needed here (unlike `sources update`, whose heavy resolve must be gated).
|
|
@@ -20,7 +25,7 @@
|
|
|
20
25
|
* honest cast at the verb (the `update.verb.ts` precedent).
|
|
21
26
|
*/
|
|
22
27
|
import { $, exec, gen, info, warn } from "@canonical/task";
|
|
23
|
-
import { assertExecOk, checkRegistryVersion, detectInstallSource, guardMissingBinary, PRAGMA_PACKAGE, pmUpdateCommand, } from "../shared/index.js";
|
|
28
|
+
import { assertExecOk, checkRegistryVersion, detectInstallSource, guardMissingBinary, PRAGMA_PACKAGE, pmUpdateCommand, updateGuidance, } from "../shared/index.js";
|
|
24
29
|
/**
|
|
25
30
|
* Resolve the upgrade state and compose the corresponding Task.
|
|
26
31
|
*
|
|
@@ -33,16 +38,23 @@ import { assertExecOk, checkRegistryVersion, detectInstallSource, guardMissingBi
|
|
|
33
38
|
export async function runUpgrade(rt) {
|
|
34
39
|
const { channel } = (await rt.loadConfig()).config;
|
|
35
40
|
const install = detectInstallSource();
|
|
36
|
-
|
|
41
|
+
// Only a GLOBAL install has a sanctioned update command — the type of
|
|
42
|
+
// `pmUpdateCommand` enforces the narrowing. A linked checkout in particular
|
|
43
|
+
// must never be handed `npm i -g`: it would overwrite the development link.
|
|
44
|
+
const command = install.kind === "global"
|
|
45
|
+
? pmUpdateCommand(install, PRAGMA_PACKAGE)
|
|
46
|
+
: undefined;
|
|
37
47
|
const pm = install.label;
|
|
48
|
+
const kind = install.kind;
|
|
38
49
|
const current = rt.version;
|
|
39
50
|
const registry = await checkRegistryVersion(PRAGMA_PACKAGE, channel);
|
|
40
51
|
if (registry === undefined) {
|
|
41
52
|
const data = {
|
|
42
53
|
pm,
|
|
54
|
+
kind,
|
|
43
55
|
current,
|
|
44
56
|
latest: undefined,
|
|
45
|
-
command,
|
|
57
|
+
...(command !== undefined ? { command } : {}),
|
|
46
58
|
offline: true,
|
|
47
59
|
alreadyLatest: false,
|
|
48
60
|
executed: false,
|
|
@@ -55,9 +67,10 @@ export async function runUpgrade(rt) {
|
|
|
55
67
|
if (registry.latest === current) {
|
|
56
68
|
const data = {
|
|
57
69
|
pm,
|
|
70
|
+
kind,
|
|
58
71
|
current,
|
|
59
72
|
latest: registry.latest,
|
|
60
|
-
command,
|
|
73
|
+
...(command !== undefined ? { command } : {}),
|
|
61
74
|
offline: false,
|
|
62
75
|
alreadyLatest: true,
|
|
63
76
|
executed: false,
|
|
@@ -67,16 +80,39 @@ export async function runUpgrade(rt) {
|
|
|
67
80
|
return data;
|
|
68
81
|
});
|
|
69
82
|
}
|
|
83
|
+
if (install.kind !== "global") {
|
|
84
|
+
// An update exists, but this install has no command pragma may run for
|
|
85
|
+
// it — say so honestly and run NOTHING. (The discriminant narrowing is
|
|
86
|
+
// what lets `updateGuidance` accept `install` here.)
|
|
87
|
+
const guidance = updateGuidance(install);
|
|
88
|
+
const data = {
|
|
89
|
+
pm,
|
|
90
|
+
kind,
|
|
91
|
+
current,
|
|
92
|
+
latest: registry.latest,
|
|
93
|
+
guidance,
|
|
94
|
+
offline: false,
|
|
95
|
+
alreadyLatest: false,
|
|
96
|
+
executed: false,
|
|
97
|
+
};
|
|
98
|
+
return gen(function* () {
|
|
99
|
+
yield* $(info(`${current} → ${registry.latest}`));
|
|
100
|
+
yield* $(warn(`No automatic upgrade for this install: ${guidance}`));
|
|
101
|
+
return data;
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
const updateCommand = pmUpdateCommand(install, PRAGMA_PACKAGE);
|
|
70
105
|
const data = {
|
|
71
106
|
pm,
|
|
107
|
+
kind,
|
|
72
108
|
current,
|
|
73
109
|
latest: registry.latest,
|
|
74
|
-
command,
|
|
110
|
+
command: updateCommand,
|
|
75
111
|
offline: false,
|
|
76
112
|
alreadyLatest: false,
|
|
77
113
|
executed: true,
|
|
78
114
|
};
|
|
79
|
-
const parts =
|
|
115
|
+
const parts = updateCommand.split(" ");
|
|
80
116
|
const bin = parts[0] ?? "npm";
|
|
81
117
|
const args = parts.slice(1);
|
|
82
118
|
// Guard the spawn: an absent package manager (`bin` not on PATH) REJECTS the
|
|
@@ -92,7 +128,7 @@ export async function runUpgrade(rt) {
|
|
|
92
128
|
// so inspect the result: a failed install (e.g. EACCES on a global
|
|
93
129
|
// `npm i -g`) must fail loudly, not report a silent success.
|
|
94
130
|
const result = yield* $(exec(bin, args, rt.cwd));
|
|
95
|
-
assertExecOk(
|
|
131
|
+
assertExecOk(updateCommand, result);
|
|
96
132
|
return data;
|
|
97
133
|
}));
|
|
98
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runUpgrade.js","sourceRoot":"","sources":["../../../../src/capabilities/upgrade/runUpgrade.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"runUpgrade.js","sourceRoot":"","sources":["../../../../src/capabilities/upgrade/runUpgrade.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,9 +22,14 @@ export const upgradeFormatters = {
|
|
|
22
22
|
if (data.executed) {
|
|
23
23
|
lines.push(`Ran: ${chalk.cyan(data.command)}`, "", `Updated to ${data.latest}.`);
|
|
24
24
|
}
|
|
25
|
-
else {
|
|
25
|
+
else if (data.command) {
|
|
26
26
|
lines.push(`Run: ${chalk.cyan(data.command)}`);
|
|
27
27
|
}
|
|
28
|
+
else {
|
|
29
|
+
// No sanctioned command for this install (linked / ephemeral /
|
|
30
|
+
// workspace / unknown) — the guidance sentence is the whole story.
|
|
31
|
+
lines.push(`No automatic upgrade for this install: ${data.guidance}`);
|
|
32
|
+
}
|
|
28
33
|
return lines.join("\n");
|
|
29
34
|
},
|
|
30
35
|
llm(data) {
|
|
@@ -35,7 +40,10 @@ export const upgradeFormatters = {
|
|
|
35
40
|
}
|
|
36
41
|
if (data.executed)
|
|
37
42
|
return `Upgraded: ${data.current} → ${data.latest}`;
|
|
38
|
-
|
|
43
|
+
if (data.command) {
|
|
44
|
+
return `Update available: ${data.current} → ${data.latest} (\`${data.command}\`)`;
|
|
45
|
+
}
|
|
46
|
+
return `Update available: ${data.current} → ${data.latest} — ${data.guidance}`;
|
|
39
47
|
},
|
|
40
48
|
json(data) {
|
|
41
49
|
return JSON.stringify(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.render.js","sourceRoot":"","sources":["../../../../src/capabilities/upgrade/upgrade.render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,MAAM,CAAC,MAAM,iBAAiB,GAA4B;IACxD,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,CAAC,kBAAkB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,kCAAkC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,IAAI,CACR,EAAE,EACF,GAAG,cAAc,KAAK,IAAI,CAAC,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAC1E,EAAE,CACH,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CACR,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAClC,EAAE,EACF,cAAc,IAAI,CAAC,MAAM,GAAG,CAC7B,CAAC;QACJ,CAAC;aAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade.render.js","sourceRoot":"","sources":["../../../../src/capabilities/upgrade/upgrade.render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,MAAM,CAAC,MAAM,iBAAiB,GAA4B;IACxD,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,CAAC,kBAAkB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,kCAAkC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,IAAI,CACR,EAAE,EACF,GAAG,cAAc,KAAK,IAAI,CAAC,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAC1E,EAAE,CACH,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CACR,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAClC,EAAE,EACF,cAAc,IAAI,CAAC,MAAM,GAAG,CAC7B,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,+DAA+D;YAC/D,mEAAmE;YACnE,KAAK,CAAC,IAAI,CAAC,0CAA0C,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,GAAG,CAAC,IAAI;QACN,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,kDAAkD,CAAC;QAC5E,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,kCAAkC,IAAI,CAAC,OAAO,IAAI,CAAC;QAC5D,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,aAAa,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACvE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,qBAAqB,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,OAAO,KAAK,CAAC;QACpF,CAAC;QACD,OAAO,qBAAqB,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjF,CAAC;IAED,IAAI,CAAC,IAAI;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC"}
|
package/dist/src/constants.js
CHANGED
|
@@ -33,6 +33,12 @@ const PROGRAM_DESCRIPTION = identity.help;
|
|
|
33
33
|
const ISSUES_URL = identity.issuesUrl;
|
|
34
34
|
/** Semver version string read from package.json. */
|
|
35
35
|
const VERSION = pkg.version;
|
|
36
|
+
/**
|
|
37
|
+
* The Node.js range this distribution supports, read from `engines.node` in
|
|
38
|
+
* package.json so the manifest stays the single statement of the floor. The
|
|
39
|
+
* doctor check quotes it, and `isSupportedNodeVersion` is pinned to it by test.
|
|
40
|
+
*/
|
|
41
|
+
const SUPPORTED_NODE_RANGE = pkg.engines.node;
|
|
36
42
|
/**
|
|
37
43
|
* The project config filename the walker looks for and every surface that
|
|
38
44
|
* quotes it — diagnostics, the onboarding note, the generated reference, the
|
|
@@ -57,7 +63,12 @@ const OUTPUT_FORMATS = ["plain", "llm", "json"];
|
|
|
57
63
|
/** Default detail level when neither flag, config, nor spec pins one. */
|
|
58
64
|
const DEFAULT_DETAIL_LEVEL = "standard";
|
|
59
65
|
/**
|
|
60
|
-
* The wordmark `--help` opens with, as raw ASCII-art lines.
|
|
66
|
+
* The wordmark `--help` opens with FOR A HUMAN READER, as raw ASCII-art lines.
|
|
67
|
+
*
|
|
68
|
+
* Whether it prints is decided at the one emit site (`rootHelp.ts`) from the
|
|
69
|
+
* invocation's global flags: a captured run (`--format llm`/`json`, including
|
|
70
|
+
* the `llm` a non-interactive stdout infers) gets the bare header instead. This
|
|
71
|
+
* constant is the ART, not the policy.
|
|
61
72
|
*
|
|
62
73
|
* PROJECTED from the distribution config, exactly like {@link BIN_NAME} and
|
|
63
74
|
* {@link PROGRAM_DESCRIPTION} — a wordmark spells a name, so it is identity, and
|
|
@@ -78,5 +89,5 @@ const DEFAULT_DETAIL_LEVEL = "standard";
|
|
|
78
89
|
// reading `identity` directly, so their literal types are untouched.
|
|
79
90
|
const declared = identity;
|
|
80
91
|
const PROGRAM_LOGO = declared.logo ?? [];
|
|
81
|
-
export { BIN_NAME, DEFAULT_DETAIL_LEVEL, DETAIL_LEVELS, ISSUES_URL, MCP_SERVER_NAME, OUTPUT_FORMATS, PROGRAM_DESCRIPTION, PROGRAM_LOGO, PROJECT_CONFIG_FILENAME, RECOVERY_CLI_PREFIX, VERSION, };
|
|
92
|
+
export { BIN_NAME, DEFAULT_DETAIL_LEVEL, DETAIL_LEVELS, ISSUES_URL, MCP_SERVER_NAME, OUTPUT_FORMATS, PROGRAM_DESCRIPTION, PROGRAM_LOGO, PROJECT_CONFIG_FILENAME, RECOVERY_CLI_PREFIX, SUPPORTED_NODE_RANGE, VERSION, };
|
|
82
93
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxD,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAoB,MAAM,0BAA0B,CAAC;AAE3E,mDAAmD;AACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC;AAEtC,iEAAiE;AACjE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC;AAE1C,qEAAqE;AACrE,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC;AAEtC,oDAAoD;AACpD,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC;AAEpC;;;;;;;GAOG;AACH,MAAM,uBAAuB,GAAG,GAAG,QAAQ,CAAC,IAAI,YAAY,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,mBAAmB,GAAG,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC;AAEhD,oFAAoF;AACpF,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AASzD,yEAAyE;AACzE,MAAM,oBAAoB,GAAgB,UAAU,CAAC;AAErD
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxD,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAoB,MAAM,0BAA0B,CAAC;AAE3E,mDAAmD;AACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC;AAEtC,iEAAiE;AACjE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC;AAE1C,qEAAqE;AACrE,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC;AAEtC,oDAAoD;AACpD,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC;AAEpC;;;;GAIG;AACH,MAAM,oBAAoB,GAAW,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,uBAAuB,GAAG,GAAG,QAAQ,CAAC,IAAI,YAAY,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,mBAAmB,GAAG,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC;AAEhD,oFAAoF;AACpF,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AASzD,yEAAyE;AACzE,MAAM,oBAAoB,GAAgB,UAAU,CAAC;AAErD;;;;;;;;;;;;;;;;;GAiBG;AACH,sEAAsE;AACtE,6EAA6E;AAC7E,+EAA+E;AAC/E,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAC5E,qEAAqE;AACrE,MAAM,QAAQ,GAAc,QAAQ,CAAC;AAErC,MAAM,YAAY,GAAsB,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;AAG5D,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,OAAO,GACR,CAAC"}
|
package/dist/src/kernel/index.js
CHANGED
|
@@ -10,8 +10,16 @@
|
|
|
10
10
|
* is high: it must be a declaration the kernel makes about itself rather than
|
|
11
11
|
* a step in any one pipeline.
|
|
12
12
|
*
|
|
13
|
-
* Today that is the declared vocabulary
|
|
14
|
-
*
|
|
13
|
+
* Today that is the declared vocabulary and the interactivity vocabulary. The
|
|
14
|
+
* latter (`interactivity.ts`) names the questions about attended streams — is
|
|
15
|
+
* stdout captured, may we prompt, may we color (that third one lives with the
|
|
16
|
+
* styler, for the dependency reason its docblock records) — which render,
|
|
17
|
+
* dispatch and flag parsing each used to answer with their own inline probe.
|
|
18
|
+
* They are different questions over different streams, and the names are what
|
|
19
|
+
* keeps them from being flattened into one flag.
|
|
20
|
+
*
|
|
21
|
+
* The declared vocabulary is the distribution's mapping from the roles the
|
|
22
|
+
* CLI knows (a prompt, a resource) onto the RDF terms that actually
|
|
15
23
|
* carry them in the active graph. It is parsed once at module load and read
|
|
16
24
|
* from the prompt capability, the MCP prompt source, and the pack index
|
|
17
25
|
* builder, none of which owns it and any of which would otherwise hardcode
|
|
@@ -21,5 +29,6 @@
|
|
|
21
29
|
* is reviewed data consumed by its own test and by nothing else at runtime;
|
|
22
30
|
* exporting it here would advertise a runtime API the gate does not have.
|
|
23
31
|
*/
|
|
32
|
+
export { canPrompt, stdoutIsCaptured } from "./interactivity.js";
|
|
24
33
|
export { VOCABULARY } from "./vocabulary.js";
|
|
25
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kernel/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kernel/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|