@memberjunction/cli 6.1.4 → 6.2.0-edge.1
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 +18 -7
- package/dist/baseline/cli-helpers.d.ts +4 -0
- package/dist/baseline/cli-helpers.d.ts.map +1 -1
- package/dist/baseline/cli-helpers.js +18 -10
- package/dist/baseline/cli-helpers.js.map +1 -1
- package/dist/baseline/comparator.d.ts +5 -3
- package/dist/baseline/comparator.d.ts.map +1 -1
- package/dist/baseline/comparator.js +142 -138
- package/dist/baseline/comparator.js.map +1 -1
- package/dist/baseline/connection.d.ts +8 -6
- package/dist/baseline/connection.d.ts.map +1 -1
- package/dist/baseline/connection.js +16 -12
- package/dist/baseline/connection.js.map +1 -1
- package/dist/baseline/data-dumper.d.ts +7 -3
- package/dist/baseline/data-dumper.d.ts.map +1 -1
- package/dist/baseline/data-dumper.js +33 -25
- package/dist/baseline/data-dumper.js.map +1 -1
- package/dist/baseline/emitter.d.ts +5 -3
- package/dist/baseline/emitter.d.ts.map +1 -1
- package/dist/baseline/emitter.js +114 -110
- package/dist/baseline/emitter.js.map +1 -1
- package/dist/baseline/index.d.ts +7 -7
- package/dist/baseline/index.d.ts.map +1 -1
- package/dist/baseline/index.js +7 -7
- package/dist/baseline/index.js.map +1 -1
- package/dist/baseline/introspector-mssql.d.ts +2 -0
- package/dist/baseline/introspector-mssql.d.ts.map +1 -1
- package/dist/baseline/introspector-mssql.js +68 -64
- package/dist/baseline/introspector-mssql.js.map +1 -1
- package/dist/baseline/introspector-postgres.d.ts +2 -0
- package/dist/baseline/introspector-postgres.d.ts.map +1 -1
- package/dist/baseline/introspector-postgres.js +34 -30
- package/dist/baseline/introspector-postgres.js.map +1 -1
- package/dist/baseline/report.d.ts +4 -0
- package/dist/baseline/report.d.ts.map +1 -1
- package/dist/baseline/report.js +25 -17
- package/dist/baseline/report.js.map +1 -1
- package/dist/baseline/types.d.ts +71 -71
- package/dist/baseline/util.d.ts +54 -6
- package/dist/baseline/util.d.ts.map +1 -1
- package/dist/baseline/util.js +112 -36
- package/dist/baseline/util.js.map +1 -1
- package/dist/commands/agent/init.d.ts +23 -0
- package/dist/commands/agent/init.d.ts.map +1 -0
- package/dist/commands/agent/init.js +222 -0
- package/dist/commands/agent/init.js.map +1 -0
- package/dist/commands/ai/actions/list.js +7 -7
- package/dist/commands/ai/actions/run.js +7 -7
- package/dist/commands/ai/agents/list.js +7 -7
- package/dist/commands/ai/agents/run.js +9 -9
- package/dist/commands/ai/audit/agent-run.js +7 -7
- package/dist/commands/ai/prompts/run.js +7 -7
- package/dist/commands/app/check-updates.js +5 -5
- package/dist/commands/app/disable.js +2 -2
- package/dist/commands/app/enable.js +2 -2
- package/dist/commands/app/info.js +2 -2
- package/dist/commands/app/install.js +2 -2
- package/dist/commands/app/list.js +2 -2
- package/dist/commands/app/remove.js +4 -4
- package/dist/commands/app/upgrade.js +2 -2
- package/dist/commands/artifacts/reclassify.js +2 -2
- package/dist/commands/baseline/build.js +31 -31
- package/dist/commands/baseline/build.js.map +1 -1
- package/dist/commands/baseline/compare.js +36 -36
- package/dist/commands/baseline/roundtrip.js +56 -54
- package/dist/commands/baseline/roundtrip.js.map +1 -1
- package/dist/commands/bundle/index.js +4 -4
- package/dist/commands/clean/index.js +3 -3
- package/dist/commands/codegen/manifest.d.ts +2 -0
- package/dist/commands/codegen/manifest.d.ts.map +1 -1
- package/dist/commands/codegen/manifest.js +8 -4
- package/dist/commands/codegen/manifest.js.map +1 -1
- package/dist/commands/dev/workspace/index.d.ts +2 -0
- package/dist/commands/dev/workspace/index.d.ts.map +1 -1
- package/dist/commands/dev/workspace/index.js +8 -4
- package/dist/commands/dev/workspace/index.js.map +1 -1
- package/dist/commands/doctor/index.d.ts +6 -4
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +43 -18
- package/dist/commands/doctor/index.js.map +1 -1
- package/dist/commands/install/claude.d.ts +2 -0
- package/dist/commands/install/claude.d.ts.map +1 -1
- package/dist/commands/install/claude.js +11 -7
- package/dist/commands/install/claude.js.map +1 -1
- package/dist/commands/install/index.js +3 -3
- package/dist/commands/migrate/convert.d.ts +21 -0
- package/dist/commands/migrate/convert.d.ts.map +1 -1
- package/dist/commands/migrate/convert.js +22 -6
- package/dist/commands/migrate/convert.js.map +1 -1
- package/dist/commands/migrate/create.js +2 -2
- package/dist/commands/migrate/index.js +16 -16
- package/dist/commands/sync/file-reset.js +2 -2
- package/dist/commands/sync/init.js +3 -3
- package/dist/commands/test/compare.js +6 -6
- package/dist/commands/test/history.js +6 -6
- package/dist/commands/test/list.js +6 -6
- package/dist/commands/test/regression/build.js +5 -5
- package/dist/commands/test/regression/compare.js +3 -3
- package/dist/commands/test/regression/down.js +4 -4
- package/dist/commands/test/regression/export.js +4 -4
- package/dist/commands/test/regression/gen-forms.js +3 -3
- package/dist/commands/test/regression/remote.js +10 -10
- package/dist/commands/test/regression/up.js +6 -6
- package/dist/commands/test/run.js +6 -6
- package/dist/commands/test/scripts.d.ts +13 -0
- package/dist/commands/test/scripts.d.ts.map +1 -0
- package/dist/commands/test/scripts.js +50 -0
- package/dist/commands/test/scripts.js.map +1 -0
- package/dist/commands/test/suite.js +6 -6
- package/dist/commands/test/validate.js +6 -6
- package/dist/commands/translate-sql/index.js +25 -25
- package/dist/commands/update/claude.js +7 -7
- package/dist/commands/usage.js +4 -4
- package/dist/config.d.ts +175 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +23 -9
- package/dist/config.js.map +1 -1
- package/dist/hooks/postrun.js +2 -2
- package/dist/hooks/prerun.js +2 -2
- package/dist/hooks/prerun.js.map +1 -1
- package/dist/init-templates/citizen-builder/.agents/skills/new-agent/SKILL.md +66 -0
- package/dist/init-templates/citizen-builder/.agents/skills/package-agent/SKILL.md +69 -0
- package/dist/init-templates/citizen-builder/.agents/skills/test-agent/SKILL.md +61 -0
- package/dist/init-templates/citizen-builder/.claude/skills/new-agent/SKILL.md +66 -0
- package/dist/init-templates/citizen-builder/.claude/skills/package-agent/SKILL.md +69 -0
- package/dist/init-templates/citizen-builder/.claude/skills/test-agent/SKILL.md +61 -0
- package/dist/init-templates/citizen-builder/.env.example +30 -0
- package/dist/init-templates/citizen-builder/AGENTS.md +331 -0
- package/dist/init-templates/citizen-builder/README.md +259 -0
- package/dist/init-templates/citizen-builder/docker/Dockerfile +16 -0
- package/dist/init-templates/citizen-builder/docker-compose.yml +59 -0
- package/dist/init-templates/citizen-builder/docs/ENTERPRISE_ORG_SETUP.md +73 -0
- package/dist/init-templates/citizen-builder/docs/PROMOTION_GUIDE.md +70 -0
- package/dist/init-templates/citizen-builder/metadata/.mj-sync.json +7 -0
- package/dist/init-templates/citizen-builder/metadata/agents/.customer-insight-agent.json +55 -0
- package/dist/init-templates/citizen-builder/metadata/agents/.mj-sync.json +45 -0
- package/dist/init-templates/citizen-builder/metadata/prompts/.customer-insight-prompt.json +15 -0
- package/dist/init-templates/citizen-builder/metadata/prompts/.mj-sync.json +45 -0
- package/dist/init-templates/citizen-builder/metadata/prompts/templates/customer-insight.template.md +18 -0
- package/dist/init-templates/citizen-builder/scripts/bootstrap.sh +47 -0
- package/dist/init-templates/citizen-builder/scripts/docker-entrypoint.sh +184 -0
- package/dist/init-templates/citizen-builder/scripts/generate-capabilities.sh +74 -0
- package/dist/init-templates/citizen-builder/scripts/query-run-history.sh +34 -0
- package/dist/init-templates/citizen-builder/scripts/sync-metadata.sh +14 -0
- package/dist/init-templates/remote-mj/README.md +4 -4
- package/dist/lib/claude-pack/ManagedBlockEditor.d.ts +6 -0
- package/dist/lib/claude-pack/ManagedBlockEditor.d.ts.map +1 -1
- package/dist/lib/claude-pack/ManagedBlockEditor.js +18 -6
- package/dist/lib/claude-pack/ManagedBlockEditor.js.map +1 -1
- package/dist/lib/claude-pack/PackFetcher.d.ts +8 -3
- package/dist/lib/claude-pack/PackFetcher.d.ts.map +1 -1
- package/dist/lib/claude-pack/PackFetcher.js +26 -18
- package/dist/lib/claude-pack/PackFetcher.js.map +1 -1
- package/dist/lib/claude-pack/PackInstaller.d.ts +6 -2
- package/dist/lib/claude-pack/PackInstaller.d.ts.map +1 -1
- package/dist/lib/claude-pack/PackInstaller.js +19 -13
- package/dist/lib/claude-pack/PackInstaller.js.map +1 -1
- package/dist/lib/claude-pack/PackMerger.d.ts +8 -0
- package/dist/lib/claude-pack/PackMerger.d.ts.map +1 -1
- package/dist/lib/claude-pack/PackMerger.js +63 -57
- package/dist/lib/claude-pack/PackMerger.js.map +1 -1
- package/dist/lib/claude-pack/PackOutputFormatter.d.ts +4 -0
- package/dist/lib/claude-pack/PackOutputFormatter.d.ts.map +1 -1
- package/dist/lib/claude-pack/PackOutputFormatter.js +10 -2
- package/dist/lib/claude-pack/PackOutputFormatter.js.map +1 -1
- package/dist/lib/claude-pack/PackPaths.d.ts +12 -0
- package/dist/lib/claude-pack/PackPaths.d.ts.map +1 -1
- package/dist/lib/claude-pack/PackPaths.js +31 -7
- package/dist/lib/claude-pack/PackPaths.js.map +1 -1
- package/dist/lib/claude-pack/PackTypes.d.ts +18 -14
- package/dist/lib/claude-pack/PackTypes.d.ts.map +1 -1
- package/dist/lib/claude-pack/PackTypes.js +11 -3
- package/dist/lib/claude-pack/PackTypes.js.map +1 -1
- package/dist/lib/claude-pack/SettingsMerger.d.ts +10 -0
- package/dist/lib/claude-pack/SettingsMerger.d.ts.map +1 -1
- package/dist/lib/claude-pack/SettingsMerger.js +36 -16
- package/dist/lib/claude-pack/SettingsMerger.js.map +1 -1
- package/dist/lib/cli-plugins.d.ts +2 -0
- package/dist/lib/cli-plugins.d.ts.map +1 -1
- package/dist/lib/cli-plugins.js +8 -4
- package/dist/lib/cli-plugins.js.map +1 -1
- package/dist/lib/db-preflight.d.ts +2 -0
- package/dist/lib/db-preflight.d.ts.map +1 -1
- package/dist/lib/db-preflight.js +12 -8
- package/dist/lib/db-preflight.js.map +1 -1
- package/dist/lib/db-version.d.ts +2 -0
- package/dist/lib/db-version.d.ts.map +1 -1
- package/dist/lib/db-version.js +5 -1
- package/dist/lib/db-version.js.map +1 -1
- package/dist/lib/derived-usage.d.ts +14 -8
- package/dist/lib/derived-usage.d.ts.map +1 -1
- package/dist/lib/derived-usage.js +30 -18
- package/dist/lib/derived-usage.js.map +1 -1
- package/dist/lib/domain-profiles.d.ts +4 -2
- package/dist/lib/domain-profiles.d.ts.map +1 -1
- package/dist/lib/domain-profiles.js +53 -49
- package/dist/lib/domain-profiles.js.map +1 -1
- package/dist/lib/domain-usage-command.js +4 -4
- package/dist/lib/dynamic-packages.d.ts +4 -2
- package/dist/lib/dynamic-packages.d.ts.map +1 -1
- package/dist/lib/dynamic-packages.js +9 -5
- package/dist/lib/dynamic-packages.js.map +1 -1
- package/dist/lib/format-compat.d.ts +9 -7
- package/dist/lib/format-compat.d.ts.map +1 -1
- package/dist/lib/format-compat.js +12 -8
- package/dist/lib/format-compat.js.map +1 -1
- package/dist/lib/interactive-guard.d.ts +16 -0
- package/dist/lib/interactive-guard.d.ts.map +1 -1
- package/dist/lib/interactive-guard.js +18 -6
- package/dist/lib/interactive-guard.js.map +1 -1
- package/dist/lib/migration-fetch.d.ts +16 -4
- package/dist/lib/migration-fetch.d.ts.map +1 -1
- package/dist/lib/migration-fetch.js +30 -18
- package/dist/lib/migration-fetch.js.map +1 -1
- package/dist/lib/regression/docker-helpers.d.ts +24 -0
- package/dist/lib/regression/docker-helpers.d.ts.map +1 -1
- package/dist/lib/regression/docker-helpers.js +46 -10
- package/dist/lib/regression/docker-helpers.js.map +1 -1
- package/dist/lib/usage-render.d.ts +6 -0
- package/dist/lib/usage-render.d.ts.map +1 -1
- package/dist/lib/usage-render.js +15 -3
- package/dist/lib/usage-render.js.map +1 -1
- package/dist/translate-sql/groundTruth.d.ts +3 -3
- package/dist/translate-sql/groundTruth.js +40 -40
- package/dist/translate-sql/reportGenerator.d.ts +7 -7
- package/dist/translate-sql/reportGenerator.js +18 -18
- package/dist/translate-sql/ruleTranslator.d.ts +3 -3
- package/dist/translate-sql/ruleTranslator.js +8 -8
- package/dist/translate-sql/ruleTranslator.js.map +1 -1
- package/dist/utils/open-app-context.d.ts +21 -0
- package/dist/utils/open-app-context.d.ts.map +1 -1
- package/dist/utils/open-app-context.js +26 -10
- package/dist/utils/open-app-context.js.map +1 -1
- package/oclif.manifest.json +1216 -1058
- package/package.json +22 -22
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { createHash } from 'node:crypto';
|
|
16
16
|
import https from 'node:https';
|
|
17
|
-
import {
|
|
17
|
+
import { BuildRemoteUrlPrefix } from './PackPaths.js';
|
|
18
18
|
/**
|
|
19
19
|
* Real production fetcher using `node:https`.
|
|
20
20
|
*
|
|
@@ -23,12 +23,12 @@ import { buildRemoteUrlPrefix } from './PackPaths.js';
|
|
|
23
23
|
* (`Buffer`) doesn't cleanly assign to `Uint8Array` in the strict @types/node
|
|
24
24
|
* generics that ship with v20+, even though Buffer extends Uint8Array.
|
|
25
25
|
*/
|
|
26
|
-
export const
|
|
26
|
+
export const RealHttpGet = (url) => new Promise((resolve, reject) => {
|
|
27
27
|
const req = https.get(url, (res) => {
|
|
28
28
|
const chunks = [];
|
|
29
29
|
res.on('data', (chunk) => chunks.push(chunk));
|
|
30
30
|
res.on('end', () => {
|
|
31
|
-
resolve({
|
|
31
|
+
resolve({ StatusCode: res.statusCode ?? 0, Body: concatBytes(chunks) });
|
|
32
32
|
});
|
|
33
33
|
res.on('error', reject);
|
|
34
34
|
});
|
|
@@ -37,6 +37,8 @@ export const realHttpGet = (url) => new Promise((resolve, reject) => {
|
|
|
37
37
|
req.destroy(new Error(`Timed out after 30s fetching ${url}`));
|
|
38
38
|
});
|
|
39
39
|
});
|
|
40
|
+
/** @deprecated Use {@link RealHttpGet}. */
|
|
41
|
+
export const realHttpGet = RealHttpGet;
|
|
40
42
|
function concatBytes(chunks) {
|
|
41
43
|
const total = chunks.reduce((s, c) => s + c.byteLength, 0);
|
|
42
44
|
const out = new Uint8Array(total);
|
|
@@ -59,7 +61,9 @@ export class PackFetchError extends Error {
|
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
63
|
export class PackChecksumError extends Error {
|
|
62
|
-
constructor(message, path, expected,
|
|
64
|
+
constructor(message, path, expected, // case-violation-ok-legacy-back-compat: object literals are assigned to this class, so an accessor stub changes what they must supply
|
|
65
|
+
actual // case-violation-ok-legacy-back-compat: object literals are assigned to this class, so an accessor stub changes what they must supply
|
|
66
|
+
) {
|
|
63
67
|
super(message);
|
|
64
68
|
this.path = path;
|
|
65
69
|
this.expected = expected;
|
|
@@ -75,8 +79,8 @@ export class PackChecksumError extends Error {
|
|
|
75
79
|
* sha256 along the way. Falls back from a specific tag to `main` if the
|
|
76
80
|
* manifest 404s.
|
|
77
81
|
*/
|
|
78
|
-
export async function
|
|
79
|
-
const httpGet = opts.HttpGet ??
|
|
82
|
+
export async function FetchPack(opts) {
|
|
83
|
+
const httpGet = opts.HttpGet ?? RealHttpGet;
|
|
80
84
|
const requestedRef = opts.Ref ?? 'main';
|
|
81
85
|
const onProgress = opts.OnProgress ?? (() => { });
|
|
82
86
|
const { manifest, refUsed, baseUrl } = await fetchManifestWithFallback(opts.Major, requestedRef, httpGet, onProgress);
|
|
@@ -88,20 +92,24 @@ export async function fetchPack(opts) {
|
|
|
88
92
|
const url = baseUrl + entry.path;
|
|
89
93
|
onProgress(`fetching ${entry.path}`);
|
|
90
94
|
const res = await httpGet(url);
|
|
91
|
-
if (res.
|
|
92
|
-
throw new PackFetchError(`Failed to fetch ${entry.path}: HTTP ${res.
|
|
95
|
+
if (res.StatusCode !== 200) {
|
|
96
|
+
throw new PackFetchError(`Failed to fetch ${entry.path}: HTTP ${res.StatusCode}`, url, res.StatusCode);
|
|
93
97
|
}
|
|
94
|
-
verifyChecksum(entry, res.
|
|
95
|
-
files.set(entry.path, res.
|
|
98
|
+
verifyChecksum(entry, res.Body);
|
|
99
|
+
files.set(entry.path, res.Body);
|
|
96
100
|
}
|
|
97
101
|
return { Manifest: manifest, Files: files, RefUsed: refUsed, BaseUrl: baseUrl };
|
|
98
102
|
}
|
|
103
|
+
/** @deprecated Use {@link FetchPack}. */
|
|
104
|
+
export async function fetchPack(opts) {
|
|
105
|
+
return FetchPack(opts);
|
|
106
|
+
}
|
|
99
107
|
// ---------------------------------------------------------------------------
|
|
100
108
|
// Internals
|
|
101
109
|
// ---------------------------------------------------------------------------
|
|
102
110
|
async function fetchManifestWithFallback(major, requestedRef, httpGet, onProgress) {
|
|
103
111
|
const tryRef = async (ref) => {
|
|
104
|
-
const baseUrl =
|
|
112
|
+
const baseUrl = BuildRemoteUrlPrefix(major, ref);
|
|
105
113
|
const manifestUrl = baseUrl + '.claude/mj/MANIFEST.json';
|
|
106
114
|
onProgress(`fetching manifest from ref=${ref}`);
|
|
107
115
|
const res = await httpGet(manifestUrl);
|
|
@@ -109,9 +117,9 @@ async function fetchManifestWithFallback(major, requestedRef, httpGet, onProgres
|
|
|
109
117
|
};
|
|
110
118
|
// First attempt: requested ref
|
|
111
119
|
const first = await tryRef(requestedRef);
|
|
112
|
-
if (first.res.
|
|
120
|
+
if (first.res.StatusCode === 200) {
|
|
113
121
|
return {
|
|
114
|
-
manifest: parseManifest(first.res.
|
|
122
|
+
manifest: parseManifest(first.res.Body, first.manifestUrl),
|
|
115
123
|
refUsed: requestedRef,
|
|
116
124
|
baseUrl: first.baseUrl,
|
|
117
125
|
};
|
|
@@ -120,19 +128,19 @@ async function fetchManifestWithFallback(major, requestedRef, httpGet, onProgres
|
|
|
120
128
|
// Other status codes (5xx, network errors) propagate immediately —
|
|
121
129
|
// fallback is for "this tag doesn't have the pack yet", not for "the
|
|
122
130
|
// network is broken".
|
|
123
|
-
if (first.res.
|
|
131
|
+
if (first.res.StatusCode === 404 && requestedRef !== 'main') {
|
|
124
132
|
onProgress(`ref ${requestedRef} 404; falling back to main`);
|
|
125
133
|
const second = await tryRef('main');
|
|
126
|
-
if (second.res.
|
|
134
|
+
if (second.res.StatusCode === 200) {
|
|
127
135
|
return {
|
|
128
|
-
manifest: parseManifest(second.res.
|
|
136
|
+
manifest: parseManifest(second.res.Body, second.manifestUrl),
|
|
129
137
|
refUsed: 'main',
|
|
130
138
|
baseUrl: second.baseUrl,
|
|
131
139
|
};
|
|
132
140
|
}
|
|
133
|
-
throw new PackFetchError(`Failed to fetch manifest from both ${requestedRef} and main (HTTP ${second.res.
|
|
141
|
+
throw new PackFetchError(`Failed to fetch manifest from both ${requestedRef} and main (HTTP ${second.res.StatusCode})`, second.manifestUrl, second.res.StatusCode);
|
|
134
142
|
}
|
|
135
|
-
throw new PackFetchError(`Failed to fetch manifest from ${requestedRef}: HTTP ${first.res.
|
|
143
|
+
throw new PackFetchError(`Failed to fetch manifest from ${requestedRef}: HTTP ${first.res.StatusCode}`, first.manifestUrl, first.res.StatusCode);
|
|
136
144
|
}
|
|
137
145
|
function parseManifest(body, url) {
|
|
138
146
|
let raw;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackFetcher.js","sourceRoot":"","sources":["../../../src/lib/claude-pack/PackFetcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAoBtD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAe,CAAC,GAAG,EAAE,EAAE,CAC3C,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACf,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxB,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE;QACxB,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEP,SAAS,WAAW,CAAC,MAA6B;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACnB,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,OAAO,cAAe,SAAQ,KAAK;IACrC,YAAY,OAAe,EAAS,GAAY,EAAS,UAAmB;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC;QADiB,QAAG,GAAH,GAAG,CAAS;QAAS,eAAU,GAAV,UAAU,CAAS;QAExE,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IACjC,CAAC;CACJ;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACxC,YACI,OAAe,EACR,IAAY,EACZ,QAAgB,
|
|
1
|
+
{"version":3,"file":"PackFetcher.js","sourceRoot":"","sources":["../../../src/lib/claude-pack/PackFetcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAoBtD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAe,CAAC,GAAG,EAAE,EAAE,CAC3C,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACf,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxB,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE;QACxB,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEP,2CAA2C;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAe,WAAW,CAAC;AAEnD,SAAS,WAAW,CAAC,MAA6B;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACnB,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,OAAO,cAAe,SAAQ,KAAK;IACrC,YAAY,OAAe,EAAS,GAAY,EAAS,UAAmB;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC;QADiB,QAAG,GAAH,GAAG,CAAS;QAAS,eAAU,GAAV,UAAU,CAAS;QAExE,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IACjC,CAAC;CACJ;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACxC,YACI,OAAe,EACR,IAAY,EACZ,QAAgB,EAAG,sIAAsI;IACzJ,MAAc,CAAE,sIAAsI;;QAE7J,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAQ;QAGrB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IACpC,CAAC;CACJ;AAwCD,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAsB;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC;IAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEjD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,yBAAyB,CAClE,IAAI,CAAC,KAAK,EACV,YAAY,EACZ,OAAO,EACP,UAAU,CACb,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC5C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACpF,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;QACjC,UAAU,CAAC,YAAY,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YACzB,MAAM,IAAI,cAAc,CACpB,mBAAmB,KAAK,CAAC,IAAI,UAAU,GAAG,CAAC,UAAU,EAAE,EACvD,GAAG,EACH,GAAG,CAAC,UAAU,CACjB,CAAC;QACN,CAAC;QACD,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACpF,CAAC;AAED,yCAAyC;AACzC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAsB;IAClD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,KAAK,UAAU,yBAAyB,CACpC,KAAa,EACb,YAAoB,EACpB,OAAmB,EACnB,UAA+B;IAE/B,MAAM,MAAM,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,OAAO,GAAG,0BAA0B,CAAC;QACzD,UAAU,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;QACvC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IACzC,CAAC,CAAC;IAEF,+BAA+B;IAC/B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;QAC/B,OAAO;YACH,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;YAC1D,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,KAAK,CAAC,OAAO;SACzB,CAAC;IACN,CAAC;IAED,4EAA4E;IAC5E,mEAAmE;IACnE,qEAAqE;IACrE,sBAAsB;IACtB,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QAC1D,UAAU,CAAC,OAAO,YAAY,4BAA4B,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAChC,OAAO;gBACH,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC;gBAC5D,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,MAAM,CAAC,OAAO;aAC1B,CAAC;QACN,CAAC;QACD,MAAM,IAAI,cAAc,CACpB,sCAAsC,YAAY,mBAAmB,MAAM,CAAC,GAAG,CAAC,UAAU,GAAG,EAC7F,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,GAAG,CAAC,UAAU,CACxB,CAAC;IACN,CAAC;IAED,MAAM,IAAI,cAAc,CACpB,iCAAiC,YAAY,UAAU,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAC7E,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,GAAG,CAAC,UAAU,CACvB,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,IAAgB,EAAE,GAAW;IAChD,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,cAAc,CACpB,eAAe,GAAG,uBAAwB,GAAa,CAAC,OAAO,EAAE,EACjE,GAAG,CACN,CAAC;IACN,CAAC;IACD,IACI,CAAC,GAAG;QACJ,OAAO,GAAG,KAAK,QAAQ;QACvB,OAAQ,GAAgB,CAAC,WAAW,KAAK,QAAQ;QACjD,OAAQ,GAAgB,CAAC,OAAO,KAAK,QAAQ;QAC7C,CAAC,KAAK,CAAC,OAAO,CAAE,GAAgB,CAAC,KAAK,CAAC,EACzC,CAAC;QACC,MAAM,IAAI,cAAc,CAAC,eAAe,GAAG,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAe,CAAC;AAC3B,CAAC;AAED,SAAS,cAAc,CAAC,KAAoB,EAAE,IAAgB;IAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,iBAAiB,CACvB,yBAAyB,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,MAAM,SAAS,MAAM,EAAE,EAC9E,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,MAAM,EACZ,MAAM,CACT,CAAC;IACN,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,iBAAiB,CACvB,qBAAqB,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,KAAK,eAAe,IAAI,CAAC,MAAM,EAAE,EACpF,KAAK,CAAC,IAAI,EACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EACnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CACtB,CAAC;IACN,CAAC;AACL,CAAC"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* @see plans/claude-install-pack.md §6.3, §6.5, §7.4, §7.5
|
|
13
13
|
*/
|
|
14
14
|
import { type HttpGetter } from './PackFetcher.js';
|
|
15
|
-
import { buildRemoteUrlPrefix } from './PackPaths.js';
|
|
15
|
+
import { BuildRemoteUrlPrefix, buildRemoteUrlPrefix } from './PackPaths.js';
|
|
16
16
|
import { type InstallResult } from './PackTypes.js';
|
|
17
17
|
export interface InstallPackOptions {
|
|
18
18
|
/** Absolute or relative target directory (default: process.cwd()). */
|
|
@@ -56,7 +56,11 @@ export interface InstallPackOptions {
|
|
|
56
56
|
/** Progress callback for verbose mode. */
|
|
57
57
|
OnProgress?: (message: string) => void;
|
|
58
58
|
}
|
|
59
|
+
export declare function InstallPack(opts: InstallPackOptions): Promise<InstallResult>;
|
|
60
|
+
/** @deprecated Use {@link InstallPack}. */
|
|
59
61
|
export declare function installPack(opts: InstallPackOptions): Promise<InstallResult>;
|
|
60
62
|
/** Re-export the default raw URL prefix for tests / verbose logging. */
|
|
61
|
-
export {
|
|
63
|
+
export { BuildRemoteUrlPrefix,
|
|
64
|
+
/** @deprecated Use {@link BuildRemoteUrlPrefix} instead. */
|
|
65
|
+
buildRemoteUrlPrefix, };
|
|
62
66
|
//# sourceMappingURL=PackInstaller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackInstaller.d.ts","sourceRoot":"","sources":["../../../src/lib/claude-pack/PackInstaller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAa,KAAK,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EACH,oBAAoB,EAIvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGH,KAAK,aAAa,EAErB,MAAM,gBAAgB,CAAC;AAMxB,MAAM,WAAW,kBAAkB;IAC/B,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4CAA4C;IAC5C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0CAA0C;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mEAAmE;IACnE,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAMD,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CA2ElF;AA8ID,wEAAwE;AACxE,OAAO,
|
|
1
|
+
{"version":3,"file":"PackInstaller.d.ts","sourceRoot":"","sources":["../../../src/lib/claude-pack/PackInstaller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAa,KAAK,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EAIvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGH,KAAK,aAAa,EAErB,MAAM,gBAAgB,CAAC;AAMxB,MAAM,WAAW,kBAAkB;IAC/B,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4CAA4C;IAC5C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0CAA0C;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mEAAmE;IACnE,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAMD,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CA2ElF;AAED,2CAA2C;AAC3C,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAElF;AA8ID,wEAAwE;AACxE,OAAO,EACH,oBAAoB;AACpB,4DAA4D;AAC5D,oBAAoB,GACvB,CAAC"}
|
|
@@ -14,17 +14,17 @@
|
|
|
14
14
|
import { createHash } from 'node:crypto';
|
|
15
15
|
import { existsSync, readFileSync } from 'node:fs';
|
|
16
16
|
import path from 'node:path';
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import { buildRemoteUrlPrefix,
|
|
20
|
-
import {
|
|
17
|
+
import { FetchPack, PackFetchError } from './PackFetcher.js';
|
|
18
|
+
import { MergePack } from './PackMerger.js';
|
|
19
|
+
import { BuildRemoteUrlPrefix, buildRemoteUrlPrefix, DetectMJMajor, DetectMJVersionString, ResolveLocalPackRoot, } from './PackPaths.js';
|
|
20
|
+
import { EmptyActionLog, } from './PackTypes.js';
|
|
21
21
|
// ---------------------------------------------------------------------------
|
|
22
22
|
// Main entry point
|
|
23
23
|
// ---------------------------------------------------------------------------
|
|
24
|
-
export async function
|
|
24
|
+
export async function InstallPack(opts) {
|
|
25
25
|
const targetDir = path.resolve(opts.TargetDir);
|
|
26
26
|
const onProgress = opts.OnProgress ?? (() => { });
|
|
27
|
-
const major = opts.Major ??
|
|
27
|
+
const major = opts.Major ?? DetectMJMajor(targetDir);
|
|
28
28
|
if (!major) {
|
|
29
29
|
return errorResult(null, 'Could not detect MJ major version (no @memberjunction/* in package.json). ' +
|
|
30
30
|
'Pass --major <N> to override.');
|
|
@@ -61,7 +61,7 @@ export async function installPack(opts) {
|
|
|
61
61
|
const manifestBytes = new TextEncoder().encode(JSON.stringify(manifest, null, 2) + '\n');
|
|
62
62
|
files.set('.claude/mj/MANIFEST.json', manifestBytes);
|
|
63
63
|
onProgress('merging pack into target');
|
|
64
|
-
const { Actions, Warnings } =
|
|
64
|
+
const { Actions, Warnings } = MergePack({
|
|
65
65
|
TargetDir: targetDir,
|
|
66
66
|
PackFiles: files,
|
|
67
67
|
Manifest: manifest,
|
|
@@ -82,19 +82,23 @@ export async function installPack(opts) {
|
|
|
82
82
|
notes: [],
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
|
+
/** @deprecated Use {@link InstallPack}. */
|
|
86
|
+
export async function installPack(opts) {
|
|
87
|
+
return InstallPack(opts);
|
|
88
|
+
}
|
|
85
89
|
// ---------------------------------------------------------------------------
|
|
86
90
|
// Source resolution
|
|
87
91
|
// ---------------------------------------------------------------------------
|
|
88
92
|
async function resolvePack(major, opts, onProgress) {
|
|
89
93
|
if (opts.FromPath) {
|
|
90
|
-
const localRoot =
|
|
94
|
+
const localRoot = ResolveLocalPackRoot(opts.FromPath, major);
|
|
91
95
|
if (!localRoot) {
|
|
92
96
|
throw new Error(`Could not find a Claude pack at --from path: ${opts.FromPath}. ` +
|
|
93
97
|
`Expected either an MJ repo root (with templates/claude-pack/dist/v${major}/) or an unpacked dist directory.`);
|
|
94
98
|
}
|
|
95
99
|
return loadLocalPack(localRoot, opts.CheckOnly ?? false);
|
|
96
100
|
}
|
|
97
|
-
const fetched = await
|
|
101
|
+
const fetched = await FetchPack({
|
|
98
102
|
Major: major,
|
|
99
103
|
Ref: opts.Ref,
|
|
100
104
|
HttpGet: opts.HttpGet,
|
|
@@ -147,7 +151,7 @@ function buildCheckResult(targetDir, manifest, installedMJVersion) {
|
|
|
147
151
|
const localVersion = existsSync(localVersionFile)
|
|
148
152
|
? readFileSync(localVersionFile, 'utf8').trim()
|
|
149
153
|
: null;
|
|
150
|
-
const actions =
|
|
154
|
+
const actions = EmptyActionLog();
|
|
151
155
|
const warnings = [];
|
|
152
156
|
const notes = [];
|
|
153
157
|
if (!localVersion) {
|
|
@@ -181,7 +185,7 @@ function errorResult(installedMJVersion, message) {
|
|
|
181
185
|
ok: false,
|
|
182
186
|
packVersion: '',
|
|
183
187
|
installedMJVersion,
|
|
184
|
-
actions: { ...
|
|
188
|
+
actions: { ...EmptyActionLog(), errors: [message] },
|
|
185
189
|
warnings: [],
|
|
186
190
|
notes: [],
|
|
187
191
|
};
|
|
@@ -191,7 +195,9 @@ function errorResult(installedMJVersion, message) {
|
|
|
191
195
|
* to {@link detectMJVersionString} in PackPaths so the workspace-walk
|
|
192
196
|
* behavior stays in sync with {@link detectMJMajor}.
|
|
193
197
|
*/
|
|
194
|
-
const detectMJVersion =
|
|
198
|
+
const detectMJVersion = DetectMJVersionString;
|
|
195
199
|
/** Re-export the default raw URL prefix for tests / verbose logging. */
|
|
196
|
-
export {
|
|
200
|
+
export { BuildRemoteUrlPrefix,
|
|
201
|
+
/** @deprecated Use {@link BuildRemoteUrlPrefix} instead. */
|
|
202
|
+
buildRemoteUrlPrefix, };
|
|
197
203
|
//# sourceMappingURL=PackInstaller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackInstaller.js","sourceRoot":"","sources":["../../../src/lib/claude-pack/PackInstaller.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PackInstaller.js","sourceRoot":"","sources":["../../../src/lib/claude-pack/PackInstaller.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,8 @@ export interface PackMergeResult {
|
|
|
42
42
|
Actions: ActionLog;
|
|
43
43
|
Warnings: string[];
|
|
44
44
|
}
|
|
45
|
+
export declare function MergePack(opts: PackMergeOptions): PackMergeResult;
|
|
46
|
+
/** @deprecated Use {@link MergePack}. */
|
|
45
47
|
export declare function mergePack(opts: PackMergeOptions): PackMergeResult;
|
|
46
48
|
declare function bytesEqual(a: Uint8Array, b: Uint8Array): boolean;
|
|
47
49
|
declare function collectPackPathsByPrefix(files: Map<string, Uint8Array>, prefix: string): string[];
|
|
@@ -52,6 +54,12 @@ declare function collectPackPathsByPrefix(files: Map<string, Uint8Array>, prefix
|
|
|
52
54
|
*/
|
|
53
55
|
declare function walkRelativeFiles(dir: string, relativeTo: string): string[];
|
|
54
56
|
/** Re-export for tests that want to exercise the walker in isolation. */
|
|
57
|
+
export declare const Internals: {
|
|
58
|
+
walkRelativeFiles: typeof walkRelativeFiles;
|
|
59
|
+
bytesEqual: typeof bytesEqual;
|
|
60
|
+
collectPackPathsByPrefix: typeof collectPackPathsByPrefix;
|
|
61
|
+
};
|
|
62
|
+
/** @deprecated Use {@link Internals}. */
|
|
55
63
|
export declare const _internals: {
|
|
56
64
|
walkRelativeFiles: typeof walkRelativeFiles;
|
|
57
65
|
bytesEqual: typeof bytesEqual;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackMerger.d.ts","sourceRoot":"","sources":["../../../src/lib/claude-pack/PackMerger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAYH,OAAO,EAIH,iBAAiB,EACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAGH,KAAK,SAAS,EAEd,KAAK,QAAQ,EAChB,MAAM,gBAAgB,CAAC;AAMxB,MAAM,WAAW,gBAAgB;IAC7B,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6FAA6F;IAC7F,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB;AAMD,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,eAAe,CAejE;AAoQD,iBAAS,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAMzD;AAED,iBAAS,wBAAwB,CAC7B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC9B,MAAM,EAAE,MAAM,GACf,MAAM,EAAE,CAEV;AA8BD;;;;GAIG;AACH,iBAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBpE;AAED,yEAAyE;AACzE,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"PackMerger.d.ts","sourceRoot":"","sources":["../../../src/lib/claude-pack/PackMerger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAYH,OAAO,EAIH,iBAAiB,EACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAGH,KAAK,SAAS,EAEd,KAAK,QAAQ,EAChB,MAAM,gBAAgB,CAAC;AAMxB,MAAM,WAAW,gBAAgB;IAC7B,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6FAA6F;IAC7F,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB;AAMD,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,eAAe,CAejE;AAED,yCAAyC;AACzC,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,eAAe,CAEjE;AAoQD,iBAAS,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAMzD;AAED,iBAAS,wBAAwB,CAC7B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC9B,MAAM,EAAE,MAAM,GACf,MAAM,EAAE,CAEV;AA8BD;;;;GAIG;AACH,iBAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBpE;AAED,yEAAyE;AACzE,eAAO,MAAM,SAAS;;;;CAA8D,CAAC;AAErF,yCAAyC;AACzC,eAAO,MAAM,UAAU;;;;CAAY,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { existsSync, mkdirSync, readFileSync, readdirSync, statSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
16
16
|
import path from 'node:path';
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
17
|
+
import { ParseManagedBlock, RewriteManagedBlock, WrapWithManagedBlock, ManagedBlockError, } from './ManagedBlockEditor.js';
|
|
18
|
+
import { MergeSettings } from './SettingsMerger.js';
|
|
19
|
+
import { EmptyActionLog, RecordOutcome, } from './PackTypes.js';
|
|
20
20
|
// ---------------------------------------------------------------------------
|
|
21
21
|
// Main entry point
|
|
22
22
|
// ---------------------------------------------------------------------------
|
|
23
|
-
export function
|
|
24
|
-
const actions =
|
|
23
|
+
export function MergePack(opts) {
|
|
24
|
+
const actions = EmptyActionLog();
|
|
25
25
|
const warnings = [];
|
|
26
26
|
mergeRootClaudeMd(opts, actions, warnings);
|
|
27
27
|
mergeMjBundle(opts, actions, warnings);
|
|
@@ -35,70 +35,74 @@ export function mergePack(opts) {
|
|
|
35
35
|
}
|
|
36
36
|
return { Actions: actions, Warnings: warnings };
|
|
37
37
|
}
|
|
38
|
+
/** @deprecated Use {@link MergePack}. */
|
|
39
|
+
export function mergePack(opts) {
|
|
40
|
+
return MergePack(opts);
|
|
41
|
+
}
|
|
38
42
|
// ---------------------------------------------------------------------------
|
|
39
43
|
// CLAUDE.md — managed-block rewrite
|
|
40
44
|
// ---------------------------------------------------------------------------
|
|
41
45
|
function mergeRootClaudeMd(opts, actions, warnings) {
|
|
42
46
|
const packBytes = opts.PackFiles.get('CLAUDE.md');
|
|
43
47
|
if (!packBytes) {
|
|
44
|
-
|
|
48
|
+
RecordOutcome(actions, { Path: 'CLAUDE.md', Outcome: 'error', Reason: 'absent from pack' });
|
|
45
49
|
return;
|
|
46
50
|
}
|
|
47
51
|
const packText = decodeText(packBytes);
|
|
48
52
|
let packBlock;
|
|
49
53
|
try {
|
|
50
|
-
packBlock =
|
|
54
|
+
packBlock = ParseManagedBlock(packText);
|
|
51
55
|
}
|
|
52
56
|
catch (err) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
RecordOutcome(actions, {
|
|
58
|
+
Path: 'CLAUDE.md',
|
|
59
|
+
Outcome: 'error',
|
|
60
|
+
Reason: `pack CLAUDE.md malformed: ${err.message}`,
|
|
57
61
|
});
|
|
58
62
|
return;
|
|
59
63
|
}
|
|
60
64
|
if (!packBlock) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
RecordOutcome(actions, {
|
|
66
|
+
Path: 'CLAUDE.md',
|
|
67
|
+
Outcome: 'error',
|
|
68
|
+
Reason: 'pack CLAUDE.md has no managed block',
|
|
65
69
|
});
|
|
66
70
|
return;
|
|
67
71
|
}
|
|
68
72
|
const targetPath = path.join(opts.TargetDir, 'CLAUDE.md');
|
|
69
73
|
if (!existsSync(targetPath)) {
|
|
70
74
|
writeFile(opts, targetPath, packText);
|
|
71
|
-
|
|
75
|
+
RecordOutcome(actions, { Path: 'CLAUDE.md', Outcome: 'added' });
|
|
72
76
|
return;
|
|
73
77
|
}
|
|
74
78
|
const existing = readFileSync(targetPath, 'utf8');
|
|
75
79
|
let existingBlock;
|
|
76
80
|
try {
|
|
77
|
-
existingBlock =
|
|
81
|
+
existingBlock = ParseManagedBlock(existing);
|
|
78
82
|
}
|
|
79
83
|
catch (err) {
|
|
80
84
|
warnings.push(`CLAUDE.md has malformed MJ-MANAGED markers — leaving the file alone. ` +
|
|
81
85
|
`Fix it and re-run, or pass --force to wrap the existing content. (${err.message})`);
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
RecordOutcome(actions, {
|
|
87
|
+
Path: 'CLAUDE.md',
|
|
88
|
+
Outcome: 'skipped',
|
|
89
|
+
Reason: 'malformed managed markers',
|
|
86
90
|
});
|
|
87
91
|
return;
|
|
88
92
|
}
|
|
89
93
|
let newContent;
|
|
90
94
|
if (existingBlock === null) {
|
|
91
|
-
newContent =
|
|
95
|
+
newContent = WrapWithManagedBlock(existing, packBlock.Body, packBlock.Attrs);
|
|
92
96
|
}
|
|
93
97
|
else {
|
|
94
|
-
newContent =
|
|
98
|
+
newContent = RewriteManagedBlock(existing, packBlock.Body, packBlock.Attrs);
|
|
95
99
|
}
|
|
96
100
|
if (newContent === existing) {
|
|
97
|
-
|
|
101
|
+
RecordOutcome(actions, { Path: 'CLAUDE.md', Outcome: 'skipped', Reason: 'identical' });
|
|
98
102
|
return;
|
|
99
103
|
}
|
|
100
104
|
writeFile(opts, targetPath, newContent);
|
|
101
|
-
|
|
105
|
+
RecordOutcome(actions, { Path: 'CLAUDE.md', Outcome: 'updated' });
|
|
102
106
|
}
|
|
103
107
|
// ---------------------------------------------------------------------------
|
|
104
108
|
// .claude/mj/** — overwritten as a unit + sweep of stale files
|
|
@@ -118,10 +122,10 @@ function mergeMjBundle(opts, actions, _warnings) {
|
|
|
118
122
|
const absPath = path.join(opts.TargetDir, stale);
|
|
119
123
|
if (!opts.DryRun)
|
|
120
124
|
unlinkSync(absPath);
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
+
RecordOutcome(actions, {
|
|
126
|
+
Path: stale,
|
|
127
|
+
Outcome: 'updated',
|
|
128
|
+
Reason: 'removed (no longer shipped)',
|
|
125
129
|
});
|
|
126
130
|
}
|
|
127
131
|
}
|
|
@@ -133,11 +137,11 @@ function mergeMjBundle(opts, actions, _warnings) {
|
|
|
133
137
|
const existed = existsSync(absPath);
|
|
134
138
|
const identical = existed && bytesEqual(readFileBytes(absPath), bytes);
|
|
135
139
|
if (identical) {
|
|
136
|
-
|
|
140
|
+
RecordOutcome(actions, { Path: relPath, Outcome: 'skipped', Reason: 'identical' });
|
|
137
141
|
continue;
|
|
138
142
|
}
|
|
139
143
|
writeFile(opts, absPath, bytes);
|
|
140
|
-
|
|
144
|
+
RecordOutcome(actions, { Path: relPath, Outcome: existed ? 'updated' : 'added' });
|
|
141
145
|
}
|
|
142
146
|
}
|
|
143
147
|
// ---------------------------------------------------------------------------
|
|
@@ -146,10 +150,10 @@ function mergeMjBundle(opts, actions, _warnings) {
|
|
|
146
150
|
function mergeSettingsFile(opts, actions, warnings) {
|
|
147
151
|
const packBytes = opts.PackFiles.get('.claude/settings.json');
|
|
148
152
|
if (!packBytes) {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
+
RecordOutcome(actions, {
|
|
154
|
+
Path: '.claude/settings.json',
|
|
155
|
+
Outcome: 'error',
|
|
156
|
+
Reason: 'absent from pack',
|
|
153
157
|
});
|
|
154
158
|
return;
|
|
155
159
|
}
|
|
@@ -158,10 +162,10 @@ function mergeSettingsFile(opts, actions, warnings) {
|
|
|
158
162
|
packJson = JSON.parse(decodeText(packBytes));
|
|
159
163
|
}
|
|
160
164
|
catch (err) {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
+
RecordOutcome(actions, {
|
|
166
|
+
Path: '.claude/settings.json',
|
|
167
|
+
Outcome: 'error',
|
|
168
|
+
Reason: `pack settings.json invalid JSON: ${err.message}`,
|
|
165
169
|
});
|
|
166
170
|
return;
|
|
167
171
|
}
|
|
@@ -174,27 +178,27 @@ function mergeSettingsFile(opts, actions, warnings) {
|
|
|
174
178
|
}
|
|
175
179
|
catch (err) {
|
|
176
180
|
warnings.push(`Existing .claude/settings.json is malformed JSON; leaving it alone. (${err.message})`);
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
+
RecordOutcome(actions, {
|
|
182
|
+
Path: '.claude/settings.json',
|
|
183
|
+
Outcome: 'skipped',
|
|
184
|
+
Reason: 'malformed JSON',
|
|
181
185
|
});
|
|
182
186
|
return;
|
|
183
187
|
}
|
|
184
188
|
}
|
|
185
|
-
const { Result, Changed } =
|
|
189
|
+
const { Result, Changed } = MergeSettings({ Existing: existing, Pack: packJson });
|
|
186
190
|
if (!Changed && existed) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
+
RecordOutcome(actions, {
|
|
192
|
+
Path: '.claude/settings.json',
|
|
193
|
+
Outcome: 'skipped',
|
|
194
|
+
Reason: 'identical',
|
|
191
195
|
});
|
|
192
196
|
return;
|
|
193
197
|
}
|
|
194
198
|
writeFile(opts, targetPath, JSON.stringify(Result, null, 2) + '\n');
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
199
|
+
RecordOutcome(actions, {
|
|
200
|
+
Path: '.claude/settings.json',
|
|
201
|
+
Outcome: existed ? 'updated' : 'added',
|
|
198
202
|
});
|
|
199
203
|
}
|
|
200
204
|
// ---------------------------------------------------------------------------
|
|
@@ -204,7 +208,7 @@ function mergeSeededTree(opts, actions, warnings, prefix, refresh) {
|
|
|
204
208
|
const paths = collectPackPathsByPrefix(opts.PackFiles, prefix);
|
|
205
209
|
for (const relPath of paths) {
|
|
206
210
|
const result = seedOneFile(opts, relPath, refresh, warnings);
|
|
207
|
-
|
|
211
|
+
RecordOutcome(actions, result);
|
|
208
212
|
}
|
|
209
213
|
}
|
|
210
214
|
function seedOneFile(opts, relPath, refresh, warnings) {
|
|
@@ -212,11 +216,11 @@ function seedOneFile(opts, relPath, refresh, warnings) {
|
|
|
212
216
|
const absPath = path.join(opts.TargetDir, relPath);
|
|
213
217
|
if (!existsSync(absPath)) {
|
|
214
218
|
writeFile(opts, absPath, bytes);
|
|
215
|
-
return {
|
|
219
|
+
return { Path: relPath, Outcome: 'added' };
|
|
216
220
|
}
|
|
217
221
|
const existing = readFileBytes(absPath);
|
|
218
222
|
if (bytesEqual(existing, bytes)) {
|
|
219
|
-
return {
|
|
223
|
+
return { Path: relPath, Outcome: 'skipped', Reason: 'identical' };
|
|
220
224
|
}
|
|
221
225
|
// Different — user has customized this file. Default behavior is to
|
|
222
226
|
// preserve theirs; --force or --refresh-commands/--refresh-skills
|
|
@@ -226,10 +230,10 @@ function seedOneFile(opts, relPath, refresh, warnings) {
|
|
|
226
230
|
writeFileSync(absPath + '.bak', existing);
|
|
227
231
|
}
|
|
228
232
|
writeFile(opts, absPath, bytes);
|
|
229
|
-
return {
|
|
233
|
+
return { Path: relPath, Outcome: 'updated', Reason: 'overwritten (.bak saved)' };
|
|
230
234
|
}
|
|
231
235
|
warnings.push(`${relPath} differs from pack — kept user version. Pass --force to overwrite.`);
|
|
232
|
-
return {
|
|
236
|
+
return { Path: relPath, Outcome: 'skipped', Reason: 'user-modified' };
|
|
233
237
|
}
|
|
234
238
|
// ---------------------------------------------------------------------------
|
|
235
239
|
// Helpers
|
|
@@ -309,7 +313,9 @@ function walkRelativeFiles(dir, relativeTo) {
|
|
|
309
313
|
return out;
|
|
310
314
|
}
|
|
311
315
|
/** Re-export for tests that want to exercise the walker in isolation. */
|
|
312
|
-
export const
|
|
316
|
+
export const Internals = { walkRelativeFiles, bytesEqual, collectPackPathsByPrefix };
|
|
317
|
+
/** @deprecated Use {@link Internals}. */
|
|
318
|
+
export const _internals = Internals;
|
|
313
319
|
// ManagedBlockError re-export — callers may catch it specifically.
|
|
314
320
|
export { ManagedBlockError };
|
|
315
321
|
//# sourceMappingURL=PackMerger.js.map
|