wicked-crew 0.7.26 → 0.7.27
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/dist/skills/plugin-source.d.ts +149 -32
- package/dist/skills/plugin-source.d.ts.map +1 -1
- package/dist/skills/plugin-source.js +303 -108
- package/dist/skills/plugin-source.js.map +1 -1
- package/dist/skills/root-fence.d.ts +2 -2
- package/dist/skills/root-fence.js +4 -4
- package/dist/skills/root-fence.js.map +1 -1
- package/dist/skills/runtime.d.ts +19 -2
- package/dist/skills/runtime.d.ts.map +1 -1
- package/dist/skills/runtime.js +82 -8
- package/dist/skills/runtime.js.map +1 -1
- package/dist/skills/store.d.ts +2 -2
- package/dist/skills/store.d.ts.map +1 -1
- package/dist/skills/store.js +30 -9
- package/dist/skills/store.js.map +1 -1
- package/endpoint-manifest.json +1 -1
- package/package.json +1 -1
package/dist/skills/runtime.d.ts
CHANGED
|
@@ -33,6 +33,16 @@
|
|
|
33
33
|
* (`<root>/refused/skills.config`), same loud launch failure: recorded disablement
|
|
34
34
|
* is never bypassed by "restoring" the live cache. Finding `skills.config` (error).
|
|
35
35
|
*
|
|
36
|
+
* Orthogonal to the ladder, one persistent WARNING (design v3.6, #490): finding `skills.source` is
|
|
37
|
+
* present while the CURRENT baseline was captured from the installer-managed copy
|
|
38
|
+
* (`source.kind: 'installer-copy'` — plugin-source.ts tier 3): the daemon works on an installer-only
|
|
39
|
+
* machine, but that copy receives no marketplace updates until the plugin is registered with Claude
|
|
40
|
+
* Code. It is judged live from the manifest on every `health()` read, so it appears with the seed
|
|
41
|
+
* and disappears with the first refresh from the marketplace cache (a byte-identical refresh
|
|
42
|
+
* re-records the provenance too). That read FAILS CLOSED (codex on #491): a manifest that cannot be
|
|
43
|
+
* read now is reported as `config-error` with a `skills.manifest` error finding naming the cause —
|
|
44
|
+
* never the stale outcome the ladder recorded at boot. A read never touches the engine input.
|
|
45
|
+
*
|
|
36
46
|
* What the engine is handed is EXACTLY ONE variable, `WICKED_SKILLS_SNAPSHOT` = the absolute REAL
|
|
37
47
|
* path of `snapshots/<gen>` (v3.1 §2, v3.4 §2); `WICKED_SKILLS_CURRENT` is withdrawn and never set,
|
|
38
48
|
* and `WICKED_CREW_STATE_HOME` is RETIRED as an engine input (v3.4 §2): core derives the state home
|
|
@@ -57,7 +67,7 @@ import { type SkillsStore } from './store.js';
|
|
|
57
67
|
/** The refusal sentinel directory name — from the ONE table of root names (design v3.5 §2); re-exported for the tests. */
|
|
58
68
|
export { REFUSED_DIRNAME };
|
|
59
69
|
export type SkillsHealthState = 'published' | 'fallback' | 'blocked' | 'config-error' | 'disabled';
|
|
60
|
-
export type SkillsHealthFindingKind = 'skills.fallback' | 'skills.blocked' | 'skills.config';
|
|
70
|
+
export type SkillsHealthFindingKind = 'skills.fallback' | 'skills.blocked' | 'skills.config' | 'skills.source' | 'skills.manifest';
|
|
61
71
|
export interface SkillsHealthFinding {
|
|
62
72
|
kind: SkillsHealthFindingKind;
|
|
63
73
|
severity: 'warning' | 'error';
|
|
@@ -101,10 +111,16 @@ export declare class SkillsRuntime {
|
|
|
101
111
|
private readonly bootSnapshot;
|
|
102
112
|
private lastHealth;
|
|
103
113
|
constructor(opts: SkillsRuntimeOptions);
|
|
104
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* The seam's last outcome (diagnostics) — plus the live `skills.source` warning when the current
|
|
116
|
+
* baseline is the installer copy (design v3.6). Only a seeded root (`published` / `blocked`) has a
|
|
117
|
+
* current baseline to judge; the other rungs have no manifest, or one their own finding condemns.
|
|
118
|
+
*/
|
|
105
119
|
health(): SkillsHealth;
|
|
106
120
|
/** Boot entry point. Never throws; never fails open (module header). Idempotent: a seeded, published root is only re-verified. */
|
|
107
121
|
apply(): Promise<SkillsHealth>;
|
|
122
|
+
/** Say once, at boot, that the current baseline is the installer copy (design v3.6) — the finding itself persists in `health()`. */
|
|
123
|
+
private logSourceWarning;
|
|
108
124
|
/**
|
|
109
125
|
* One CoreEvent from the daemon's event listener: pins the generation the engine reports it
|
|
110
126
|
* handed the live run the event belongs to, releases (and reaps) at the run's terminal frame —
|
|
@@ -125,6 +141,7 @@ export declare class SkillsRuntime {
|
|
|
125
141
|
* decided it. Answers the health it recorded, or `null` when there was nothing to export.
|
|
126
142
|
*/
|
|
127
143
|
afterPublish(): SkillsHealth | null;
|
|
144
|
+
/** Store the ladder's outcome; answer it as `health()` reports it (the live `skills.source` warning included). */
|
|
128
145
|
private record;
|
|
129
146
|
}
|
|
130
147
|
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/skills/runtime.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/skills/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAgC,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAsC5E,0HAA0H;AAC1H,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,GAAG,UAAU,CAAC;AAEnG,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAEnI,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,iBAAiB,CAAC;IACzB,kGAAkG;IAClG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,kDAAkD;IAClD,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9C,4FAA4F;IAC5F,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;kCAE8B;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,mEAAmE;AACnE,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,eAAe,GAAG,MAAM,CAE1F;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,8IAA8I;IAC9I,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,UAAU,CAAwC;gBAE9C,IAAI,EAAE,oBAAoB;IAMtC;;;;OAIG;IACH,MAAM,IAAI,YAAY;IA+BtB,kIAAkI;IAC5H,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC;IAwFpC,oIAAoI;IACpI,OAAO,CAAC,gBAAgB;IAKxB;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI/B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAKpC;;;;OAIG;IACH,YAAY,IAAI,YAAY,GAAG,IAAI;IA+BnC,kHAAkH;IAClH,OAAO,CAAC,MAAM;CAIf"}
|
package/dist/skills/runtime.js
CHANGED
|
@@ -33,6 +33,16 @@
|
|
|
33
33
|
* (`<root>/refused/skills.config`), same loud launch failure: recorded disablement
|
|
34
34
|
* is never bypassed by "restoring" the live cache. Finding `skills.config` (error).
|
|
35
35
|
*
|
|
36
|
+
* Orthogonal to the ladder, one persistent WARNING (design v3.6, #490): finding `skills.source` is
|
|
37
|
+
* present while the CURRENT baseline was captured from the installer-managed copy
|
|
38
|
+
* (`source.kind: 'installer-copy'` — plugin-source.ts tier 3): the daemon works on an installer-only
|
|
39
|
+
* machine, but that copy receives no marketplace updates until the plugin is registered with Claude
|
|
40
|
+
* Code. It is judged live from the manifest on every `health()` read, so it appears with the seed
|
|
41
|
+
* and disappears with the first refresh from the marketplace cache (a byte-identical refresh
|
|
42
|
+
* re-records the provenance too). That read FAILS CLOSED (codex on #491): a manifest that cannot be
|
|
43
|
+
* read now is reported as `config-error` with a `skills.manifest` error finding naming the cause —
|
|
44
|
+
* never the stale outcome the ladder recorded at boot. A read never touches the engine input.
|
|
45
|
+
*
|
|
36
46
|
* What the engine is handed is EXACTLY ONE variable, `WICKED_SKILLS_SNAPSHOT` = the absolute REAL
|
|
37
47
|
* path of `snapshots/<gen>` (v3.1 §2, v3.4 §2); `WICKED_SKILLS_CURRENT` is withdrawn and never set,
|
|
38
48
|
* and `WICKED_CREW_STATE_HOME` is RETIRED as an engine input (v3.4 §2): core derives the state home
|
|
@@ -64,11 +74,31 @@ import { SkillsSourceUnavailableError } from './store.js';
|
|
|
64
74
|
function describeSeedSource(source) {
|
|
65
75
|
const what = source.kind === 'claude-plugin-cache'
|
|
66
76
|
? 'the installed wicked-garden plugin (Claude plugin cache)'
|
|
67
|
-
: source.kind === '
|
|
68
|
-
?
|
|
69
|
-
:
|
|
77
|
+
: source.kind === 'installer-copy'
|
|
78
|
+
? 'the installer-managed wicked-garden copy (plugins/wicked-garden — the LAST-resort source, design v3.6; not the marketplace cache)'
|
|
79
|
+
: source.kind === 'checkout'
|
|
80
|
+
? `a wicked-garden git checkout (an explicit plugin root — ${SKILLS_SOURCE_ENV} or the configured source)`
|
|
81
|
+
: `a plugin directory (an explicit plugin root — ${SKILLS_SOURCE_ENV} or the configured source)`;
|
|
70
82
|
return `${what} at ${source.path}, plugin version ${source.plugin_version}, source kind ${source.kind}`;
|
|
71
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* The persistent `skills.source` WARNING (design v3.6): the CURRENT baseline was captured from the
|
|
86
|
+
* installer-managed copy (`source.kind: 'installer-copy'`) — the daemon works, but that copy receives
|
|
87
|
+
* no marketplace updates until the plugin is registered with Claude Code. Judged LIVE from the
|
|
88
|
+
* manifest, never frozen at publish: a refresh from the marketplace cache re-keys the current
|
|
89
|
+
* baseline WITHOUT a publish, and the warning must follow the baseline. `null` when the manifest
|
|
90
|
+
* baseline. `health()` reads the manifest and fails closed when it cannot.
|
|
91
|
+
*/
|
|
92
|
+
function sourceFinding(m) {
|
|
93
|
+
const current = m.baselines[m.baseline];
|
|
94
|
+
if (current === undefined || current.source.kind !== 'installer-copy')
|
|
95
|
+
return null;
|
|
96
|
+
return {
|
|
97
|
+
kind: 'skills.source',
|
|
98
|
+
severity: 'warning',
|
|
99
|
+
message: `seeded from the installer copy at ${current.source.path}; register the plugin with Claude Code (marketplace) to receive marketplace updates`,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
72
102
|
/** The refusal sentinel directory name — from the ONE table of root names (design v3.5 §2); re-exported for the tests. */
|
|
73
103
|
export { REFUSED_DIRNAME };
|
|
74
104
|
/** The `skills` block a daemon booted WITHOUT the seam reports. */
|
|
@@ -93,9 +123,42 @@ export class SkillsRuntime {
|
|
|
93
123
|
this.log = opts.log;
|
|
94
124
|
this.bootSnapshot = 'bootSnapshot' in opts ? opts.bootSnapshot : BOOT_SKILLS_SNAPSHOT;
|
|
95
125
|
}
|
|
96
|
-
/**
|
|
126
|
+
/**
|
|
127
|
+
* The seam's last outcome (diagnostics) — plus the live `skills.source` warning when the current
|
|
128
|
+
* baseline is the installer copy (design v3.6). Only a seeded root (`published` / `blocked`) has a
|
|
129
|
+
* current baseline to judge; the other rungs have no manifest, or one their own finding condemns.
|
|
130
|
+
*/
|
|
97
131
|
health() {
|
|
98
|
-
|
|
132
|
+
const base = this.lastHealth;
|
|
133
|
+
if (base.state !== 'published' && base.state !== 'blocked')
|
|
134
|
+
return base;
|
|
135
|
+
let manifest;
|
|
136
|
+
try {
|
|
137
|
+
manifest = this.store.manifest();
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
// FAIL CLOSED (codex on #491): a manifest that cannot be read NOW is not the outcome the ladder
|
|
141
|
+
// recorded at boot — report `config-error` with the cause instead of that stale state. A read
|
|
142
|
+
// never touches the engine input: whatever is exported stays exported until a restart re-runs
|
|
143
|
+
// the ladder, and the finding says so.
|
|
144
|
+
const cause = err instanceof Error ? err.message : String(err);
|
|
145
|
+
return {
|
|
146
|
+
state: 'config-error',
|
|
147
|
+
root: base.root,
|
|
148
|
+
current: null,
|
|
149
|
+
engineInput: base.engineInput,
|
|
150
|
+
stateHome: base.stateHome,
|
|
151
|
+
findings: [
|
|
152
|
+
{
|
|
153
|
+
kind: 'skills.manifest',
|
|
154
|
+
severity: 'error',
|
|
155
|
+
message: `manifest.json cannot be read: ${cause} — the skills store is unusable (every /skills request fails) until it is fixed; ${SKILLS_SNAPSHOT_ENGINE_ENV} still exports what the last boot or publish set (${base.engineInput ?? 'unset'}) until the daemon restarts`,
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
const source = sourceFinding(manifest);
|
|
161
|
+
return source === null ? base : { ...base, findings: [...base.findings, source] };
|
|
99
162
|
}
|
|
100
163
|
/** Boot entry point. Never throws; never fails open (module header). Idempotent: a seeded, published root is only re-verified. */
|
|
101
164
|
async apply() {
|
|
@@ -162,7 +225,7 @@ export class SkillsRuntime {
|
|
|
162
225
|
this.store.live.exported(null);
|
|
163
226
|
const message = `first publish BLOCKED — no snapshot: ${named}`;
|
|
164
227
|
this.log(`[skills] skills.blocked: ${message}; ${SKILLS_SNAPSHOT_ENGINE_ENV}=${refusal} so every launch fails loudly until the catalog is fixed and published`);
|
|
165
|
-
|
|
228
|
+
const blocked = this.record({
|
|
166
229
|
state: 'blocked',
|
|
167
230
|
root,
|
|
168
231
|
current: null,
|
|
@@ -170,6 +233,8 @@ export class SkillsRuntime {
|
|
|
170
233
|
stateHome: canonicalCrewStateHome(),
|
|
171
234
|
findings: [{ kind: 'skills.blocked', severity: 'error', message }],
|
|
172
235
|
});
|
|
236
|
+
this.logSourceWarning(blocked);
|
|
237
|
+
return blocked;
|
|
173
238
|
}
|
|
174
239
|
if (ready.published !== null && ready.published.verdict === 'warnings') {
|
|
175
240
|
// A first publish WITH warnings landed (design v3.4 §1): the snapshot is written and handed
|
|
@@ -179,7 +244,15 @@ export class SkillsRuntime {
|
|
|
179
244
|
this.log(`[skills] first publish landed with ${ready.published.findings.length} warning(s) (published as found; fix in the editor or upstream): ${named}`);
|
|
180
245
|
}
|
|
181
246
|
this.afterPublish();
|
|
182
|
-
|
|
247
|
+
const health = this.health();
|
|
248
|
+
this.logSourceWarning(health);
|
|
249
|
+
return health;
|
|
250
|
+
}
|
|
251
|
+
/** Say once, at boot, that the current baseline is the installer copy (design v3.6) — the finding itself persists in `health()`. */
|
|
252
|
+
logSourceWarning(health) {
|
|
253
|
+
const source = health.findings.find((f) => f.kind === 'skills.source');
|
|
254
|
+
if (source !== undefined)
|
|
255
|
+
this.log(`[skills] skills.source: ${source.message}`);
|
|
183
256
|
}
|
|
184
257
|
/**
|
|
185
258
|
* One CoreEvent from the daemon's event listener: pins the generation the engine reports it
|
|
@@ -238,9 +311,10 @@ export class SkillsRuntime {
|
|
|
238
311
|
this.store.live.exported(current.gen);
|
|
239
312
|
return this.record({ state: 'published', root: this.store.root, current, engineInput: current.path, stateHome: canonicalCrewStateHome(), findings: [] });
|
|
240
313
|
}
|
|
314
|
+
/** Store the ladder's outcome; answer it as `health()` reports it (the live `skills.source` warning included). */
|
|
241
315
|
record(health) {
|
|
242
316
|
this.lastHealth = health;
|
|
243
|
-
return health;
|
|
317
|
+
return this.health();
|
|
244
318
|
}
|
|
245
319
|
}
|
|
246
320
|
//# sourceMappingURL=runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/skills/runtime.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/skills/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/skills/store.d.ts
CHANGED
|
@@ -162,7 +162,7 @@ export declare class SkillsUnseededError extends Error {
|
|
|
162
162
|
readonly root: string;
|
|
163
163
|
constructor(root: string);
|
|
164
164
|
}
|
|
165
|
-
/** No plugin source could be found to seed or refresh from — crew does not vendor garden (v3 §8). */
|
|
165
|
+
/** No plugin source could be found to seed or refresh from — crew does not vendor garden (v3 §8; the discovery order is design v3.6, plugin-source.ts). */
|
|
166
166
|
export declare class SkillsSourceUnavailableError extends Error {
|
|
167
167
|
constructor(detail: string);
|
|
168
168
|
}
|
|
@@ -282,7 +282,7 @@ export interface SkillsStoreOptions {
|
|
|
282
282
|
registeredSkillRefs: () => ReadonlySet<string>;
|
|
283
283
|
/** Per-baseline `uv sync` (venv.ts), AWAITED by publish. Tests pass `noVenv`; the daemon passes `uvSyncBaseline`. */
|
|
284
284
|
provisionVenv: VenvProvisioner;
|
|
285
|
-
/** Plugin-source discovery; defaults to the
|
|
285
|
+
/** Plugin-source discovery; defaults to the installed plugin (plugin-source.ts, design v3.6), whose discovery findings the default logs through `warn`. */
|
|
286
286
|
source?: () => PluginSource | null;
|
|
287
287
|
/** Clock, ISO-8601 (tests pin it). */
|
|
288
288
|
now?: () => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/skills/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwHG;AAqBH,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAGlB,UAAU,EAEV,aAAa,EACb,SAAS,EACT,aAAa,EACb,mBAAmB,EAEnB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAGL,mBAAmB,EAMpB,MAAM,aAAa,CAAC;AAkBrB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/skills/store.ts"],"names":[],"mappings":"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"}
|
package/dist/skills/store.js
CHANGED
|
@@ -130,7 +130,7 @@ import { coreClosure } from './core-closure.js';
|
|
|
130
130
|
import { derivedSkillName, parseFrontmatter, PLUGIN_NAME, SKILL_NAME_PREFIX, skillKindOf } from './frontmatter.js';
|
|
131
131
|
import { collisionGuard, coreDisableGuard, finding, frontmatterGuard, nameGuard, nestedSkillCreateGuard, noBaselineGuard, nonPortableGuard, SKILL_NAME_RE, supportFileGuard, verdictOf, } from './guards.js';
|
|
132
132
|
import { LiveGenerations } from './live-generations.js';
|
|
133
|
-
import {
|
|
133
|
+
import { discoverLivePluginDetailed, gitStateOf, PluginSourceSymlinkError } from './plugin-source.js';
|
|
134
134
|
import { extractPluginRootRefs, extractRelativeRefs, looksBinary, portabilityIssueOf, resolvePluginRootRef, resolveRelativeRef, } from './refs.js';
|
|
135
135
|
import { CURRENT_TMP_PREFIX, STAGING_PREFIX } from './root-names.js';
|
|
136
136
|
import { assertNoSymlinkComponents, copyFiles, EntrySwappedError, hashFileSet, hashTree, impliedDirs, isCarriedFile, makeTreeReadOnly, pruneEmptyDirs, readFileNoFollow, removeTreeForce, sha256Hex, SKIP_DIR_NAMES, SymlinkComponentError, walkEntries, walkFiles, walkTree, writeFileAtomic, } from './tree.js';
|
|
@@ -196,10 +196,10 @@ export class SkillsUnseededError extends Error {
|
|
|
196
196
|
this.name = 'SkillsUnseededError';
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
|
-
/** No plugin source could be found to seed or refresh from — crew does not vendor garden (v3 §8). */
|
|
199
|
+
/** No plugin source could be found to seed or refresh from — crew does not vendor garden (v3 §8; the discovery order is design v3.6, plugin-source.ts). */
|
|
200
200
|
export class SkillsSourceUnavailableError extends Error {
|
|
201
201
|
constructor(detail) {
|
|
202
|
-
super(`no wicked-garden plugin source: ${detail} — install wicked-garden first`);
|
|
202
|
+
super(`no wicked-garden plugin source: ${detail} — install wicked-garden first — \`npx wicked-installer install wicked-garden\`, or register the plugin with Claude Code`);
|
|
203
203
|
this.name = 'SkillsSourceUnavailableError';
|
|
204
204
|
}
|
|
205
205
|
}
|
|
@@ -396,7 +396,7 @@ export function generationDirName(gen) {
|
|
|
396
396
|
const GENERATION_DIR_RE = /^\d{6}$/;
|
|
397
397
|
const CONTENT_HASH_RE = /^[0-9a-f]{64}$/;
|
|
398
398
|
/** The persisted enums `snapshot.json` may carry — validated on read, never trusted as free text (codex round 6). */
|
|
399
|
-
const SOURCE_KINDS = new Set(['claude-plugin-cache', 'checkout', 'directory']);
|
|
399
|
+
const SOURCE_KINDS = new Set(['claude-plugin-cache', 'installer-copy', 'checkout', 'directory']);
|
|
400
400
|
const VENV_STATES = new Set(['pending', 'synced', 'failed', 'skipped']);
|
|
401
401
|
/** The persisted enums `manifest.json` may carry — the schema validator refuses anything else (codex round 7). */
|
|
402
402
|
const SKILL_KINDS = new Set(['router', 'fork-worker', 'module']);
|
|
@@ -457,7 +457,14 @@ export class SkillsStore {
|
|
|
457
457
|
this.rootDir = opts.root;
|
|
458
458
|
this.registeredRefs = opts.registeredSkillRefs;
|
|
459
459
|
this.provisionVenv = opts.provisionVenv;
|
|
460
|
-
this.sourceFn =
|
|
460
|
+
this.sourceFn =
|
|
461
|
+
opts.source ??
|
|
462
|
+
(() => {
|
|
463
|
+
const { source, findings } = discoverLivePluginDetailed();
|
|
464
|
+
for (const f of findings)
|
|
465
|
+
this.warn(`[skills] skills.discovery ${f.kind}: ${f.message}`);
|
|
466
|
+
return source;
|
|
467
|
+
});
|
|
461
468
|
this.now = opts.now ?? (() => new Date().toISOString());
|
|
462
469
|
this.warn = opts.warn ?? ((m) => console.warn(m));
|
|
463
470
|
}
|
|
@@ -1120,7 +1127,7 @@ export class SkillsStore {
|
|
|
1120
1127
|
seed() {
|
|
1121
1128
|
if (this.isSeeded())
|
|
1122
1129
|
return { seeded: false, baseline: null, source: null };
|
|
1123
|
-
const source = this.requireSource('no installed wicked-garden plugin found
|
|
1130
|
+
const source = this.requireSource('no installed wicked-garden plugin found: neither the marketplace cache (<config dir>/plugins/cache/wicked-garden/wicked-garden/<version>) nor the installer-managed copy (<config dir>/plugins/wicked-garden, ~/.claude/plugins/wicked-garden) holds a .claude-plugin/plugin.json with a version; set WICKED_CREW_SKILLS_SOURCE to use another plugin root deliberately');
|
|
1124
1131
|
const bundle = pluginBundleFiles(source.path);
|
|
1125
1132
|
const hash = hashFileSet(bundle);
|
|
1126
1133
|
mkdirSync(this.rootDir, { recursive: true });
|
|
@@ -2596,7 +2603,7 @@ export class SkillsStore {
|
|
|
2596
2603
|
refreshBaseline(expectedRevision) {
|
|
2597
2604
|
const m = this.manifest();
|
|
2598
2605
|
this.assertRevision(m, expectedRevision);
|
|
2599
|
-
const source = this.requireSource('no installed wicked-garden plugin found to refresh from');
|
|
2606
|
+
const source = this.requireSource('no installed wicked-garden plugin found to refresh from (neither the marketplace cache nor the installer-managed copy)');
|
|
2600
2607
|
const previous = m.baseline;
|
|
2601
2608
|
let bundle;
|
|
2602
2609
|
try {
|
|
@@ -2636,8 +2643,22 @@ export class SkillsStore {
|
|
|
2636
2643
|
conflicts: [],
|
|
2637
2644
|
...extra,
|
|
2638
2645
|
});
|
|
2639
|
-
if (newHash === previous)
|
|
2640
|
-
|
|
2646
|
+
if (newHash === previous) {
|
|
2647
|
+
// Byte-identical upstream: nothing to merge. The PROVENANCE may still have moved (codex on
|
|
2648
|
+
// #491): a copy seed followed by the marketplace registration discovers the same bytes in the
|
|
2649
|
+
// cache — record where the current baseline is sourced from NOW (kind, path, declared version,
|
|
2650
|
+
// git state; `captured_at` and `venv` stay: the bytes did not change) so the runtime's
|
|
2651
|
+
// `skills.source` warning follows the truth. The revision moves with the manifest commit; the
|
|
2652
|
+
// same source again is a no-op and the revision stands.
|
|
2653
|
+
const record = m.baselines[previous];
|
|
2654
|
+
if (record !== undefined && (record.source.kind !== source.kind || record.source.path !== source.path)) {
|
|
2655
|
+
const now = this.baselineRecord(source);
|
|
2656
|
+
m.baselines[previous] = { ...record, plugin_version: now.plugin_version, source: now.source, git_sha: now.git_sha };
|
|
2657
|
+
this.commit(m);
|
|
2658
|
+
return base({ revision: m.revision });
|
|
2659
|
+
}
|
|
2660
|
+
return base();
|
|
2661
|
+
}
|
|
2641
2662
|
// ── Decide (in memory — nothing on disk moves until the preflight below has passed) ─────
|
|
2642
2663
|
const newFiles = new Map(bundle.map((f) => [f.rel, sha256Hex(readFileNoFollow(f.abs))])); // the source entries the bundle walk judged, read no-follow
|
|
2643
2664
|
const effective = new Map(this.scanEffective().files.map((f) => [f.rel, f.sha]));
|