@openreef/cli 0.4.0 → 0.5.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 +15 -1
- package/dist/commands/diff.d.ts +9 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +34 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +32 -7
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/lock.d.ts +5 -1
- package/dist/commands/lock.d.ts.map +1 -1
- package/dist/commands/lock.js +37 -3
- package/dist/commands/lock.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +261 -13
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/publish.d.ts +8 -0
- package/dist/commands/publish.d.ts.map +1 -0
- package/dist/commands/publish.js +146 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +32 -207
- package/dist/commands/update.js.map +1 -1
- package/dist/core/config-patcher.d.ts.map +1 -1
- package/dist/core/config-patcher.js +9 -3
- package/dist/core/config-patcher.js.map +1 -1
- package/dist/core/diff-engine.d.ts +21 -0
- package/dist/core/diff-engine.d.ts.map +1 -0
- package/dist/core/diff-engine.js +140 -0
- package/dist/core/diff-engine.js.map +1 -0
- package/dist/core/github-api.d.ts +37 -0
- package/dist/core/github-api.d.ts.map +1 -0
- package/dist/core/github-api.js +163 -0
- package/dist/core/github-api.js.map +1 -0
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/registry.js +17 -39
- package/dist/core/registry.js.map +1 -1
- package/dist/core/skills-registry.d.ts +32 -0
- package/dist/core/skills-registry.d.ts.map +1 -0
- package/dist/core/skills-registry.js +186 -0
- package/dist/core/skills-registry.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +289 -225
- package/dist/index.js.map +1 -1
- package/dist/types/lockfile.d.ts +9 -0
- package/dist/types/lockfile.d.ts.map +1 -0
- package/dist/types/lockfile.js +2 -0
- package/dist/types/lockfile.js.map +1 -0
- package/dist/utils/download.d.ts +18 -0
- package/dist/utils/download.d.ts.map +1 -0
- package/dist/utils/download.js +72 -0
- package/dist/utils/download.js.map +1 -0
- package/dist/utils/plan-display.d.ts +3 -0
- package/dist/utils/plan-display.d.ts.map +1 -0
- package/dist/utils/plan-display.js +80 -0
- package/dist/utils/plan-display.js.map +1 -0
- package/dist/utils/semver.d.ts +12 -0
- package/dist/utils/semver.d.ts.map +1 -0
- package/dist/utils/semver.js +82 -0
- package/dist/utils/semver.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { downloadArtifact } from '../utils/download.js';
|
|
5
|
+
import { resolveRange } from '../utils/semver.js';
|
|
6
|
+
import { parseSemver, satisfiesRange } from '../utils/semver.js';
|
|
7
|
+
import { resolveReefStateDir } from './openclaw-paths.js';
|
|
8
|
+
import { VERSION } from '../version.js';
|
|
9
|
+
// ── Error classes ──
|
|
10
|
+
export class SkillNotFoundError extends Error {
|
|
11
|
+
skillName;
|
|
12
|
+
constructor(skillName) {
|
|
13
|
+
super(`Skill "${skillName}" not found in skills registry`);
|
|
14
|
+
this.skillName = skillName;
|
|
15
|
+
this.name = 'SkillNotFoundError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class SkillVersionNotFoundError extends Error {
|
|
19
|
+
skillName;
|
|
20
|
+
versionRange;
|
|
21
|
+
constructor(skillName, versionRange) {
|
|
22
|
+
super(`No version matching "${versionRange}" found for skill "${skillName}"`);
|
|
23
|
+
this.skillName = skillName;
|
|
24
|
+
this.versionRange = versionRange;
|
|
25
|
+
this.name = 'SkillVersionNotFoundError';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export class LockfileViolationError extends Error {
|
|
29
|
+
constructor(message) {
|
|
30
|
+
super(message);
|
|
31
|
+
this.name = 'LockfileViolationError';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// ── Constants ──
|
|
35
|
+
const DEFAULT_SKILLS_REGISTRY_URL = 'https://raw.githubusercontent.com/openreefai/skills/main/index.json';
|
|
36
|
+
// ── Helpers ──
|
|
37
|
+
function resolveSkillsRegistryUrl(options) {
|
|
38
|
+
const env = options?.env ?? process.env;
|
|
39
|
+
return options?.registryUrl ?? env.REEF_SKILLS_REGISTRY_URL ?? DEFAULT_SKILLS_REGISTRY_URL;
|
|
40
|
+
}
|
|
41
|
+
function skillsCacheDir(options) {
|
|
42
|
+
const env = options?.env ?? process.env;
|
|
43
|
+
const reefStateDir = resolveReefStateDir(env);
|
|
44
|
+
return join(reefStateDir, 'cache', 'skills');
|
|
45
|
+
}
|
|
46
|
+
function hashString(s) {
|
|
47
|
+
return createHash('sha256').update(s).digest('hex');
|
|
48
|
+
}
|
|
49
|
+
// ── Core functions ──
|
|
50
|
+
export async function fetchSkillsIndex(options) {
|
|
51
|
+
const registryUrl = resolveSkillsRegistryUrl(options);
|
|
52
|
+
const response = await fetch(registryUrl, {
|
|
53
|
+
headers: { 'User-Agent': `@openreef/cli/${VERSION}` },
|
|
54
|
+
});
|
|
55
|
+
if (!response.ok) {
|
|
56
|
+
throw new Error(`Skills registry returned HTTP ${response.status}: ${response.statusText}`);
|
|
57
|
+
}
|
|
58
|
+
const data = await response.json();
|
|
59
|
+
if (!data.skills || typeof data.skills !== 'object') {
|
|
60
|
+
throw new Error('Skills registry index has invalid format (missing skills object)');
|
|
61
|
+
}
|
|
62
|
+
return data;
|
|
63
|
+
}
|
|
64
|
+
export function lookupSkill(index, name, versionRange) {
|
|
65
|
+
const skill = index.skills[name];
|
|
66
|
+
if (!skill) {
|
|
67
|
+
throw new SkillNotFoundError(name);
|
|
68
|
+
}
|
|
69
|
+
if (!versionRange || versionRange === 'latest') {
|
|
70
|
+
const entry = skill.versions[skill.latest];
|
|
71
|
+
if (!entry) {
|
|
72
|
+
throw new SkillVersionNotFoundError(name, skill.latest);
|
|
73
|
+
}
|
|
74
|
+
return { entry, resolvedVersion: skill.latest };
|
|
75
|
+
}
|
|
76
|
+
const versions = Object.keys(skill.versions);
|
|
77
|
+
const resolved = resolveRange(versions, versionRange);
|
|
78
|
+
if (!resolved) {
|
|
79
|
+
throw new SkillVersionNotFoundError(name, versionRange);
|
|
80
|
+
}
|
|
81
|
+
return { entry: skill.versions[resolved], resolvedVersion: resolved };
|
|
82
|
+
}
|
|
83
|
+
export async function resolveSkillsDependencies(skills, options) {
|
|
84
|
+
const index = await fetchSkillsIndex(options);
|
|
85
|
+
const lockfileSkills = {};
|
|
86
|
+
for (const [name, range] of Object.entries(skills)) {
|
|
87
|
+
const { entry, resolvedVersion } = lookupSkill(index, name, range);
|
|
88
|
+
// Download the artifact to compute integrity hash
|
|
89
|
+
const cacheDir = skillsCacheDir(options);
|
|
90
|
+
const disambig = hashString(`${name}:${resolvedVersion}`).slice(0, 8);
|
|
91
|
+
const cacheName = `${name}-${resolvedVersion}-${disambig}.tar.gz`;
|
|
92
|
+
const artifactPath = await downloadArtifact({
|
|
93
|
+
url: entry.url,
|
|
94
|
+
sha256: entry.sha256,
|
|
95
|
+
cacheDir,
|
|
96
|
+
cacheName,
|
|
97
|
+
userAgent: `@openreef/cli/${VERSION}`,
|
|
98
|
+
});
|
|
99
|
+
const content = await readFile(artifactPath);
|
|
100
|
+
const integrity = `sha256-${createHash('sha256').update(content).digest('hex')}`;
|
|
101
|
+
lockfileSkills[name] = {
|
|
102
|
+
version: resolvedVersion,
|
|
103
|
+
resolved: entry.url,
|
|
104
|
+
integrity,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
return { skills: lockfileSkills };
|
|
108
|
+
}
|
|
109
|
+
export async function verifyLockfileIntegrity(lockfile, options) {
|
|
110
|
+
const errors = [];
|
|
111
|
+
const cacheDir = skillsCacheDir(options);
|
|
112
|
+
for (const [name, entry] of Object.entries(lockfile.skills)) {
|
|
113
|
+
try {
|
|
114
|
+
const disambig = hashString(`${name}:${entry.version}`).slice(0, 8);
|
|
115
|
+
const cacheName = `${name}-${entry.version}-${disambig}.tar.gz`;
|
|
116
|
+
// Download from lockfile resolved URL (not re-resolved from registry)
|
|
117
|
+
const artifactPath = await downloadArtifact({
|
|
118
|
+
url: entry.resolved,
|
|
119
|
+
sha256: undefined, // We verify ourselves against lockfile integrity
|
|
120
|
+
cacheDir,
|
|
121
|
+
cacheName: `verify-${cacheName}`,
|
|
122
|
+
userAgent: `@openreef/cli/${VERSION}`,
|
|
123
|
+
});
|
|
124
|
+
const content = await readFile(artifactPath);
|
|
125
|
+
const actual = `sha256-${createHash('sha256').update(content).digest('hex')}`;
|
|
126
|
+
if (actual !== entry.integrity) {
|
|
127
|
+
errors.push(`Integrity mismatch for ${name}@${entry.version}: expected ${entry.integrity}, got ${actual}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
errors.push(`Failed to verify ${name}@${entry.version}: ${err instanceof Error ? err.message : String(err)}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return { valid: errors.length === 0, errors };
|
|
135
|
+
}
|
|
136
|
+
const SHA256_HEX_RE = /^sha256-[0-9a-f]{64}$/;
|
|
137
|
+
export async function enforceLockfile(formationPath, skills, options) {
|
|
138
|
+
const lockfilePath = join(formationPath, 'reef.lock.json');
|
|
139
|
+
let lockfileRaw;
|
|
140
|
+
try {
|
|
141
|
+
lockfileRaw = await readFile(lockfilePath, 'utf-8');
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// No lockfile — warn and return
|
|
145
|
+
console.warn('No reef.lock.json found. Run `reef lock` to pin skill versions for supply-chain safety.');
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const parsed = JSON.parse(lockfileRaw);
|
|
149
|
+
const lockfile = { skills: (parsed.skills ?? {}) };
|
|
150
|
+
// Warn about extra entries in lockfile (skills not in manifest)
|
|
151
|
+
for (const lockedName of Object.keys(lockfile.skills)) {
|
|
152
|
+
if (!(lockedName in skills)) {
|
|
153
|
+
console.warn(`Warning: Lockfile contains skill "${lockedName}" which is not declared in reef.json dependencies.skills. Consider running \`reef lock\` to regenerate.`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Check each declared skill
|
|
157
|
+
for (const [name, range] of Object.entries(skills)) {
|
|
158
|
+
const entry = lockfile.skills[name];
|
|
159
|
+
if (!entry) {
|
|
160
|
+
throw new LockfileViolationError(`Skill "${name}" is declared in reef.json but missing from reef.lock.json. Run \`reef lock\` to regenerate.`);
|
|
161
|
+
}
|
|
162
|
+
// Validate entry format
|
|
163
|
+
if (!SHA256_HEX_RE.test(entry.integrity)) {
|
|
164
|
+
throw new LockfileViolationError(`Malformed integrity for "${name}" in lockfile: expected "sha256-<64 hex chars>", got "${entry.integrity}"`);
|
|
165
|
+
}
|
|
166
|
+
if (!entry.resolved.startsWith('https://') && !entry.resolved.startsWith('http://')) {
|
|
167
|
+
throw new LockfileViolationError(`Malformed resolved URL for "${name}" in lockfile: only https:// and http:// schemes are allowed, got "${entry.resolved}"`);
|
|
168
|
+
}
|
|
169
|
+
try {
|
|
170
|
+
parseSemver(entry.version);
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
throw new LockfileViolationError(`Malformed version for "${name}" in lockfile: "${entry.version}" is not a valid semver string`);
|
|
174
|
+
}
|
|
175
|
+
// Check range satisfaction
|
|
176
|
+
if (!satisfiesRange(entry.version, range)) {
|
|
177
|
+
throw new LockfileViolationError(`Locked version ${entry.version} for "${name}" does not satisfy declared range "${range}". Run \`reef lock\` to update.`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// Verify integrity
|
|
181
|
+
const verification = await verifyLockfileIntegrity(lockfile, options);
|
|
182
|
+
if (!verification.valid) {
|
|
183
|
+
throw new LockfileViolationError(`Lockfile integrity check failed:\n ${verification.errors.join('\n ')}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=skills-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-registry.js","sourceRoot":"","sources":["../../src/core/skills-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,YAAY,IAAI,OAAO,CAiRtC"}
|