@nimblebrain/mpak-sdk 0.1.0 → 0.1.2

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/client.js DELETED
@@ -1,430 +0,0 @@
1
- import { createHash } from 'crypto';
2
- import { MpakNotFoundError, MpakIntegrityError, MpakNetworkError, } from './errors.js';
3
- const DEFAULT_REGISTRY_URL = 'https://api.mpak.dev';
4
- const DEFAULT_TIMEOUT = 30000;
5
- /**
6
- * Client for interacting with the mpak registry
7
- *
8
- * Zero runtime dependencies - uses native fetch and crypto only.
9
- * Requires Node.js 18+ for native fetch support.
10
- */
11
- export class MpakClient {
12
- registryUrl;
13
- timeout;
14
- constructor(config = {}) {
15
- this.registryUrl = config.registryUrl ?? DEFAULT_REGISTRY_URL;
16
- this.timeout = config.timeout ?? DEFAULT_TIMEOUT;
17
- }
18
- // ===========================================================================
19
- // Bundle API
20
- // ===========================================================================
21
- /**
22
- * Search for bundles
23
- */
24
- async searchBundles(params = {}) {
25
- const searchParams = new URLSearchParams();
26
- if (params.q)
27
- searchParams.set('q', params.q);
28
- if (params.type)
29
- searchParams.set('type', params.type);
30
- if (params.sort)
31
- searchParams.set('sort', params.sort);
32
- if (params.limit)
33
- searchParams.set('limit', String(params.limit));
34
- if (params.offset)
35
- searchParams.set('offset', String(params.offset));
36
- const queryString = searchParams.toString();
37
- const url = `${this.registryUrl}/v1/bundles/search${queryString ? `?${queryString}` : ''}`;
38
- const response = await this.fetchWithTimeout(url);
39
- if (!response.ok) {
40
- throw new MpakNetworkError(`Failed to search bundles: HTTP ${response.status}`);
41
- }
42
- return response.json();
43
- }
44
- /**
45
- * Get bundle details
46
- */
47
- async getBundle(name) {
48
- this.validateScopedName(name);
49
- const url = `${this.registryUrl}/v1/bundles/${name}`;
50
- const response = await this.fetchWithTimeout(url);
51
- if (response.status === 404) {
52
- throw new MpakNotFoundError(name);
53
- }
54
- if (!response.ok) {
55
- throw new MpakNetworkError(`Failed to get bundle: HTTP ${response.status}`);
56
- }
57
- return response.json();
58
- }
59
- /**
60
- * Get all versions of a bundle
61
- */
62
- async getBundleVersions(name) {
63
- this.validateScopedName(name);
64
- const url = `${this.registryUrl}/v1/bundles/${name}/versions`;
65
- const response = await this.fetchWithTimeout(url);
66
- if (response.status === 404) {
67
- throw new MpakNotFoundError(name);
68
- }
69
- if (!response.ok) {
70
- throw new MpakNetworkError(`Failed to get bundle versions: HTTP ${response.status}`);
71
- }
72
- return response.json();
73
- }
74
- /**
75
- * Get a specific version of a bundle
76
- */
77
- async getBundleVersion(name, version) {
78
- this.validateScopedName(name);
79
- const url = `${this.registryUrl}/v1/bundles/${name}/versions/${version}`;
80
- const response = await this.fetchWithTimeout(url);
81
- if (response.status === 404) {
82
- throw new MpakNotFoundError(`${name}@${version}`);
83
- }
84
- if (!response.ok) {
85
- throw new MpakNetworkError(`Failed to get bundle version: HTTP ${response.status}`);
86
- }
87
- return response.json();
88
- }
89
- /**
90
- * Get download info for a bundle
91
- */
92
- async getBundleDownload(name, version, platform) {
93
- this.validateScopedName(name);
94
- const params = new URLSearchParams();
95
- if (platform) {
96
- params.set('os', platform.os);
97
- params.set('arch', platform.arch);
98
- }
99
- const queryString = params.toString();
100
- const url = `${this.registryUrl}/v1/bundles/${name}/versions/${version}/download${queryString ? `?${queryString}` : ''}`;
101
- const response = await this.fetchWithTimeout(url, {
102
- headers: { Accept: 'application/json' },
103
- });
104
- if (response.status === 404) {
105
- throw new MpakNotFoundError(`${name}@${version}`);
106
- }
107
- if (!response.ok) {
108
- throw new MpakNetworkError(`Failed to get bundle download: HTTP ${response.status}`);
109
- }
110
- return response.json();
111
- }
112
- // ===========================================================================
113
- // Skill API
114
- // ===========================================================================
115
- /**
116
- * Search for skills
117
- */
118
- async searchSkills(params = {}) {
119
- const searchParams = new URLSearchParams();
120
- if (params.q)
121
- searchParams.set('q', params.q);
122
- if (params.tags)
123
- searchParams.set('tags', params.tags);
124
- if (params.category)
125
- searchParams.set('category', params.category);
126
- if (params.surface)
127
- searchParams.set('surface', params.surface);
128
- if (params.sort)
129
- searchParams.set('sort', params.sort);
130
- if (params.limit)
131
- searchParams.set('limit', String(params.limit));
132
- if (params.offset)
133
- searchParams.set('offset', String(params.offset));
134
- const queryString = searchParams.toString();
135
- const url = `${this.registryUrl}/v1/skills/search${queryString ? `?${queryString}` : ''}`;
136
- const response = await this.fetchWithTimeout(url);
137
- if (!response.ok) {
138
- throw new MpakNetworkError(`Failed to search skills: HTTP ${response.status}`);
139
- }
140
- return response.json();
141
- }
142
- /**
143
- * Get skill details
144
- */
145
- async getSkill(name) {
146
- this.validateScopedName(name);
147
- const url = `${this.registryUrl}/v1/skills/${name}`;
148
- const response = await this.fetchWithTimeout(url);
149
- if (response.status === 404) {
150
- throw new MpakNotFoundError(name);
151
- }
152
- if (!response.ok) {
153
- throw new MpakNetworkError(`Failed to get skill: HTTP ${response.status}`);
154
- }
155
- return response.json();
156
- }
157
- /**
158
- * Get download info for a skill (latest version)
159
- */
160
- async getSkillDownload(name) {
161
- this.validateScopedName(name);
162
- const url = `${this.registryUrl}/v1/skills/${name}/download`;
163
- const response = await this.fetchWithTimeout(url, {
164
- headers: { Accept: 'application/json' },
165
- });
166
- if (response.status === 404) {
167
- throw new MpakNotFoundError(name);
168
- }
169
- if (!response.ok) {
170
- throw new MpakNetworkError(`Failed to get skill download: HTTP ${response.status}`);
171
- }
172
- return response.json();
173
- }
174
- /**
175
- * Get download info for a specific skill version
176
- */
177
- async getSkillVersionDownload(name, version) {
178
- this.validateScopedName(name);
179
- const url = `${this.registryUrl}/v1/skills/${name}/versions/${version}/download`;
180
- const response = await this.fetchWithTimeout(url, {
181
- headers: { Accept: 'application/json' },
182
- });
183
- if (response.status === 404) {
184
- throw new MpakNotFoundError(`${name}@${version}`);
185
- }
186
- if (!response.ok) {
187
- throw new MpakNetworkError(`Failed to get skill download: HTTP ${response.status}`);
188
- }
189
- return response.json();
190
- }
191
- /**
192
- * Download skill content and verify integrity
193
- *
194
- * @throws {MpakIntegrityError} If expectedSha256 is provided and doesn't match (fail-closed)
195
- */
196
- async downloadSkillContent(downloadUrl, expectedSha256) {
197
- const response = await this.fetchWithTimeout(downloadUrl);
198
- if (!response.ok) {
199
- throw new MpakNetworkError(`Failed to download skill: HTTP ${response.status}`);
200
- }
201
- const content = await response.text();
202
- if (expectedSha256) {
203
- const actualHash = this.computeSha256(content);
204
- if (actualHash !== expectedSha256) {
205
- throw new MpakIntegrityError(expectedSha256, actualHash);
206
- }
207
- return { content, verified: true };
208
- }
209
- return { content, verified: false };
210
- }
211
- /**
212
- * Resolve a skill reference to actual content
213
- *
214
- * Supports mpak, github, and url sources. This is the main method for
215
- * fetching skill content from any supported source.
216
- *
217
- * @throws {MpakNotFoundError} If skill not found
218
- * @throws {MpakIntegrityError} If integrity check fails (fail-closed)
219
- * @throws {MpakNetworkError} For network failures
220
- *
221
- * @example
222
- * ```typescript
223
- * // Resolve from mpak registry
224
- * const skill = await client.resolveSkillRef({
225
- * source: 'mpak',
226
- * name: '@nimblebraininc/folk-crm',
227
- * version: '1.3.0',
228
- * });
229
- *
230
- * // Resolve from GitHub
231
- * const skill = await client.resolveSkillRef({
232
- * source: 'github',
233
- * name: '@example/my-skill',
234
- * version: 'v1.0.0',
235
- * repo: 'owner/repo',
236
- * path: 'skills/my-skill/SKILL.md',
237
- * });
238
- *
239
- * // Resolve from URL
240
- * const skill = await client.resolveSkillRef({
241
- * source: 'url',
242
- * name: '@example/custom',
243
- * version: '1.0.0',
244
- * url: 'https://example.com/skill.md',
245
- * });
246
- * ```
247
- */
248
- async resolveSkillRef(ref) {
249
- switch (ref.source) {
250
- case 'mpak':
251
- return this.resolveMpakSkill(ref);
252
- case 'github':
253
- return this.resolveGithubSkill(ref);
254
- case 'url':
255
- return this.resolveUrlSkill(ref);
256
- default: {
257
- const _exhaustive = ref;
258
- throw new Error(`Unknown skill source: ${_exhaustive.source}`);
259
- }
260
- }
261
- }
262
- /**
263
- * Resolve a skill from mpak registry
264
- *
265
- * The API returns a ZIP bundle containing SKILL.md and metadata.
266
- */
267
- async resolveMpakSkill(ref) {
268
- const url = `${this.registryUrl}/v1/skills/${ref.name}/versions/${ref.version}/download`;
269
- const response = await this.fetchWithTimeout(url);
270
- if (response.status === 404) {
271
- throw new MpakNotFoundError(`${ref.name}@${ref.version}`);
272
- }
273
- if (!response.ok) {
274
- throw new MpakNetworkError(`Failed to fetch skill: HTTP ${response.status}`);
275
- }
276
- // Response is a ZIP file - extract SKILL.md
277
- const zipBuffer = await response.arrayBuffer();
278
- const content = await this.extractSkillFromZip(zipBuffer, ref.name);
279
- if (ref.integrity) {
280
- this.verifyIntegrityOrThrow(content, ref.integrity);
281
- return { content, version: ref.version, source: 'mpak', verified: true };
282
- }
283
- return { content, version: ref.version, source: 'mpak', verified: false };
284
- }
285
- /**
286
- * Resolve a skill from GitHub releases
287
- */
288
- async resolveGithubSkill(ref) {
289
- const url = `https://github.com/${ref.repo}/releases/download/${ref.version}/${ref.path}`;
290
- const response = await this.fetchWithTimeout(url);
291
- if (!response.ok) {
292
- throw new MpakNotFoundError(`github:${ref.repo}/${ref.path}@${ref.version}`);
293
- }
294
- const content = await response.text();
295
- if (ref.integrity) {
296
- this.verifyIntegrityOrThrow(content, ref.integrity);
297
- return { content, version: ref.version, source: 'github', verified: true };
298
- }
299
- return { content, version: ref.version, source: 'github', verified: false };
300
- }
301
- /**
302
- * Resolve a skill from a direct URL
303
- */
304
- async resolveUrlSkill(ref) {
305
- const response = await this.fetchWithTimeout(ref.url);
306
- if (!response.ok) {
307
- throw new MpakNotFoundError(`url:${ref.url}`);
308
- }
309
- const content = await response.text();
310
- if (ref.integrity) {
311
- this.verifyIntegrityOrThrow(content, ref.integrity);
312
- return { content, version: ref.version, source: 'url', verified: true };
313
- }
314
- return { content, version: ref.version, source: 'url', verified: false };
315
- }
316
- /**
317
- * Extract SKILL.md content from a skill bundle ZIP
318
- */
319
- async extractSkillFromZip(zipBuffer, skillName) {
320
- const JSZip = (await import('jszip')).default;
321
- const zip = await JSZip.loadAsync(zipBuffer);
322
- // Skill name format: @scope/name -> folder is just 'name'
323
- const folderName = skillName.split('/').pop() ?? skillName;
324
- const skillPath = `${folderName}/SKILL.md`;
325
- const skillFile = zip.file(skillPath);
326
- if (!skillFile) {
327
- // Try without folder prefix
328
- const altFile = zip.file('SKILL.md');
329
- if (!altFile) {
330
- throw new MpakNotFoundError(`SKILL.md not found in bundle for ${skillName}`);
331
- }
332
- return altFile.async('string');
333
- }
334
- return skillFile.async('string');
335
- }
336
- /**
337
- * Verify content integrity and throw if mismatch (fail-closed)
338
- */
339
- verifyIntegrityOrThrow(content, integrity) {
340
- const expectedHash = this.extractHash(integrity);
341
- const actualHash = this.computeSha256(content);
342
- if (actualHash !== expectedHash) {
343
- throw new MpakIntegrityError(expectedHash, actualHash);
344
- }
345
- }
346
- /**
347
- * Extract hash from integrity string (removes prefix)
348
- */
349
- extractHash(integrity) {
350
- if (integrity.startsWith('sha256:')) {
351
- return integrity.slice(7);
352
- }
353
- if (integrity.startsWith('sha256-')) {
354
- return integrity.slice(7);
355
- }
356
- return integrity;
357
- }
358
- // ===========================================================================
359
- // Utility Methods
360
- // ===========================================================================
361
- /**
362
- * Detect the current platform
363
- */
364
- static detectPlatform() {
365
- const nodePlatform = process.platform;
366
- const nodeArch = process.arch;
367
- let os;
368
- switch (nodePlatform) {
369
- case 'darwin':
370
- os = 'darwin';
371
- break;
372
- case 'win32':
373
- os = 'win32';
374
- break;
375
- case 'linux':
376
- os = 'linux';
377
- break;
378
- default:
379
- os = 'any';
380
- }
381
- let arch;
382
- switch (nodeArch) {
383
- case 'x64':
384
- arch = 'x64';
385
- break;
386
- case 'arm64':
387
- arch = 'arm64';
388
- break;
389
- default:
390
- arch = 'any';
391
- }
392
- return { os, arch };
393
- }
394
- /**
395
- * Compute SHA256 hash of content
396
- */
397
- computeSha256(content) {
398
- return createHash('sha256').update(content, 'utf8').digest('hex');
399
- }
400
- /**
401
- * Validate that a name is scoped (@scope/name)
402
- */
403
- validateScopedName(name) {
404
- if (!name.startsWith('@')) {
405
- throw new Error('Package name must be scoped (e.g., @scope/package-name)');
406
- }
407
- }
408
- /**
409
- * Fetch with timeout support
410
- */
411
- async fetchWithTimeout(url, init) {
412
- const controller = new AbortController();
413
- const timeoutId = setTimeout(() => {
414
- controller.abort();
415
- }, this.timeout);
416
- try {
417
- return await fetch(url, { ...init, signal: controller.signal });
418
- }
419
- catch (error) {
420
- if (error instanceof Error && error.name === 'AbortError') {
421
- throw new MpakNetworkError(`Request timeout after ${this.timeout}ms`);
422
- }
423
- throw new MpakNetworkError(error instanceof Error ? error.message : 'Network error');
424
- }
425
- finally {
426
- clearTimeout(timeoutId);
427
- }
428
- }
429
- }
430
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=client.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.test.d.ts","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":""}