@openreef/cli 0.4.0 → 0.5.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.
Files changed (58) hide show
  1. package/README.md +15 -1
  2. package/dist/commands/diff.d.ts +9 -0
  3. package/dist/commands/diff.d.ts.map +1 -0
  4. package/dist/commands/diff.js +34 -0
  5. package/dist/commands/diff.js.map +1 -0
  6. package/dist/commands/install.d.ts.map +1 -1
  7. package/dist/commands/install.js +32 -7
  8. package/dist/commands/install.js.map +1 -1
  9. package/dist/commands/lock.d.ts +5 -1
  10. package/dist/commands/lock.d.ts.map +1 -1
  11. package/dist/commands/lock.js +37 -3
  12. package/dist/commands/lock.js.map +1 -1
  13. package/dist/commands/logs.d.ts.map +1 -1
  14. package/dist/commands/logs.js +261 -13
  15. package/dist/commands/logs.js.map +1 -1
  16. package/dist/commands/publish.d.ts +8 -0
  17. package/dist/commands/publish.d.ts.map +1 -0
  18. package/dist/commands/publish.js +146 -0
  19. package/dist/commands/publish.js.map +1 -0
  20. package/dist/commands/update.d.ts.map +1 -1
  21. package/dist/commands/update.js +32 -207
  22. package/dist/commands/update.js.map +1 -1
  23. package/dist/core/diff-engine.d.ts +21 -0
  24. package/dist/core/diff-engine.d.ts.map +1 -0
  25. package/dist/core/diff-engine.js +140 -0
  26. package/dist/core/diff-engine.js.map +1 -0
  27. package/dist/core/github-api.d.ts +37 -0
  28. package/dist/core/github-api.d.ts.map +1 -0
  29. package/dist/core/github-api.js +163 -0
  30. package/dist/core/github-api.js.map +1 -0
  31. package/dist/core/registry.d.ts.map +1 -1
  32. package/dist/core/registry.js +17 -39
  33. package/dist/core/registry.js.map +1 -1
  34. package/dist/core/skills-registry.d.ts +32 -0
  35. package/dist/core/skills-registry.d.ts.map +1 -0
  36. package/dist/core/skills-registry.js +186 -0
  37. package/dist/core/skills-registry.js.map +1 -0
  38. package/dist/index.d.ts +2 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +289 -225
  41. package/dist/index.js.map +1 -1
  42. package/dist/types/lockfile.d.ts +9 -0
  43. package/dist/types/lockfile.d.ts.map +1 -0
  44. package/dist/types/lockfile.js +2 -0
  45. package/dist/types/lockfile.js.map +1 -0
  46. package/dist/utils/download.d.ts +18 -0
  47. package/dist/utils/download.d.ts.map +1 -0
  48. package/dist/utils/download.js +72 -0
  49. package/dist/utils/download.js.map +1 -0
  50. package/dist/utils/plan-display.d.ts +3 -0
  51. package/dist/utils/plan-display.d.ts.map +1 -0
  52. package/dist/utils/plan-display.js +80 -0
  53. package/dist/utils/plan-display.js.map +1 -0
  54. package/dist/utils/semver.d.ts +12 -0
  55. package/dist/utils/semver.d.ts.map +1 -0
  56. package/dist/utils/semver.js +82 -0
  57. package/dist/utils/semver.js.map +1 -0
  58. package/package.json +3 -3
@@ -0,0 +1,163 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { VERSION } from '../version.js';
3
+ // ── Error classes ──
4
+ export class GitHubApiError extends Error {
5
+ statusCode;
6
+ constructor(message, statusCode) {
7
+ super(message);
8
+ this.statusCode = statusCode;
9
+ this.name = 'GitHubApiError';
10
+ }
11
+ }
12
+ export class GitHubAuthError extends GitHubApiError {
13
+ constructor(message) {
14
+ super(message, 401);
15
+ this.name = 'GitHubAuthError';
16
+ }
17
+ }
18
+ export class GitHubConflictError extends GitHubApiError {
19
+ constructor(message) {
20
+ super(message, 409);
21
+ this.name = 'GitHubConflictError';
22
+ }
23
+ }
24
+ export class PublishRollbackError extends Error {
25
+ originalError;
26
+ releaseId;
27
+ tag;
28
+ constructor(message, originalError, releaseId, tag) {
29
+ super(message);
30
+ this.originalError = originalError;
31
+ this.releaseId = releaseId;
32
+ this.tag = tag;
33
+ this.name = 'PublishRollbackError';
34
+ }
35
+ }
36
+ // ── Helpers ──
37
+ function resolveOwnerRepo(options) {
38
+ return {
39
+ owner: options.owner ?? 'openreefai',
40
+ repo: options.repo ?? 'formations',
41
+ };
42
+ }
43
+ async function githubRequest(options) {
44
+ const { owner, repo } = resolveOwnerRepo(options);
45
+ const baseUrl = options.uploadUrl ?? 'https://api.github.com';
46
+ const url = options.uploadUrl
47
+ ? options.path
48
+ : `${baseUrl}/repos/${owner}/${repo}${options.path}`;
49
+ const headers = {
50
+ 'Authorization': `Bearer ${options.token}`,
51
+ 'User-Agent': `@openreef/cli/${VERSION}`,
52
+ 'Accept': 'application/vnd.github+json',
53
+ };
54
+ let body;
55
+ if (options.rawBody) {
56
+ headers['Content-Type'] = options.contentType ?? 'application/octet-stream';
57
+ body = options.rawBody.buffer.slice(options.rawBody.byteOffset, options.rawBody.byteOffset + options.rawBody.byteLength);
58
+ }
59
+ else if (options.body !== undefined) {
60
+ headers['Content-Type'] = 'application/json';
61
+ body = JSON.stringify(options.body);
62
+ }
63
+ const response = await fetch(url, {
64
+ method: options.method ?? 'GET',
65
+ headers,
66
+ body,
67
+ });
68
+ if (response.status === 401 || response.status === 403) {
69
+ throw new GitHubAuthError(`GitHub authentication failed (HTTP ${response.status}). Check your token.`);
70
+ }
71
+ if (response.status === 409 || response.status === 422) {
72
+ const errBody = await response.text();
73
+ throw new GitHubConflictError(`GitHub conflict (HTTP ${response.status}): ${errBody}`);
74
+ }
75
+ if (!response.ok) {
76
+ const errBody = await response.text();
77
+ throw new GitHubApiError(`GitHub API error (HTTP ${response.status}): ${errBody}`, response.status);
78
+ }
79
+ if (response.status === 204)
80
+ return undefined;
81
+ return response.json();
82
+ }
83
+ // ── Core functions ──
84
+ export async function getRegistryIndex(options) {
85
+ try {
86
+ const result = await githubRequest({
87
+ ...options,
88
+ path: '/contents/index.json',
89
+ });
90
+ const decoded = Buffer.from(result.content, 'base64').toString('utf-8');
91
+ const content = JSON.parse(decoded);
92
+ return { content, sha: result.sha };
93
+ }
94
+ catch (err) {
95
+ if (err instanceof GitHubApiError && err.statusCode === 404) {
96
+ return null;
97
+ }
98
+ throw err;
99
+ }
100
+ }
101
+ export async function createDraftRelease(tag, name, body, options) {
102
+ const result = await githubRequest({
103
+ ...options,
104
+ method: 'POST',
105
+ path: '/releases',
106
+ body: {
107
+ tag_name: tag,
108
+ name,
109
+ body,
110
+ draft: true,
111
+ },
112
+ });
113
+ // upload_url has template like "https://uploads.github.com/.../assets{?name,label}"
114
+ const uploadUrl = result.upload_url.replace(/\{[^}]*\}/, '');
115
+ return { releaseId: result.id, uploadUrl };
116
+ }
117
+ export async function uploadReleaseAsset(releaseId, tarballPath, options) {
118
+ const { owner, repo } = resolveOwnerRepo(options);
119
+ const tarballBuffer = await readFile(tarballPath);
120
+ const fileName = tarballPath.split('/').pop();
121
+ const url = `https://uploads.github.com/repos/${owner}/${repo}/releases/${releaseId}/assets?name=${encodeURIComponent(fileName)}`;
122
+ const result = await githubRequest({
123
+ ...options,
124
+ method: 'POST',
125
+ path: url,
126
+ uploadUrl: url,
127
+ rawBody: tarballBuffer,
128
+ contentType: 'application/gzip',
129
+ });
130
+ return { assetUrl: result.browser_download_url };
131
+ }
132
+ export async function publishRelease(releaseId, options) {
133
+ await githubRequest({
134
+ ...options,
135
+ method: 'PATCH',
136
+ path: `/releases/${releaseId}`,
137
+ body: { draft: false },
138
+ });
139
+ }
140
+ export async function deleteRelease(releaseId, options) {
141
+ await githubRequest({
142
+ ...options,
143
+ method: 'DELETE',
144
+ path: `/releases/${releaseId}`,
145
+ });
146
+ }
147
+ export async function updateRegistryIndex(index, sha, commitMessage, options) {
148
+ const content = Buffer.from(JSON.stringify(index, null, 2) + '\n').toString('base64');
149
+ const body = {
150
+ message: commitMessage,
151
+ content,
152
+ };
153
+ if (sha) {
154
+ body.sha = sha;
155
+ }
156
+ await githubRequest({
157
+ ...options,
158
+ method: 'PUT',
159
+ path: '/contents/index.json',
160
+ body,
161
+ });
162
+ }
163
+ //# sourceMappingURL=github-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-api.js","sourceRoot":"","sources":["../../src/core/github-api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAID,qBAAa,kBAAmB,SAAQ,KAAK;IACP,KAAK,CAAC,EAAE,OAAO;gBAAvC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,OAAO,YAAA;CAIpD;AAED,qBAAa,8BAA+B,SAAQ,KAAK;IACpC,aAAa,EAAE,MAAM;gBAArB,aAAa,EAAE,MAAM;CAIzC;AAED,qBAAa,4BAA6B,SAAQ,KAAK;IAE5C,aAAa,EAAE,MAAM;IACrB,OAAO,EAAE,MAAM;gBADf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAOzB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IACV,KAAK,CAAC,EAAE,OAAO;gBAAvC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,OAAO,YAAA;CAIpD;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAEtC,aAAa,EAAE,MAAM;IACrB,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,MAAM;gBAHd,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM;CAOxB;AAUD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM1D;AAUD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CASA;AAyBD,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GACtB,MAAM,CAIR;AAoCD,wBAAsB,kBAAkB,CACtC,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,aAAa,CAAC,CA8DxB;AAuBD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf;IAAE,KAAK,EAAE,oBAAoB,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAa1D;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,oBAAoB,EAC3B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC,CAiEjB;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAoBpF"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAID,qBAAa,kBAAmB,SAAQ,KAAK;IACP,KAAK,CAAC,EAAE,OAAO;gBAAvC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,OAAO,YAAA;CAIpD;AAED,qBAAa,8BAA+B,SAAQ,KAAK;IACpC,aAAa,EAAE,MAAM;gBAArB,aAAa,EAAE,MAAM;CAIzC;AAED,qBAAa,4BAA6B,SAAQ,KAAK;IAE5C,aAAa,EAAE,MAAM;IACrB,OAAO,EAAE,MAAM;gBADf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAOzB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IACV,KAAK,CAAC,EAAE,OAAO;gBAAvC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,OAAO,YAAA;CAIpD;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAEtC,aAAa,EAAE,MAAM;IACrB,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,MAAM;gBAHd,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM;CAOxB;AAUD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM1D;AAUD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CASA;AAyBD,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GACtB,MAAM,CAIR;AAoCD,wBAAsB,kBAAkB,CACtC,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,aAAa,CAAC,CA8DxB;AAuBD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf;IAAE,KAAK,EAAE,oBAAoB,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAa1D;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,oBAAoB,EAC3B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAoBpF"}
@@ -6,6 +6,7 @@ import { mkdtemp } from 'node:fs/promises';
6
6
  import { tmpdir } from 'node:os';
7
7
  import { extract } from 'tar';
8
8
  import { resolveReefStateDir } from './openclaw-paths.js';
9
+ import { downloadArtifact, ArtifactDownloadError, ArtifactIntegrityError } from '../utils/download.js';
9
10
  import { VERSION } from '../version.js';
10
11
  // ── Error classes ──
11
12
  export class RegistryFetchError extends Error {
@@ -214,51 +215,28 @@ export async function downloadFormationTarball(name, version, entry, options) {
214
215
  const registryUrl = resolveRegistryUrl(options);
215
216
  const cacheDir = registryCacheDir(registryUrl, options?.env);
216
217
  const hasHash = !!entry.sha256;
217
- const cachePath = tarballCachePath(cacheDir, name, version, hasHash);
218
- // Verified tarballs: reuse from cache after re-checking hash
219
- if (hasHash && existsSync(cachePath)) {
220
- const cached = await readFile(cachePath);
221
- const cachedHash = createHash('sha256').update(cached).digest('hex');
222
- if (cachedHash === entry.sha256) {
223
- return cachePath;
224
- }
225
- // Cached file is corrupted or collided — delete and re-download
226
- await unlink(cachePath).catch(() => { });
227
- }
228
- // Unverified tarballs: always re-download (never trust cache)
229
- // They are written to unverified/ as a download optimization within a single session
230
- // but are never reused across invocations
231
- if (!hasHash) {
232
- console.warn(`WARNING: No integrity hash for ${name}@${version} — artifact is UNVERIFIED`);
233
- }
234
- validateUrlScheme(entry.url, 'tarball download');
235
- let response;
218
+ const disambig = hashString(`${name}:${version}`).slice(0, 8);
219
+ const safeName = sanitizeFilenameComponent(name);
220
+ const safeVersion = sanitizeFilenameComponent(version);
221
+ const cacheName = `${safeName}-${safeVersion}-${disambig}.reef.tar.gz`;
236
222
  try {
237
- response = await fetch(entry.url, {
238
- headers: { 'User-Agent': `@openreef/cli/${VERSION}` },
223
+ return await downloadArtifact({
224
+ url: entry.url,
225
+ sha256: entry.sha256,
226
+ cacheDir: join(cacheDir, hasHash ? 'tarballs' : 'unverified'),
227
+ cacheName,
228
+ userAgent: `@openreef/cli/${VERSION}`,
239
229
  });
240
230
  }
241
231
  catch (err) {
242
- throw new RegistryDownloadError(`Failed to download ${name}@${version}: ${err instanceof Error ? err.message : String(err)}`, err);
243
- }
244
- if (!response.ok) {
245
- throw new RegistryDownloadError(`Download of ${name}@${version} returned HTTP ${response.status}: ${response.statusText}`);
246
- }
247
- const buffer = Buffer.from(await response.arrayBuffer());
248
- // Verify SHA-256 if present
249
- if (entry.sha256) {
250
- const actual = createHash('sha256').update(buffer).digest('hex');
251
- if (actual !== entry.sha256) {
252
- throw new RegistryIntegrityError(name, version, entry.sha256, actual);
232
+ if (err instanceof ArtifactIntegrityError) {
233
+ throw new RegistryIntegrityError(name, version, err.expected, err.actual);
234
+ }
235
+ if (err instanceof ArtifactDownloadError) {
236
+ throw new RegistryDownloadError(`Failed to download ${name}@${version}: ${err.message}`, err.cause);
253
237
  }
238
+ throw err;
254
239
  }
255
- // Write to cache
256
- const parentDir = hasHash
257
- ? join(cacheDir, 'tarballs')
258
- : join(cacheDir, 'unverified');
259
- await mkdir(parentDir, { recursive: true });
260
- await writeFile(cachePath, buffer);
261
- return cachePath;
262
240
  }
263
241
  export async function resolveFromRegistry(name, version, options) {
264
242
  const index = await fetchRegistryIndex(options);
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { RegistryVersionEntry, RegistryOptions } from './registry.js';
2
+ import type { Lockfile } from '../types/lockfile.js';
3
+ export interface SkillsRegistryIndex {
4
+ skills: Record<string, {
5
+ latest: string;
6
+ versions: Record<string, RegistryVersionEntry>;
7
+ }>;
8
+ }
9
+ export declare class SkillNotFoundError extends Error {
10
+ skillName: string;
11
+ constructor(skillName: string);
12
+ }
13
+ export declare class SkillVersionNotFoundError extends Error {
14
+ skillName: string;
15
+ versionRange: string;
16
+ constructor(skillName: string, versionRange: string);
17
+ }
18
+ export declare class LockfileViolationError extends Error {
19
+ constructor(message: string);
20
+ }
21
+ export declare function fetchSkillsIndex(options?: RegistryOptions): Promise<SkillsRegistryIndex>;
22
+ export declare function lookupSkill(index: SkillsRegistryIndex, name: string, versionRange?: string): {
23
+ entry: RegistryVersionEntry;
24
+ resolvedVersion: string;
25
+ };
26
+ export declare function resolveSkillsDependencies(skills: Record<string, string>, options?: RegistryOptions): Promise<Lockfile>;
27
+ export declare function verifyLockfileIntegrity(lockfile: Lockfile, options?: RegistryOptions): Promise<{
28
+ valid: boolean;
29
+ errors: string[];
30
+ }>;
31
+ export declare function enforceLockfile(formationPath: string, skills: Record<string, string>, options?: RegistryOptions): Promise<void>;
32
+ //# sourceMappingURL=skills-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills-registry.d.ts","sourceRoot":"","sources":["../../src/core/skills-registry.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,sBAAsB,CAAC;AAIpE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;KAAE,CAAC,CAAC;CAC5F;AAID,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM;CAIrC;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IAC/B,SAAS,EAAE,MAAM;IAAS,YAAY,EAAE,MAAM;gBAA9C,SAAS,EAAE,MAAM,EAAS,YAAY,EAAE,MAAM;CAIlE;AAED,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AA0BD,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiB9F;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB;IAAE,KAAK,EAAE,oBAAoB,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAqB1D;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,QAAQ,CAAC,CA+BnB;AAED,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAkC/C;AAID,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAsEf"}
@@ -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
@@ -1,3 +1,4 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ import { Command } from 'commander';
3
+ export declare function buildProgram(): Command;
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -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"}